Università degli Studi di Parma
Sistemi ad agenti
Agostino Poggi
IA - Agenti
Cosa è un agente?
Un agente è un sistema computazionale che
può vivere in ambienti dinamici e complessi;
ha dei sensi che gli permettono di percepire
l’ambiente e, in particolare, di interagire con i
suoi simili e con gli umani; agisce
autonomamente soddisfando i suoi obiettivi e
eseguendo i compiti per cui è stato progettato.
Agostino Poggi
IA - Agenti
Perché servono gli agenti?
Il computer non è più uno strumento per
specialisti, ma uno strumento di massa,
infatti:
• molte operazioni di uso comune sono sempre
più basate sul computer o potrebbero essere
migliorate con l’uso del computer, ma:
– molti utenti non sono in grado di sfruttare i vantaggi del
computer;
– molti utenti non sono in grado di utilizzare un computer;
– molti utenti vogliono utilizzare liberamente un computer.
Agostino Poggi
IA - Agenti
Perché servono gli agenti?
• l’informazione è ormai la risorsa più importa
per ogni tipo di attività, i computer sono
sicuramente lo strumento più adatto per
accedervi, ma l’operazione non è semplice
per:
– la quantità di informazione accessibile;
– la dinamicità del inserimento e della modifica
dell’informazione;
– la strutturazione eterogenea e spesso molto soggettiva
dell’informazione.
Agostino Poggi
IA - Agenti
Perché servono gli agenti?
• Esistono migliaia di prodotti software che
forniscono una grande varietà di informazioni e
servizi.
• il lavoro di un utente è spesso basato sull’uso
combinato di più prodotti.
• questo lavoro può essere facilitato se questi prodotti
sono in grado di interoperare cioè di scambiarsi
informazioni e/o servizi, ma ciò e quasi sempre
impossibile per l’eterogeneità dei prodotti dovuta a:
–
–
–
–
sono sviluppati da persone diverse;
sono sviluppati in periodi diversi;
sono sviluppati con strumenti diversi;
sono spesso modificati.
Agostino Poggi
IA - Agenti
Perché servono gli agenti?
Gli agenti possono semplificare l’interazione
dell’utente con il computer e quindi facilitarne la
diffusione in tutti i settori di applicazione.
In particolare, gli agenti possono:
• fornire una guida e un aiuto nell’esecuzione delle
operazioni;
• adeguare il sistema al gusto, all’abilità dell’utente;
• eseguire automaticamente sequenze di operazioni
ripetitive;
• nascondere l’eterogeneità dell’informazione e dei
prodotti.
Agostino Poggi
IA - Agenti
Attività miliari : Agent0
• Agent0 può considerarsi il primo linguaggio
ad agenti sviluppato da Shoham nei primi
anni `90.
• I maggiori contributi di questo lavoro sono:
– l’introduzione del concetto di programmazione orientata
agli agenti;
– l’introduzione di un primo linguaggio di comunicazione
per gli agenti;
– l’uso delle speech acts come base di questo linguaggio
di comunicazione.
Agostino Poggi
IA - Agenti
Attività miliari: DARPA
Knowledge Sharing Effort
• È un progetto sponsorizzato dall’agenzia
americana per i progetti di ricerca avanzata il
cui scopo è quello di sviluppare tecnologie
per facilitare la condivisione e lo scambio di
conoscenza tra sistemi anche eterogenei.
• I maggiori contributi di questo lavoro sono:
– la realizzazione di un linguaggio completo per la
comunicazione ad agenti, KQML (Knowledge Query
Manipulation Language);
– la realizzazione di un formato per lo scambio di
conoscenza tra sistemi eterogenei KIF (Knowledge
Interchange Format);
– il loro utilizzo combinato in sistemi basati su agenti.
Agostino Poggi
IA - Agenti
Attività miliari: Telescript
• È il primo linguaggio di programmazione
commerciale basato sugli agenti sviluppato
dalla General Magic nel 1994.
• I maggiori contributi di questo lavoro oltre a
quello di essere il primo linguaggio
commerciale sono:
– l’uso della mobilità del codice in alternativa alle remote
procedure call;
– lo studio e la presentazione di alcune soluzioni per la
gestione della sicurezza in sistemi ad agenti distribuiti.
Agostino Poggi
IA - Agenti
Proprietà di un agente
• Un sistema computazionale per essere
considerato un agente deve avere le seguenti
proprietà:
–
–
–
–
autonomia
reattività
intraprendenza.
abilità sociale
– adattabilità
– mobilità
Agostino Poggi
IA - Agenti
Proprietà di un agente
• Un agente è autonomo, cioè ha controllo
diretto sulle proprie azioni e sul suo stato
interno.
• Un agente è reattivo, cioè è capace di
percepire l’ambiente e di reagire per tempo ai
suoi stimoli.
• Un agente è intraprendente, cioè è capace di
mostrare comportamenti mirati alla
soddisfazione dei suoi obiettivi e di prendere
l’iniziativa.
Agostino Poggi
IA - Agenti
Proprietà di un agente
• Un agente ha abilità sociale, cioè è capace di
interagire con degli altri agenti per coordinare il
loro operato e per negoziare risorse e attività.
• Il coordinamento permette:
– la risoluzione dei conflitti fra gli agenti;
– la realizzazione di compiti comuni.
• La negoziazione permette:
– la risoluzione dei conflitti fra gli agenti;
– lo scambio di risorse e attività.
• L’abilità sociale di un agente è possibile grazie a:
– uso di un linguaggio di comunicazione ad agente comune;
– uso di strategie di coordinamento e negoziazione.
Agostino Poggi
IA - Agenti
Linguaggio di comunicazione
ad agente
• Un linguaggio per la comunicazione ad agenti
dovrebbe avere le seguenti proprietà:
– esprimere i diversi atti linguistici (informare, richiedere, …);
– essere indipendente dal protocollo di comunicazione
utilizzato;
– essere indifferente al contenuto e al formato
dell’informazione;
– essere comprensibile da tutti gli altri agenti.
Comunicazione
Messaggio
Contenuto
Agostino Poggi
IA - Agenti
Linguaggio di comunicazione
ad agente: FIPA ACL
ACL message
Begin message structure
Communicative act type
Message parameter
(inform
:sender agent1
:receiver hpl-auction-server
:content
(price (bid good02) 150)
:in-reply-to round-4
:reply-with bid04
:language sl
:ontology hpl-auction
)
Message content expression
Parameter expression
Agostino Poggi
IA - Agenti
Linguaggio di comunicazione
ad agente: FIPA ACL
• Un agente che comprende il linguaggio ACL
potrà provare a soddisfare un messaggio solo
se:
– capisce il linguaggio del contenuto;
– capisce l’ontologia a cui si riferisce il contenuto.
• Tuttavia:
– degli agenti detti mediator o facilitator possono mediare
l’interazione tra agenti che operano con linguaggi del
contenuto diversi;
– degli agenti detti ontology server possono:
» offrire le ontologie necessarie a soddisfare un
messaggio;
» trasformare le componenti di una ontologia nelle
componenti di un’altra ontologia.
Agostino Poggi
IA - Agenti
Strategie di coordinamento e
negoziazione
• Servono a fondere gli agenti in un gruppo di
individui operanti in modo coerente:
– per evitare il caos durante eventuali conflitti di interesse
tra due o più agenti;
– usufruire delle diverse abilità degli agenti;
– sincronizzare le attività degli agenti.
• L’uso di una o di un altra strategia dipende
principalmente dal tipo di organizzazione:
–
–
–
–
gerarchica;
ad autorità strutturata;
a mercato;
a comunità.
Agostino Poggi
IA - Agenti
Strategie di coordinamento e
negoziazione: pianificazione
multi-agente
Agostino Poggi
IA - Agenti
Strategie di coordinamento e
negoziazione: pianificazione
multi-agente
• È una organizzazione completamente
master-slave:
– il master:
» definisce i diversi piani parziali;
» invia i piani a un insieme di agenti (slave) che
possono eseguire questi piani;
– ogni slave:
» esegue il suo piani;
» invia il risultato;
– il master:
» compone i risultati.
Agostino Poggi
IA - Agenti
Strategie di coordinamento e
negoziazione: contrattazione
Agostino Poggi
IA - Agenti
Strategie di coordinamento e
negoziazione: contrattazione
• È una organizzazione parzialmente
master-slave
• Ad esempio in una rete di contrattazione:
– un banditore annuncia un compito ad un insieme di
possibili contraenti;
– ogni possibile contraente può candidarsi
presentando anche le sue credenziali;
– il banditore sceglie un contraente;
– il contraente può accettare o rifiutare il compito;
– il banditore può licenziare il contraente;
– il contraente può inviare un rapporto
sull’esecuzione del compito.
Agostino Poggi
IA - Agenti
Strategie di coordinamento e
negoziazione: risoluzione
distribuita dei problemi
Agostino Poggi
IA - Agenti
Strategie di coordinamento e
negoziazione: risoluzione
distribuita dei problemi
• È una organizzazione completamente democratica.
• Ad esempio con il metodo dei piani parziali globali:
– ogni agente:
» definisce un piano locale;
» invia il piano locale agli altri agenti coinvolti nel piano;
» riceve i piani locali degli altri agenti;
» costruisce un piano parziale globale;
– e ciclicamente:
» invia il piano parziale globale agli altri agenti;
» riceve i piani parziali globali degli altri agenti;
» modifica il suo piano parziale globale;
– finché il piano inviato non è uguale ai ricevuti.
Agostino Poggi
IA - Agenti
Strategie di coordinamento e
negoziazione: un esempio
Agostino Poggi
IA - Agenti
Realizzazione di sistemi ad
agenti: Scelta dell’architetture
• Esistono tre tipi di architetture:
– deliberative;
– reattive;
– ibride.
• Una architettura deliberata richiede che l’agente
abbia un esplicito modello simbolico del mondo.
L’agente agisce tramite ragionamento logico.
• Una architettura reattiva evita la necessità che
l’agente abbia un esplicito modello simbolico del
mondo e un sistema di ragionamento. L’agente
agisce combinando le routine attivate in risposta
agli stimoli esterni.
Agostino Poggi
IA - Agenti
Realizzazione di sistemi ad
agenti: l’architettura BDI
• Una architettura BDI si basa su tre
componenti:
– Belief: informazioni che l’agente ha sul mondo;
– Desire: obiettivi che l’agente è interessato a raggiugere;
– Intention: obiettivi che l’agente può correntemente
perseguire.
• Un agente BDI:
– continua ad acquisire informazioni dal mondo esterno;
– ragiona su quali obiettivi poter puntare;
– esegue le azioni atte a raggiungerle.
Agostino Poggi
IA - Agenti
Realizzazione di sistemi ad
agenti: scelta del linguaggio
• Un linguaggio di programmazione è solo uno
strumento per realizzare un agente.
• Ma:
– un agente può inseguire diversi obiettivi
contemporaneamente;
– la comunicazione tra agenti avviene attraverso lo
scambio di messaggi;
– non esiste conoscenza in comune se non quella
scambiata con i messaggi.
• Un agente è una estensione di un oggetto.
Agostino Poggi
IA - Agenti
Realizzazione di sistemi ad
agenti: scelta del linguaggio
Componenti
Processo computazionale
Oggetto
stato e metodi
Tipi di messaggi
passaggio di messaggi e
esecuzione metodi di risposta
richiesta di un servizio
Parallelismo
Costrizione sui messaggi
Multi-thread
precondizioni
Agente
convinzioni, impegni, capacità,
scelte, ...
richiesta e offerta di servizi,
invio di informazioni, promesse,
...
diversi comportamenti attivi
consistenza, onestà, ...
Agostino Poggi
IA - Agenti
Realizzazione di sistemi ad
agenti: seguire uno standard
• Per poter interoperare con sistemi sviluppati
da altre aziende o da altre organizzazioni, è
necessario seguire degli standard.
• Esistono varie organizzazioni interessate alla
definizione di standard per le tecnologie ad
agenti:
– Agent Society;
– Foundation for Intelligent Physical Agents;
– Internet Engineering Task Force;
– Object Management Group;
– WWW Consortium.
Agostino Poggi
IA - Agenti
Realizzazione di sistemi ad
agenti: lo standard FIPA
• La Foundation for Intelligent Physical Agents (FIPA) è
una associazione internazionale non-profit di aziende
il cui scopo è produrre le specifiche per una
tecnologia ad agenti che possa divenire uno
standard.
• In particolare, FIPA è in corso di specificare:
–
–
–
–
–
–
–
Agent management ;
Agent communication language;
Agent/software integration;
Human/Agent Interaction;
Agent Security;
Agent Mobility;
Ontology Service.
Agostino Poggi
IA - Agenti
Realizzazione di sistemi ad
agenti: la piattaforma FIPA
Software
Agent
Agent Platform
Agent
Managem ent
System
Directory
Facilitator
ACC
Internal Platform Message Transport
Agostino Poggi
IA - Agenti
Realizzazione di sistemi ad
agenti: JADE
• Ambiente di sviluppo di sistemi multi-agenti
in Java le cui proprietà sono:
– distribuzione degli agenti di un sistema su diversi
calcolatori;
– uso di agenti leggeri multi-tasking;
– sviluppo di piattaforme conformi allo standard FIPA;
– registrazione degli agenti trasparente al programmatore;
– offre interfacce grafiche per la gestione e lo sviluppo dei
sistemi;
– uso di IIOP per connettersi ad altri sistemi standard FIPA.
Agostino Poggi
IA - Agenti
Realizzazione di sistemi ad
agenti: JADE
Agent
container
ACC
Agent
Management
System
Agent
Agent
container
Agent
Directory
Facilitator
Communication thread
Agent
Agent
Management
System
Agent
Communication thread
Agent
container
Agent
Agent
Agent
Management
System
Agent
Communication thread
Agostino Poggi
IA - Agenti
Realizzazione di sistemi ad
agenti: JADE
AGENT CONTAINER (FE)
Agent
Container
Table
Agent
Global
Descriptor
Table
Communication thread
AGENT CONTAINER
AGENT CONTAINER
Agent1
event
Agent2
Agent3
Local
cache
event
Communication thread
Java RMI
Communication thread
Agostino Poggi
IA - Agenti
Realizzazione di sistemi ad
agenti: JADE
Agostino Poggi
IA - Agenti
Applicazioni
Gli agenti sono già utilizzati per un vasto
insieme di applicazioni:
• per il recupero e il filtraggio delle
informazioni;
• per la gestione di agende, meeting;
• per il mercato elettronico;
• per la gestione di servizi on demand;
• per la gestione di reti;
• per l’automazione di processi.
Agostino Poggi
IA - Agenti
Applicazioni: un sistema per
video on demand
Agostino Poggi
IA - Agenti
Applicazioni: un sistema per
video on demand
Web
Agent
container
GA
ACC
Agent
Management
System
CA
Agent
container
UPA
Directory
Facilitator
Communication thread
Agent
Management
System
IA
Communication thread
Agent
container
Agent
Management
System
IA
Communication thread
Agostino Poggi
IA - Agenti
Applicazioni: un sistema per il
controllo di braccio robotico
Agent
container
MMI
ACC
Agent
Management
System
Communication thread
P
Agent
container
PE
Directory
Facilitator
SDI
D
Agent
Management
System
S
Communication thread
Agostino Poggi
Scarica

Università degli Studi di Parma

qui

qui