Sunteți pe pagina 1din 19

Sisteme multi-agent

13.SISTEME MULTI-AGENT

Un sistem multi-agent (SMA) este un sistem distribuit format dintr-o colecţie de agenţi
autonomi care interacţionează într-un mediu comun, fiecare agent având cunoştinţe, capacităţi de
acţiune şi scopuri proprii.

Un sistem multi-agent este definit ca un sistem compus din elementele următoare:

1. Un mediu E, adică un spaţiu prevăzut cu o metrică;


2. Un ansamblu de obiecte O. Fiecărui obiect din O i se poate asocia un anumit loc (o
poziţie) în E. Aceste obiecte sunt pasive, în sensul că ele pot fi percepute, create, distruse şi
modificate de către agenţi;
3. Un ansamblu A de agenţi care sunt obiecte particulare (A  O) şi care reprezintă entităţile
active ale sistemului;
4. Un ansamblu de relaţii R care uneşte obiectele (şi deci şi agenţii) între ele;
5. Un ansamblu de operaţii Op permiţând agenţilor lui A să perceapă, producă, transforme şi
manipuleze obiectele din O;
6. Operatori având sarcina de a reprezenta aplicarea acestor operaţii şi reacţia lumii la
această tentativă de modificare, denumită regula universului.

Există un caz particular în care A = O şi E este mulţimea vidă. In acest caz, relaţiile R
definesc o reţea: fiecare agent este legat direct la un ansamblu de alţi agenţi care sunt denumiţi
"legături" ale celui dintâi. Acest tip de sisteme poartă numele de sisteme multi-agent pur
comunicante şi sunt des întâlnite în inteligenţa artificială distribuită. Domeniile în care pot fi
aplicate sunt cele ale cooperării între module logice a căror funcţie este de a rezolva o problemă sau
de a elabora/realiza o expertiză (cum ar fi interpretarea semnalelor) pornind de la module
specializate, ca în cazul unui sistem de control distribuit; aceste sisteme se caracterizează prin faptul
că interacţiunile sunt comunicaţii intenţionate şi modul de lucru este asemănător celui al unui
organism social.
In situaţia în care agenţii sunt situaţi, E este în general un spaţiu metric şi agenţii sunt
capabili de a percepe propriul mediu, adică de a recunoaşte obiectele din mediu în funcţie de
capacităţile lor perceptive, şi de a acţiona, adică de a transforma starea sistemului prin modificarea
poziţiilor şi relaţiilor existente între obiecte.

13.1 Problematica sistemelor multi-agent

Un aspect important al arhitecturii unui SMA este facilitatea cu care se pot adăuga sau
şterge (elimina) agenţi din respectivul SMA.
Se defineşte arhitectura statică, arhitectura în care toate componentele SMA, ca şi intrările
şi ieşirile sale sunt definite în specificaţia proiectului. Intr-o arhitectură dinamică, componentele nu
sunt toate cunoscute, iar specificaţia şi provenienţa intrărilor, ca şi destinaţia ieşirilor pentru fiecare
componentă, nu sunt fixe.
In timp ce în arhitectura statică trebuie să fie prezente toate elementele pentru ca sistemul să
funcţioneze, în arhitectura dinamică unii agenţi pot participa sau nu o oarecare perioadă de timp şi,
de asemenea, pot intra sau abandona participarea la sistem. Totuşi, pentru ca acest lucru să fie
posibil, trebuie să existe suficiente suprapuneri ale domeniilor tratate; în caz contrar acţiunea cerută
nu se va executa niciodată.

1
Sisteme multi-agent
13.1.1 Criterii de proiectare a sistemelor multi-agent

In construcţia sistemelor multi-agent s-a impus o nouă paradigmă metodologică de


programare, propusă de Shoham, respectiv programarea orientată pe agenţi (AOP=Agent-Oriented
Programming). Programarea orientată pe agenţi poate fi văzută, din punct de vedere ingineresc, ca o
specializare a paradigmei programării orientate pe obiecte. Intuitiv, în timp ce programarea
orientată pe obiecte (OOP=Object-Oriented Programming) propune considerarea unui sistem de
prelucrare ca o colecţie de module care comunică între ele prin transmitere de mesaje, AOP
specializează acest model prin fixarea stărilor (numite acum stări mentale) acestor module (numite
acum agenţi), stări care sunt compuse din componente mentale (convingeri, intenţii, obligaţii,
angajamente, decizii etc.). In acest context, obiectele sunt specializate în module intenţionale. O
prelucrare într-un astfel de model constă în acţiunile acestor agenţi, acţiuni prin care agenţii cer sau
oferă informaţii, asistă sau intră în competiţie cu alţi agenţi existenţi în sistem. Comunicarea între
agenţi diferă în funcţie de tipul de comunicare intenţionată, iar efectele acesteia sunt diferite în
funcţie de intenţiile particulare.
Modelele de coordonare ordonează cunoştinţele dispersate, disponibilităţile şi planurile unor
agenţi inteligenţi, astfel încât ei să poată să-şi cumuleze acţiunile sau să rezolve o problemă. Intr-un
sistem multi-agent un operator trebuie să se coordoneze cu un sistem de control, acesta trebuind să
îndeplinească rolul care i-a fost încredinţat. Deci, trebuie să fie definit un model de coordonare
adaptat acestei condiţii. In particular, trebuie să se dea operatorului posibilitatea să interacţioneze pe
mai multe nivele de decizie. Operatorul trebuie să fie capabil să identifice cu uşurinţă pe ce nivel de
decizie este situat şi, pe acest nivel, să-şi substituie decizia cu aceea a sistemului de control (modul
consultant) sau să-şi orienteze decizia într-un mod diferit (modul de supraveghere). Controlul de
nivel inferior trebuie să fie automat în totalitate, operatorul interacţionând cu sistemul în modul de
supraveghere.
Criteriile pentru alocarea activităţilor (acţiunilor) corespund în mod direct scopurilor de
proiectare:

• se alocă activităţile agenţilor astfel încât să minimizeze comunicarea inter-agent şi să


maximizeze coeziunea agentului;
• alocarea acţiunilor independente şi a acţiunilor care completează resursele agentului de la
diferiţi agenţi trebuie să exploateze concurenţa şi dependenţele activităţilor;
• alocarea activităţilor pentru agenţi trebuie făcută astfel încât să permită operatorului să
identifice centrele de decizie şi nivelele de decizie. Operatorul trebuie să înţeleagă unde şi
cum este luată fiecare decizie. Sistemul trebuie să fie transparent pentru operator.

In modelele bazate pe cooperare, toate deciziile vor fi descentralizate şi subcomponentele


vor interacţiona direct între ele. In aceste aplicaţii decizia nu va fi centralizată, ci se va distribui. De
obicei, se consideră că un sistem de control descentralizat este preferabil unui sistem de control
autonom. Distribuţia deciziilor permite operatorului să identifice unde, cum şi care decizie este
luată. In sistemele complet descentralizate, decizia este “ascunsă” de interacţiunile inter-agent.

13.2 Coordonarea în cadrul sistemelor multi-agent

