Lucrare de diploma

Download Report

Transcript Lucrare de diploma

Arhitecturi de agenţi
inteligenţi
Coordonator ştiinţific :
Asist. Dr. Gheorghe Silaghi
Absolvent :
Aionese Cristian
2007
Inteligenţa artificială
Inteligenţa artifcială (IA) se ocupă cu realizarea de sisteme care pot să gândească, să
acţioneze ca fiinţa umană sau care pot să gândească şi să acţioneze raţional.
Gruparea sistemelor care fac obiectul inteligenţei artificiale
la fel ca omul
raţional
a gândi
Sisteme care gândesc la fel ca oamenii
Sisteme care pot să gândească raţional
a acţiona
Sisteme care acţionează ca oamenii
Sisteme care acţionează raţional
Cele două direcţii (cea referitoare la procesele cognitive – gândire şi raţionament şi cea
referitoare la comportament) generează două întrebări de bază. În realizarea sistemului de IA ne
interesează gândirea sau comportamentul? Vrem ca sistemul să modeleze activitatea umană sau
să-şi creeze propriul mod de acţiune conform unui standard ideal? În orice caz , ipoteza de bază
este că inteligenţa se referă la acţiuni raţionale. În cazul ideal, un sistem (agent) inteligent va
alege cea mai bună acţiune posibilă într-o anumită soluţie.
Toate problemele inteligenţei artificiale pot fi reunite sub conceptul de agent
inteligent.
Inteligenţa artificială se ocupă cu descrierea şi construirea agenţilor care
primesc percepţii de la mediul înconjurător şi execută acţiuni.
Agenţi inteligenţi
Definiţia cea mai adecvată pentru agenţii inteligenţi aparţine lui Wooldridge şi Jennings.
Ei consideră că un agent inteligent este un sistem hardware sau (mai ales) software, care se bucură de
următoarele proprietăţi :
 autonomie (engl. „autonomy”): agentul operează ca un proces de sine stătător, fără intervenţie
umană directă, şi deţine controlul asupra acţiunilor şi stării sale interne;
 reactivitate (engl. „reactivity”): agentul îşi percepe mediul (care poate fi de exemplu lumea fizică,
un utilizator prin intermediul unei interfeţe grafice, o colecţie de alţi agenţi, Internet-ul, etc.) şi
răspunde prompt schimbărilor petrecute în mediul respectiv;
 proactivitate (engl. „pro-activeness”): agentul nu numai că reacţionează la schimbările mediului său
de execuţie, ci este capabil să manifeste un comportament orientat spre scop, prin preluarea iniţiativei;
 aptitudini sociale (engl. „social ability”): agentul poate interacţiona cu alţi agenţi (sau cu oamenii)
