Upload
giovanna-turco
View
215
Download
0
Embed Size (px)
Citation preview
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
11
IMPLEMENTAZIONE DEL IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE SISTEMA MULTI-AGENTE
ABACO CON LA PIATTAFORMA ABACO CON LA PIATTAFORMA RTPRTP
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
22
ABACO: elementi base
ABACO è un’archittettura concettuale
Requisiti per implementare ABACO
RTP: introduzione
Contenuto lezione
IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE ABACO CON LA PIATTAFORMA RTPABACO CON LA PIATTAFORMA RTP
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
33
Implementazione di ABACO con RTP
Agenti ABACO con RTP
Comunicazione tra agenti
La strategia per gestire i comportamenti
Un esempio
Contenuto lezione
IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE ABACO CON LA PIATTAFORMA RTPABACO CON LA PIATTAFORMA RTP
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
44
Considerazioni per sviluppi futuri
Il linguaggio ACL
L’architettura
Demo implementazione corrente
Contenuto lezione
IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE ABACO CON LA PIATTAFORMA RTPABACO CON LA PIATTAFORMA RTP
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
55
è stata definita come un’architettura multi-agente i cui componenti sono agenti reattivi che utilizzano un linguaggio comune (ACL).
è stata concepita per supportare il coordinamento di attivitá á svolte da attori (umani)
ABACO (Agent-Based Architecture for Cooperation)
ABACO: ELEMENTI BASEABACO: ELEMENTI BASE
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
66
localitálocalitá interazioneinterazione capacitá di percepire l’ambientecapacitá di percepire l’ambiente
La composizione di agenti da origineLa composizione di agenti da origine al meccanismo di coordinamento al meccanismo di coordinamento
Il Comportamento globale di tale meccanismo emerge Il Comportamento globale di tale meccanismo emerge da: da:
interazioni locali + reazione a stimoli dall’ambienteinterazioni locali + reazione a stimoli dall’ambiente
Agenti ABACOAgenti ABACO
CaratteristichCaratteristiche:e:
ABACO: ELEMENTI BASEABACO: ELEMENTI BASE
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
77
Agenti ABACOAgenti ABACO
Struttura:Struttura:
Working memoryattribute
attribute
value
value
script
local data behavior
internal state
script
script
script
ABACO: ELEMENTI BASEABACO: ELEMENTI BASE
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
88
ACL (Agent Communication Language)ACL (Agent Communication Language)
ABACO: ELEMENTI BASEABACO: ELEMENTI BASE
<any-data-type>* ; <agent-type>* <value>::=
<attribute>* | behavior < info >::=
<attribute: value>* | new-behavior: <behavior> < data >::=
tell (<data> [{<attribute: value>*}]) |ask (<info> [{<attribute: value>*}]) |create (<attribute: value>* [{<attribute: value>*}]) |define (<attribute: value>* [{<attribute: value>*}])
<message>::=
<agent-type>+ | <agent-name>+ <list>::=
all (<list>) | anyof (<list>) <agent>::=
send to <agent> : <message> <out-comm>::=
<local computation> | <communication> <reaction>::=
<reaction> | <reaction> ; <handler><handler>::=
<message> [IF<cond>] <handler> | <cond> <handler>
<pattern>::=
<pattern>+ <behavior>::=
<communication> ::=[IF <cond>] <out-comm> | [IF <cond>] <out-comm> // <communication>
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
99
ABACO È UN’ARCHITTETTURA CONCETTUALEABACO È UN’ARCHITTETTURA CONCETTUALE
ABACO è un’architettura concettualeABACO è un’architettura concettuale
Non fa riferimento ad alcuna piattaforma esistente
Ricercare quale piattaforma concreta può essere utilizzata per l’implementazione
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
1010
REQUISITI PER IMPLEMENTARE ABACOREQUISITI PER IMPLEMENTARE ABACO
Requisiti per implementare ABACORequisiti 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 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
1111
Scelto piattaforma RTP (Real Time Performer)Scelto piattaforma RTP (Real Time Performer)
Paradigma component-connector
Altamente distribuita Definizione dinamica della
topologia Supporto per interazioni
dinamiche tra agenti
REQUISITI PER IMPLEMENTARE ABACOREQUISITI PER IMPLEMENTARE ABACO
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
1212
RTP: INTRODUZIONERTP: INTRODUZIONE
RTP (Real Time Performer)RTP (Real Time Performer)Elementi messi a disposizione dalla Elementi messi a disposizione dalla piattaforma:piattaforma:• Performers: componenti computazionali passive
• Projectos: componenti che consentono scambio di comunicazioni tra Performers
• 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 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
1313
RTP: INTRODUZIONERTP: INTRODUZIONE
RTP (Real Time Performer)RTP (Real Time Performer)Un esempio di uso di RTPUn 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 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
1414
RTP: INTRODUZIONERTP: INTRODUZIONE
SAMPLE
COMPUTE
PRESENT
SYNC
SYNC
Topologist CREATE Strategist
add request(SAMPLE,FS1)
command performer
Engine
get request
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
1515
IMPLEMENTAZIONE DI ABACO CON RTPIMPLEMENTAZIONE DI ABACO CON RTP
Implementare ABACO con RTPImplementare ABACO con RTP
Mappare gli elementi costitutivi di ABACOAGENTI (ed interazioni tra)
In termini di elementi costitutivi di RTPPerformer, Strategist, Topologist, Projector,
Engine,...
Cosa vuol dire:Cosa vuol dire:
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
1616
IMPLEMENTAZIONE DI ABACO CON RTPIMPLEMENTAZIONE DI ABACO CON RTP
Implementare ABACO con RTPImplementare ABACO con RTPIn particolare per quel che riguarda i In particolare per quel che riguarda i
comportamenticomportamenti
ABACO
RTP
Agenti comportamenti (ACL)
Componenti comandi (1 o +)
Classi metodi
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
1717
IMPLEMENTAZIONE DI ABACO CON RTPIMPLEMENTAZIONE DI ABACO CON RTP
Implementare ABACO con RTPImplementare ABACO con RTP
COME?COME?
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
1818
AGENTI ABACO CON RTPAGENTI ABACO CON RTP
Agenti ABACO in termini di RTPAgenti ABACO in termini di RTPAgente=<Strategist, Topologist, Performer, Engine, Trace>
Agente
Strategist
Topologist
Engine
Performer
TraceStato
Comportamenti
Inputport
Outputport
Localport
Ogni Agente:Ogni Agente:
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
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
1919
La comunicazione La comunicazione avviene attraverso i avviene attraverso i messaggi composti da messaggi composti da primitiva, parametri e primitiva, parametri e destinatariodestinatario
Ogni agente puOgni agente può comunicare con altri comunicare con altri agenti attraverso un agenti attraverso un projector che collega la projector che collega la propria porta di Output propria porta di Output con la porta di Input con la porta di Input dell’agente a cui dell’agente a cui è destinato il messaggiodestinato il messaggio
Comunicazione tra AgentiComunicazione tra Agenti
Agente A
OutIn
Agente B
OutInPj
• Primitiva:Primitiva: CREAAGENTECREAAGENTE
• Parametri:Parametri: Nome-AgenteCNome-AgenteCTipo -IAgentTipo -IAgent
• Destinatario:Destinatario: NomeAgenteNomeAgente
Messaggio
COMUNICAZIONE TRA AGENTICOMUNICAZIONE TRA AGENTI
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
2020
La StrategiaLa Strategia
LA STRATEGIA PER GESTIRE I COMPORTAMENTI
Strategist
TraceTrace
EngineOffOn
COPIAAZIONECOPIAAZIONE PerformerPerformer
MATCHMESSAGGIOMATCHMESSAGGIO PerformerPerformer
Performer
Input
messaggio
Topologist
MessageList
messaggio
Output Comportamenti
Messaggio reazione
Messaggio reazione
Messaggio reazione
Local
reazione
ActionList
reazione Reazione.primitivaReazione.primitiva PerformerPerformer
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
2121
Un messaggio da inviare Un messaggio da inviare ad un altro agente: ad un altro agente: questo verrá copiato questo verrá copiato sulla porta di Outputsulla porta di Output
Un’azione locale o di Un’azione locale o di sistema, come sistema, come aggiornare attributi o aggiornare attributi o creare agenti: questa creare agenti: questa verrá copiata sulla porta verrá copiata sulla porta localelocale
ReazioniReazioni
LA STRATEGIA PER GESTIRE I COMPORTAMENTI
MessaggioMessaggio ReazioneReazione
MessaggioMessaggio Azione localeAzione locale
(da eseguire)(da eseguire)
MessaggioMessaggio MessaggioMessaggio
(da inviare)(da inviare)
La reazione ad un messaggio ricevuto puo’ La reazione ad un messaggio ricevuto puo’ essere:essere:
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
2222
MessaggioMessaggio ReazioneReazioneAGGIUNGICOMPORTAMENAGGIUNGICOMPORTAMEN
TO TO <messaggio, <messaggio, reazione>reazione>
AGGIUNGICOMPORTAMENAGGIUNGICOMPORTAMENTOTO <messaggio, <messaggio,
reazione>reazione>
CREATE CREATE
<nome, tipo> <nome, tipo> CREAAGENTE CREAAGENTE
<nome, tipo><nome, tipo>
ASKASK<sender, richieste><sender, richieste>
TELLTELL<sender, richieste><sender, richieste>
DEFINEDEFINE<nome, valore><nome, valore>
AGGIUNGIATTRIBUTOAGGIUNGIATTRIBUTO<nome, valore><nome, valore>
Ogni Agente e’ in grado Ogni Agente e’ in grado di:di:
Aggiornare i propri Aggiornare i propri comportamenti e quelli comportamenti e quelli di altri Agentidi altri Agenti
Creare altri AgentiCreare altri Agenti Comunicare con altri Comunicare con altri
AgentiAgenti Aggiornare e Aggiornare e
aggiungere attributi aggiungere attributi propri e di altri Agentipropri e di altri Agenti
Funzionalita’ dell’AgenteFunzionalita’ dell’Agente
LA STRATEGIA PER GESTIRE I COMPORTAMENTI
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
2323
E’ il meccanismo che permette ad ogni agente E’ il meccanismo che permette ad ogni agente che riceve un messaggio del quale non che riceve un messaggio del quale non è destinatario sulla propria porta di Input di destinatario sulla propria porta di Input di connettersi al destinatario tramite projector e connettersi al destinatario tramite projector e recapitare il messaggio recapitare il messaggio
Il meccanismo di ForwardIl meccanismo di Forward
LA STRATEGIA PER GESTIRE I COMPORTAMENTI
Agente A
PjOutputInput
Agente B
Input OutputMessaggio per Agente B
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
2424
Ogni componente Ogni componente computazionale computazionale (Performers, (Performers, Projectors, Projectors, Topologists) di ogni Topologists) di ogni agente deve essere agente deve essere “battezzato” sul “battezzato” sul NameServer.NameServer.
Ogni componente Ogni componente battezzato battezzato è visibile visibile dagli altri dagli altri componenti del componenti del sistema.sistema.
Il NameServerIl NameServer
LA STRATEGIA PER GESTIRE I COMPORTAMENTI
NameServerNameServerRif#PerformeRif#Performe
rr““NomeAgente”NomeAgente”
Rif#TopologiRif#Topologistst
““NomeAgenteTopologist”NomeAgenteTopologist”
Rif#ProjectorRif#Projector ““NomeAgenteOut_NomeAgentNomeAgenteOut_NomeAgenteIN”eIN”
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
2525
EsempioEsempio(Inizializzazione e Clonazione di un Agente)(Inizializzazione e Clonazione di un Agente)
UN ESEMPIO
Agente A
In Out
Messaggio
• Primitiva:Primitiva:
• Parametri:Parametri:
• Dest.:Dest.:
Mess=CREATE<nome,tipo>Mess=CREATE<nome,tipo>Reaz= CREAAGENTE<nome,tipo>Reaz= CREAAGENTE<nome,tipo>
AGGIUNGICOMPORTAMENTO
AgenteA
Messaggio
• Primitiva:Primitiva:
• Parametri:Parametri:
• Dest.:Dest.:
Nome=Agente BNome=Agente BTipo=AgentClassTipo=AgentClass
CREATE
AgenteA
Agente B
In Out
Messaggio
• Primitiva:Primitiva:
• Parametri:Parametri:
• Dest.:Dest.:
Mess=ASK<all, recipient>Mess=ASK<all, recipient>Reaz=TELL<all, recipient>Reaz=TELL<all, recipient>
AGGIUNGICOMPORTAMENTO
AgenteA
Messaggio
• PrimitivaPrimitiva::
•• ParametriParametri::
•• DestDest.:.:
BehavieurBehavieur=all=allRecipient=Recipient=AgenteBAgenteB
ASK
AgenteA
Messaggio
• PrimitivaPrimitiva::
•• ParametriParametri::
•• DestDest.:.:
BehavieurBehavieur=all=allRecipient=Recipient=AgenteBAgenteB
ASK
AgenteA
• PrimitivaPrimitiva::
•• ParametriParametri::
•• DestDest.:.:
BehavieurBehavieur=all=allRecipient=Recipient=AgenteBAgenteB
ASK
AgenteA
Pj
Messaggio
• PrimitivaPrimitiva::
•• ParametriParametri::
•• DestDest.:.:
BehavieurBehavieur=all=allRecipient=Recipient=AgenteBAgenteB
ASK
AgenteA
Messaggio
• PrimitivaPrimitiva::
•• ParametriParametri::
•• DestDest.:.:
BehavieurBehavieur=all=allRecipient=Recipient=AgenteBAgenteB
ASK
AgenteA
• PrimitivaPrimitiva::
•• ParametriParametri::
•• DestDest.:.:
BehavieurBehavieur=all=allRecipient=Recipient=AgenteBAgenteB
ASK
AgenteAPj
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
2626
Il linguaggio ACL
L’architettura
Considerazioni per sviluppi futuri
CONSIDERAZIONI PER SVILUPPI FUTURICONSIDERAZIONI PER SVILUPPI FUTURI
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
2727
ACL (Agent Communication Language)ACL (Agent Communication Language)
IL LINGUAGGIO ACLIL LINGUAGGIO ACL
<any-data-type>* ; <agent-type>* <value>::=
<attribute>* | behavior < info >::=
<attribute: value>* | new-behavior: <behavior> < data >::=
tell (<data> [{<attribute: value>*}]) |ask (<info> [{<attribute: value>*}]) |create (<attribute: value>* [{<attribute: value>*}]) |define (<attribute: value>* [{<attribute: value>*}])
<message>::=
<agent-type>+ | <agent-name>+ <list>::=
all (<list>) | anyof (<list>) <agent>::=
send to <agent> : <message> <out-comm>::=
<local computation> | <communication> <reaction>::=
<reaction> | <reaction> ; <handler><handler>::=
<message> [IF<cond>] <handler> | <cond> <handler>
<pattern>::=
<pattern>+ <behavior>::=
<communication> ::=[IF <cond>] <out-comm> | [IF <cond>] <out-comm> // <communication>
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
2828
Semplificazioni implementazione corrente:Semplificazioni implementazione corrente:
IL LINGUAGGIO ACLIL LINGUAGGIO ACL
<any-data-type>*<value>::=
<attribute>* | behavior < info >::=
<attribute: value>* | new-behavior: <behavior> < data >::=
tell (<data> [{<attribute: value>*}]) |ask (<info> [{<attribute: value>*}]) |create (<attribute: value>* [{<attribute: value>*}]) |define (<attribute: value>* [{<attribute: value>*}])
<message>::=
send to <agent-name> : <message>
<local computation> | <communication> <reaction>::=
<message> <reaction><pattern>::=
<pattern>+<behavior>::=
<communication> ::=
La sintassi dell’ACL è stata semplificata come La sintassi dell’ACL è stata semplificata come mostrato in tabella mostrato in tabella
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
2929
L’ARCHITETTURAL’ARCHITETTURA
End user
Description agents
UA
User typologies
Programmer
CM-definer
System agents Application agents
build behaviors
build CMs
put instances of CMs at work
GUI
Wrapper agent
Template agents
Instance agents
EI
LICM
EI LICM
Compound CM
LICM
EI LICM
Compound CM
get behavior
Compound CM1
Compound CMn
Instance of Instance of
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
3030
Semplificazioni implementazione corrente:Semplificazioni implementazione corrente:
L’ARCHITETTURAL’ARCHITETTURA
Si è considerato un unico livello (senza distinguere tra applicazione e sistema);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 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 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 altri agenti, di processare i messaggi che riceve e di assumere i comportamenti adeguati.adeguati.
La comunicazione avviene in modo diretto, un agente La comunicazione avviene in modo diretto, un agente AA può mandare un può mandare un messaggio all’agente messaggio all’agente B B utilizzando un Projectorutilizzando un Projector senza bisogno di alcun agente senza bisogno di alcun agente interfaccia. Questo è possibile in quanto i nostri agenti hanno la capacità di interfaccia. Questo è possibile in quanto i nostri agenti hanno la capacità di redirezionare i messaggi ricevuti indirizzandoli all’agente destinatario senza che redirezionare i messaggi ricevuti indirizzandoli all’agente destinatario senza che vengano elaborati (vengano elaborati (forwardforward))
MODULO 1MODULO 1 Linguaggi di Programmazione (CLinguaggi di Programmazione (Complementi)omplementi)
3131
Demo implementazione correnteDemo implementazione corrente
IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE ABACO CON LA PIATTAFORMA RTPABACO CON LA PIATTAFORMA RTP