Coordonarea este esenţa unui SMA fără de care nu există nici un beneficiu al interacţiunii
între agenţi, iar în aceste condiţii, grupul de agenţi degenerează rapid într-o colecţie de agenţi
individuali cu un comportament haotic.
Sunt câteva motive pentru care agenţii au nevoie să fie coordonaţi:

2
Sisteme multi-agent
• în primul rând, pentru a preveni haosul. Nici un agent nu posedă o viziune globală asupra
întregului grup din care face parte, lucru foarte probabil în orice comunitate cu o
complexitate rezonabilă;
• în al doilea rând, agenţii întâlnesc constrângeri globale. Agenţii care realizează
managementul de reţea pot să răspundă unor eventuale eşecuri în timpi de ordinul
secundelor sau de ordinul orelor. Coordonarea comportamentelor agenţilor este prin
urmare esenţială la apariţia unor astfel de constrângeri;
• agenţii în SMA posedă diferite capacităţi şi posibilităţi de expertiză. Acesta este unul din
motivele utilităţii coordonării agenţilor;
• acţiunile agenţilor sunt foarte des interdependente şi, prin urmare, un agent trebuie să
aştepte un alt agent să-şi completeze task-ul înainte de a-şi executa propriul task. Astfel de
activităţi independente trebuie să fie coordonate.

13.2.1 Coordonarea organizaţională

Cea mai uşoară cale de a asigura un comportament coerent şi de a rezolva conflicte constă în
a furniza grupului un agent care să aibă o perspectivă mai largă asupra sistemului, printr-o structură
organizaţională sau ierarhică. Aceasta este cea mai simplă tehnică de coordonare şi constă în
arhitectura clasică master/slave sau client/server pentru task-uri şi alocarea resurselor pentru agenţii
slave de către un agent master. Agentul care deţine controlul poate capta informaţia de la agenţii
grupului, poate face planuri şi atribui task-uri agenţilor individuali, pentru a asigura coerenţa
globală. Unele sisteme folosesc o arhitectură de tip tabelă pentru a realiza coordonarea, cum ar fi
sistemul DFI Werkman şi sistemul Sharp Multi-Agent Kernel (SMAK). In astfel de scheme,
resursele arhitecturii tip tabelă sunt înlocuite de agenţi care trimit către şi citesc dintr-o tabelă
generală. Agentul master programează citirile/ scrierile agenţilor din/ în tabelă.

13.2.2 Modelul de organizare şi coordonare

De cele mai multe ori, într-o reţea semantică, agenţii se identifică cu nodurile acesteia.
Există deci o ierarhie cu două tipuri de agenţi: agenţi de siguranţă şi agenţi de conducere a
sistemului. Această relaţie ierarhică defineşte un mod de interacţiune client-server. Agenţii de nivel
superior selectează agenţii de nivel inferior pentru a executa activităţi. Acest proces este prezentat
în figura 13-1.
Fiecare agent prezintă o opinie asupra controlului sistemului. Agenţii de nivel superior
selectează agenţii de nivel inferior pentru a executa activităţi în mod independent, neexistând
cooperare între agenţi pentru luarea deciziilor. Fiecare subsistem este asociat unui agent
“subsistem” care îl conduce. Datorită faptului că pot apare conflicte de utilizare a sistemului,
această arbitrare este făcută, în mod natural, de către agenţii de conducere a sistemului, conform
priorităţilor agenţilor de supraveghere.

13.2.3 Colaborarea şi repartiţia task-urilor

Repartiţia task-urilor şi a resurselor constituie, în acelaşi timp, unul dintre domeniile majore
ale sistemelor multi-agent şi una din principalele lor contribuţii aduse informaticii. Punând accentul
pe alocarea distributivă a resurselor, pe noţiunile de contractare şi angajare, ele se disting de
formele clasice utilizate anterior, indiferent că este vorba de problema afectării maşinilor sau a
repartiţiei proceselor pe un procesor.

3
Sisteme multi-agent
13.2.3.1 Modul de alocare a task-urilor

Alocarea (sau repartiţia) task-urilor are loc prin definiţia mecanismelor organizaţionale prin
care agenţii pot să pună în comun competenţa lor, în scopul de a realiza un obiectiv colectiv. Este
vorba despre descrierea modalităţii de atribuire a task-urilor ştiind că posibilităţile unui agent
depind de aptitudinile sale intrinseci (arhitectura de care dispune, capacităţi cognitive, tipuri de
comunicare avute în vedere), a mijloacelor energetice de care dispune (timpul de calcul şi
autonomia energetică), a resurselor externe (instrumente, surse de energie) şi a constrângerilor de
mediu.
Task-urile care reclamă mai multe mijloace, de lucru sau de pricepere, pe care un singur
agent nu este capabil să le furnizeze, trebuie să fie descompuse mai întâi în mai multe subtask-uri,
apoi repartizate unor diferiţi agenţi. Aceste două operaţii sunt evident legate, deoarece
descompunerea task-urilor trebuie adesea să ia în consideraţie competenţa agenţilor prezenţi şi să
faciliteze astfel repartiţia care urmează.

SERVER CLIENT

Selectează agenţi Accept sau refuz de


pentru execuţia executare a task-ului
task-urilor

Execuţie task

Rezultate

figura 13-1. Activităţi distribuite în modul client-server

13.2.3.2 Criterii de descompunere a task-urilor

Bond, Gasser şi Hill au prezentat câteva criterii de descompunere a problemelor. Ei indică


faptul că, dacă problemele pot fi analizate prin nivelul abstractizării (lucrând de la general la
detaliat), este necesar să se ia în considerare şi alte constrângeri, cum ar fi controlul, datele sau
resursele. Pentru a diminua coordonarea este necesar a considera task-urile independente unele de
altele. In particular, se va căuta micşorarea cantităţii de informaţii pe care task-urile trebuie să şi le
transmită în vederea utilizării resurselor locale, în scopul diminuării conflictelor legate de resurse.
Dar, chiar dacă activităţile de descompunere sunt la fel de importante ca şi cele ale
repartiţiei, ele sunt, în general, efectuate de către fiinţe umane, dar acestea nu dispun de cunoştinţele
necesare pentru descompunerea task-urilor. Din această cauză, cercetările s-au orientat spre
repartiţia automată a task-urilor, lăsând deoparte problema descompunerii lor în subtask-uri.

13.2.3.3 Rolurile unui agent

Un sistem de alocare automată a task-urilor trebuie să fie capabil să pună în ordine agenţii
care au nevoie de o informaţie sau doresc să realizeze un task, clienţii sau reclamanţii, agenţii
capabili de a furniza un serviciu, furnizorii sau distribuitorii. Adesea, aceeaşi agenţi pot fi în acelaşi
4
Sisteme multi-agent
timp clienţi şi furnizori, calitatea de client sau de furnizor fiind determinată de maniera dinamică
din timpul funcţionării unui sistem multi-agent. Agenţii vor lua atunci rolul de client sau de
furnizor. Pot fi definite şi alte roluri, cum ar fi cele de mediator, agenţii cu acest rol fiind cei care se
ocupă de punerea în contact a clienţilor şi furnizorilor.

13.2.3.4 Tipuri de alocare a task-urilor