printr-un anumit limbaj de comunicare.
Cercetătorii mai sus menţionaţi apreciază inteligenţa drept capacitatea de acţiune
autonomă flexibilă, unde flexibilitatea presupune reactivitate, proactivitate şi aptitudini sociale.
Caracteristicile agenţilor inteligenţi se pot împărţi în caracteristici interne (autonomia,
reactivitatea, proactivitatea, mobilitatea) şi caracteristici externe (comunicarea, cooperarea). În
ipoteza în care un agent inteligent este capabil să înveţe, să raţioneze şi să planifice acţiuni, el devine
un agent cognitiv.
Agent = arhitectură agent + program agent
În general arhitectura agent (aşa numitul comportament al agentului) face percepţiile
accesibile programului agent (aşa numita parte internă a agentului), rulează programul agent şi
acţionează efectorii pe baza alegerilor de acţiune efectuate de program.
Sisteme multi-agent
Gerhard Weiß apreciază că “inteligenţa este profund şi inevitabil legată de
interacţiune”. Ideea se bazează pe o teorie socio-biologică, în care se presupune că inteligenţa a
apărut datorită nevoii de dezvoltare a interacţiunilor sociale. În consecinţă, sistemele multiagent ar
deţine în mod implicit potenţialul unui comportament inteligent, pe baza interacţiunilor dintre
componente.
Capacităţile de comunicare ale unui agent duc la conceptul de sistem multiagent. Aşadar,
un sistem multiagent este o reţea distribuită de agenţi software, care lucrează împreună pentru a
rezolva anumite probleme care sunt peste capacităţile individiuale ale fiecărui agent în parte. Se
poate spune că un sistem multiagent este o colecţie de habitate unde agenţii sunt rulaţi. Într-un
sistem multiagent, se consideră de obicei că fiecare agent are informaţii incomplete despre
problemă şi mediu. Orice agent considerat individual are o capacitate limitată de calcul, în general
insuficientă pentru a rezolva singur problema.
Sisteme cu un singur agent vs. Sisteme multiagent
Sistemele centralizate pe un singur agent (eng. single-agent) au un singur agent care ia
toate deciziile, în timp ce restul agenţilor se comportă ca şi clienţi. Cu toate că, aparent, sistemele
bazate pe un agent central ar trebui să fie mai simple decât sistemele multiagent, în cazul anumitor
sarcini complexe, se întâmplă chiar invers. Explicatia rezidă în ideea conform căreia controlul
sistemului fiind distribuit între mai mulţi agenţi, fiecare agent poate fi construit mai simplu.
Sisteme cu un singur agent
În general, agentul dintr-un sistem de tip centralizat single-agent se modelează pe el şi
mediul înconjurător. Bineînţeles, agentul face parte din mediu, dar putem considera că un agent are
anumite componente care nu fac parte din mediu. Agentul este o entitate independentă, cu propriile
lui ţeluri, acţiuni şi cunoştinţe. Într-un sistem de tip single-agent, nici o altă entitate de acest gen nu
va fi recunoscută de către agent. Prin urmare, chiar dacă există alţi agenţi în mediul respectiv, ei
vor fi consideraţi ca făcând parte din mediul înconjurător.
Figura 1 : Un framework general pentru sistemele cu un singur agent
Sisteme multi-agent
Sistemele multi-agent reale diferă faţă de sistemele centralizate pe un singur agent, în
primul rând prin faptul că agenţii existenţi într-un sistem multi-agent îşi modelează ţelurile şi
comportamentul în funcţie de ceilalţi agenţi din sistem. Cu toate că această interacţiune ar putea fi
privită ca un stimul din partea mediului înconjurător, interacţiunea (comunicarea) între agenţi este
văzută ca fiind separată de mediu.
Din punct de vedere al agentului individual, sistemele multi-agent diferă faţă de
sistemele centralizate datorită faptului că dinamica sistemului poate fi determinată de alţi agenţi din
sistem. Pe lângă incertitudinea care este prezentă în mediu, şi ceilalţi agenţi pot afecta mediul în
moduri imprevizibile. De aceea, toate sistemele multi-agent pot fi privite ca având un comportament
dinamic.
Într-un sistem multi-agent, pot exista agenţi care au capacitatea de a comunica cu alţi
agenţi, respectiv agenţi care nu pot comunica direct.
Figura 2 : Un scenariu general multi-agent complet
Domeniul pradă-prădător (“Urmăririi”)
Acest domeniu a fost introdus de M. Benda. În decursul anilor, cercetătorii au studiat
diferite variaţii ale formulei originale.
Domeniul “urmăririi” este studiat de obicei cu patru prădători şi o pradă. Domeniul poate
varia utilizând alte numere. Scopul prădătorilor este de a captura prada sau de a o încercui astfel
încât să nu se poată mişca pe o poziţie neocupată. O poziţie de capturare este prezentată în Figura 3.
Dacă spaţiul în care are loc urmărirea are 4 muchii, mai puţin de 4 prădători pot captura prada
prinzând-o într-un colţ sau în apropierea unei muchii. Un alt criteriu posibil de a captura prada este
atunci când prădătorul ocupă poziţia pe care se află şi prada.
Aşa cum este prezentat în Figura 3, prădătorul şi prada se mişcă în interiorul unui spaţiu
format din mai multe pătrate. Deplasarea se face numai spre o poziţie adiacentă, în orice direcţie. Un
alt parametru care este specificat este dacă deplasarea are loc simultan sau în ture, cât de mult spaţiu
pot vedea prădătorii şi dacă aceştia pot comunica.
Captură
Figura 3 : O instanţiere particulară a domeniului urmăririi
Rezolvarea problemei “urmăririi” folosind MAS
Pentru rezolvarea problemei am folosit un sistem multiagent cu agenţi perfect raţionali.
Un agent raţional întruchipează un agent care alege întotdeauna acţiunea corectă, mai
exact acea acţiune care îi va aduce cea mai mare satisfacţie.
Agentul raţional ideal este reprezentat de acel agent care acţionează în sensul
maximizării performanţelor sale, pe baza informaţiilor care le are despre mediu (furnizate de
secvenţa perceptuală) şi pe baza cunoaşterii proprii pe care o are încorporată în structura sa internă.
Implementarea se bazează pe descrierea jocului şi a definiţiilor unităţilor de măsurare a
performanţei care sunt descrise în [Stephens and Merx, 1990].
Pornim de la o grilă dreptunghiulară de 3030 care conţine o singură pradă în mijloc
(Figura 3). Această pradă alege la întamplare între posibilele sale acţiuni: să rămână unde este, ori să
se mişte în una dintre cele patru direcţii (sau mai puţine, dacă unele direcţii sunt blocate). Mişcările
diagonale nu sunt premise. Prădătorii sunt amplasaţi în diferite poziţii aleatoare. La fiecare pas, prada
se mută prima. Apoi se mută prădătorii. Ei se mută unul după altul pentru a evita coliziunea.
Rezultatele posibile pot fi capturarea, impasul (patul) şi fuga/evadarea. Capturarea apare
când cele patru poziţii din jurul prăzii (stânga, dreapta , sus şi jos) sunt ocupate (Figura 4). Dacă
prada încearcă să se mute dincolo de margine/graniţă, se consideră evadare numai dacă doi prădători
ocupă două dintre aceste patru poziţii (Figura 4), în restul cazurilor se socoteşte a fi impas(pat) aşa
cum se poate observa şi în Figura 4.
Figura 4 : Rezultatele posibile a unei simulări
În ceea ce priveşte măsurătorile performanţei, Stephens şi Merx folosesc trei astfel de
măsuratori: Raportul Captură, Raportul Succes, Eficienţa Succesului. Stephens şi Merx îşi
bazează strategiile pe poziţiile de capturare. Poziţiile de capturare sunt cele patru poziţii care
înconjoară prada. Ei examinează trei strategii. Cea cu cea mai slabă comunicare este controlul
local, unde un agent anunţă ceilalţi agenţi când el ocupă o poziţie de capturare. A doua strategie o
reprezintă controlul distribuit. Aici, intenţiile (o poziţie de captură pe care un agent vrea să o
ocupe) sunt transmise înaintea ciclului de mutare. În final, cu controlul central, un agent comandă
ceilalţi agenţi. Dintre cele trei strategii amintite am optat în implementarea mea pentru cea a
controlului local.
În lipsa unui mecanism adecvat care să ghideze interacţiunile, rezultatul categoric al
adunării mai multor agenţi într-un sistem multiagent constituie un haos. Datorită restricţiei impuse
de cele câteva astfel de mecanisme existente cum că pot fi utilizaţi doar agenţii care au fost
special concepuţi pentru aplicaţia pe care ei o rezolvă, a fost definit un mecanism de coordonare
pentru sistemele multi-agent care permite agenţilor dintr-un domeniu independent să acţioneze cu
folos într-un mediu necunoscut. Pentru a învăţa cum să facă acest lucru, li se furnizează semnale
de evaluare ale coordonării, semnale pe care alţi agenţi dintr-un domeniu specific le trimit.
În acest sens am creat un framework a carui idee principală este aceea că un agent care
cunoaşte comportamentul vizat într-un anumit domeniu va direcţiona alţi agenţi, agenţi dintr-un
domeniu independent cu ajutorul semnalelor care reflectă evaluarea (exprimarea în cifre)
coordonării între propriile acţiuni şi acţiunile lor. Mecanismele de coordonare sunt necesare
pentru a permite crearea sistemelor deschise multi-agent.
Scopul realizării unui astfel de framework a fost acela de a testa posibilitatea de
realizare a ghidării unui agent cu semnale de evaluare a coordonării şi, mai mult, de a acumula
experienţă în ceea ce priveşte instanţierea structurii într-un domeniu de probă, problema urmăririi.
Design-ul orientat obiect al framework-ului este ilustrat în Figura 5 şi constă în 5 clase
centrale. Un sistem multiagent care acţionează în acord cu framework-ul semnalului de coordonare
este o instanţiere a unei subclase a clasei Mediu. Poate conţine agenţi care au toţi propriul obiect de
Interacţiune. Obiectul de Interacţiune reprezintă interacţiunea agentului cu mediul înconjurător.
Figura 5 : Diagrama OMT obiect a Agenţilor, Mediului şi Interacţiunii
Un obiect de interacţiune are semnale de intrare şi de ieşire.
Două clase sunt derivate din clasa Agent: Agentul de Semnalare a Coordonării şi
Agentul de Invăţare a Coordonarii. Un Agent de Învăţare a Coordonării învaţă sa-şi coordoneze
acţiunile relaţionând semnalele pe care le primeşte de la Agentul de Semnalare a coordonării cu
mediul inconjurător.
Instanţierea framework-ului la un domeniu
Pentru a creea o instanţiere a framework-ului pentru un domeniu ales(în cazul de faţă
domeniul “urmăririi”), trebuie proiectate următoarele clase:
 O subclasă a Mediului: Această subclasă conţine toate obiectele din mediu. Clasa Mediu se
