Documente Academic
Documente Profesional
Documente Cultură
Sisteme multi-agent
Primvar, 2016
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
Cuprins laborator:
1.
2.
3.
4.
5.
6.
7.
8.
9.
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
Platforme de dezvoltare
7
Introducere
Definitie agent
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)
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
Comunicatia
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.
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
Introducere
18
Introducere
Modalitati de interactiune
Tipuri de SMA:
19
Introducere
Tipuri de SMA
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.
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
Avantaje
22
Introducere
Industry 4.0
23
Introducere (EN)
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
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
28
Introducere
Platforme MAS
Realizarea de aplicatii
Framework-uri multi-agent: JADE, Jack,
Realizarea de aplicatii distribuite: Erlang,
Simulare
Netlogo,
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
Sisteme multi-agent
Primvar, 2016
Curs 2
Cadre de dezvoltare a
aplicaiilor multiagent
Continut:
Introducere
Exemple
Conducerea fabricatiei
Exemple
Conducerea fabricatiei
Solutii
Client
orders
Planned / planned
+ scheduled orders
System model
/ state
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
Exemple
Conducerea fabricatiei
Ciclul de viata al AO si AR
Comunicatia si interconectarea
agentilor
10
Simulare
Netlogo,
11
12
JADE
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
JADE (cont)
14
JADE (cont)
15
16
JADE (cont)
Continutul mesajului
Parametrii mesajului
Codificarea mesajului
Informatii de transport
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
JADE (cont)
Documentatie
JADEall
Lansarea in executie
19
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
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
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
23
NETLOGO
24
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
26
Erlang
27
28
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
ERLANG (cont)
Caracteristicile Erlang (cont):
30
Sinteza
JADE Vs JACK Vs Netlogo Vs ERLANG
Caracteristici JADE
31
Bibliografie
Sisteme multi-agent
Primvar, 2016
Curs 3
JADE
Continut:
Superclass: jade.core.Agent
public class HelloWorldAgent
extends Agent { }
Metode importante:
Setup (reimplementat)
setari initiale
takeDown (reimplementat)
eliberare memorie (interfete
grafice) + mesaje
Superclass: TTTBehaviour
Metode importante:
:addresses (sequence
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(); }
10
import jade.core.Agent;
import jade.core.AID;
import jade.domain.AMSService;
import jade.domain.FIPAAgentManagement.*;
")
12
13
Problema ?
14
15
16
18
19
20
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
Performative tip mesaj FIPA (INFORM, QUERY, PROPOSE, ...) necesar la apelul
constructorului mesajului ACL (singurul argument)
Adresare
Receiver
Sender (initializat automat SAU NU)
24
25
Protocoale de interactiune in
MAS
Transmisia informatiei
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
Exemple:
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:
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:
Accepta propunerea
Raspunde cu o alta propunere
Nu accepta propunerea
Isi exprima dezacordul legat de propunerea primita
29
Protocoale de interactiune in
MAS
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))
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
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)
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
35
36
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
Sisteme multi-agent
Primvar, 2016
Curs 4
Introducere
myAgent
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
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
Interactiuni in JADE
Conversatii complexe
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++;
}
Interactiuni in JADE
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
Exemplu
protected void onTick() {
ACLMessage msg = myAgent.receive();
while (msg != null) {
Interactiuni in JADE
Protocol de interactiune: un agent trimite un mesaj si
asteapta un raspuns la mesajul respectiv
Posibilitati:
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
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
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
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
Sisteme multi-agent
Primvar, 2016
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)
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
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
Informatie
reprezentata ca
obiecte JAVA (usor
de manipulat)
Dezavantaje:
Introducere
Utilizare
Introducere
Introducere
10
Introducere
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
Interaciuni n sistemele
multi-agent
Solutie
De ce?
14
Arhitectura de conducere
Manufacturing Execution System (MES)
Arhitectura de conducere
16
Arhitectura de conducere
Implementare
JADE
17
Arhitectura de conducere
18
Examplu:
19
Mediator Agent
RH Agent(s)
OH Agent(s)
register (1)
Service
registration
register (2)
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
20
OH Agent
request_exec_op
Execute
operation
result
21
RSAM Agent
RH Agent(s)
OH Agent(s)
request_status
resource&opeation
status:
resource&operation
status:
resource&operation
status:
resource&operation
Cancel_reservation
Acknowledge
22
Realizarea ontologiei
23
24
Concluzii
1.
2.
3.
Setup experimental
4 agenti resursa
1 agent ordin
Avantaje
Dezvoltari ulterioare
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
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
Sisteme multi-agent
Primvar, 2016
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:
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 );
case 1:
System.out.println( "--- Stare 1 --- " );
break;
case 2:
System.out.println( " -- Stare 2 --" );
finished = true;
doDelete(); // applies to the Agent
}
state++;
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
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
18
Sinteza
19
Bibliografie
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
Sisteme multi-agent
Primvar, 2016
Curs 7
Legtura fizic-informaional
Continut:
Introducere
Motivatie comportament 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
Conducere descentralizata
Motivatia evolutiei de la centralizat la
descentralizat (SMA) (Promise Pabadis)
Control != Conducere
Control -> automatizare
Conducere -> conditionarea fluxului de
entitati/a modului de lucru al resurselor
(nivel de sus)
SMA
subordonat
Conducere descentralizata
F2
F3
P1
P2
P3
F1
F2
F3
Proces
b
Conducere descentralizata
Avantaje si dezavantaje diferitelor
sisteme de conducere
Advantage
Disadvantage
Conducere descentralizata
SMA pentru
conducere si
integrare
11
Conceptul de produs
inteligent
Produs inteligent (viziunea AutoID Center[McFarlane et al., 2002])
Agent
decizional
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
Date dinamice
13
Conceptul de produs
inteligent
Remote
1
(EN)
Order Holon
p
Re
lica
Processing
module
Informational
environment
External interactions
(communication, sensors)
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
Fizic
Informational
Modalitatea de integrare a dispozitivelor de control cu
echipamente ETHERNET
15
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
Current issues:
17
Introduction
Proposed solution: MAS application and a common way
(vocabulary) to access the services for all the composing
entities
Integration framework
Operational (automation)
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
Commands
Centralized
control layer
Software
agent
Holon
boundary
Data
collection
Automation layer
Decentralized
control layer
Resource
controller
Automation
layer
19
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:
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).
20
Order Holon
Resource Holon
MAS
Software
agent
Resource
controller
MAS
Software
agent
Physical
product
21
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
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
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
23
24
Resource PC
(Resource Holon
informational part) - agent
IED on pallet
(Order Holon) - agent
PLC PC
(JADE-OPC bridge)
PLC
TCP communication
OPC variables
Synchronization
agent-PLC
Protocol 1
Protocol 2
(PLC integration)
25
Resource PC
(Resource Holon
informational part) - agent
Resource controller
(Resource Holon
physical part)
Behaviour 1:
Scheduling
Transport
pallet
Destination
not reached
FIPA request message
Request operation
TCP communication
FIPA inform message
Confirm operation done
PLC PC
(JADE-OPC bridge)
PLC
OPC variables
Resources
sequence
OPC variables
Pallets location,
pallets at robots
TCP communication
Operation code
IED on pallet
(Order Holon) agent
Execute
operation
Execute
operation
on resource
Operation done
26
Pallet
routing
Experiments
Experiment scenarios:
Operation
Execution
time (sec)
R1
5 sec each
R2
5 sec each
R3
5 sec each
R4
5 sec each
Conveyor
R4
R3
Output
15 sec
Operation
O2
O3
O4
Input
R1
R2
P0
27
Experiments
Experimental results
i) Makespan
(different
operations)
3:36
ii) Makespan
(same
operations)
1:35
5:23
2:23
5:23
4:21
6:32
6:13
Experiment
Time differences:
(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
Operating System
Operating System
Hardware
Intelligent embedded
device (IED)
Hardware
Associated
workstation
Direct resource
control
Physical
resource
29
Bibliografie
30
Sisteme multi-agent
Primvar, 2016
Curs 8
Negocieri si acorduri in SMA
Continut:
3.
4.
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
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
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
Vickrey Auctions
Caracteristici:
Oferta secreta
Al doilea cel mai bun pret se plateste
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:
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
(DPS)
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