Repartiţia task-urilor se poate efectua fie centralizând procesul de alocare, fie distribuindu-l
ansamblului de agenţi curenţi. Intr-un mod de alocare centralizat, se prezintă două cazuri:
1. In cazul în care structura subordonării este ierarhică, superiorul va cere unui subordonat
să-şi execute task-ul. Se poate vorbi atunci de alocarea rigidă sau definită. Acest mod de alocare
este caracteristic unui apel de procedură în programarea clasică, el nefiind întâlnit decât în
organizările fixe;
2. Dacă structura este egalitară, repartiţia are loc prin definirea agenţilor mediatori, care
generează ansamblul proceselor de alocare centralizând cererile clienţilor şi ofertele de serviciu ale
furnizorilor, pentru a pune în corespondenţă aceste două categorii de agenţi, ceea ce permite
aplicarea modurilor centralizate la o organizaţie variabilă.

Intr-un mod de alocare distribuită, fiecare agent se ocupă individual de obţinerea de la


furnizori a serviciilor care pot să-i fie utile pentru realizarea proiectelor sale. Aceste moduri nu se
aplică decât organizaţiilor variabile. Se disting două mecanisme de alocare distribuită în
organizările predefinite:
1. Modul alocării prin reţeaua de legături, care presupune că clienţii trebuie să dispună de
o reprezentare a altor agenţi şi a capacităţilor acestora. Nu este necesar ca agenţii să
cunoască toate capacităţile tuturor celorlalţi agenţi pentru a putea rezolva o problemă,
dar este necesar ca reţeaua formată de ansamblul legăturilor să fie conexă (adică să
existe un drum de la oricare agent spre oricare alt agent) şi coerentă (reprezentările
competenţei legăturilor unui agent corespund competenţei efective a altor agenţi);
2. Modul alocării prin cerere de ofertă, care este cunoscut în inteligenţa artificială
distribuită sub numele de reţea contractuală sau reţea de contracte. El prezintă
avantajul dinamismului şi se dovedeşte foarte uşor de pus în practică.

13.3 Cooperare, negociere şi rezolvarea conflictelor

13.3.1 Cooperare
Fiecare agent al unei comunităţi multi-agent realizează două tipuri de activităţi: locală şi
socială. In timp ce activitatea locală constă în realizarea task-urilor proprii, activitatea socială
implică o interacţiune cu alţi agenţi ai comunităţii. Pentru ca interacţiunea să fie efectivă este
necesar ca fiecare agent să fie caracterizat de consistenţă, relativ nu la existenţa sa, ci mai ales la
activităţile sale. Interacţiunea între diferiţi agenţi ai unei comunităţi poate avea ca obiective
competiţia sau cooperarea, acestea nefiind antagonice din punctul de vedere al sistemului global. Ca
urmare, în sistemele multi-agent pentru aplicaţii industriale, în care agenţii sunt construiţi pentru a
colabora în rezolvarea unei probleme date, tipul de interacţiune predominant este cooperarea.
Principalele două forme de cooperare în IAD sunt partajarea task-urilor şi partajarea
rezultatelor. Partajarea task-urilor este un tip de cooperare în care nodurile locale de rezolvare a
problemelor se bazează pe partajarea posibilităţilor de calcul în execuţia subtask-urilor problemei
globale. Partajarea rezultatelor este un mecanism de cooperare prin intermediul căruia, rezultatele
produse de un nod sunt trimise către alte noduri care pot beneficia de aceste rezultate ce nu au fost
cerute anterior (rezultatele sunt furnizate voluntar).

5
Sisteme multi-agent
Cooperarea de tip partajare a task-urilor se verifică atunci când un agent detectează că nu are
informaţie suficientă pentru a executa un anumit task. Agentul trebuie deci să stabilească relaţii de
cooperare cu alţi agenţi. Utilizând cunoştinţele despre cooperare, agentul va verifica în modelul
agenţilor cunoscuţi dacă există agenţi capabili să îl ajute. Dacă există unul sau mai mulţi agenţi ce
pot să-i ofere ajutor, primul pas este de a intra în negociere cu ei. Se numeşte agent organizator,
agentul care iniţiază o negociere şi agenţi colaboratori - agenţii care răspund cererii de negociere.
Obiectivul negocierii este încărcarea şi responsabilizarea unuia sau mai multor colaboratori pentru
executarea unui task dat, venind astfel în ajutorul organizatorului.
In figura 13-2 este ilustrată această formă de interacţiune, partajarea task-urilor reprezentate
prin numere şi ordonarea temporală a evenimentelor.

Agent organizator Agent colaborator

Selecţia agentului
2 Accept sau refuz de
către care se va trimite executare a task-ului
cererea de execuţie a
task-ului
3’
3
1
Execuţie task

Detecţie necesitate de
4
partajare 5
Rezultate

figura 13-2. Interacţiune prin partajare de task-uri


Cooperarea de tip partajare de rezultate se verifică atunci când un agent dispune de un
anumit tip de informaţie şi verifică în propriul model de agenţi cunoscuţi că există unul sau mai
mulţi agenţi interesaţi în acest tip de informaţie. Dacă există agenţi interesaţi, această informaţie le
este transmisă voluntar.
In figura 13-3 este prezentată această formă de interacţiune, partajarea rezultatelor, în care,
ca şi în figura anterioară, numerele reprezintă ordonarea temporală a evenimentelor.
In continuare, sunt expuse situaţiile în care un agent iniţiază o formă de cooperare.

13.3.1.1 Cooperarea de tip partajare de task-uri

Un agent poate iniţia o cooperare de tip partajare de task-uri, fie în calitate de organizator,
fie în calitate de colaborator.
• Ca organizator: un agent iniţiază o cooperare de tip partajare de task-uri, ca organizator,
atunci când, la descompunerea unui task (descompunere destinată realizării sale) unul sau
mai multe task-uri nu pot fi executate local, sau dacă anumite date de intrare pentru acest
task nu pot fi obţinute local.
• In calitate de colaborator: în cooperarea de tip partajare de task-uri, un agent îndeplineşte
rolul de colaborator când primeşte un mesaj de anunţ al unui task şi îi răspunde, sau când
un agent primeşte direct o cerere de execuţie a unui task şi încearcă să execute acel task.
In cazul în care există mai mult decât un agent colaborator, agentul organizator anunţă în
primul rând task-ul şi apoi evaluează propunerile de execuţie a lui, pe baza cărora selecţionează
unul dintre agenţii colaboratori care va îndeplini cererea de execuţie a task-ului.
6
Sisteme multi-agent

Agent ofertant de Agent care


informaţie (voluntar) recepţionează
informaţie

2
Selecţia agenţilor Evaluare utilitate
interesaţi informaţie

3
1
Utilizarea
informaţiei în
rezolvarea
Informaţie internă problemelor

figura 13-3. Partajarea rezultatelor

13.3.1.2 Cooperare de tip partajare de rezultate

La fel ca şi la partajarea task-urilor, cooperarea de tip partajare de rezultate poate fi iniţiată


