Sunteți pe pagina 1din 230

Universitatea Politehnica Bucuresti

Sisteme multi-agent

Primvar, 2016

Conf. Dr. Ing. Silviu RAILEANU,


Facultatea de Automatica si Calculatoare
Contact: silviu.raileanu@cimr.pub.ro

Obiective curs:
Transferul de cunotine despre conceptele de agent
autonom i sistem multi-agent i aplicarea acestor noiuni
n modelarea i automatizarea proceselor distribuite
Prezentarea funcionalitilor de baz ale agenilor i
analiza principiilor de cooperare ntre ageni
Crearea unui sistem multi-agent sau selectarea unei
platforme de dezvoltare a unei aplicaii multi-agent
Utilizarea tehnologiilor multi-agent pentru a rezolva
aplicaii din diferite domenii (conducere fabricatie)
Asigurarea unui comportament unitar n cadrul sistemelor
multi-agent emergente
Realizarea relaiei fizic-informaional n sistemele holonice
2

Cuprins curs:
1. Noiuni introductive
2. Cadre de dezvoltare a aplicaiilor multi-agent
3. Interaciuni n sistemele multi-agent

4. Procedura de luare a unei decizii ntr-un sistem multiagent


5. Rezolvarea cooperativ a unei probleme
6. Inteligen colectiv
7. Tehnologia multi-agent n e-Commerce
8. Legtura fizic-informaional

Cuprins laborator:
1.
2.
3.
4.
5.
6.
7.
8.
9.

Prezentarea mediului de dezvoltare de aplicaii multi-agent JADE


Lucrul cu structuri de date, depistarea i tratarea erorilor
Realizarea unui comportament decizional
Transmisia i recepia de mesaje
Schimbul secvenial de mesaje
Interfee grafice i interfaarea cu alte sisteme
Integrarea de resurse folosind protocoulul TCP
Rezolvarea unor probleme de negociere
Realizarea legturii fizic-informaional

Punctaj
10 pct prezenta curs
30 pct laborator (lucru pe echipe, realizarea celor 9
activitati + raspuns la intrebari in ora curenta sau la
inceputul orei urmatoare)
20 pct tema de casa (prezentata la laborator la
mijlocul lui aprilie)
40 pct examen (2-4 teorii, din sinteza curs si teorie
laborator; 1 problema/program constand in realizarea
unui comportament)

Teme de casa
1. Analiza modalitatii de utilziare a JADE pentru a implementa un SMA in care
interactiunea se face prin mediu (nu mesaje): Netlogo VS JADE
2. Analiza utilizarii resurselor in cazul unei platforme JADE cu multi agenti (unde
crapa) dar putine mesaje (de definit) amprenta agent
3. Analiza utilizarii resurselor in cazul unei platforme JADE cu putini agenti (de definit)
dar cu multe mesaje (unde nu mai functioneaza/unde nu se mai raspunde la
mesaje)
4. Analiza posibilitatii de rulare a JADE pe diferite platforme (JAVA VM pentru diferite
platforme) cel putin 3 platforme non Windows/Microsoft si cel putin 3 alternative la
JAVA VM
5. Rulare agenti pe Android (interfata care afiseaza un mesaj primit)
6. Conexiune agent la BD MySQL (un agent care stocheaza mesajele primite: sender,
titlu, continut, data/ora)
7. Realizarea unui comportament secvential in JADE (numarator (8 pozitii) care
aprinde niste controale in starea respectiva si avanseaza la receptia unui anumit
mesaj)

Curs 1
Sisteme multi-agent: introducere
Continut:

Introducere

Agent, SMA

SMA pentru modelare i simulare

Platforme de dezvoltare
7

Introducere

Definitie agent

Caracteristica de baza: autonomie => capacitate decizionala => posibilitatea de


a comunica/interactiona
Interactiune

O componenta autonoma care reprezinta un obiect fizic sau logic intr-un sistem,
obiect care este capabil sa perceapa mediul si sa actioneze asupra lui si care este capabil
sa interactioneze cu alti agenti atunci cand nu are abilitatile si cunostintele necesare
pentru a-si atinge singur obiectivele (Leitao, 2004)

Mediu
Limbaj

Tipuri de agenti:

Senzori

Reactiv
Deliberativ
Hibrid

Starea
cureanta
Reguli de decizie
(if-then-else)/
algoritm

Mediu
Decizie
Actionare
8

Introducere
Agent:
Implementare de aplicatii (software) distribuite
in care controlul este descentralizat si luarea
deciziei se face (pe langa deciziile locale) prin
colaborare (demo)
Modelare/simulare pentru analiza unor sisteme
descentralizate al caror comportament
(emergent) este prea complicat pentru a fi
modelat matematic (demo)

Introducere

Caracteristici agent

Adaptare

Comunicare

Negociere in vederea cooperarii. Ce model de negociere se foloseste? Cum se procedeaza daca nu se obtine un
raspuns nesatisfacator? Cum se arbitreaza atunci cand doi agenti au obiective diferite si in conflict?

Invatare (decizie)

Cooperare pentru a atinge un obiectiv. Se pune problema daca agentii beneficiaza sau nu de avantaje in urma
cooperarii, ce se va intampla daca un agent profita de generozitatea celorlalti agenti, poate SMA-ul sa coopereze
in alta modalitate cu alte sisteme non-agent

Negociere (decizie)

Agentii comunica pentru a atinge anumite obiectice sau la aparitia unor evenimente. Elementele cheie in
comunicatia inter-agent include protocolul de interactiune utilizat, gramatica (ontologie) si metoda de
comunicare.

Cooperare (decizie)

La noile cerinte ale mediului sau pentru a trata noi obiective.

Invata din experientele precedente pentru a prezice viitorul si pentru a actiona proactiv. Elemente importante
legate de modalitatea de invatare: ce algoritm foloseste agentul pentru a invata (va invata/se va adapta si
algoritmul odata cu agentul) si ce va fi masurat / modelat si este suficienta aceasta informatie pentru a percepe
cum trebuie mediul.

Mobilitate

Posibilitatea rularii agentului pe alta platforma (mediu de executie comun, limbaj comun, standarde comune).

10

Introducere
Sisteme multi-agent n domeniul
produciei, definiii
Modul sau component de fabricaie
Component de fabricaie agentificat
Coaliie/consoriu
[Barata, J., 2005 ]
11

Introducere

Arhitecturi tinta: sisteme de conducere descentralizate si/sau


distribuite

Comunicatia

componenta esentiala in procesul de conducere

Problematica :
Comunicatia intre entitatile de
control ale unui SFF
Standardizarea acestor limbaje
Ontologii: o reprezentare formala a unui
set de concepte dintr-un domeniu si a
relatiilor dintre aceste concepte. Este
folosita pentru a defini si analiza domeniul respectiv

Structura de control
descentralizata

12

Introducere
Avansul in timp al paradigmelor
folosite in ingineria programarii

13

Introducere

Agent reactiv

Agent deliberativ

Un proces automat care la receptia unei intrari produce o anumita intrare (reguli if-then-else, fara stare
interna)
Data/response driven. Nu sunt proactivi.

Are o reprezentare interna a mediului in care lucreaza si este capabil sa isi urmeze planuri (algoritm
complex, reprezentare interna pe stari)
Goal driven. Proactiv.

In dezvoltarea unui SMA este important sa se stabileasca complexitatea capacitatii decizonale


a agentilor. Agentii reactivi folosesc comportamente presetate similare reflexelor fara a avea o
reprezentare interna a starii curente. Pe de alta parte agentii deliberativi se comporta ca si
cum ar gandi in vederea luarii unei decizii, analizand un spatiu de comportamente,
mentinand o stare interna si incercand sa prevada efectele actiunilor lor. Chiar daca linia de
demarcatie intre un agent reactiv si unul deliberativ este fina concluzia este ca un agent fara
stare interna este catalogat ca reactiv si unul care isi bazeaza actiunile pe predictia actiunilor
celorlalti agenti este deliberativ.

Ref: http://www.cs.cmu.edu/afs/cs/usr/pstone/public/papers/97MAS-survey/node14.html

14

Introducere
Agent hibrid
O combinatie de reactiv si deliberativ
care are planuri proprii (stare interna,
evaluare rezultat actiuni) dar care poate
reactiona la stimuli externi/evenimente
fara deliberare

15

Introducere
Agent VS Program
Word VS Notepad
Percepe, ia o decizie, actioneaza

16

Introducere
Definitie SMA

Conform (Ferber, 1999) termenul de SMA se refera la un


sistem care contine:

Un mediu (fizic/informational/hibrid) E care contine:

Un set de obiecte O. Obiectele (ex.: automation object) pot fi


percepute, create, distruse si modificate de agenti.
Un set de agenti A. Agentii sunt un subset al obiectelor capabil sa
realizeze actiuni entitatile active ale sistemului.

Un set de relatii R care leaga obiectele si agentii.


Un set de operatii Op care permit agentilor sa perceapa,
manipuleze, creeze si distruge obiecte din O, in particular
reprezentand actiuni agent.
Un set de operatori U care au rolul de a reprezenta aplicarea
operatorilor Op si reactia mediului la procesul de modificare.
Operatorii din U sunt denumiti legile mediului.
17

Introducere

SMA parte a DAI (Distributed Artificial Intelligence) parte a AI (Artificial


Intelligence)
DAI sisteme compuse din entitati independente care interactioneaza;
Componente DAI: Distributed Problem Solving (DPS) se axeaza pe gestiunea
informatiei in sisteme distribuite care coopereaza in vedrea atingerii unui scop
comun; SMA se ocupa cu comportamentul colectiilor de agenti.
SMA pentru implementarea de comportamente inteligente: Intelligence is deeply
and inevitably coupled with interaction''.
Dezvoltarea de masini inteligente => dezvoltarea de masini sociale (care
interactioneaza)
ref: http://www.cs.cmu.edu/afs/cs/usr/pstone/public/papers/97MASsurvey/revised-survey.html

18

Introducere

Modalitati de interactiune

Prin mediu (simulare, dezvoltare de aplciatii ontologii)


Prin mesaje (dezvoltare de aplicatii ontologii)

Tipuri de SMA:

Agenti omogeni non-comunicativi


Agenti heterogeni non-comunicativi
Agenti comunicativi heterogeni

19

Introducere

Tipuri de SMA

SMA omogene non-comunicative

SMA heterogene non-comunicative

Cel mai simplu SMA presupune existenta unor agenti onogeni (noncomunicativi). In acest scenariu toti agentii au au aceeasi structura interna,
aceleasi obiective, reprezentare a informatiei si actiuni posibile. Au acelasi
comportament decizional. Singura diferenta este modul in care percep mediul
datorita locatiei/pozitiei in sistem.
Agenti de diferite tipuri (model intern, modalitate de interactiune, tip, etc)
Complexitate crescuta datorita modalitatii de interactiune
Problema: agenti benevoli sau competitivi? Chiar daca sunt diferiti pot ajuta
la obiectivele celorlalti sau le pot inhiba.

SMA heterogene comunicative

Sincroonizare = posibilitatea de a trimite datele citite de un agent la ceilalti


agenti => sistem centralizat (dpdv al informatiei dar nu si al deciziei)
Comunicatia poate fi interpretata ca o interactiune a agentului cu mediu,
ceilalti agenti fiind situati in mediu.
Prin comunicare agentii se pot coordona mai bine decat prin mediu.

20

Introducere
Arhitecturi multi-agent (=f(agentii
componenti))
Problema principala: cat de fidela ar
trebui sa fie reprezentarea mediului?
Agentii reactivi: au o reprezentare
redusa a mediului sau chiar deloc.
Agentii deliberativi: reprezentare
simbolica a mediului. Abordarea AI
(Sense-Plan-Act)
21

Introducere
Cand se recomanda folosirea SMA

Proces descentralizat prin natura sa

modelarea unui lant de aprovizionare


alocarea operatiilor intr-un sistem descentralizat (agentii
reprezinta interesele ficarei persoane implicate, ex.: alocarea
sarcinilor in domeniul medical)
sisteme in care procesarea se poate face in paralel

Avantaje

Toleranta la defect prin replicarea agentilor, un mod facil


de tratare a complexitatii, s.a.
Anumite domenii cer acest lucru, paralelism, robustete,
scalabilitate, programare simpla (comportament simplu),
posibilitate de studiu a inteligentei

22

Introducere
Industry 4.0

23

Introducere (EN)

The Industry 4.0 Initiative strongly influenced by agent-based


control and decision making efforts and leverages results achieved
in distributed manufacturing control
MAS Technology provides:

Agent communication languages (e.g. FIPA-ACL, KQML)


Coordination and Negotiation mechanisms
(Social) Knowledge Management, incl. Semantics and Ontologies
MAS Planning
Learning in MAS
Coalition formation, collaborative teamwork
Meta-reasoning
Enable linkage of the virtual world to the real physical world
MAS Architectures
MAS Platforms (Aglobe, Jack, JADE,)
and many theoretical problems are in the focus of attention (emergent
behavior, stability, adaptability, trust)
24

Introducere (EN)

Exemple de SMA

Vladimr Mak & Pavel Vrba, MAS Technology and SOA Architectures in Industry 4.0: Experiences and
Challenges, 2015
Chilled water system on board of US Navy ship (2002-10)
main objective increase survivability of a ship
automatic reconfiguration in case of failure or damage
each physical equipment controlled by agent
cooling plants, valves, services (radar, sonar, weapons, )
service agents asking chillers for cold water
negotiation based on bidding (cost of path)
alternative paths for water found in case of failure or damage

Manufacturing control system


Agents tightly linked with physical system

Need to ensure real-time responsiveness


Yet software agents work in soft real-time

25

Introducere
Probleme de interes
AI, luarea de decizii (colectiv)
Interactiune/sincronizare
Simulare
Obiectiv: dezvoltarea de agenti autonomi
(aplicatii software) care coopereaza in
vederea atingerii unui scop comun

26

Introducere
Programarea orientata agent: AI (comportament/
la nivel de agent), interactiune (structura
dialogului)
Modelarea unei colectii de entitati caracerizate de
autonomie (dpdv al implementarii), proactivitate
(posiblitatea de a lua autonom o decizie) si
posibilitatea de a comunica in mod structurat
Sisteme multi-agent (SMA):
Sistem compus din agenti (cu acelasi scop acesta
limiteaza modalitatea de comunicatie)

27

Introducere

Model arhitectura SMA: peer-to-peer oricare agent poate initia o comunicatie


cu oricare agent la orice moment de timp
Tehnologia multi-agent a fost in centrul multor discutii (modelare,
comunicatie/Internet, s.a.) dar doar de curand a fost adoptata in aplicatii
comerciale (control): de la asistenta personala (dn clema din Word ) la sisteme
complexe, deschise, mission critical folosite in industrie (si armata exemplul
cu sistemul SMA folosit la racirea reactoarelor) => motivatia: neincrederea in
algoritmii decizionali (AI)
Utilizari industriale: control proces, diagnoza, fabricatie (produs inteligent),
logistica/transport, gestiunea retelelor (comunicatie/transport), s.a.
In adoptarea unei abordari multi-agent (descentralizate) sunt o serie de
probleme cheie ce trebuiesc tratate => ex.: cum comunica agentii, pe ce
platforme ruleaza (agentificare/virtualizare obiecte, legatura fizic informational),
modul de oferire a serviciilor, s.a.. Astfel, in loc sa se dezvolte de la 0 aceste
functionalitati este de preferat folosirea unui mediu de dezvoltare/middleware
multi-agent care ofera o infrastructura generica lasand dezvoltatorii sa se
orienteze pe realizarea logicii (comportament, interactiuni, reprezentare de date,
GUI, s.a.)

