Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

38
Università degli Studi di Parma Sistemi ad agenti Agostino Poggi

Transcript of Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

Page 1: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

Università degli Studi di Parma

Sistemi ad agenti

Agostino Poggi

Page 2: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 3: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 4: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 5: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 6: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 7: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 8: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 9: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 10: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

Proprietà di un agente

• Un sistema computazionale per essere considerato un agente deve avere le seguenti proprietà:

– autonomia

– reattività

– intraprendenza.

– abilità sociale

– adattabilità

– mobilità

Page 11: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 12: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 13: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Messaggio

Contenuto

Comunicazione

Page 14: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

Linguaggio di comunicazione ad agente: FIPA ACL

(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)

Begin message structure

Communicative act type

Message parameter

ACL message

Message content expression

Parameter expression

Page 15: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 16: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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à.

Page 17: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

Strategie di coordinamento e negoziazione: pianificazione

multi-agente

Page 18: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 19: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

Strategie di coordinamento e negoziazione: contrattazione

Page 20: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 21: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

Strategie di coordinamento e negoziazione: risoluzione

distribuita dei problemi

Page 22: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 23: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

Strategie di coordinamento e negoziazione: un esempio

Page 24: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 25: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 26: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 27: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

Realizzazione di sistemi ad agenti: scelta del linguaggio

Oggetto AgenteComponenti stato e metodi convinzioni, impegni, capacità,

scelte, ...Processo computazionale passaggio di messaggi e

esecuzione metodi di rispostaTipi di messaggi richiesta di un servizio richiesta e offerta di servizi,

invio di informazioni, promesse,...

Parallelismo Multi-thread diversi comportamenti attiviCostrizione sui messaggi precondizioni consistenza, onestà, ...

Page 28: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 29: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 30: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

Realizzazione di sistemi ad agenti: la piattaforma FIPA

Internal Platform Message Transport

Agent

DirectoryFacilitator

AgentManagement

System

Software

Agent Platform

ACC

Page 31: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 32: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

Realizzazione di sistemi ad agenti: JADE

Agentcontainer

AgentManagement

System

Communication thread

DirectoryFacilitator

ACC

Agent

Agent

Agentcontainer

AgentManagement

System

Communication thread

Agent

Agent

Agent

Agentcontainer

AgentManagement

System

Communication thread

Agent

Agent

Page 33: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

Realizzazione di sistemi ad agenti: JADE

Communication thread

AGENT CONTAINER

Communication thread

AGENT CONTAINER (FE)

Communication thread

AGENT CONTAINER

Java RMI

Agent2

event

Localcache

AgentGlobalDescriptorTable

event Agent3

Agent1

AgentContainerTable

Page 34: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

Realizzazione di sistemi ad agenti: JADE

Page 35: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

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.

Page 36: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

Applicazioni: un sistema per video on demand

Page 37: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

Applicazioni: un sistema per video on demand

Agentcontainer

AgentManagement

System

Communication thread

DirectoryFacilitator

ACC

CA

UPA

GAAgentcontainer

AgentManagement

System

Communication thread

IA

Agentcontainer

AgentManagement

System

Communication thread

IA

Web

Page 38: Università degli Studi di Parma Sistemi ad agenti Agostino Poggi.

IA - Agenti

Agostino Poggi

Applicazioni: un sistema per il controllo di braccio robotico

Agentcontainer

AgentManagement

System

Communication thread

DirectoryFacilitator

ACC PE

Agentcontainer

AgentManagement

System

Communication thread

S

PMMI

D

SDI