de către un agent în 2 situaţii şi, corespunzător, se pot distinge 2 tipuri de agenţi:
• Agent ofertant voluntar de informaţie: agentul va verifica dacă alţi agenţi pot beneficia de
acest rezultat. Dacă da, atunci acest rezultat va fi expediat către aceştia.
• Agent care reacţionează la recepţia de informaţie voluntară: un agent primeşte date în
mod voluntar de la orice alt agent (nu răspunsuri la întrebările prealabile sau informaţie de
coordonare). Datele primite sunt păstrate în partea dinamică a modelului agenţilor
cunoscuţi. Dacă datele recepţionate fac parte din datele de intrare ale unui task în execuţie
sau care a fost deja executat, şi dacă sunt mai de încredere decât cele eventual existente,
atunci respectivul task este reiniţializat sau executat din nou. Dacă datele recepţionate
completează toate datele de intrare necesare pentru un anumit task, eventual cumulate cu
datele deja existente,, starea acestui task se modifică la "ready" fiind deci gata de execuţie.

13.3.2 Clasificarea situaţiilor de cooperare şi conflict

Enumerarea diferitelor tipuri de situaţii în care agenţilor le este necesară cooperarea,


incluzând situaţiile necesare pentru rezolvarea posibilelor conflicte între ei, conduce la o clasificare
generică a cazurilor de cooperare şi conflict (CCC). Această clasificare determină elaborarea de
politici corespunzătoare, cât mai independente de domeniu, pentru tratarea unor astfel de tipuri de
situaţii. Câteva din aceste situaţii necesită diferite grade de negociere, în timp ce în cazul altora este
necesară aplicarea tehnicilor de rezolvare a conflictelor. Cooperarea este indispensabilă când există
diferite forme pentru agenţi ce-şi partajează activităţile (necesită task-uri, necesită rezultate).
Convenţional, se va utiliza simbolul N<⎯>M pentru reprezentarea relaţiei:
"număr de organizatori <⎯> număr de colaboratori"

Situaţiile de cooperare şi conflict sunt prezentate în tabelul 13-1.

7
Sisteme multi-agent
tabelul 13-1. Situaţii de cooperare şi conflict
CCC1 - un agent cere ajutorul altui agent determinat şi acesta din urmă este liber
(nu are nici un task în execuţie). Aceasta este o cooperare de tip partajare de
task-uri pentru care poate fi stabilit un protocol de tip client/server. Se face
referire la o relaţie 1<⎯>1.
CCC2 - un agent cere ajutor unui alt agent determinat, iar acesta din urmă nu
este liber şi are în agenda sa câteva task-uri de executat. Acest tip de cooperare,
partajarea task-urilor, este încă o relaţie 1<⎯>1 care poate fi stabilită prin
protocol client/server. Ca urmare, negocierea între cei doi agenţi trebuie să ţină
cont de prioritatea atribuită task-ului şi de timpul estimat pentru execuţia
task-ului.
CCC3 - un agent are nevoie să ceară un anumit serviciu şi există mai mulţi
agenţi care îl pot furniza. In acest caz există mai mulţi colaboratori potenţiali
pentru un organizator, relaţia ce se stabileşte fiind 1<⎯>M şi negocierea trebuie
să se realizeze printr-un protocol de tip reţea contractuală ("contract net").
CCC4 - mai mulţi agenţi având rolul de organizatori încearcă să negocieze
execuţia de task-uri cu un anumit agent care are rolul de colaborator. Această
situaţie de partajare de task-uri este de tipul N<⎯>1. Pentru acest caz se pot
deosebi multiple posibilităţi de interacţiune:
4.1. - organizatorii cer simultan agentului colaborator executarea unor anumite
task-uri;
4.2. - organizatorii cer simultan agentului colaborator să execute acelaşi task.
Notă: în aceste prime două cazuri fiecare organizator efectuează o cerere către
agentul colaborator;
4.3. - se poate întâmpla, de asemenea, ca aceste negocieri între diverşi
organizatori şi un anumit colaborator să reprezinte numai o parte din
negocierile generale între aceşti organizatori şi alţi colaboratori.
In acest caz, se poate vorbi de o relaţie de tip N<⎯>M. Din punctul
de vedere al unui colaborator va fi de tipul N<⎯>1 şi din punctul de vedere
al unui organizator va fi de tip 1<⎯>M.
CCC5 - la un agent sosesc rezultate referitoare la acelaşi tip de informaţie de la
diferiţi agenţi. Se consideră cazul în care aceste rezultate coincid. Acesta
reprezintă cazul unei cooperări de tip partajare de rezultate.
5.1. - dacă rezultatele sunt disponibile în acelaşi timp, ele putând fi luate în
considerare, atunci credibilitatea acestei informaţii este ridicată;
5.2. dacă rezultatele sosesc în momente diferite şi primul rezultat a fost deja
utilizat, celelalte pot fi ignorate sau utilizate numai pentru actualizarea
temporală şi stabilirea indicelui de credibilitate a informaţiei deja salvată
(provenită de la primul rezultat primit şi utilizat).

CCC6 - rezultatele (răspunsuri la cereri anterioare sau informaţie primită


voluntar prin partajarea rezultatelor) asupra aceluiaşi tip de informaţie, provenite
de la mai mulţi agenţi, sunt diferite. Această situaţie de cooperare poate fi
descompusă în mai multe tipuri:
6.1. - rezultatele sunt în conflict şi sunt complet antagonice. Agentul receptor
trebuie să facă o alegere a unei alternative în concordanţă cu anumiţi
algoritmi euristici (de exemplu, evaluarea credibilităţii agenţilor care au
produs informaţia);
6.2. - rezultatele sunt în conflict deoarece conţin un oarecare tip de
inconsecvenţă. Aşa cum s-a specificat anterior, se poate realiza o negociere

8
Sisteme multi-agent
între agenţii implicaţi în scopul obţinerii unei soluţii unice. Realizarea acestei
negocieri poate determina reexecutarea unui subtask pentru cel puţin un agent
sau relaxarea anumitor restricţii;
6.3. - rezultatele primite, deşi diferite, sunt interpretate ca fiind complementare
şi ca urmare, pot fi combinate într-un rezultat unic.
CCC7 - un agent nu obţine o informaţie pe care o speră (răspuns al unui alt
agent la o cerere anterioară) în termenul stabilit. Organizatorul trebuie să aibă
capacitatea să depăşească această situaţie, alegând, de exemplu, un alt plan
pentru task-ul în discuţie.
CCC8 - un agent renunţă la a fi interesat de o informaţie cerută anterior unuia
sau unor agenţi. Această nouă situaţie trebuie să fie comunicată agenţilor care au
fost contractaţi pentru executarea task-ului respectiv.
CCC9 - un agent deduce că nu poate îndeplini un task ce i-a fost cerut, în
termenul stabilit de către organizator. Această informaţie trebuie trimisă
organizatorului, deoarece el poate încerca o rezolvare alternativă a problemei.
CCC10 - detecţia unui blocaj. Această situaţie poate apare în cazul unei incorecte
descompuneri a problemei. Situaţia poate fi depăşită alegând o alternativă pentru
task-ul ce trebuie executat.
CCC11 - cooperarea se realizează ca o consecinţă a datelor primite voluntar
pentru unii agenţi. Aceste mesaje, la recepţia lor, pot declanşa execuţia unui nou
task, sau pot servi la actualizarea informaţiei deja disponibile. Această
actualizare poate implica o acţiune de reexecutare sau reiniţializare a unui task
care a fost deja executat sau care este în execuţie, acţiune ce va fi determinată de
agentul care a recepţionat informaţia.

