Tendinte actuale si viitoare privind tehnologiile de programare
Rezumat- se prezinta unele aspecte privind tehnologia de programare orientata agent si realizarea sistemelor multiagent. Este definit conceptul de agent software, sunt prezentate domenii de utilizare ale agentilor exemplede agenti si limbaje de comunicare între agenti.
Dupa 1990 are loc nasterea si raspândirea celui de-Al Patru-lea Val al progresului determinat de revolutia cunoasterii cu accent pe cunoasterea inconstienta deci cunoasterea bazata pe intuitie, imaginatie si capacitatea creativa a individului.
Este perioada ce va fi caracterizata de realizarea si utilizarea de masini care "gândesc" destinate pe domenii (ex. Economia), în care managementul este privit ca institutie centrala cu difuzarea sa fara frontiere într-o societate informationala globala si în care cunoasterea este exploatata ca resursa economica sub deviza "cream împreuna".
4.1. Inteligenta artificiala distribuita
Datorita facilitatilor de comunicare dincolo de granite, spatiu si timp oferite de reteaua Internet, economia noului mileniu poate fi privita [6] ca o "scena digitala" în care noile afaceri devin e-bussines (afaceri electronice), comertul devine e-commerce (comert electronic), apar noi servicii electronice (e-services) si se nasc noi comunitati de tip virtual (e-communities).
În noua scena cu calculatoare interconectate în retele Internet, Intranet si Extranet suntem "inundati de informatie, dar flamânzi dupa cunostinte" [6] (John Naisbitt "Megatrends. Ten New Directions Transforming Our Lives" viziunea lui Alvin Toffler în "socul viitorului" fiind mult mai sumbra, el avertizând asupra iminentei unui nou "potop", de aceasta data nu de apa, ci de informatii
Apare deci si se dezvolta, în cadrul economiei 525e49f digitale, o noua piata si anume piata digitala sau piata electronica în care trebuie acordata o importanta tot mai mare noii resurse strategice care este informatia, cunostinta.
Principalii actori (componente) ai economiei digitale, în viziunea anumitor specialisti (Turban, s.a., 1999) [6] sunt:
Cumparatorii/consumatorii - milioane de internauti care navigheaza pe Web -potentiali cumparatori ai bunurilor si serviciilor oferite sau promovate pe Internet
Vânzatorii - sute de mii de magazine digitale care îsi prezinta milioane de produse pe Net
Produsele si serviciile digitale - digitalizarea software-ului, a muzicii, a cartilor, ziarelor si revistelor, a filmelor s.a., digitalizarea a nenumarate alte produse si servicii
Companiile creatoare ale infrastructurii digitale - mii de firme implicate în asigurarea hardwareului si software-ului necesar realizarii infrastructurii specifice economiei digitale, care sa permita dezvoltarea comertului electronic
Intermediarii (agentii) - un nou tip de actori care îsi ofera serviciile pe Web, rolul lor diferind de cel al intermediarilor obisnuiti prin aceea ca sunt implicati în crearea si sustinerea pietei "on-line", ei ajutând consumatorii si/sau vânzatorii în derularea tranzactiilor electronice
Serviciile de suport - sute de astfel de servicii sunt disponibile, pornind de la cele care asigura securitatea pâna la cele care furnizeaza cunostinte
Creatorii de continut - sute de companii de tip multimedia orientate pe crearea si
actualizarea continua a propriilor pagini Web, pecum si a unor site-uri pentru
diverse alte firme
Fiecare din componentele economiei digitale prezentate mai sus are un rol bine definit în cadrul pietei digitale / spatiului electronic (marketspace) în care au loc tranzactiile.
Din prezentarea de mai sus se constata aparitia unui nou tip de actor pe scena digitala si anume intermediarul sau agentul.
Se impune astfel distribuirea inteligentei artificiale în vederea realizarii sistemelor de agenti inteligenti sau sistemelor multiagent care pot lua decizii într-o societate populata de agenti inteligenti artificiali sau umani care au propriile lor scopuri.
Distribuirea inteligentei artificiale este justificata [7] din urmatoarele motive:
în mod natural activitatile si cunostintele sunt distribuite spatial
extinderea cooperarii om-masina prin rezolvarea distribuita a problemelor
descompunerea sistemelor complexe si a bazelor de cunostinte aferente în subsisteme cooperative asigurând astfel modularitate si flexibilitate sistemului precum si timp de raspuns optim.
necesitatea integrarii aplicatiilor de inteligenta artificiala deja existente, atât între ele cît si cu componente de prelucrare clasica si sisteme de gestiune a bazelor de date distribuite
în modelarea comportamentului uman în cadrul aplicatiilor de inteligenta artificiala trebuie avut în vedere faptul ca comportamentul uman este un comportament social.
Astfel, apare si se dezvolta o noua tehnologie în realizarea programelor si anume programarea orientata agent AOP (Agent-Oriented Programming), care constituie o modalitate de abordare în constructia sistemelor multi-agent.
4.2. Definirea conceptului de agent
Conceptul de agent poate avea diverse semnificatii în functie de domeniul în care este utilizat.
Astfel existã agenti în diverse domenii ca de exemplu: economie, stiintele sociale, biologie si mai recent, în stiinta calculatoarelor.
Exemple: agent de vânzari, agent de asigurari, agent agricol, agent inteligent, etc.
În stiinta calculatoarelor, termenul de agent este folosit de obicei pentru a desemna o componenta software sau/si hardware care este capabila sa actioneze în interesul utilizatorului, pentru îndeplinirea cu precizie a unor sarcini (Nwana, H. S., 1996).
Din punct de vedere software, un agent este un program care se comportã analog cu un agent uman, fiind capabil sã comunice în mod inteligent cu alti agenti software sau persoane.
Dupa unii cercetatori de la IBM "Un agent este un software care stie cum sa faca lucrurile pe care le-ai face tu însuti daca ai avea timp." (Janca, P.,1995)
Având în vedere multitudinea de roluri pe care le poate avea un agent, este dificil de dat o definitie formala unanim acceptata a agentului si de aceea în cele ce urmeaza se vor prezenta câteva puncte de vedere privind caracteristicile pe care le poate îneplini un agent.
Un agent poate fi definit prin urmatoarele cracteristici de bazã [7]:
Autonomie: opereazã fãrã interventie umanã, are initiative si exercitã control asupra propriilor lui actiuni. Agentul acceptã cereri de la utilizatori dar este cel care decide cum si unde va satisface aceste cereri. Colaboreazã cu utilizatorul sau cu alti agenti pentru satisfacerea cererilor acestora, putând sã propunã modificãri sau sã cearã clarificãri suplimentare.
Reactivitate: percepe mediul în care evolueazã (care poate fi lumea fizicã, un utilizator prin intermediul unei interfete, o colectie de alti agenti sau reteaua Internet) si rãspunde în timp util la schimbãrile sesizate în acest mediu.
Comunicare si abilitate socialã: un agent trebuie sã fie capabil sã se angajeze în comunicãri si dialoguri complexe cu alti agenti sau persoane pentru a obtine informatii sau ajutor în satisfacerea scopurilor.
În domeniul inteligentei artificiale, conceptul de agent presupune si alte caracteristici cum ar fi: notiuni mentale (pãreri, dorinte, obligatii, optiuni), rationalitate, adaptibilitate si învãtare cu mentiunea ca nu existã agenti inteligenti care sã îndeplineasca toate aceste caracteristici, însa cei mai multi cercetãtori recunosc cã cele amintite ar fi caracteristicile definitorii ale unui program agent fatã de un program obisnuit.
Principalele caracteristici pe care le au majoritatea agentilor software care se comercializeaza la ora actuala (numiti si agenti simpli sau slabi) [6] sunt:
Autonomie - agentul opereaza sau realizeaza sarcini fara interventia directa a omului sau a altceva
Comunicare - abilitatea de a interactiona cu alti agenti sau persoane prin intermediul unui limbaj de comunicare specific agentilor
Reactie - capacitatea de a reactiona în mod selectiv la schimbarile din mediu (monitorizând în permanenta evenimentele, agentul stie exact ce sarcina trebuie sa execute la aparitia unui anumit eveniment)
Initiativa - abilitatea de a nu reactiona doar ca raspuns la mediu, ci din proprie initiativa
Continuitate în timp - spre deosebire de programe, care se termina când procesarea este încheiata, agentul continua sa ruleze (fie si numai în backgroud, monitorizând continuu evenimentele care îi vor declansa actiunea)
Orientare spre un anumit scop - agentul actioneaza astfel încât sa-si îndeplineasca scopul, în interesul utilizatorului; sunt cazuri în care un agent poate chiar sa modifice telurile sau sa le stabileasca de unul singur.
Caracteristici suplimentare:
Mobilitate - capacitatea de a migra de la sine de la o aplicatie la alta
Bunavointa - se presupune ca agentul nu are scopuri conflictuale si ca orice agent întotdeauna încearca sa faca ceea ce i se cere
Inteligenta - capacitatea de a învata, de a-si creste performantele în timp
Adaptabilitate - abilitatea de a se ajusta/adapta singur la obiceiurile, metodele de lucru si preferintele utilizatorului
Colaborare - posibilitatea de a lucra împreuna cu alti agenti pentru îndeplinirea unui scop comun
Versatilitate - posibilitatea de a se angaja în sarcini diferite
Personalitate - capacitatea agentului de a manifesta atribute specific umane cum ar fi: cunostinta, crez, intentie, obligatie etc. Exista specialisti care atribuie agentului chiar fata umana, argumentând ca, desi agentii sunt bucati de cod software, oamenilor le place sa aiba de-a face cu ei ca si cum ar avea de-a face cu alti oameni.
În cadrul cercetarilor efectuate la BT Labs, Nwana a identificat trei caracteristici generale ca fiind atribute primare ale unui agent: autonomie, cooperare si învatare.
Spre deosebire de agentii care îndeplinesc doar caracteristicile generale si care sunt denumiti agenti "slabi", agentii care pe lânga caracteristicile generale poseda si caracteristici suplimentare sunt denumiti agenti "complecsi" sau "puternici" sau agenti "tari".
4.3. Clasificarea agentilor
Având în vedere multitudinea de agenti software si rolurile pe care le pot avea acestia, o clasificare a agentilor este dificil de realizat.
În cele ce urmeaza este prezentata clasificarea agentilor realizata de Hyacinth S. Nwana [6] având în vedere diverse criterii astfel:
- dupa gradul de mobilitate (capacitatea de a se deplasa în cadrul anumitor retele):
agenti statici si agenti mobili
- dupa modul de comportament:
agenti deliberativi (au încorporat un model de rationament simbolic, si în vederea coordonarii cu alti agenti se angajeaza în procese de planificare si negociere)
agenti reactivi (nu poseda un model simbolic, intern al mediului lor si drept urmare, pentru a raspunde la starea actuala a mediului în care se afla ei actioneaza adoptând tipul de comportament stimul/raspuns)
- dupa rolurile lor (în cazul în care se poate desprinde un rol preponderent):
agenti de informare, agenti de negociere, agenti de interfata, etc.;
- dupa arhitectura:
agenti simpli (unitari) si agenti hibrizi (care încorporeaza doua sau mai multe filozofii într-un singur agent)
- dupa numarul de sub-agenti încorporati:
agenti omogeni (mono-agenti) si agenti eterogeni (multi-agenti)
- dupa veracitate:
agenti sinceri (de încredere, care nu mint niciodata) si agenti mincinosi (care mint intentionat).
Clasificarea dupa criterii poate fi extinsa daca se are în vedere prezenta sau absenta caracteristicilor generale sau secundare ale agentilor.
O clasificare mai restrânsa a agentilor propusa de Nwana este urmatoarea:
agenti colaborativi, agenti de interfata, agenti mobili, agenti de informatii/Internet, agenti reactivi, agenti hibrizi si agenti inteligenti.
Modelul sau arhitectura agentilor poate varia de la structuri foarte simple, de tip automate, cum este cazul agentilor reactivi, pânã la structuri de cunostinte complexe, capacitãti de rationament si decizie, structuri întâlnite în cazul agentilor cognitivi, numiti si agenti rationali.
Agentii cognitivi contin o reprezentare simbolicã explicitã a lumii si sunt capabili sã ia decizii pe baza unui rationament simbolic.
Au scopuri fixate si pot sã-si modifice actiunile în functie de schimbãrile din mediu si interactiunea cu alti agenti, în vederea realizãrii acestor scopuri.
Fiecare agent cognitiv este [FLAM98] un sistem bazat pe cunostinte, cu un grad mai mare sau mai mic de elaborare si care include întreaga metodologie asociatã acestor sisteme.
În cazul sistemelor de agenti cognitivi, inteligenta sistemului este datã atât de suma comportamentelor inteligente individuale ale fiecãrui agent cât si de inteligenta rezultatã din comportamentul colectiv bazat pe interactiune de tip social.
Referitor la definirea si utilizarea agentilor eterogeni în 1992 a aparut o noua disciplina denumita Intelligent and Cooperative Information Systems (ICIS), care are în vedere integrarea sistemelor informationale, a tehnologiilor bazelor de date, a inteligentei artificiale s.a. prin folosirea agentilor digitali.
4.4. Aplicatii actuale ale agentilor. Domenii de utilizare.
Cercetari în domeniul tehnologiei agentilor sunt efectuate atât în centrele de cercetare din cadrul unor universitati, cum ar fi: Massachusetts Institute of Technology (MIT), the University of London, cât si în cadrul unor firme sau companii multinationale ca de exemplu: IBM, Microsoft, Oracle, Alcatel, Apple, AT&T, DEC, HP, Lotus, Sharp.
Majoritatea cercetarilor sunt axate pe aplicatii ale agentilor obisnuiti (basic agent applications) a caror rezultate sunt vizibile în timp relativ scurt spre deosebire de aplicatii ale agentilor inteligenti (intelligent agent systems) care necesita un timp mai mare de realizare si ale caror rezultate nu sunt imediate.
Exemple de agenti obisnuiti:
- agenti pentru prelucrare e-mail
- agenti pentru filtrare si/sau cautare în articole de stiri
- agenti pentru pregatirea unor întâlniri de afaceri prin consultarea agendelor
electronice ale participantilor.
Crearea unor astfel de tipuri de agenti constituie un prim pas pentru realizarea de aplicatii integrate, în care acesti agenti sa fie folositi ca "materiale de constructie" (building blocks) pentru crearea în urmatorii ani a unor sisteme complexe integrate de agenti, capabile sa execute sarcini de nivel înalt (high-level tasks) pentru utilizatori, furnizori si intermediari - cele trei straturi ale modelului.
Coordonarea în cadrul unui astfel de sistem se realizeaza prin intermediul unui singur agent care deleaga sub-sarcini (sub-tasks) catre alti agenti.
Domenii reprezentative în care este utilizata tehnologia actuala a agentilor (Hermans, B., 1997, Wagner, D.N., 2000, Nwana, H.S., 1996 )
posta si mesagerie
managementul retelelor (de telecomunicatii, energetice, de transport etc.)
controlul traficului aerian (ex. 11 septembrie 2001)
comanda si control
managementul accesului mobil
managementul informatiilor
depozitarea datelor (data mining)
baze de date inteligente
colaborare
managementul proceselor de munca cu caracter repetitiv (workflow management)
afaceri electronice (licitatii, managementul canalelor de aprovizionare si de
distributie etc.)
biblioteci digitale
educatie
cercetare guvernamentala
divertisment (entertainment)
asistenti digitali personali (PDA)
interfete inteligente pentru utilizator s.a.
Dintre aceste domenii/arii de aplicare a tehnologiei agentilor, cele mai intens studiate în acest moment sunt: accesul (regasirea) si managementul informatiilor; comertul electronic si colaborarea.
Exemple concrete de agenti:
- Hoover - agent care furnizeaza o unica interfata utilizator pentru mai multe medii informationale (stiri în timp real, baze de date "on-line", etc.)
- Agenti ghizi (exempluWebWatcher) conduce utilizatorul prin Web, oferind în acelasi timp o experientã personalizatã fiecãrui utilizator (sfatuieste interactiv utilizatorul Web-ului privind legatura urmatoare pe care trebuie sa o urmeze si învata din reactia utilizatorului la sfatul primit).
- Agenti index (exemple:Lycos, WebCrawler, InfoSeek) - efectueazã o cãutare masivã si autonomã de informatie în Web, prin inspectarea unui numar mare de documente (pâna la un milion de documente) si creeazã un index de cuvinte gãsite în titlurile si textul documentelor inspectate. Utilizatorul poate apoi interoga agentul despre documente ce contin anumite cuvinte cheie, iar agentul index poate oferi rãspunsuri rapide care pot fi relevante sau nu pentru utilizator.
Agenti FAQ (Frequently Asked Questions files). - ghideaza utilizatorul pentru gãsirea rãspunsurilor la întrebãrile frecvente puse de utilizatori asupra unui anumit subiect. Aceste intrebari precum si raspunsurile sunt memorate în asanumitele fisiere FAQ create de diverse organizatii sau grupuri din Internet.
- Internet Softbot (software robot)- Cautare informatii structurate pe Internet în baza cererilor furnizate de utilizator prin dialog într-un limbaj expresiv în cadrul unei interfete convenabile astfel încât cea mai mare parte a structurilor din Internet devin transparente pentru utilizator.
El poate monitoriza o serie de evenimente, cum ar fi utilizarea discului, activitatea utilizatorului, buletinele electronice de stiri, servere FTP, si comunicã utilizatorului rezultatul printr-un semnal sonor, un mesaj pe ecran sau un mesaj e-mail.
De asemenea, agentul Softbot poate actiona asupra mediului în care lucreazã, prin asigurarea compactãrii fisierelor dintr-un director, protejarea unor fisiere, compilarea fisierelor program, conversia documentelor dintr-un format în altul, accesul la baze date de diverse tipuri, prin apelul, în secventã, a diverselor programe adecvate.
Plecând de la numele unei persoane, el poate determina adresa electronicã a acesteia.
- Info Agent - cautare informatii atât în documente de tip structurat, cât si de tip nestructurat.
Un domeniu de mare interes în care agentii se vor impune spectaculos este Internet-ul care permite astazi accesul direct a milioane de oameni pe autostrada informationala ([7] "Internet Society" estimeazã cã existã peste 30 de milioane de utilizatori care acceseaza zilnic reteaua Internet), care pot fi atât consumatori cât si potentiali furnizori de informatie.
Cautarea informatiei despre un anumit subiect necesita identificarea si investigarea unui numar mare de documente de pe Web, operatii mari consumatoare de timp si care pot fi realizate de agenti competenti numiti agenti Internet.
Pentru a asigura accesul tuturor categoriilor de utilizatori, indiferent de calificare si cunostintele de care dispun, la resursele informationale imense de pe Internet, viitoarea generatie de agenti Internet va fi [7] o combinatie de modele cognitive si reactive, având ca scop atât satisfacerea necesitatii de informare a utilizatorului cît si transparenta totalã a autostrazii informationale.
Desi reteaua Internet reprezinta un mare succes în unificarea resurselor informationale, structura sa actuala în care pot fi identificate doua straturi si anume: utilizatorii (consumatorii) de informatie si producatorii (furnizorii) de informatie, nu este adecvata pentru activitatea de informare care presupune prelucrarea complexa a informatiilor din multiple documente de pe Web independenta de utilizator.
Pentru rezolvarea acestei probleme, una din cele mai promitatoare propuneri este modelul în care activitatile desfasurate pe Internet sunt împartite pe trei straturi, denumit [6] modelul celor 3 straturi si anume:
un strat pentru utilizatorii de informatie (clientii informationali) - defineste cererea
de informatie
un strat pentru furnizorii (producatorii) de informatie - defineste oferta de informatie
3. un nou strat aflat între primele doua, denumit stratul de mijloc sau stratul
intermediarilor, care sa permita conectarea primelor doua straturi prin cele mai bune
cai sau modalitati.
În cadrul acestui model, agentii au un rol important diferentiat pe straturi dupa cum urmeaza:
- Sarcinile agentilor în cadrul primului strat sunt de a afla ce informatii cauta utilizatorii, daca au anumite preferinte în legatura cu informatia de care au nevoie, etc.
- În cadrul celui de-al doilea strat sarcinile agentilor sunt de a face un inventar al serviciilor si informatiilor oferite de catre furnizori, de a tine evidenta noilor informatii adaugate în retea, etc.
- Agentii din stratul de mijloc au rolul de intermediari informationali între utilizatorii informationali (umani sau electronici) si furnizorii de informatii, sarcina lor fiind de mediere între agentii celorlalte doua straturi.
Agentii utilizati într-un astfel de model vor trebui conceputi în baza unor standarde general acceptate, astfel încât sa raspunda si sa reactioneze în acelasi mod prin utilizarea unui set standardizat de coduri suficient de flexibil pentru a permite construirea unor agenti pentru sarcini neasteptate sau imprevizibile în prezent.
Referitor la domeniile de utilizare a tehnologiei agentilor în viitor, cercetatori în domeniu cred [6] ca agentii autonomi vor deveni în urmatorii 10 ani parte integranta a celor mai multe sisteme de afaceri: astfel, cei de la IBM prevad o vasta utilizare a agentilor software în e-commerce: "Cream o noua categorie economica (a new economic species), partial asemanatoare noua ca imagine, dar semnificativ diferita de oameni", "Agentii software vor deveni actori în economie", afirma Jeff Kephart, managerul grupului care se ocupa de fenomenul agentilor. (Scott,K., 2001).
Utilizarea tehnologiei agentilor conduce la aparitia unor probleme care vor trebui solutionate prin masuri legislative.
Dintre aceste probleme sunt mentionate [6] (Nwana, H.S, 1996; Norman, D. 1994; Etzioni, O.; Weld, D., 1994) urmatoarele:
asigurarea intimitatii persoanelor pentru care lucreaza agentul
responsabilitatea fata de actiunile agentului
siguranta (sa nu influenteze lumea în mod distructiv)
limitarea consumului de resurse rare
vigilenta (sa nu permita actiunile clientilor cu urmari ce nu pot fi anticipate)
probleme de etica: autoidentificarea agentilor, moderarea accesului pe anumite servere, limitarea accesului numai pe serverele alocate agentului, respectarea autoritatii administratorilor de servere, etc.
4.5. Sisteme multi-agent. Definitie, clasificare, arhitecturi.
Definitiile, clasificarea si arhitectura unui sistem multi-agent sunt prezentate în cele ce urmeaza conform [8].
Un sistem multi-agent (SMA) este un sistem distribuit format dintr-o colectie de agenti autonomi care interactioneaza într-un mediu comun, fiecare agent având cunostinte, capacitãti de actiune si scopuri proprii.
Functie de tipurile de agenti utilizati se pot identifica douã categorii de sisteme multi-agent inteligente si anume:
SMA cu agenti cognitivi, numite si sisteme multi-agent cognitive
SMA cu agenti reactivi, numite si sisteme multi-agent reactive
Sistemele multi-agent cognitive urmaresc sã simuleze aspecte ale comportamentului uman prin tratarea notiunilor de scop, cooperare, competitie, organizare în structuri sociale si stabilirea relatiilor de dependentã în aceste structuri, capacitate de învãtare si auto-perfectionare.
Un sistem multi-agent cognitiv reprezinta un sistem particular bazat pe cunostinte ce contine o reprezentare simbolicã a cunostintelor despre lumea în care evolueazã fiind capabil sã ia decizii prin intermediul unui proces inferential de rationament.
Însa, spre deosebire de un sistem bazat pe cunostinte clasic, în cadrul unui sistem multi-agent, un agent reprezintã simbolic lumea atât prin convingeri, care sunt pãreri despre lume, eventual incomplete sau eronate, cât si prin cunostinte care reprezintã fapte adevãrate despre acea lume.
De asemenea, un agent trebuie sã fie capabil sã rationeze atât despre propriile lui convingeri si cunostinte cât si despre cele ale celorlalti agenti cu care interactioneazã într-un anumit mediu.
Abordarea cognitiva a agentilor, ridica o serie de probleme critice în special referitor la complexitatea de calcul si dificultatea algoritmilor necesari prelucrãrilor simbolice.
Un sistem multi-agent reactiv este un sistem în care agentii sunt unitãti simple de prelucrare, capabile sã reactioneze la schimbãrile de mediu si sã execute actiuni simple corespunzator acestor schimbari.
Un astfel de sistem este inspirat din organizarea si activitatea comunitãtilor biologice de insecte.
Astfel o albinã nu poate fi consideratã inteligentã însa comportamentul stupului în ansamblu si modul de organizare a albinelor, executând actiuni comune si coordonate în vederea realizãrii scopului, prezintã elemente de inteligentã.
Adeptii sistemelor multi-agent reactive, criticând abordarea cognitiva, considera ca inteligenta este situatã în lumea exterioarã si nu la nivelul componentelor de prelucrare individuale, respectiv agentii, comportarea inteligentã fiind un rezultat al interactiunii dintre agenti si mediu iar inteligenta este o proprietate a sistemului ca întreg.
În acest sens, au fost propuse sisteme cu arhitecturi care modeleazã structura si comportamentul colectivitãtilor de insecte, sisteme care ar putea fi realizate într-o abordare subsimbolica utilizând retele neuronale sau algoritmi genetici.
O alta directie de cercetare o constituie abordarea mixta cognitiv-reactiva având în vedere avantajele si dezavantajele fiecareia dintre cele doua categorii de sisteme multi-agent.
4.6. Limbaje de comunicare între agenti
Forma cea mai simpla de comunicare între agenti în cadrul unei arhitecturi reactive, este comunicarea bazatã pe schimbul de informatii prin intermediul unei structuri de tip tablã ("blackboard") sau de resursã partajatã care este împãrtitã în diferite nivele de abstractizare corespunzãtoare diverselor nivele de rezolvare a problemelor (nivele de comportament) iar agentii vor scrie sau citi informatiile de pe nivelele corespunzãtoare actiunilor lor.
Având însa în vedere faptul ca în cadrul unui sistem multi-agent agentii interactioneaza într-un mediu comun, comunicarea între agenti este o problema cheie însemnând mai mult decât un simplu schimb de mesaje.
Pe lânga primirea si transmiterea de mesaje, un agent trebuie sa fie capabil sa deduca intentia emitatorului referitor la mesajul trimis ceea ce presupune utilizarea unei forme complexe de comunicare bazata pe teoria actelor comunicarii ("theory of speech acts") dezvoltata în cadrul unor cercetari din domeniul limbajului natural.
Astfel, într-un act de comunicare se disting urmatoarele 3 aspecte:
exprimarea unei propozitii (mesaj);
efectul intentionat (asteptat) de cel ce comunica mesajul;
efectul asupra destinatarului comunicarii.
Aceste modele ale dialogului uman au stat la baza structurarii mesajelor schimbate între agenti si definirii protocoalelor de comunicare prin care se stabilesc actiunile posibile ale agentului în fiecare moment al comunicãrii cu alti agenti.
Pentru programarea sistemelor multi-agent s-au elaborat o serie de limbaje corespunzator celor doua categorii de sisteme multi-agent dupa cum urmeaza:
limbaje agent slabe (ACTOR, TCL/TK, TELESCRIPT) pentru sisteme multi-agent reactive;
limbaje agent tari (AGENT0, PLACA, Concurent METATERM, KQML, KIF, COOL) pentru sisteme multi-agent cognitive.
Dintre aceste limbaje si protocoale de comunicare între agenti, bazate pe teoria actelor comunicãrii, cel mai cunoscut este KQML (Knowledge Querry and Manipulation Language) propus de ARPA (Advanced Research Projects Agency) în 1992, cu ultima versiune standardizata aparuta la începutul anului 1997. KQML foloseste limbajul KIF (Knowledge Interchange Format) pentru a descrie continutul informational al mesajului si este o reprezentare ASCII a logicii cu predicate de ordinul întâi, într-o sintaxa apropriata de cea a limbajului LISP. Limbajul KQML si KIF (cu succesorul lui SIF - Simple Knowledge Interchange Format) tind sa devina la ora actuala un standard al comunicarii în Sistemele Multi Agent cognitive.
Limbajul COOL (COOrdination Language) a fost creat pentru coordonarea actiunilor agentilor cu ajutorul a noi performative adaugate la cele ale limbajului KQML. Activitatea de coordonare poate fi realizata spre exemplu de un agent "manager".
Exemple de primitive KQML:
- (ask A) - emitãtorul întreabã receptorul dacã A este o convingere a receptorului;
- (tell A) -emitãtorul comunicã receptorului convingerea sa A;
- (achieve A) - emitãtorul cere receptorului sã includã A în multimea lui de convingeri;
- (deny A) - emitãtorul comunicã receptorului cã nu crede A.
În concluzie se poate afirma ca sistemele multi-agent au aparut din urmatoarele considerente:
necesitatea modelarii sistemelor de natura distribuita;
distribuirea controlului inteligent se impune natural deoarece cunostintele si activitãtile sunt inerent distribuite spatial;
capacitatea limitata a unui singur agent de a rezolva probleme complexe;
simularea comportamentului inteligent prin interactiunea dintre componente (agenti) fiecare având informatii incomplete despre problema si mediu;
descentralizarea resurselor.
Pentru realizarea sistemelor multi-agent apare si se dezvolta o noua tehnologie în realizarea programelor si anume programarea orientata agent AOP (Agent-Oriented Programming)..
Programarea orientata pe agenti introdusã de Yoav Shoham odatã cu definirea limbajului AGENT0, reprezinta o specializare a programarii orientate pe obiecte si în care colectiei de obiecte definite de stari si care comunica între ele prin transmitere de mesaje îi corespunde o multime de agenti caracterizati de stari mentale compuse din notiuni mentale (convingeri, intentii, obligatii, angajamente, decizii, etc.).
Odata cu aparitia conceptului de agent software se prefigureaza [7] o noua directie de programare si anume programarea orientatã agent, în care obiectele vor fi înlocuite de agenti, deci entitãti dotate cu capacitãti de perceptie, comunicare, rationament si decizie, iar programele vor fi scrise prin manipularea adecvatã a unei multimi de agenti predefiniti sau definiti de utilizator.
Probleme rezolvate
Enumerati principalele caracteristici ale economiei digitale:
- scena digitala în care se dezvolta: e-service, e-comerce, e-bussines, e-comunities
- aparitia unui nou actor: intermediarul sau agentul
- apare si se dezvolta piata digitala
- distribuirea inteligentei artificiale si realizarea de sisteme multi-agent
Un agent software este:
a) un limbaj de programare
b) un program care se comportã analog cu un agent uman, fiind capabil sã
comunice în mod inteligent cu alti agenti software sau persoane.
c) un software care stie cum sa faca lucrurile pe care le-ai face tu însuti daca ai avea timp
raspuns corect b), c)
Caracteristicile de baza ale unui agent sunt:
a) autonomie
b) mobilitate
c) reactivitate
d) comunicare
e) personalitate
raspuns corect a), b), d)
Dupa capacitatea de a se deplasa în cadrul anumitor retele, agentii se clasifica în:
a) agenti deliberativi
b) agenti statici
c) agenti inteligenti
d) agenti mobili
raspuns corect d)
Probleme propuse
Un sistem multi-agent reactiv este:
a) un sistem în care agentii sunt unitãti simple de prelucrare (agenti simpli)
b) un sistem bazat pe cunostinte
c) un sistem inspirat din organizarea si activitatea colectivitatilor de insecte
Programarea orientata agent este:
a) o metoda de programare în domeniul inteligentei artificiale
b) o noua tehnologie în realizarea programelor
c) o specializare a programarii orientate pe obiecte în care obiectele vor fi înlocuite de agenti, deci entitãti dotate cu capacitãti de perceptie, comunicare, rationament si decizie, iar programele vor fi scrise prin manipularea adecvatã a unei multimi de agenti predefiniti sau definiti de utilizator.
d) o tehnologie de programare pentru realizarea sistemelor multi-agent
KQML este:
a) un sistem multi-agent
b) un limbaj de programare pentru sistemele multi-agent
c) un limbaj de comunicare între agenti bazat pe teoria actelor comunicarii
ADENDA
Limbaj de programare permite descrierea unui proces de calcul alcatuit din mai multi pasi pentru rezolvarea unei probleme, fiecare pas fiind exprimat în comenzi elementare (instructiuni) ce vor fi executate de calculator.
Limbaj-masina este limbajul propriu unui tip de calculator.
Limbaj de asamblare se înlocuiesc codurile numerice ale instructiunilor si operanzilor cu coduri mnemonice.
Translatorul este un program ce traduce un program sursa scris într-un anumit limbaj de programare întru-un program echivalent dintr-un alt limbaj, acest nou program numindu-se program destinatie.
Limbaje de nivel înalt limbaje mai apropiate de limbajul natural în care un program difera foarte putin de la un calculator la altul, fiind însa necesara prezenta unui program numit compilator care sa traduca programul în instructiuni cod masina.
Programarea visuala si orientata obiect permite generarea unui program si a unor interfete utilizator prietenoase prin combinarea (manipularea) unor obiecte predefinite sau definite de utilizator si atasare de cod corespunzator.
Limbajul Visual Basic reprezinta un mediu de dezvoltare care permite crearea de programe orientate spre obiecte si conduse de evenimente.
Evenimentele se produc ca urmare a unei actiuni a utilizatorului (ex. evenimentul click corespunde apasarii butonului stâng al mouse-ului pe obiectul respectiv), sau în urma executiei codului programului, sau pot fi declansate de catre sistem.
Un obiect este definit de un set de proprietati cum ar fi: dimensiune, culoare, pozitie pe ecran, comportament.
O metoda este o procedura (succesiune de instructiuni) asociata unei anumite actiuni a unui obiect
O variabila este o zona temporara de memorie careia i se da un nume, si care poate memora (stoca) un anumit tip de data care poate fi modificata pe parcursul executiei programului.
Domeniul unei variabile este zona programului în care variabila este vizibila.
Agent software este un agent este un program care se comportã analog cu un agent uman, fiind capabil sã comunice în mod inteligent cu alti agenti software sau persoane. Un agent este un software care stie cum sa faca lucrurile pe care le-ai face tu însuti daca ai avea timp." (Janca, P.,1995).
Agenti cognitivi au încorporat un model de rationament simbolic, si în vederea coordonarii cu alti agenti se angajeaza în procese de planificare si negociere.
Agenti reactivi nu poseda un model simbolic, intern al mediului lor si drept urmare, pentru a raspunde la starea actuala a mediului în care se afla ei actioneaza adoptând tipul de comportament stimul/raspuns.
Sistem multi-agent (SMA) este un sistem distribuit format dintr-o colectie de agenti autonomi care interactioneaza într-un mediu comun, fiecare agent având cunostinte, capacitãti de actiune si scopuri proprii.
|