Sisteme Multi Agentdoc
=== Sisteme multi agent ===
1. SISTEME MULTI AGENT
1.1. Orientare către agent
1.1.1. Elemente de analiză și proiectare
Noțiunea de agent are o serie de înțelesuri în funcție de contextul în care se utilizează – se poate referi la un agent imobiliar, de bursă, diplomatic etc.; astfel în timp au fost utilizate o serie de definiții. Din perspectiva utilizării în lucrarea de față agentul este definit ca o componentă software (sau hardware) capabilă de acțiuni autonome în medii dinamice cu scopul de a îndeplini sarcini specificate de un utilizator. Deoarece agentul este o entitate autonomă capabilă să aleagă acțiunile necesare pentru atingerea unui scop se deosebește de obiect (obiect software). Impactul utilizării tehnologiei bazate pe agenți se manifestă în câteva direcții:
a) agentul ca metodă de proiectare – agenții asigură dezvoltatorilor și arhitecților o modalitate de structurare a aplicației în jurul unor elemente autonome și communicative;
b) sursă tehnologică – s-au dezvoltat o serie de tehnici și algoritmi necesari pentru realizarea negocierii, comunicarii între mai mulți agenți etc.
c) model pentru simularea organismelor complexe din realitate.
Într-un sistem de suport și decizie (SSD) agentul și omul formează o echipă formată dintr-un decident (sau mai mulți) și agent (sau mai mulți – aceștia pot fi de interfață sau de altă natură) care comunică în mod activ cu restul sistemului intern sau extern. Într-o astfel de situație se disting trei modalități de intracțiune om – agent. Primele două modalități sunt client-server în care utilizatorul uman are rolul de client sau server, a treia modalitate fiind „peer to peer”. În prima variantă când omul are rolul de client, acesta poate comunica spre exemplu o cerere agentului de interfață care după cooperarea cu ceilanți agenți din sistem oferă un răspuns. Tot în acest caz este și situația în care omul deleagă agentului o problemă spre rezolvare, caz în care răspunsul primit poate fi doar afirmativ sau negativ (succes sau eșec) – utilizatorul uman putând fi implicat în detalierea/clarificarea/sugerarea modului în care problema poate fi rezolvată A doua situație se întâlnește în momentul în care omul are rol de server – acesta ar putea primi o cerere din partea agentului de interfață ce acționează în virtutea unei cereri venite din partea unui alt agent din sistem – agentul de planificare a întâlnirilor personale, întrebă daca utilizatorul este liber pentru o anumită întâlnire. Modelul „peer to peer” este în spiritul unei abordări colaborative unde un grup de agenți și utilizatori cooperează pentru revolvarea unei probleme – model ce combină cele două variante descrise anterior.
Până în momentul de față au fost propuse mai multe metodologii pentru analiza, proiectarea și construirea Sistemelor Multi Agent – MAS (Iglesias, Garijo și Gonzalez, 1998). Majoritatea acestora se bazează pe conceptele orientării obiect deja existente sau pe metodologiile bazate pe cunoștințe. Deși metodologia însăși diferă în cea mai mare parte de abordările orientate obiect, sintaxa lor a fost inspirată din Unified Modeling Language. Astfel, scopurilor și rolurilor agenților în cadrul sistemului (Kendall și Zhao, 1998) au influențat pașii de analiză considerați în cadrul metodologiei MaSE (Multi agent System Engineering) (Wood și DeLoach, 2001), în timp ce corespondența dintre rolurile agenților și tipurile acestora s-a construit pe baza conceptelor prezentate de Kinny, Georgeff și Rao (1996). În general metodologiile utilizate în cadrul ingineriei software orientate spre agent își găsesc originile în metodele tradiționale ale orientării obiect. Cu toate acestea ele sunt specializate pentru paradigma de procesare paralelă întâlnită în cadrul agenților. Aceste metodologii diferă oarecum prin faptul că se proiectează în prima fază componentele generale ale sistemului după care se trece la definirea sistemului însuși. Puține metodologii încearcă însă să acopere întreg ciclul de proiectarea (Wooldridge, Jennings și Kinny, 2000). În general pașii care trebuiesc urmați sunt următorii:
1) proiectarea domeniului;
2) proiectarea agentului;
3) proiectarea componentelor;
4) proiectarea sistemului.
În cadrul fazei de proiectare a domeniului se analizează tipurile de bază ale agenților și posibilele interacțiuni dintre aceștia în cadrul MaS. Se au în vedere doar definițiile de nivel înalt ale tipurilor de agenți, scopul acestora și interfețele externe (protocolul de coordonare dintre agenți). Se definește modul de coordonare cu ceilalți agenți din sistem și care dintre tipurile de agenți impun un anumit grad de coordonare. Numărul acestora, locul unde rulează și responsabilitățile specifice se amână până spre faza de proiectare a sistemului. Pașii de proiectare ar fi în acest caz:
1) identificarea tipurilor de agenți (analog cu tehnicile utilizate în orientarea obiect);
2) identificarea interacțiunilor posibile între diversele tipuri de agenți (definirea protocoalelor de coordonare pentru fiecare tip de interacțiune);
3) definirea protocoalelor de coordonare pentru fiecare tip de interacțiune (descrierea posibilelor secvențe de mesaje care se schimbă între agenți).
Faza a doua definește (sau reutilizează) arhitecturile utilizate pentru fiecare tip de agent în parte. Arhitectura agentului definește componentele din cadrul fiecărui agent și felul în care acestea interacționează. Pașii de proiectare ai acestei faze sunt:
1) atribuirea acțiunilor identificate în cadrul conversațiilor agentului componentelor interne ale agentului;
2) definirea structurilor de date din cadrul conversației agentului;
3) definirea structurilor de date interne agentului (aceste structuri reprezintă fluxul de date dintre componente în cadrul arhitecturii).
Odată ce arhitectura agentului a fost definită, trebuie proiectate componentele specifice. Dacă aceste componente există deja, ele pot fi reutilizate. În mod evident componentele agentului include planificatorii, mecanismele de inferență, algoritmii de căutare și algoritmii de învățare. Faza a patra referă proiectarea sistemului nivel la care se definesc numărul de agenți, tipul acestora, precum și parametrii specifici din cadrul definiției agentului. Deși nu este o parte de proiectare tehnică, odată ce sistemul a fost definit se pot verifica diverse proprietăți de interes precum siguranța și comportamentul. Pașii specifici includ selectarea tipurilor de agenți și determinarea numărului de agenți necesari din fiecare categorie în parte. În plus se definește locația fizică a agentului, tipul de conversație pe care agenții vor fi capabili să-l întrețină și oricare alți parametrii definiți în cadrul domeniului.
1.1.2. Programarea orientată spre agent
Strămoșii limbajelor de programare ale agenților au fost limbajele obiectuale concurente, i.e. Actorii (Agha, 1986) și ABCL (Yonezawa, 1990). Conceptul de obiect concurent de sine stătător, având o stare internă inaccesibilă din exterior și care răspunde la mesajele primite de la alte obiecte este destul de apropiată de conceptul de agent. Paradigma de programare orientată spre agent (POA) a fost introdusă de Shoham (1993) ca fiind o nouă metodă de a programare a aplicațiilor bazată pe agenții inteligenți.
Din punct de vedere al aplicațiilor, există puține încercări de dezvoltare a unui limbaj care să corespundă în întregime cu ideile originale ale POA. În POA agenții interacționează în ideea realizării propriilor scopuri sau interese. Agenții pot coexista într-o structură complexă precum Internetul sau într-una simplă precum un modul de program. Agenții sunt în acest context entități autonome care decid următoarea acțiune fără intervenția explicită a utilizatorul sau în caz contrar servesc drept intermediari între utilizator și un alt agent. Shoham sugerează faptul că un sistem care dorește să implementează ideile POA trebuie să conțină următoarele elemente:
1) un limbaj formal cu o sintaxă clară pentru descrierea stărilor menatale (acesta va include structuri pentru descrierea opiniilor – e.g. calculul predicatelor, trimiterea de mesaje etc.;
2) un limbaj de programare în care să poată fi definiți agenții (semantica acestui limbaj trebuie să fie apropiată de aceea a unui limbaj formale);
3) o metodă pentru convertirea aplicațiilor obișnuite în agenți (aceast program va permite unui agent să comunice cu o aplicație clasică prin atribuirea de intenții).
O parte esențială aconceptului de POA constă în descrierea „stărilor menatale“ ale agenților. Termenii cei mai des utilizați sunt aceia de decizie, care sunt la rândul lor parțial determinate de părerile agentului și care sunt influențate de stările lumii înconjurătoare și de capabilitățile agentului. Shoham introduce noțiunea de angajament și definește o decizie ca fiind angajamentul unui agent de a acțiuna în acest fel. Plecând de la aceste premize proiectarea unui limbaj este simplificată semnificativ:
1) dispare necesitatea unui mecanism de selectare al acțiunilor (ca rezultat al definirii anagajamentelor, agentul își asumă unele obligații);
2) proiectarea unui sistem complex devine o provocare (cu mecanismul dinamic de selectare al acțiunilor, deciziile pot să corespundă unor reguli predefinite).
Cele trei categorii pe care le utilizează limbajul formal al lui Sohoham sunt:
1) părerile (descriu starea unui obiect din lumea înconjurătoare la un moment determinat);
2) obligațiile (angajamentele) și deciziile (părerea unui anumit agent relativă la afirmațiile altui agent la un moment determinat);
3) capabilitățile (capacitatea agentului de a observa valabilitatea unei anumite afirmații la un anumit moment).
Pe lângă acestea, există patru proprietăți esențiale ce ar trebui considerate în dezvoltarea oricărui limbaj orientat spre agent:
1) consistența internă (orice agent scris în acest limbaj trebuie să fie consistent cu propriile păreri și dorințe, fiind necesar un mecanism de arbitrarea al posibilelor incosistențe);
2) buna credință (un agent nu ar trebui să se angajeze în sarcini pe care nu crede că le va putea satisface);
3) introspecția (agenții ar trebui să conștientizeze propriile obligații);
4) persistența stărilor mentale (POA necesită ca părerile și obligațiile să persiste în mod implicit).
Prima încercare de implementare a unui mediu pentru AOP a fost sistemul AGENT0. În acest limbaj, un agent este specificat în baza capabilităților acestuia (lucrurile pe care agentul le poate realiza), un set inițial de păreri și angajamente împreună cu un set de reguli. Componenta cheie, cea care determină felul în care se va comporta un agent, constă în setul de reguli. Fiecare regulă conține o condiție a mesajului, o condiție mentală și o acțiune. Pentru a determina momentul când o astfel de regulă este aplicabilă, este testată condiția mesajului primit de agent iar condiția mentală este validată conform cu propriile păreriri ale agentului. Dacă regula devine aplicabilă, atunci agentul se angajează să acționeze. Acțiunile pot fi private (corespund unei subrutine interne) sau comunicative (i.e. trimiterea unui mesaj). Mesajele sunt restricționate la unul din următoarele tipuri: cerere pentru a acționa sau nu și de informare (Wooldridge and Jennings, 1995).
O implementare mai rafinată s-a încercat în cadrul sistemului PLACA (Planning Communicating Agents) (Thomas, 1993) care a eliminat o serie din inconvenientele întâlnite la limbajul AGENT0: incapacitatea agentului de a planifica și comunica cererile prin intermediul unui limbaj de nivel înalt. Însă, după cum observa Wooldridge și Jennings (1995), atât la AGENT0 cât și la PLACA relația dintre logica internă a agentului și limbajul de programare au fost foarte slab definită. Ținând cont de acest lucru Fisher (1994) a dezvoltat limbajul Concurrent METATEM. Acesta permitea programarea unor agenți, executabili în mod concurent, capabili să comunice cu omologii lor prin intermediul unor mesaje asincrone. Fiecare agent este programat pe baza unei specificații logice temporale al comportamentului pe care agentul trebuie să-l manifeste, agentul fiind executat în mod direct pentru a-i genera comportamentul. În cadrul proiectului ESPRIT IMAGINE au fost dezvoltate alte două limbaje APRIL (McCabe și Clark, 1994) și MAIL (Haugeneder et al., 1994) pentru programarea MaS
În cadrul agenților mobili, se remarcă General Magic Inc. care a dezvoltat un mediu de programare TELESCRIPT fundamentat pe asocierea dintre agent și locul în care acesta se execută. Agenții pot fi de două categorii producători și consumatori în spațiul electronic. În acest caz agenții sunt procese capabile să se mute de la un loc în altul. O abordare similară au avut și cei de la IBM care au dezvoltat mediul AGLETS sau ABLE.
Unele dintre problemele conceptuale care rămân spre rezolvare sunt teoria categoriilor mentale cu care lucrează agenții, securitatea, consistența și rigiditatea în planificare.
1.1.3. Contextul social
Contextul social definește limitele și comportamentul unui agent. Structura socială în care un agent participă îi modelează acțiunile de aceea „agency“ este un fenomen social și psihologic mai degrabă decât unul biologic sau fizic.
Societatea se schimbă repede, un exemplu clar fiind telefonia care este o altă formă de comunicare pentru că există un element clar de prezență prin faptul că în timpul convorbirii corpul încă emite expresii. Deasemenea atitudinile oamenilor se schimbă prin intermediul diferitelor metode comunicare. Unii pot fi mai nervoși în cazul comunicării prin telefon, față de comunicarea față în față, iar alții pot fi chiar mai politicoși.
Agenții trebuie să comunice diferit în funcție de partenerul de dialog: în cadrul grupului de agenți sau în afara acestui grup. Această distincție poate fi uneori clară și uneori mai neclară, dar ea servește pentru a defini distincția dintre abordarea tradițională a inteligenței artificiale față de „agency“ și abordarea psihologico-socială față de „agency“. În abordarea tradițională a inteligenței artificiale agenții comunică între ei printr-un limbaj specializat care este definit ca un set de acțiuni de vorbire.
Pentru ca un agent să comunice cu oamenii el trebuie să vorbească limbajul uman sau cel puțin să fie capabil să comunice în termini umani mai degrabă decât în termini mașinilor. Bineînțeles că noi am putea să învățăm stările mașinii din expresiile ei, dar pentru noi acesta este un limbaj străin așa că poate o soluție mai bună ar fi să îi învățăm pe agenți limbajul nostru.
Agenții interacționează printr-un limbaj predefinit (cum ar fi KQML) dar aceste limbaje sunt fără șanse la nivelul comunicării cu oamenii. Agenții trebuie să comunice cu oamenii printr-un limbaj pe care aceștia să îl înțeleagă iar pentru aceasta agenții trebuie construiți pentru a putea folosi în comunicare limbajul natural uman. Acest lucru este foarte dificil dar răsplata este mare deoarece societățile de agenții și oamenii se pot interconecta mai eficient atâta timp cât oamenii și agenții vor putea comunica prin același limbaj.
Prin limbaj se înțelege toată mulțimea de acte comunicative nu numai text și anume un zâmbet reprezintă o exprimare a bucurie în contextul social uman și dacă agentul ar exprima un asemenea act comunicativ persoana cu care comunică ar înțelege bucuria agentului. Construirea agenților utilizînd tehnici din inteligența artificială trebuie să fie mai aproape de oameni în comportament în sensul tradițional psihologic cât și în contextul social pentru că ei trebuie să citească toate expresiile stărilor noastre mentale interioare pentru a putea comunica și colabora în mod corect. Pentru a putea crea agenți artificiali „reali“ trebuie ca diferențele dintre contextele sociale artificiale și societățile artificiale create până acum și contextul social uman și societatea umană să fie închise. În practică toate modele care s-au dezvoltat au reprezentat modele plauzibile ale modurilor în care agenții pot interacționa dar când au fost transpuși în descrieri formale pentru a putea fi implementate toată flexibilitate din modelul implicit se pierde.
Structurile sociale naturale umane sunt mult mai complexe decât cele aplicate în inteligența artificială deoarece inteligența umană a evoluat împreună cu sistemele sociale. Dacă dorim să construim agenți care să trăiască în sistemul nostru de valori trebuie să transferăm o parte din psihologia noastră pentru a putea participa și percepe societatea din punctul nostru de vedere. Pentru a se realiza acest lucru trebuie să cercetăm cum psihologia umană afectează interacțiunile umane și folosind aceste rezultate să restructurăm conceptul de agent pentru a se încadra mai bine în aceste principii psihologice.
1.2. Arhitectura agenților
În continuare se vor descrie principale clase arhitecturale ale agenților software, întâlnite în literatura de specialitate. Wooldridge (1999) descrie patru clase principale: agenții deliberativi – deciziile se iau pe baza deducțiilor logice, agenții reactivi – deciziile se realizează prin implementarea într-o anumită formă a mapării dintre cauză – o situație posibilă – și efect – acțiunea dorită, arhitectura belief-desire-intention (BDI) – decizia depinde de manipularea unor structuri de date care reprezintă părerile, dorințele și intențiile agentului și arhitecturile hibride – deciziile sunt luate prin intermediul unor module software independente, fiecare dintre ele explicitând mai mult sau mai puțin mediul în care operează la diferite nivele de abstractizare.
1.2.1 Agenti deliberativi
În mod tradițional sistemele de inteligență artificială se bazează pe faptul că comportamentul inteligent poate fi generat în cadrul unui sistem informatic prin reprezentarea simbolică (IA simbolică) a mediului în care acesta operează împreună cu aceea a comportamentului dorit care să manipuleze din punct de vedere sintactic aceste structuri. Reprezentările simbolice constau în formule logice, iar manipularea sintactică corespunde deducției logice sau demonstrării teoremelor. Un astfel de sistem trebuie să explice felul în care agentul este de dorit să se comporte, felul în care agentul își generează propriul scop în concordanță cu obiectivele de proiectare precum și modul în care va interpune comportametul reactiv cu cel oportunist în scopul atingerii acestor scopuri. Abordarea tradițională de a construi un sistem care să satisfacă aceste specificații va implica rafinarea acestor specificații printr-o serie de faze progresive, din ce în ce mai concrete până în momentul în care se ajunge la implementarea finală. În cazul demonstrării teoremelor astfel de rafinări, nu există totuși, și sistemul este mai degrabă perceput ca o specificție a modului de execuție – ea este direct executată pentru a produce comportamentul agentului. La astfel de agenți starea internă se presupune a fi o bază de cunoștințe compusă din predicate logice. Bazele de cunoștințe sunt de fapt informațiile pe care agentul le are despre mediul în care operează, având un rol similar cu cel al părerilor/opiniilor umane.
Un astfel de sistem conține un set de propoziții logice L și D = (L) setul de baze de cunoștințe L. Starea internă a unui agent este atunci un element din D. Fie ,1 … membri lui D. Starea internă a unui agent devine astfel un membru al setului D. Procesul decizional al unui agent este modelat printr-un set de reguli de deducție acestea fiind reguli de inferențe logice, starea internă a unui agent fiind un membru al setului D. Ideea constă în faptul că fiecare programator va coda în agent regula de deducție și baza de cunoștințe D a.î. dacă poate fi derivată o formulă Do(a), unde a este un termen care va desemna o acțiune, atunci a este cea mai bună acțiune de realizat. În acest caz, agentul va încearca să găsească o acțiune care este consistentă cu regulile și cu baza de cunoștințe, i.e. una care nu este în mod explicit interzisă. În consecință agentul va încerca să găsească o acțiune a A a.î. Do(a) nu poate fi derivată din propria bază de cunoștințe utilizând propriile reguli de deducție. Dacă totuși agentul eșuează în a găsi o acțiune care să fie consistentă înseamnă că nu a fost selectată nici o acțiune. În acest fel comportamentul agentului este determinat de regulile de deducție ale acestuia și de baza de cunoștințe curentă ce reprezintă informații despre mediul în care agentul operează.
Se spune despre un agent că respectă proprietatea de raționalitate calculativă dacă și numai dacă aparatul decizional va fi capabil să sugereze o acțiune ce a fost optimă atunci când acest proces a început. Raționalitatea calculativă nu este în mod evident acceptabilă în mediile ce se modifică mai rapid decât e agentul în stare să ia o decizie. Există o serie de alte probleme asociate cu abordările deliberative. În primul rând, funcția de percepție mapează mediul agentului cu o anumită informație perceptibilă. În cazul agenților deliberativi acestă informație este probabil să fie de natură simbolică – în mod tipic un set de formule în limbajul de reprezentare al agentului. Pentru multe medii nu este însă deloc evident cum această corespondență poate fi realizată. O altă problemă constă în reprezentarea proprietăților de natură dinamică. În fine, reprezentarea chiar și a unor cunoștințe procedurale simple în logica tradițională poate fi mai degrabă neintuitivă și stânjenitoare.
Pentru agenții deliberativi luarea deciziei este un proces deductiv. Programul unui agent – strategia de luare a deciziei de către agent – este codat în termenii programării logice, iar procesul de selectare a unei acțiuni se reduce la demonstrarea unei teoreme. Abordările bazate pe logică sunt elegante și au în același timp o semantică logică foarte clară. Aceste abordări au însă și multe dezavantaje. În particular complexitatea de calcul moștenită din metodologia demonstrării teoremelor o face îndoielnică pentru cazul mediilor cu constrângeri temporale. Luarea deciziei este bazată pe presupunerilor raționalității calculabile – presupunerea că lumea nu se va schimba într-un mod semnificativ în timp ce agentul decide ce să facă. Problemele asociate cu reprezentarea și raționamentul relativ la mediile complexe și dinamice rămân în mod semnificativ nerezolvate.
1.2.2. Agenți reactivi
Necesitatea ca agenții să fie capabili să acționeze în medii cu constrângeri temporale a condus inevitabil la o abordare total diferită. Aceasta se poate identifica prin: eliminarea reprezentărilor simbolice și a deciziilor bazate pe manipularea sintactică a unor astfel de reprezentări; inteligența nu există în sine ci este produsul interacțiunii cu mediul – comportamentul inteligent, rațional este perceput ca fiind legat de mediul în care un agent operează; comportamentul inteligent se naște din interacțiuni simple. Abordările alternative pot să fie definite ca fiind comportamentale – tema comună este aceea a dezvoltării și combinării comportamentelor individuale, situate/plasate – tema de bază se reduce la faptul că agenții sunt situați într-un mediu și nu in afara acestuia și în fine reactive – astfel de sisteme sunt percepute ca sisteme ce reacționează la schimbările din mediu fără să raționeze asupra lui.
Cea mai cunoscută arhitectură din această categorie este arhitectura de însumare (subsumption architecture) dezvoltată de Rodney Brooks. Se pot distinge două caracteristici definitorii ale acestei arhitecturi. În primul rând luarea deciziei de către agent este realizată prin intermediul unui set de sarcini care compun comportamentul agentului. Fiecare comportament poate fi văzut ca o funcție de acțiune individuală care preia în mod continuu date din mediul în care operează și pe care le mapează unei acțiuni pe care trebuie să o realizeze. Fiecare dintre aceste module comportamentale este dedicat realizării unei sarcini particulare. Nici un modul nu utilizează raționamentul simbolic. În majoritatea implementărilor aceste comportamente se regăsesc sub forma de reguli situație acțiune care mapează situația percepută prin senzorii de intrare cu acțiunea dorită. A doua caracteristică constă în faptul că pot fi activate simultan mai multe comportamente. Mecanismul propus de Brooks pentru a selecta acțiunea dorită în aceste condiții se rezumă la aranjarea comportamentelor într-o ierarhie de însumare, comportamentul fiind conceptualizat pe nivelurile acestei ierarhii. Nivelurile inferioare pot să inhibe pe cele superioare sau, cu alte cuvinte, cu cât un strat se află pe un nivel mai inferior cu atât este mai mare prioritatea acestuia. Straturile superioare reprezintă în această accepțiune comportamente mai abstracte. Funcția de decizie a acțiunii este realizată printr-un set de comportamente împreună cu o relație de inhibiție între acestea. Se observă că abordările reactive oferă unele avantaje destul de evidente: simplitate, economie, putere de calcul redusă, robustețe și eleganță. Rămân însă și probleme, i.e. dacă agentul nu utilizează modele ale mediului în care operează atunci el trebuie să dispună de suficiente informații pentru a selecta acțiunea dorită. Dat fiind faptul că agenții pur reactivi iau deciziile pe baza informațiilor locale (i.e. informații legate starea curentă a agenților) este dificil de văzut cum o astfel de decizie ar putea lua în calcul informațiile externe având astfel o perspectivă limitată asupra contextului problemei. Rămâne dificil de abordat problema învățării și a îmbunătățirii performanțelor. Pe de altă parte, o idee de fond frecvent întâlnită în cadrul sistemelor pur reactive este aceea a faptului că comportamentul agentului este rezultatul interacțiunii componentelor comportamentale atunci când acesta este plasat într-un anumit mediu. Astfel relația dintre comportamentele individuale, mediu și comportamentul general rămân disjuncte. Acest lucru face imposibilă abordarea unor anumite categorii de probleme. În fine nu există nici o metodologie principială în ceea ce privește dezvoltarea unor astfel de agenți, fiind necesare eforturi susținute de implementare și testare. Pentru agenții compuși din straturi comportamente numeroase (de regulă mai mult de zece) dinamica interacțiunilor dintre diferite comportamente devine prea complexă pentru a putea fi înțeleasă.
1.2.3. Agenti BDI
Arhitecturile BDI își au sorgintea în încercările psihologice de a înțelege raționamentul practic. Acest gen de raționament implică două procese importante, alegerea scopului ce trebuie atins și modul în care acționăm în vederea atingerii acestuia. În cadrul raționamentului practic intențiile joacă mai multe roluri: – influențează raționamentul practic; – constrâng deliberările viitoare; – intențiile persistă; – influențează părerile ce stau la baza viitoarelor raționamente. În mod concret, este evident că un agent ar trebui din timp în timp să renunțe la unele intenții (fie aceste intenții nu vor avea șansa să fie vreodată realizate, fie nu mai există motivația de a realiza respectivele intenții). În consecință este important ca un agent să-și reconsidere intențiile. Însă acest lucru presupune și el un cost – atât ca timp cât și ca resurse de calcul, fapt ce introduce următoarea dilemă: – un agent care nu-și va reconsidera intențiile destul de des va persevera în încercarea de a-și realiza propriile intenții chiar și după ce este evident că acestea nu pot fi atinse sau nu mai există nici un motiv pentru a fi realizate; – un agent care în mod constant își reconsideră propriile intenții poate să aloce timp insuficient lucrului efectiv necesar atingerii intențiilor inițiale și în consecință să riște să nu le realizeze niciodată). Această dilemă este esențială în echilibrarea comportamentului proactiv (condus de scop) și cel reactiv (condus de eveniment).
Natura acestui echilibru a fost examinat de David Kinny și Michael Georgeff într-o serie de experimente realizate cu prototipul unui agent BDI denumit dMARS. Ei au investigat felul în care agenții îndrăzneți (aceia care nu-și reconsideră niciodată intențiile) și agenții precauți (aceia care în mod constant își reconsideră intențiile) se comportă într-o diversitate de medii. Cel mai important parametru în cadrul acestor experimente a fost rata de modificare a mediului înconjurător. Rezultatul a fost următorul: – dacă mediul nu se modifică foarte rapid atunci agenții îndrăzneți se comportă mai bine în camparație cu cei precauți deoarece aceștia din urmă pierd suficient de mult timp cu reconsiderarea propriilor intenții, în timp ce agenții perseverenți sunt preocupați cu realizarea propriilor scopuri; – dacă mediul se modifică în mod frecvent atunci agenții precauți tind să întreacă pe cei perseverenți deoarece aceștia sunt capabili să recunoască momentul în care intențiile devin inutile și în plus să fie avantajați în situațiile contradictorii ce oferă noi oportunități. Ca și o concluzie, mediile diferite necesită strategii diferite. Într-un mediu static, un comportament orientat pe scop devine cel mai adecvat, însă în medii mai dinamice capacitatea de reacție la schimbări prin modificarea intențiilor devine mai importantă.
Procesul unui raționament practic într-un agent BDI este format (de multe ori) din șapte componente principale:
(1) un set al părerilor (beliefs) curente ce reprezintă informațiile pe care agentul le are despre mediul în care operează;
(2) o funcție de revizuire a părerilor (brf) care pe baza datelor de intrare și a părerilor curente ale agentului determină noul set de opinii;
(3) o funcție de generare a opțiunilor (options) care determină opțiunile disponibile unui agent;
(4) un set al opțiunilor de care dispune agentul reprezentând posibilele acțiuni pe care le are agentul;
(5) o funcție de filtrare (filter) care să reprezinte procesul deliberativ al agentului și care determină intențiile agentului pe baza părerilor, dorințelor și intențiilor curente ale acestuia;
(6) un set al intențiilor curente, reprezentând preocuparea curentă a agentului;
(7) o funcție de selecție (execute) care determină acțiunea ce trebuie realizată pe baza intențiilor curente.
Cel mai adesea acestea sunt reprezentate ca și formule logice. Starea unui agent BDI în orice moment poate fi reprezentată ca o tripletă de genul (B,D,I) unde BBel, DDes și IInt.
O problemă majoră în cazul acestor arhitecturi constă în faptul că procesul de deliberare trebuie să fie foarte bine ancorat în mediul în care agentul operează, asigurând astfel că într-un mediu mai dinamic și cu grad mare de impredictibilitate, agentul își reconsideră intențiile relativ frecvent, în cele mai statice fiind necesară o reconsiderare mai puțin frecventă. Modelul BDI este atractiv din diverse motive. În primul rând este foarte intuitiv iar în al doilea rând ne dă o decompoziție funcțională mult mai clară comparativ cu celelalte arhitecturi. Marea dificultate constă însă în felul în care aceste funcționalități se vor implementa în mod eficient.
1.2.4 Arhitecturi hibride
Datorită necesității ca un agent să fie capabil să manifeste atât un comportament reactiv cât și unul proactiv, o decompoziție evidentă implică crearea unor subsisteme separate care să se ocupe de fiecare dintre aceste comportamente în parte. Ideea conduce în mod natural la o clasă de arhitecturi în care diverse subsisteme sunt aranjate intr-o ierarhie de straturi care interacționează unele cu altele. În mod clasic avem cel puțin două straturi care să se ocupe de comportamentul reactiv și de cel deliberativ. Se pot identifica două moduri de control ale fluxului informațional în cadrul arhitecturilor stratificate:
1) stratificare pe orizontală – modulele software sunt conectate fiecare în mod direct la senzorii de intrare și la mediul asupra căruia acționează – ca o consecință fiecare modul acționează ca și un agent unic;
2) stratificare pe verticală – intrările și acțiunile se realizează la cel mult un singur strat.
Pentru arhitecturilor stratificate pe orizontală marele avantaj constă în simplitatea conceptuală, dacă este nevoie ca un agent să manifeste n tipuri diferite de comportamente atunci se vor implementa n straturi diferite. Comportamentul genral al agentului poate sa nu fie unul coerent deoarece toate cele n straturi concurează între ele pentru generarea acțiunilor dorite. Pentru a asigura consistența acestui gen de arhitectură ele includ de obicei o funcție de mediere care permite la un moment dat numai unui singur strat să dețină controlul asupra agentului. Controlul centralizat este destul de problematic deoarece proiectantul trebuie să ia în considerare toate interacțiunile posibile între aceste straturi. Pentru n straturi din cadrul arhitecturii capabil să sugereze m acțiuni posibile trebuie luate în considerare mn astfel de interacțiuni. Acest lucru este dificil de realizat chiar și pentru sisteme simple.
Centralizarea controlului introduce o constrângere importantă în luarea deciziei de către agent. Aceste probleme sunt parțial eliminate în arhitecturile stratificate pe verticală. Acestea pot fi împărțite în arhitecturi cu flux informațional unidirecțional și arhitecturi cu flux informațional bidirecțional. În primul caz, fluxul informațional trece în mod secvențial prin fiecare strat până în momentul în care ajunge la stratul final care generează acțiunile finale. În cel de-al doilea caz fluxul informațional parcurge modulele componente în două faze, oarecum în mod similar cu stilul organizațional. Informațiile parcurg ierarhia organizației către nivelele superioare de decizie pe baza cărora acestea iau deciziile care ulterior sunt executatea de sus în jos pe scară ierarhică. În cazul ambelor arhitecturi complexitatea interacțiunilor dintre straturi este redusă. Pentru n module capabile să genereze m acțiuni avem cel mult m2(n-1) interacțiuni posibile. Aceste interacțiuni sunt în mod evident mai reduse decât în cazul stratificărilor pe orizontală. Simplitate se realizează totuși cu costul unei flexibilități mai reduse, astfel în cazul unei arhitecturi stratificate pe verticală controlul se transferă către fiecare modul în parte diminuând astfel fiabilitatea sistemului.
Este important de remarcat faptul că fiecare modul implementează două funcții general valabile. Prima dintre ele este aceea de recunoaștere a situației, iar cea de a doua de activare a scopului. Aceste funcții acționează oarecum similar cu funcția options din arhitecturile BDI. Ea mapează bază de cunoștințe și scopurile curente pe noul set de intenții. A doua funcție este responsabilă cu distribuirea sarcinilor pe baza planurilor, scopurilor și cunoștințelor curente.
Arhitecturile stratificate sunt la ora actuală cele mai frecvent utilizate. Stratificarea reprezintă o decompoziție naturală a funcționalității fiind ușor de analizat cum comportamentul reactiv, cel proactiv și cel social pot fi generate de module dedicate. Marea problemă a acestora constă în lipsa clarității conceptuale și semantice comparativ cu a celorlate abordări. O altă problemă este aceea a interacțiunilor dintre straturi. Dacă fiecare strat este un proces independent, atunci este necesară considerarea tuturor posibilităților în care aceste module pot interacționa unul cu altul.
1.3. Tehnologia agenților
Agenții inteligenti și sistemele multi agent sunt printre ariile cu cea mai rapidă dezvoltare din domeniul științei calculatoarelor.
Din cauză că incă tehnologia evoluează foarte repede este greu să încercăm să prezicem cum va evolua tehnologia agenților, și cum exact vor arăta aplicațiile bazate pe agent. Pentru a facilita o bună înțelegere a structurilor care stau la baza tehnologiilor curente și viitoare care sunt implicate, figura următoare descrie o clasificare a unor astfel de tehnologii. Este subliniat faptul că este vorba despre o organizare abstractă a tehnologilor ce facilitează implementarea aplicațiilor bazate pe agent. Ierarhia descrisă poate fi considerată de unii ca fiind polemică și arbitrară.
Figura 1.1. Tehnologii software orientate agent
1.3.1. Limbaje pentru comunicare
Un lucru important în sistemele multi agent este acela că ansamblul agenților crează „valoare adaugată“. La această valoare adaugată se ajunge de obicei prin cooperare. Cooperarea s-ar putea efectua fără comunicare dacă fiecare agent ar avea informații complete despre starea întregului sistem și fiecare agent ar ști tot ce știu toti ceilalti agenti, ce intentionează să facă și ar cunoaște toate relațiile dintre elementele din sistem. În cazurile reale agenții posedă informații parțiale, de cele mai multe ori incorecte despre starea mediului înconjurător. De aceea pentru a coopera eficient agenții trebuie să comunice între ei. Pentru acesta este nevoie de un limbaj de comunicare a agenților (LCA). Genesereth și Ketchpel (1994) susțin că un software „…este un software agent dacă, și numai dacă comunică corect într-un limbaj de comunicare a agenților.“
LCA –urile sunt făcute să faciliteze comunicarea dintre doi sau mai mulți agenți. Agenții trebuie să comunice informatii, intenții, scopuri, etc. altor agenți. Cohen și Levensque (1995), consideră ca un LCA ar trebui să ofere posibilitatea agenților să-și manifeste suportul pentru alți agenți să-și atingă scopurile, să monitorizeze execuția lor, să refuze un task, sau să rezolve task-uri petru alți agenți. LCA –urile vor fi clasificate în două categorii – „standard“ și ad hoc. Un LCA standard – KQML (Knowledge Query and Manipulation Language – Limbajul de interogare și manipulare a cunoștințelor) este un LCA deja standard, fiind un limbaj de comunicare de nivel înalt și un protocol pentru interschimb de informații. La baza KQML-ului stau mai multe caracteristici care definesc actele de vorbire premise pentru agenti, și care furnizează un substrat pentru a construi strategii de coordonare și negociere cât mai complete.
Comunicare
Mesaje
Conținut
Figura 1.2. Limbajul KQML
Stratul conținut specifică actualul conținut al masajului. Un mesaj KQML poate conține cod din Prolog, C, sau orice atlceva, atât timp cât se poate representa în ASCII. Performativele furnizate de limbaj constituie stratul mesaj care la rândul lui formează nucleul limbajului. Acest strat de abstractizare furnizează performativele și specifică un protocol de trimitere de mesaje ce subsumează conținutul.
Stratul comunicare conține parametrii de comunicare de nivel scăzut, cum ar fi identitatea expeditorului și destinatarului, și identificatori unici.
LCA –uri Ad Hoc; Astăzi, multe aplicații bazate pe agent cu agenți colaborativi folosesc un set de preformative ad hoc în limbaje ad hoc de comunicare a agenților. Strict vorbind, multe altele nu au LCA explicit – ele comunică prin depozitare de informații într-o structură de date comună (împarțită). Aplicațiile care au propriile lor LCA –uri posedă un subset limitat de preformative, similar cu cel al KQML-ului, dar sunt de obicei specificate diferit față de echivalentele lor în KQML și au diferite protocoale. De exemplu, Open Agent Architecture are un LCA numit Inter-agent Comunication (ICL) (Limbajul de comunicare între agenți). Acesta posedă trei tipuri de acțiuni – rezolvă (o întrebare), fă (o cerere) și expediază (o aserțiune la o structură de date comună). Neajunsul acestor abordări Ad Hoc este că face greu, dacă nu chiar imposibil, să aibă loc interoperare între aplicații bazate pe agent realizate de diferiți dezvoltatori. De aceea se pare obligatoriu să avem un standard LCA de tip KQML.
1.3.2 Limbaje pentru construirea aplicațiilor agent
Există multe limbaje curent disponibile aplicațiilor prototip bazate pe agent. Totuși, acestea nu le garantează ca fiind limbaje care facilitează construcția agenților. Wooldridge și Jennings (1995) spun că: „… prin limbaj pentru agent, ne referim la un sistem care permite să se programeze sisteme hardware și software în termenii unor concepte dezvoltate de unele teorii ale agenților. Ne așteptăm ca un astfel de limbaj să includă niște structuri corespondente unui agent“.
Tabelul următor furnizează o listă de limbaje disponibile, nu este nici pe departe completă; multe din aceste limbaje fiind folosite pentru cercetare. Trebuie menționat că doar o parte din limbajele amintite în tabel sunt potrivite pentru dezvoltarea sistemelor multi-agent colaborativi din cauză că agenții colaborativi au de obicei o structură mult mai complexă dacât cei de interfață, de informație sau cei mobili. Ei tind să necesite nu numai limbaje pentru dezvoltarea lor dar și arhitecturi sau platforme. Alternativ, ei sunt construiți „de la zero“ în limbaje de a treia generație cum ar fi C++, Smaltalk sau Prolog.
Tabelul 1.1. Limbaje de programare agenți
De obicei, limbajele orientate pe obiect cum ar fi Smaltalk, Java, C++, se pot folosi mult mai ușor la construcția de sisteme bazate pe agent. Aceasta din cauză că conceptul de „agent“ nu este așa de departe conceptual de „obiect“ – agenții împart anumite proprietăți cu obiectele cum ar fi încapsularea, și, frecvent, moștenirea și trimiterea mesajelor. Totuși agenții diferă de obiecte prin polimorfism. Obiectele răspund la mesaje prin invocarea anumitor funcții pe care le implementează – polimorfismul nu ne asigură că ele înțeleg același mesaj în același fel. Prin contrast, agenții trebuie să aibă un LCA comun pe care toți să-l înțeleagă.
1.3.3. Ontolologii pentru aplicații agent
În orice aplicație agent este înrădăcinată una sau mai multe ontologii specifice domeniului de aplicare. În acest conext putem definii ontologia ca: „… studiu fizic asupra ce există“. În contextul AI, ontologia este preocupată cu ce categorii se pot cuantifica cu folos și cum aceste categorii se conectează între ele. În cazul agențiilor software, ontologia comună conține termenii care vor fi folosiți pentru comunicarea între agenți, și cunoștințele legate de acești termeni. Aceste cunoștințe conțin definiția termenilor, atributele lor, și relațiile dintre termeni și constrângeri asociate. O ontologie partajată este un sine qua non pentru orice comunicare între agenți care folosește un LCA cum ar fi KQML, pentru că fără ea (ontologia), LCA-ul este doar o sintaxă – mare parte din semantică derivă din ontologia domeniului. În contextul agenților ontologiile sunt clasificate în trei categorii – standard, ad hoc, și globale.
1.3.3.1 Ontologiile Ad Hoc.
Ca și în cazul LCA-urilor ad hoc, majoritatea agenților conțin ontologii definite implicit. Sunt implicite deoarece sunt realizate în faza de concepere a agentului. De aceea, un agent creat pentru domeniul „business process management“, tratează vocabularul domeniului „business process“ în structurile sale. Mai mult, cunoștințele implicate de acești termeni sunt de obicei legate implicit de scopul și de mecanismele de coordonare ale agenților. Într-o astfel de abordare aplicația își definește propriile ontologii limitate la domeniul de interes. Există foarte mică posibilitate ca agenți realizați pentru a acționa în același domeniu, să zicem „business process management“, să interopereze – chiar dacă folosesc un LCA standard. Imposibilitatea de cooperare provine din cauză că ontologiile a două sisteme agent diferite vor fi aproape sigur diferite (designer diferiți). O altă problemă ce apare este scalabilitatea. Dacă un prototip se dorește să fie extins peste domeniul „BP management“, astfel încât să includă domeniul managementului rețelei, ar fi necesară o reconstituire totală a agentului original ca să se acomodze cu cele două tipuri de ontologii.
1.3.3.2 Ontologii standard
Pentru a se contracara limitările ontologilor ad-hoc s-au propus ontologii standard care să fie partajate între diferiți dezvoltatori de agenți software. O astfel de ontologie este necesară pentru a contracara lipsa de consistență dintre două baze de cunoștințe separate, fiind vorba de diferența de vocabular și mai important, problemele de semantică.
KIF, acronim pentru Knowdlege Interchange Format (formatul de interschimbare a cunoștințelor) încearcă să rezolve aceste probleme de semantică. Acesta furnizează o „interlingua” pentru ca bazele de cunoștințe să interopereze. Altfel spus pentru ca doi agenți cu baze de cunoștințe diferite să poată interopera, bazele interne de cunoștințe trebuie transformate în KIF, care să fie limbajul comun de reprezentare. Având n baze de cunoștințe, folosirea unei „interlingua” necesită cel mult 2*n convertoare de format, fața de n(n-1) convertoare care ar fi altfel necesare.
Figura 1.3. Otolingua
O altă abordare în efortul de standardizare este ontolingua care este o unealtă de traducere intependentă de domeniu, care nu are nimic de a face cu sarcina intelectuală de a defini ontologii. Ontolingua este un limbaj formal și declarativ care poate fi utilizat să se reprezinte ontologii la nivel de cunoștințe (Newwll, 1982). Partajarea cunoștințelor este posibilă deoarece aceeași specificatie Ontolingua, poate fi translatată în diferite limbaje simbolice. O ontologie, specifică unui planificator, trebuie să includă descrieri pentru: obiect, evenimente, resurse, constrângeri, și planificatorul repartizează resurse pentru obiecte și evenimente. Refolosirea are loc atunci când aceeași ontologie este folosită în diferite aplicații sau de diferiți utilizatori. Declarațiile și axiomele ontolingua sunt scrise în notația KIF extinsă și propozițiile din limbajul natural nu sunt parsate.
1.3.3.3 Ontologii globale
Au fost înregistrate câteva încercări de definire și generare a ontologiilor globale în locul ontologiilor interpretate pe un anumit domeniu; ontologiile globale tind spre general. Asemenea ontologii ar putea furniza substraturi neprețuite pentru aplicațiile bazate pe agent. WorldNet este o baza de data on-line cu peste 166.000 de forme de cuvinte. De exemplu cuvântul „back” este interpretat ca un substantiv în anumite contexte, ca un verb în altele și chiar ca un adjectiv sau adverb în altele. Fiecare din aceste contexte sunt introduse separate în WorldNet. WorldNet include, de asemenea, și relatii semantice între cuvinte și între sensuri ale cuvintelor; de asemenea, conține și relații semantice ca: sinonomie, antonomie etc. trebuie subliniat că WorldNet nu este realizat pentru aplicațile agent. Totuși se poate folosi ca și complement pentru aplicații agent. Alte încercări de a fi definite ontologii globale se pot aminti CYC început ca proiect în 1984 cu scopul de a captura și reprezenta cunoștințele de bun-simț; proiectul Protege a cărui dezvoltare a început în anul 2000 și care prin flexibilitatea și modul de realizare(posibilitatea ușoară de modificare prin intermediul plug-in-urilor) până în acest moment are peste 20.000 de utilizatori.
1.3.4 Tehnologi pentru suport calcul
În paralel cu dezvoltările făcute în domeniul limbajelor, ontologilor și protocoalelor, s-au realizat progrese și în domeniul tehnologiilor de suport de calcul care facilitează designul și implementarea aplicațiilor bazate pe agent. Astăzi, clienți, care sunt de obicei PC-uri cu interfețe grafice sophisticate care interacționează cu programe server și care gestionează resurse împărțite; aplicațile server, de obicei, gesionează baze de date.
Un punct cheie în această arhitectura client/server este idea de autoconducere prin implementarea sistemelor software agent. Motivațiile pentru sistemele multi-agent, sunt:
– să rezolve probleme care sunt prea complexe pentru a fi gestionate de un singur agent și din cauza limitării resurselor este riscant să sa folosească un sistem centralizat.
– să permită interconectarea și interoperarea între sisteme diferite cum ar fi sisteme expert și sisteme de suport de decizie.
– să intensifice modularitatea, viteza, încrederea, flexibilitatea și refolosirea la nivel de cunoștințe.
Modelul client/server se apropie de decentralizarea asociată tehnologiilor bazate pe agenți și de aici rezultă că arhitectura client/server furnizează un mediu normal în care să se dezvolte aplicațiile agent.
1.3.4.1 Agenți și obiecte distribuite
Obiectele distribuite permit împachetarea componentelor software împreună cu interfețe bine definite, care oferă multe avantaje. Astfel noi sisteme informationale pot fi construite asamblând diferite componente, cât timp interfețele se potrivesc una cu alta. În al doilea rând componentele sau obiectele sunt portabile – pot rula pe diferite sisteme de operare cum ar fi OS/2, Macintosh, sau Unix. În 1989 un consorțiu de vânzătri de obiecte s-au unit și au format OMG – Object Managenemt Group (Grupul de managenat al obiectelor). Acest grup de lucru a definit standarde și arhitecturi care permit ca componentele obiect scrise de diferiți vânzători să interopereze prin rețele sau sisteme de operare. Asfel se constată ca un al treilea avantaj al obiectelor distribuite este interoperabilitatea. Cheia interoperabilității este „object bus”, sau ORB – Object Request Broker. ORB-ul permite clienților (obiectelor) să facă cereri și să primească răspunsuri, static sau dinamic, de la alte obiecte care se comportă ca servere. Clienții nu cunosc mecanismul de comunicare la nivel scăzut care este implicat. Specificațiile arhitecturii se numesc CORBA – Common Object Request Broker Architecture și primul set de specificații CORBA a fost aprobat în 1991. În Decembrie 1994 a fost aprobat CORBA 2.0 care permite interoberabilitatea între ORB-uri furnizate de diferiți vânzători. Cheia pentru COBRA este Limbajul de definire a interfețelor – Interface Definition Language (IDL). IDL este un limbaj declarativ care permite definirea API-urilor (Aplication Program Interfaces). Limbajul de definiție a IDL-ului permite definirea de obiecte, a atributelor lor, a metodelor pe care le exportă, și a parametrilor acestor metode. IDL nu are structuri sau variabile de control și împreună cu ORB constituie “object bus”. Obiecte scrise în diferite limbaje de programare și împachetate binar pot avea interfețe IDL, astfel încât să poată interopera prin metode. Ideea este că, obiecte scrise în Cobol, Lisp, C++ legate la ORB pot interopera în diferite moduri client/server. Clienții nu trebuie să știe unde sunt depozitate obiectele distribuite și sub ce sistem de operare rulează. Aceasta este o dezvoltare importantă, chiar și în calculul client/server. Astfel se permite ca un obiect de tip workflow de pe un server din București să interopereze cu un obiect de tip „customer business process” din Sibiu. Ținta OMG-ului este să creeze un mediu colaborativ client/server bazat pe componente. Ce are aceasta de a face cu agenții? Aceste tehnologii și standarde mature permit ca și calculul să fie într-o continuă descentralizare. Aceste arhitecturi descentralizate furnizează un mediu pentru construcția de agenți. Acest lucru va furniza multe din serviciile de bază necasare pentru construcția aplicaților agent.
1.4. Coordonare în sisteme multi agent
Coordonarea este un proces necesar dacă se urmărește crearea unei echipe care să acționeze în mod coerent – ceea ce înseamnă coerență și omogenitate în acțiunile comune. În urma coordonării echipelor de agenți se obțin o serie de avantaje cum ar fi:
prevenirea haosului – în cazul descentralizării sistemele bazate pe agent pot sa atingă un comportament anarhic foarte repede dacă nici un agent nu mai are o viziune globală a punctului în care se află față de scop sau nu știe ce se întâmplă cu coechipierii;
constrângerile globale – în mod normal există contrângeri globale pe care un grup de agenți trebuie să le respecte pentru atingerea scopului;
expertize distribuite, resurse sau informație – agenții pot avea diferite capabilități și cunoștiințe specializate în același fel precum medicii pediatrii, cardiologii sau neurologii. În mod alternativ, ei pot avea diferite surse de informare, resurse, responsabilități limitări, etc. În asemenea scenariu, agenții trebuie sa fie coordonați în același fel precum diferiți medici muncesc împreună pentru a trata un pacient;
dependențele dintre acțiunile agenților – scopurile agenților sunt în mod frecvent interdependente. Când asemenea interdependențe există activitățile agenților trebuie să fie coordonate;
eficiența – chiar dacă există posibilitatea funcționării independente, informația descoperită de un agent poate fi de un real folos unui alt agent și în acest fel se poate rezolva o problemă mai repede.
După cum am văzut, coordonarea nu este numai o grijă a cercetătorilor din domeniul agenților. Odată cu apariția tehnologiilor de calcul distribuite: client / server , WWW; Internetul, sistemele deschise, componentele autonome sau părți din aceste sisteme distribuite, care sunt similare agenților în sistemele bazate pe agent trebuiesc să fie coordonate.
1.4.1 Organizare
Acesta este cel mai simplu scenariu care exploatează structura organizațională a priori definind responsabilitățile implicite, capabilitățile, conectivitatea și fluxul de control al agenților. Acest mod oferă un „framework” pentru activități și interacțiuni prin definirea de roluri, căile de comunicare și relațiile de autoritate. Organizațiile ierarhice folosesc în număr mare tehnicile clasice de coordonare „master – slave” sau „client – server”, folosite în mod tipic pentru planificare sarcini (taks) și alocare de resurse printre agenții „slave” de către agenții „master”. Această tehnică este implementată în două feluri.
Agentul „master” planifică și distribuie fragmente ale planului la agenții „slave”. Agenții „slave” pot sau nu să comunice între ei, dar trebuie sa raporteze rezultatele agentului „master”. În acest caz , agentul „master” are autonomie întreagă cu respect față de agenții „slave”, iar agenții „slave” au numai autonomie parțială cu respect față de agentul „master”.
Negocierile „blackboard” exploatează arhitectura clasică blackboard pentru a oferi o bază de coordonare. În această schemă sursele cunoștințelor „blackboard” sunt înlocuite de agenți care pun informație și preiau informație de pe „blackboard”. Agentul master organizează citirea și scrierea de sau pe „blackboard”.
Aceste strategii sunt utile unde există relații de genul master-slave în sistemul multi-agent modelat. Acest gen de control, în extremele sale, militeză împotriva tuturor beneficiilor ale SAM – viteză, încredere, concurență, robustețe. Atunci când o tehnică de coordonare ca master-slave este utilizată, designer-ul trebuie să se asigure că agenții slave au granularitate potrivită pentru a compensa supraalocarea ce rezultă din distribuirea scopurilor. O distribuire trivială sau task-urile mici pot fi mai costisitoare decât executarea lor într-o singură locație.
1.4.2 Decompoziția
O tehnică clasică de coordonare a task-urilor și de alocare a resurselor utilizată de sisteme multi-agent printre agenți este decompoziția. În această abordare care presupune o structură descentralizată, agenții pot juca următoarele roluri: manager care decompune problema în sub-probleme caută executanți pentru a le rezolva și monitorizează soluția finală și executant care realizează sub-task-ul – aceștia în mod recursiv pot deveni manageri și să continue descompunerea sub-task-ului și sub contractarea sa către alți agenți. Managerii localizează executanții printr-un proces de ofertare care decurge după cum urmează:
a) managerul anunță task-ul
b) executanții analizează task-ul cu respect asupra abilităților și angajamentelor lor
c) executanții ofertează managerii
d) managerul evaluează ofertele primite, selectează un executant și îi oferă task-ul
e) managerul așteaptă rezultatul contractului.
Aceasta schemă este complet distribuită unde un nod poate fi simultan manager sau contractor. Descompunerea task-urilor este o strategie de coordonare de nivel superior care oferă o cale de distribuire a task-urilor și un mijloc de organizare personală a grupurilor de agenți. Acest mod de organizare este util atunci când scopul are o natură ierarhică bine definită sau există posibilitatea descompunerii într-un număr de sub sarcini acceptabil.
Avantajele acestei tehnici referă alocare de sarcini dinamică prin ofertare personală care duce la înțelegeri mai bune, agenții pot fi introduși și retrași în mod dinamic din sistem, oferă un mecanism de balansare fiind un mecanism de încredere pentru control distribuit și recuperare în caz de eroare.
1.4.3 Planificare MaS
Pentru a evita acțiuni sau interacțiuni inconsistente sau chiar conflictuale, agenții construiesc un plan multi-agent care detaliază toate acțiunile și interacțiunile viitoare necesare pentru atingerea scopurilor și „interleave execution with more planning and re- planning”. În planificarea multi-agent centralizată, există în mod uzual un agent coordonator care la primirea tuturor planurilor locale sau parțiale de la agenții individuali, le analizează pentru a identifica potențiale inconsistențe și interacțiuni conflictuale. După aceea agentul coordonator încearcă să modifice aceste planuri parțiale și să le combine într-un plan multi-agent unde interacțiunile conflictuale sa fie eliminate. În planul final multi-agent comenzile de comunicare sunt introduse pentru a sincroniza interacțiunile agenților. Când doi agenți au un conflict ei formează un grup de conflict și inițiază un proces de negociere. În planificarea multi-agent distribuită, iddea este de a oferi fiecărui agent un model cu planurile celorlalți agenți. Agenții comunică pentru a putea să își constriască și actualizeze planurile lor individuale cât și modelele altor agenți până când toate conflictele sunt eliminate.
În planificarea multi-agent indiferent de domeniu de aplicare agenții trebuie să proceseze și împartă cantități substanțiale de informație; rezultă ca este nevoie de mai multe resurse pentru calcul și comunicare față de alte abordări. Tehnica de planificarea multi-agent centralizată împărtășește multe dintre limitările tehnicii de coordonare master-slave. În mod natural, coordonarea în planificarea multi-agent distribuită este mult mai complexă decât cea în formă centralizată deoarece nu orice agent poate avea o vedere de ansamblu a sistemului distribuit. Deoarece coordonarea în unele tehnici de planificare multi-agent existente este un proces gradual, tehnica se poate aplica cu succes doar pentru domenii care asigura un mediu propice.
1.4.4 Negocierea
O definiție succintă și generală a termenului de negociere a fost dată de Bussmann și Muller (1992): „… negocierea este procesul de comunicare al unui grup de agenți pentru a ajunge la un consens mutual asupra unei probleme.”
Pentru a negocia efectiv, agenții trebuie să înțeleagă necesitățiile, părerile, dorințele și intențiile altor agenți, astfel pentru ca o negociere să fie posibilă avem nevoie de un set minim de caracteristici:
a) reprezentarea și menținerea modelului de păreri
b) înțelegerea părerilor altor agenți
c) influențarea intențiilor și părerilor altor agenți
Aceste tehnici duc la utilizarea a diferitelor tehnici din inteligența artificială și matematică cum ar fi logica, „case-based reasonig (CBR)”, ”belief revisions”, ”distributed truth maintanence”, planificare multi-agent, ”model based resoning (MBR)”, optimizare și teoria jocurilor.
Tehnicile de negociere pot fi clasificate în 3 categorii :
– negocierea bazată pe tehnici din teoria jocurilor;
– negocierea bazată pe baza de plan;
– negociere bazată pe abordări inspirate din AI sau comportamenul uman.
1.4.4.1 Negociere bazată pe teoria jocurilor
Prin utilizarea tehnicilor din teoria jocurilor se propune o abordare care încearcă obținerea coordonării într-un sistem de agenți raționali și autonomi fără a utiliza un mecanism explicit de coordonare construit în acești agenți a priori. Conceptele cheie în cadrul abordării negocierii prin teoria jocului sunt: – utilitatea acțiunii, un spațiu al afacerii, strategii și protocoale de negociere. Utilitatea este definită ca diferența dintre necesitatea de a atinge un scop și prețul pentru al atinge. O „afacere” este o acțiune pe care un agent o poate efectua și care are atașată o utilitate. Protocolul de negociere definește regulile care guverneză negocierea incluzând cum și când se termină. Valorile utilității pentru fiecare rezultat al interacțiuni pentru fiecare agent sunt construite într-o matrice „pay- off”, care reprezintă cunoștințe pentru ambele părți implicate în negociere. Procesul de negociere implică un proces interactiv de oferte și contra-oferte în care fiecare agent alege o funcție care îi maximizează valoarea utilității. Există o presupunere implicită că fiecare agent care este în negociere maximizează utilitățile așteptate. La fiecare pas în negociere, un agent evaluează ofertele altora în termenii propriei strategii de negociere.
Negocierea pe baza teoriei jocului nu poate să trateze probleme foarte importante. În primul rând agenții sunt presupuși a fi pe deplin raționali și funcționând ca maximizatori ai utilității folosind strategii predefinite. În al doilea rând, au cunoștințe despre matricea „pay-off”, deci deplină cunoaștere a preferințelor altor agenți – acest lucru nu reprezintă lumea reală unde agenții au doar vedere parțială sau chiar incompletă a propriilor domenii fără a mai vorbi de ale altora. Deasemenea matricea „pay-off” poate deveni foarte mare pentru o negociere ce implică mai mulți agenți și scopuri. În al treilea rând agenții iau în considerare starea curentă pentru a se decide asupra înțelegerii – interacțiunile trecute și implicațiile viitoare sunt complet ignorate. În al patrulea rând agenții sunt considerați a avea modele interne și capabilități identice. În al cincilea rând o mare parte a muncii este adresate negocierii între doi agenți deși munca viitoare este adresata la n agenți. În al șaselea rând este prea puțin probabil ca negocierea bazată pe teoria jocului să fie suficientă pentru situațiile din viața reală (aplicații industriale bazate pe agent pentru diverse situații)
1.4.4.2 Negocierea pe baza unui plan
Alder et al (1989) au investigat înțelegerile negociate și au discutat metode de detecție a conflictului și a rezoluției în domeniul traficului de control în cazul rețelei de telefonie. Ei au impus agenților cunoștințe de planificare în timp ce susțineau cu tărie că negocierea și planificarea sunt foarte strâns legate din cauză ca agenții au nevoie de informație de la alții pentru a putea funcționa mai eficient și efectiv.
Kreifekt și von Martial (1991) propun o strategie de negociere pentru agenții autonomi; ei văd negocierea ca pe un proces în două etape – 1) agenții își planifică activitățile separat, 2) coordonarea planurilor. Coordonarea tuturor planurilor agenților este este realizată printr-un agent separat de coordonare, deși ei au prezentat că acest rol îl poate juca oricare agent. După care prezintă un protocol de negociere pentru stările agenților, tipurile mesajelor și regulile de conversație dintre agenți. Această propunere are de asemenea multe limitări. În general, negocierile bazate pe plan suferă de limitări ale planificării distribuite sau centralizate multi-agent.
1.4.4.3 Tehnici de negociere inspirate din relațiile umane, tehnici AI
Se pare că orice mod de interacțiune umană cere un nivel explicit sau implicit de negociere. De aceea nu este foarte surprinzător faptul că foarte mulți cercetători ai negocierii își iau informațiile din strategiile de negociere umane. Acestea duc la utilizarea a diverse tehnici AI incluzând logica, CBR, ”constrained-directed search” ș.a.. Sycara (1989) propune o abordare în care negocierea este o activitate iterativă și propune un model de negociere generală care să fie aplicat în sisteme multi-agent, multiple- problemă, negocieri singulare și repetitive. Tehnica propusă utilizează tehnica CBR și teoria utilității multicriterială. Aceasta tehnică propune o abordare bazată pe tehnica CBR din convingerea că negociatorii umani acționează pe baza negocierilor anterioare pentru a le fi ghid în cele din prezent și viitor. În absența unor cazuri din trecut se recurge la analiză preferențială bazată pe teoria multicriterială. Sycara a propus și construit un sistem denumit PERSUADER care rezolvă conflictele dintre adversari cu ajutorul a doi negociatori. Agenții pot modifica convingerile, comportamentul și intențiile altor agenți prin persuasiune. Sathi și Fox (1989) arată că negocierea poate fi tratată ca un proces de căutare directă în spațiul soluțiilor folosind operatori de negociere. Ei propun ca negocierea să fie tratată ca fiind compusă din doua faze – o fază a comunicării, unde toată informația este comunicată agenților participanți și o fază de negociere, unde înțelegerile se realizează între indivizi sau în grup. În această abordare se negociază prin relaxarea anumitor conflicte și constrângeri până când se ajunge la o înțelegere. În mod alternativ soluțiile pot fi modificate. Inițial preferințele negocierii sunt modelate ca și constrângeri. Operatori de negociere sunt extrași din studiile negocierii umane și includ operatori care stimulează relaxarea, reconfigurarea și compunerea, operatori care sunt folosiți pentru a genera noi constrângeri.
Aceasta abordare a fost utilizată în construirea unui sistem pentru alocarea de resurse care „dă rezultate mai bune decât experții.” Principala limitare a acestei abordări iterative provine din faptul că selectarea relaxării pentru a obține un compromis este o problemă majoră deoarece nici un criteriu nu este definit și de aceea agenții pot fi prinși cu ușurință într-o buclă infinită de schimbare de oferte.
1.4.5 Holoni
Pentru coordonarea echipelor de agenți dar și ca arhitectură a unui agent complex Candea et all (2000) a adoptat paradigma holonică folosită în sistemele de producție holonice (HMS – holonic manufacturing system), bazat pe conceptul de holon definit „ca blocuri de construcție autonome și co-operative a sistemelor de producție pentru transformarea, transportarea, stocarea și/sau validarea informației și obiectelor fizice”. Arhitectura a fost testată în cadrul RoboCup1 iar în cadrul HMS, fotbalul poate fi văzut ca un sistem multi nivel în timp real, ce necesită o abordare multi agent și o expunere de nivel corporație ca o structură potrivită pentru aplicarea unei paradigme de producție.
Conceptul de holon s-a dovedit a avea un mare succes în planificarea proceselor industriale, crescând flexibilitatea proceselor decizionale. Conceptul a fost propus de filosoful ungur A. Koestler (1978) și explică importanța ierarhiei sistemului. O holarhie este o ierarhie a blocurilor de construcție auto regulate (holoni), care operează: (a) ca entități autonome în supraordonarea cu părțile lor, (b) ca părți dependente în subordonarea cu controalele de la nivele mai înalte, (c) în coordonarea cu mediul lor local. Forța unei organizații holonice, sau a unei holarhii, constă în faptul că permite construirea unor sisteme foarte complexe, care sunt totuși eficiente în folosirea resurselor, foarte rezistente la zgomote (atât interne cât și externe), și adaptabile la schimbările în mediul în care rulează.
Cum a fost menționat mai sus paradigma holonică trebuie să fie în mod potrivit combinată cu o abordare MaS pentru a realiza o echipă de fotbal pentru liga de simulare a RoboCup. O abordare MaS este critică pentru echipele de fotbal deoarece, pe lângă scopul individual al fiecărui agent, obiectivele globale sunt stabilite prin implicarea unora sau tuturor grupurilor de agenți în vederea atingerii lor; MaS sunt moduri naturale de a crea și implementa sisteme holonice software precum și o mulțime de tipuri de aplicații relaționate, în timp ce paradigma holonică permite o mai bună modelare a sistemelor multi-nivel (incluzând ansamblu jucător – echipă – antrenor) și crește flexibilitatea sistemelor decizionale.
Una din caracteristicile importante ale holarhiei este capabilitatea de a se modifica singură, de a crea holarhii temporale; fotbalul este foarte dinamic: nu doar că fiecare echipă vine cu propriul stil și strategie de joc, dar de asemenea fiecare fază a jocului are anumite particularități. Holarhiile oferă un echilibru între cele două modele de decizii menționate anterior: controlul hierarhic (fix, static, pre-definit) și cel mixt (autonom, descentralizat, flexibil).
PMA/KUleuven a dezvoltat o arhitectură de referință pentru producția sistemelor de control holonice. Această arhitectură este numită PROSA: product-resource-order-staff care se referă la tipurile de compoziții a holonilor. Holonul resursă conține o parte fizică, și anume o resursă a sistemului de producție, și o parte de procesare a informațiilor, care controlează această resursă. Produsul holon, menține cunoștințele de producție și procesare pentru a asigura producția corectă a produsului, cu calitate adecvată.
Holonul de comanda reprezintă o sarcină în sistemul de producție. Este responsabil de executarea corectă și la timp a lucrării stabilite. Holonul de personal este implementat să asiste ceilalți trei holoni la executarea lucrărilor lor. Bazat pe PROSA (tabel 7), s-a dezvoltat o abordare adaptată echipelor de fotbal. Holarhia este structurată le cinci nivele (RopoCup, antrenor, echipă, jucător, componentă), fiecare dintre ele conținând holonii specifici pentru fiecare categorie ( produs, resursă, comandă, personal ).
Arhitectura holonului, este conceptualizată și implementată ca o arhitectură agent pe trei nivele (nivelul holarhiei, stratul deliberativ și stratul reactive). Stratul holarhic conține mecanisme pentru a crea planuri combinate cu alți holoni/agenți. Pentru a atinge flexibilitatea necesară, conține trei sub-straturi: integrare (pentru colaborarea verticală cu straturi adicacente ex. pentru ca un agent situat în stratul echipă să colaboreze cu un agent situat în straturile antrenor sau/și jucător), cooperare (pentru integrare orizontală a holonilor/agenților situați pe același strat) și monitorizare (pentru modificarea holarhiei – ei). Stratul deliberativ conține mecanisme capabile să trateze cu planurile locale și planurile globale. În sfârșit, stratul reactiv conține dovezi care reprezintă modelul lumii holonului/agentului.
Mecanismul de programare folosit pentru a implementa aceste caracteristici sunt multi- threading–ul intensiv și proprietățile dinamice. Firele de execuție reprezintă entitatea atomică, secvențială, asincronă și dinamică a programării concurente. În ciuda utilităților lor în fazele de dezvoltare (conceptualizare, design etc.) toate conceptele sunt entități funcționale care pot fi implementate ca fire de execuție. Negocierea dintre entitățile conceptuale (agenti, holoni sau chiar oameni care iau decizii cum ar fi antrenorii) trebuie să fie reflectată în structura multithread.
Proprietățile dinamice sunt vitale pentru a construi și a modifica holarhiile. De exemplu, dacă rangul holonilor jucător, este setat cu două tipuri de prioritate: cea statică este atribuită fiecărui jucător la începutul jocului bazându-se pe rolul lui în echipă sau/și în joc; cea dinamică este dobândită on-line în timpul jocului, atribuită de către liderul căpitanul echipei sau de către antrenor. Într-adevăr, prioritățile nu sunt doar un mecanism de implementare (dedicat în primul rând sporirii eficacității), dar, de asemenea, joacă un rol conceptual. În contextul RoboCup, prioritățile nu sunt folosite doar ca să exprime holarhiile, ci și ca euristici. În plus, prioritățile sunt aplicate cu o granularitate fină și sunt frecvent schimbate dinamic în așa fel încât ele devin o unealtă potrivită pentru a optimiza implementarea de nivel scăzut.
Pentru a se evalua această arhitectură autorii au comparat rezultatele a două echipe care se bazau pe aceleași biblioteci pentru îndemânări, algoritmi de poziționare și așa mai departe. Cea mai importantă schimbare a fost la nivelul decizional, la modul în care agenții formează o decizie. Timpul necesar pentru a o asemenea sarcină a fost îmbunătățit cu 8-10% în general, depinzând de sarcină. Acuratețea deciziei, de asemenea crește în medie cu 2-5%. În prezent, slăbiciunea implementării este algoritmul pentru negocierea inter-holonică la toate nivelele (în interiorul jucătorilor și în interiorul echipei).
1.5 Concluzii
Sistemele multiagent au apărut ca o nouă metodologie de abordare a problemelor de organizarea pe scară largă a sistemelor software. Această metodologie oferă un model conceptual care ajută la menținerea constrângerilor, fără de care sarcinile convenționale ale ingineriei software sunt imposibil de realizat. În ultimii ani, sistemele multiagent a fost folosite în diferite domenii ale informaticii și ingineriei și au devenit un instrument versatil care extinde spectrul cercetării în informatică și atrage din ce în ce mai mult atenția către o gamă largă de domenii trecând de la studiul teoretic la practică.
Un agent este o entitate software care caută în mod activ modalități de a-și finaliza sarcinile. Agenții inteligenți au capacitatea de a dobândi cunoștințe prin intermediul proceselor de soluționare a problemelor. Studiul comportării sociale a agenților în știința cognitivă este o parte importantă din domeniul agenților inteligenți. Agenții software, pe de altă parte, se concentreză pe interacțiuni și colaborări pentru a-și atinge obiectivele într-un context care se schimbă într-o manieră de obicei neprevăzută. Necesitatea de a folosi agenți provine din complexitatea sistemelor software de mari dimensiuni, care ridică problemele de design pe care tehnologia convențională nu reușește să le abordeze. De exemplu, agenții mobili au fost propuși pentru a răspunde nevoilor din modelul client/server pentru ca un client să fie capabil să migreze la server pentru a efectua operațiuni pe care alte mecanisme nu le pot gestiona eficient. Într-un sistem dinamic distribuit, agenții cu capatitate de auto-reglare pot simplifica designul arhitectural al sistemului. Designul unui astfel de sistem poate fi extrem de complicat în arhitecturile tradiționale ale modelării orientate obiect.
Modelarea orientată pe agenți aduce o abordare neconvențională designului sistemului, inclusiv în definirea componentelor și în integrarea sistemului. Diferite aplicații pot impune cerințe diferite privind proiectarea și pot duce la diferite tipuri de agenți. Autonomia este o proprietate distinctiva a unui agent. Autonomia presupune capacitatea agentului de a supraviețui într-un mediu în schimbare. Un agent are capacitatea de a simți condițiile și de a lua decizii cu privire la modul în care să reacționeze în consecință. Adaptabilitate presupune existența capacităților de învățare necesare agentului pentru adaptarea deciziilor în funcție de experiența din trecut. Mai mult decât atât, un design orientat agent ar trebui să dezvolte metode și tehnici care îl fac să fie de încredere atunci când apar evenimente neașteptate.
În conformitate cu utilitatea lor, agenții pot fi clasificați ca agenți de colaborare, agenți de interfață, agenți reactivi, agenți mobili, agenții de informații, și așa mai departe. În proiectarea de sisteme mari și complexe, un agent este o abstracție care ajută la proiectarea de componente care abordează diferite aspecte ale unei probleme. Fiecare agent este conceput în paradigma cea mai potrivită pentru a rezolva partea sa de o problemă. Un sistem multiagent este folosit pentru a rezolva o problemă complexă care nu poate fi rezolvată de către o entitate unică a sistemului. Coordonarea comportamentelor agenților independenți este o parte centrală proiectăriia sistemului multiagent. Sisteme multiagent sunt adesea folosite pentru a modela sistemele distribuite slab cuplate cu control descentralizat și alocare de date. În aceste sisteme, agenții de comunicare reprezinta expertiza distribuită pentru rezolvarea problemelor. Agenții au capacitatea de a procesa eficient datele locale și de a comunica cu alți agenți atunci când este necesar în cazul în care sarcinile cu care se confruntă sunt dincolo de domeniul lor de cunoștințe. Sisteme multiagent au fost utilizate într-un spectru larg de aplicații, cum ar fi e-commerce, e-learning, de comunicare, data mining, simulare, robotică, sisteme de transport și de grid computing. Au fost inițiate, de asemenea, studii teoretice în specificațile și rațonamentelor sistemelor multiagent, reprezentarea și prelucrarea cunoștințelor, precum și în științele cognitive.
Sisteme multiagent sunt adesea clasificate în două categorii, în funcție de caracteristicile agenților: agenți auto-interesați și agenții de cooperare. Agenții auto-interesați se bazează pe concepte economice în care un agent este o entitate care încearcă mereu să maximizeze o functie de utilitate adecvată. Această presupunere este larg utilizată în micro-economic și în teoria jocurilor.
Agenții auto-interesați au tendința de a ascunde informațiile pe care le dețin și nu reușesc să reacționeze în cazul în care nu se întrevede nici un beneficiu. Agenții de cooperare sunt construiți astfel încât aceștia să se angajeze într-un comportament cooperativ.
Negocierea este unul dintre subiectele de cercetare cheie pentru sistemele multiagent. Datorită naturii lor, agenții trebuie să cadă de acord și să colaboreze între ei în scopul îndeplinirii sarcinilor comune. Negocierile sunt adesea modelate ca interacțiuni între agenți auto-interesați. În prezent, cercetătorii încearcă să construiască protocoale mai complexe și mai sofisticate bazate pe licitații.
În ultimii ani, inteligența artificială distribuită s-a dezvoltat și diversificat foarte mult, fiind un domeniu de cercetare care înglobează concepte și rezultate din multe discipline, precum psihologia, sociologia sau economia.
Domeniul inteligenței artificiale distribuite se află la granița dintre inteligența artificială și calculul distribuit. La rândul său, inteligența artificială distribuită constă în principal în studiul rezolvării distribuite a problemelor și studiul sistemelor multiagent. O reprezentare grafică a acestor relații se regăsește în figura următoare:
Figura 1.4. Interferența dintre domenii
Majoritatea sistemelor clasice de inteligență artificială sunt statice, arhitectura lor este predefinită, în timp ce sistemele bazate pe agenți se modifică dinamic în timp. Inteligența artificială distribuită studiază probleme legate de proiectarea sistemelor distribuite, interactive.
Diferența principală dintre rezolvarea distribuită a problemelor și sistemele multiagent se referă la faptul că primul domeniu se ocupă de managementul informației, pe când cel de-al doilea studiază managementul comportamentului. Totuși, granița dintre acestea nu este foarte clară. În primul caz, o problemă complexă este descompusă în mai multe subprobleme mai simple care sunt rezolvate separat și apoi rezultatele parțiale sunt combinate pentru a forma soluția finală. În acest sens, se presupune că entitățile care rezolvă subproblemele sunt compatibile.
În sistemele bazate pe agenți nu există asemenea garanții. Agenții pot avea arhitecturi diferite, sau chiar scopuri conflictuale și totuși trebuie să interacționeze. De asemenea, comportamentele individuale sunt mult mai simple decât interacțiunile dintre ei. Utilizarea agenților este justificată în primul rând, de faptul că agenții sunt o soluție pentru administrarea sistemelor complexe. Datorită autonomiei, ei pot acționa în numele utilizatorului, fără să aibă doar funcția unei simple interfețe.
3 Bibliografie
Alder M R, Davis A B, Weihmayer R and Forest R W: „Conflict-resolution strategies for non-hierarchical distributed agents”, in Gasser L and Huhns M (Eds): “Distributed Artificial Intelligence 2”, Morgan Kaufmann (1989)
Agha, G. (1986). ACTORS: A Model of Concurrent Computation in Distributed
Systems. The MIT Press: Cambridge, MA.
Boldur Barbat, Ciprian Candea, Constantin Zamfirescu (2001), Holons and Agents in
Robotic Teams. A Synergistic approach. In proceedings of ENAIS'2001, Dubai, pp. 654
– 660, ISBN: 3-906454-25-8
Bussmann S and Muller J: „A negotiation Framework for Co-operationg Agents”, in
Deen S M(Ed): Proc CKBS-SIG, Dake Center, University of Kele, pp 1-17 (1992)
Ciprian Candea: ’Sisteme bazate pe agenți inteligenți pentru asistarea deciziei’, Referat de doctorat, Institutul de cercetări pentru inteligența Artificială (2010)
C. Oprean, I. Moisil, C. Candea (2002), eUniv:an e-business solution for a university academic environment. In proceedings of 3rd Global Congress on Engineering Education, pp. 363-366, Glasgow, Scotland, United Kingdom, ISBN 0732622018
Cohen P R, Levesque H J: ‘Teamwork. Special Issue on Cognitive Science and Artificial
Intelligence, 5 (4), pp 487-512 (1991)
Cohen P R, Levesque H J: ‘Communicative Actions for Artificial Agents’ in Proceedings of the First International Conference on Multi Agent Systems, San Francisco, Cambridge, AAAI Press, pp 65-72 (1995)
Dix A, Finlay J E, Abowd G D, Beale R: ‘Human Computer Interaction’, Second edition, Prentice Hall Europe London, (1998)
Filip G F: ‘Sisteme suport pentru decizii’, Ed Tehnica, Bucuresti , (2004)
Gorry G, Scott Morton M S: ‘A framework for management information systems’, Sloan
Management Review, 13 (1), p 55 -70, (1971)
Haugeneder, H., D. Steiner și F.G. MCabe (1994). IMAGINE: A framework for building multi-agent systems. În Deen, S.M. (Ed.), Proceedings of the 1994 International Working Conference on Cooperating Knowledge Based Systems – CKBS-94, DAKE Centre, University of Keele, UK
Holsapple C W, Whinston A B: ‘Decision Support Systems. A knowledge based approach‘, West Publishing Co., Minneapolis, (1996)
Johansen R: ’Groupware: Computer Support for Business Teams’, Free Press, New York
(1988)
Keen P G W: ’DSS: translating analytic techniques into tools’, Sloan Management
Review, Spring, p. 33-34, (1980)
Kreifelt T and von Martial F: „ A negotiation framework for autonomous agents”, in
Demazeau Y and Muller J P (Eds): „Descentralized AI2”, Elsevier Science (1991) Lucey T: ’Management Information Systems’, DP Publications Ltd., London (1995)
Marakas G M: ‘Decision Support Systems and Megaputer’, Prentice Hall, Upper Saddle
River, New Jersey (2003)
Patton B, Gifiin K, Patton E: ’Decision – Making Group Interaction’, Harper Collins
(1989)
Power D J: ’What is “real time” decision support?’, DSS News, 3(24), 24th November
2002
Pritsker A B, Sigal C E: ‘Management Decision Making: a Network Simulation
Approach’, Prentice Hall, Englewood Cliffs, N J, (1983)
Saaty T L: ’The Analytic Hierarchy Process: Planning, Priority, Allocation’, New York, Mc-GrawHill (1980)
Shoham, Y. (1993). Agent-oriented programming. Artificial Intelligence, 60(1), p. 51-92.
Sol H G: ‘Processes and Tools for Decision support Interfaces for future developments’, Processes and Tools for Decision Support, North Holland, Amsterdam, p. 1 – 6, (1983)
Sprague JR, Carlson E D: ‘Building Effective Decision Support Systems’, Prentice Hall, Englewood Cliff, New Jersey, (1982)
Sycara K: “Multi-agent Compromise via Negotiation” in Gasser L and Huhns M (Eds): “Distributed Artificial Intelligence 2”, Morgan Kaufmann (1989)
Targett D: ’Analytical Decision Making’, Pitman Publishing, London, (1996)
Tidhar G:’ Team Oriented Programming: Social Structures’, Technical Report 47, Australian Artificial Intelligence Institute, Melbourne, Australia (1993)
Tidhar G, Rao A S, Sonenberg E A: ’Guided-Team Selection’, Proceedings of the Second
International Conference on Multi-Agent Systems, AAAI Press, Kyoto, Japan (1996)
Turban E, Watkins P: ’Integrating expert systems with decision support systems’, MISQ
10 No 2, p. 121-134 (1986)
Turban E, Aronson J E: ‘Decision Support Systems and Intelligent Systems’, Prentice
Hall Inc (Sixth Edition,2001), (1998)
Wooldridhe M, Jennings N: ’Intelligent Agents: Theory and Practice’, the Knowledge
Engineering Review, 10, No2, pp 115-152 (1995)
Wooldridge M: ’Intelligent Agents’, Multiagent Systems, MIT Press (1999)
Tambe M: ’Towards flexible teamwork ’, Journal of Artificial Intelligence Research, vol
7, p. 83 – 124 (1997)
Yonezawa, A. (1990). ABCL – An Object-Oriented Concurrent System. The MIT Press: Cambridge, MA.
Zamfirescu C B: ’Sisteme pentru sprijinirea decizilor de grup’, Referat de doctorat, Universitatea Politehnica Bucuresti (2001)
Zamfirescu C B, Candea C, Staicu M: ’An Agent – based System for Modeling the Searching Process on the Web’, Proceeding of 4rd IEEE International Conference on Intelligent Engineering Systems, IEEE Pres- INES 2000, p.103 – 106, Portoroz, Slovenia, (2000)
Zamfirescu, C.B., C. Candea and S.I. Luca (2001). On Integrating Agents Into GDSS. In F.G. Filip, I. Dumitrache and S.S. Iliescu (Eds.) Preprints of the 9th IFAC / IFORS / IMACS / IFIP/ Symposium on Large Scale Systems: Theory and Applications. Bucharest, Romania, p. 231-236. ICI Press, ISBN 973-98407-8-7
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Sisteme Multi Agentdoc (ID: 119890)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