Această clasificare, fiind independentă de o anumită aplicaţie, este utilă pentru identificarea
situaţiilor de cooperare şi conflict în aplicaţii concrete.

13.3.3 Negociere

Negocierea între doi sau mai mulţi agenţi reprezintă un schimb de mesaje bazat pe un
protocol, ce este destinat stabilirii unui acord asupra efectuării unei forme date de cooperare.
De exemplu, pentru ca doi sau mai mulţi agenţi să efectueze o cooperare de tip partajare a
rezultatelor, agentul care deţine rezultatul îl trimite agenţilor interesaţi în acest tip de informaţie.
Pentru a efectua acest tip de cooperare nu este necesară realizarea unui anumit tip de negociere,
deoarece fiecare agent ştie că trebuie să trimită voluntar informaţia către agenţii interesaţi, dacă
aceştia există. Mai explicit, un agent oarecare A1 îşi asumă tacit că, relativ la un tip dat de
informaţie I1 (care este unul din rezultatele execuţiei sale şi pentru care din modelul propriu de
agenţi cunoscuţi ştie că există alţi agenţi care sunt interesaţi în acest tip de informaţie) trebuie să
trimită acelor agenţi rezultatul obţinut pentru I1, iar aceşti agenţi interesaţi trebuie să o primească.
Această comunicare de informaţie este bazată pe un protocol determinat pentru cooperarea de tip
partajare de rezultate, dar neimplicând negociere privată şi nefiind necesar să se ia o decizie asupra
formei de cooperare, deoarece aceasta este asumată implicit.
Pe de altă parte, pentru ca doi sau mai mulţi agenţi să efectueze o cooperare de tip partajare
de task-uri, agentul care pretinde ca alt agent sau alţi agenţi să realizeaze un task dat, începe
efectuarea unei negocieri cu acest sau aceşti agenţi, cu obiectivul de a însărcina cel puţin unul dintre
aceştia să realizeze acest task. Acest tip de negociere este o negociere prin partajare de task-uri şi se
pot distinge următoarele două mecanisme:

9
Sisteme multi-agent
• Reţea contractuală ("Contract Net"): este procesul de negociere iniţiat de un agent dat A1, care
pretinde a fi ajutat în realizarea unui task dat T1, şi, prin intermediul consultării modelului de
agenţi cunoscuţi, acest agent A1 verifică dacă există mai mult de un agent cu capacitatea de a
realiza acest task T1. Această negociere se bazează pe un protocol specific care constă într-un
ansamblu de schimburi de mesaje între agentul A1 şi alţi agenţi cu capacitatea de a realiza T1, cu
scopul de a încredinţa unuia din aceşti agenţi, realizarea task-ului T1. Rezultatul negocierii poate
fi însărcinarea unui anumit agent cu realizarea task-ului pretins T1, dar poate fi, de asemenea,
verificarea că nici un agent nu reuşeşte (nu este dispus) să realizeze acest task T1 în condiţiile
restricţiilor impuse. In acest ultim caz, agentul organizator al negocierii concluzionează că nu
reuşeşte să obţină ajutor pentru realizarea acestui task T1 cu respectarea restricţiilor impuse şi că
trebuie să ia o decizie asupra modificării activităţii sale (încercarea unui plan alternativ pentru
obţinerea acţiunilor pretinse sau relaxarea restricţiilor impuse pentru realizarea task-ului).
Această negociere este destinată determinării posibilităţii de realizare sau nu a cooperării şi, în
caz afirmativ, determinării formei concrete prin care se va realiza cooperarea (care agent va cere
altui agent să efectueze task-ul);

• Client/Server: este procesul de negociere iniţiat de un agent dat A1 care pretinde a fi ajutat în
realizarea unui task dat T1 şi, prin intermediul consultării modelului de agenţi cunoscuţi, acest
agent A1 verifică dacă există un agent cu capacitatea de a realiza acest task T1. Această
negociere constă dintr-un schimb de mesaje între agentul A1 şi alt agent având capacitatea de a
realiza T1, cu scopul de a însărcina acest agent cu realizarea task-ului T1. In acelaşi mod ca şi în
cazul anterior, rezultatul negocierii poate fi însărcinarea acestui agent cu realizarea task-ului
pretins T1, dar poate fi, de asemenea, verificarea faptului că acest agent nu reuşeşte (sau nu este
dispus) să realizeze acest task T1 cu îndeplinirea restricţiilor pretinse. Această negociere este
destinată determinării posibilităţii de realizare sau nu a cooperării.

S-au abordat două tipuri de colaborare, partajarea task-urilor şi partajarea rezultatelor, şi s-a
arătat că pentru prima formă de cooperare nu este necesară negociere, dar pentru a doua, negocierea
este destul de importantă.
In definiţia dată mai sus pentru negocierea în SMA, ca fiind un schimb de mesaje destinat
stabilirii unui acord pentru efectuarea unei forme de cooperare, se consideră un sens larg pentru
noţiunea de cooperare. Astfel, situaţiile de cooperare sunt nu numai o partajare a task-urilor şi a
rezultatelor, ci, de asemenea, o rezolvare de conflicte ce pot apare într-un SMA.
In cazul SMA pentru aplicaţii industriale, aceste situaţii de interacţiune sunt situaţii de
cooperare. Totuşi, pentru alte SMA se pot întâlni situaţii de interacţiune ce includ competiţia,
asocierea în grup etc.. De asemenea, în aceste situaţii, negocierea este utilă, deşi se caracterizează
prin obiective şi metodologii diferite.

13.3.4 Negocierea pentru partajarea task-urilor

Negocierea pentru partajarea task-urilor este o capacitate foarte importantă pe care agenţii
trebuie să o posede pentru a putea prezenta un comportament adecvat în cazul în care un agent nu
poate executa local un subtask dat şi există agenţi care-l pot ajuta.
Când un agent formulează o cerere în scopul obţinerii de ajutor de la alţi agenţi, este
necesară iniţierea unei negocieri şi stabilirea protocolului corespunzător cu posibilii colaboratori la
această cerere. Protocolul stabilit permite schimbul de informaţie între agentul care formulează
cererea şi posibilii colaboratori. In cadrul acestui protocol, organizatorul informează colaboratorii
despre restricţiile asociate acestei cereri (în principal termenul) şi ei răspund dacă acceptă sau nu
realizarea task-ului, sau informează organizatorul asupra timpului pe care îl estimează a fi necesar

10
Sisteme multi-agent
pentru execuţia task-ului şi calităţii aşteptate a răspunsului, prin intermediul unei propuneri pentru
execuţia task-ului.

13.3.5 Protocoalele de negociere client/server şi reţea contractuală