ocupă de actualizarea obiectelor de interacţiune ale agenţilor prezenţi. Dacă este necesar, metoda
responsabilă pentru acest lucru poate fi supradefinită.
 O subclasă a Interacţiunii:Această subclasă ar trebui să furnizeze metode specifice
domeniului, să acceseze şi să modeleze mediul. De asemenea, stabileşte care obiecte şi informaţii
din mediu influenţează agentul şi ce efect au acţiunile agenţilor. Acest lucru se realizează
alimentând continuu intrările obiectului de interacţiune cu semnale din mediu şi studiind ieşirile
obiectului de interacţiune şi interpretându-le ca acţiuni, ceea ce s-ar putea să afecteze mediul. Acest
mecanism permite agenţilor să interacţioneze cu medii necunoscute. Pe deasupra, obiectele de
interacţiune stochează semnalele de evaluare care au fost recepţionate.
 O subclasă a Agentului de Semnalare a Coordonării: Acesta este de obicei un agent specific
domeniului. Agenţii acestei clase pot evalua situaţia curentă din mediu, şi după cum le spune şi
numele, ei transmit continuu semnale reprezentând această evaluare altor agenţi, de exemplu
vecinilor lor.
Am implementat acest mediu şi un agent care poate evalua coordonarea între el însuşi
şi vecinii lui apropiaţi. Agentul, denumit Prădătorul de Coordonare Maximă compară pur şi
simplu pentru fiecare acţiune posibilă evaluarea coordonării care ar rezulta din ea şi alege
acţiunea care maximizează această evaluare. Astfel, daca aceasta este una corectă, este clar că
acest agent acţionează raţional.
Am proiectat Interacţiunea si un mediu specific problemei urmăririi, design-ul obţinut
fiind cel ilustrat în Figura 6.
Design-ul aplicaţiei mele foloseşte o variantă simplificată a modelului orientat obiect
din Figura 6, utilizând în acest sens subclase ale claselor CoordinationSignalingAgent,
Environment şi Interaction, respectiv subclasele MaxCoordinationPredator, PursuitWorld şi
PursuitWorldInteraction.
Figura 6 : Prădătorul MaxCoordinationPredator poate acţiona în Mediile PursuitWorld şi
poate să trimită semnale de evaluare vecinilor săi.
Un pas important în realizarea unei instanţieri a framework-ului Semnalului de
Coordonare este definirea semnalelelor de coordonare specifice aplicaţiei. Aceste semnale vor fi
folosite în viitor pentru a învăţa agenţii dintr-un domeniu independent cum să-şi aleagă mişcarea
corectă în fiecare situaţie.
Figura 7 : Efectul unui factor de răspândire înalt: unghiurile optime dintre prădători sunt
preferate în detrimentul minimizării distanţei
Figura 7 ilustrează o pradă înconjurată de patru prădători, A1…A4. Agentul de
Semnalare a Coordonării A transmite evaluări ale coordonării dintre el şi vecinii din stânga şi
din dreapta lui. Prin urmare, primeşte evaluări ale coordonărilor din partea vecinilor din stânga,
respectiv dreapta lui. Prădătorul de Coordonare Maximă işi alege mişcările maximizând suma
celor două evaluări primite. În figură, A1 are ca vecini pe A2 şi pe A3 şi de aceea se va muta la
poziţia care maximizează suma :
Ar trebui notat faptul că în unele cazuri, agentul va avea vecini diferiţi într-o poziţie pe
care acesta o cercetează ca pe o posibilă opţiune de mutare. Cum evaluarea coordonării în problema
urmăririi a fost făcută sa se aplice numai la vecinii direcţi, agentul va lua în calcul evaluarea
coordonării unui nou vecin, si nu a vecinului din poziţia curentă.
În domeniul Problemei Urmăririi, doi factori sunt importanţi în încercuirea prăzii:
deplasarea înspre pradă şi înconjurarea ei. De aceea, evaluarea coordonării combină un factor de
distanţă şi un factor de răspândire.
Factorul de distanţă ar trebui să încurajeze minimizarea distanţei dintre prădător şi pradă.
Minimizarea distanţei până la pradă se poate face de către orice individ şi nu necesită
coordonare. Pentru a coordona mutarea înspre pradă, combinăm acest factor cu gradul în care un
agent şi vecinul lui sunt la aceeaşi distanţă de pradă; ideea de bază ar fi că ei ar trebui să se apropie
de pradă gradual. Toţi factorii de evaluare sunt situaţi în intervalul [0..1], 0 reprezentând o evaluare
slabă şi 1 reprezentând una perfectă.
Parametrul Echidistanţă stabileşte greutatea care este atribuită echidistanţei în comparaţie
cu factorul distanţă. Spre exemplu, un parametru de echidistanţă cu valoarea 1 nu ia în calcul distanţa
absolută, ci numai unghiul în care distanţele agentului şi ale vecinului lui sunt la fel, în timp ce unul
de 0.5 ar lua în considerare ambii factori în mod egal. Poziţia unui agent este exprimată în
coordonate polare relative la pradă.
Factorul de raspândire poate fi calculat cu ajutorul unui factor care ia în calcul unghiurile
prădătorilor în comparaţie cu prada. Când agenţii sunt răspândiţi la maximum, unghiurile dintre ei
sunt egale cu:
Semnalul de evaluare a întregii coordonări este o singură valoare care combină factorul
de distanţă şi factorul de răspândire.
Pentru un agent A, A.Φ reprezintă unghiul şi A.d reprezintă distanţa, amândouă
relative la pradă. δ constituie parametrul distanţă (greutatea factorului Dist, relativ la factorul
Spread). ε reprezintă parametrul de echidistanţă (greutatea factorului de echidistanţă, relativ la
factorul distanţă). Emax constituie eroarea maximă a unghiului.
Prădătorul de Coordonare Maximă îşi face alegerea folosind informaţii care sunt
determinate local. Acest lucru sugerează ca agentului nu îi sunt cunoscute intenţiile altor agenţi
(si nici informaţiile în care aceştia sunt implicaţi). Prădătorul de Coordonare Maximă nu
cunoaşte intenţiile altor agenţi, lucru ce l-ar pune în egalitate cu controlul lor local. Cu toate
acestea, dispune de o viziune globală pe care, de fapt, o foloseşte tocmai pentru a stabili poziţiile
celor doi vecini ai săi. Pare greu de comparat valoarea acestei informaţii cu valoarea cunoaşterii
intenţiilor altor agenţi.