Capitolo 5: “Environments”
da “Programming Multi-Agent Systems in AgentSpeak using Jason”
val.sica@studenti.unina.it
JASON
Interprete basato su Java per una versione estesa di AgentSpeak
Fornisce una piattaforma per lo sviluppo di sistemi multi-agente
Distingue tra:
Ø
Architettura agente
Ø
Programma agente
BDI agents
Sistemi di pianificazione reattivi
Piano di esecuzione
Comportamenti reattivi e proattivi
Piano
Sequenza di azioni che compie l’agente per raggiungere il goal
Contesto: definisce quando un piano può essere considerato applicabile
Body: sequenza di azioni
Ciclo di Ragionamento
1. Percezione dell’ambiente;
2. Aggiornamento delle credenze di base;
3. Ricezione di comunicazioni da altri agenti;
4. Selezione di messaggi “socialmente accettabili”;
5. Selezione di un evento;
6. Recupero dei piani rilevanti;
7. Scelta dei piani applicabili;
8. Selezione di un piano applicabile;
9. Selezione di un’intenzione;
10. Esecuzione di uno step di un’intenzione.
Ambiente
Condiviso tra più agenti
Tipicamente è il mondo reale, ma anche internet
Simulazione degli aspetti dinamici dell’ambiente attraverso la creazione di un modello computazionale di mondo reale o ambiente artificiale
Può essere eseguito su una macchina
diversa rispetto all’agente
Ambiente: Mondo Reale
Le tecniche dei sistemi multi-agente vengono utilizzate per sviluppare sistemi distribuiti complessi
Tecniche di validazione, come simulazione e testing, vengono usate per valutare come reagisce il sistema in particolari circostanze d’ambiente (es:applicazioni industriali)
E’ possibile personalizzare l’architettura così che
l’agente possa percepire l’ambiente
Perché usare Java?
Perché:
l’astrazione della programmazione ad oggetti è eccellente per gli agenti di attuazione
fornisce le astrazioni necessarie per modelli ambientali
supporta le interfacce grafiche usate per
sviluppare un ambiente
Jason per modelli d’ambiente
Il sistema multi-agente è costruito facendo operare una serie di agenti AgentSpeak in un ambiente condiviso
Ogni agente dovrà interagire con
l’ambiente ma anche con gli altri agenti,
possibilmente ditrettamente, attraverso
azioni basate sulla comunicazione
Interazione tra un’implementazione
d’ambiente ed un’architettura agente
Classe Environment
supporta la percezione individuale
mantiene strutture dati usate per memorizzare sia le percezione a cui ha accesso l’agente sia quelle globali a cui hanno accesso tutti
il metodo getPercepts() restituisce tutte le
percezioni disponibili per l’agente chiamante
Classe User Environment
Metodi classe Environment
addPercepts(L): aggiunge il letterale L alla lista globale delle percezioni;
addPercepts(A,L): aggiunge il letterale L alla lista delle percezioni dell’agente A;
removePercepts(L): rimuove L dalla lista globale delle percezioni;
removePercepts(A,L): rimuove L dalla lista delle percezioni dell’agente A;
clearPercepts(L): cancella tutte le percezioni nella lista globale;
clearPercepts(A,L): cancella tutte le percezioni dalla lista
dell’agente A.
Ambiente Jason
L’accesso alle liste delle percezioni nella classe Environment è automaticamente sincronizzato con i metodi appena presentati
Ogni volta che un agente tenta di eseguire
un’azione d’ambiente, il nome dell’agente e la
struttura che rappresenta l’azione richiesta
vengono inviati come parametri al metodo
executeAction, che provvede a controllarli
Ambiente Jason
Le percezioni cambiano in base alle azioni che devono essere eseguite
Le esecuzioni di un’azione necessitano di un valore di ritorno booleano per indicare se l’istruzione richiesta dall’agente è stata tentata o rifiutata dall’ambiente
Un piano fallisce se qualsiasi azione di base
tentata dall’agente fallisce
Errori in Jason
Credere, erroneamente, che l’agente tenga traccia di alcune percezioni anche dopo la fine del ciclo di ragionamento
Si usano, quindi, le note mentali che sono
c o n s e r v a t e f i n o a l l a l o r o e s p l i c i t a
cancellazione, mentre le percezioni esistono
finchè sono vere per l’ambiente
Errori in Jason
Disallineamenti del nome dell’azione, spesso dovuti ad errori di battitura, tra il modello d’ambiente ed il codice degli agenti AgentSpeak
Si risolve creando un’ontologia di termini da
utilizzare sia negli agenti, sia nell’ambiente,
sia nella comunicazione tra agenti
[Esempio] Esecuzione di un MAS:
Uso di un modello di progettazione orientata agli oggetti chiamato Model-View-Control:
•
Model: mantiene le informazioni sullo stato dell’ambiente e sulle dinamiche dell’ambiente;
•
View: rende il modello in una forma adatta per la visualizzazione;
•