IMPLEMENTAZIONE DEL SISTEMA MULTI

Download Report

Transcript IMPLEMENTAZIONE DEL SISTEMA MULTI

IMPLEMENTAZIONE DEL
SISTEMA MULTI-AGENTE ABACO
CON LA PIATTAFORMA RTP
MODULO 1
Linguaggi di Programmazione
(Complementi)
1
IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE ABACO
CON LA PIATTAFORMA RTP
Contenuto lezione

ABACO: elementi base

ABACO è un’archittettura concettuale

Requisiti per implementare ABACO

RTP: introduzione
MODULO 1
Linguaggi di Programmazione
(Complementi)
2
IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE ABACO
CON LA PIATTAFORMA RTP
Contenuto lezione

Implementazione di ABACO con RTP

Agenti ABACO con RTP

Comunicazione tra agenti

La strategia per gestire i comportamenti

Un esempio
MODULO 1
Linguaggi di Programmazione
(Complementi)
3
IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE ABACO
CON LA PIATTAFORMA RTP
Contenuto lezione

Considerazioni per sviluppi futuri

Il linguaggio ACL

L’architettura

Demo implementazione corrente
MODULO 1
Linguaggi di Programmazione
(Complementi)
4
ABACO: ELEMENTI BASE
ABACO
(Agent-Based Architecture for Cooperation)


MODULO 1
è stata definita come un’architettura multiagente i cui componenti sono agenti reattivi
che utilizzano un linguaggio comune (ACL).
è stata concepita per supportare il
coordinamento di attivitá svolte da attori
(umani)
Linguaggi di Programmazione
(Complementi)
5
ABACO: ELEMENTI BASE
Agenti ABACO
Caratteristiche:



localitá
interazione
capacitá di percepire l’ambiente
La composizione di agenti da origine
al meccanismo di coordinamento
Il Comportamento globale di tale meccanismo emerge da:
interazioni locali + reazione a stimoli dall’ambiente
MODULO 1
Linguaggi di Programmazione
(Complementi)
6
ABACO: ELEMENTI BASE
Agenti ABACO
Struttura:
internal state
local data
MODULO 1
Linguaggi di Programmazione
(Complementi)
script
value
script
attribute
Working memory
script
value
script
attribute
behavior
7
ABACO: ELEMENTI BASE
ACL (Agent Communication Language)
<behavior>::=
<pattern>+
<pattern>::=
<message>  [IF<cond>] <handler> | <cond>  <handler>
<handler>::=
<reaction> | <reaction> ; <handler>
<reaction>::=
<local computation> | <communication>
<communication> ::=
[IF <cond>] <out-comm> | [IF <cond>] <out-comm> // <communication>
<out-comm>::=
send to <agent> : <message>
<agent>::=
all (<list>) | anyof (<list>)
<list>::=
<agent-type>+ | <agent-name>+
<message>::=
tell (<data> [{<attribute: value>*}]) |
ask (<info> [{<attribute: value>*}]) |
create (<attribute: value>* [{<attribute: value>*}]) |
define (<attribute: value>* [{<attribute: value>*}])
< data >::=
<attribute: value>* | new-behavior: <behavior>
< info >::=
<attribute>* | behavior
<value>::=
<any-data-type>* ; <agent-type>*
MODULO 1
Linguaggi di Programmazione
(Complementi)
8
ABACO È UN’ARCHITTETTURA CONCETTUALE
ABACO è un’architettura concettuale


MODULO 1
Non fa riferimento ad alcuna
piattaforma esistente
Ricercare quale piattaforma
concreta può essere utilizzata
per l’implementazione
Linguaggi di Programmazione
(Complementi)
9
REQUISITI PER IMPLEMENTARE ABACO
Requisiti per implementare ABACO




Supportare flessibilità che rifletta complessità di
supportare il coordinamento tra le persone:
Dinamicità della topologia
Dinamicità delle interazioni tra agenti
Sviluppo incrementale
MODULO 1
Linguaggi di Programmazione
(Complementi)
10
REQUISITI PER IMPLEMENTARE ABACO
Scelto piattaforma RTP (Real Time Performer)




