MODULO 1 Linguaggi di Programmazione (Complementi) 1 IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE ABACO CON LA PIATTAFORMA RTP
MODULO 1 Linguaggi di Programmazione (Complementi)2 ABACO: elementi base ABACO è unarchittettura concettuale Requisiti per implementare ABACO RTP: introduzione Contenuto lezione IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE ABACO CON LA PIATTAFORMA RTP
MODULO 1 Linguaggi di Programmazione (Complementi)3 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 ABACO CON LA PIATTAFORMA RTP
MODULO 1 Linguaggi di Programmazione (Complementi)4 Considerazioni per sviluppi futuri Il linguaggio ACL Larchitettura Demo implementazione corrente Contenuto lezione IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE ABACO CON LA PIATTAFORMA RTP
MODULO 1 Linguaggi di Programmazione (Complementi)5 è stata definita come unarchitettura 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 BASE
MODULO 1 Linguaggi di Programmazione (Complementi)6 localitá localitá interazione interazione capacitá di percepire lambiente capacitá di percepire lambiente La composizione di agenti da origine al meccanismo di coordinamento al meccanismo di coordinamento Il Comportamento globale di tale meccanismo emerge da: interazioni locali + reazione a stimoli dallambiente Agenti ABACO Caratteristiche: ABACO: ELEMENTI BASE
MODULO 1 Linguaggi di Programmazione (Complementi)7 Agenti ABACO Struttura: Working memory attribute value script local databehavior internal state script ABACO: ELEMENTI BASE
MODULO 1 Linguaggi di Programmazione (Complementi)8 ACL (Agent Communication Language) ABACO: ELEMENTI BASE * ; * ::= * | behavior ::= * | new-behavior: ::= tell ( [{ *}]) | ask ( [{ *}]) | create ( * [{ *}]) | define ( * [{ *}]) ::= + | + ::= all ( ) | anyof ( ) ::= send to : ::= | ::= | ; ::= [IF ] | ::= + ::= [IF ] | [IF ] //
MODULO 1 Linguaggi di Programmazione (Complementi)9 ABACO È UNARCHITTETTURA CONCETTUALE ABACO è unarchitettura concettuale Non fa riferimento ad alcuna piattaforma esistente Ricercare quale piattaforma concreta può essere utilizzata per limplementazione
MODULO 1 Linguaggi di Programmazione (Complementi)10 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)11 Scelto piattaforma RTP (Real Time Performer) Paradigma component-connector Altamente distribuita Definizione dinamica della topologia Supporto per interazioni dinamiche tra agenti REQUISITI PER IMPLEMENTARE ABACO
MODULO 1 Linguaggi di Programmazione (Complementi)12 RTP: INTRODUZIONE RTP (Real Time Performer) Elementi messi a disposizione dalla 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 1 Linguaggi di Programmazione (Complementi)13 RTP: INTRODUZIONE RTP (Real Time Performer) Un esempio di uso di RTP un sistema di monitoraggio ambientale in cui diversi sensori (Fs i ) leggono dei valori (SAMPLE) dallambiente, 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)14 RTP: INTRODUZIONE SAMPLE COMPUTE PRESENT SYNC Topologist CREATE Strategist add request(SAMPLE,FS1) commandperformer Engine get request
MODULO 1 Linguaggi di Programmazione (Complementi)15 IMPLEMENTAZIONE DI ABACO CON RTP Implementare ABACO con RTP Mappare gli elementi costitutivi di ABACO AGENTI (ed interazioni tra) In termini di elementi costitutivi di RTP Performer, Strategist, Topologist, Projector, Engine,... Cosa vuol dire:
MODULO 1 Linguaggi di Programmazione (Complementi)16 IMPLEMENTAZIONE DI ABACO CON RTP Implementare ABACO con RTP In particolare per quel che riguarda i comportamenti ABACO RTP Agenti comportamenti (ACL) Componenti comandi (1 o +) Classi metodi
MODULO 1 Linguaggi di Programmazione (Complementi)17 IMPLEMENTAZIONE DI ABACO CON RTP Implementare ABACO con RTP COME?
MODULO 1 Linguaggi di Programmazione (Complementi)18 AGENTI ABACO CON RTP Agenti ABACO in termini di RTP Agente= Agente Strategist Topologist Engine Performer Trace Stato Comportamenti Input port Output port Local port 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 1 Linguaggi di Programmazione (Complementi)19 La comunicazione avviene attraverso i messaggi composti da primitiva, parametri e destinatario 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 dellagente a cui destinato il messaggio Ogni agente può comunicare con altri agenti attraverso un projector che collega la propria porta di Output con la porta di Input dellagente a cui è destinato il messaggio Comunicazione tra Agenti Agente A OutIn Agente B OutInPj Primitiva: CREAAGENTE Parametri: Nome-AgenteC Parametri: Nome-AgenteC Tipo -IAgent Destinatario:NomeAgente Destinatario:NomeAgente Messaggio COMUNICAZIONE TRA AGENTI
MODULO 1 Linguaggi di Programmazione (Complementi)20 La Strategia LA STRATEGIA PER GESTIRE I COMPORTAMENTI StrategistTrace Engine Off On COPIAAZIONEPerformer MATCHMESSAGGIOPerformer Performer Input messaggio Topologist MessageList messaggio Output Comportamenti Messaggio reazione Local reazione ActionList reazione Reazione.primitivaPerformer
MODULO 1 Linguaggi di Programmazione (Complementi)21 Un messaggio da inviare ad un altro agente: questo verrá copiato sulla porta di Output Un messaggio da inviare ad un altro agente: questo verrá copiato sulla porta di Output Unazione locale o di sistema, come aggiornare attributi o creare agenti: questa verrá copiata sulla porta locale Unazione locale o di sistema, come aggiornare attributi o creare agenti: questa verrá copiata sulla porta locale Reazioni LA STRATEGIA PER GESTIRE I COMPORTAMENTI MessaggioReazione Messaggio Azione locale (da eseguire) MessaggioMessaggio (da inviare) La reazione ad un messaggio ricevuto puo essere:
MODULO 1 Linguaggi di Programmazione (Complementi)22 MessaggioReazione AGGIUNGICOMPORTAMENTO AGGIUNGICOMPORTAMENTO CREATE CREAAGENTE CREAAGENTE ASK TELL DEFINE AGGIUNGIATTRIBUTO Ogni Agente e in grado di: Aggiornare i propri comportamenti e quelli di altri Agenti Aggiornare i propri comportamenti e quelli di altri Agenti Creare altri Agenti Creare altri Agenti Comunicare con altri Agenti Comunicare con altri Agenti Aggiornare e aggiungere attributi propri e di altri Agenti Aggiornare e aggiungere attributi propri e di altri Agenti Funzionalita dellAgente LA STRATEGIA PER GESTIRE I COMPORTAMENTI
MODULO 1 Linguaggi di Programmazione (Complementi)23 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 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 Il meccanismo di Forward LA STRATEGIA PER GESTIRE I COMPORTAMENTI Agente A Pj OutputInput Agente B InputOutput Messaggio per Agente B
MODULO 1 Linguaggi di Programmazione (Complementi)24 Ogni componente computazionale (Performers, Projectors, Topologists) di ogni agente deve essere battezzato sul NameServer. Ogni componente computazionale (Performers, Projectors, Topologists) di ogni agente deve essere battezzato sul NameServer. Ogni componente battezzato visibile dagli altri componenti del sistema. Ogni componente battezzato è visibile dagli altri componenti del sistema. Il NameServer LA STRATEGIA PER GESTIRE I COMPORTAMENTI NameServer Rif#PerformerNomeAgente Rif#TopologistNomeAgenteTopologist Rif#ProjectorNomeAgenteOut_NomeAgenteIN
MODULO 1 Linguaggi di Programmazione (Complementi)25 Esempio (Inizializzazione e Clonazione di un Agente) UN ESEMPIO Agente A InOut Messaggio Primitiva: Parametri: Parametri: Dest.: Dest.: Mess=CREATE<nome,tipo> Reaz= CREAAGENTE Reaz= CREAAGENTE AGGIUNGICOMPORTAMENTO AgenteA Messaggio Primitiva: Parametri: Parametri: Dest.: Dest.: Nome=Agente B Tipo=AgentClass CREATE AgenteA Agente B InOut Messaggio Primitiva: Parametri: Parametri: Dest.: Dest.: Mess=ASK Mess=ASK Reaz=TELL Reaz=TELL AGGIUNGICOMPORTAMENTO AgenteA Pj
MODULO 1 Linguaggi di Programmazione (Complementi)26 Il linguaggio ACL Larchitettura Considerazioni per sviluppi futuri CONSIDERAZIONI PER SVILUPPI FUTURI
MODULO 1 Linguaggi di Programmazione (Complementi)27 ACL (Agent Communication Language) IL LINGUAGGIO ACL * ; * ::= * | behavior ::= * | new-behavior: ::= tell ( [{ *}]) | ask ( [{ *}]) | create ( * [{ *}]) | define ( * [{ *}]) ::= + | + ::= all ( ) | anyof ( ) ::= send to : ::= | ::= | ; ::= [IF ] | ::= + ::= [IF ] | [IF ] //
MODULO 1 Linguaggi di Programmazione (Complementi)28 Semplificazioni implementazione corrente: IL LINGUAGGIO ACL * ::= * | behavior ::= * | new-behavior: ::= tell ( [{ *}]) | ask ( [{ *}]) | create ( * [{ *}]) | define ( * [{ *}]) ::= send to : | ::= ::= + ::= La sintassi dellACL è stata semplificata come mostrato in tabella
MODULO 1 Linguaggi di Programmazione (Complementi)29 LARCHITETTURA
MODULO 1 Linguaggi di Programmazione (Complementi)30 Semplificazioni implementazione corrente: LARCHITETTURA 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 sistema o interfaccia; ogni agente costituisce unentità capace di connettersi ad altri agenti, di processare i messaggi che riceve e di assumere i comportamenti adeguati. Tutti gli agenti sono dello stesso tipo, non esistono differenze tra agenti utente, di sistema o interfaccia; ogni agente costituisce unentità 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 allagente 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 allagente destinatario senza che vengano elaborati (forward) La comunicazione avviene in modo diretto, un agente A può mandare un messaggio allagente 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 allagente destinatario senza che vengano elaborati (forward)
MODULO 1 Linguaggi di Programmazione (Complementi)31 Demo implementazione corrente IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE ABACO CON LA PIATTAFORMA RTP