Când un agent detectează că are nevoie de ajutor, din cauză că nu este capabil să execute
singur un task, el consultă modelul agenţilor cunoscuţi pentru a vedea dacă există un agent capabil
să execute acel task. Dacă agentul organizator deduce din modelul de agenţi cunoscuţi că numai un
agent poate executa acel task, atunci el va încerca să stabilească o negociere client/server
trimiţându-i acestuia un mesaj.
Această negociere utilizează un protocol având acelaşi nume, protocolul client/server. Nu
trebuie să se confunde acest protocol cu protocolul master/slave, deoarece agentul colaborator nu
este subordonat agentului organizator, ci posedă suficientă autonomie pentru a refuza propunerea de
negociere.
Dacă există mai mult de un agent capabil de a executa acel task, organizatorul va stabili cu
aceşti agenţi o negociere de tip reţea contractuală trimiţând către aceştia un mesaj. Agentul
colaborator trebuie să verifice dacă poate accepta realizarea task-ului cerut şi pentru aceasta trebuie
să determine o estimaţie a timpului în care va executa task-ul, în cazul unui accept.
Calculul estimativ al timpului necesar pentru a fi executat un task de către un agent dat va fi
prezentat în subcapitolul Error! Reference source not found. şi este rezumat în următoarele etape:

• se calculează prioritatea pe care ar avea-o task-ul în ideea acceptării executării lui;


• considerând noul task introdus în agendă (figura 13-4), se calculează noile valori ale
estimaţiilor timpilor necesari pentru execuţie, atât pentru noul task, cât şi pentru acele
task-uri care vor fi întârziate datorită faptului că vor avea prioritate mai mică decât noul
task;
• se verifică posibilitatea de respectare a termenelor de execuţie pentru noul task, ca şi
pentru task-urile care vor fi întârziate ca urmare a introducerii noului task în agenda
agentului. Dacă pentru oricare din aceste task-uri nu se verifică posibilitatea respectării
termenului de execuţie, noul task, aflat în evaluare, nu poate fi acceptat pentru execuţie.

Mesajele trimise de către agentul colaborator către agentul organizator, corespunzătoare


deciziilor luate asupra posibilităţii acceptării task-ului, depind de tipul de negociere ce va avea loc.
Dacă va exista un răspuns la o negociere de tip client/ server, atunci mesajul va conţine o informaţie
asupra acceptului sau refuzului de execuţie a task-ului.

Task 1 (prioritate maximă)


Task nou

Task k

Task k+1

Task n (prioritate minimă)

figura 13-4. Introducerea unui nou task în agendă


11
Sisteme multi-agent

Dacă tipul de negociere este reţea contractuală, agentul colaborator, care a verificat sau nu
posibilitatea îndeplinirii termenului de execuţie cerut, trimite un răspuns cu propunerea de execuţie
a task-ului, în care poate indica estimaţia timpului necesar pentru execuţia task-ului şi indicatorul de
calitate sperat ca urmare a execuţiei task-lui. (Deşi acest indicator de calitate va fi static, o
posibilitate de îmbunătăţire a sistemului constă în actualizarea dinamică a unui factor de ponderare
a acestei valori. Astfel, un agent organizator ar putea verifica dacă task-urile la a căror execuţie au
participat şi agenţi colaboratori au fost bine executate şi să le atribuie acestor agenţi un indice de
fiabilitate în concordanţă cu participarea lor la execuţia corectă a task-urilor).
De notat că nu a fost luată în considerare posibilitatea apariţiei unor noi cereri şi necesitatea
unor noi calcule ale priorităţilor înainte de apariţia cererii.
In cadrul negocierii de tip reţea contractuală agentul organizator evaluează propunerile
primite şi alege, pornind de la toate răspunsurile al căror timp estimat de execuţie este mai mic
decât termenul cerut, agentul care va conduce către un indice de calitate mărit în urma execuţiei
task-ului. Agentului selectat i se va trimite un mesaj cu o cerere de execuţie a acestui task.
Agentul care primeşte mesajul va calcula din nou prioritatea pe care task-ul o va avea în
cazul acceptării şi apoi va verifica posibilitatea îndeplinirii termenului de execuţie. Dacă task-ul este
acceptat, el va fi inclus în agenda agentului şi agentul organizator este informat de acceptul sau
refuzul cererii de realizare a task-ului.
Dacă agentul organizator primeşte informaţia că task-ul a fost acceptat pentru execuţia
acestuia, atunci va aştepta răspunsul. Dacă, dimpotrivă, este informat de către agentul selecţionat
(ca urmare a celei mai bune propuneri) de refuzul execuţiei task-ului, agentul organizator va reveni
la alegerea celei mai bune propuneri din cele recepţionate (cu excepţia celei refuzate). Noului agent
colaborator i se va trimite un mesaj cu cererea de execuţie a task-ului. Acest proces se poate repeta
până la eventuala găsire a unui agent capabil să execute task-ul.
Atât în cazul negocierii client/ server, cât şi a celei de tip reţea contractuală, dacă nu este
posibilă găsirea unui alt agent care să poată executa un task pe care agentul respectiv nu îl poate
executa el însuşi, atunci execuţia eşuează şi agentul va trebui să încerce un plan alternativ. In caz
contrar, va eşua şi planul în execuţie.
In final, atât în cazul negocierii de tip client/server, cât şi al celei de tip reţea contractuală,
atunci când un agent colaborator va termina execuţia task-ului, va trimite către agentul organizator
un mesaj conţinând rezultatul execuţiei.

In figura 13-5 se prezintă secvenţa de mesaje schimbată între doi agenţi pe durata unei
negocieri de tip client/server.

12
Sisteme multi-agent

Mesaj cerere
execuţie task

ORGANIZATOR COLABORATOR

a) Iniţierea unei negocieri de tip Client/Server.

Mesaj:
▪ accept
▪ refuz
ORGANIZATOR COLABORATOR

b) Accept sau refuz al cererii de execuţie a unui task.

Mesaj ce include
rezultatul
execuţiei
task-ului
ORGANIZATOR COLABORATOR

c) Trimitere rezultat către agentul organizator.

figura 13-5. Negocierea de tip Client/Server

Secvenţa de mesaje corespunzătoare unei negocieri de tip reţea contractuală este prezentată
în figura 13-6.

13.4 Rezolvarea conflictelor

13.4.1 Consideraţii generale


Intr-un proces de luare a deciziilor conflictele sunt, de cele mai multe ori, inevitabile. Un
mod de a elimina conflictele constă în restrângerea analizei, selectând doar informaţia relevantă,
dezvoltând numai o alternativă şi, în cazul în care aceasta eşuează, schimbând-o. Această strategie
mai are şi avantajul de a accelera luarea deciziilor. Atunci când cantitatea de informaţie se reduce,
atât analiza cât şi luarea deciziilor sunt mai rapide.
Problema importantă care apare constă în calitatea alegerii. Situaţiile conflictuale conduc la
rezultate stimulative în procesul luării deciziilor. Analiza comparativă a alternativelor multiple şi
simultane permite evaluarea opţiunilor şi luarea unei decizii corecte. In plus, mai au şi avantajul de
a găsi soluţii de mijloc: dacă o opţiune eşuează, se poate comuta rapid la o altă alternativă.

13
Sisteme multi-agent

Mesaj cerere
execuţie task COLABORATOR 1

ORGANIZATOR COLABORATOR 2

COLABORATOR n

a) Iniţierea unei negocieri de tip Reţea contractuală.

Mesaj propunere
execuţie task COLABORATOR 1

ORGANIZATOR COLABORATOR 2

COLABORATOR n

b) Agenţii colaboratori trimit propuneri de execuţie a task-ului către organizatori.

Mesaj cerere
către
colaboratorul
selecţionat. COLABORATOR k
ORGANIZATOR

