Sistema multiagenteUn sistema multiagente o (sistema ad agenti multipli) è un insieme di agenti situati in un certo ambiente ed interagenti tra loro mediante una opportuna organizzazione. Un agente è cioè un'entità caratterizzata dal fatto di essere, almeno parzialmente, autonoma, sia essa un programma informatico, un robot, un essere umano, e così via. Oggetto di ricerche da lunga data in intelligenza artificiale, i sistemi ad agenti multipli costituiscono un'interessante tipologia di modellazione di società, e hanno a questo riguardo vasti campi d'applicazione, che si estendono fino alle scienze umane e sociali (economia, sociologia, etc.). Origine ed aspetti tecniciOrigineI sistemi multiagente possono essere visti come crocevia di diverse discipline:
I cinque problemi dei sistemi multiagenteSi possono rilevare cinque principali problemi nei confronti della creazione di sistemi multiagente.
Architettura dei sistemi multiagenteCon riferimento ai cinque problemi precedenti, è possibile delineare gli elementi dell'architettura d'un sistema ad agenti multipli come segue.
Categorie di agentiÈ possibile introdurre una classificazione degli agenti secondo due criteri: agenti cognitivi o reattivi da una parte, comportamento teleonomico o riflesso dall'altra. La distinzione tra cognitivo e reattivo attiene essenzialmente alla rappresentazione del mondo di cui dispone l'agente. Se il singolo agente è dotato d'una rappresentazione simbolica del mondo a partire dalla quale è in grado di formulare ragionamenti, si parlerà di agente cognitivo, mentre se non dispone che d'una rappresentazione subsimbolica, vale a dire limitata alle percezioni, si parlerà di agente reattivo. Tale distinzione corrisponde a due scuole di pensiero relative ai sistemi multiagente: la prima sostiene un approccio basato su insiemi di agenti "intelligenti" collaborativi, da una prospettiva più sociologica; la seconda studia la possibilità dell'emergenza d'un comportamento "intelligente" di un insieme d'agenti non intelligenti (come quello delle formiche simulato dalle cosiddette ant colony). La seconda distinzione tra comportamento teleonomico o riflesso divide i comportamenti intenzionali (perseguire scopi espliciti) dai comportamenti legati a delle percezioni. Le tendenze degli agenti possono essere anche espresse esplicitamente all'interno degli agenti o al contrario provenire dall'ambiente. È possibile costruire una tabella che raggruppi i differenti tipi d'agente (compilata da Ferber, si veda la bibliografia):
Gli agenti cognitivi sono il più delle volte intenzionali, cioè hanno scopi prefissati che tentano di realizzare. Si possono pure trovare talvolta degli agenti detti modulari i quali, anche se possiedono una rappresentazione del loro universo, non hanno tuttavia degli scopi precisi. Tali agenti potrebbero servire ad esempio a rispondere alle interrogazioni avanzate da altri agenti su detto universo. Gli agenti reattivi possono a loro volta essere suddivisi in agenti impulsivi e tropici. Un agente impulsivo avrà una missione ben determinata (per esempio, assicurarsi che un serbatoio resti sempre sufficientemente pieno) e si comporterà di conseguenza qualora percepisca che l'ambiente non risponde più allo scopo che gli è stato affidato (il livello del serbatoio è troppo basso). L'agente tropico, dal canto suo, reagisce solo allo stato locale dell'ambiente (c'è del fuoco, io fuggo). La fonte della motivazione è nel primo caso interna (agenti impulsivi che hanno una "missione"), nel secondo caso è legata esclusivamente all'ambiente. ApplicazioniNel campo della ricercaSi distinguono generalmente tre tipi d'utilizzo: la simulazione di fenomeni complessi, la risoluzione di problemi, e la progettazione di programmi. Si utilizzano i sistemi multiagente per simulare le interazioni esistenti tra agenti autonomi. Si cerca di determinare l'evoluzione del sistema al fine di prevederne l'organizzazione risultante. Per esempio, in sociologia, si possono modellare i differenti agenti che compongono una certa comunità. Attraverso la messa a punto dei vincoli, si può cercare di comprendere quale sarà la combinazione più efficace per pervenire al risultato atteso (ad es., la costruzione d'un ponte). Il fattore importante è il comportamento dell'insieme, non certo il comportamento individuale. Le applicazioni esistenti hanno riguardato la fisica delle particelle (agente = particella elementare), la chimica (agente = molecola), la biologia cellulare (agente = cellula), l'etologia (agente = animale), la sociologia e l'etnologia (agente = essere umano). L'autonomia consente in questi casi di simulare il comportamento esatto di ogni entità. L'intelligenza artificiale distribuita è nata per risolvere i problemi di complessità dei grossi programmi monoblocco dell'intelligenza artificiale: l'esecuzione è pertanto non concentrata ma distribuita, ma il controllo rimane centralizzato. Al contrario, nei sistemi ad agenti multipli, ciascun agente possiede un controllo totale sul suo comportamento. Per risolvere un problema complesso, talvolta è in effetti più semplice concepire programmi relativamente piccoli (gli agenti) interagenti con un unico grosso programma monoblocco. L'autonomia permette al sistema di adattarsi dinamicamente ai cambiamenti imprevisti che intervengono nell'ambiente. Allo stesso tempo, l'ingegneria del software si è evoluta in direzione di componenti sempre più autonomi. I sistemi ad agenti multipli possono essere visti come un raccordo tra ingegneria del software ed intelligenza artificiale distribuita, con l'apporto rilevante dei sistemi distribuiti. In rapporto ad un oggetto, un agente può prendere iniziative, può rifiutarsi di obbedire ad una richiesta, può spostarsi, etc.: l'autonomia consente al progettista di concentrarsi sul lato umanamente comprensibile del software. La metafora dei videogiochiSi può rappresentare un sistema ad agenti multipli come una di quelle comunità virtuali che si trovano sempre più nei videogiochi attuali. Consideriamo l'esempio di un gioco che simuli la vita di una famiglia. Il sistema multiagente può essere decomposto secondo più dimensioni. In primo luogo, si avrà un ambiente con una sua metrica. Si può ritenere che esso consista della casa con giardino in cui vive la famiglia. Inoltre il sistema può disporre di un insieme di oggetti passivi sui quali gli agenti possono intervenire: si tratta di tutti gli oggetti che arredano la casa, ma anche dei generi alimentari. Ovviamente, un sistema multiagente è composto da agenti; questi ultimi, attivi ed autonomi, interagiscono col loro entourage (l'ambiente, gli oggetti e gli altri agenti), e corrispondono ai membri della famiglia (senza dimenticare il cane). Ancora, si mette a punto un insieme di relazioni tra oggetti ed agenti, il che definisce un'organizzazione. Si potranno ad esempio esprimere i legami familiari tra i diversi individui, ma anche delineare i rapporti di proprietà (quale oggetto appartiene a chi?). Infine, si integra nel sistema un insieme di operatori che permettono agli agenti di agire sugli oggetti o su altri agenti (il figlio può mangiare uno yogurt o portare a spasso il cane o parlare a sua sorella), e di sensori che consentono agli agenti di conoscere i mutamenti ambientali e degli altri agenti (lo yogurt è caduto in terra, papà mi ha chiesto di far uscire il cane). Ecco dunque cos'è che può chiamarsi sistema multiagente. In informatica, l'agente sarà un programma autonomo che possiede un insieme di conoscenze e agisce secondo regole proprie. BibliografiaTre opere, in lingua inglese, che si riferiscono all'argomento sono:
Un'altra opera, stavolta in francese, che è una buona introduzione (nonché un utile supporto alla redazione di quest'articolo), è la seguente:
Voci correlate
|
Portal di Ensiklopedia Dunia