28

Introducere
Platforme MAS
Realizarea de aplicatii
Framework-uri multi-agent: JADE, Jack,
Realizarea de aplicatii distribuite: Erlang,

Simulare
Netlogo,

Caracteristici in alegerea unei platforme: utilzare


(aplicatie/simulare), arhitectura HW pe care ruleaza,
folosirea resurselor HW/scalabilitate, facilitati
(protocoale de interactiune, toleranta la defect, lucrul
cu servicii, posibilitatea de integrare cu alte aplciatii),
gratuit/comercial, s.a.
29

Sinteza
Definitie agent (VS aplicatie
software), tipuri de agenti si definitia
unui SMA
Utilizarea SMA (modelare i simulare)
Platforme de dezvoltare

30

Bibliografie

Michael Wooldridge, An Introduction toMultiAgent Systems, JOHN WILEY&SONS,LTD, 2002, ISBN 0-471-49691X
Ferber, J., Multi-Agent Systems. An introduction to Distributed Artificial Intelligence. (1999)
Addison-Wesley.
Bellifemine, F., Carie, G., Greenwood, D., 2007, Developing multi-agent systems with JADE, Wiley, ISBN 9780-470-05747-6
Rileanu, S., Borangiu, Hossu, R., Stocklosa, O., Sisteme multi-agent pentru conducerea fabricaiei holonice,
ISBN 978-973-720-621-3, Editura Agir
Rafael H. Bordini, Mehdi Dastani, Jurgen Dix, Amal El Fallah Seghrouchni (Eds), Multi-Agent Programming,
Languages, Platforms and Applications, Springer, 2010, ISBN 978-1-4419-3753-7
Maria Fasli, Agent Technology for e-Commerce, Wiley, 2007, ISBN 978-0-470-03030-1
Theodor Borangiu, Damien Trentesaux, Andre Thomas, seria Service Orientation in Holonic and Multi-Agent
Manufacturing Control (2011-2014), Springer, Studies in Computational Intelligence
Raileanu, S., Borangiu, Th., Ivanescu, N.-A. and O. Morariu (2014). Integration of Mobile Agents in Distributed
Manufacturing Control, in IEEE Proceedings vol. of the 18th Int. Conf. on System Theory, Control and
Computing, ICSTCC18, Sinaia, Romania, October 17-19, 2014
Morariu, O., Borangiu, Th., Morariu, Cristina and S. Raileanu (2014). Multi-Agent System for Heterarchical
Product-Driven Manufacturing, in IEEEXplore Proceedings vol. of the 19th Int. Conf. on Automation, Quality and
Testing, Robotics, AQTR14, May 22-24 Cluj-Napoca, Romania, ISBN 978-1-4799-3732-5
+

31

Universitatea Politehnica Bucuresti

Sisteme multi-agent

Primvar, 2016

Conf. Dr. Ing. Silviu RAILEANU,


Facultatea de Automatica si Calculatoare
Contact: silviu.raileanu@cimr.pub.ro

Curs 2
Cadre de dezvoltare a
aplicaiilor multiagent
Continut:

Exemple de sisteme multi-agent in conducerea fabricatii

Platforme pentru dezvoltarea aplicatiilor multi-agent


2

Introducere

Model arhitectura SMA: descentralizat/peer-to-peer oricare agent poate initia


o comunicatie cu oricare agent la orice moment de timp
In realizarea unei solutii de control/simulare multi-agent (descentralizate) o serie
de probleme cheie trebuiesc tratate: comunicatia, posibilitatea de a rula pe
platforme diferite (in anumite cazuri cu resurse reduse, fara interfata grafica),
posibilitatea de a accesa la distanta agentii (nu numai in reteaua locala),
posibilitatea de a conecta obiecte fizice la agentii software, oferta de facilitati in
lucrul cu serviciile (inscriere servicii oferite, cautare, selectie, etc.), s.a.
In loc sa se dezvolte de la 0 aceste functionalitati este de preferat folosirea unui
mediu de dezvoltare (middleware multi-agent) care ofera o infrastructura
generica lasand dezvoltatorii sa se orienteze pe realizarea elementelor depente
de aplicatie (comportamente, interactiuni, reprezentarea datelor, GUI, s.a.)

Exemple
Conducerea fabricatiei

Se da: SFF cu posturi autonome


Se cere: automatizarea proceselor de planificare,
alocare, lansare in executie si monitorizare

Fig.1 SFF ED013 (SCF)

Exemple
Conducerea fabricatiei
Solutii

Centralizat Vs Descentralizat (SMA)


Structura elementelor de control
holon=SW(agent)+HW(resursa)

Client
orders

Planned / planned
+ scheduled orders

System model
/ state

Process Knowledge Base


Product Holon (PH)
Aggregate product orders
RSAM
Resource parameters
Operation accessibility

D
Event-driven control
Physical & informational
interaction

Inter-OH
Negotiation

Resource
Holon

Order
Holon

Machining
Resource

Manipulation
5
Resource
Physical Resources

Resource
Control Layer

ProductProduct- Transport
carrier
on-pallet Resource Intelligent
Embedded Device
OHs in execution

Resource status
and parameters

System model
update

Decentralized
MES Layer

Product orders

Centralized
MES Layer
(IT)

Staff Holon
Configurable Batch Planning
and Product Scheduling
Strategy Switch
OH traceability

Client
reports

Exemple
Conducerea fabricatiei
Tipuri de agenti: resursa si ordin

Exemple
Conducerea fabricatiei
JADE

Exemple
Conducerea fabricatiei
Ciclul de viata al AO si AR

Agent Resursa (AR)

Agent Ordin (AO)


8

Exemple
Conducerea fabricatiei
Ciclul de viata al AO si AR

Comunicatia si interconectarea
agentilor

10

Platforme pentru dezvoltarea


aplicatiilor multi-agent

Caracteristici in alegerea unei platforme: utilzare (aplicatie/simulare), arhitectura