c) Agentul organizator selecţionează un agent colaborator şi trimite cerere de


execuţie a task-ului către acesta (k  n).

figura 5-6a. Negociere de tip Reţea contractuală

14
Sisteme multi-agent

Mesaj de accept
sau refuz de
execuţie a
task-ului. COLABORATOR k
ORGANIZATOR

d) Agentul colaborator informează organizatorul despre acceptul sau refuzul


cererii de execuţie a task-ului.

Mesaj cerere de
execuţie a task-ului
către următorul
agent selecţionat. COLABORATOR p
ORGANIZATOR

e) Dacă agentul colaborator k refuză execuţia task-ului, agentul organizator va


trimite o cerere de execuţie a task-ului către următorul agent selecţionat (p  n)

Mesaj cu
rezultatul
execuţiei
task-ului. COLABORATOR k/p
ORGANIZATOR

f) Agentul colaborator trimite rezultatul execuţiei task-ului către agentul organizator.

figura 13-6b. Negociere de tip Reţea contractuală

Cu toate acestea, existenţa conflictelor prelungeşte timpul de luare a deciziilor, deşi aceasta
depinde de forma de rezolvare a conflictelor.
O strategie adecvată va fi dată de obţinerea alternativelor multiple şi simultane şi încercarea
atingerii unui consens calificat pentru rezolvarea conflictelor.
Un consens calificat se poate obţine prin intermediul aplicării următoarei metodologii:
1. In primul rând, analiza şi confruntarea diferitelor alternative ce încearcă să ajungă la un
consens.
2. Dacă consensul nu este posibil, este necesară o alegere ghidată de diferite contribuţii ale
diferitelor elemente din grup, accentuând opiniile elementelor mai credibile.

O alegere trebuie să fie făcută când nu este posibilă satisfacerea tuturor elementelor din
grup. Când conflictul este o regulă, găsirea consensurilor implică întârzierea luării deciziilor.
Consensul calificat este rapid deoarece examinează conflictul ca fiind natural, important şi de multe
ori inevitabil.

15
Sisteme multi-agent

13.5 Rezolvarea conflictelor în sistemele multi-agent

Cum s-a văzut în consideraţiile anterioare, rezolvarea unui conflict obligă la o luare de
decizie. Această luare de decizie ia în considerare analiza şi compararea diferitelor alternative şi
eventual, o alegere, în cazul în care consensul nu este posibil. Din acest motiv nu este posibilă
distribuirea acestei luări de decizii între diferiţi agenţi ai comunităţii multi-agent. Trebuie să se
stabilească numai un singur agent de coordonare a procesului de rezolvare pentru fiecare tip de
conflict care poate apare.
Astfel, pentru rezolvarea conflictelor care pot surveni între diferite alternative propuse de
diverşi agenţi într-o situaţie dată, se dovedeşte necesar să se facă o comparaţie între diferitele
alternative şi să se ia o decizie. Deşi rezolvarea unui conflict trebuie să fie realizată prin colaborarea
diverşilor agenţi ai comunităţii care contribuie la gestionarea alternativelor, conducerea procesului
de rezolvare trebuie să fie făcută numai de un agent. Această capacitate de a conduce rezolvarea de
conflicte trebuie să fie în mod natural atribuită unui agent cunoscător al domeniului.
Această centralizare a rezolvării fiecărui tip de conflict nu este o caracteristică bună a unui
sistem distribuit. Intr-o reţea de sisteme, oricare serviciu central dă naştere la întârzieri în procesul
de rezolvare; de asemenea, ar fi posibil ca un eşec într-un punct să poată cauza eşecul întregului
sistem. Totuşi, există posibilităţi să nu se compromită atingerea obiectivelor sistemelor multi-agent.
Un eşec în rezolvarea unui conflict poate să fie depăşit prin executarea unui plan alternativ, care
implică rezolvarea acestui conflict şi care, în concluzie, poate fi executat cu succes.
Pentru fiecare tip de conflict care poate să apară într-un sistem multi-agent, trebuie să existe
un agent capabil să rezolve acest tip de conflict. Ca urmare, se poate considera că rezolvarea
conflictelor este distribuită între diferiţi agenţi ai comunităţii.

Considerând conflictele ce pot apare într-un SMA în diverse situaţii, se poate realiza o
clasificare a acestora ca pozitive şi negative. Astfel, pe parcursul partajării task-urilor sau a
rezultatelor pot apare următoarele tipuri de conflicte :

• conflicte pozitive în partajarea task-urilor: apar atunci când există diverşi agenţi capabili să
execute un task cerut de un organizator. Această situaţie competitivă trebuie să fie tratată
printr-un mijloc de negociere;
• conflicte negative în partajarea task-urilor: apar când nu există nici un agent capabil să
execute (sau nu doreşte să execute) un task cerut de un anumit organizator. Acesta trebuie
să aleagă un plan alternativ pentru depăşirea acestei situaţii;
• conflicte pozitive în partajarea rezultatelor: apar în cazurile în care, la un moment dat,
există diverşi agenţi ce execută un task determinat şi produc rezultate diferite, dar coerente
(complementare sau identice, dar cu credibilitate diferită);
• conflicte negative în partajarea rezultatelor: apar atunci când există agenţi ce execută un
anumit task şi produc rezultate antagonice sau lipsite de consistenţă.

Se spune că valorile sunt inconsistente dacă, atunci când sunt intrări ale unui task, trebuie să
satisfacă o anumită relaţie între ele, şi nu verifică această relaţie.
Se consideră ca fiind antagonice răspunsurile alternative diferite, recepţionate ca urmare a
aceleiaşi cereri (sau valori diferite pentru aceleaşi date de intrare ale unui task).
Astfel, unul din cazurile mai importante de conflicte apare la partajarea rezultatelor, când
diferiţi agenţi care realizează acelaşi task, produc rezultate inconsistente sau antagonice. Este cazul
răspunsurilor diferite la aceeaşi întrebare (sau pot fi valori diferite de intrare pentru un anumit task
al agentului receptor).
Capacitatea de a se confrunta cu aceste situaţii şi de a rezolva conflicte depinde în unele
cazuri de posibilitatea ca agenţii să furnizeze în afară de informaţie, o măsură a calităţii sale şi să fie
16
Sisteme multi-agent
posibil să efectueze comparaţii între aceste calităţi, în timp ce în alte cazuri sunt necesare cunoştinţe
dependente de domeniu.

Deoarece este de dorit să nu apară anumite tipuri de conflicte, în special cele negative,
trebuie să se utilizeze tehnici pentru a le evita. Cum este aproape imposibil ca ele să nu apară , este
necesară utilizarea unor tehnici pentru a le detecta şi, în continuare, aplicarea unor metodologii care
permit rezolvarea lor. Rezolvarea unui conflict depinde în primul rând de tipul de conflict şi, în al
doilea rând, de metoda particulară de rezolvare utilizată pentru acest tip de conflict.
Se consideră tipul de conflict negativ de obţinere a rezultatelor diferite pentru acelaşi tip de
informaţie de la agenţi diferiţi (situaţie de conflict referită anterior la CCC6), care este mai
importantă. Una din metodologiile posibile pentru rezolvarea sa ar fi, după detectarea apariţiei
acestui conflict, iniţierea unei negocieri între agenţii implicaţi în obţinerea rezultatelor diferite
pentru acest tip de informaţie, cu scopul de a obţine un consens. Această metodologie are avantajul
de a lua în calcul posibilele contribuţii ale agenţilor implicaţi în obţinerea primelor rezultate, agenţi
care, în principiu, tratează domeniul în care se încadrează tipul de informaţie analizat.
Implementarea sa se dovedeşte foarte complexă, nu numai prin gestiunea procesului de negociere
între agenţi, ci şi prin capacităţile adiţionale pe care agenţii trebuie să le posede pentru a le permite
corectarea rezultatelor lor, comparativ cu rezultatele obţinute de alţi agenţi, efectuarea de analize,
sinteze, înţelegerea şi tratarea argumentaţiei persuasive.

