• Non ci sono risultati.

Capitolo 5: “Environments” da “ Programming Multi-Agent Systems in AgentSpeak using Jason ”

N/A
N/A
Protected

Academic year: 2021

Condividi "Capitolo 5: “Environments” da “ Programming Multi-Agent Systems in AgentSpeak using Jason ”"

Copied!
31
0
0

Testo completo

(1)

Capitolo 5: “Environments”

da “Programming Multi-Agent Systems in AgentSpeak using Jason”

val.sica@studenti.unina.it

(2)

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

(3)

BDI agents

ž  Sistemi di pianificazione reattivi

ž  Piano di esecuzione

ž  Comportamenti reattivi e proattivi

(4)

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

(5)

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.

(6)

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

(7)

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

(8)

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

(9)

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

(10)

Interazione tra un’implementazione

d’ambiente ed un’architettura agente

(11)

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

(12)

Classe User Environment

(13)

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.

(14)

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

(15)

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

(16)

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

(17)

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

(18)

[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;

• 

Control: interagisce con gli agenti ed invoca le

modifiche nel modello

(19)

[Esempio] Esecuzione di un MAS:

(20)

[Esempio] Esecuzione di un MAS:

(21)

[Esempio] Esecuzione di un MAS:

(22)

[Esempio] Esecuzione di un MAS:

(23)

[Esempio] Esecuzione di un MAS:

(24)

[Esempio] Esecuzione di un MAS:

(25)

[Esempio] Esecuzione di un MAS:

(26)

[Esempio] Esecuzione di un MAS:

(27)

MVC

ž  Il Model implementa un metodo per ogni possibile azione nell’ambiente

ž  Questi metodi devono controllare le

precondizioni dell’azione, modificare

opportunamente gli attributi e restituire un

valore booleano che indica se l’azione è

stata eseguita o no

(28)

MVC

boolean getBeer() {

if (fridgeOpen && availableBeers > 0 && ! carryingBeer){

availableBeers--;

carryingBeer = true;

return true;

}

else {

return false;

}

}

(29)

MVC

boolean handInBeer() { if (carryingBeer) {

sipCount = 10;

carryingBeer = false;

return true;

}

else{

return false;

}

}

(30)

MVC

ž  Il Controller fornisce le percezioni agli agenti e riceve le loro azioni

ž  E’ creato estendendo la classe Environment

ž  Può creare il Model e la View, usando il

metodo init():

(31)

Per ulteriori esempi, consultare il testo

“Programming Multi-Agent Systems in AgentSpeak using Jason”

Nella lezione successiva verrà mostrato come avviene la comunicazione e l’interazione tra

agenti in Jason

Riferimenti

Documenti correlati

!  Events due to the agent having new goals happen mostly as a consequence of the execution of other plans, but also as a consequence of agent communication. !  The goal

rispetto agli altri, la funzione di selezione deve essere riprogrammata cosi da selezionare, in questo ciclo di ragionamento, il secondo evento dalla lista degli eventi..  Un

Questo fenomeno, causa riflessioni multiple su Ionosfera e sulla superficie terrestre permette di raggiungere zone molto distanti che apparentemente sarebbero

tale relazione (legge di Snell per mezzi a simmetria sferica) e’ alla base della propagazione troposferica cioè della propagazione nella fascia più bassa

•  La propagazione in un condotto dà origine ad attenuazione inferiore rispetto a quella di spazio libero  la potenza si propaga in uno strato bidimensionale, e

 Il fenomeno della diffrazione può essere introdotto e descritto a partire dal principio di Huygens o delle sorgenti secondarie : noto il fronte d onda F all istante t, è

–  Riflessione del suolo, diffrazione da knife-edge, ellissoide di Fresnel –  Metodi per il calcolo della diffrazione da ostacoli. –  Teoria geometrica della

•  The field amplitude / phase change at the interaction point according to proper Fresnel’s reflection (transmission) coefficients. θ i