Sistema multi-agente

In informatica , un sistema multi-agente ( MAS ) è un sistema costituito da un insieme di agenti (un processo , un robot , un essere umano, una formica, ecc.), Attivi in ​​un determinato ambiente e che interagiscono secondo determinati regole. Un agente è un'entità caratterizzata dal fatto di essere, almeno parzialmente, autonoma , il che esclude il controllo centralizzato dell'intero sistema.

Oggetto di ricerca: intelligenza artificiale distribuita , sistemi multi-agente sono un'interessante possibilità di modellazione di corporazioni umane e animali , e come tali di ampia portata, che si estendono alle scienze sociali .

Origine e aspetti tecnici

Origine

Una delle grandi fonti di ispirazione per i sistemi multi-agente è stata lo studio dei comportamenti sociali di alcune famiglie di insetti. In quest'area faremo utilmente riferimento agli articoli Collective Intelligence e Distributed Intelligence .

Gli ADM possono essere visti come l'incontro di vari settori:

Un esempio per capire: la metafora del videogioco

Possiamo rappresentare un ADM da una di queste comunità virtuali che troviamo sempre di più nei videogiochi attuali. Prendiamo l'esempio di un gioco che simula la vita di una famiglia. La SMA si suddivide in diverse dimensioni. Innanzitutto, un ambiente con una metrica . Possiamo considerare che questa è la casa e il giardino dove vive la nostra piccola famiglia. Quindi l'ADM può avere un insieme di oggetti passivi su cui i nostri agenti possono intervenire. Questi saranno tutti gli oggetti che equipaggiano la casa, ma anche il cibo. Un ADM è composto da agenti. Questi, attivi e autonomi, interagiscono con l'ambiente circostante (ambiente, oggetti e altri agenti). Questi agenti sono identificati con i membri della famiglia. Quindi, aggiungiamo una serie di relazioni tra oggetti e agenti, che definisce un'organizzazione. Ad esempio, possiamo esprimere legami familiari tra individui diversi, ma anche trattare nozioni di proprietà (quale oggetto appartiene a chi?). Infine, integriamo una serie di operatori che consentono agli agenti di agire su oggetti o altri agenti (il figlio può mangiare yogurt, portare a spasso il cane o parlare con sua sorella) e sensori che consentono agli agenti di conoscere i cambiamenti nell'ambiente e altro agenti (lo yogurt è caduto per terra, papà mi ha chiesto di portare fuori il cane). Quindi ecco quello che possiamo chiamare SMA. In informatica, l'agente è un programma autonomo che possiede un insieme di conoscenze e agisce secondo le proprie regole.

I cinque numeri degli ADM

Cinque problemi principali possono essere identificati durante la creazione di sistemi multi-agente:

Architettura dei sistemi multi-agente

Riprendendo i cinque numeri precedenti, possiamo descrivere alcuni elementi dell'architettura di un sistema multi-agente.


Questi elementi architettonici si applicano piuttosto a un sistema composto da agenti cognitivi.

Categorie o modelli di agenti

Possiamo stabilire una classificazione degli agenti secondo due criteri: agenti cognitivi o reattivi da un lato; comportamento teleonomico o riflesso d'altra parte.

La distinzione che si può fare tra cognitivo e reattivo deriva essenzialmente dalla rappresentazione del mondo a disposizione dell'agente. Se l'individuo è dotato di una "rappresentazione simbolica" del mondo da cui è in grado di formulare il ragionamento, si parlerà di un agente cognitivo mentre se ha solo una "rappresentazione sub-simbolica", cioè limitata alla sua percezioni, parleremo di un agente reattivo. Questa distinzione cognitivo / reattiva corrisponde a due scuole di pensiero di sistemi multi-agente. Il primo supporta un approccio familiare di agenti " intelligenti " che devono collaborare, con una prospettiva più sociologica . Il secondo studia la possibilità dell'emergere di un comportamento "intelligente" di un insieme di agenti non intelligenti (tipo formiche ).

La seconda distinzione tra comportamento teleonomico o riflesso separa il comportamento intenzionale (perseguimento di obiettivi espliciti) dal comportamento legato alle percezioni. Le tendenze degli agenti possono così essere espresse esplicitamente negli agenti o al contrario provenire dall'ambiente. Possiamo costruire una tabella che raggruppa i diversi tipi di agenti:

Categorie di agenti
Agenti cognitivi Agenti reattivi
Comportamento teleonomico Agenti intenzionali Agenti di guida
Comportamento riflesso "Moduli" agenti Agenti tropicali


Gli agenti cognitivi sono per lo più intenzionali , cioè hanno fissato obiettivi che stanno cercando di raggiungere. Tuttavia, a volte possiamo trovare agenti chiamati moduli che, se hanno una rappresentazione del loro universo , non hanno obiettivi specifici. Potrebbero essere usati, ad esempio, per rispondere alle domande di altri agenti sull'universo. Gli agenti reattivi possono essere separati in agenti istintivi e tropicali . Un agente istintivo avrà una missione fissa (ad esempio, per assicurarsi che una vasca rimanga sempre sufficientemente piena) e attiverà un comportamento se percepisce che l'ambiente non soddisfa più l'obiettivo assegnatogli (il livello della vasca è troppo basso ). L'agente tropicale reagisce solo allo stato locale dell'ambiente (c'è luce, sto fuggendo). La fonte della motivazione è in un caso interno (agenti istintuali che hanno una "missione"), nell'altro caso legato solo all'ambiente.

Organizzazione degli agenti

Con lo sviluppo di sistemi multi-agente, sono stati sviluppati diversi paradigmi organizzativi. Queste organizzazioni stabiliscono una struttura per le relazioni e le interazioni tra gli agenti. Qui presenteremo i principali:

Applicazioni

Nel mondo della ricerca

Esistono generalmente tre tipi di utilizzo: simulazione di fenomeni complessi, risoluzione di problemi e progettazione di programmi.

Simulazione di fenomeni complessi