HW pe care ruleaza, folosirea resurselor HW/scalabilitate, facilitati (protocoale de
interactiune, toleranta la defect, lucrul cu servicii, posibilitatea de integrare cu
alte aplciatii), gratuit/comercial, s.a.
Lista extinsa framework-uri de realizare de SMA:
https://en.wikipedia.org/wiki/Comparison_of_agent-based_modeling_software
(domeniul de utilizare simulare / programare, licenta gratuit / comercial,
limbaj de programare + sistem de operare portabilitate si amprenta,
documentatie suport, standardizarea comuncatiei (pt programare) FIPA
(www.fipa.org), suport aplicatii geografice (programare si simulare) GIS,
capacitati de desenare 2D / 3D (simulare)
Realizarea de aplicatii

Framework-uri multi-agent: JADE, Jack,


Realizarea de aplicatii distribuite: Erlang,

Simulare

Netlogo,

11

Platforme pentru dezvoltarea


aplicatiilor multi-agent
SMA ca middleware pentru
implementarea de solutii de
conducere

12

Platforme pentru dezvoltarea


aplicatiilor multi-agent

JADE

Solutie pentru implementarea de SMA (Java Agent DEvelopment Framework http://jade.tilab.com/).


Platforma software implementat n limbajul de programare Java care ofer un middleware pentru
dezvoltarea aplicaiilor de tip multi-agent.
Conform specificaiilor FIPA (Foundation for Intelligent Physical Agents http://www.fipa.org/)
organizaie pentru dezvoltarea standardelor software privind tehnologiile bazate pe ageni i
interoperabilitatea acestora cu alte tehnologii.
(Bellifemine et.al.,2007) ofer documentaia complet pentru implementarea sistemelor multi-agent
folosind JADE. Facilitile pe care platforma JADE le ofer sunt:

un sistem distribuit in care sunt executati agenii, fiecare agent este executat ca un thread si exista posibilitatea
de a executa ageni separat pe mai multe masini, indiferent de sistemul de operare
platforma este conforma specificatiilor FIPA
transport eficient al mesajelor asincrone
Implementare functionalitate cautare servicii (paginil aurii, pagini albe)
Gestionarea ciclului de viata al agenilor. In momentul in care un agent este creat, i se atribuie un identificator
unic si o adresa de transport.
Suport pentru mobilitatea agenilor: agenii pot migra intre masini si procese
Instrumente grafice prin care pot fi monitorizati agenii si platformele pe care ruleaza agenii
Suport pentru ontologii si limbajul de continut
Librarie pentru protocoalele de interactiune FIPA care modeleaza diferite tipuri de comportament

Arhitectur platformei JADE - containere care pot fi distribuite n reea. Containerele sunt procese Java
care conin toate serviciile necesare execuiei agenilor.

13

Platforme pentru dezvoltarea


aplicatiilor multi-agent

JADE (cont)

Fiecare platforma contine un container


principal numit Main container care
este primul container care este lansat,
iar celelalte containere trebuie sa se
inregistreze la el.
Containerul principal are urmatoarele
responsabilitati:

Gestiunea tabelului de containere


(Container Table CT):contine
referintele si adresele de transport
ale containerelor
Gestiunea tabelului de descriptori a
agenilor(GADT): contine toti agenii
prezenti in platforma, statusul si
locatia lor
Lansarea agenilor AMS(Agent
Management System) si
DF(Directory Facilitator) care ofera
serviciile pentru gestiunea agenilor
si pagini aurii.

14

Platforme pentru dezvoltarea


aplicatiilor multi-agent

JADE (cont)

Agentul AMS coordoneaz i monitorizeaz ntreag platforma. AMS este


folosit de ctre ageni pentru a caut ali ageni sau pentru a-i gestiona
ciclul de via. nregistrarea agenilor la AMS se face automat de ctre
platforma JADE.
Agentul DF este un serviciu de tip paginii aurii i este folosit de orice agent
care dorete s i nregistreze serviciile sau s caute servicii valabile. DF
ofer posibilitatea subscrierilor pentru agenii care vor s fie notificai n
cazul n care un eveniment se petrece. Exist posibiltatea lansrii mai multor
ageni DF pentru a distribui serviciul de pagini aurii.
Agentul RMA Remote Management Agent este lansat n momentul lansrii
aplicaiei i reprezint consola grafic prin care se gestioneaz activitatea
agenilor din platforma. Funcionalitile oferite de RMA sunt: crearea sau
distrugerea agenilor, modificarea strii agenilor (suspendare, reactivare,
distrugere), trimitere mesaje ctre ageni, mutarea agenilor n alte
containere. Agentul RMA permite afiarea interfeei grafice pentru agentul
Directory Facilitator unde pot fi vzute serviciile oferite de ageni i lansarea
Sniffer-ului n care poate fi urmrit schimbul de mesajele dintre ageni.

15

Platforme pentru dezvoltarea


aplicatiilor multi-agent
JADE (cont)

Ciclul de via al agenilor din platforma JADE este conform


FIPA. Un agent JADE trece prin urmtoarele stri:

Initiat: agentul a fost creat, dar nu a fost inregistrat inca la


AMS
Activ: agentul a fost inregistrat, are un nume si poate
comunica cu alti ageni
Suspendat: agentul a fost oprit pentru ca threadul care
executa agentul a fost suspendat
In asteptare: agentul asteapta un eveniment
Eliminat: agentul a fost sters din AMS, iar threadul sau si-a
terminat executia
Tranzit: agentul este mutat in alta locatie

16

Platforme pentru dezvoltarea


aplicatiilor multi-agent

JADE (cont)

Conform specificaiilor FIPA, platformele multi-agent trebuie s furnizeze


Message Transport Service (MTS), serviciul responsabil pentru schimbul de
mesaje n cadrul platformei sau ntre platforme, pentru a crete
interoperabilitatea sistemului. JADE implementeaz toate standardele
Message Transport Protocol (MTP) dezvoltate de FIPA. La initializarea
containerului principal, JADE pornete un MTP bazat pe HTTP, care creeaz
un socket server pentru containerul principal i care apoi ateapt conexiuni.
MTP are rolul de a ruta mesajele primite prin alte conexiuni ctre agenii
destinatari.
Interaciunea dintre ageni se face prin mesage FIPA-ACL. Structura unui
mesaj FIPA este urmtoarea:

Continutul mesajului
Parametrii mesajului
Codificarea mesajului
Informatii de transport

Parametrii mesajului pot fi: performative, sender, receiver, content,


language, ontology, protocol, conversation-id etc.
17

Platforme pentru dezvoltarea


aplicatiilor multi-agent

JADE (cont)

n JADE, fiecare agent este implementat sub form unei clase. Mai muli
ageni de acelai tip pot fi lansai n acelai timp prin lansarea mai multor
instane ale aceleai clase. Taskurile pe care un agent trebuie s le execute
sunt definite sub form de comportamente (behaviours) care pot fi
executate n paralel. Comportamentele sunt metode prin care se definete
reacia agentului cnd un anumit eveniment are loc, spre exemplu primirea
unui anumit mesaj.
Exist mai multe tipuri de comportamente:

Comportamente simple
Comportamente ciclice care sunt executate atat timp cat agentul este activ.
Acest tip de comportament se foloseste pentru primirea mesajelor
Comportamente singulare care sunt executate o singura data
Comportamente paralele care contin un set de sub-comportamente care se
executa in paralel
Comportamente secventiale care contin un set de sub-comportamente care
se executa unul dupa celalalt

18

Platforme pentru dezvoltarea


aplicatiilor multi-agent

JADE (cont)

Documentatie

JADEall

JADE administrators guide


JADE programmers guide

Lansarea in executie

java jade.Boot Option* AgentSpecifier (";" AgentSpecifier)


Option = -gui, -container, -host, -port, -local-host, -local-port, s.a.
AgentSpecifier = Peter:myPackage.myAgent
Exemple:

* Poate aparea sau nu

java jade.Boot gui = lansarea unei platforme goale pe masina curenta


java jade.Boot -host IP_host container sender1:Package.AgentSender
java jade.Boot host IP_host container receiver1:pachet.AgentReceiver
receiver2:pachet.AgentReceiver

19

Platforme pentru dezvoltarea


aplicatiilor multi-agent

JACK

Platforma multi-agent
Comercial
Utilizeaz modelul software BDI i ofer un limbaj i unelte grafice de planificare
Componente

JACK Agent Language (JAL) este un limbaj de programare ce este folosit pentru dezvoltarea
sistemelor bazate pe agenti. JAL cuprinde superset, construit de fapt pe sintaxa
platformei JAVA, extizandu-se in schimb la programarea orientata agenti.
JACK Agent compiler Compilatorul Agentilor Jack este un pre-procesor al codului sursa
scris in JAL pe care il converteste in cod sursa JAVA. Acest cod sursa JAVA poate fi compliat
in codul masina Java si astfel urmand a fi rulat.
JACK Agent kernel este motorul de rulare pentru programele scrise in JAL. Acest motor
ofera un set de clase ce da programelor JAL functionalitatea de orientare agent. Cele mai
multe dintre aceste clase pot rula si implementa infrastructura de baza si functionalitate ale
agentilor
JACK Development Environment JDE este o cross-platform a mediului grafic dezvoltator
care poate fi folosita pentru a dezvolta/realiza aplicatiile agentilor Jack. In plus , pentru a
oferi suport pentru generatia de coduri, instrumentele sunt pregatite sa suporte procesul de
proiectare si urmarirea agentului de executie.

20

Platforme pentru dezvoltarea


aplicatiilor multi-agent

JACK (cont)

Caracteristici (https://en.wikipedia.org/wiki/JACK_Intelligent_Agents)

Agent Run-time: Nucleul platformei este un platforma multi-agent extensibila in timp real.
Dup ce agenii specifici domeniului, planuri, evenimente, capacitile, etc. sunt specificate,
nucleul JACK gestioneaz executarea sistemului, inclusiv de mesaje.
JACK Plane Language (JPL): JACK ofer un limbaj, agent specific, pentru scrierea planurilor
JACK (raionamentul discret executate de ctre agenii). Limbajul plan este o extensie a
Java i ofer comenzi, cum ar fi send i post pentru mesaje inter-agent, precum i de
gestionare a aciunilor, sub-sarcini i meninerea unor condiii. Planuri sunt compilate n
clase Java pentru executarea n JACK oferind viteza i corectitudinea executrii;
Belief-Desire-Intention Model: n plus fa de un model clasic agent (non-BDI), platforma
realizeaza modelul software BDI;
Capaciti: Platforma ofer capabiliti care sunt abstracii de comportamente obisnuite, se
manifest ca un complex de planuri i evenimente. Capabilitile ofer o modalitate de
grupare conceptuala de comportamente i aciuni comune i re-utilizarea lor ntre agenii;
JACK Development Environment (JDE): sistemele multi-agent pot fi scrise n cod Java i
limbajul planului JACK

21

Platforme pentru dezvoltarea


aplicatiilor multi-agent

JACK (cont)

Caracteristici (https://en.wikipedia.org/wiki/JACK_Intelligent_Agents)

JACK Development Environment (JDE): sistemele multi-agent pot fi scrise n cod Java i
limbajul planului JACK ntr-un standard IDE, dei platforma ofer un IDE centrat pe agent
numit mediul de dezvoltare JACK sau JDE. JDE ofer instrumente grafice pentru scrierea
planurilor, conectarea planurile agenilor, gestionarea comunicrii inter-agent, precum i
compilarea i rularea. JDE prevede, de asemenea instrumente grafice pentru depanare i
urmrirea executrii planurilor i mesaje inter-agent;
Planurile grafice: O caracteristic cheie a JDE este facilitatea de a scrie i de a gestiona
planurile grafice. Acestea sunt raionamentul discret efectuat de un agent reprezentat grafic
ca o diagram, permind unui programator gestionarea codul efectuat n fiecare pas al
graficului pentru a gestiona fluxul logic pe baza documentaiei tehnice pe fiecare nod;
JACK Object Modeller (JACOB): O metoda de serializare folosita de JACK pentru initializarea
obiectelor i comunicare inter-proces. Obiectele Java sunt serializate in ASCII, nu prea
diferit de YAML i XML;
Platforma Independenta: Platforma JACK este scrisa n Java, care permite desfurarea
unui sistemmulti-agent Jack pe o gama larg de platforme care susin Java Virtual Machine.
n prezent, JACK poate fi instalat pe sistemele de operare Microsoft Windows numai folosind
un 32-bit Java Virtual Machine, dar lucreaz, de asemenea, pe un 64-bit Java Virtual
Machine. Pe cele mai recente versiuni ale sistemelor de operare Mac OS X (ncepnd de la
Mac OS X Lion) JACK poate fi instalat numai cu ajutorul unui instalator consol.

22

Platforme pentru dezvoltarea


aplicatiilor multi-agent
JACK (cont)
Platforma

23

Platforme pentru dezvoltarea


aplicatiilor multi-agent

NETLOGO

Limbaj de programare multi-agent


Mediu de modelare si simulare

NetLogo este un limbaj de programare multi-agent si mediu de modelare pentru


simularea naturala complexa si a fenomenelor sociale. Este recomandat pentru
modelarea sistemelor complexe si evolueaza de la an la an. Programatorul poate
da instructiuni catre sute si chiar mii de agenti independenti ce lucreaza simultan
in mediul dezvoltat, cu scopul de a explora conexiunile dintre comportamentele
indivizilor la nivel micro si macro ce sunt dezvoltate din interactiunile acestora.
NetLogo permite utilizatorilor sa creeze simulari de la cel mai mic nivel si a se
juca cu ele, putand observa comportamentul acestora in diferite conditii.
NetLogo este, de asemenea, un mediu de creatie ce este indeajuns de simplu de
a permite studentilor si cercetatorilor de a crea propriile modele, chiar daca
acestia nu sunt programatori profesionisti.
NetLogo este o aplicatie independenta scrisa in JAVA pentru a putea rula pe toate
platformele de calcul. Aceasta este tip freeware oricine o poate descarca gratuit
si are posibilitatea de a construi modele fara restrictii. NetLogo cuprinde o vasta
biblioteca de documentare, tutoriale, precum si numeroase modele predefinite.

24

Platforme pentru dezvoltarea


aplicatiilor multi-agent

NETLOGO (cont)
Ca si limbaj, NetLogo este un membru al familiei Lisp ce suporta agenti si concurenta. Agentii
mobili sunt denumiti testoase, ce se misca pe o grila de patch-uri care sunt, de asemenea,
agenti programabili.
Toti agentii pot interactiona unii cu altii si pot efectua mai multe sarcini simultan. NetLogo este
astfel folosit pentru a construi o nesfarsita varietate de simulari.
In exemplele oferite de catre acest framework, utilizatorii pot utiliza testoaseleca si molecule,
lupi, cumparatori, vanzatori, albine, membrii de trib, pasari, viermi, alegatori, masini, roboti,
neutroni, magneti, planete, furnici, muschi, etc.
Patch-urile au fost transformate in copaci, pereti, terenuri, cursuri de apa, locuinte, plante,
celule canceroase, terenuri agricole, cer, birouri, nisip si orice alt tip de mediu necesar
modelului despre care se face simularea, pentru o interfatare prietenoasa si usor
interpretabila.
Testoasele si patch-urile sunt utilizate pentru a vizualiza si studia abstractii matematice,
pentru a crea arta si a dezvolta jocuri. Temele abordate includ automate celulare, algoritmi
genetici, feedback positiv si negativ, evolutia si deriva genetica, dinamica populatiei, autoorganizare, societati artificiale si viata artificiala.

25

Platforme pentru dezvoltarea


aplicatiilor multi-agent
NETLOGO (cont)

26

Platforme pentru dezvoltarea


aplicatiilor multi-agent

Erlang

Erlang este un limbaj de programare multi-scop utilizat n principal


pentru dezvoltarea sistemelor concurente i distribuite. A nceput
ca un limbaj de programare proprietar, utilizat de ctre Ericsson
pentru aplicaii de telefonie i comunicaii. Lansat ca open source
n 1998, Erlang a devenit mai popular n ultimii ani datorit
utilizrii sale n proiecte de mare profil, cum ar fi sistemul de chat
Facebook, i n proiecte inovatoare open source, cum ar fi sistemul
de baze de date orientate spre management de documente
CouchDB.
Ref:
https://en.wikipedia.org/wiki/Erlang_%28programming_language
%29

27

Platforme pentru dezvoltarea


aplicatiilor multi-agent
ERLANG (cont)
Caracteristicile Erlang:
mii de tranzacii simultane;
suporta arhitecturi de grup;
suporta o gama larga de OS-uri Solaris, VxWorks,
Windows, Linux, Mac OS X - 32bit, 64bit cu suport
SMP;
uptime de 99.999% (=downtime maxim 5 min / an)
se recupereaz de la erori de software;
se recupereaza de la erori hardware;

28

Platforme pentru dezvoltarea


aplicatiilor multi-agent

ERLANG (cont)
Caracteristicile Erlang (cont):

Concurenta Erlang lucreaza cu procese ale cror cerine de memorie pot varia n mod
dinamic. Procesele nu au nici o memorie partajat i comunica prin mesaje asincrone
intre ele. Erlang suporta aplicatii cu un numr foarte mare de procese concurente. Nu
exist cerine pentru concuren, aceastea fiind plasate pe sistemul de operare gazd;
Distribuie Erlang este proiectat pentru a fi rulat ntr-un mediu distribuit. O main
virtual Erlang este numit un nod Erlang. Un sistem distribuit Erlang este o reea de
noduri Erlang (de obicei, una pe procesor). Un nod Erlang poate crea procese paralele
care ruleaz pe alte noduri, care folosesc probabil alte sisteme de operare. Procesele
localizate pe diferite noduri comunica la fel ca procesele aflate pe acelai nod;
Robusteea Erlang are diferite modalitati de detectare a erorilor, care pot fi utilizate
pentru structurarea sistemului in asa fel incat sa fie tolerant. De exemplu, procesele pot
monitoriza starea i activitile altor procese, chiar dac aceste procese sunt de
executare pe alte noduri. Procesele aflate ntr-un sistem distribuit pot fi configurate
pentru a muta functionalitatile unui nod Erlang picat la alte noduri n caz de defeciuni i
migreaz automat la nodurile recuperate;

29

Platforme pentru dezvoltarea


aplicatiilor multi-agent

ERLANG (cont)
Caracteristicile Erlang (cont):

Soft in timp real - Erlang suporta programarea de sisteme "soft" in timp


real, care necesit timp de rspuns n ordinea de milisecunde.
Actualizare de cod - Multe sisteme nu poate fi oprite pentru mentenanta
aplicatiilor. Erlang permite modificarea codului sursa pe un sistem care
ruleaza (la cald). Codul vechi pot fi eliminat i nlocuit cu noul cod. n
perioada de tranziie, att codul vechi i noul cod pot coexista. Astfel, este
posibila instalarea si repararea bug-urilor i upgrade-uri ntr-un sistem care
ruleaz fr a perturba funcionarea acestuia.
Codul Incremental de ncrcare Utilizatorii pot controla n detaliu cum este
ncrcat codul. n domeniul sistemelor integrate, tot codul este de obicei
ncrcat la iniializarea sistemului. n sistemele de dezvoltare, codul este
ncrcat atunci cnd este necesar, chiar i atunci cnd sistemul este pornit.
Dac la testarea se descoper bug-uri, doar codul defect poate fi nlocuit.

30

Sinteza
JADE Vs JACK Vs Netlogo Vs ERLANG
Caracteristici JADE

Configuratia de lansare (linie


comanda, parametrizari)

31

Bibliografie

Michael Wooldridge, An Introduction toMultiAgent Systems, JOHN


WILEY&SONS,LTD, 2002, ISBN 0-471-49691-X
Ferber, J., Multi-Agent Systems. An introduction to Distributed Artificial
Intelligence. (1999)
Addison-Wesley.
Bellifemine, F., Carie, G., Greenwood, D., 2007, Developing multi-agent
systems with JADE, Wiley, ISBN 978-0-470-05747-6
Rileanu, S., Borangiu, Hossu, R., Stocklosa, O., Sisteme multi-agent pentru
conducerea fabricaiei holonice, ISBN 978-973-720-621-3, Editura Agir
Theodor Borangiu, Damien Trentesaux, Andre Thomas, seria Service Orientation in
Holonic and Multi-Agent Manufacturing Control (2011-2014), Springer, Studies in
Computational Intelligence
Raileanu, S., Borangiu, Th., Ivanescu, N.-A. and O. Morariu (2014). Integration of
Mobile Agents in Distributed Manufacturing Control, in IEEE Proceedings vol. of the
18th Int. Conf. on System Theory, Control and Computing, ICSTCC18, Sinaia,
Romania, October 17-19, 2014
NetLogo: Design and implementation of a multi-agent modeling environment- Seth
Tisue, Uri Wilensky : http://www.ccl.sesp.northwestern.edu/papers/2013/netlogoagent2004c.pdf
32

Universitatea Politehnica Bucuresti

Sisteme multi-agent

Primvar, 2016

Conf. Dr. Ing. Silviu RAILEANU,


Facultatea de Automatica si Calculatoare
Contact: silviu.raileanu@cimr.pub.ro

Curs 3

JADE
Continut:

Structura agent JADE (Comportmanete, Mesaje)


Protocoale de interactiune in sistemele multi-agent
2

Structura agent JADE

Creare de agent nou

Superclass: jade.core.Agent
public class HelloWorldAgent
extends Agent { }
Metode importante:

Setup (reimplementat)
setari initiale
takeDown (reimplementat)
eliberare memorie (interfete
grafice) + mesaje

Creare comportament nou

Superclass: TTTBehaviour
Metode importante:

addBehaviour, action, done,


onStart, onEnd, etc
3

Structura agent JADE


Identificator agent
Instanta a clasei jade.core.AID
( agent-identifier :name silviu@127.0.0.1:1099/JADE
http://127.0.0.1:7778/acc ))

:addresses (sequence

Identificator local unic agent metoda


getAID().getLocalName()
Identificator global unic <localname>@<platform-name> - metoda
getAID().getName()
Adresa metoda getAID().getAllAddresses()
4

Structura agent JADE


Lucrul cu DF

Structura agent JADE

Inregistrare (setup) / cautare (behaviour) servicii in DF

DF registru centralizat care asociaza descriptori de servicii cu identificatori agent


DFAgentDescription structura de date standard pentru inregistrarea si cautarea de servicii in DF
DFAgentDescription
Name:
AID
// necesar pentru inregistrare
Protocols: set of Strings
Ontologies: set of Strings
Languages: set of Strings
Services:
set of {
{ Name: String
// necesar pentru fiecare serviviu specificat
Type: String
// necesar
Owner: String
Protocols: set of Strings
Ontologies: set of Strings
Languages: set of Strings
Properties: set of
{ Name: String
Value: String
}
}

Standardizarea datelor care intra in DF (ontologii, protocoale de interactiune, limbaj)


Se permite o singura inregistrare (cu mai multe servicii) in DF

Structura agent JADE

Lucrul cu DF (exemplu)
DFAgentDescription dfd = new DFAgentDescription();
dfd.setName( getAID() );
ServiceDescription sd = new ServiceDescription();
sd.setType( "buyer" );
sd.setName( getLocalName() );
dfd.addServices(sd);
try {
DFService.register(this, dfd );
}
catch (FIPAException fe) { fe.printStackTrace(); }

Recomandare: inregistrarea serviciului se pune intr-o


procedura (AID si nume serviciu parametri) pentru a fi
refolosita de diferiti agenti (alte implementari)
7

Structura agent JADE


Lucrul cu DF (stregerea din DF)
Agent terminat => scos din AMS, dar nu din
DF
Agent terminat => takeDown =>
protected void takeDown() { try {
DFService.deregister(this); } catch (Exception
e) {} }
Agent terminat, reinitializat => probleme la
inregistrare datorita posibilitatii prezentei
vechii inregistrari
8

Structura agent JADE

Lucrul cu DF (cautarea in DF)

Crearea unui DFAgentDescription (DFD) fara AID, doar


campurile dupa care dorim sa cautam vor fi initializate
Return un vector de DFD, fiecare continand AID-urile agentilor
cu serviciile cautate
Exemplu:
DFAgentDescription dfd = new DFAgentDescription();
ServiceDescription sd = new ServiceDescription();
sd.setType( "buyer" );
dfd.addServices(sd);
DFAgentDescription[] result = DFService.search(this, dfd);
System.out.println(result.length + " results" );
if (result.length>0)
System.out.println(" " + result[0].getName() );

Structura agent JADE


Lucrul cu DF (recomandari)
Cautarea si stergerea serviciilor inainte
de a se inregistra (pentru a nu da
eroare)
Notificare automata la inregistrarea de
servicii dorite

10

Structura agent JADE


Cautarea de agenti dupa nume pe AMS
Parametri de cautare:
Agentul care initializeaza cautarea (this),
Un parametru de tip AgentDescription care
poate fi folosit pentru filtrarea agentilor
Constrangeri legate de numarul de agenti
returnati (-1 == toti agentii)

Obs: se intoarce inclusiv agentul curent


care trebuie dat la o parte din cautare
agentID.equals(myID) ? "*** " : "")+i+ ": " + agentID.getName()
11

Structura agent JADE

import jade.core.Agent;
import jade.core.AID;

import jade.domain.AMSService;
import jade.domain.FIPAAgentManagement.*;

public class AMSDump extends Agent


{
protected void setup()
{
AMSAgentDescription [] agents = null;
try {
SearchConstraints c = new SearchConstraints();
c.setMaxResults (new Long(-1));
agents = AMSService.search( this, new AMSAgentDescription (), c );
}
catch (Exception e) {
System.out.println( "Problem searching AMS: " + e );
e.printStackTrace();
}

AID myID = getAID();


for (int i=0; i<agents.length;i++)
{
AID agentID = agents[i].getName();
System.out.println(
( agentID.equals( myID ) ? "*** " : "
+ i + ": " + agentID.getName()
);
}
doDelete();
System.exit(0);

")

12

Structura agent JADE

Comportamente = tratarea unui eveniment (mesaj, actionare, etc.)


An agent can execute several behaviours concurrently un singur
comportament o data
Planificarea comportamentelor este non-preemptiva, dar cooperativa
Comportament planificat pentru executie => se executa metoda din action
Un singur thread per agent
Avantaje: memorie putina, pt echipamente cu resurse putine
Schimbarea comportamentului e mai rapida decat shimbarea threadului in curs
de executie
Un thread = eliminarea problemelor de sincronizare la folosirea resurselor
comune
La schimbarea comportamentului stiva de memorie nu se schimba permitand
astfel salvarea starii curente a agentului => mutarea agentului pe un alt
container, posibil pe alt PC executie la distanta

13

Structura agent JADE


addBehaviour( new myBehaviour( this )
);
public class myBehaviour extends
Behaviour {
public void action() {
while (true) {
// do something
}
}
public boolean done() {
return true;
}
}

Problema ?

14

Structura agent JADE

Tiputi de comportamente (simple)

comportamente de tip one-shot (OneShotBehaviour), care sunt proiectate


s i realizeze scopul ntr-o singur faz de execuie; metoda action() a lor
este, deci, executat o singur dat; clasa
jade.core.behaviours.OneShotBehaviour are deja implementat metoda
done(), care returneaz true i poate fi extins pentru a implementa noi
comportamente de acest tip;
comportamentele ciclice (CyclicBehaviour), care sunt proiectate s ruleze la
infinit, pn cnd agentul i termin execuia; metoda action( ) a acestor
comportamente execut aceleai operaii de fiecare daat cnd este apelat;
clasa jade.core.behaviours.CyclicBehaviour are deja implementat metoda
done(), care returneaz false i poate fi extins pentru a implementa noi
comportamente de acest tip;
comportamentele generice (Behaviour) ncorporeaz o variabil care
declaneaz executarea anumitor operaii; execuia lor se ncheie atunci
cnd este ndeplinit o anumit condiie.

15

Structura agent JADE


Tiputi de comportamente (simple) (cont)
Comportament generice

16

Structura agent JADE


Comportamente (cont)
Metoda Action (reimplementat), executie
elemente decizionale
Metoda onStart (reimplementat), executie
inainte de primul apel al lui Action
Metoda onEnd (reimplementat), executie dupa
ce done returneaza true
Metoda removeBehaviour() apelata din agent
pentru a elimina comportamentul specificat
Variabila membru myAgent din comportament
se poate referentia agentul parinte
17

Structura agent JADE


Comportamente (cont)
Exemple:
public class MyOneShotBehaviour extends
OneShotBehaviour / (Simple)Behaviour /
CyclicBehaviour

18

Structura agent JADE


WakerBehaviour action() si done() sunt
preimpleemntate pentru a executa metoda onWake
Dupa executia metodei onWake comportamentul se
incheie
Exemplu

19

Structura agent JADE


TickerBehaviour action() si done() sunt
preimpleemntate pentru a executa metoda
onTick
Comportamentul nu se termina decat daca
este eliminat sau opritexplicit (metoda
stop())
Exemplu

20

Structura agent JADE

Ierarhie comportamente JADE 21

Comunicarea inter-agenti
Mesaje standardizate
Expeditor, destinatar(i), tip mesaj,
continut, limbaj, ontologie, ID, replywith, in-reply-to and reply-by.

22

Comunicarea inter-agenti
Trimitere / receptie de mesaje

add NU set pentru ca se


pot adauga mai multi
23

Comunicarea intre agenti

Atribute mesaje ACL: http://jade.cselt.it/doc/api/jade/lang/acl/ACLMessage.html

Metode get si set pentru acces si setare parametrii

Performative tip mesaj FIPA (INFORM, QUERY, PROPOSE, ...) necesar la apelul
constructorului mesajului ACL (singurul argument)
Adresare

Receiver
Sender (initializat automat SAU NU)

Content Continutul mesajului ACL


ConversationID Identificatorul conversatiei (folosit la schimburi structurate de
mesaje)
Language Specifica limbajul folosit in continut
Ontology Ontologia folosita in continut
Protocol Protocolul de comunicatie
ReplyWith Another field to help distinguish answers
InReplyTo Sender uses to help distinguish answers
ReplyBy Used to set a time limit on an answer
msg.createReply() interschimba expeditor cu destinatar

24

Comunicarea intre agenti


Cum gasim agenti cu care sa vorbim
Stim numele agentilor din linia de
comanda
Le rapsundem unor agenti de la care am
primit mesaje
Ii cautam pe AMS
Ii cautam pe DF

25

Protocoale de interactiune in
MAS

Arhitecturi tinta: sisteme de control descentralizate si/sau


distribuite

Transmisia informatiei

componenta esentiala in procesul de control

Problematica :
Comunicatia intre entitatile de
control ale unui SFF
Standardizarea acestor limbaje
Ontologii: o reprezentare formala a unui
set de concepte dintr-un domeniu si a
relatiilor dintre aceste concepte. Este
folosita pentru a defini si analiza domeniul respectiv

Structura de control
descentralizata

26

Protocoale de interactiune in
MAS

Protocoale de comunicatie intre entitati


ofera posibilitatea agentilor sa schimbe (si sa inteleaga) mesaje intre ei

Odata ce protocoalele de comunicatie intre entitati au fost stabilite,


protocoale de nivel inalt pot fi definite:

Protocoale de interactiune / limbaje de comunicare intre entitati/


agenti
ofera posibilitatea agentilor de conversa (schimb structurat de mesaje)

Exemple:

KQML-ACL (Knowledge Query


Communication Language)
FIPA-ACL

and

Manipulation

Language

Agent

27

Protocoale de interactiune in
MAS
Protocoale de comunicatie intre entitati
Permit agentilor sa schimbe si sa inteleaga mesajele

Tipuri de mesaje:

Propunerea unei actiuni (Propose)


Acceptarea unei actiuni (Accept)
Rejectarea unei actiuni (Reject)
Abandonarea unei actiuni (Retract)
Dezacordul cu privire la desfasurarea unei actiuni (Disagree)
Propunerea unei actiuni alternative (Counter-propose)

28

Protocoale de interactiune in
MAS
Protocoale de intractiune
Ofera agentilor posibilitatea de a conversa (de a schimba
mesaje structurate)
Exemplu: negocierea unei actiuni intre Agent1 si Agent2:

Agent1 propune o actiune lui Agent2


Agent2 evalueaza propunerea si:

Accepta propunerea
Raspunde cu o alta propunere
Nu accepta propunerea
Isi exprima dezacordul legat de propunerea primita

29

Protocoale de interactiune in
MAS

KMQL (Knowledge Query and Manipulation Language)

Dezvoltat de Defense Advanced Research Projects Agency (DARPA) in


cadrul programului de schimb de cunostinte (1990)

Limbaj de comunicatie de nivel inalt folosit ca protocol in schimbul de


informatii si orientat pe schimbul de mesaje

Contine doua parti:

Protocolul de comunicatie (KQML)


Formatul mesajelor (Knowledge Interchange Format, KIF)

Este independent de:

Infrastructura de transport
Ontologia continutului

30

Protocoale de interactiune in
MAS

Mesaj KQML
actiune
parametru
valoare

(tell :sender
Agent1
:receiver
Agent2
:in-reply-to id7.24.97.45391
:ontology ecbk12
:language KIF
:content price(ISBN3429459,24.95))

Reprezinta un singur act de comunicare sau o actiune de


executat (intrebare, informare, monitorizare, etc) cu o
semantica si un protocol asociate, precum si cu o lista de
valori/atribute :content, :language, :from, :in-reply-to
31

Protocoale de interactiune in
MAS
Neajunsuri KMQL:
KQML trebuie sa opereze intr-o infrastructura de
comunicare ce permite agentilor sa se localizeze
unul pe altul
semantica mesajelor nu a fost inca complet
definita
(inca in lucru)
32

Protocoale de interactiune in
MAS
Foundation for Intelligent Physical Agents (FIPA)
www.fipa.org

Organizatie non-profit fondata in 1996 ce producea


specificatii software pentru sisteme heterogene de agenti

Se transforma in 2005 in comitet IEEE

Standardele de care se ocupa cu precadere (cele mai


raspandite):

Arhitecturi sisteme multi-agent


Gestiunea agentilor (transport, management)
Limbaje de comunicare agent (Agent Communication Language)
33

Protocoale de interactiune in
MAS
Actiuni comunicative

(http://www.fipa.org/specs/fipa00037/SC00037J.html)

Accept-proposal
Agree
Cancel
Cfp
Confirm
Disconfirm
Failure
Inform
Inform-if (macro act)
Inform-ref (macro act)
Not-understood

Propagate
Propose
Proxy
Query-if
Query-ref
Refuse
Reject-proposal
Request
Request-when
Request-whenever
Subscribe
34

FIPA-request (http://www.fipa.org/specs/fipa00037/SC00037J.html#_Toc26729708)

Protocoale de interactiune in MAS


Summary

The sender requests the receiver to perform some action.


One important class of uses of the request act is to request the receiver to perform
another communicative act.

Message
Content
Description

An action expression.
The sender is requesting the receiver to perform some action. The content of the
message is a description of the action to be performed, in some language the receiver
understands. The action can be any action the receiver is capable of performing, for
example, pick up a box, book a plane flight, change a password, etc.
An important use of the request act is to build composite conversations between
agents, where the actions that are the object of the request act are themselves
communicative acts such as inform.

Formal Model

Examples

<i, request (j, a )>


FP: FP (a) [i\j] Bi Agent (j, a) Bi Ij Done (a)
RE: Done (a)
FP(a) [i\j] denotes the part of the FPs of a which are mental attitudes of i.
Agent i requests j to open a file.
(request
:sender (agent-identifier :name i)
:receiver (set (agent-identifier :name j))
:content
"open \"db.txt\" for input"
:language vb)

35

FIPA-request (protocol interactiune)


FIPA request

36

FIPA-Query (protocol interactiune)


FIPA query

37

FIPA-Contract-net (protocol
interactiune)
Protocol bazat pe regulile pietei
libere pentru alocarea in timp real a
resurselor (Smith, 1980):
1. Recunoasterea resurselor
2. Licitatia pentru un serviciu
3. Anuntarea castigatorului
4. Alocarea serviciului
5. Expedierea

38

FIPA Contract-Net-Protocol

FIPA-Iterated-Contract-net
FIPA Iterated Contract-Net-Protocol

39

Sinteza
Structura agent JADE
Lucrul cu DF si AMS
Tupuri de comportamente
Mesajele si protocoalele de
interactiune standard FIPA prezentate

40

Bibliografie

Michael Wooldridge, An Introduction toMultiAgent Systems, JOHN


WILEY&SONS,LTD, 2002, ISBN 0-471-49691-X
Ferber, J., Multi-Agent Systems. An introduction to Distributed Artificial
Intelligence. (1999)
Addison-Wesley.
Bellifemine, F., Carie, G., Greenwood, D., 2007, Developing multi-agent
systems with JADE, Wiley, ISBN 978-0-470-05747-6
Rileanu, S., Borangiu, Hossu, R., Stocklosa, O., Sisteme multi-agent pentru
conducerea fabricaiei holonice, ISBN 978-973-720-621-3, Editura Agir
Theodor Borangiu, Damien Trentesaux, Andre Thomas, seria Service Orientation in
Holonic and Multi-Agent Manufacturing Control (2011-2014), Springer, Studies in
Computational Intelligence
Raileanu, S., Borangiu, Th., Ivanescu, N.-A. and O. Morariu (2014). Integration of
Mobile Agents in Distributed Manufacturing Control, in IEEE Proceedings vol. of the
18th Int. Conf. on System Theory, Control and Computing, ICSTCC18, Sinaia,
Romania, October 17-19, 2014
NetLogo: Design and implementation of a multi-agent modeling environment- Seth
Tisue, Uri Wilensky : http://www.ccl.sesp.northwestern.edu/papers/2013/netlogoagent2004c.pdf
41

Universitatea Politehnica Bucuresti

Sisteme multi-agent

Primvar, 2016

Conf. Dr. Ing. Silviu RAILEANU,


Facultatea de Automatica si Calculatoare
Contact: silviu.raileanu@cimr.pub.ro

Curs 4

Interactiuni in JADE (cont)


Continut:

Interactiuni (comportamente) complexe


Agenti cu interfata grafica
2

Introducere
myAgent

Variabila locala a tuturor comportamentelor care stocheaza


agentul parinte ca referinta
Poate fi folosita pentru a accesa atributele si metodele
agentului parinte
Daca clasa este definita in clasa agent nu mai e nevoie de
myAgent (this)

Comportamente simple
block(dt)
GUID (<local-name>@<platform-name>), AID ((
agent-identifier :name name@127.0.0.1:1099/JADE
:addresses (sequence http://127.0.0.1:7778/acc )))
3

Interactiuni in JADE
Elemente de tratat in realizarea unei interactiuni
Citirea selectiva de mesaje
Timeout-uri la receptia mesajelor (limite de timp
acceptabile
Insiruirea comportamentelor pentru obtinerea unei
conversatii coerente
Tratarea cererilor concomitente (paralele)
Tratarea conversatiilor concomitente (paralele)
Procesarea mesajelor ramase in coada de mesaje

Interactiuni in JADE
Citirea selectiva de mesaje
Problema: in coada de mesaje pot
aparea mai multe tipuri de mesaje
myAgent.receive()/receive()
Sablon (template) de receptie
receive(template)
Instanta a jade.lang.acl.MessageTemplate
metode statice de creare a filtrelor de
creceptie
5

Interactiuni in JADE

Citirea selectiva de mesaje (cont)

Metodele cele mai folosite

MatchPerformative( performative ), performative =


ACLMessage.INFORM, ACLMessage.PROPOSE, ACLMessage.AGREE, s.a.
(mesaje standard FIPA)
MatchSender (AID)
MatchConversationID (String): folositor in cazul conversatiilor paralele
cu mai multi agenti. Se creaza un nume al conversatiei pentru
identificarea mesajelor si raspunsurilor. Astfel, se pot defini
comportamente pentru a raspunde doar la mesajele asociate dialogului
de interes (ConversationID).
and (Template1, Template2)
or (Template1, Template2)
not (Template)
MatchProtocol (String)
MatchOntology (String)

Interactiuni in JADE
Citirea selectiva de mesaje (cont)
Exemplu:
MessageTemplate mt = MessageTemplate.and(
MessageTemplate.MatchPerformative( ACLMessage.INFORM ),
MessageTemplate.MatchSender( new AID( "a1", AID.ISLOCALNAME))) ;
cod

ACLMessage msg = receive( mt );


if (msg != null) { ... handle message }
block();

Interactiuni in JADE
Conversatii complexe

Un comportament cu mai multe stari


Odata ce o stare a fost utilizata se
trece la urmatoarea
Exemplu: CNP

S1: se trimite CFP la toti participantii


(send)
S2: se asteapta raspunsul (receive,
eventual selectiv)
(S3: se ia o decizie)
S4: se trimit informari
S5: se asteapta raspunsul
Contorul avanseaza de la o stare la
alta si la sfarsit se reseteaza/termina
comportamentul

S1
S2
S3
S4
S5
8

Interactiuni in JADE
class TwoSteps extends SimpleBehaviour {
int state = 1;
public void action() {
switch( state ) {
case 1:
//cod1
break;
case 2:
//cod2
break;
}
state++;
}

//avansul intre stari (secvential VS selectiv)

public boolean done() { return state>nr_max_stari; }


}

Interactiuni in JADE

Realizarea de timeout-uri (V1)


// asteapta 40 sec sau un mesaj de tip INFORM_REF
be2 = new ReceiverBehaviour(this, 40000, MessageTemplate.MatchPerformative(ACLMessage.INFORM_REF));
addBehaviour(be2);

Verificarea executiei comportamentului


ACLMessage msg;
if (be1.done()) {
try {
msg = be1.getMessage();
<... we did get a message on time ...>
}
catch (ReceiverBehaviour.TimedOut e3) { ...Timed out!!!...}
}
else
< ...neither message received nor timeout elapsed ...>

10

Interactiuni in JADE
Realizarea de timeout-uri (V2) (cont)
Demo (myReceive.java)

11

Interactiuni in JADE
Tratarea mesajelor neprocesate
Folosirea timeiut-urilor pentru a evita bucle
infinite => pot aparea mesaje dupa
expirare, aceste mesaje nu mai sunt tratate
si raman in coada incetinind operarea
sistemului
Mesaje orfan identificate dupa timpul
petrecut in coada (>5sec)
Comportament Ticker care citeste mesajele
si daca exista in coada le elimina
12

Interactiuni in JADE

Tratarea mesajelor neprocesate (cont)

Exemplu
protected void onTick() {
ACLMessage msg = myAgent.receive();
while (msg != null) {

if (! old.contains(msg)) seen.add( msg);


else {
System.out.print("+++ Flushing message: ");
dumpMessage( msg );}
msg = myAgent.receive();}
for( Iterator it = seen.iterator(); it.hasNext(); )
myAgent.putBack( (ACLMessage) it.next() );
old.clear();
Set tmp = old;
old = seen;
seen = tmp; }
13

Interactiuni in JADE
Protocol de interactiune: un agent trimite un mesaj si
asteapta un raspuns la mesajul respectiv
Posibilitati:

Comportament (secventa de stari)+ ID comunicatie +


createReply cu acelasi ID + transmiterea ID-urilor dorite
tuturor comportamentelor implicate in conversatie
Sabloane FIPA

AchieveREInitiator
AchieveREResponder
SimpleAchieveREInitiator
SimpleAchieveREResponder
ContractNetInitiator
ContractNetResponder
14

Interactiuni in JADE
Comportamente
complexe
Inseriate (secvential /
paralel
Paralele

15

Interactiuni in JADE
Comportamente complexe

SequentialBehaviour

Se planifica secvential
Cand se termina un comportament (done) incepe urmatorul

Secvential == folosirea de variabila pentru determinarea


starii
Exemplu
SequentialBehaviour threeStepBehaviour = new
SequentialBehaviour(anAgent);
threeStepBehaviour.addSubBehaviour(new OneShotBehaviour(anAgent) {
public void action() {
// perform operation X

16

Interactiuni in JADE
Comportamente
complexe
FSMBehaviour
Cand done e true se
trece la urmatoarea
stare

17

Interactiuni in JADE

Comportamente complexe

FSMBehaviour
Tranzitiile sunt marcate cu etichete intregi
Cand un comportament se termina => onEnd() returneaza ID-ul
evenimentului care duce in prima stare (comportament) identica
Metode

registerState() nume stare si comportament din starea respectiva


registerTransition() sursa, destinatie, ID tranzitie
registerFirstState() prima stare
registerLastState() ultima stare (pot fi mai multe)

Comportamentul incepe cu prima stare si se termina cu o ultima


stare

18

Interactiuni in JADE
Comportamente complexe
ParallelBehaviour permite executia de
comportamente in paralel
each time the action() method of a parallel
behaviour is executed, it invokes the action()
method of the current child and then moves the
pointer forward to the next child regardless of
hether the latter was completed or not.
addSubBehaviour()
Comportamentul se termina cand toate se termina
sau cand se termina primul (WHEN_ALL /
WHEN_ANY specificat in constructor)
19

Interactiuni in JADE

Comportamente complexe
ParallelBehaviour (cont)
Exemplu de folosire comportament paralel pentru incheierea
unei sarcini care nu se termina intr-un timp specificat
Behaviour task = new MyTask();
ParellelBehaviour pb = new ParallelBehaviour(anAgent,
ParallelBehaviour.WHEN_ANY);
pb.addSubBehaviour(task);
pb.addSubBehaviour(new WakerBehaviour(anAgent, 60000) {
public void onWake() {
System.out.println("timeout expired");
}
});

20

Agenti cu interfata grafica


Mecanism bazat pe tratarea de evenimente
Agent care interactioneaza cu un GUI
indicatori
GUI care interactioneaza cu un agent buton
GuiAgent

GUI WindowBuilder (Eclipse)


Ref:
http://www.iro.umontreal.ca/~vaucher/Agents/Ja
de/Gui.html
Bellifemine, F., Carie, G., Greenwood, D., 2007,
Developing multi-agent systems with JADE, Wiley,
ISBN 978-0-470-05747-6
21

Agenti cu interfata grafica

Mecanism bazat pe tratarea de evenimente

The agent interacting with the GUI - A GUI has already a built-in mechanism of handling event which is
implemented via the actionPerformed(...) method of every component that is registered with an
ActionListener object. To register a component of your GUI with an ActionListener object, you either make
your GUI implements the ActionListener interface and then register all interactive components of your GUI
such as buttons with this ActionListener via the method addActionListener(...) or for each of the interactive
components, you anonymously create an ActionListener object and add it to the component by passing it
in argument to the same method addActionListener(). Whenever a call to the GUI is made, an ActionEvent
is generated by the source component, that invokes the actionPerformed() method. And according to the
code you provided within the actionPerformed() method, the GUI responds by processing the event. When
your agent program interacts with the GUI, it just calls the method you provided within the GUI program
that activates this mechanism.
The GUI interacting with the agent - JADE has provided the abstract class GuiAgent that extends the Agent
class. This class has two specific methods: postGuiEvent() and onGuiEvent(). These are the two methods
that allow to handle the interactions between a GUI and an agent program. To be able to use these
methods, your agent program must extend the GuiAgent class. Then you must provide the necessary code
within the onGuiEvent() method that your agent will use to receive and process events that are posted by
the GUI via the method postGuiEvent(). You may view the onGuiEvent() method as the equivalent of the
actionPerformed() method in the GUI. When an agent program extending the GuiAgent class starts, it
launches a specific behaviour - the GuiHandlerBehaviour - that handles incoming events from the GUI and
dispatches them to the appropriate handlers, following exactly the same mechanism as in the GUI. To post
an event to the agent, the GUI simply creates a GuiEvent object, adds the required parameters and passes
it in argument to the method postGuiEvent(). Since this method belongs to the GuiAgent class, you need
to provide to your GUI a reference to the agent class on which the GUI can invoke that method.
Ref: http://www.iro.umontreal.ca/~vaucher/Agents/Jade/Gui.html

22

Elemente aditionale
Creare de agenti din aplicatii (ref:
http://www.iro.umontreal.ca/~vauch
er/Agents/Jade/primer4.html#7)
Lansare platforma din alte aplicatii
(ref: Bellifemine, F., Carie, G.,
Greenwood, D., 2007, Developing
multi-agent systems with JADE,
Wiley, ISBN 978-0-470-05747-6, pag
111)
23

Sinteza
Comportamente complexe
(modalitatid e realizare si probleme
ce pot aparea)
Agenti cu interfata grafica

24

Bibliografie

Michael Wooldridge, An Introduction toMultiAgent Systems, JOHN


WILEY&SONS,LTD, 2002, ISBN 0-471-49691-X
Ferber, J., Multi-Agent Systems. An introduction to Distributed Artificial
Intelligence. (1999)
Addison-Wesley.
Bellifemine, F., Carie, G., Greenwood, D., 2007, Developing multi-agent
systems with JADE, Wiley, ISBN 978-0-470-05747-6
Rileanu, S., Borangiu, Hossu, R., Stocklosa, O., Sisteme multi-agent pentru
conducerea fabricaiei holonice, ISBN 978-973-720-621-3, Editura Agir
Theodor Borangiu, Damien Trentesaux, Andre Thomas, seria Service Orientation in
Holonic and Multi-Agent Manufacturing Control (2011-2014), Springer, Studies in
Computational Intelligence
Raileanu, S., Borangiu, Th., Ivanescu, N.-A. and O. Morariu (2014). Integration of
Mobile Agents in Distributed Manufacturing Control, in IEEE Proceedings vol. of the
18th Int. Conf. on System Theory, Control and Computing, ICSTCC18, Sinaia,
Romania, October 17-19, 2014
NetLogo: Design and implementation of a multi-agent modeling environment- Seth
Tisue, Uri Wilensky : http://www.ccl.sesp.northwestern.edu/papers/2013/netlogoagent2004c.pdf
25

Universitatea Politehnica Bucuresti

Sisteme multi-agent

Primvar, 2016

Conf. Dr. Ing. Silviu RAILEANU,


Facultatea de Automatica si Calculatoare
Contact: silviu.raileanu@cimr.pub.ro

Curs 5
Standardizarea informatiei
interschimbate in SMA
conceptul de ontologie
Continut:

Introducere ontologii
Interaciuni n sistemele multi-agent
2

Introducere
Complexitate comunicatie
Ex.: pentru identificarea unui articol (stiintific) este
nevoie de nume autori, titlu, conferinta, an, etc. =>
continut mesaj => sintaxa bine definita a mesajului
pentru ca receptorul sa inteleaga ceea ce primeste =>
standardizare structura si modalitate de transmitere
Acest set de concepte si simbolurile folosite pentru a
le exprima se numeste ontologie: definitie formala a
unui set de cunostinte impreuna cu metodele de
operare asupra setului
Limbaj (content language / JADE) VS ontologie
(libmaj generic, ontologie specifica unui domeniu)
3

Introducere
Limbaj variabila de tip sir de
caractere (string) (XML):
Avantaj prelucrare simpla prin analiza
textului (daca se stiu regulile), e simplu
la asamblare
Dezavantaj la receptie (trebuie sa stim
regulile)

Solutie: folosirea obiectelor/clase


get&set variabila
4

Introducere
Exemplu:
public class Article{
String title;
List authors;
public String getTitle() {return title;}
public void setTitle(String t) {title = t;}
public List getAuthors() {return authors;}
public void setAuthors(List l) {authors = l;}
...
}
5

Introducere

De fiecare data cand se schimba mesaje este nevoie ca


agentii sa converteasca informatia din reprezentare interna
in mesaj ACL si receptorii sa realizeze procesul invers
codec JADE
Receptorul trebuie sa realizeze un set de verificari
semantice asupra mesajului ontologie JADE

JADE ofera automat aceste facilitati prin intermediul unui obiect


de tip content manager care ofera metodele de transformare a
obiectelor in siruri de caractere ce urmeaza a fi inserate in
continutul unui mesaj
Structura content manager: ontologie pentru validarea informatiei
ce urmeaza a fi convertite dpdv semantic + codec pentru
transformarea in stringuri a obiectelor

Introducere
Avantaje utilizare ontologii in JADE
Continut agent
ACLMessage
Informatie
reprezentata ca un
sir de caractere sau o
secventa de biti (usor
de transferat)

Parte agent

Suport JADE pentru


limbaj (content
langiage) si ontologii

Informatie
reprezentata ca
obiecte JAVA (usor
de manipulat)

Dezavantaje:

Functioneaza doar intre platforme JADE (se poate comunica


cu platforme nonJADE)
Nu este human-readable (analiza cu Sniffer)
7

Introducere

Istorie cercetare IA: mecanisme/continut (ontologie)


Definitii (Obitko, 2001):

Utilizare

Teoria existentei: Ontology is a term in philosophy and its meaning is theory of


existence.
Specificare explicita a componentei unui domeniu: Ontology is an explicit
specification of conceptualization, Ontology is a body of knowledge describing
some domain
Vocabularul folosit de un sistem de IA: Ontology is a theory of vocabulary or
concepts used for building artificial systems
IT Gramatica
Partajarea si reutilizarea informatiei
Comunicatia (standardizarea comunicatiei) in sisteme multi-agent
Intelegerea limbajului natural
Cautarea in documente
Sisteme educationale

Cea mai des intalnita metoda de interactiune in sistemele heterogene este


sichimbul de mesaje. Astfel, trebuie sa existe o standardizare la nivelul sintaxei
(structura limbajului, gramatica) si al semanticii (sensul limbajului).
8

Introducere

Motive pentru dezvoltarea unei ontologii:

Pentru a partaja intinformatia comuna intre persoane sau agenti


software
Pentru a putea refolosi informatia asociata unui domeniu
Pentru a separa modelul unui domeniu de cunostintele
operationale
Pentru a analiza modelul unui domeniu

Definirea unei ontologii presupune:


Definirea claselor ontologiei
Dispunerea claselor intr-o ierarhie
(clasasuperclasa)
Definirea proprietatilor si a valorilor
permise pentru proprietati
Atribuirea de valori proprietatilor

Fig.1 Exemplu de ontologie


9

Introducere

Elemente componente ale unei ontologii:

Indivizi: instante sau obiecte


Clase: multimi, colectii, concepte, tipuri de obiecte/lucruri
Atribute: aspecte, proprietati, functionalitati, caracteristici sau parametrrii
pe care le au obiectele
Relatii: metode prin care clasele si indivizii relationeaza intre ei
Termeni functionali: structuri complexe formate din relatii; pot fi folosite in
locul unui termen in cadrul unei afirmatii
Restrictii: descrieri formale a ceea ce trebuie sa fie adevarat pentru ca o
afirmatie sa poata fi acceptata ca intrare
Reguli: afirmatii de tipul if-then care descriu interfetele logice ce pot
rezulta de la o anumita forma a afirmatiei
Axiome: afirmatii (inclusiv norme) intr-o forms logica; teoria general
conform careia ontologia descrie n domeniul su de aplicare
Evenimente: schimbarea atributelor sau a relatiilor

10

Introducere

Structura conceptului de ontologie in JADE

Predicat: Expresie care exprima ceva despre starea mediului (en.: world); poate fi fals sau
adevarat; e.g.: (Works-for (Person :name John) (Company :name TILAB)) exprima faptul ca
John lucreaza pentru compania TILAB.

Termeni: sunt expresii care identifica entitati (abstracte sau concrete) care exista in mediu si
in legatura cu care agentii iau decizii. Sunt clasificati in:

Predicatele pot fi folosite ca instante in continutul mesajelor de tip INFORM sau QUERY-IF, dar nu in
mesaje de tipul REQUEST.

Primitive: expresii care indica entitati atomice precum siruri de caractere si numere intregi
Concepte: expresii care indica entitati cu cu o structura complexa, definita in termeni de proprietati
(Person :name John :age 33); nu au sens folosite individual in mesaje ACL; sunt referite in general
cu predicate precum: (Book :title The Lord of the rings :author (Person :name J.R.R. Tolkjien))
Actiuni agent: concepte speciale care indica actiuni ce pot fi realizate de agent e.g. (Sell (Book:
title The Lord of the rings) (Person :name John)); difera de concepte prin faptul ca fi un continut
cu inteles in mesaje de tipul REQUEST
Agregari (en.: Aggregates): expresii care indica entitati ce formeaza un grup e.g. (sequence
(Person :name John) (Person :name Bill))
Identificarea referenial a expresiilor (en.: Identifying Referential Expressions (IRE)):
expresii care identifica o entitate pentru care un anumit predicat este adevarat; e.g. (all ?x (Worksfor ?x (Company :name TILAB))
Variabile: i.e. expresii (folosite cel mai des in query-uri) care indica un element generic necunoscut
apriori

O ontologie a unui domeniu contine structura predicatelor (nume si sloturi), concepte si actiuni
agent asociate asociate domeniului

11

Introducere
Ontologii in JADE
Structura si mod de
utilizare
Structura -> Concept
(en.: Concept)
Acte de comunicatie
(marcheaza
rezervare) ->
actiune agent (en.:
agent actions
12

Interaciuni n sistemele
multi-agent

Domeniul vizat: conducerea fabricatiei


Probleme curente: cerinte crescande in termeni de flexibilitate,
reconfigurabilitate si toleranta le defect
Solutia: arhitectura de conducere descentralizata (echipamente
diferite/de la producatori diferiti) + SOA (-> Enterprise Service Bus
(ESB) -> M(anufacturing)SB) / IP
Dificultate: complexitatea crescanda a infomratiei asociate partii
de conducere face dificila modificarea/mentenanta sistemului
Limite asociate fabricatiei discrete: lipsa de standardizare,
interoperabilitate, acces date, decalaje intre diferitele modalitati de
gandire (Cambridge, IP meeting, 2012)
Solutie (1) aplicatie comerciala cu implementarea protocoalelor
necesare comunicatiei cu resursele existente, (2) aplicatie MAS
gratuita (JADE) si un vocabular comun pentru entitatile
componente
13

Interaciuni n sistemele
multi-agent

Definirea conceptului de ontologie : vocabular standard si comun pentru pentru


domeniul partajat (conducerea fabricatiei: alocare, executie, monitorizare)
Origini : IA, rationament si clasificare automata
Ce s-a facut

Solutie

Domeniul educational (Lagos , 2007)


Estimarea costurilor (Lemaignan, 2006)
Descrierea domeniilor atasate fabricatiei (Borgo, 2004),
Agentificare (obiecte de automatizare (en.: automation objects) abstractizari ale
dispozitivelor fizice cu inteligenta/capacitati decizionale atasate)
Propunerea unei ontologii (mesaje si tipuri de date) pentru conducerea descentralizata a
productiei

De ce?

Toti agentii trebuie sa aiba informatii corecte si consistente

14

Arhitectura de conducere
Manufacturing Execution System (MES)

Functionalitati propuse: specificare resurse, materiale,


produse, lansare in executie, trasabilitate, planificare si
alocare
Limitari: centralizat VS descentralizat

MES descentralizat (dMES) extensie MES

Functionalitati: conducerea fluxului de ordine


(!!!control/conducere)
Avantaje: centralizat VS descentralizat

Viziune: combinarea MES cu dMES


Probleme pe termen scurt: complexitatea crescanda a
dMES
15

Arhitectura de conducere

16

Arhitectura de conducere

Implementare

Bazata pe PROSA: OH, RH; (cu extensiile Resource Service Access


Model, Mediator)

JADE

Avantaj: simplu si (aproape) complet (dpdv al structurii), !!!nu si din


punct de vedere al functionalitatii
Sistem de executie descentralizat
Existenta unor comportamente/protocoale de interactiune predefinite
(e.g.: CNP)
Luarea deciziei cu ajutorul comportamentelor
DF functionalitatea de baza a RSAM

Protg + Bean Generator

Generare si regenerare simpla


Integrare simpla in programele JAVA (export/import)

17

Arhitectura de conducere

18

Analiza informatiei asociate


procesului de conducere
1. Conducere semi-heterarhica

Conducere centralizata: ierarhic

Conducere descentralizata: negociat si non-negociat heterarhicl

2. Procesele principale din modul de conducere negociat heterarhic: alocare, executie


si monitorizare
3. Ontologie (concepte & proprietati, mesaje si tipuri de date, actiuni agent si
concepte)

Ofera avanaje la dezvoltarea de aplicatii mari, complexe si bazate pe standarde deschise


cand toti participantii (agentii) trebuie sa partajeze acelasi vocabular

Examplu:

message_type = predefined type (through ontology)

If message_type == T1 then execute behaviour

19

Analiza informatiei asociate


procesului de conducere
Procesul de alocare
RSAM Agent

Mediator Agent

RH Agent(s)

OH Agent(s)

register (1)
Service
registration
register (2)

Action type: RegisterService


Exchanged info: resource and
mediator concept (services
offered)
Message performative:
INFORM

request_res&op (3)

response_res&op (4)
request_sch_info
(QUERY_REF)) (5)

Choose
available
resources

response_sch_info
INFORM (6)

Action type:
RequestResourceInfo
Exchanged info: resource
concept (state, uptime, etc
no reservation)
Message performative:
QUERY REF

Compute
schedule

Response
INFORM result (8)

propose_schedule
PROPOSE (7)

request_op (9)

confirm (10)

Iterative
coordination,
alert other
orders to send
their schedule

Make
reservation on
resource

Action type: ProposeSchedule


Exchanged info: reservation
concept (operation, resource,
start, end, orderID)
Message performative:
PROPOSE
Action type: MakeReservation
Exchanged info: reservation
concept (operation, start, end,
orderID)
Message performative:
REQUEST
For each scheduled operation a
reservation will be done

20

Analiza informatiei asociate


procesului de conducere
Procesul de executie (a unui ordin de
fabricatie)
RH Agent

OH Agent

request_exec_op
Execute
operation

result

Action type: ExecuteOperation


Exchanged info: product operation
concept (resource and operation)
Message performative: REQUEST

21

Analiza informatiei asociate


procesului de conducere

Aspecte ale procesului de


monitorizare:

RSAM Agent

1. Agentii OH cer informatie de


la agentii RH despre
rezervarile precedente
(mesaje 1&2);
2. Agentii RH informeaza agentii
OH despre modificarile
curente care pot afecta
rezervarile facute (mesaj 3);
3. Agentii RH actualizeaza
agentul RSAM (mesaj 4);
4. Agentii OH anuleaza rezervari
pe agentii RH (mesajele 5&6)

RH Agent(s)

OH Agent(s)

request_status
resource&opeation

status:
resource&operation

status:
resource&operation

status:
resource&operation

Action type: RequestResourceStatus


Exchanged info: resource concept
(resource and operation)
Message performative: QUERY REF
Action type: InformResourceStatus
Is done automatically by the
resource on a standard basis
Exchanged info: resource concept
(resource and operation)
Message performative: INFORM
Action type: RSAMUpdate
Exchanged info: resource concept
(resource and operation)
Message performative: INFORM

Cancel_reservation

Acknowledge

Action type: CancelReservation


Exchanged info: reservation
concept (resource and operation)
Message performative: INFORM

22

Analiza informatiei asociate


procesului de conducere

Realizarea ontologiei

1. Concepte structuri complexe


asociate entitatilor/subentitatilor sistemului de
conducere caracterizate de o
serie de proprietati (structura)
2. Actiuni agent concepte
aparte care reprezinta actini
realizate de agenti
(sensul/logica comunicatiei)

23

Modul de lucru cu ontologii in


JADE

Folosirea suportului JADE pentru limbaj (content language)


si ontologii:

Definirea unei ontologii care sa includa structuri pentru


predicatele, actiunile agent si conceptele asociate domeniului
Scrierea claselor Java pentru toate tipurile de predicate, actiuni
agent si concepte din ontologie. Selectarea limbajului de
interactiune adecvat din cele suportate direct de JADE.
Inregistrarea ontologiei definite si a limbajului de interactiune
selectat cu agentul
Crearea si manipularea continutului ca obiecte Java care sunt
instante ale claselor dezvoltate la pasul 2. JADE se ocupa de
transformarea obiectelor Java in/din secvente de caractere in biti
care intra in componenta unor mesaje de tip ACLMessage.

24

Concluzii
1.

2.

3.

Setup experimental

Agent RSAM (JADE DF)

4 agenti resursa

1 agent ordin

Avantaje

Generare si regenerare simpla a


ontologiei

Reutilizare cod si partajare simpla a


informatiei intre agenti

Separare intre model, domeniul


cunostintelor (ontologie in Protg)
si comportamentul decizional

Dezvoltari ulterioare

Rularea agentilor pe platforme


diferite (fizic)

Coordonarea agentilor prin


intermediul entitatilor de tip
mediator

Testarea procesului de monitorizare


si executie

25

Practic
Crearea de ontologii JADE folosind Protg si
bean generator?
http://protege.stanford.edu/download/download.html
-> Protege V.3.2.1.
Bean generator si template pentru Protg (JADE
Abstract ontologies): http://protege.cim3.net/cgibin/wiki.pl?OntologyBeanGenerator
Instalare (copiere in plugins)
Utilizare (-> Configure )
Crearea ontologiei (plecand de la template-ul
descarcat)
Importare in Eclipse
26

Sinteza
Complexitatea continutului mesajelor
are ca rezultat crearea unor metode
de tratare si intelegere automata =>
codificare programator, XML,
ontologii, s.a.
Structura ontologie
Modalitatea de creare a unei ontologii
Folosire ontologii in JADE
27

Bibliografie

Michael Wooldridge, An Introduction toMultiAgent Systems, JOHN


WILEY&SONS,LTD, 2002, ISBN 0-471-49691-X

Ferber, J., Multi-Agent Systems. An introduction to Distributed Artificial


Intelligence. (1999)
Addison-Wesley.

Bellifemine, F., Carie, G., Greenwood, D., 2007, Developing multi-agent


systems with JADE, Wiley, ISBN 978-0-470-05747-6

Rileanu, S., Borangiu, Hossu, R., Stocklosa, O., Sisteme multi-agent pentru
conducerea fabricaiei holonice, ISBN 978-973-720-621-3, Editura Agir

Raileanu, S., Borangiu, Th., Ivanescu, N.-A. and O. Morariu (2014). Integration
of Mobile Agents in Distributed Manufacturing Control, in IEEE Proceedings vol.
of the 18th Int. Conf. on System Theory, Control and Computing, ICSTCC18,
Sinaia, Romania, October 17-19, 2014

28

Universitatea Politehnica Bucuresti

Sisteme multi-agent

Primvar, 2016

Conf. Dr. Ing. Silviu RAILEANU,


Facultatea de Automatica si Calculatoare
Contact: silviu.raileanu@cimr.pub.ro

Curs 6
Procedura de luare a unei decizii
ntr-un sistem multiagent
Continut:

Introducere
Interactiuni multiple
Comportamente complexe
CNP
2

Introducere
Procesle luarii unei decizii intr-un
sistem descentralizat:
Cautare/actualizare informatie informatie
Luarea unei decizii locale pe baza
informatiei actualizate
Sincronizare cu entitatile
Implementarea deciziei

Introducere
Exemplu:

Achizitia unui produs intr-un mediu de lucru descentralizat


(regulide piata: CNP)
Luarea deciziei: licitatie
Caracteristica proces: mai multi participanti, pot participa
la mai multe licitatii
Probleme:

Un produs/serviciu poate fi atribuit intr-o singura licitatie


Deciziile se iau intr-un interval de timp => pot genera
intarzieri
Intarzieri in comunicatie => necesitatea utilizarii de timeouturi
Anumiti agenti nu mai pot raspunde pentru ca nu mai sunt
activi
4

Introducere
Exemplu (cont)
Caracteristici interactiune
Pot fi mai multi participanti
Pot exista timpi morti
Pot exista interactiuni multiple,
paralelisme si secvente
Protocol de interactiune =
secventierea unor interactiuni
standard (trimite, asteapta,
primeste, ia o decizie, trimite,
)

Introducere
Secventa de actiuni
Comportament secvential VS comportament
simplu cu stari

VS
SequentialBehaviour seq = new SequentialBehaviour();
seq.addSubBehaviour( new SimpleBehaviour(){
System.out.println( "--- Stare 1 --- " );
});
seq.addSubBehaviour( new SimpleBehaviour(){
System.out.println( "--- Stare 2 --- " );
});
addBehaviour( seq );

class TwoSteps extends SimpleBehaviour


{
int state = 1;
public void action()
{
switch( state ) {

case 1:
System.out.println( "--- Stare 1 --- " );
break;
case 2:
System.out.println( " -- Stare 2 --" );
finished = true;
doDelete(); // applies to the Agent
}
state++;

Avantaj comportament secvential: cod mai compact


}

private boolean finished = false;


public boolean done() { return finished; }
}
addBehaviour(new TwoSteps());

Introducere
WakerBehaviour (existent) VS/SAU
DelayBehaviour (implementat)
delay-ul se calculeaza de la crearea
comportamentului nu de la rularea comportamentului
=> diferenta de timp
onWake VS metoda generica rescrisa astfel incat sa
trateze procesul necesar la expirarea timpului
DelayBehaviour se implementeza un comportament
simplu care se pune in standby (nu se programeaza
la executie) pentru intervalul dorit (block(interval)),
apoi se apeleaza o metoda virtuala care este rescrisa
in programul care utilizeaza comportamentul
respectiv
7

Introducere
Tratarea unui mesaj intarziat (myReceiver)
Necesitate intarzieri in comunicatie, procesari
indelungate
Implementare
Aceeasi idee de la DelayBehaviour
Se implementeza un comportament simplu care se pune
in standby (nu se programeaza la executie) pentru
intervalul dorit de asteptare a mesajului
(block(interval)). Comportamentul este reprogramat fie
dupa expirarea timpului fie la receptia mesajului. In
acest moment este apelata o metoda virtuala care apoi
este rescrisa in programul care utilizeaza
comportamentul respectiv
8

Interactiuni multiple
Implementarea unei conversatii (1 sau n
vanzator(i) 1 cumparator)
Vanzatorii ofera un serviciu (comportament simplu de
raspuns la un mesaj cu decalaj intre receptia si
trimiterea mesajului)
Cumparatorul cauta serviciul (la mai multi vanzatori):
trimite un mesaj la respectivii si lanseaza un
comportament de tip myReceiver (asteapta un
interval de timp pana la receptia mesajului)
Se trimit n mesaje / se asteapta n nesaje de la cei
care au receptionat

Interactiuni multiple

Identificare comunicatie

10

Interactiuni multiple
Identificarea unei anumite conversatii
Identificator conversatie asociat unui mesaj de tip
ACL ACLMessage.getConversationID

Probleme:
Transmiterea de ID-uri catre agentii si
comportamentele implicate in conversatie
Solutii: cand se da reply conversationID se completeaza
automat

Generarea de ID-uri unice:


Nu random simplu exista posibilitatea sa se genereze
acelasi numar => se suprapun conversatii
Random( hashCode() + System.currentTimeMillis())
11

Interactiuni multiple
Tip mesaj:
Message.performative =

Accept-proposal
Agree
Cancel
Cfp
Confirm
Disconfirm
Failure
Inform
Inform-if (macro act)
Inform-ref (macro act)
Not-understood

Propagate
Propose
Proxy
Query-if
Query-ref
Refuse
Reject-proposal
Request
Request-when
Request-whenever
Subscribe
12

Interactiuni multiple
Implemtarea unei conversatii (1
cumparator 1/n vanzatori) tratarea
mesajelor primite in acelasi timp/paralele
Solutie: comportament secvential compus
dintr-un comportament paralel (n
raspunsuri myReceiver) si un
comportament simplu/OneShoot pentru
decizie/printare rezultat

13

Comportamente complexe
Implemtarea unei conversatii (1 cumparator 1/n
vanzatori) gestiunea conversatiilor paralele
Mai multe conversatii => mai multe best offer (aici
este mesajul cu agentul ofertant) si best price (aici
este valoarea ofertei, pentru ordonare)
Fiecare conversatie trebuie sa aiba propriul set de
variabile
Problema: variabile locale (vizibile doar in
comportamentul in care se declara, nu pot oferi un
context global) VS variabile globale (vizibile in toate
metodele = comportamente, variabilele de acest tip
nu sunt restrictionate la o singura conversatie)
14

Comportamente complexe

Identificatorul
cumparatorului
cu care s-a luat
legatura (mesaj
receptionat)

15

Comportamente complexe
Clasele nu pot referentia variabile
declarate in metodele in care au fost
definite
Solutie:
Plasarea metodei care a creat
conversatia intr-o clasa care reprezinta
conversatia
Pentru fiecare conversatie se instantiaza
o noua clasa
16

CNP

17

Stergerea mesajelor din coada

Modalitatea de stocare a mesajelor (send => coada receiver)


Problema: pot aparea mesaje nedorite care umplu coada (ex: un
mesaj care ajunge tarziu dupa expirarea intarzierii din
myReceiver)
Mesaj orfan / Spam trebuie sters
Probleme:

Filtarea dupa sablon (messageTemplate) este incetinita


Incarcarea inutila a sistemului

Diferenta intre mesajele orfan si mesajele bune: orice mesaj care


sta in coada mai mult de un anumit interval de timp
Solutie: comportament ticker (cu intervalul de stergere dorit) care
citeste toate mesajele din coada (le scoate) si le pune doar pe cele
care nu erau la citirea anterioara (cele mai noi de un anumit
interval de timp)

18

Sinteza

Procesle luarii unei decizii intr-un sistem descentralizat,


problemele care pot aparea si cum se abordeaza:

Un produs/serviciu poate fi atribuit intr-o singura licitatie


Deciziile se iau intr-un interval de timp => pot genera intarzieri
Intarzieri in comunicatie => necesitatea utilizarii de timeout-uri
Anumiti agenti nu mai pot raspunde pentru ca nu mai sunt activi

Ce este un mesaj orfan si cum se trateaza acesta


Conversatie = secventa de comportamente (simple
respectiv paralele pentru procesari multiple in paralel (ex.:
asteptarea de mai multe confirmari))
CNP

19

Bibliografie

Michael Wooldridge, An Introduction toMultiAgent Systems, JOHN


WILEY&SONS,LTD, 2002, ISBN 0-471-49691-X

Bellifemine, F., Carie, G., Greenwood, D., 2007, Developing multi-agent


systems with JADE, Wiley, ISBN 978-0-470-05747-6

Rileanu, S., Borangiu, Hossu, R., Stocklosa, O., Sisteme multi-agent


pentru conducerea fabricaiei holonice, ISBN 978-973-720-621-3, Editura
Agir

JADE Tutorial and Primer, Jean Vaucher and Ambroise Ncho, Dep.
d'informatique, Universit de Montral, September 2003, updated april
2004,
http://www.iro.umontreal.ca/~vaucher/Agents/Jade/JadePrimer.html

20

Universitatea Politehnica Bucuresti

Sisteme multi-agent

Primvar, 2016

Conf. Dr. Ing. Silviu RAILEANU,


Facultatea de Automatica si Calculatoare
Contact: silviu.raileanu@cimr.pub.ro

Curs 7

Legtura fizic-informaional
Continut:

Prezentarea metodelor de extindere a influenei unui


SMA, implementat ca o aplicaie software, ctre lumea
real.
2

Introducere
Motivatie comportament DelayBehaviour

Aplicatia ruleaza pe un singur PC, dar in realitate ea este


distribuita (intarzieri in comunicatie), are elemente fizice
asociate (agentificarea resurselor => timpi de procesare
>0) si procese decizionale care pot dura mult (ex.;
alegerea unui maxim VS alocarea operatiilor pe resursele
unui sistem de tip JSP) sau care nu mai intorc nici un
raspuns (resursa fizica offline => deadline, myReceiver).

Simularea unui proces fizic realizat de agentul in care este


apelat comportamentul DelayBehaviour
Simularea si tratarea unei intarzieri in comunicatie
(DelayBehaviour si myReceiver)
Simularea unui proces decizional intens (DelayBehaviour)

Introducere
Conducerea
descentralizata
a fabricatiei:
conceptul de
produs
inteligent si
resursa
agentificata
Framework JADE cu echipamente fizice asociate

Introducere
Baza de cunostinte
(informatii pe baza de schimb de mesaje)

WiFi antenna
Overo Air
decisional
module

Product to be
assembled

Transportation
pallet with RW
RFID tag

Tipuri de agenti: resursa si ordin

Conducere descentralizata
Motivatia evolutiei de la centralizat la
descentralizat (SMA) (Promise Pabadis)

Evolutia sistemelor de conducere/control

Tipuri de sisteme de conducere


Conducere centralizata
Conducere ierarhica

Control != Conducere
Control -> automatizare
Conducere -> conditionarea fluxului de
entitati/a modului de lucru al resurselor
(nivel de sus)

Conducere hibrida (semi-heterarhic)


Conducere heterarhica
SMA simplu

Tipuri de sisteme de conducere

SMA
subordonat

Conducere descentralizata

Pentru un sistem de conducere descentralizat, este nevoie de un nou


concept de abstractizare al nivelului control, concept care sa tina cont
de i) noile avantaje ale componentelor, precum autonomie in
procesul decizional si prezenta capacitatilor de comunicare, cat si de ii)
noile impedimente precum complexitatea crescanda a sistemului in
termen de comportament global si informatii vehiculate cat si a nevoii
de integrare a acestora in structurile superioare ale intreprinderii. O
solutie pentru acestea ar fi utilizarea conceptelor de agent autonom /
sistem multi-agent (/ sistem ciber fizic) sau sistem de fabricatie
holonic.
F1

F2

F3

P1

P2

P3

F1

F2

F3

Proces
b

Sistem de conducere a.descentralizat si b.distribuit

Conducere descentralizata
Avantaje si dezavantaje diferitelor
sisteme de conducere
Advantage

Disadvantage

Centralized SS control architecture


Shorter production times as high level

Decentralized SS control architecture


Production starts straightaway with high

planning algorithms are used (Borangiu et

perturbation rejection (Gnoni et al., 2003;

al., 2009a); provides optimal solutions on

Saharidis et al., 2006); allows for product-driven

long-term horizon (e.g. at batch level).

scheduling and resource allocation.

Centralized planning is rigid, provides poor

Cost performances are low as no elaborate

perturbation rejection, needs considerable

planning is made at global batch horizon

processing time to provide / update a

(Kaminsky et al., 2005; Murillo et al., 2009);

convenient schedule (Bartk, 2000).

pure heterarchical architectures are myopic.

Sursa: Borangiu et al., 2015


9

Conducere descentralizata

Descentralizare sisteme de conducere


(Sursa: PROMISE PABADIS)
10

MES & SMA

SMA pentru
conducere si
integrare

11

Structura semi-heterarhica de conducere a fabricatiei

Conceptul de produs
inteligent
Produs inteligent (viziunea AutoID Center[McFarlane et al., 2002])

Produs inteligent = produs cu informatie inteligenta/

Agent
decizional

/produs capabil sa ia o decizie si sa genereze un eveniment


Caracteristici:
1. Are identitate unica
2. E capabil sa comunice cu alte entitati din mediul in care se afla
3. Poate memora date despre el insusi
4. Are un limbaj pentru a-si face cunoscute caracteristicile si pentru
a interoga alte entitati (arhitectura bazata pe servicii)
5. Este capabil sa participe la procese decizionale (SMA)

Tipuri de produse inteligente:

Produs inteligent de nivel 1 (1->3)


Produs inteligent de nivel 2 (1->5)

Solutie de implementare

RFID = AUTO ID
Agenti software

Produs inteligent
[McFarlane et al, 2002]
12

Conceptul de produs
inteligent
Produs inteligent
Modul de augmentare
Procesare

Mediu

Memorare
Date statice
ID

Interactiuni externe

Interactiuni proprii

Produs
pasiv

Procesarea datelor
si a deciziilor

Mediu
informational

Mediu
fizic

Alte date statice

Date dinamice
13

Conceptul de produs
inteligent
Remote
1

(EN)

Order Holon

p
Re

lica

Processing
module

Informational
environment

External interactions
(communication, sensors)

Internal interactions (association,


direct control)

Physical product

Product model

Communication
module

Remote
intelligence
layer (decision
making)

PC1, , PCn,
Server

Intermediary
layer (security
and data
adaptation)

PLC

Transportation
system

System model

Real world
representation

n
tio

Synchronization
information-matter

Data collection,
monitor, actuation
and control

Local
2

Memorization module

Fizic

Resource Holon

Informational
counterpart

Data collection,
monitor and
actuation

Station
controller 1

Data collection,
monitor and
actuation

...

Informational
Legatura fizic informational = asociere
fizica

WiFi antenna
Overo Air
decisional
module

Product to be
assembled

Automation
layer

Transportation
pallet with RW
RFID tag

Station
controller n

Physical
layer

14

Conceptul de resursa
agentificata
TCP

Sockets (adresa si port)


Necesitatea implementarii (+definirea protocolului de
interactiune) serverului si a clientului (dezavantaj)
Legatura fizic-informational = comportament simplu in care
se face sincronizarea cu resursa fizica (ex.: client TCP pe
agent si server TCP pe controller-ul resursa)

Fizic

Informational
Modalitatea de integrare a dispozitivelor de control cu
echipamente ETHERNET

15

Avantaje SMA in conducerea


proceselor

Uniformizare acces resurse: un agent generic resursa/ordin


instantiat cu particularitatile ordinului (operatii) si resursei
(operatii si modalitate de comunicare agent/resursa: TCP, serial,
etc. agentul este un intermediar)
Posibilitatea implementarii de comportamente decizionale
complexe pentru resurse care nu dispun de capacitati de procesare
avansate, respectiv agregarea datelor de la mai multe dispozitive
atasate resursei agentificate (in realitate un post de lucru)
Planificare productie si alocare
resurse

Achizitie date

Planificator
global

Cerere actualizare
model optimizare

Agregare
informatii
resurse

Agent
software

Sursa energie

Conexiune
electrica
Control direct
robot

Controller
robot

Conexiune
electrica
Masurare
putere

Placa
achizitie

Conexiune
TCP
Executie
operatie

Consum
energie

PC
Resursa

Conexiune TCP
Informatii individuale
resurse

Model
optimizare
PLC

I/O digitale si
conexiune TCP
Cereri operatii

Rutare si
executie

Smart Wattmeter
Executie ordine

Conexiune
TCP
Incarcare
ordine de
executat

16

Integrarea agentilor mobili in


structuri de conducere a proceselor
fizice

ICSTCC 2014, Sinaia, October 17-19, 2014

Paper domain: manufacturing control

Current issues:

Large number of coexisting resources from different manufacturers


Growing requirements on flexibility (re-configurability and fault tolerance)
Lack of standardization, interoperability and data access (integration is done only at
automation layer using a non-unified approach: raw values of variables are exchanged
through OPC servers or other specific protocols (e.g.: MODBUS))
Gaps between existing ways of thinking

Solution: decentralized control architectures (equipment from different


manufacturers) + SOA (-> ESB -> MSB) / IP
New problems: rising complexity of the information associated to control
difficult do manage, integration of legacy resources and mobile entities

17

Introduction
Proposed solution: MAS application and a common way
(vocabulary) to access the services for all the composing
entities
Integration framework

Divide functionalities between three layers: strategic, tactic


(semi-heterarchic control) and operational

Each entity taking part in the manufacturing process (scheduling,


execution and monitoring) has a representative software agent
(located at the tactical decentralized layer) taking decisions on
their behalf. These decisions are then synchronized with the
physical part.
18

Control architecture layout


Business process layer

Strategic (centralized control) layer

Tactic (decentralized control) layer

decentralized operation scheduling


and resource allocation
management of the flows of products

Operational (automation)

business processes representing the


client interface
mixed production planning, operation
scheduling and resource allocation

Client orders

Manufacturing
reports

Centralized MES:
- definition of product recipes
- management of client orders and resources
- production planning and resource scheduling
- releasing orders for execution
Planned and
scheduled
orders

System
status

Decentralized MES (dMES)

process execution (resource layer);

Agentification: attachment of agents


to physical entities

Commands

Centralized
control layer

Software
agent

Holon
boundary

Data
collection

Automation layer

Decentralized
control layer

Resource
controller

Automation
layer

Agentification: data synchronization


between a software agent and the
associated resource controller

19

Control architecture layout


Layers functionalities

Strategic layer

Tactic layer:

local decision-making and monitoring for work-in-process and resources. This layer is
composed of software entities (agents) associated to work-in-process (running on
Intelligent Embedded Devices - IED) and resources. Through the interaction of these
agents the decentralized resource scheduling and allocation is realized.

Operational layer:

management of client orders and reporting;


defining the manufacturing processes of products (operations type and their
sequencing), traceability of work-in-process, monitoring manufacturing devices and
products in real-time, gathering information from resources, computing a manufacturing
plan, scheduling operations on resources and releasing orders for execution;

this layer realizes the direct control for resources like: i) CNC, robot (material
processing); ii) PLC, robot (material transportation and handling); iii) vision systems
(quality inspection).

Inter-layer communication exchange rate when perturbation occur

20

Resource integration methodology

Control architecture structure: Product, Resource, Order,


Staff Architecture (PROSA reference)

Adding agents to resources and products in


execution

Order Holon

defined for each product that must be executed


an aggregation between: (1) the physical product which is
manufactured; (2) the pallet on which it is being realized; and (3)
an IED used for sequencing operations and allocating the needed
resources

Resource Holon

encapsulates a manufacturing machine (e.g. robot, conveyor,


vision) and a software part located in its associated controller

MAS

Software
agent

Resource
controller

MAS

Software
agent
Physical
product

21

Resource integration methodology

Centralized MES: order management, product definition, centralized planning and order
release for execution

The Order Holon agent: operation scheduling on resources, traceability, transport and
execution, run on IEDs located on pallets which are acting as product carriers

Integration attach an agent behaviour to the MES software

Integration attach an IED executing an agent to the physical product

Resource Holon agent: operation allocation and execution, executes on the PCs associated
to the resource controllers

Integration develop an intermediary agent who will act as a convertor between the MAS framework
and the resource controller (not always able or allowed to run external applications (due to warranty
requests) )

Message based
interaction (FIPA)

Message based
interaction (FIPA)

MES

Load product and


operations

Resource status

Informational flow
Resource agent
TCP, OPC, OPC
UA, Modbus,
Web service

Message based
interaction (FIPA)
Execute operation

Control resource

Order agent
Product on pallet

Physical resource
Physical flow

22

Agent-based resource integration


MAS framework: JAVA Agent Development
Environment
interaction standardization through the FIPA Agent
Communication Language (ACL) used for agent
interaction
easy definition of decisional behaviours
run the associated agents on different platforms/OSs
run the MAS offline without the attached resources
easy analysis of the implemented behaviours through
simulation of different scenarios

23

Agent-based resource integration


Resource integration: done to standardize the access
to resources
2 generic protocols:

integration method for the processing resources (industrial


robots)
integration method for the transportation resource
(conveyor system controlled by a PLC)

Each protocol realizes the associated resource


integration using a JADE agent which implements a
cyclic behaviour in charge with:
1.
2.

receive FIPA messages through the MAS framework and


write data to the particular resource interface.

24

Agent-based resource integration


Centralized MES
Planned (and
scheduled) orders
Resource controller
(Resource Holon
physical part)

Resource PC
(Resource Holon
informational part) - agent

JADE infrastructure (FIPA messages)

IED on pallet
(Order Holon) - agent

PLC PC
(JADE-OPC bridge)

PLC

JADE infrastructure (FIPA messages)


Resource allocation

JADE infrastructure (FIPA messages)

TCP communication

JADE infrastructure (FIPA messages)

Transportation operation execution

Synchronization agentresource controller

Process operation execution

OPC variables
Synchronization
agent-PLC

Protocol 1

Protocol 2

(industrial robot integration)

(PLC integration)

25

Agent-based resource integration


IED on pallet
(Order Holon) agent

Resource PC
(Resource Holon
informational part) - agent

Resource controller
(Resource Holon
physical part)

FIPA request message


Request operations the resources
are able to execute

Behaviour 1:
Scheduling

FIPA inform message


Operations and their
characteristics

Transport
pallet

Loop for all


resources
Behaviour 2:
Operation
execution

Destination
not reached
FIPA request message
Request operation

TCP communication
FIPA inform message
Confirm operation done

PLC PC
(JADE-OPC bridge)

PLC

FIPA request message


Complete schedule for order i (the
sequence of all resources that must
be visited)

OPC variables
Resources
sequence

FIPA inform message

OPC variables

Monitor pallet location

Pallets location,
pallets at robots

TCP communication
Operation code

Loop for all


operations

IED on pallet
(Order Holon) agent

Execute
operation

Execute
operation
on resource

Operation done

Protocol 1: (i) scheduling, (iii) execution

Protocol 2: (ii) transport

26

Pallet
routing

Experiments
Experiment scenarios:

simulation of the scheduling and assembly operations


execution of the scheduled operations a physical system

Experiments layout: products batch & resources


capabilities
Resource

Operation

Execution
time (sec)

R1

Op1, Op3, Op4, Op8, Op10, Op11

5 sec each

R2

Op2, Op4, Op5, Op8, Op9, Op10, Op12

5 sec each

R3

Op1, Op5, Op6, Op7, Op9

5 sec each

R4

Op3, Op5, Op6, Op8, Op9, Op10, Op11, Op12

5 sec each

Conveyor

Transport between two resources


Order
O1

R4

R3

Output

15 sec

Operation

O2

Op1, Op2, Op5, Op12, Op10


Op2, Op3, Op7, Op10, Op5, Op1, Op12, Op9, Op8, Op11

O3

Op1, Op3, Op4, Op6, Op7, Op9, Op11, Op5

O4

Op3, Op12, Op2, Op6, Op5

Input

R1

R2

P0

27

Experiments

Experimental results

Normal execution (simulation)

i) Makespan
(different
operations)
3:36

ii) Makespan
(same
operations)
1:35

Resource breakdown (simulation)

5:23

2:23

Normal execution (physical system)

5:23

4:21

Resource breakdown (physical system)

6:32

6:13

Experiment

Time differences:

Simulation and the execution on the


physical system: on the real system
pallets must wait for one another in order
to arrive at the destination while in the
simulation this issue is not dealt with;
Normal
execution
and
Resource
breakdown: delay inserted into the
execution process by the additional
message
exchange
for
operation
relocation on the remaining available
resources,
less
resources=>bigger
makespan;
Difference between scenarios: flexibility
results in a better makespan.

(DEMO: simulation)

28

Sinteza
Modalitatea de asociere a agentilor pentru entitati de
tip ordin (produs pe paleta, SBC (pb: rulare JADE pe
SO atasat)) si entitati de tip resursa (ex.: robot
industrial, CNC, PLC) (pb: se poate rula JADE direct
pe controller sau tb sa rulam pe un PC atasat?)

WiFi
antenna

IED assocaited
with the
transportation pallet

Product to be
assembled

Standard FIPA messages


and interaction protocols
Java & JADE

Java & JADE

Operating System

Operating System

Hardware
Intelligent embedded
device (IED)

Hardware
Associated
workstation

Direct resource
control

Physical
resource

29

Bibliografie

Raileanu S., Borangiu Th, Ivanescu N.A, Morariu O., Integration of


mobile agents in distributed manufacturing control, 18th Internatilnal
Conference on System Theory, Control and Engineering, 17-19
October, Sinaia, Romania, 2014
Borangiu Th., Raileanu S., Berger T.,Trentesaux D., Switching mode
control strategy in manufacturing execution systems, IJPR, 2015
Bellifemine, F., Carie, G., Greenwood, D., 2007, Developing multiagent systems with JADE, Wiley, ISBN 978-0-470-05747-6
Rileanu, S., Borangiu, Hossu, R., Stocklosa, O., Sisteme multi-agent
pentru conducerea fabricaiei holonice, ISBN 978-973-720-621-3,
Editura Agir
Proiectul european PROMISE PABADIS

30

Universitatea Politehnica Bucuresti

Sisteme multi-agent

Primvar, 2016

Conf. Dr. Ing. Silviu RAILEANU,


Facultatea de Automatica si Calculatoare
Contact: silviu.raileanu@cimr.pub.ro

Curs 8
Negocieri si acorduri in SMA

Continut:

Introducere (stabilirea unui acord)


Licitatii
Tipuri de lictatii
Procesul de negociere
2

Stabilirea unui acord

En.: reaching an agreement


Pb.: nu exista un obiectiv comun (clasic: cumparatori & vanzatori clasic, real:
vanzatorii tind sa isi maximizeze profitul pe baza ofertelor de la cumparatori si
viceversa)
Cum pot agentii sa ajunga la un acord cand au obiective distincte (ex.: problema
prizonierului) utilitatea deciziei (pret, dar nu chiar)
zero-sum scenario scenariu in care suma beneficiilor celor doi agenti
participanti este 0 era mai bine inaintea interactiunii decat dupa in cazul in care
utilitatea celuilalt este >0; ex.: sah (castigi sau pierzi, de obicei)
In anumite cazuri nu se poate ajunge la un numitor comun benefic pentru ambii
participanti pe baza negocierii intre acestia
Comportamentul cooperativ poate fi exploatat doar de cei care gandesc rational

Stabilirea unui acord

Abordarea clasica a problemei prizonierului pus in pielea unuia


din ei:

Cooperez (nu tradez) daca si celalalt coopereaza am un beneficiu de 3,


daca nu coopereaza am beneficiu 0. Concluzie: beneficiu garantat 0
Tradez daca celalat coopereaza am beneficiu de 5, daca tradeaza am
beneficiu de 2. Concluzie: beneficiu garantat de 2, fata de beneficiul 0
garantat de la punctul anterior
Scenariu simetric, daca ambii gandesc la fel tradarea este beneficiul
garantat maxim
=> Comportamentul cooperativ (functie obiectiv) pierderi mici) poate fi
exploatat doar de cei care gandesc rational

Stabilirea unui acord

Robert Axelrod cercetator politic interesat de mecanismele de cooperare care


pot aparea in societati de agenti care au interese personale
Turneu de dilema prizonierului
Tipuri de programe:

ALL-D: strategie agresiva (tradeaza intotdeauna indiferent de ce a facut oponentul)


RANOOM: ignora ce face oponentul si alege tradarea si cooperarea aleator cu
probabilitati egale
TIT-FOR-TAT:
(1) in prima runda coopereaza;
(2) in rundele urmatoare face ce a facut oponentul in runda precedenta;
- cea mai simpla strategie (5 linii de cod Fortran )
TESTER. Exploateaza strategiile care nu pedepsesc tradarea: in prima runda testeaza
oponentul prin tradare; daca acesta raspunde cu tradare merge pe strategia TIT-FORTAT; daca oponentul nu tradeaza atunci coopereaza 2 runde si apoi tradeaza.
JOSS: exploateaza adversarul cooperant TTT-FOR-TAT, dar in 10% din cazuri tradeaza.

TIT-FOR-TAT castigator => concluzie, este bine sa cooperezi (sa nu tradezi)


fals, conteaza cu cine joci, mediul

Stabilirea unui acord

Regulile lui Axelrod (ca urmare a analizei turneului)


1.
2.

3.

4.

Nu fi invidios. Nu trebuie sa invingi oponentul pentru a o duce bine.


Nu trada primul. Programul este prietenos daca incepe prin a coopera. Strategiile de
top erau prietenoase (nu tradau inaintea oponentului). Exista riscul primirii unei lovituri
de tip sucker's payoff dar per total utilitatea castigata este mai mare prin gesturi
altruiste care determina cooperarea.
Raspuns pe masura pentru cooperare si tradarea (en.: Reciprocate cooperation
and defection). 'TIT-FOR-TAT reprezinta echilibrul intre razbunare si iertare:
combinatia intre pedepsirea tradarii si bonificarea cooperarii stimuleaza cooperarea.
'TIT-FOR-TAT poate fi exploatat in prima runda dar apoi pedepseste (cu exact acelasi
grad de violenta, nu supra-reactioneaza) comportamentul non-cooperativ. In plus,
pentru ca 'TIT-FOR-TAT este intelegator exista posibilitatea de cooperare dupa un
start ratat.
Nu fi prea destept. TIT-FOR-TAT a fost cel mai simplist program intrat in competitie.
Motive:
a)
b)
c)

Program complex => incearca sa modeleze cat mai fidel comportamentul oponentului dar
lipseste modelul invatarii reciproce ca rezultat al observarilor precedente
Se generalizeaza la vederea tradarii si nu permit cooperarea pe viitor nu sunt iertatoare
Comportament prea complex => oponentul crede ca te comporti aleator

Mecanisme, protocoale si
strategii
Negocierea este condusa de un anumit
protocol sau mecanism
Mecanismul defineste regulile jocului in care
sunt angrenati agentii
Proiectarea mecanismului de interactiune
se refera la crearea unor proprietati de
dorit
Fiind dat un anumit protocol, cum se alege
o anumita strategie pe care agentii
individuali sa o foloseasca
7

Proiectarea mecanismului
Proprietati de dorit ale mecanismelor:

Convergenta/succes garantat
Maximizarea beneficiului social
Eficienta Pareto
Rationalitate individuala
Stabilitate
Simplitate
Distributie

Licitatii
Licitatia are loc intre un agent
denumit licitant si o colectie de agenti
denumiti ofertanti
Obiectivul este alocarea bunului
pentru un ofertanti
In majoritatea cazurilor licitantul
urmareste pret maxim, iar ofertantii
minimizarea pretului
9

Parametrii licitatie

Bunurile au

Determinarea castigatorului se face dupa

Primul pret
Al doilea pret

Propunerile pot fi

Valoare privata
Valoare comuna/publica
Valoare corelata

Deschise
Sigilate

Ofertarea poate fi

one shot
ascendent
descendent

10

English Auctions
Cel mai comun tip de licitatie:
Primul pret
Cu strigare
Ascendent

Strategia dominanta: sa licitezi cu putin mai mult


decat valoarea curenta pana se ajunge la limita,
apoi sa se retraga
Dezavantaje:
En.: winners curse sa se plateasca mai mult decat
face
En.: shills an accomplice of a hawker, gambler, or
swindler who acts as an enthusiastic customer to entice
or encourage others.
11

Dutch Auctions
Licitatii cu strigare descendente:
Licitantul incepe prin a propune un pret
mare, artificial
Micsoreaza pretul pana cand un agent
face o propunere egala cu pretul curent
Bunul este oferit agentului care a facut
oferta

12

First-Price Sealed-Bid
Auctions
Licitatie publica
Licitatii intr-un singur tur
Se submit propuneri sigilate

Se aloca bunul agentului care a oferit cel


mai bun pret
Castigatorul plateste cel mai bun pret

Strategie: sa se dea mai putin decat


valoarea reala a bunului
13

Vickrey Auctions
Caracteristici:
Oferta secreta
Al doilea cel mai bun pret se plateste

Bunul este oferit celui care a facut cea


mai buna oferta, dar plateste pretul
celui din urma sa
Strategia dominanta: licitarea la
valoarea reala
Probleme: poate genera comportament
antisocial
14

Minciuni si trisare
Protocoalele descrise mai devreme sunt
susceptibile la comportament mincinos din
partea licitantului si trisare intre ofertanti
Toate tipurile de licitatie pot fi manipulate
prin cooperarea ofertantilor
Licitantul poate minti in licitatiile de tip
Vickrey despre pretul cel de-al doilea
Iepuri (en.:Shills) pot fi introdusi pentru a
mari pretul licitatiilor de tip English
auctions
15

Negociere
Licitatatiile sunt centrate pe alocarea de bunuri.
Pentru a se ajunge la acorduri este nevoie de tehnici
avansate precum negocierea pe teme de interes
comun
Toate negocierile au urmatoarele 4 compoennte:

Un set de valori posibile pentru negociere


Un protocol de interactiune
Strategii pentru agentii participanti (private)
O regula care determina o intelegere si cand a fost aceast
parafata

Negocierea are loc intr-o serie de runde, agentii


facand o propunere fiecare runda
16

Agenti heterogeni si individualisti


Sistemele de acest tip sunt:
Proiectate in mod descentralizat
Nu au notiunea de utilitate globala
(obiectiv global)

Sunt dinamice (ex.: noi tipuri de agenti)


Nu actioneaza in mod benevol daca nu
este in interesul lor

17

Modalitatea de lucru
Proiectantii (din diferite companii,
tari, etc) cad de comun acord asupra
standardelor de interactiune pentru
agentii lor automati
Analiza posibilitatilor si
compromiselor, stabilirea
protocoalelor, strategiilor si legilor
sociale de implementat in masinile
lor
18

Atributele standardelor
Eficienta: optimalitate Pareto (o stare in care nu
se poate optimiza un individ fara a se afecta un
altul)
Stabilitate: Nu exista stimulente de abatere
Simplitate: cost computational si comunicativ
scazut
Distribuit: Nu exista punct decizional central
Simetrie: Agentii au roluri echivalente (ex.:
buyer si seller)

7-19

Inteligenta artificiala distribuita


(DAI)
Distributed Problem Solving

(DPS)

Centrally designed systems, built-in


cooperation, have global problem to
solve

Multi-Agent Systems

(MAS)

Group of utility-maximizing
heterogeneous agents co-existing in
same environment, possibly competitive
7-20

Negociere VS argumentare
Argumentare = sa ii convingi pe ceilalti de
ceva
4 moduri de argumentare, Gilbert (1994) :
1. Modul logic
daca accepti A si A implica B atunci trebuie sa
accepti B
2. Modul emotional
Ce parere ai daca ti s-ar intampla tie asa ceva?
3. Modul visceral
Prostule!
4. Kisceral mode ????
Este impotriva invataturii crestine!
21

Sinteza
Utilitate
Dilema prizonierului
Analiza rationamentului pe baza
utilitatii
Tipuri de licitatii

DPS VS MAS
22

Bibliografie
Michael Wooldridge, An Introduction
toMultiAgent Systems, JOHN
WILEY&SONS,LTD, 2002, ISBN 0-47149691-X

23

S-ar putea să vă placă și