13.5.1.1 Rezolvarea conflictelor în partajarea rezultatelor

Propagarea rezultatelor diferite obţinute pentru un anumit tip de informaţie într-o comunitate
multi-agent, conduce la obţinerea de rezultate incoerente. Pentru evitarea acestei situaţii se
consideră două metodologii de rezolvare a acestor conflicte descrise în continuare.
1. După ce agenţii au detectat obţinerea unor rezultate diferite pentru acelaşi tip de
informaţii, ei intră în negociere în ideea obţinerii unei soluţii de compromis (de exemplu pentru
relaxarea condiţiilor impuse respectivelor rezultate). Această soluţie obligă la implementarea de
protocoale adecvate acestei negocieri şi la necesitatea ca agenţii să posede capacităţi de a corecta
rezultatele lor în comparaţie cu cele obţinute de alt agent. Aceasta implică faptul că într-o anumită
comunitate multi-agent, dacă există mai mult de un agent care realizează un anumit task, trebuie ca
fiecare din aceşti agenţi să posede capacitatea de a-şi corecta rezultatele pentru acest task; aceasta
are inconvenientul de a conduce la necesitatea multiplicării capacităţilor de a trata aceste situaţii de
către diferiţi agenţi.
Totuşi, această aproximare poate fi indicată pentru un anumit tip de aplicaţii, pentru care
agenţii, la obţinerea rezultatelor diferite pentru un anumit tip de informaţie, ar putea verifica dacă
aceste rezultate se încadrează în intervalele de acceptare şi cad de acord asupra unei anumite soluţii
intermediare.
2. O altă metodologie constă în posibilitatea ca fiecare agent să dispună de mecanisme care
să-i permită să detecteze dacă există cel puţin un alt agent care realizează un anumit task. Dacă, la
un anumit moment dat, există mai mult de un agent care execută un task determinat, există
posibilitatea să se ajungă la rezultate diferite. Când această detecţie este efectuată, rezultatele sunt
trimise, nu numaidecât agentului care le-a cerut sau agenţilor interesaţi de aceste rezultate, ci unui
agent special, care este agentul însărcinat cu rezolvarea conflictelor pentru acest tip de informaţie.
In mod normal, agentul care rezolvă conflictele pentru un anumit tip de informaţie, este unul dintre
agenţii care are capacitatea de a executa task-ul ce conduce la acest tip de informaţie. In figura 13-7
este reprezentată metodologia de rezolvare de conflicte, numerele indicând ordonarea temporală a
evenimentelor.
Astfel, pentru fiecare tip de informaţie care poate fi obţinut de mai mult de un agent al
comunităţii (rezultatul unui task), trebuie să existe cel puţin un agent, Agrc (agent care rezolvă
conflicte) capabil să analizeze toate rezultatele disponibile. Acest agent specializat în rezolvarea

17
Sisteme multi-agent
conflictelor este responsabil de trimiterea rezultatului final agentului organizator (agentul care a
făcut cererea) şi celorlalţi agenţi interesaţi, dacă aceştia există.
In continuare se consideră o posibilă descriere a protocolului de rezolvare a conflictelor.
Agenţii care lucrează simultan pentru a răspunde la aceeaşi cerere (fie pentru că au fost
contractaţi, fie pentru că oferă voluntar ajutorul), trebuie să trimită rezultatele lor către agentul Agrc.
La primirea unui mesaj, agentul Agrc va consulta automodelul său pentru a activa procedura care
tratează acest tip de conflict şi care va fi, în cea mai mare parte din cazuri, bazată pe cunoştinţe
dependente de domeniu. Agentul Agrc ştie că are numai un anumit timp pentru trimiterea
rezultatului final la destinaţie.
Agentul Agrc poate să fie sau nu capabil să execute acelaşi task. In oricare din cazuri, odată
ce agentul este însărcinat cu rezolvarea conflictelor pentru acest task, trebuie să se ştie câţi şi care
agenţi execută acest task1 (informaţie provenind din partea dinamică a modelului agenţilor
cunoscuţi - agenda agenţilor).
Agentul Agrc va aştepta toate mesajele răspuns, în timp ce termenul impus subtask-ului
permiţându-i să existe până la atingerea limitei unui nou termen (egal cu termenul impus
subtask-ului minus timpul mediu de execuţie a task-ului de rezolvare a conflictelor), şi apoi să
încerce rezolvarea conflictului. Dacă numai un mesaj ajunge în limitele acestui nou termen, acesta
va fi cel ce va fi retrimis agentului destinaţie. Dacă ajung mai multe mesaje în timp oportun, agentul
Agrc consultă automodelul său pentru a activa procedura care tratează acest tip de conflict şi, după
ce a obţinut un rezultat unic, îl trimite agentului destinaţie.
Procedurile pentru lucrul cu diferite răspunsuri trebuie să includă:
• calcularea unei noi credibilităţi pentru rezultatul final, bazată pe credibilităţile diferitelor
răspunsuri;
• acumularea într-un mod determinat, a diferitelor rezultate;
• alegerea dintre diverse alternative, a celei mai bune.

In unele cazuri, în loc de a considera schimbul de informaţie între toţi agenţii interesaţi (în
determinarea datelor sau rezultatelor task-urilor) astfel încât să se permită fiecăruia dintre ei
recalcularea noilor valori, se preferă a se da capacitatea de a trata rezultate diferite pentru fiecare
task numai unui agent specific. Această metodologie evită fluxul excesiv de mesaje între agenţii
comunităţii, nu obligă la existenţa unor diferiţi agenţi cu cunoştinţe despre rezolvarea conflictelor
pentru un task dat şi, în plus, evită proliferarea rezultatelor diferite obţinând numai un rezultat final
pentru fiecare task.

1
Când iniţiază sau termină execuţia unui task, fiecare agent informează agenţii
interesaţi de acest task asupra acestui lucru.

18
Sisteme multi-agent

Agent organizator Agent colaborator

2
Selecţia agentului Execuţie task
către care se va trimite
cererea de execuţie a 3
task-ului
Există cel puţin un
agent care execută
1 acest task

Detecţie necesitate de
4
partajare
Rezultate

5
Agent de rezolvare a
conflictelor

Recepţia rezultatelor
aceluiaşi task,
executat de mai mulţi
colaboratori
6
Rezolvare conflicte

7
Rezultat final

8
Selecţie agenţi
interesaţi de rezultat

figura 13-7. Rezolvarea conflictelor

19

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