MODULO 1
Paradigma component-connector
Altamente distribuita
Definizione dinamica della
topologia
Supporto per interazioni dinamiche
tra agenti
Linguaggi di Programmazione
(Complementi)
11
RTP: INTRODUZIONE
RTP (Real Time Performer)
Elementi messi a disposizione dalla piattaforma:
•
Performers: componenti computazionali passive
•
Projectos:
•
Topologists: componenti che definiscono Performers e
Projectors
•
Strategists: forniscono politiche su come e quando
le componenti interagiscono
Engine:
motore del sistema, quando attivo le
componenti possono interagire.
•
MODULO 1
componenti che consentono scambio di
comunicazioni tra Performers
Linguaggi di Programmazione
(Complementi)
12
RTP: INTRODUZIONE
RTP (Real Time Performer)
Un esempio di uso di RTP
un sistema di monitoraggio ambientale in cui diversi
sensori (Fsi) leggono dei valori (SAMPLE)
dall’ambiente,
li passano ad una centralina (Monitor) che li elabora
(COMPUTE)
e li passa ad un sistema centrale (Central System)
MODULO 1
Linguaggi di Programmazione
(Complementi)
13
RTP: INTRODUZIONE
Topologist
Strategist
CREATE
PRESENT
SYNC
add request(SAMPLE,FS1)
COMPUTE
command performer
SYNC
get request
SAMPLE
Engine
MODULO 1
Linguaggi di Programmazione
(Complementi)
14
IMPLEMENTAZIONE DI ABACO CON RTP
Implementare ABACO con RTP
Cosa vuol dire:
Mappare gli elementi costitutivi di ABACO
AGENTI (ed interazioni tra)
In termini di elementi costitutivi di RTP
Performer, Strategist, Topologist, Projector, Engine,...
MODULO 1
Linguaggi di Programmazione
(Complementi)
15
IMPLEMENTAZIONE DI ABACO CON RTP
Implementare ABACO con RTP
In particolare per quel che riguarda i comportamenti
ABACO
RTP
Agenti
Componenti
Classi
MODULO 1
comportamenti (ACL)
comandi (1 o +)
metodi
Linguaggi di Programmazione
(Complementi)
16
IMPLEMENTAZIONE DI ABACO CON RTP
Implementare ABACO con RTP
COME?
MODULO 1
Linguaggi di Programmazione
(Complementi)
17
AGENTI ABACO CON RTP
Agenti ABACO in termini di RTP
Agente=<Strategist, Topologist, Performer, Engine, Trace>
Ogni Agente:
Agente
Input
port
Trace
Strategist
Topologist
Stato
Comportamenti


Performer

Engine
MODULO 1
Local
port
Output
port

può essere creato
dinamicamente da un altro
agente
può modificare dinamicamente
i propri comportamenti e il
proprio stato
può modificare dinamicamente
i comportamenti e lo stato di
altri agenti
può essere definito in modo
incrementale
Linguaggi di Programmazione
(Complementi)
18
COMUNICAZIONE TRA AGENTI
Comunicazione tra Agenti


La comunicazione avviene
attraverso i messaggi
composti da primitiva,
parametri e destinatario
Ogni agente può comunicare
con altri agenti attraverso un
projector che collega la
propria porta di Output con la
porta di Input dell’agente a
cui è destinato il messaggio
Messaggio
• Primitiva:
CREAAGENTE
• Parametri:
Nome-AgenteC
Tipo -IAgent
• Destinatario: NomeAgente
Agente A
In
MODULO 1
Out
Linguaggi di Programmazione
(Complementi)
Agente B
Pj
In
Out
19
LA STRATEGIA PER GESTIRE I COMPORTAMENTI
La Strategia
Topologist
Local
reazione
Output
Strategist
Performer
Comportamenti
Trace
ActionList
COPIAAZIONE
Performer
reazione
MATCHMESSAGGIO
Reazione.primitiva
Performer
Messaggio reazione
Input
messaggio
MODULO 1
Messaggio reazione MessageList
Messaggio reazione
messaggio
Off
On
Linguaggi di Programmazione
(Complementi)
Engine
20
LA STRATEGIA PER GESTIRE I COMPORTAMENTI
Reazioni
La reazione ad un messaggio ricevuto puo’ essere:


Un messaggio da inviare ad
un altro agente: questo
verrá copiato sulla porta di
Output
Un’azione locale o di
sistema, come aggiornare
attributi o creare agenti:
questa verrá copiata sulla
porta locale
MODULO 1
Messaggio
Reazione
Messaggio
Azione locale
(da eseguire)
Messaggio
Messaggio
(da inviare)
Linguaggi di Programmazione
(Complementi)
21
LA STRATEGIA PER GESTIRE I COMPORTAMENTI
Funzionalita’ dell’Agente
Ogni Agente e’ in grado di:




Aggiornare i propri
comportamenti e quelli di
altri Agenti
Creare altri Agenti
Comunicare con altri
Agenti
Aggiornare e aggiungere
attributi propri e di altri
Agenti
MODULO 1
Messaggio
Reazione
AGGIUNGICOMPORTAMENTO
AGGIUNGICOMPORTAMENTO
<messaggio, reazione>
<messaggio, reazione>
CREATE
<nome, tipo>
CREAAGENTE
<nome, tipo>
ASK
TELL
<sender, richieste>
<sender, richieste>
DEFINE
AGGIUNGIATTRIBUTO
<nome, valore>
<nome, valore>
Linguaggi di Programmazione
(Complementi)
22
LA STRATEGIA PER GESTIRE I COMPORTAMENTI
Il meccanismo di Forward
E’ il meccanismo che permette ad ogni agente che
riceve un messaggio del quale non è destinatario sulla
propria porta di Input di connettersi al destinatario
tramite projector e recapitare il messaggio
Agente A
Input
Messaggio
per Agente B
MODULO 1
Agente B
Output
Input
Output
Pj
Linguaggi di Programmazione
(Complementi)
23
LA STRATEGIA PER GESTIRE I COMPORTAMENTI
Il NameServer