I sistemi multi-agente vengono utilizzati per simulare le interazioni tra agenti autonomi. Cerchiamo di determinare l'evoluzione di questo sistema al fine di prevedere l'organizzazione risultante. Ad esempio, in sociologia , possiamo configurare i diversi agenti che compongono una comunità. Aggiungendo vincoli, possiamo cercare di capire quale sarà la componente più efficiente per ottenere un risultato atteso (costruzione di un ponte). Consentono persino di sperimentare scenari che non sarebbero realizzabili su popolazioni reali, sia per ragioni tecniche che etiche. Ciò che conta è il comportamento generale, non il comportamento individuale. Esistono applicazioni nella fisica delle particelle (agente = particella elementare ), nella chimica (agente = molecola ), nella robotica (agente = robot , nel caso di un'implementazione su un robot reale, parleremo di un sistema multi-robot ), in biologia cellulare (agente = cellula ), etologia (agente = animale ), sociologia ed etnologia (agente = essere umano). L'autonomia qui rende possibile simulare il comportamento esatto di un'entità.

Come esempi concreti, possiamo citare ad esempio EpiSIM , software che simula la diffusione di malattie in uno spazio geografico configurabile, o DS, che simula l'evoluzione della popolazione dell'isola di Reunion e permette di anticiparne l'urbanizzazione. Esistono anche simulazioni di traffico stradale o di evacuazione di folle in preda al panico in un edificio, che ci permettono di studiare l'origine dei problemi (ingorghi, spintoni, ecc.) Per pensare a soluzioni per limitarli.

Risoluzione dei problemi

L' intelligenza artificiale distribuita  nasce per risolvere i problemi di complessità dei grandi programmi monolitici di intelligenza artificiale : l'esecuzione viene poi distribuita, ma il controllo resta centralizzato. Al contrario, negli ADM, ogni agente ha il pieno controllo del proprio comportamento. Per risolvere un problema complesso, a volte è effettivamente più facile progettare programmi relativamente piccoli (gli agenti) in interazione rispetto a un singolo programma monolitico di grandi dimensioni. L'autonomia consente al sistema di adattarsi dinamicamente ai cambiamenti imprevisti dell'ambiente.

Progettazione del programma

Allo stesso tempo, l'ingegneria del software si è evoluta in componenti sempre più autonomi. Gli ADM possono essere visti come l'incontro tra ingegneria del software e intelligenza artificiale distribuita , con un contributo molto importante dei sistemi distribuiti . Rispetto a un oggetto , un agente può prendere iniziative, può rifiutarsi di obbedire a una richiesta, può muoversi… L'autonomia consente al progettista di concentrarsi su una parte umanamente comprensibile del software.

Nell'industria

Gli usi dei sistemi multi-agente nell'industria sono molti e vari. Può essere trovato nei videogiochi e nell'animazione , in particolare con il software MASSIVE , che consente di simulare folle , sviluppato per la trilogia del film Il Signore degli Anelli . Possono anche essere utilizzati dalle aziende, ad esempio, per tracciare il comportamento dei clienti che navigano in un sito web.

In finanza

I sistemi multi-agente sono utilizzati anche nel mondo della finanza . Ad esempio, la piattaforma MetaTrader 4  (in) consente l'utilizzo di agenti esperti nel trading automatico seguendo il corso del Forex .

Piattaforme di sviluppo di sistemi multi-agente

  • AnyLogic - Software di simulazione multi-agente e multi-metodo
  • CORMAS ( COmmon Resources Multi-Agent System) è un framework per lo sviluppo di sistemi multi-agente, open-source e basato sul linguaggio di programmazione orientato agli oggetti SmallTalk . Spazializzato, si concentra su questioni di ricerca nelle scienze dello sviluppo e negoziazione tra attori.
  • DoMIS è uno strumento che consente la progettazione di Sistemi Multi-agente (orientata alla "gestione operativa di sistemi complessi") e basato sul metodo di progettazione B-ADSc (vedi Analisi decisionale di sistemi complessi ). Guidato dal design, DoMIS consente la definizione di specifiche che possono essere utilizzate da qualsiasi piattaforma di sviluppo in grado di simulare, al meglio, in tempo reale.
  • JACK è un linguaggio di programmazione e un ambiente di sviluppo per agenti cognitivi, sviluppato dalla società Agent Oriented Software come estensione orientata agli agenti del linguaggio Java.
  • GAMA è una piattaforma di simulazione open source ( LGPL ) che offre un ambiente di modellazione basato su agenti spazialmente espliciti (utilizzo di dati GIS per la descrizione degli agenti e del loro ambiente). Sviluppato da IRD / UPMC all'interno dell'unità congiunta internazionale UMMISCO .
  • JADE (Java Agent DEvelopment) è un framework di sviluppo di sistemi multi-agente open source, basato su Java . In particolare, offre supporto avanzato per lo standard FIPA-ACL, nonché strumenti per la convalida sintattica dei messaggi tra agenti basati su ontologie .
  • Jadex , è una piattaforma di agenti sviluppata in JAVA dall'Università di Amburgo che è modulare, compatibile con molti standard e in grado di sviluppare agenti secondo il modello BDI.
  • JAgent è un framework open source prodotto in Java il cui obiettivo è facilitare lo sviluppo e il test di sistemi multi-agente.
  • Janus è una piattaforma multi-agente modulare scritta in Java. Crea multi-agente con o senza un approccio organizzativo basato su sistemi modello (in) capacità-Ruolo-Interazione-Organizzazione (OCRI). Janus propone anche un modello di simulazione del sistema olonico che assimila agenti agli oloni (o agenti ricorsivi). Janus è estensibile tramite l'uso di moduli OSGi e offre supporto di rete tramite la libreria JXTA. Una metodologia chiamata (in) Aspecs può essere associata a Janus. Questa piattaforma è sviluppata congiuntamente da (en) ICAP-SeT-UTBM in Francia e (es) CITAT in Argentina.
  • Jason è un ambiente open source per lo sviluppo di agenti nel formalismo AgentSpeak e sviluppato in Java da Jomi Fred Hübner e Rafael H. Bordini.
  • MaDKit è una piattaforma multi-agente modulare scritta in Java e costruita attorno al modello organizzativo Agente / Gruppo / Ruolo. È una piattaforma gratuita basata sulla licenza GPL / LGPL sviluppata all'interno di LIRMM .
  • MAGIC è una piattaforma per agenti distribuiti fisicamente scritti in Java e che fornisce un modello di comunicazione originale per le chiamate di blocco. In MAGIQUE, le abilità sono dissociate dagli agenti. L'architettura degli agenti e le diverse competenze vengono sviluppate separatamente. Le competenze vengono poi innestate come plugin negli agenti a discrezione del progettista. Questa piattaforma è sviluppata all'interno del LIFL .
  • OMAS , Open Multi-Agent Asynchronous Systems è una piattaforma di ricerca sviluppata dal team di intelligenza artificiale dell'Università di Tecnologia di Compiègne , sotto la direzione di Jean-Paul Barthès.
  • SemanticAgent è basato su JADE e consente lo sviluppo di agenti il ​​cui comportamento è rappresentato in SWRL. SemanticAgent è sviluppato all'interno di LIRIS , è open source e concesso in licenza con GPL V3.
  • SPADE è un ambiente di sviluppo per organizzazioni multi-agente basato sul protocollo XMPP ed è scritto in Python .
  • MASSIVE (software) è un software per la simulazione della folla , basato su più agenti, che ha permesso la creazione di effetti speciali in un gran numero di film, essendo stato originariamente sviluppato per le scene di combattimento de Il Signore degli Anelli .
  • Golaem Crowd è un plug-in per Maya (software) basato su più agenti e consente di eseguire simulazioni di folla per effetti speciali direttamente in Maya.
  • Simulate , una piattaforma di simulazione del traffico multi-agente 3D in tempo reale, sviluppata da Voxelia in collaborazione con CITAT e ICAP-SeT-UTBM
  • NetBioDyn è uno strumento di simulazione multi-agente molto facile da usare per l'istruzione, sviluppato presso l'Università della Bretagna occidentale.

È disponibile un confronto tra piattaforme e strumenti di modellazione basati su agenti : (en) Confronto tra software di modellazione basati su agenti .

Aspetti culturali

Sistemi multi-agente e finzione

I concetti di sistemi multi-agente sono stati ripresi in varie opere di narrativa. Molto spesso troviamo la classica paura dell'invenzione che sfugge al suo progettista (riferimento alla nozione di emergenza ), ma il fenomeno è amplificato dal numero e dall'intelligenza collettiva degli agenti.

  • In The Revolution of the Ants , di Bernard Werber, gli adolescenti ribelli del liceo creano al computer una società in cui le entità sono gli esseri umani che alla fine si ribellano.
  • In Prey of Michael Crichton , dove uno sciame di entità autonome fugge da un laboratorio.
  • I replicatori della serie Stargate SG-1 che inizialmente formano semplici giocattoli e si evolvono fino a diventare una minaccia per l'universo.
  • In Code Lyoko , XANA è un programma multi-agente creato da Franz Hopper . Creato originariamente per contrastare un progetto militare chiamato Cartagine , prende coscienza e cerca di attaccare l'umanità.
  • Sempre in Code Lyoko , l'episodio "Marabounta" mostra un altro programma multi-agente (chiamato Marabounta) che dovrebbe indebolire le azioni di XANA , ma il programma finisce anche fuori controllo, XANA sarà quindi un alleato temporaneo di fronte a questo nuovo nemico .
  • Sempre in Code Lyoko , gli ultimi episodi mostrano un nuovo sistema multi-agente che dovrebbe "uccidere" XANA , un programma ancora in sviluppo nell'episodio 93 ma che riuscirà comunque a rallentarlo per i pochi minuti necessari. Nell'episodio 94, la sua versione completa neutralizzerà XANA disattivando simultaneamente tutti i suoi supercomputer appena in tempo.
  • In Matrix , i programmi sono indipendenti e gerarchici, quindi possiamo qualificarli come agenti. Nella trilogia questo termine viene utilizzato per nominarne alcuni, appunto i più visibili. (Era davvero improbabile che le macchine si fossero evolute al punto da simulare il comportamento umano.) Neo fu il primo ad aver scoperto tutta la complessità della matrice, specialmente durante il suo combattimento con Seraphim. Ma la conferma arriverà in Matrix Revolutions solo quando un "programma" gli parlerà d'amore.

Note e riferimenti

  1. Alexis Drogoul e Anne Collinot , “  Tra riduzionismo metodologico e strategia intenzionale, etologia, un modello alternativo per IAD?  », Atti della 5a Giornata francofona dell'intelligenza artificiale e dei sistemi multi-agente. , 1997
  2. Ferber , p.  57-60
  3. Ferber , p.  54-56
  4. Ferber , p.  21
  5. (in) Bryan Hörling e Victor Lesser , "  A Survey of Multi-Agent Organizational Paradigms  " , The Knowledge Engineering Review , vol.  19, n o  4,dicembre 2004( leggi online )
  6. (a) Klaus Fischer , Michael Schillo e Jörg Siekmann , "  Holonic Multiagent Systems: A Foundation for the Organization of Multiagent Systems  " , Lecture Notes in Computer Science , vol.  2744,2003( leggi online )
  7. (in) Anthony Chavez e Pattie Maes , "  Kasbah: An agent marketplace for purchase and selling goods  " , AAAI ,1996( leggi online )
  8. (in) NR Jennings e Michael J. Wooldridge , "Applications of Intelligent Agents" in Agent Technology: Foundations, Applications, and Markets Springer2008( leggi online )
  9. (a) Nigel Gilbert , "Computational Social Science" in Agent-Based Modeling and Simulation in the Social and Human Sciences , Bardwell Press,2007
  10. "  EpiSIM  " , su casa.ucl.ac.uk (accesso 15 dicembre 2012 )
  11. Daniel David , Denis Payet e Rémy Courdier , "  Rei fi cazione delle aree urbane emergenti in un modello che simula l'evoluzione della popolazione in Reunion  ", Journées Francophones des Systèmes Multi-Agents ,2011( leggi online )
  12. (in) Arnaud Doniec René Mandiau Sylvain Piechowiak e Stéphane Espié , "  A multi-agent behavioral model for road traffic simulation  " , Engineering Applications of Artificial Intelligence , vol.  21, n o  8,dicembre 2008, p.  1443-1454 ( leggi in linea )
  13. (in) Praveen Paruchuri Alok Reddy Pullalarevu e Kamalakar Karlapalem , "  Multi Agent Simulation of Unorganized Traffic  " , Atti della Conferenza Internazionale a cui abbiamo aderito per la prima volta agli agenti autonomi e ai sistemi multi-agente. , vol.  1,2002, p.  176-183 ( leggi in linea )
  14. (in) Xiaoshan Pan , Charles S. Han Ken Dauber e Kincho H. Law , "  Un framework basato su più agenti per la simulazione dei comportamenti umani e sociali durante le evacuazioni di emergenza  " , AI & Society , vol.  22, n o  22007, p.  113-132 ( leggi in linea )
  15. (in) Dirk Helbing , Illes Farkas e Tamás Vicsek , "  Simulating dynamical features of escape panic  " , Nature , n o  407,28 settembre 2000( leggi online )
  16. Ferber , p.  52-54
  17. "  Massive: the real magic of the" Lord of the Rings "  " su Allociné (visitato il 21 febbraio 2013 )
  18. (in) Jang-Hee Lee e Sang-Chan Park , "  Sistema di segmentazione dei clienti redditizio intelligente basato su strumenti di Business Intelligence  " , Expert Systems with Applications , vol.  29, n o  1,2005, p.  145-152 ( leggi in linea )
  19. (a) Rui Pedro Barbosa e Orlando Belo , "Multi-Agent Forex Trading System" in Agent and Multi-Agent Technology for Internet and Enterprise Systems , Springer Berlin Heidelberg,2010( ISBN  978-3-642-13525-5 ) , p.  91-118
  20. Anand S. Rao, AgentSpeak (L): Gli agenti BDI parlano in un linguaggio logico computabile. MAAMAW 1996, p.  42-55

Vedi anche

Bibliografia

Documento utilizzato per scrivere l'articolo : documento utilizzato come fonte per questo articolo.

  • Jacques Ferber, Sistemi multi-agente: verso l'intelligenza collettiva , InterEditions,1995, 522  p. ( ISBN  2-7296-0665-3 ) Documento utilizzato per scrivere l'articolo
  • (en) Michael Wooldridge , An Introduction to MultiAgent Systems , Wiley and Sons,2002, 348  p. [ dettaglio edizione ] ( ISBN  0-471-49691-X )
  • (en) Gerhard Weiss, Multiagent Systems, A Modern Approach to Distributed Artificial Intelligence , Cambridge (Mass.) / Londra, MIT Press ,1999, 619  p. ( ISBN  0-262-23203-0 ).

Articoli Correlati

link esterno