Agenți inteligenți și sisteme multi-agent
2.1 Ce sunt agenții?
Majoritatea timpului suntem bucuroși să aprobăm calculatoarele ca fiind niște sisteme supuse, așa numiții ”servitori fără imaginație” [14]. Pentru majoritatea aplicațiilor precum efectuarea plăților această teorie este acceptată, dar trecerea timpului și dezvoltarea aplicațiilor de o complexitate superioară ne atenționează că nevoia sistemelor autonome (sistemele ce pot decide singure execuția anumitor operații cu scopul de a-și îndeplini obiectivele) este într-o continuă creștere. Aceste sisteme sunt numite agenți; agenți ce trebuie să opereze robust în medii nesigure, deschise sau dinamice, unde posibilitatea eșuării este ridicată, sunt numiți agenți inteligenți sau uneori agenți autonomi.
Surprinzător, nu există o definiție unanim acceptată a termenului de agent. Deși este un consens în ceea ce privește faptul că autonomia este noțiunea centrală a unui agent, exceptând acest fapt, sunt puține lucruri general acceptate. Aceasta se datorează faptului ca anumite părți ale unui agent sunt de o importanță mai mult sau mai puțin ridicată în funcție de domeniul de aplicare. De exemplu, pentru anumite aplicații, abilitatea agenților de a învăța este mai importantă în timp ce pentru alte aplicații această caracteristica poate fi nedorită.
Ca și o definiție a agenților putem afirma că: un agent este un sistem de calcul situat într-un anumit mediu, fiind capabil de acțiuni autonome în acesta, cu scopul îndeplinirii obiectivelor construcției [15]. Această definiție nu face referire la agenți inteligenți acest lucru fiind făcut deliberat. Nu se specifică mediul în care acești agenți sunt plasați, iar când vom menționa de autonomia unui agent vom face referință la capacitatea acestora de a acționa fără intervenția umană sau a altor sisteme, având control asupra stării lor interne cât și asupra comportamentului.
Figura 1 ne oferă o privire abstractă asupra unui agent. În multe domenii de complexitate rezonabilă, un agent nu are control deplin asupra mediului. Din punct de vedere al agentului aceasta reprezintă faptul că o acțiune repetată pentru a doua oară poate avea efecte diferite, în această situație aceștia trebuie să fie pregătiți pentru eșec.
În mod normal, un agent va executa un set de acțiuni caracteristice, reprezentând capacitatea efectorială a acestuia. Fiecare acțiune este determinată de anumite precondiții care definesc situațiile posibile în care aceasta poate fi aplicată.
Principala problemă a unui agent, în mod normal, este decizia de a efectua acțiunile astfel ca obiectivele acestuia să fie atinse cu succes. Arhitecturile agenților sunt construite astfel unor sisteme de decizie, unde complexitatea procesului de efectuare al deciziei este afectată de proprietățile mediului.
Figura 1. Un agent într-un mediu: agentul primește stimuli de la mediu și produce acțiuni ce afectează mediul (a se vedea Figura 2.1 din [29]).
Mediul asupra cărora agenții acționează poate fi caracterizat de următoarele tipuri ([29]):
-
Accesibil sau inaccesibil. Un mediu accesibil este acela în care un agent poate obține date complete, exacte și actualizate despre starea mediului. Majoritatea mediilor complexe (de exemplu: lumea reală sau Internetul), sunt inaccesibile. Cu atât cât accesibilitatea mediului este mai mare cu atât construcția agentului care să opereze în acesta este mai simplă.
-
Determinist sau nedeterminist. Mediul determinist este acela în care orice acțiune are un singur efect garantat, neexistând nesiguranțe în ceea ce-l privește după executarea acestei acțiuni. Lumea reală poate fi privită ca fiind un mediu nedeterminist. Un astfel de mediu prezintă o doză mare de complexitate pentru descrierea unui agent.
-
Episodic sau non-episodic. Într-un mediu episodic performanța unui agent este dependentă de un număr discret de episoade. Un exemplu de meniu episodic ar putea fi sistemul de sortare al mail-urilor [16]. Mediile episodice sunt mai simple din punct de vedere al programării, deoarece agentul poate decide ce acțiune să desfășoare bazându-se doar pe episodul curent, nefiind nevoit să se focuseze pe interacțiunile dintre episodul următor și acesta.
-
Static sau dinamic. Un mediu static este acela care rămâne neschimbat înafara acțiunilor agentului, spre deosebire de un mediu dinamic a cărui componență se modifică încontinuu. Lumea reală este recunoscută ca fiind un mediu foarte dinamic.
-
Discret sau continuu. Mediul este discret dacă este caracterizat de un număr fix de acțiuni și percepții. Russel și Norvig oferă ca și exemplu de mediu discret jocul de șah, iar conducerea unui autovehicul ca pe unul continuu.
2.1.1 Structura unui agent
Un agent este caracterizat de o arhitectură și de un program.
Programul, cunoscut de altfel și ca fiind partea internă a agentului, este o funcție ce realizează corespondența dintre percepțiile pe care agentul le primește de la mediu și acțiunile sale. Acest program trebuie să fie compatibil cu arhitectura agentului.
Arhitectura, numită și comportamentul agentului, realizează interfața între percepția dată de senzori și program, rulează programul și asigură efectuarea acțiunilor alese pe măsură ce acestea sunt generate.
Scopul inteligenței artificiale este de a proiecta programe agenți: o funcție care implementează maparea făcută de agent, de la percepții la acțiuni. Toate programele agent vor fi dezvoltate după același schelet – colectează percepții de la un mediu și generează acțiuni. Fiecare program agent va folosi structuri de date interne care vor fi actualizate pe măsura ce noi percepții apar. Folosind aceste structuri de date, procedurile de luare a deciziilor, vor genera acțiuni posibile.
Scheletul unui agent [15]:
Funcția ProgramAgent(percepție): întoarce o acțiune
static memorie // memoria agentului despre mediul în care se află
memorie = ActualizeazăMemorie(memorie, percepție)
acțiune = AlegeCeaMaiBunăAcțiune(memorie)
memorie = ActualizeazăMemorie(memorie, percepție)
întoarce acțiune
Sfârșit funcție ProgramAgent
Un astfel de program agent utilizează structuri interne de date, acestea fiind actualizate pe măsură ce se interceptează noi semnale. Precum se poate observa, programul agent, primește ca și parametru un singur semnal de intrare, sub forma unei percepții asupra mediului înconjurător. La fiecare apel al funcției, memoria agentului este actualizată pentru a procesa noul semnal primit. Pe baza unor proceduri de decizie, se va alege acțiunea optimă, care apoi va fi transmisă arhitecturii agentului cu scopul de a fi executată, mai apoi se memorează faptul că acțiunea respectivă a fost aleasă.
În mod normal un agent inteligent are atașată o funcție de performanță care reflectă eficiența acțiunilor sale. Aceasta este, în mod obișnuit, unică pentru toți agenții care acționează într-un mediu dat. Performanța este de fapt o funcție care asociază unei stări un număr real, reprezentând măsura gradului de succes al stării.
Pe baza funcției de performanță agentul este capabil să rezolve așa numitele situații conflictuale, în care la un moment dat poate opta pentru mai multe stări, niciuna dintre acestea putând fi realizată.
2.1.2 Agenți inteligenți
Anumiți agenți precum termostatul sau daemon-urile sistemului de operare Unix, care sunt plasați primul în mediul fizic, iar cel de-al doilea într-un mediu software care execută acțiuni relativ simple, nu sunt considerați agenți inteligenți.
Ca o definiție a agentului inteligent putem spune ca acesta este un sistem informatic care este capabil de acțiuni flexibile și autonome ce concluzionează cu îndeplinirea obiectivelor pentru care acesta a fost dezvoltat.
Prin flexibilitatea unui agent se subînțelege ([29]):
-
Reactivitate: agenții inteligenți sunt capabili să înțeleagă mediul și să acționeze schimbărilor care se produc în acesta, cu scopul de a-și îndeplini obiectivele.
-
Pro-activitate: agenții inteligenți sunt capabili să arate comportament orientat spre un anumit scop, prin preluarea de inițiative.
-
Abilitate socială: agenții inteligenți sunt capabili să interacționeze cu alți agenți sau cu oameni cu scopul de a-și îndeplini obiectivele.
Pro-activitatea sau comportamentul orientat spre scop. Nu este foarte dificil de implementat un sistem care manifestă un astfel de comportament, deoarece noi implementăm acest comportament de fiecare dată când dezvoltăm o procedură în Pascal, o funcție in C sau o metodă în Java. Acestea se bazează pe anumite precondiții, iar dacă precondițiile sunt îndeplinite când procedurile sunt invocate ne așteptăm ca rezultatul execuției să fie corect, astfel scopul va fi atins. Acest tip de model este potrivit pentru multe medii, cu precondiție pentru sistemele funcționale, în care se prelucrează o anumită dată de intrare x și se produce ca și date de ieșire f(x), rezultatul apelării unui funcții (compilatoarele sunt un bun exemplu de sisteme funcționale). Pentru sistemele nefuncționale comportamentul bazat pe scop nu este acceptabil deoarece se fac câteva presupuneri care limitează aria de aplicabilitate.
Sistemele reactive sau pur-reactive sunt cele care răspund în mod continuu mediului, prezentând un grad ridicat de complexitate pentru obținerea unui raport eficient între comportamentul orientat spre scop și comportamentul reactiv.
Abilitatea socială este de asemenea o caracteristică foarte importantă a agenților inteligenți. În decursul unui zile milioane de calculatoare de pe glob interschimbă mesaje pentru a-și îndeplini scopul. Această abilitate de a schimba șiruri de biți nu poate fi considerată o activitate socială, în comparație cu abilitățile pe care oamenii le prezintă în acest domeniu. Așadar pentru a ne atinge scopurile trebuie să negociem și sa cooperăm cu alți, o astfel de situație similară se regăsește și în cadrul sistemelor bazate pe agenți.
Putem diferenția agenții pe baza mai multor caracteristici ([30]):
-
Învățarea – capacitatea de a învăța din interacțiunea cu mediul extern, din experiență. Ca rezultat al procesului de învățare, agentul poate anticipa viitorul.
-
Cooperarea (comunicarea) – capacitatea unui agent de a interacționa cu alți agenți sau cu omul în scopul îndeplinirii obiectivelor pentru care acesta a fost dezvoltat.
-
Mobilitatea – capacitatea unui agent de a se deplasa în mediul său sau chiar de a se transfera într-un alt sistem.
-
Negocierea – agenții pot în anumite situații să negocieze, prin anumite forme de cooperare, pentru a obține obiectivul pentru care aceștia au fost programați. Această negociere se face după un anumit model.
-
Simularea – agenții pot, în anumite situații, să simuleze un sistem sau un element al unui sistem (de exemplu: un personaj al unui joc sau o bază de date).
2.1.3 Utilizări ale agenților
Aplicațiile dezvoltate cu ajutorul agenților pot fi clasificate din mai multe puncte de vedere precum tehnologia folosită sau domeniul de aplicare. Dacă clasificăm aceste aplicații după domeniul de aplicare putem distinge următoarele categorii:
Aplicațiile industriale au fost printre primele dezvoltate în acest sens și includ o gamă largă de domenii precum:
-
Controlul procesului – este o aplicare naturală a agenților și a sistemelor multi-agent, deoarece acestea sunt ele însele sisteme autonome și reactive. Cel mai popular sistem de acest tip este ARCHON.
-
Procese de fabricație – fiecare întreprindere este organizată în mai multe module sau celule de lucru. Fiecare dintre acest modul are o anumită funcționalitate (obiectiv) precum asamblarea unui produs, împachetarea acestuia etc. [31]
-
Control al traficului aerian – un astfel de sistem este OASIS. În acest sistem agenții sunt utilizați pentru a reprezenta aeronava și diferite sisteme de control al traficului aerian. Un agent este alocat fiecărui avion care intră în spațiul aerian din Sydney, având cunoștințe elementare și obiective corespunzătoare aeronavelor din lumea reală.
Aplicațiile comerciale includ ([31]):
-
Gestionarea informației – având în vedere faptul că diversitatea resurselor informaționale a crescut exponențial s-a ivit nevoia unei gestionării acestei informații. Proiecte dezvoltate în acest sens sunt: Maximis, Newt și The Zuno Digital Library.
-
Comerțul electronic – reprezintă automatizarea activităților umane din zona comerțului. În acest sens, luarea deciziilor comerciale poate fi lăsată în seama agenților.
-
Business Process Management – reprezintă sisteme IT care ajută cu diverse aspecte ale procesului de afaceri. Proiectul ADEPT a fost dezvoltat în acest sens cu scopul de a rezolva această problemă prin vizualizarea unui proces de afaceri ca o comunitate a negocierilor.
Aplicațiile medicale fac parte din industria sănătății. Remarcăm două dintre acestea:
-
Monitorizarea pacienților – folosite pentru gestionarea și monitorizarea pacienților, activitate executată cu preponderență de medici sau asistente medicale.
-
Health care – includ sisteme prototip, care au fost dezvoltate în această direcție, cu scopul de a integra procesul de gestionare al pacienților, proces care de obicei implică mai multe persoane.
Domeniul divertismentului de asemenea poate fi dezvoltat utilizând tehnologii bazate pe agenți. Agenții au un rol bine definit în dezvoltarea acestor aplicații, deoarece aceste sisteme tind să fie populate cu personaje animate semi-autonome, ce în mod normal pot fi considerate agenți. Aici putem regăsi:
-
Jocurile sunt activități ce necesită alte entități pentru a lucra, fie cu sau împotriva jucătorului sub un set de reguli bine definite. Pentru ca un joc să fie suficient de agreat, agenții trebuie sa fie suficient de inteligenți pentru a juca la un nivel decent.
-
Teatru sau cinema interactiv – în aceste tipuri de aplicații utilizatorii joacă un rol similar cu cel al actorilor. Agenții care înlocuiesc utilizatorii în aceste aplicații sunt numiți believable agents.
Dostları ilə paylaş: |