Ogni componente
computazionale
(Performers,
Projectors,
Topologists) di ogni
agente deve essere
“battezzato” sul
NameServer.
Ogni componente
battezzato è visibile
dagli altri componenti
del sistema.
MODULO 1
NameServer
Rif#Performer
“NomeAgente”
Rif#Topologist
“NomeAgenteTopologist”
Rif#Projector
“NomeAgenteOut_NomeAgenteIN”
Linguaggi di Programmazione
(Complementi)
24
UN ESEMPIO
Esempio
(Inizializzazione e Clonazione di un Agente)
Messaggio
• Primitiva:
AGGIUNGICOMPORTAMENTO
CREATE
• Parametri:
Mess=CREATE<nome,tipo>
Mess=ASK<all,
Nome=Agente
recipient>
B
Pj
Reaz=
Reaz=TELL<all,
CREAAGENTE<nome,tipo>
Tipo=AgentClass
recipient>
• Dest.:
Agente A
Messaggio
• Primitiva:
Primitiva:
• Parametri:
Parametri:
• Dest.:
Dest.:
In
ASK
Behavieur=all
Behavieur=all
Recipient=AgenteB
Recipient=AgenteB
AgenteA
Out
AgenteA
Agente B
Messaggio
In
MODULO 1
Out
• Primitiva:
Primitiva:
ASK
• Parametri:
Parametri:
Behavieur=all
Behavieur=all
Recipient=AgenteB
Recipient=AgenteB
• Dest.:
Dest.:
Pj
AgenteA
Linguaggi di Programmazione
(Complementi)
25
CONSIDERAZIONI PER SVILUPPI FUTURI
Considerazioni per sviluppi futuri

Il linguaggio ACL

L’architettura
MODULO 1
Linguaggi di Programmazione
(Complementi)
26
IL LINGUAGGIO ACL
ACL (Agent Communication Language)
<behavior>::=
<pattern>+
<pattern>::=
<message>  [IF<cond>] <handler> | <cond>  <handler>
<handler>::=
<reaction> | <reaction> ; <handler>
<reaction>::=
<local computation> | <communication>
<communication> ::=
[IF <cond>] <out-comm> | [IF <cond>] <out-comm> // <communication>
<out-comm>::=
send to <agent> : <message>
<agent>::=
all (<list>) | anyof (<list>)
<list>::=
<agent-type>+ | <agent-name>+
<message>::=
tell (<data> [{<attribute: value>*}]) |
ask (<info> [{<attribute: value>*}]) |
create (<attribute: value>* [{<attribute: value>*}]) |
define (<attribute: value>* [{<attribute: value>*}])
< data >::=
<attribute: value>* | new-behavior: <behavior>
< info >::=
<attribute>* | behavior
<value>::=
<any-data-type>* ; <agent-type>*
MODULO 1
Linguaggi di Programmazione
(Complementi)
27
IL LINGUAGGIO ACL
Semplificazioni implementazione corrente:
La sintassi dell’ACL è stata semplificata come mostrato
in tabella
<behavior>::=
<pattern>+
<pattern>::=
<message>  <reaction>
<reaction>::=
<local computation> | <communication>
<communication> ::=
send to <agent-name> : <message>
<message>::=
tell (<data> [{<attribute: value>*}]) |
ask (<info> [{<attribute: value>*}]) |
create (<attribute: value>* [{<attribute: value>*}]) |
define (<attribute: value>* [{<attribute: value>*}])
< data >::=
<attribute: value>* | new-behavior: <behavior>
< info >::=
<attribute>* | behavior
<value>::=
<any-data-type>*
MODULO 1
Linguaggi di Programmazione
(Complementi)
28
L’ARCHITETTURA
User typologies
System agents
Application agents
Description agents
get behavior
Template agents
Programmer build behaviors
CM
LI
put instances of
CMs at work
Wrapper agent
End user
GUI
CM-definer build CMs
LI
EI
UA
EI
CM
EI
Instance of
Instance agents
Compound CM
CM
LI
MODULO 1
Compound CM
CM
Compound CM1
Linguaggi di Programmazione
(Complementi)
LI
Instance of
Compound CMn
29
L’ARCHITETTURA
Semplificazioni implementazione corrente:



Si è considerato un unico livello (senza distinguere tra applicazione e
sistema);
Tutti gli agenti sono dello stesso tipo, non esistono differenze tra agenti
utente, di sistema o interfaccia; ogni agente costituisce un’entità capace di
connettersi ad altri agenti, di processare i messaggi che riceve e di
assumere i comportamenti adeguati.
La comunicazione avviene in modo diretto, un agente A può mandare un
messaggio all’agente B utilizzando un Projector senza bisogno di alcun
agente interfaccia. Questo è possibile in quanto i nostri agenti hanno la
capacità di redirezionare i messaggi ricevuti indirizzandoli all’agente
destinatario senza che vengano elaborati (forward)
MODULO 1
Linguaggi di Programmazione
(Complementi)
30
IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE ABACO
CON LA PIATTAFORMA RTP
Demo implementazione corrente
MODULO 1
Linguaggi di Programmazione
(Complementi)
31