INTRODUZIONE vii
Nel capitolo 4 verra` descritto il progetto alla base di questa tesi: verra`
definito il modello concettuale del sistema di coordinazione tra ruoli e agen-
ti in powerJade, verra` descritto il modello dello stato mentale degli agen-
ti, la gestione dei piani e come avviene il coordinamento tra ruoli per il
raggiungimento degli stessi.
Nel capitolo 5 verra` descritta quindi l’implementazione effettiva del mo-
dello descritto nel capitolo 4, offrendo una panoramica sui package, sulle
classi sviluppate e sulle scelte tecniche.
Seguono quindi le conclusioni nelle quali verranno fatte delle considera-
zioni sull’intero lavoro e verranno analizzati alcuni possibili sviluppi futuri.
Il documento e` dotato inoltre di quattro appendici:
nell’appendice A viene descritto uno scenario dimostrativo che utilizza
la piattaforma descritta in questo documento.
Nell’appendice B viene presentato lo standard FIPA ACL utilizzato nel
framework JADE e quindi alla base di questa tesi.
Nell’appendice C viene presentato un esempio di log dello scambio di
messaggi per la coordinazione in powerJade.
Nell’appendice D vengono infine forniti alcuni listati del codice sorgente.
Il documento termina con i ringraziamenti e la bibliografia.
Capitolo 1
Sistemi Multi Agente
1.1 Panoramica generale
La sviluppo dei sistemi informatici nel corso degli anni e` stato orientato da
cinque obiettivi principali: ubiquita`, interconnessione, delega, intelligenza
e human-orientation. Si puo` pensare ad esempio alla continua riduzione
dei costi che ha consentito l’introduzione dell’Informatica in contesti sempre
piu` variegati e complessi fino a raggiungere una sorta di ubiquita` oppure a
sistemi informatici che non sono piu` stand-alone ma collegati in grandi reti
distribuite (come Internet) e che vengono sempre piu` delegati ad eseguire
compiti in sostituzione di un essere umano (soprattutto nel caso di situazioni
safety-critical). Il grande impatto avuto sulla societa` ha portato quindi a
sistemi orientati sempre meno alla macchina e sempre piu` all’utente finale.
In questo senso possiamo identificare uno sviluppo della programmazione
verso un livello di astrazione sempre piu` elevato.
La ricerca della delega e dell’intelligenza nei sistemi informativi ha im-
plicato la necessita` di sviluppare sistemi in grado di agire effettivamente: i
sistemi devono poter agire indipendentemente e seguire cio` che rappresenta
al meglio il proprio interesse durante l’interazione con un essere umano o un
altro sistema. L’implementazione dell’interconnessione ha reso necessario lo
sviluppo di sistemi che possano cooperare (o in alcune situazioni competere)
e raggiungere accordi. Queste esigenze hanno messo in evidenza alcuni limiti
della programmazione ad oggetti e hanno portato allo studio di un nuovo
1.2 Agenti intelligenti 2
campo dell’Informatica: i Sistemi Multi Agente.
Un agente puo` essere concepito come qualunque cosa in grado di per-
cepire il proprio ambiente attraverso sensori e di agire in quell’ambiente
attraverso attuatori [36]. In ambito informatico, un agente e` essenzialmente
un componente software autonomo, in grado di eseguire azioni e interagire
con l’ambiente circostante in modo indipendente seguendo i propri obiettivi.
Un Sistema Multi Agente (da qui in avanti MAS ) e` un sistema nel quale
gli agenti interagiscono tra loro seguendo ognuno il proprio obiettivo coope-
rando, coordinandosi ed eventualmente negoziando tra loro. Il MAS dovra`
risolvere le seguenti problematiche:
• In che linguaggio comunicheranno gli agenti?
• In che modo agenti che seguono il proprio interesse possono riconoscere
conflitti ed (eventualmente) raggiungere accordi?
• come possono agenti autonomi coordinare le proprie attivita` per coo-
perare al raggiungimento di obiettivi?
Questi punti pongono il MAS in un contesto interdisciplinare influenzato
e ispirato da economia, filosofia, teoria dei giochi, logica e scienze sociali.
Questo aspetto da un lato e` un punto di forza (unendo metodologie ben
fondate nel proprio campo), da un altro e` invece una debolezza (dovuto ai
diversi punti di vista). Questo paradigma offre un punto di incontro tra siste-
mi distribuiti/concorrenti (che non gestiscono l’autonomia) e l’Intelligenza
Artificiale classica (che ignora l’aspetto sociale degli agenti).
1.2 Agenti intelligenti
Le principali differenze tra un agente ed un oggetto sono l’autonomia dell’a-
gente e la sua capacita` di essere flessibile: gli oggetti eseguono ciecamente
le richieste, gli agenti lo fanno solo se la richiesta e` compatibile con i propri
obiettivi. Per flessibilita` si intendono tre caratteristiche fondamentali per
un agente intelligente:
• Reattivita`: capacita` dell’agente di reagire ai cambiamenti dell’am-
biente
1.2 Agenti intelligenti 3
Figura 1.1: Gli agenti interagiscono con l’ambiente per mezzo di sensori e
attuatori
• Pro-attivita`: comportamento goal-oriented dell’agente e la sua ca-
pacita` di riconoscere opportunita` e prendere iniziative
• Socialita`: capacita` di interagire con gli agenti
Altre proprieta` importanti legate ad un agente intelligente sono la veridicita`
(capacita` di non divulgare informazioni false consapevolmente), benevolen-
za (non avere obiettivi in conflitto tra loro), razionalita` (l’agente agira` per
raggiungere il proprio obiettivo e non agira` se questo non e` raggiungibile),
apprendimento (l’agente migliora le sue prestazioni nel tempo). L’imple-
mentazione piu` o meno dettagliata di queste caratteristiche dipende dal-
l’ambiente nel quale l’agente agisce. Gli ambienti possono essere di diversi
tipi e distinguibili nel seguente modo:
Completamente osservabile vs. Parzialmente osservabile : un am-
biente e` completamente osservabile se l’apparato sensorio dell’agente
garantisce accesso allo stato completo dell’ambiente.
Deterministico vs. Stocastico : un ambiente e` deterministico se il suo
prossimo stato e` completamente determinabile dallo stato attuale e
dalle azioni selezionate dagli agenti.
1.3 Comunicazione tra agenti 4
Episodico vs. Sequenziale : un ambiente e` episodico se l’esperienza del-
l’agente e` suddivisibile in episodi, ovvero la qualita` della sua azione
dipende solo dall’episodio stesso.
Statico vs. Dinamico : un ambiente e` statico se l’ambiente non puo`
cambiare mentre l’agente sta deliberando.
Discreto vs. Continuo : un ambiente e` discreto se il numero di percezioni
e azioni distinte e` finito.
I differenti tipi di ambiente condizionano fortemente il tipo di implementa-
zione dell’agente. Il caso di ambiente parzialmente osservabile, stocastico,
dinamico e continuo e` il caso piu` difficile da trattare.
1.3 Comunicazione tra agenti
Una delle componenti chiave in un MAS e` la comunicazione. L’agente ha
bisogno di comunicare per giungere a certi scopi: informare, mettere in
guardia, chiedere aiuto, condividere conoscenza o promettere qualcosa. Af-
finche´ i messaggi possano essere capiti da tutti gli agenti coinvolti dev’essere
stabilito uno speciale linguaggio di comunicazione per agenti, il quale si ap-
poggia alla teoria degli atti linguistici di Searle [37] che evidenzia tre aspetti
dell’atto comunicativo: l’atto locutorio (il messaggio stesso), l’atto illocu-
torio (cio` che il mittente intendeva dire nell’eseguire l’atto comunicativo)
e l’atto perlocutorio (effetto dell’atto comunicativo sul ricevente). Gli atti
comunicativi utilizzano dei performativi per fornire una tassonomia degli
atti illocutori (alcuni performativi sono ad esempio richiedere, informare,
confermare, ecc.).
Il primo linguaggio di comunicazione per agenti (da qui in avanti ACL)
ad avere una larga diffusione e` stato KQML (Knowledge Query and Manipu-
lation Language) [30], linguaggio che definisce una serie di atti performativi
e permette di utilizzare per i contenuti un linguaggio simile alla logica del
primo ordine (KIF [20]). Il linguaggio ACL piu` diffuso e studiato del momen-
to e` FIPA (Foundation for Intelligent Physical Agents) che incorpora molti
aspetti del KQML come la definizione di performativi che caratterizzano i
1.4 Architetture degli agenti 5
messaggi. La caratteristica principale di FIPA e` la possibilita` di utilizza-
re linguaggi diversi per i contenuti e la gestione di conversazioni attraverso
alcuni protocolli di interazione predefiniti. Oltre alla comunicazione, FIPA
definisce alcune specifiche per la definizione degli agenti e stabilisce il mo-
dello di riferimento logico per la creazione, la registrazione, la localizzazione,
la comunicazione, la migrazione e le operazioni degli agenti. Il progetto alla
base di questa tesi e` basato su questo standard e maggiori dettagli sono
presenti nell’Appendice B.
1.4 Architetture degli agenti
Per architettura di un agente si intende una particolare metodologia per la
costruzione degli agenti che specifica come l’agente puo` essere scomposto
in componenti modulari e come questi moduli dovrebbero interagire. L’in-
sieme di questi moduli definisce come l’unione tra gli input sensoriali e lo
stato interno dell’agente determinano le azioni da compiere e il futuro stato
dell’agente.
Originariamente (1956-1985) la maggior parte degli agenti implementa-
vano l’Intelligenza Artificiale tramite il metodo del ragionamento simbolico
che costituisce un caso particolare di sistema knowledge-based contenente
la rappresentazione simbolica del mondo. Il problema principale di questa
architettura e` la difficolta` nel rappresentare le informazioni del mondo cir-
costante in un modello simbolico accurato. Questo approccio e` stato abban-
donato proprio per la difficolta` riscontrata nel risolvere questo problema e la
poco agevole implementazione di ragionamento e pianificazione automatica
in questi sistemi.
Un secondo possibile approccio e` quello degli agenti a ragionamento de-
duttivo che consiste nel definire la miglior azione eseguibile in ogni situazione
data: se viene trovata un’azione che permette di dimostrare una teoria da-
ta, quell’azione viene eseguita. In caso contrario, viene eseguita un’azione
consistente che non dimostra la negazione dell’obiettivo. Questo approc-
cio assume un ambiente statico durante la fase deliberativa. Il problema
principale che limita questa architettura e` l’utilizzo della logica del primo
ordine che rende la presa di decisione un problema indecidibile. Utilizzando
1.4 Architetture degli agenti 6
la logica proposizionale non si risolverebbe il problema della complessita` in
quanto il problema ricadrebbe nella classe dei problemi co-NP-completi.
Gli agenti a ragionamento pratico, a differenza delle precedenti tipologie
di agente orientato verso le credenze, utilizzano un ragionamento orientato
verso le azioni. Il ragionamento umano consiste di due attivita`: la delibera-
zione (ovvero la decisione su quale obiettivo raggiungere) e la pianificazione
(ovvero come raggiungere l’obiettivo deliberato). Gli obiettivi che l’agente
ha deciso di raggiungere vengono definiti intenzioni.
Il principale (e piu` ovvio) ruolo delle intenzioni e` influenzare le azioni da
compiere. Le intenzioni in questo (secondo Bratman [11]) hanno un ruolo
maggiore rispetto ai desideri. Esse inoltre persistono fin quando non vengono
raggiunte o l’agente reputa che siano diventate irraggiungibili vincolando in
questo modo i futuri ragionamenti pratici: l’agente non accettera` nuove
intenzioni inconsistenti con quelle esistenti. In base alla persistenza delle
intenzioni si puo` distinguere tra tre possibili tipologie di agente:
1. l’agente blind commitment manterra` l’intenzione fin quando non sara`
raggiunta (questi agenti sono definiti anche fanatici)
2. l’agente singled-minded commitment mantiene un’intenzione fin quan-
do non la raggiunge o si rende conto che questa non e` piu` raggiungibile
3. l’agente open-minded commitment manterra` l’intenzione fin quando
viene ritenuta possibile
Un problema legato alle intenzioni e` quello degli effetti collaterali : se ad
esempio un agente crede che ϕ→ ψ, nel momento in cui intende ϕ non neces-
sariamente intende ψ. Questo concetto e` presente anche nel ragionamento
umano e facilmente identificabile con un esempio: se una persona sa che
andare dal dentista provoca dolore e ha intenzione di andare dal dentista,
non sara` certo intenzione di quella persona provare dolore.
Definita una rappresentazione delle intenzioni, una rappresentazione per
le azioni eseguibili e una rappresentazione dell’ambiente, l’agente deve ge-
nerare un piano per il raggiungimento dell’obiettivo.
Il problema si sposta a questo punto sul come rappresentare queste infor-
mazioni. Uno strumento fondamentale per la rappresentazione e` l’ontologia:
1.4 Architetture degli agenti 7
Figura 1.2: Schema della pianificazione per agenti a ragionamento pratico
una rappresentazione formale, condivisa ed esplicita di una concettualizza-
zione del dominio di interesse. Viene inoltre adottato il concetto del Close
World Assumption: cio` che non e` esplicitamente asserito e` considerato falso.
Le azioni vengono infine descritte attraverso la tecnica STRIPS e composte
dai seguenti elementi:
• un nome che identifica l’azione
• una serie di pre-condizioni che se verificate attivano l’azione
• una delete list contenente la serie di fatti che non saranno piu` veri
dopo l’esecuzione dell’azione
• una add list che contiene l’insieme di fatti che saranno veri dopo
l’esecuzione dell’azione
Questo metodo risolve il problema della monotonicita` della conoscenza che
caratterizza la logica del primo ordine ma mal si adatta al mondo reale.
Introdotti questi strumenti si puo` definire il ciclo di vita dell’agente a
ragionamento pratico nel seguente modo:
1. while true