Sistem de Monitorizare a Unui Ambient Inteligent
PROIECT DE LICENȚĂ
Sistem de monitorizare a unui
ambient intelligent-
monitorizarea și controlul iluminatului
CUPRINS
Introducere AmI
Implicațiile sociale, economice și etice ale inteligenței ambientale
Implicațiile inteligenței ambientale în educație și învățare
Securitatea sistemelor ambientale inteligente
2. Agenți și modelarea bazată pe agenți
2.1 Scurt istoric
2.2 Definiții de bază
2.3 Proprietăți
2.3.1 Proprietățile mediului de execuție
2.3.2 Proprietățile acțiunilor agenților
2.3.3 Proprietățile scopurilor agenților
2.3.4 Proprietățile convingerilor agenților
2.3.5 Caracteristicile agenților în simularea sistemelor complexe
2.4 Clasificări
2.4.1 Taxonomia generală a agenților
2.4.2 Clasificarea lui Nwana
2.4.3 Tipuri de agenți din perspectiva mediului computațional
2.4.4 Tipuri de agenți în simulări complexe
2.5 Arhitecturi de agenți inteligenți
2.5.1 Arhitectura generală a unui agent inteligent
2.5.2 Arhitecturi logice
2.5.3 Arhitecturi reactive
2.5.4 Arhitecturi BDI
2.5.5 Arhitecturi stratificate
Agenții și mediul
3. Sisteme de iluminat interior
4. Prezentarea platformei JADE
4.1 Componentele platformei JADE
4.2 Crearea statică a agenților
4.3 Comportamente și comunicare inter-agent
4.3.1 Comportamente
4.3.2 Comunicare inter-agent
5. Dezvoltarea aplicației pentru monitorizarea și controlul iluminatului
6.1 Dezvoltarea și prezentarea aplicției
6.2 Interfata cu ultilizatorul
6. Direcții dezvoltare
7. Utilitatea aplicațiilor de monitorizare a iluminatului – concluzii
8. Bibliografie
9. Anexa
10. Anexa 2 – cod aplicație (comentat )
Introducere AmI
Conceptul de inteligență ambientală a fost introdus la sfârșitul anilor 90 ca o nouă paradigmă pentru mediile electronice ale perioadei viitoare 2010-2020. Conceptul se sprijină pe teoriile lui Weiser ce descriu o infrastructură mobilă integrată în mediile umane interconectate.
Prin extinderea noțiunii de inteligență Ambientală (IA), mediul ambiental inteligent (AmI) descrie un mediu fizic în care se întrețes senzori, actuatori (elemente de acționare pentru executarea comenzilor), dispozitive de afișaj, și sisteme de procesare, integrate în obiectele din jurul nostru și conectate printr-o rețea, sensibile și responsive la prezența oamenilor.[1]
Inteligența ambientală sau AmI poate fi considerată o viziune asupra viitorului interacțiunii dintre om și tehnologie, care presupune că omul își va desfășura activitățile zilnice utilizând într-un mod natural informația și inteligența unor dispozitive ascunse, conectate printr-o rețea și integrate în obiectele din jur.
Partea centrală a unui sistem ambiental inteligent o reprezintă capacitatea de a analiza mediul în care se află, de a detecta prezența persoanelor din acel mediu, de a răspunde în mod inteligent nevoilor acestora și chiar de a putea anticipa alte nevoi, sau cu alte cuvinte, de a fi adaptiv, sensibil la context și predictiv.[2]
Viziunea AmI este caracterizată de două trăsături cheie: inteligență și integrare.
„inteligența” se referă la faptul că mediul digital este capabil să analizeze contextul, să se adapteze oamenilor și obiectelor care se află în el, să învețe din comportamentul acestora și eventual să îi recunoască și chiar să exprime emoții.
„integrarea” se referă la faptul că dispozitive miniaturizate vor deveni din ce în ce mai mult parte componentă a fundalului activităților umane, iar interacțiunea socială și funcționalitatea se vor muta într-un prim plan.
Inteligența ambientală se bazează pe trei tehnologii recente cheie:
Calcul omniprezent (ubiquitous computing) ce realizează integrarea microprocesoarelor în obiecte de zi cu zi cum ar fi mobilă, îmbrăcăminte, jucării, electrocasnice, clădiri etc.;
Comunicarea omniprezentă (ubiquitous communication) ce permite acestor obiecte să comunice unele cu altele și cu utilizatorul prin intermediul rețelelor ad-hoc și fără fir;
Interfețele inteligente cu utilizatorul (intelligent user interfaces) ce permit locuitorilor din mediile inteligente să controleze și să interacționeze cu aceste medii într-o manieră cât mai intuitivă și naturală (voce, gesturi) și într-un mod personalizat (în funcție de preferințe sau context).
AmI este construită cu ajutorul tehnologiilor avansate de rețea, ce permit asocierea ad-hoc a rețelelor de dispozitive mobile și a altor obiecte. Prin adăugarea de metode adaptive de interacțiune utilizator-sistem, bazate pe analize ce se referă la modul în care oamenii interacționează cu sistemele de calcul, mediile digitale pot fi proiectate pentru a îmbunătăți calitatea vieții oamenilor, acționând în locul acestora. Aceste sisteme care se adaptează la context combină informația omniprezentă, comunicațiile și divertismentul cu personalizarea la cel mai înalt nivel, interacțiunea naturală și inteligența.[2]
Spațiul AmI poate fi văzut ca un integrator de funcții la nivel local în diverse medii și permite un dialog natural și intuitiv al utilizatorului cu aplicațiile și serviciile aferente diverselor medii – inclusiv mediul virtual – permițând organizarea și procesarea de conținut.
AmI crează medii adaptate și sensibile la prezența umană. Conceptul urmărește integrarea cât mai armonioasă a utilizatorului în centrul unui system care-i satisface cerințele, în cadrul căruia tehnologia tinde să devină neobservată sau cât mai invizibilă (fig. 1).[1]
Fig. 1. Viziunea AmI: centrată pe utilizator(preluată din [1])
Pentru dezvoltarea AmI este nevoie ca mai multe tipuri de tehnologii să conlucreze:
hardware non-invaziv: nanotehnologii, senzori wireless, etc.,
infrastructură mobilă/fixă de comunicații și de calcul: rețele fixe sau wireless (ex. ZigBee, Z-Wave, KNX, RFID, X10, INSTEON), interoperabilitate, SOA – Arhitecturi Orientate pe Servicii, etc.)
interfețe prietenoase cu utilizatorul (agenți inteligenți, interacțiune multimod, sensibilitate la context, sisteme biometrice, etc.)[2]
Aplicațiile AmI sunt diverse și se regăsesc în multiple domenii ale activității umane (monitorizarea sănătății, transport, activități casnice, divertisment, etc.) putând fi grupate în trei categorii:
Aplicații care vizează confortul : încălzirea, ventilația, controlul iluminatului, difuzia sonoră, etc.
Aplicații care vizează siguranța: sisteme de videointerfonie, monitorizare, alarmă, etc.
Aplicații care vizează economia: contorizarea energiei electrice, reducerea consumului de energie
Securitatea și intimitatea sunt cerințe de bază pentru ca sistemele AmI să fie acceptate de utilizatori. Nivelul de securitate oferit trebuie să se adapteze nevoilor de servicii în termeni de autentificare, criptare a informației, confidențialitate, anonimat, managementul identității și furnizarea de conținut. Dacă se va putea obține un grad ridicat de încredere în mecanismele de securitate a informațiilor personale, AmI va contribui considerabil la îmbunătățirea calității vieții, reducerea costurilor prin mai buna gestionare a resurselor și siguranța individului. [2]
1.1 Implicațiile sociale, economice și etice ale inteligenței ambientale
Inteligența ambientală[3] implică integrarea de procesoare microelectronice și senzori în obiectele de zi cu zi pentru a le face “inteligente”. Obiectele inteligente pot explora mediul lor, pot comunica cu alte obiecte “inteligente” și să interacționeze cu oamenii, prin urmare ajutând utilizatorii să facă față sarcinilor lor în moduri noi, intuitive. Deși multe concepte au fost testate ca prototipuri în studiile de teren, repercursiunile de integrare ale tehnologiei computerizate in viața noastră de zi cu zi sunt dificil de prezis. Contribuția inteligenței ambientale este o primă încercare de a clasifica implicațiile sociale, economice și etice în această dezvoltare.
Miniaturizarea crescândă a tehnologiei calculatoarelor va fi într-un viitor apropiat concretizată în procesoare și senzori de dimensiuni reduse, fiind integrate din ce în ce mai mult în obiectele din jurul nostru, ceea ce va duce la dispariția de PC –uri tradiționale, precum și a dispozitivelor de intrare și ieșire (tastaturi,mouse-uri,monitoare). În schimb, vom putea comunica direct cu hainele noastre, ceasuri, pixuri și mobilier.
Acum 10 ani, Mark Weiser a prevăzut această dezvoltare și a descris-o în articolul său ”Calculatoare pentru secolul XXI” [4]. Wieser a inventat termenul de “ubiquitous computing”, referindu-se la calculatoarele omniprezente ce servesc oamenilor în viața de zi cu zi, atât la locul de muncă, cât și la domiciliu, funcționarea acestora într-un mod cât mai discret și eliberarea utilizatorilor într-o măsură cât mai mare de sarcinile de rutină și plictisitoare. În declarația sa din 1999, Weiser a folosit termenul de “inteligență ambientală” într-un mod similar cu a descrie o viziune în care oamenii vor fi înconjurați inteligent și intuitiv de interfețe incorporate în obiectele de zi cu zi din jurul nostru și un mediu de recunoaștere si răspundere la prezența unor persoane într-un mod invizibil.
Viziunea unui viitor plin cu obiecte inteligente și interacțiunea alături de ele oferă o întreagă gamă de posibilități fascinante. De exemplu, părinții vor putea să nu mai piardă urma copiilor lor, chiar și in cele mai aglomerate mulțimi, atunci când senzorii de locație și modulele de comunicație sunt cusute în hainele lor. Dispozitive similare atașate calendarelor și indicatoarelor ar putea ghida nevăzători în medii necunoscute. Calculatoarele de dimensiuni reduse ar putea juca un rol important în protejarea mediului, de exemplu, senzorii de mărimea particulelor de praf care detectează dispersie de scurgeri de petrol sau incendiile de păduri. O altă posibilitate interesantă este faptul că,vom putea lega orice fel de informații la obiectele de zi cu zi, permițând, de exemplu, mașinii de spălat să interogheze hainele noastre murdare pentru instrucțiuni de spălare.
În timp ce niciodată,evoluțiile din domeniul tehnologiei informațiilor nu au avut ca scop explicit schimbarea societații, ci mai degrabă realizarea unui efect secundar ca celor menționate mai sus, inteligența ambientală propune în mod expres informatizarea cat mai avansată a societații în care trăim. Prin urmare, este foarte probabil ca acest lucru să aibă consecințe pe termen lung în ceea ce privește viața noastră de zi cu zi, valorile noastre etice, viitorul nostru. Cu orientarea sa față de public,precum și în privat,comercial și în viața noastră personală, vom crea o tehnologie care ne va însoți pe tot parcusul vieții noastre.
Pare să fie clar că, cu aceste evoluții tehnice – împinse neintenționat de către publicul larg și de extindere destul de rapid în viața noastră de zi cu zi ar putea într-un viitor cât mai apropiat să facă parte din noi, din lumea în care trăim, vom putea crea o lume mai bună, mai sigură și mai eficientă. Inteligența ambientală va deveni un factor foarte important în viața noastră, ne va ajuta să ne bucurăm de tehnologii într-un mod cât mai mare, ne va ajuta să conturăm o viața mai bună, într-un mediu mai sigur și mai eficient.
Calitatea vieții este o preocupare majoră a noastră. Ea se traduce prin confort sau minimizarea efortului depus în mod curent în activitățile casnice, de la birou, mașină, etc., precum și creșterea resurselor necesare pentru relaxare, divertisment, odihnă, hobby-uri, etc. Efortul poate fi de natură fizică, materială, intelectuală, psihică. Resursele se referă la costuri, timp și capabilități.
AmI permite creșterea calității vieții prin:
minimizarea eforturilor (de toate tipurile);
creșterea și menținerea sentimentului de siguranță și securitate;
integrare și participare socială;
reformarea mediului pentru a servi intereselor utilizatorilor.
1.2 Implicațiile inteligenței ambientale în educație și învățare
Tehnologiile de educație/învățare ce vor urma în scenariul de viața AmI vor fi special orientate pentru a organiza cunoașterea, a dezvolta rețele educative la nivel gea sa față de public,precum și în privat,comercial și în viața noastră personală, vom crea o tehnologie care ne va însoți pe tot parcusul vieții noastre.
Pare să fie clar că, cu aceste evoluții tehnice – împinse neintenționat de către publicul larg și de extindere destul de rapid în viața noastră de zi cu zi ar putea într-un viitor cât mai apropiat să facă parte din noi, din lumea în care trăim, vom putea crea o lume mai bună, mai sigură și mai eficientă. Inteligența ambientală va deveni un factor foarte important în viața noastră, ne va ajuta să ne bucurăm de tehnologii într-un mod cât mai mare, ne va ajuta să conturăm o viața mai bună, într-un mediu mai sigur și mai eficient.
Calitatea vieții este o preocupare majoră a noastră. Ea se traduce prin confort sau minimizarea efortului depus în mod curent în activitățile casnice, de la birou, mașină, etc., precum și creșterea resurselor necesare pentru relaxare, divertisment, odihnă, hobby-uri, etc. Efortul poate fi de natură fizică, materială, intelectuală, psihică. Resursele se referă la costuri, timp și capabilități.
AmI permite creșterea calității vieții prin:
minimizarea eforturilor (de toate tipurile);
creșterea și menținerea sentimentului de siguranță și securitate;
integrare și participare socială;
reformarea mediului pentru a servi intereselor utilizatorilor.
1.2 Implicațiile inteligenței ambientale în educație și învățare
Tehnologiile de educație/învățare ce vor urma în scenariul de viața AmI vor fi special orientate pentru a organiza cunoașterea, a dezvolta rețele educative la nivel global și pentru a sprijini omul în procesul de învățare, ce se dorește a fi continuu pe parcusul întregii vieți. [5]
Cele mai importante faze în organizarea informațională sunt:
achiziția;
validarea;
reprezentarea;
diseminarea.
Principalele unelte și aplicații în viitorul scenariu de educație/învățare vor fi dirijate de următorii factori:
mediu virtual și comunitate virtuală;
folosirea unor agenți inteligenți în procesul de învățare și evaluare;
interfețe adaptive și interactive;
rețele educative la nivel local și global;
tehnologie mobilă;
creșterea în capacitate și viteză a calculatoarelor;
micșorarea în dimensiune a acestora;
observarea evoluției echipamentelor;
comunicație și tehnologie computerizată ieftină.
1.3 Securitatea sistemelor ambientale inteligente
Asigurarea securității[6] într-un sistem distribuit, inteligent este o provocare foarte mare. Securitatea tradițională presupune existența unui canal vulnerabil între comunicarea părților, caz în care în transmiterea, interceptarea și modificarea mesajelor pot apărea atacuri de tip DOS. Toate modelele de atacuri se concentrează pe canalul de comunicație dintre părți, iar atacatorul are avantajul ca își poate alege cea mai simplă “cale de intrare”.
Natura distribuită a mediilor ambientale inteligente are atât avantaje, cât și dezavantaje atunci când se analizează problema de securitate. Avantajul este că, informația este distribuită și un nod atacat nu poate pune în pericol întregul sistem. Dezavantajul este că, atât fiecare nod, cât și întregul sistem au nevoie de protecție.
Un exemplu este un atac denial of service prin inundarea rețelei cu cereri. Acest lucru nu este unic pentru rețelele de senzori. Natura distribuită a rețelelor de senzori face ca dispozitivele să fie accesate fizic la fiecare nod și astfel o negare distribuită de atacuri de servicii trebuie să fie abordată la nivel de protocol, plecând de la premisa că un anumit procent din noduri ar putea fi compromise. Măsuri cum ar fi, introducerea nivelurilor de încredere, contoarele-caz sunt măsuri de a aborda această problemă.
Orice protocol trebuie să fie investigat pentru resurse de calcul, și anume, necesarul de energie și de memorie și pentru cerințele de comunicare, transmisie radio recepție. La nivel de algoritmi, trebuie implementați algoritmi de criptare puternici, ținând cont de faptul că, acest lucru poate fi implementat pe resurse limitate, disponibile în rețea.
Securitatea sistemelor ambientale inteligente reprezintă o problemă foarte complexă si trebuie să se țină cont de anumiți factori atunci când se alege să se implementeze un anumit sistem ambiental inteligent.
2. Agenți și modelarea bazată pe agenți
2.1 Scurt istoric
Conceptul de agent a devenit, în anii 90 ai secolului XX si în primii ani ai secolului XXI, un concept central în câteva dintre disciplinele stiintifice cu o dezvoltare de-a dreptul explozivă. Agenții își găsesc utilizări variate în domenii precum inteligența artificială, robotica, interacțiunea om-calculator, calculul distribuit, interfețele inteligente și adaptabile, căutare pe Web, achiziția de cunoștinte, cibernetica de ordinul trei, stiinta calculatoarelor, economia computationala și altele fac apel din ce în ce mai frecvent la conceptul de agent si la metodele derivate din acesta.[7]
Majoritatea sistemelor clasice de inteligență artificială sunt statice, arhitectura lor este predefnită, în timp ce sistemele bazate pe agenți se modifică dinamic în timp. Inteligența artifcială distribuită studiază probleme legate de proiectarea sistemelor distribuite, interactive.
Agenții și sistemele multiagent reprezintă o nouă modalitate de analiză, modelare și implementare a sistemelor complexe. Viziunea bazată pe agenți oferă astăzi o gamă largă de instrumente, tehnici si paradigme cu un uriaș potențial de a îmbunatați modul în care oamenii concep și utilizează tehnologia informatională.
Agentii sunt utilizați tot mai mult într-o mare varietate de aplicații, de la sisteme de dimensiuni mici, de exemplu filtrele personalizate pentru e-mail sau agenții pentru cumparaturi (shopbot) pâna la sisteme mari, complexe, cum sunt sistemele pentru așa zisele “case inteligente” sau un alt exemplu ar fi sistemele economice virtuale. La o prima analiză, aceste tipuri de sisteme sunt destul de diferite și nu par sa aibă nimic în comun unele cu altele. Asemănarea, în toate aceste cazuri, este că poate fi utilizat conceptul de agent și metodele care derivă din acesta. Există o mare este varietatea de aplicații ce poate fi caracterizată în termenii teoriei agenților si sistemelor multiagent.[7]
La început teoriile și metodele referitoare la agenți pot aparea haotice și incoerente, datorită nivelului ridicat de activitate și gradului mare de interes din acest domeniu. Astăzi există o literatură deosebit de bogată din acest domeniu, care conține o mulțime de definitii date acestor concepte cheie, fără să se manifeste, totuși, o încercare de unificare a diferitelor sensuri. Desigur ca acest lucru nu constituie un obstacol în progresul rapid, atât teoretic cât si în ce priveste aplicatiile practice ale domeniului, dar noile cunostinte acumulate, noile paradigme introduce necesita, din timp în timp, reevaluarea termenilor cheie prin reluarea efortului de redefinire a conceptelor, astfel încât sa putem întelege mai bine implicatiile si interdependentele fiecarui termen în parte.
2.2 Definiții de bază
Noțiunea de agent a devenit centrală în cele mai diferite domenii științifice, există diferențe mari între sensurile date acestui concept precum și diferitelor utilizări ale sale în aceste domenii. [10]
În dictionare, agentul este definit ca ,,cineva care, sau prin care se exercită putere sau produce un efect”[9]). Totuși, o astfel de definiție este prea generală pentru a putea fi considerată operatională; cel puțin ea indică faptul că agentul exercită o acțiune, schimbă ceva în mediul înconjurător. Mai precis, Shardlow arată că ,,Agenții fac lucruri, ei actionează: de aceea ei se numesc agenți” (Shardlow, 1990).[7]
Hayes-Roth (1995) consideră că “Agenții inteligenți efectuează în mod continuu trei funcții: perceperea condițiilor dinamice din mediu, acțiunea pentru influențarea condițiilor din mediu și raționamentul pentru interpretarea percepțiilor, rezolvarea problemelor, deducerea inferențelor și determinarea acțiunilor”. Definiția insistă asupra raționamentului necesar selectării acțiunilor, însă dacă acest concept este interpretat într-un sens mai larg, arhitectectura rezultantă permite și acțiuni reflexe pe lângă cele planificate. În definiția agentului IBM (Franklin & Graesser, 1996) se amintește că “Agenții inteligenți sunt entități software care îndeplinesc anumite operații în numele utilizatorului sau al altui program, cu un anumit grad de independență sau autonomie, folosind astfel cunoștințe sau reprezentări ale scopurilor sau dorințelor utilizatorului”. Se poate deduce de aici că orice agent software este un program, însă un program nu se consideră agent decât dacă manifestă anumite caracteristici.[8]
Probabil definiția cea mai adecvată pentru agenții inteligenți le aparține lui Wooldridge și Jennings (1995). 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 promt 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;
abilitate socială (engl. .social ability.): agentul interacționează cu alți agenți (sau cu oamenii) printr-un anumit limbaj de comunicare între agenți.
Cercetătorii mai sus menționați apreciază inteligența drept capacitatea de acțiune autonomă flexibilă, unde flexibilitatea presupune reactivitate, proactivitate și aptitudine socială.[8]
Reactivitatea este o proprietate neceseră atunci când agentul acționează în medii nesigure, care se schimbă mereu. Agentul reacționează în mod continuu pentru a se adapta modificărilor. În astfel de medii dinamice, evenimentele externe pot schimba chiar pre-condițiile considerate inițial pentru începerea execuției unei acțiuni. Printr-o continuă reactualizare a informațiilor despre mediu, se poate evita încercarea de a atinge scopuri inactuale. Dacă însuși scopul se modifică, atunci nu mai există nici un motiv pentru continuarea procedurii curente. [8]
Proactivitatea se referă la comportamentul orientat spre scop. Acest concept poate fi exemplificat printr-un simplu program scris într-un limbaj imperativ. Efectele execuției unei proceduri reprezintă scopul, ceea ce intenționează autorul programului să realizeze. Modelul este adecvat mediilor statice, însă dacă pre-condițiile se schimbă în timpul execuției procedurii, rezultatul acesteia va fi imprevizibil și de obicei eronat. Construirea sistemelor pur reactive sau pur proactive nu este foarte dificilă. Adevărata provocare o constituie găsirea unui echilibru între comportamentul reflex și cel orientat spre scop. În general, se dorește ca agentul să încerce să-și atingă în mod sistematic scopurile, însă să nu continue o anumită acțiune în condițiile în care este clar că aceasta nu va reuși. El trebuie să reacționeze la noua situație și să-și selecteze un nou mod de comportament. Totuși, agentul nu trebuie să reacționeze în mod continuu și astfel să nu se mai poată concentra asupra atingerii efective a scopurilor. [8]
Abilitatea socială, al treilea atribut al unui comportament flexibil, se referă la cooperarea dintre agenți, la partajarea scopurilor. Un simplu schimb de informații nu poate fi considerat drept comportament social, care se dovedește mult mai complex. Există cazuri în care atingerea propriilor scopuri intră în conflict cu interesele altor agenți. În astfel de cazuri se recurge la negociere, alegerea unor acțiuni alternative, etc. Caracteristicile agenților inteligenți se pot împărți în caracteristici interne (autonomia, reactivitatea, raționamentul, învățarea, proactivitatea, mobilitatea) și caracteristici externe (comunicarea, cooperarea). Dacă un agent inteligent are în plus capacitatea de a învăța, de a raționa și de a planifica, atunci este un agent cognitiv.[8]
2.3 Proprietăți
2.3.1 Proprietățile mediului de execuție
Brian Logan (1998) propune un model de analiză a agenților bazat pe patru dimensiuni: proprietățile mediului, proprietățile acțiunilor agenților, proprietățile scopurilor agenților și proprietățile convingerilor agenților. După cum am menționat mai sus, procesul luării deciziilor unui agent este influențat de proprietățile mediului de execuție. Acesta poate fi (Russell, Stuart & Norvig, 1995): [8]
accesibil sau inaccesibil: într-un mediu accesibil, agentul poate obține informații complete despre starea curentă a mediului. În condiții de inaccesibilitate, agentul vede numai parțial mediul în care acționează. Mediile de mare complexitate, precum lumea reală sau Internetul, sunt inaccesibile;
determinist sau nedeterminist: într-un mediu determinist, orice acțiune are un singur efect, adică nu există incertitudini asupra stării în care va trece mediul după efectuarea acțiunii respective. Lumea reală sau mediile complexe sunt nedeterministe, deoarece aceeași acțiune poate avea efecte diferite în condiții inițiale diferite. De aceea, agenții trebuie să poată accepta posibilitatea eșecului, chiar dacă au acționat optim în fiecare fază a procesului decizional local. De asemenea, dacă un mediu determinist este suficient de complex, el trebuie tratat tot într-o manieră nedeterministă;
episodic sau nonepisodic: într-un mediu episodic, performanțele agentului depind de un număr de episoade discrete, fără a exista o legătură între performanțele agentului din episoade diferite. De exemplu, un sistem de sortare a poștei electronice este episodic, deoarece performanțele de sortare viitoare nu depind de modul de sortare a mesajelor curente;
static sau dinamic: un mediu static rămâne neschimbat, cu excepția rezultatelor acțiunilor agentului. Un mediu dinamic are și alte procese care operează asupra sa și astfel se poate modifica într-o manieră care nu mai depinde numai de acțiunile agentului. Lumea fizică reală este un exemplu de mediu foarte dinamic;
discret sau continuu: un mediu discret dispune de un număr finit de acțiuni și elemente de percepție. Un exemplu de mediu discret poate fi jocul de șah, pe când conducerea unui automobil aparține unui mediu continuu. Cele mai generale clase de medii sunt cele inaccesibile, nedeterministe, nonepisodice, dinamice și continue.
2.3.2 Proprietățile acțiunilor agenților
Acțiunile agenților pot fi de asemenea analizate pe baza unor proprietăți (Logan, 1998). O acțiune este caracterizată de precondițiile sale, de efecte și de eventualele constrângeri care specifică modul în care e atinsă starea dorită, cum ar fi de exemplu timpul necesar îndeplinirii unei sarcini. Trebuie făcută diferența între proprietățile unei acțiuni abstracte și proprietățile comportamentului unui agent, care implementează acțiunile. Doi agenți, în condiții diferite, pot încerca să execute aceeași acțiune, dar comportamentul lor poate fi diferit. În cele ce urmează, vom considera caracteristicile unor acțiuni ideale, independente de comportament: [8]
infailibilitatea: o acțiune infailibilă (engl. .infallible.) va produce în mod sigur efectele dorite când mediul îi satisface precondițiile și este executată corect. Infailibilitatea se referă în principal la intenția de a efectua o acțiune și nu la probabilitatea de reușită. O acțiune nedeterministă poate avea mai multe rezultate când este executată într-o anumită stare. O acțiune infailibilă are mulțimea rezultatelor posibile inclusă în mulțimea rezultatelor așteptate, deci chiar dacă există mai multe rezultate posibile, efectul acțiunii va fi totdeauna unul așteptat. Aruncarea unui zar este o acțiune infailibilă, în sensul că va avea întotdeauna ca rezultat una din cele șase alterrnative. Încercarea de .a da șase. este însă failibilă (engl. .fallible., supusă greșelii), deoarece rezultatul așteptat nu este posibil de fiecare dată. Dacă acțiunile unui agent sunt failibile, chiar și un mediu static trebuie considerat nedeterminist;
utilitatea: utilitatea unei acțiuni este dată de utilitatea stării în care se ajunge prin acțiunea respectivă. Dacă nu există nici o modalitate de a decide care acțiune este mai bine să fie efectuată dintr-o mulțime posibilă, se spune că acțiunile au utilități egale. Dacă o asemenea modalitate există, se spune că acțiunea cu utilitate maximă este corectă;
costul: diferite acțiuni pot necesita diferite resurse pentru a putea fi îndeplinite, cum ar fi consumul de energie electrică, cheltuirea unei sume de bani etc. Costurile pot fi calculate pe loc, înainte de efectuarea unei acțiuni, sau pot fi determinate la un moment de timp ulterior. Într-un mediu nedeterminist, costul unei acțiuni nu poate fi cunoscut cu anticipație. O acțiune este optimă dacă este corectă și nu există o altă acțiune corectă cu un cost mai scăzut. Din punctul de vedere al schimbului de informații cu mediul, acțiunile pot fi:
de percepție: se referă la capacitatea agentului de a-și percepe mediul de execuție;
de mișcare: dacă nici o acțiune posibilă nu poate determina schimbarea perspectivei agentului asupra mediului său de execuție, se spune că agentul este static. În caz contrar, avem de a face cu un agent mobil. Noțiunea de mobilitate se referă atât la accepțiunea clasică, unde agentul își schimbă percepțiile asupra mediului prin schimbarea poziției, cât și la deplasarea pe o altă mașină pentru continuarea execuției;
de comunicare: comunicarea între agenți se referă la interacțiunile (schimbul de informații) într-un anumit limbaj de comunicare interagent. Dacă într-un mediu există mai multe tipuri de agenți, se poate impune comunicarea în mai multe limbaje.
2.3.3 Proprietățile scopurilor agenților
Nu toți agenții posedă o mulțime de scopuri definite explicit, chiar dacă sunt orientați spre un scop specific, bine definit. Un exemplu ar fi agenții care decid acțiunea următoare pe baza unor reguli de decizie aplicate stării curente a mediului. Proprietățile menționate în continuare (Logan, 1998) se referă la scopurile intrinseci, care nu sunt subscopuri ale unui alt scop deja avut în vedere (Georgeff & Lansky, 1987) și care pot fi deci considerate scopuri de nivel înalt: [8]
generarea autonomă a scopurilor: capacitatea de a-și genera scopuri proprii se încadrează între caracteristicile definitorii ale unui agent autonom. În general, stabilirea de noi scopuri depinde atât de agent cât și de starea curentă a mediului;
scopuri de realizare (engl. .achievement.) sau menținere (engl. .maintenance.): un scop de realizare încearcă atingerea unei anumite stări în cadrul mediului. Un scop de menținere încearcă păstrarea sau conservarea unei anumite stări. De exemplu, un agent cumpărător care încearcă să găsească prețul cel mai mic al unui produs are un scop de realizare, pe când un termostat are un scop de menținere;
scopuri singulare sau multiple: dacă un agent este capabil să-și reprezinte (implicit sau explicit) mai mult de un scop, se spune că are scopuri multiple. În caz contrar, are un scop singular;
angajamentul (engl. .commitment.) față de scopuri: dacă un agent își abandonează un scop numai când acesta este atins, se spune că agentul este puternic angajat față de scop. Dacă agentul îl va abandona și în alte circumstanțe, cum ar fi situația în care se demonstrează că scopul nu poate fi atins sau necesită un consum prea mare de resurse, se spune că agentul este slab angajat față de scop;
utilitatea scopurilor: este determinată de recompensa îndeplinirii scopurilor;
meta-scopuri: unele condiții ale îndeplinirii unor scopuri (cum ar fi timpul, resursele, etc.) nu pot fi modelate ca scopuri. Un meta-scop este așadar o constrângere asupra altui scop sau, mai general, asupra stărilor interne ale unui agent.
2.3.4 Proprietățile convingerilor agenților
Convingerile unui agent semnifică reprezentarea internă a mediului său de execuție. Cu alte cuvinte, convingerile înseamnă ceea ce “crede” agentul despre mediu, și nu neapărat ceea ce este mediul în realitate. Agentul își poate forma un model simplificat al mediului pentru a prelucra mai ușor informațiile despre acesta. De asemenea, nu toți agenții își construiesc o reprezentare explicită a mediului. Pentru convingerile unui agent se pot aminti câteva proprietăți (Logan, 1998): [8]
consistența: convingerile unui agent sunt consistente dacă pentru orice propoziție p, acesta nu crede simultan p și p;
siguranța: convingerile unui agent sunt sigure dacă reprezentarea convingerilor nu admite grade de certitudine. Pentru orice propoziție p, agentul crede p sau p. În caz contrar, agentul este nesigur despre p și își poate calcula nivelurile de încredere cu o anumită probabilitate. În acest scop se pot utiliza rezultatele logicii fuzzy;
atitudini propoziționale imbricate: convingerile unui agent conțin atitudini propoziționale imbricate dacă acesta își poate reprezenta atât propriile scopuri și convingeri, cât și pe cele ale altor agenți.
2.3.5 Caracteristicile agenților în simularea sistemelor complexe
Referindu-ne cu precădere la simularea sistemelor complexe cu ajutorul agenților și la sistemele multiagent amintim cercetările lui John Holland (1995), care consideră agenții drept sisteme de intrare-ieșire bazate pe reguli și ale căror reguli se pot adapta în funcție de mediu. El evidențiază șapte caracteristici de bază ale agenților și sistemelor multiagent: [8]
agregarea (engl. .aggregation.): agenții grupează obiectele asemănătoare și ignoră diferențele; astfel apar modele de organizare la nivel colectiv;
etichetarea (engl. .tagging.): agenții trebuie individualizați, ei posedă o identitate;
neliniaritatea (engl. .nonlinearity.): comportamentul global al sistemului nu poate fi descompus linear în comportamentele agenților individuali;
fluența (engl. .flows.): agenții sunt interconectați, interacționează și transferă informații;
diversitatea (engl. .diversity.): sistemele multi-agent sunt eterogene, agenții au diferite roluri și comportamente;
modelele interne (engl. .internal models.): organizează regulile care produc comportamentul agenților, astfel încât aceștia pot anticipa influențele mediului;
blocurile constitutive (engl. .building blocks.): agenții sunt alcătuiți din componente simple, prin combinarea cărora pot rezulta agenți cu roluri și comportamente diferite.
2.4 Clasificări
Clasificările propuse pentru agenți sunt la fel de diverse ca și definițiile prezentate anterior, deoarece această teorie se bucură în ultimii ani de o tot mai accentuată popularitate. În funcție de domeniul de activitate, cercetătorii aleg diferite criterii de clasificare.
2.4.1 Taxonomia generală a agenților
Una dintre cele mai generale clasificări este cea propusă de Kiel (1989). În analogie cu arborele filogenetic din biologie, se urmăresc categoriile semnificative de agenți care pot fi mai apoi particularizate:
Fig 2. Taxonomia generală a agenților(preluat din [8]-pag.18)
2.4.2 Clasificarea lui Nwana
Agenții pot fi clasificați prin prisma unor caracteristici minimale pe care trebuie să le manifeste. Nwana (1996) a identificat o listă minimală cu trei elemente: autonomie, învățare și cooperare. După cum am amintit, autonomia se referă la capacitatea de operare fără intervenție umană, cu scopul de a-și îndeplini scopurile proprii și pe cele ale utilizatorilor.
Cooperarea este motivul pentru care alegem să utilizăm mai mulți agenți în sisteme multiagent, în situații în care un singur agent nu ar putea funcționa sau nu ar putea funcționa eficient. De asemenea, pentru a fi considerat inteligent, un agent trebuie să fie capabil să învețe din interacțiunile cu mediul exterior și are drept consecință o crește a performanței în decursul timpului. Din combinarea acestor atribute, se pot deduce patru tipuri de agenți: colaborativi, colaborativi instruibili (engl. .collaborative learning agents.), de interfață și agenți inteligenți.
Figura 3. Clasificarea lui Nwana(preluat din [8]-pag.19)
2.4.3 Tipuri de agenți din perspectiva mediului computațional
Termenii tehnici și cei utilizați în marketing (agent Internet, de interfață, de căutare, .wizard. etc.) pot provoca uneori confuzie, deoarece se referă la diferite componente ale agenților, cum ar fi mediul lor de execuție sau arhitectura prin care își reprezintă cunoștințele. Caglayan și Harrison (1997) propun o clasificare în funcție de mediul computațional, de zona de execuție, distingând între agenți desktop, Internet și intranet.
Agenții desktop funcționează pe un PC sau pe o stație de lucru și sunt agenți software care se execută local în sistemul de operare al unui calculator personal, de exemplu Windows, MacOS sau Unix. În funcție de task-uri, agenții desktop pot fi sub-categorizați în:
agenți sistem de operare: efectuează sarcini care necesită de obicei interacțiunea utilizatorului cu sistemul de operare prin interfața grafică (GUI). De exemplu, astfel de agenți pot monitoriza evenimentele de la nivelul sistemului de operare și executa diverse task-uri atunci când utilizatorul nu mai lucrează pentru o perioadă. De asemenea, agenții pot iniția sau finaliza sarcini legate de interfața grafică în numele utilizatorului;
agenți de aplicație: automatizează unele sarcini în cadrul unei aplicații;
agenți din suite de aplicații (engl. .application suite agents.): pot fi componente software sau suite de aplicații care facilitează interacțiune utilizatorului cu aplicațiile respective. Un exemplu în acest sens este un .wizard. care răspunde la întrebările utilizatorului în funcție de context. La mijlocul anilor .90, s-a estimat că informația disponibilă în general se dublează la fiecare 20 de luni (Piatetsky-Shapiro & Frawley, 1991). Desigur, ponderea cea mai mare o are rețeaua World Wide Web. Traficul total pe Internet crește cu 12% pe lună, ceea ce corespunde cu o dublare a traficului la fiecare 6 luni (Witten, Moffat & Bell, 1994). Agenții Internet au apărut din nevoia prelucrării cantității de informație în continuă creștere. În cadrul acestui tip de agenți, se întâlnesc:
agenți de căutare: motoarele de căutare obișnuite dispun de așanumiți roboți, care explorează toate link-urile pornind de la o adresă de bază și cataloghează informațiile din fiecare pagină vizitată;
agenți de filtrare a informației: spre deosebire de agenții de căutare, care returnează utilizatorului adrese, aceștia adună informații bazate pe conținut, din diferite surse, le filtrează prin prisma preferințelor personale ale utilizatorului și propun rezultatul sub forma unei pagini Web actualizate sau a unui mesaj de e-mail;
agenți de notificare: anunță utilizatorul de anumite schimbări petrecute, cum ar fi actualizarea unei pagini Web, primirea unui email sau reamintirea unor date de importanță personală (ziua de naștere a cuiva, o întâlnire programată anterior, etc.). Termenul .intranet. se referă la o rețea internă a unei anumite organizații, bazată pe tehnologia Internet. De obicei, rețeaua poate fi accesată de angajații organizației, de clienți și furnizori, pe baza unei parole. Agenții intranet sunt agenți software localizați pe un server corporativ, care supraveghează și administrează desfășurarea afacerilor în numele utilizatorilor. Într-un asemenea mediu, modelul agenților se aplică ușor, deoarece procesul de afaceri poate fi văzut el însuși ca o colecție de agenți autonomi care interacționează în cadrul unor sarcini interdependente (Wooldridge & Jennings, 1995). Fiecare categorie de agenți Internet își găsește aplicabilitatea și pe rețelele intranet. Agenții intranet includ și câteva categorii suplimentare:
agenți colaborativi: se integrează programelor colaborative, gestionând partajarea informațiilor de către un grup de utilizatori;
agenți de automatizare a proceselor: automatizează fluxul de operații în aplicațiile comerciale, cum ar fi sistemele de prelucrarea a cererilor de date de către clienți;
agenți de baze de date: acționează ca .front end.-uri pentru bazele de date ale corporațiilor, precum centralizarea în background a unor date, pentru întocmirea unor rapoarte periodice;
agenți mobili: acești agenți se transportă efectiv de pe o mașină client pe diferite servere din rețea pentru a îndeplini unele sarcini în numele utilizatorului (White, 1996). În contrast cu apelurile de proceduri la distanță (“remote procedure call” – RPC), care se limitează la transmiterea datelor către o procedură de pe server, agenții mobili transportă atât programul cât și datele asupra cărora acționează. [8]
2.4.4 Tipuri de agenți în simulări complexe
Modelarea bazată pe agenți este adecvată analizei proceselor dinamice complexe deoarece permite o bogată reprezentare a caracteristicilor și acțiunilor agenților, care nu ar putea fi suportate de formalismul și rigoarea algoritmilor computaționali. Cele mai studiate sisteme de acest tip sunt cele din domeniile economic, ecologic și social, pentru care găsirea unui model matematic de evoluție este foarte dificilă. Însă reprezentarea componentelor sistemului prin agenți autonomi este mai naturală iar studiul comportamentului de grup poate indica proprietăți generale importante, mai ales că în studiul sistemelor complexe neliniare accentul cade pe modul global de evoluție, într-un anumit interval de timp. [8]
În orice modelare, trebuie determinat raportul dintre fidelitate și abstractizare. Fidelitatea presupune integrarea în sistem a unui număr de detalii realiste, iar abstractizarea ajută la generalizarea rezultatelor experimentale dintr-un sistem și pentru alte sisteme. Agenții ecologici se referă în general la agenții utilizați în simularea vieții artificiale. O problemă clasică este cea a evoluției numărului de indivizi într-un mediu prădători . pradă. Acesta este un sistem oscilant, deoarece creșterea numărului de indivizi dintr-una din cele două specii va determina (într-un sistem stabil), în mod indirect, scăderea sa ulterioară. De exemplu, creșterea numărului de prădători va implica imediat scăderea prăzii, care va determina mai apoi scăderea prădătorilor, care nu vor mai avea suficientă hrană. În mod tradițional, problema se rezolvă cu un sistem de ecuații diferențiale. Simularea bazată pe agenți este însă mai elegantă și deseori conduce la rezultate mai apropiate de realitate. În acest domeniu prezintă interes și urmărirea evoluției speciilor artificiale, cu ajutorul algoritmilor de selecție genetică. De obicei se aplică operația de crossing-over (numit și .crossover.) simplificat și mutațiile, ignorându-se celelalte fenomene secundare implicate în transmiterea caracteristicilor ereditare din biologie.
Viața artificială s-a distanțat de inteligența artificială, abordând problematica agenților în mod diferit. Aici se întâlnesc de cele mai multe ori ansambluri mari de agenți simpli, prin interacțiunea cărora, pe baza unor reguli simple, bazate pe informații locale, se urmărește apariția unor modele de comportament globale, neplanificate explicit (de exemplu simularea unor colonii de insecte). În inteligența artificială se preferă ansambluri mici de agenți complecși, care posedă proprietăți și reguli de comportament complexe, stabilite anterior. Se urmăresc strategiile de dezvoltare, competiția sau cooperarea dintre agenți. [8]
O particularizare a tipului anterior o reprezintă agenții sociali. Științele sociale, în special psihologia socială, pot contribui la construirea și înțelegerea societăților artificiale, a .cyber-organizațiilor. (Castelfranchi, 2001). Contribuția principală a inteligenței artificiale în acest domeniu este legată în principal de teoria legăturii dintre planurile micro și macro o problemă teoretică fundamentală, referitoare la posibilitatea apariției unor forme inconștiente, neplanificate de cooperare, organizare și inteligență, adică emergența ordinii infosociale spontane (Conte, 2001). Și aici diferă gradul de complexitate al agenților implicați. Luis Mateus Rocha (1999) introduce noțiune de agenți semiotici, suficient de simpli pentru ca ansamblul lor să genereze comportamente emergente neplanificate, dar în același timp suficient de complecși pentru a poseda o reprezentare adecvată a cunoștințelor și posibilitatea de a partaja aceste cunoștințe, în ideea de a simula o .cultură. comună simbolică.
Un pas înainte în ceea ce privește .umanizarea. agenților sociali este adăugarea unor caracteristici de agenți psihologici (Watt, 1996). Utilitatea acestora s-ar dovedi în construirea unor sisteme hibride în care agenții și oamenii să interacționeze din punct de vedere social, deoarece în present agenții nu sunt suficient de flexibli pentru a lucra efectiv în societăți umane.
Agenții psihologici ar trebui să poată descifra în mod euristic (a găsi, a descoperi, .åýñçêá., am găsit) stările intenționale umane și să poată comunica folosind limbajul natural. [8]
În lucrările unor cercetători precum Sloman (2003) sau Wright (1997) se prezintă un agent emoțional, numit MINDER1, construit cu ajutorul mediului de dezvoltare SIM_AGENT. Trăsăturile emoționale sunt simulate prin așa-numitele perturbații în procesul normal de acțiune, o pierdere parțială sau totală a controlului asupra atenției. arhitectura specifică CogAff. Aceasta este organizată pe trei niveluri:
primul nivel cuprinde mecanisme reactive, fără capacitate de reprezentare, evaluare și comparare a acțiunilor posibile. Reacțiile concurente sunt rezolvate într-o manieră non-deliberativă, care nu utilizează inferențe;
al doilea nivel este compus din mecanisme deliberative, care pot reprezenta și analiza descrieri ale cursurilor de acțiune viitoare bazate pe scenarii ipotetice sau pe explicații ale fenomenelor observate anterior;
al treilea nivel conține mecanisme de meta-management, care permit auto-observația și auto-monitorizarea unei game largi de stări interne, împreună cu evaluarea și categorizarea acestora. La acest nivel se desfășoară procesele de învățare și control al acțiunilor viitoare, care pot de asemenea modifica scopurile curente. [8]
Simularea bazată pe agenți este aplicabilă și în studiul diverselor activități economice. Agenții economici sunt potriviți pentru studiul analytic al comerțului electronic deoarece aceștia fac posibilă modelarea interconexiunilor complexe care caracterizează piețele electronice. Structurile cele mai importante în acest domeniu sunt constrângerile legate de standardele tehnologice, legislația comerțului electronic și relațiile comerciale deja existente. O tranzacție economică implică șase stadii
(Taylor, 2003):
recunoșterea problemei;
căutarea de informații;
evaluarea alternativelor;
negocierea;
decizia de achiziționare;
evaluarea ulterioară.
Tehnologia bazată pe agenți poate fi aplicată în unele din aceste stadii (Moukas, Guttman & Maes, 1998), deoarece piața Internet-ului diferă de piețele tradiționale. Odată cu dezvoltarea tehnologiei pentru comerțul electronic, vor apărea și noi modele de tranzacționare care vor conduce la scăderea costurilor prin intermedierea procesului de vânzare-cumpărare de către agenți. [8]
2.5 Arhitecturi de agenți inteligenți
2.5.1 Arhitectura generală a unui agent inteligent
Mediul de execuție al unui agent este caracterizat de o mulțime de stări: S = {s1, s2, …}. În orice moment, mediul se găsește în una din aceste stări. Capacitatea efectorică a agentului este reprezentată de o mulțime de acțiuni: A = {a1, a2, …}. În aceste ipoteze, un agent poate fi văzut ca o funcție:
act : S* A,
care alege o acțiune de executat în concordanță cu starea mediului. Un agent modelat de o astfel de funcție este un agent standard (Wooldridge, 2000). Un agent inteligent poate însă decide acțiunea următoare și în funcție de stările mediului pe care le-a traversat până la un moment dat, de .experiența. acumultată. Prin urmare, și comportamentul mediului poate fi modelat printr-o funcție:
env : S x A(S) ,
unde (S) semnifică mulțimea părților lui S (mulțimea de mulțimi care pot fi formate cu elementele lui S). Valoarea funcției într-o anumită stare a mediului, adică rezultatul acțiunii agentului, reprezintă o mulțime de stări. Dacă aceste mulțimi sunt singleton, adică au un singur element, ceea ce înseamnă că acțiunea rezultă într-o singură stare posibilă a mediului, acesta este determinist și comportamentul său poate fi anticipat. În caz contrar, mediul este nedeterminist.
Comportamentul caracteristic al unui agent în mediu este mulțimea tuturor istoriilor care satisfac proprietățile menționate. Dacă o anumită proprietate este caracteristică tuturor acestor istorii, aceasta este o proprietate invariantă a agentului în mediul său. De exemplu, să considerăm un agent care controlează temperatura dintr-o cameră. Dacă în nici o istorie posibilă temperatura nu depășește 30˚C sau nu scade sub 10˚C, aceste proprietăți sunt invariante. Mulțimea istoriilor agentului ag în mediul med se notează hist(ag, med).
Doi agenți ag1 și ag2 au comportamente echivalente în raport cu un mediu, med, dacă și numai dacă hist(ag1, med) = hist(ag2, med).
Doi agenți ag1 și ag2 au comportamente echivalente dacă și numai dacă au comportamente echivalente în raport cu toate mediile: med, hist(ag1, med) = hist(ag2, med). În general, este interesant studiul agenților care, prin prisma autonomiei, nu încetează niciodată interacțiunile cu mediul și deci au istorii infinite.
Luarea deciziilor de către un agent inteligent se bazează pe acestă istorie a interacțiunilor cu mediul. Concret, acest lucru este modelat prin introducerea unor stări interne. După observarea mediului, agentul își actualizează starea internă iar acțiunea următoare este selectată în funcție de această stare, după care întregul ciclu se reia.
Un agent este un sistem cibernetic care primește informații din mediu și acționează la rândul său asupra acestuia. Analiza unei arhitecturi generale presupune studierea separată a celor două omponente. În cele ce urmează, ne vom referi la funcțiile de percepție ale unui agent, care trebuie să-și observe mediul pentru a lua deciziile de acțiune.
În cazul unui agent care acționează în lumea reală, cum ar fi de exemplu un robot, funcția de percepție poate fi implementată hard (o cameră video sau diverși alți senzori). Un agent software trebuie să dispună de mecanisme de examinare a mediului . direct, prin accesarea unei variabile sau a unei zone de memorie, sau indirect, prin intermediului unor mesaje.
Funcția de percepție poate fi definită astfel:
see : S P ,
unde P este o mulțime de elemente de percepție (engl. .percepts.). În acest caz, funcția de acțiune poate fi redefinită astfel:
act : P* A.
Procesul de luare a deciziilor de acțiune în funcție de percepția mediului poate fi reprezentat ca în figura următoare:
Fig.4 Percepția și acțiunea unui agent(preluat din [8])
Uneori este posibil ca două stări distincte ale mediului să provoace același element de percepție. Să presupunem că un agent robotic este înzestrat cu o cameră video pe care o utilizează pentru a distinge culoarea obiectelor întâlnite. Dacă este permisă încălzirea unor obiecte, adică se mărește numărul stărilor posibile ale mediului, mulțimea elementelor de percepție posibile ale agentului va rămâne aceeași, deoarece acesta nu are capacitatea de a detecta temperatura. Dacă pentru aceeași poziție a
agentului, același obiect are în starea s1 a mediului temperatura t1 iar în starea s2 – temperatura t2, atunci s1 s2, însă see(s1) = see(s2). Din punctual de vedere al agentului, stările s1 și s2 sunt indistinctibile.
Dacă:
s1, s2 S, s1 s2, see( s1) see( s2) ,
adică agentul poate distinge toate stările mediului, agentul este omniscient. Putem spune că un agent este omniscient dacă funcția sa de percepție este injectivă.
La cealaltă extremă, dacă:
s1, s2 S, see( s1) see( s2) ,
adică toate stările mediului provoacă același element de percepție, agentul nu are capacitate de percepție. El nu poate distinge nici o stare; pentru el toate stările mediului sunt identice. [8]
2.5.2 Arhitecturi logice
Abordarea tradițională în ceea ce privește construirea sistemelor artificiale inteligente se referă la înzestrarea acestora cu reprezentări simbolice ale domeniului în care acestea funcționează. Astfel, agenții pot avea o descriere a mediului la nivel de formule logice, iar rezultatul acțiunilor asupra sa ar corespunde unei deducții logice (Wooldridge, 2000).
Ideea ca un sistem bazat pe agenți să-și îndeplinească obiectivele în forma unei demonstrații de teoreme este foarte atrăgătoare și a fost aplicată cu succes în ultimii ani. În mod normal, o problemă de o anumită complexitate este divizată progesiv în probleme din ce în ce mai simple, care pot fi rezolvate cu ușurință (metoda .divide et impera.). În cazul agenților care acționează ca demonstratori de teoreme, acest proces nu are loc; o teoremă este o specificație executabilă, care este executată direct pentru a produce un anumit comportament.
Agenții bazați pe logică au stările interne organizate sub forma unei mulțimi de formule predicative de ordinul întâi, de forma:
Capacitate(floppy, 1.44)
Culoare(taxi, galben)
Citește(carte)
Fie L mulțimea propozițiilor predicative de ordinul întâi și D (L) baza de date formată din mulțimea mulțimilor de formule L. Starea internă a unui agent bazat pe logică este un element ∆ al mulțimii D. Luarea unei decizii este determinată de o mulțime de reguli de inferență, ρ. Notăm prin ∆ ├ φ faptul că formula φ poate fi derivată din ∆ numai prin regulile de inferență ρ. Algoritmul următor prezintă procesul decizional al unui agent bazat pe logică (Wooldridge, 2000):
function act(∆: D): A
begin
foreach aA do
if ∆ ├ Do(a) then
return a
end-if
end-for
foreach aA do
if ∆ ├ Do(a) then
return a
end-if
end-for
return null
end
Pe baza regulilor de inferență și a formulelor predicative, agentul încearcă să determine acțiunea următoare a pe care trebuie să o efectueze: Do(a). În prima buclă for, agentul încearcă să deriveze o acțiune posibilă din starea internă ∆. Dacă acest lucru este posibil, funcția va returna acțiunea respectivă și agentul o va selecta pentru execuție.
Dacă nu reușește să găsească așa ceva, agentul caută o acțiune consistentă cu baza de cunoștințe și cu regulile de inferență, adică o acțiune care nu este interzisă în mod explicit, astfel încât non(Do(a)) să nu poată fi derivată. În final, dacă nici o acțiune corectă nu poate fi găsită, se returnează acțiunea nulă. [8]
2.5.3 Arhitecturi reactive (reflexe)
Arhitecturile bazate pe logică, în care luarea deciziilor este un process de deducție, sunt arhitecturi elegante și clare deoarece comportamentul agenților este definit explicit. Însă complexitatea inerentă acestora este un dezavantaj evident, mai ales în cazul mediilor complexe, dinamice. Apar de asemenea și probleme de extensibilitate și robustețe iar atingerea scopurilor multiple aflate în competiție este dificilă. O abordare diferită este adusă de arhitecturile reactive sau reflexe.
În ceea ce privește terminologia, în literatura română de specialitate se întâlnește denumirea de “agent reflex” pentru traducerea sintagmei “reactive agent” din literatura anglo-saxonă. Deși sensurile celor două cuvinte sunt foarte apropiate, am preferat folosirea termenului “reactiv”, deoarece aceeași noțiune se referă și la proprietatea de “reactivitate” a unui agent, pentru care expresia “reflexivitate” ar fi oarecum improprie.
Spre sfârșitul anilor ‘80, cercetătorii au început investigarea unor alternative pentru paradigma simbolică clasică a inteligenței artificiale. Ideea centrală în aceste abordări este faptul că acțiunile raționale inteligente sunt în strânsă legătură cu mediul în care acestea au loc. Inteligența este astfel un produs al influențelor reciproce dintre agent și mediu. Comportamentul inteligent emerge din interacțiunile unor comportamente mai simple (Wooldridge, 2000). [8]
Una dintre cele mai cunoscute arhitecturi reactive este așa-numita arhitectură de subsumare (engl. “ubsumption architecture”), care îi aparține lui Rodney Brooks (1986; 1991a; 1991b). Există două caracteristici definitorii ale acestei arhitecturi. În primul rând, agentul alege un comportament adecvat dintr-o mulțime de comportamente adecvate îndeplinirii sarcinii. Fiecare comportament poate fi gândit ca o funcție de acțiune individuală, care preia intrarea perceptivă și generează o acțiune.
În al doilea rând, se consideră că mai multe comportamente se pot activa (sau .aprinde.) simultan. De aceea, trebuie să existe un mecanism de selecție a unei acțiuni unice la un moment dat. Brooks a propus existența unei ierarhii, comportamentele fiind așezate pe diferite niveluri de competență. Nivelurile inferioare din ierarhie pot inhiba nivelurile superioare . cu cât un nivel este mai scăzut, cu atât are o prioritate mai mare. Se poate spune că nivelurile superioare reprezintă comportamente mai abstracte.
În arhitecturile reactive există o strânsă legătură între funcția perceptivă și cea acțională- intrarea senzorială nu este transformată sau prelucrată foarte mult și nici nu se încearcă transformarea percepțiilor în reprezentări simbolice. Funcția de decizie act se realizează printr-o mulțime de comportamente posibile împreună cu o relație de inhibiție între acestea. Un comportament este o relație (c, a), unde c P este o mulțime de percepții numite “condiții”, iar a Aeste o acțiune. Un comportament (c, a) se va activa când mediul este în starea sS dacă și numai dacă funcția de percepție, see(s)c .
Fie Beh mulțimea tuturor astfel de reguli (engl. “behaviour”, comportament):
Beh {(c,a) c P a A}.
Cu mulțimea de reguli de comportament ale agentului R Beh este asociată o relație de inhibiție binară definită pe mulțimea de comportamente: γ RR , tranzitivă, nereflexivă și antisimetrică:
b1, b2, b3 R , dacă b1 γ b2 și b2 γ b3, atunci b1 γ b3
nu există b ∈R, astfel încât b γ b
b1, b2, R, dacă b1 γ b2 și b2 γ b1, atunci b1 = b2
Dacă pentru două comportamente b1 și b2 avem ( b1,b2 ) γ, se spune că “b1 inhibă pe b2” sau “b1 are prioritate față de b2” și se scrie b1 γ b2 .
Algoritmul de alegere a funcției de acțiune este următorul (Wooldridge, 2000):
-se calculează mai întâi toate comportamentele care se pot activa, și apoi pentru fiecare comportament se determină dacă există un comportament cu prioritate mai mare. Dacă un astfel de comportament nu există, se returnează acțiunea a corespunzătoare comportamentului. Dacă nici un comportament nu se activează, se returnează o acțiune nulă (în momentul următor agentul nu va efectua nici o acțiune). Complexitatea algoritmului este în cazul cel mai defavorabil O(n), unde n este maximum dintre numărul de comportamente și numărul de elemente de percepție. [8]
Arhitectura lui Brooks se adresa în principal agenților robotici. În acest caz, nivelurile de competență pot avea semnificațiile din exemplul următor (Bergmann, 1998):
Nivelul 0: evitarea coliziunilor cu obiecte statice sau în mișcare;
Nivelul 1: mișcarea aleatorie cu evitarea coliziunilor;
Nivelul 2: explorarea împrejurimilor și marcarea locurilor inaccesibile;
Nivelul 3: alcătuirea unei hărți a mediului și stabilirea rutelor dintre diverse locații;
Nivelul 4: recunoașterea schimbărilor din mediu;
Nivelul 5: recunoașterea obiectelor și sarcinilor aferente acestora;
Nivelul 6: formularea și executarea planurilor pentru schimbarea mediului într-o manieră semnificativă;
Nivelul 7: conceperea unor modalități de control al obiectelor din mediu și reconsiderarea în consecință a planurilor existente.
Comportamentele amintite pot fi dispuse în ierarhia următoare:
Nivelul 0 γ Nivelul 1 γ Nivelul 2 γ Nivelul 3 γ
Nivelul 4 γ Nivelul 5 γ Nivelul 6 γ Nivelul 7
Avantajele principale ale acestei arhitecturi se referă la simplitate, economie în ceea ce privește resursele și robustețe în acțiune. Ea are drept model lumea reală, evitând în acest mod păstrarea unui model intern al mediului. Dificultățile care țin de dinamica mediului sunt evitate prin înlăturarea oricăror încercări de predicție, mai ales că modelul presupune existența unor elemente de percepție eronate (de exemplu, senzori care se defectează) (Laird et al., 1994).
Însă există și unele probleme nerezolvate legate de arhitecturile pur reactive. De vreme ce agenții nu au un model al mediului, ei trebuie să aibă suficiente date locale pentru selectarea unei acțiuni acceptabile. De asemenea, este dificilă înzestrarea unor agenți reactivi cu abilitatea de a învăța și de a-și îmbunătăți performanțele în timp (Wooldridge, 2000). De asemenea, planificarea acțiunilor pentru îndeplinirea unor scopuri complexe este problematică.
Unii cercetători au încercat unificarea arhitecturilor rațională și reactivă (Kowalski & Sadri, 1997). În acest caz, raționalitatea este dobândită prin utilizarea definițiilor pentru reducerea scopurilor la o mulțime de scopuri mai simple. Reactivitatea intervine prin folosirea constrângerilor de integritate pentru simularea regulilor situație-acțiune și prin formularea procedurilor de demonstrare a teoremelor în așa fel încât să poată fi întrerupte pentru efectuarea de observații și executarea de acțiuni. [8]
2.5.4 Arhitecturi BDI
În acest tip de arhitectură, propus de Rao și Georgeff (1991), starea agentului este definită de trei caracteristici: convingeri (engl. “beliefs”), dorințe (engl. “desires”) și intenții (engl. “intentions”). Modelul încearcă o adaptare în domeniul agenților a filosofiei raționamentului practic, care presupune mai întâi stabilirea scopului, printr-un proces deliberativ, și apoi evidențierea mijloacelor disponibile pentru atingerea acelui scop.
Convingerile reprezintă cunoștințele pe care le are agentul despre mediu. Acestea îi pot veni agentului direct prin funcția perceptivă sau indirect prin prelucrarea informațiilor rezultate în urma execuției unor acțiuni. Dorințele corespund scopurilor agentului sau, altfel spus, task-urilor pe care trebuie să le îndeplinească acesta. Task-urile îi pot fi atribuite de către utilizator, de către un alt agent sau pot fi generate intern. În general, dorințele se doresc a fi consistente, adică realizarea unei dorințe să nu împiedice îndeplinirea alteia. Intențiile pot fi văzute ca o mulțime de planuri care, executate de obicei într-o ordine bine stabilită, conduc la îndeplinirea unui scop.
Să considerăm de exemplu un agent care, acționând în numele unui utilizator uman, dorește să găsească unele informații în diverse baze de date de pe Internet. Să considerăm că unele baze de date sunt mai mari și mai complete, însă pot fi accesate doar contra cost, iar altele, mai numeroase dar cu mai puține informații, pot fi consultate gratis.
Agentul trebuie să determine opțiunile disponibile, în funcție de posibilitățile de acțiune. Dacă utilizatorul nu are destui bani, bazele de date complete nu pot fi utilizate. Rămâne opțiunea bazelor de date gratuite, care necesită un efort mai mare de căutare, deoarece probabilitatea găsirii informațiilor este mai redusă. Alegerea acestei alternative semnifică intenția agentului.
În același timp, trebuie să existe convingerea că scopul poate fi atins. Agentul trebuie să considere că există șanse pentru descoperirea datelor. Dacă probabilitatea ar fi evaluată la 0, adică dacă agentul ar avea convingerea că realizarea scopului în acest mod este imposibilă, urmărirea în continuare a intenției curente ar fi irațională.
În continuare, dacă agentul are motive să-și mențină o anumită intenție, trebuie să facă un efort acceptabil pentru împlinirea acesteia. Dacă o direcție de acțiune eșuează, este necesară reluarea acesteia sau selectarea unei alte direcții. De exemplu, dacă o bază de date este inaccesibilă momentan (este închis serverul pe care se află ea), agentul poate încerca din nou, mai târziu. Dacă situația se repetă, agentul poate trage concluzia că aceste încercări sunt inutile, că este o pistă greșită și în consecință va elimina din lista sa baza de date respectivă. El va consulta în continuare celelalte baze de date rămase. [8]
Este important ca, în timp ce se urmărește o anumită intenție, să nu se încerce acțiuni care intră în conflict cu aceasta. În cazul considerat, agentul trebuie să se concentreze asupra regăsirii datelor utile. Dacă s-ar încerca simultan și descărcarea unor filme sau piese muzicale, acest lucru ar însemna o irosire a resurselor, ceea ce ar determina un timp de răspuns mult mai mare.
Intențiile trebuie să fie persistente. Dacă agentul ar renunța după primul eșec, nu și-ar mai îndeplini niciodată sarcinile complexe. El trebuie să facă toate eforturile pentru găsirea posibilităților încununate de succes. Cu toate acestea, dacă devine clar că scopul nu poate fi atins, agentul trebuie să poată renunța la intenție. De exemplu, dacă după consultarea tuturor bazelor de date, informațiile nu au fost găsite, este logic ca agentul să îl anunțe pe utilizator despre acest lucru, deși teoretic ar fi posibilă o actualizare ulterioară a unei baze de date, în care să fie adăugate informațiile dorite.De asemenea, dacă dispare motivul care stă la baza unei intenții, aceasta trebuie abandonată. Dacă utilizatorul nu mai are nevoie de datele cerute, nu mai are rost ca agentul să continue căutarea.
Sintetizând, un agent BDI efectuează următoarele funcții:
Generarea unui liste de opțiuni, mijloacele alternative pentru satisfacerea intențiilor curente. Noile opțiuni sunt generate pe baza convingerilor și dorințelor agentului;
Selectarea unei submulțimi din aceste opțiuni, pe baza convingerilor, dorințelor și intențiilor curente. Noile intenții, adică opțiunile selectate pentru aplicare, sunt adăugate structurii de intenții;
Structura de intenții are o organizare ierarhică, pe diferite niveluri de abstracțiune. Agentul BDI își rafinează treptat intențiile, ajungând la acțiuni primitive care pot fi executate imediat. Dacă există o asemenea acțiune atomică în structura de intenții, ea este executată;
Dacă agentul și-a îndeplinit intenția sau a decis că intenția nu poate fi îndeplinită, aceasta este abandonată. Se poate spune că agentul renunță la o intenție dacă aceasta nu mai este justificabilă (Cohen & Levesque, 1990);
Convingerile agentului sunt actualizate și algoritmul se reia. [8]
O problemă importantă este planificarea acțiunilor, adică stabilirea structurii planurilor și a ordinii în care acestea pot fi aplicate pentru structurarea unei intenții. De obicei, agenții beneficiază de o bibliotecă predefinită de planuri, care descrie precondițiile (adică starea agentului și a mediului în care planul este aplicabil), o serie de acțiuni punctuale (planul propriu-zis) și postcondițiile (adică modificările rezultate în urma efectuării planului). Sunt interesante sistemele în care agenții își pot defini propriile planuri, pe baza experienței căpătate în decursul execuției.
O metodă foarte des utilizată în planificare este analiza mijloacescopuri. Ideea care stă la baza sa este detectarea diferenței dintre starea curentă și starea scop și găsirea unei operații care să micșoreze această diferență. Însă dacă operația respectivă nu poate fi aplicată în starea curentă, trebuie găsită o nouă stare, potrivită acestui subscop. Rezultă o subproblemă care trebuie la rândul ei rezolvată și metoda se aplică recursiv. În acest scop se utilizează o tabelă de diferențe, în care se precizează ce operație este aplicabilă pentru fiecare stare a problemei. Deseori, agenții trebuie să opereze într-un mediu dinamic în care scopuri ce păreau la un moment dat realizabile se dovedesc imposibil de atins. De aceea, pentru agenții BDI este important echilibrul dintre situațiile în care ei trebuie să-și mențină și să-și urmărească intențiile curente, chiar în urma unui eșec, și situațiile în care trebuie să-și reanalizeze și eventual să-și abandoneze intențiile.
Un agent care nu se oprește niciodată să-și reconsidere acțiunile va continua execuția chiar și atunci când este clar că încearcă imposibilul. Un agent care încearcă în permanență să-și evalueze scopurile și intențiile nu va avea suficient timp să acționeze efectiv pentru îndeplinirea lor. Este evident că în proiectarea unui agent BDI trebuie să se realizeze un compromis între aceste două tendințe. Kinny și Georgeff (1991) au efectuat un număr de experimente întrun cadru de agenți BDI numit dMARS. Ei au analizat modul în care se comportă agenții îndrăzneți (engl. “bold”) și cei prudenți (engl. “cautious”) în medii cu rata schimbărilor y variabilă. S-a constatat că atunci când rata y era mică (mediul nu se schimba prea repede), agenții îndrăzneți au avut evoluții superioare, deoarece nu pierdeau timpul reanalizându-și mereu obiectivele. Când y era mare (mediul se schimba des), agenții prudenți se comportau mai bine, pentru că se puteau adapta modificărilor frecvente.
Concluzia este că în mediile statice sunt mai potriviți agenții cu un comportament proactiv, orientat spre scop, în timp ce mediile dinamice necesită un comportament reactiv, care să modifice permanent intențiile curente în funcție de situație.
Pentru a formaliza componentele unei arhitecturi BDI, fie Bel mulțimea tuturor convingerilor, Des mulțimea tuturor dorințelor iar Int mulțimea tuturor intențiilor posibile. În general, aceste mulțimi sunt compuse din formule logice de ordinul întâi. Starea unui agent BDI, la un moment dat, este o tripletă (B, D, I ), unde B Bel , D Des și I Int . În figura 5 se prezintă schematic modul de selecție a unei acțiuni (Wooldridge, 2000).
Funcția de revizuire a convingerilor (belrev) are rolul de a actualize mulțimea convingerilor pe baza elementelor de percepție și convingerilor curente:
belrev :(Bel) P (Bel) .
Funcția de generare a opțiunilor (optgen) are rolul de a decide cum vor fi atinse obiectivele:
optgen :(Bel) (Int) (Des) .
Această funcție trebuie să recunoască oportunitățile apărute în mediul de execuție și să ofere agentului noi modalități de a-și îndeplini intențiile sau posibilitatea de a atinge obiective care nu puteau fi atinse anterior.
Figura 5 Diagrama unei arhitecturi BDI
Procesul deliberativ al agentului este modelat de o funcție filtru (filter), care actualizează mulțimea intențiilor pe baza intențiilor prealabile și a convingerilor și dorințelor curente:
filter :(Bel) (Des) (Int) (Int) .
Această funcție trebuie să asigure:
abandonarea intențiilor irealizabile sau pentru care costul de realizare este mai mare decât beneficiul asociat cu îndeplinirea lor;
menținerea intențiilor nerealizate încă, dar despre care se presupune că pot aduce un câștig;
adoptarea de noi intenții, pentru realizarea intențiilor existente sau pentru exploatarea noilor circumstanțe favorabile apărute. [8]
Filtrul nu poate introduce de la sine noi intenții. Acestea sunt ori intenții anterioare, ori opțiuni nou adoptate:
B (Bel), D(Des), I (Int), filter(B,D, I ) I D .(2.21)
Funcția de execuție (exec) returnează o intenție atomică executabilă:
exec :(Int) A .
Funcția de selecție a acțiunii următoare este de forma:
act : P A
și rezultă pe baza algoritmul următor (Wooldridge, 2000):
function act(p: P): A
begin
B = belrev(B, p)
D = optgen(D, I)
I = filter(B, D, I)
return exec(I)
end
În practică, reprezentarea intențiilor printr-o mulțime nestructurată este prea simplistă. De aceea, se poate asocia fiecărei intenții o anumită prioritate, care să indice importanța sa relativă. De asemenea, intențiile pot fi implementate sub forma unei stive. Când este adoptată o intenție, aceasta este introdusă în stivă. Când este îndeplinită, este extrasă din stivă. Intențiile mai concrete se vor găsi mai aproape de vârful stivei, iar cele mai abstracte în partea inferioară a acesteia.
Arhitectura BDI este un model intuitiv de simbolizare a procesului de decizie, oferind și o descompunere funcțională clară a problemei pe care trebuie să o rezolve agentul. Modelul este interesant și datorită efortului susținut de formalizare a sa. Astfel, Rao și Georgeff (1992) au dezvoltat o serie de logici BDI, pentru definirea unor proprietăți axiomatice ale agenților raționali. [8]
2.5.5 Arhitecturi stratificate
Pe parcurs au fost menționate comportamentele de tip reactiv și proactiv de care trebuie să dispună un agent inteligent. Acestea pot fi asigurate prin descompunerea tipurilor amintite în subsisteme separate, care să propună acțiuni specifice. Ideea care stă la baza acestui tip de arhitectură este existența mai multor straturi care interacționează, fiecare cu un anumit caracter. În funcție de modul în care se realizează controlul și transmiterea informațiilor, putem deosebi două mari categorii de arhitecturi stratificate:
Stratificare orizontală: Nivelurile sunt conectate direct cu senzorii și efectorii și acționează în paralel. Fiecare nivel acționează ca un agent, prezentând propriile sugestii în ceea ce privește următoarea acțiune care trebuie executată;
Stratificare verticală: Senzorii și efectorii sunt administrați de cel mult un nivel fiecare.
Avantajul principal al stratificării orizontale este simplitatea conceptuală: dacă un agent trebuie să manifeste n tipuri de comportament, atunci vor fi implementate n straturi. Totuși, deoarece straturile concurează pentru generarea de sugestii privind acțiunile, trebuie asigurată coerența comportamentală pe ansamblu (Wooldridge, 2000). De regulă, se introduce o funcție de mediere, care decide ce strat deține controlul la un moment dat.
Însă proiectarea acestei funcții poate fi foarte dificilă pentru n straturi care pot propune fiecare m acțiuni, funcția trebuie să fie capabilă să trateze mn variante posibile.
Figura 6 Stratificare orizontală(preluat din [8] pag 34)
Aceste probleme sunt atenuate într-o stratificare verticală. Acest tip de arhitectură poate fi divizat în două subcategorii, din punctul de vedere al modului de control (Wooldridge, 2000):
Control cu trecere simplă (engl. “one pass control”): Controlul parcurge secvențial nivelurile, până când ultimul nivel generează o acțiune;
Control cu trecere dublă (engl. “two pass control”): Primul pas constă în trimiterea informațiilor spre nivelurile superioare, iar al doilea pas reprezintă trimiterea deciziei de acțiune înapoi spre straturile inferioare. Acest tip de control se aseamănă cu procesul luării deciziilor într-o organizație cu o ierarhie bine definită.
În ambele cazuri, complexitatea interacțiunilor dintre straturi este mai redusă în comparație cu arhitecturile stratificate orizontal. Dacă fiecare strat poate sugera m acțiuni și există n-1 interfețe între cele n niveluri, numărul maxim posibil de interacțiuni este m2 (n 1) . Dezavantajul acestei abordări constă în reducerea flexibilității . informațiile și deciziile trebuie să parcurgă toate straturile. O eroare la un anumit nivel se va propaga, afectând performanțele agentului.
Control cu trecere simplă Control cu trecere dublă
Figura 7 Stratificare vertical (preluat din [8] pag 36)
2.6 Agenții și mediul
Agenții există și funcționează într-un anumit mediu. Poate în nici un tip de sistem, mediul nu joacă un rol atât de important ca în cazul agenților.
Agenții percep mediul prin senzori și acționează asupra lui prin efectori (figura 5.2).
percepție
(senzori)
Mediu Agent
acțiune
(efectori)
Figura 8-preluata din [10]
Am văzut că o proprietate fundamentală a agenților este autonomia. Totuși, autonomia nu trebuie înțeleasă în mod absolut. Practic, agenții nu pot fi nici total autonomi de influențe externe și nici complet dependenți de acestea. Ei întotdeauna depind într-o anumită măsură de factorii externi.
Un mediu reprezintă, în esență, condițiile în care există și funcționează un agent. Astfel spus, mediul definește proprietățile lumii în care agenții se află. Un mediu constă, deci, nu numai din toate entitățile aflate în jur, dar și din acele principii, legi și procese în care agenții există și interacționează. Proiectarea și implementarea agenților necesită luarea în considerare a acestor factori.
Un exemplu tipic de agent situat într-un mediu este mușuroiul de furnici. Furnicile interacționează una cu cealaltă prin intermediul feromonilor pe care ele îl depozitează în mediu și acesta le ghidează acțiunile. Numeroase interacțiuni individuale conduc la dezvoltarea emergentă a drumurilor urmate de furnici prin mediu. Totuși, mediul este mai mult decât un canal de comunicare. Agenții depind
atât de suportul fizic, tangibil, cât și de ceilalți agenți. Două aspecte sunt deci critice pentru mediile agenților: cel fizic și cel comunicațional.
Mediul fizic definește acele principii și procese care guvernează și susțin o populație de entități (agenți). De exemplu, pentru agenții biologici (animale și plante), ne referim la mediul lor fizic ca la o nișă ecologică. În ce privește agenții artificiali, aceștia pot avea diferite cerințe pentru a supraviețui (funcționa), dar au nevoie de un mediu fizic (similar nișei ecologice) pentru a exista.
Din definiția dată mediului fizic se observă că elementele fundamentale ce îl definesc sunt principiile și procesele. Principiile sunt legile naturii ce exprimă adevărurile fundamentale care sunt esențiale în lumea care ne înconjoară. Pentru agenți, principiile mediului fizic se pot introduce sub forma unor legi, reguli, restricții și politici care guvernează și susțin existența fizică a agenților. După (Weiss, 1999) și (Russell, Norvig, 1995), caracteristicile de bază pentru un mediu fizic se pot referi la:
accesibilitate: în ce măsură mediul este cunoscut de către agent? Un mediu se spune accesibil dacă agentul poate să aibă acces la starea mediului relevantă pentru alegerea acțiunii următoare.
determinism: în ce măsură agentul poate să prezică evenimente din mediu? Mediul este determinist când următoarea stare a acestuia poate fi determinată din starea curentă și din acțiunile alese de agenți.
diversitate: cât de omogene sau de eterogene sunt entitățile din mediu?
controlabilitate: în ce măsură agentul poate modifica mediul său?
volatilitate: cât de mult poate mediul să se schimbe în timp ce agentul alege o acțiune următoare?
temporalitate: este timpul divizat într-o manieră bine definită? De exemplu, acțiunile agentului se desfășoară continuu sau discret în timp?
localizare: are agentul o locație distinctă în mediu care poate sau nu poate să fie aceeași ca locația altor agenți cu care el împarte mediu. [10]
Procesele reprezintă cea de-a doua caracteristică esențială a mediului. După (Parunak, 1996), un mediu se poate exprima sub forma:
Mediu = < Staree, Procese >,
unde Staree reprezintă o mulțime de valori care definesc complet mediul. Structura, domeniile de valori și variabilitatea acestor valori nu sunt restricționate în această definiție, fapt ce face ca să apară foarte multe diferențe între diferitele tipuri de medii. Procese reprezintă o acțiune executată autonom care schimbă starea mediului, Staree. Executată autonom înseamnă că procesul de desfășoară fără să fie invocat de o entitate exterioară.
Cel mai important fapt în definiția de mai sus dată mediului este că mediul însuși este activ, el având propriul său proces care schimbă starea sa – ce include agenții și obiectele din cadrul mediului – independent de acțiunile în care sunt implicați acești agenți.
Diferite medii fizice vor fi necesare pentru agenți de tipuri diferite și reciproc. În cazul agenților artificiali, mediul fizic este de cele mai multe ori mediul informațional, care poate include mijloace de transmisie, stocare și prelucrare a informației, mijloace de detecție și orientare în spațiu ș.a.
Pentru a susține această structură variată de mijloace tehnologice de procesare a informației se utilizează platforme de prelucrare comune. O platformă reprezintă baza pe care aplicațiile conținând agenți se realizează și care conține toate cerințele de mediu specifice ale agenților. FIPA (Federația Internațională a Agenților Fizici) a elaborat un standard, ,,Agent Platform” (FIPA, 1998) care definește o arhitectură abstractă pentru dezvoltarea aplicațiilor sistemelor bazate pe agenți. În figura 9 se reprezintă această platformă. [10]
Mediul fizic este un loc populat, deci poate conține și alți agenți. De aceea, atunci când se definește o aplicație, trebuie specificat dacă luăm sau nu alte entități, dacă mediul este deschis (deci pot intra în viitor alți agenți) sau închis. Populația mediului reprezintă totalitatea entităților luate în considerare.
Dacă în medii cu un singur agent, agenții sunt priviți ca entități independente, în medii cu mai mulți agenți, aceștia devin entități interdependente. Dacă în primul caz, agentul poate să acționeze singur, în al doilea caz el trebuie să comunice cu ceilalți agenți. Apare, astfel, conceptul de mediu comunicațional. Acesta conține, în primul rând, principiile și procesele care guvernează și susțin schimbul de idei, cunoștințe, informații și date. De asemenea, el conține acele funcții și structuri care sunt utilizate pentru a asigura comunicarea cu ceilalți agenți, cum ar fi roluri, grupuri și protocoale de interacțiune dintre roluri și grupuri.
Figura 9
Mediul comunicațional se poate atunci defini ca acele principii, procese și structuri care asigură o infrastructură pentru ca agenții să schimbe informații.
În esență, comunicarea presupune transmiterea informației de la o entitate la alta. Acest transfer de informație poate îmbrăca forme foarte simple (comunicare prin semne, de exemplu), până la forme extrem de complexe (de exemplu, comunicarea într-un proces de negociere). Comunicarea se presupune că are loc doar dacă starea internă a agentului care a primit mesajul se schimbă. Altfel vorbim de transmitere de informație. O modalitate de a determina dacă comunicarea a avut loc este deci să se ia în considerare rezultatul interacțiunii dintre doi agenți. În figura 10 sunt reprezentate diferite situații care pot apărea în comunicare. Se observă că avem cinci posibilități, dintre care cea mai complexă este situația e) în care cei doi agenți interacționează.
Interacțiunea dintre doi agenți presupune, deci, comunicarea bidirecțională dintre aceștia, altfel spus transmiterea de informație de la unul la celălalt și invers, informație care modifică starea internă a fiecărui agent în parte. Activitățile care sunt realizate de fiecare agent în procesul de comunicare se specifică în protocoalele de comunicare. În sistemele bazate pe agenți, comunicarea și interacțiunea pot fi utilizate împreună. Acest lucru necesită introducerea, pe lângă protocoalele de comunicare, și a protocoalelor de interacțiune. Luarea în considerare a interacțiunilor dintre agențiduce la necesitatea introducerii conceptului de mediu social.
Figura 10
Un mediu social este un mediu comunicațional în care agenții interacționează într-o manieră coordonată.
Rezultă deci că mediul social este inclus în mediul comunicațional. Nu toate comunicațiile dintre agenți sunt sociale, dar activitatea socială a agenților necesită comunicarea dintre aceștia. Mediul social este definit de coordonare, cooperare și competiție. În figura 11 se reprezintă raporturile dintre aceste concepte.
Mediul social este caracterizat de principii și procese, ca și celelalte medii, dar și de conținut, care îl diferențiază de mediul fizic și mediul comunicațional.
Corelația dintre conceptele mediului social
Comunicare și
Interacțiune
MEDIUL SOCIAL Coordonare
Cooperare și Competiție
Cunoaștere
Figura 11
Principiile mediului social sunt reprezentate de norme, obiceiuri, valori, obligații, dependențe ș.a. Acestea sunt incluse într-o serie de reglementări care caracterizează mediul social și anume:
Limbajul de comunicare: agenții comunică pentru a înțelege și a se face înțeleși. Mediile sociale bazate pe agenți trebuie să definească principiile sintactice, semantice și pragmatice ale limbajului de comunicare. În plus, trebuie definite tipurile de mesaje care vor fi utilizate (de exemplu, aserțiuni, lanțuri de aserțiuni, replici, cereri de comunicări) și antologia acestora. Deja au fost create limbaje de comunicare de tip agent cum ar fi FIPA ACL sau KQML.
Protocoale de interacțiune: un protocol de interacțiune între agenți descrie o modalitate de comunicare ca o secvență acceptată de mesaje între entități și restricțiile privind conținutul acestor mesaje.
Strategii de coordonare: agenții comunică pentru a-și atinge scopurile proprii și scopurile grupului social la care ei iau parte. Cooperarea, competiția, planificarea și negocierea sunt principii comune utilizate pentru a executa activități într-un mediu distribuit.
Politici sociale: regulile care impun un comportament social acceptabil. Ele includ reguli implicite și explicite de comportament, raportul dintre influență și putere etc.
Cultura: o mulțime de valori, credințe, dorințe, intenții, reguli morale care determină caracteristicile de mai sus (cultura afectează limbajul, protocolul de interacțiune, politicile sociale).
Procesele mediului social se referă la condițiile care determină ca agenții să interacționeze în mod productiv. În particular, acestea se referă la:
Managementul interacțiunii: gestiunea interacțiunilor dintre entități pentru a asigura că ele aparțin protocolului de interacțiuni dintre agenți care a fost ales. Apartenența la acest protocol poate fi asigurată de agenții participanți la interacțiuni fără ca mediul să fie implicat.
Prelucrarea limbajului: limbajul de comunicare poate fi analizat corect, el poate fi analizat corect dar să nu fie adecvat (de exemplu este contradictoriu), sau este corect dar neadecvat cu contextul agentului.
Servicii de coordonare: care pot fi servicii de evidență ce localizează agentul prin metode de tip pagini albe (pentru agentul individual), pagini galbene (pentru colectivități de agenți) și pagini verzi (servicii oferite), precum și servicii de mediere ce acționează prin intermediul unui agent mediator.
Pentru mediul social, spre deosebire de celelalte medii ale agenților, este important și conținutul acestuia.
Conținutul mediului social se referă la:
unitățile sociale (grupurile) la care agenții aderă;
rolurile jucate de aceștia în interacțiunile sociale;
toți ceilalți membri care joacă roluri în acele unități sociale.
Fiecare unitate socială (grup) reprezintă o mulțime de agenți asociați care au un interes sau un scop comun. Un grup poate fi vid dacă nu există agenți participanți; el poate conține un singur agent sau poate să aibă agenți multipli. Un rol este o reprezentare abstractă a unei funcții, serviciu sau identitate a unui agent în cadrul unui grup.
Pentru grupurile cu un singur agent definirea rolurilor este destul de simplă; reprezentarea rolurilor în sistemele cu agenți multipli (sisteme multiagent) devine însă extrem de complicată, necesitând abordarea distinctă în cadrul teoriei agenților a unor astfel de sisteme.
3. Sisteme de iluminat interior și exterior
Atunci când evaluăm un sistem de iluminat interior va trebui să includem în calcule sursele de lumină artificiale sau naturale precum și destinația și modul de utilizare al încăperilor pentru care dorim să modelăm sistemul.
De aceea un sistem automatizat de iluminat nu va conține numai întrerupătoare și becuri ci si o serie întreagă de alte echipamente:
Jaluzele exterioare
Stație meteo locală
Senzori de prezență
Senzori de detecție a nivelului de iluminare
Comutatoare cu iluminare de fundal
Temporizatoare
Module logice și de monitorizare
Sisteme de telefonie
Fig. 15- Preluata din [15]
Chiar dacă toate aceste elemente par să fie prea complicate pentru un sistem de iluminat nu uitați că majoritatea poate fi reutilizată și pentru alte funcții ale clădirii precum sistemul de automatizare a climatizării, cel de control de la distanță, etc. Prin urmare putem să prezentăm extensiv funcționalitățile posibile ale sistemului de iluminare fără să ne speriem de o valoare prea ridicată a notei de plată.
Funcții ale sistemului integrat de iluminare
Există mai multe scenarii de design al sistemului de iluminat însă toate pleacă de la proiectul de iluminat artificial care provine de la arhitect, de la specialiștii în design de sisteme de iluminat sau de la realitatea existentă în clădirea în care locuim sau muncim.
Stabilirea dispozitivelor de acționare
Astfel pentru fiecare dintre locurile care trebuiesc iluminate artificial există specificații pentru poziția si valoarea surselor de lumină artificială.
În următorul pas este necesar să decidem tipul acestor surse de lumină. Considerente de design dar și de conservare a energiei vor ajuta la alegerea unor becuri cu incandescență, cu descărcare în gaze sau noile tipuri de becuri LED. Alte considerente, de confort de pildă, pot dicta într-un anumit spațiu utilizarea unor becuri care să permită controlul intensității luminii – acest lucru este posibil la becurile cu incandescență și la cele cu descărcare în gaze dar nu funcționează pentru becuri economice sau LED. Trebuie menționat aici că anumiți producători au lansat becuri economice respectiv becuri LED care suportă controlul intensității însă deocamdată prețul acestor dispozitive este destul de ridicat.
După ce se stabilesc aceste detalii este necesar să se aleagă dispozitivele de acționare a lămpilor, funcție de tipul ales și de puterea disipată. Apoi aceste dispozitive se amplasează fizic în clădire și logic la magistrala de comunicație.
Stabilirea comenzilor
Următorul pas este stabilirea tipului și a amplasării dispozitivelor de comandă. Pentru un proiect rezidențial, funcție de tipul utilizatorilor clădirii, gama de dispozitive de acționare poate varia de la comutatoare cu aspect clasic, la comutatoare complexe cu senzori de atingere, telecomenzi sau interfețe touch screen pe telefoane mobile, iPod sau PC.
Pentru un proiect comercial se poate opta pentru soluții care să ajute la economisirea bugetului. Spre exemplu, într-un spațiu deschis cu multe posturi de lucru se poate alege iluminarea fiecărui post de lucru cu sursă de lumină individuală comandată direct de la postul telefonic al locului respectiv. În acest fel consumul de energie electrică va fi limitat la numărul efectiv de persoane care lucrează la ore târzii.
Sistemul ne permite să localizăm comenzile în orice punct al clădirii ceea ce permite realizarea următoarelor funcții:
Mai multe comutatoare pentru aceeași sursă de lumină
Comutatoare mobile
Comutatoare cu acționare generală
Comutatoare pentru iluminare combinate cu alte tipuri de funcții ale clădirii
Prin combinarea unor senzori de mișcare și nivel luminozitate cu funcții de temporizare oferite de dispozitivele de acționare se pot crea ușor comenzi automate pentru iluminatul scărilor sau al pasajelor de acces.
Funcții avansate de iluminare
Acolo unde natura spațiului justifică o investiție mai mare, se pot realiza funcții avansate de iluminare. Astfel putem asigura pentru un spațiu de lucru un nivel constant de iluminare combinând un senzor de intensitate a luminii cu comezile de control al intensitații luminii artificiale și cele de poziționare a jaluzelelor exterioare sau a grilajelor de reglaj al razelor solare care pătrund în incintă.
Pentru camere de conferință sau acolo unde vizionăm programe video putem să corelăm sistemele menționate anterior în scenarii de întilnire, discuții, prezentări cu proiector sau spațiu neutilizat.
Într-un spațiu rezidențial putem integra lumini utilitare cu lumini ambientale în scenarii diverse potrivite pentru primirea de musafiri, petreceri, vizionare filme, etc.
Alte funcții posibile
Dacă integrăm o stație meteo vom putea utiliza următoarele informații pentru controlul avansat al iluminării:
Luminozitatea exterioară ne permite să poziționăm jaluzelele exterioare la puncte prestabilite. Reglajul fin se va face din încăperi funcție de modul de utilizare ales.
Momentele de crepuscul la apus și la răsărit pot fi detectate și folosite în scopul aprinderii sau stingerii automate a luminilor exterioare
La fel, pe timpul nopții se pot aprinde câmpurile inscripționate ale comutatoarelor pentru o mai bună vizibilitate
Dacă integrăm un modul de monitorizare și logică avansată se mai pot realiza:
Listarea tuturor luminilor aprinse uitate la plecarea de acasă. Aceste lumini pot fi stinse prin interfața care le listează
Verificarea consumului de electricitate funcție de perioada din zi și de modul de utilizare al încăperilor
Integrarea sistemului de iluminat cu sistemele de securitate. Astfel în cazul unui incident chiar dacă alarma sonoră exterioară trebuie să fie limitată la 3 minute din cauza legislației europene, nimic nu ne împiedică să aprindem și să stingem toate luminile cadențat până la încetarea alarmei. Un astfel de fenomen este cu siguranță foarte vizibil!
4. Prezentarea platformei JADE
JADE (Java Agent Development Framework) este o platformă care facilitează dezvoltarea aplicațiilor distribuite multi-agent, conform specificațiilor FIPA (Foundation of Inteligent Physical Agent). Framework-ul a fost dezvoltat de către CSELT (Centro Studi e Laboratori Telecommunicazioni, cunoscut și ca Telecomm Italia Lab) împreună cu Computer Engineering Group de la Universitatea din Parma [12]. Platforma agent poate fi distribuită în întreaga mașină (nu trebuie nici măcar să împărtășească aceleași sistem de operare) și configurare poate fi controlată prin intermediul unui GUI (figura 12) de la distanță. Configurația poate fi schimbată chiar și în timpul rulării prin mutarea agenților de la o masina la alta, atunci când este necesar. JADE este complet pus în aplicare în limbajul Java și cerința minimă a sistemului este versiunea 1.4 Java.
JADE este un software gratuit și este distribuit de Telecom Italia, deținătorul drepturilor de autor, software-ul open source este în conformitate cu termenii de LGPL (Lesser General Public License versiunea 2). Din mai 2003, un consiliu de JADE a fost creat ca supervizare al Managementului Proiectelor JADE. În prezent, Consiliul de JADE conține 5 memberi: Telecom Italia, Motorola, Whitestein Technologies AG, Profactor GmbH și France Telecom R & D [11].
Figura 12. GUI pentru JADE RMA
Creat inițial în Java, JADE a fost portat în .NET compilându-se cu ANT (un utilitar de tip Makefile ce folosește ca intrare fisiere XML). Pentru a putea crea agenți JADE, în proiectul .NET trebuie adăugate ca referință assembly-ul obținut în urma compilării cu ANT și biblioteca vjslib.dll.
JADE este un proiect cu o dinamică extraordinară și suferă de problemele pe care orice proiect le are la început (cod sursă mult și nedocumentat, clase care nu conțin cod, surse neactualizate pe site, instrucțiuni care nu se potrivesc pentru toate versiunile, add-on-uri ce nu sunt compatibile cu anumite versiuni, etc.).
Pentru evitarea pierderii inutile de timp, cei ce întâmpină greutăți în compilare, dezvoltare sau rulare sunt îndemnați să caute soluții ale acestor probleme inerente cu ajutorul celor ce lucrează la acest proiect prin mailing-list-ul developer-ilor JADE / LEAP (înregistrarea se face pe site-ul http://jade.tilab.com, secțiunea Community & developers).
Se recomandă folosirea la compilare a versiunii .NET Framework 2.0 și nu 1.1 pentru performanțe mai bune.
4.1 Componentele platformei JADE
Platforma JADE a devenit unul dintre cele mai populare software middleware orientate agent. Este un sistem complet distribuit cu o infrastructură flexibilă, având scopul de a facilita dezvoltarea de aplicații complet bazate pe agent prin intermediul unui mediu run-time ce implementeazăcaracteristicile care stau la baza ciclului de viață solicitate de agenți, precum și logica de bază a agenților înșiși.
FIPA (Foundation for Intelligent Physical Agents) este o organizație având standardele IEEE Computer Society, care promovează tehnologia bazată pe agent și interoperabilitatea propriilor standarde cu alte tehnologii. Standardul FIPA se bazează pe principiul că ar trebui specificat numai comportamentul extern al componentelor sistemului, lăsând arhitectura internă și detaliile de implementare dezvoltatorilor de platforme individuale. Acest lucru asigură interoperarea între platforme conforme.
Platforma JADE oferă compatibilitate completă cu specificațiile FIPA (comunicare, management și de arhitectură), care oferă cadrul în care agenții pot exista, opera și comunica, în timp ce adoptă o arhitectura internă unică și implementarea serviciilor de agent cheie.
JADE conține, pe lângă biblioteca de clase pentru dezvoltarea și manipularea agenților, un runtime environment ce trebuie activat pentru a putea lansa agenții în execuție. Fiecare instanță a acestui runtime environment este numită Container. Fiecare container poate conține mai mulți agenți. Toate containerele active formează o Platformă, în care trebuie să existe obligatoriu un singur container special numit Main Container.
JADE este o platformă de dezvoltare a agenților inteligenți, cu o arhitectură modulară, bazată pe locații în care agenții pot rula. În figura 13 este prezentată arhitectura platformei JADE.
Figura 13. Arhitectura platformei JADE (preluata din [12] pag. 3)
Din această figură se pot trage următoarele concluzii:
Un Agent poate rula numai într-un Container (fie el principal MainContainer sau nu Container);
Un Container poate să conțină niciun Agent, un Agent sau mai mulți agenți;
Un Container poate aparține unui singure platforme (Platform);
Fiecare Platformă trebuie să conțină exact un container principal (MainContainer);
Un Computer poate să găzduiască unul sau mai multe Containere ale aceleiași Platforme;
Un Computer poate să găzduiască una sau mai multe Platforme.
Rularea platformei JADE / LEAP în mediul de dezvoltare Visual Studio implică o serie de pași:
Crearea unui nou proiect C# sau VB .NET cu specificația că varianta framework-ului proiectului este recomandată să coincidă cu cea cu ajutorul căreia s-a compilat biblioteca JadeLeap.dll;
Adăugarea referințelor către JadeLeap.dll și vjslib.dll (categoria .NET bibliotecă provenită din instalarea Visual J# Redistributable 1.1.4233).
4.2 Crearea statică a agenților
Pentru a lansa în execuție agenții JADE trebuie executați următorii pași:
1. Includerea în directorul executabilului aplicației a unui fișier text de configurare
numit “leap.properties” care să conțină următoarele linii:
main =
mainURL =
icp =
agents =
2. Scrierea codului sursă pentru citirea informațiilor din fișierul “*.properties”:
class Program
{
static void Main(string[] args)
{
Profile p = new ProfileImpl("leap.properties");
Runtime rt = Runtime.instance();
jade.wrapper.AgentContainer mc = rt.createMainContainer(p);
}
}
3. Implementarea agentului propriu-zis:
public class SimpleAgent : Agent
{
public override void setup()
{
Console.WriteLine("Hello, I’m " + getLocalName() + " and i’m living in " + this.getContainerController().getContainerName() + "\n");
}
}
Pentru a crea și lansa un agent de tipul SimpleAgent fișierul “leap.properties” trebuie modificat astfel:
main =
mainURL =
icp =
agents = AgentSimplu:ExCreare.SimpleAgent(last:true);
unde AgentSimplu este numele agentului. Dacă dorim lansarea mai multor agenți vom modifica ultima linie a fișierului de mai sus astfel:
agents = AgentSimplu:ExCreare.SimpleAgent;
AgentSimplu2:ExCreare.SimpleAgent;
AgentSimplu3:ExCreare.SimpleAgent(last:true);
Se vor lansa astfel în paralel 3 agenți cu numele de mai sus. Ca observație, după “;” nu se folosește enter. Pentru a finaliza un agent, vom apela metoda doDelete() din cadrul agentului. Acesta va fi oprit și va fi șters din containerul din care face parte. La finalizarea acestuia se pot adăuga secvențe de cod pentru a marca și anunța distrugerea acestuia suprascriind metoda takeDown() din clasa Agent, aceasta fiind apelată automat înaintea opririi agentului.
public class SelfDestructAgent : Agent
{
public override void setup()
{
Console.WriteLine("Agent {0} has started…", getAID().getName());
// Asteptam 10 secunde
Thread.sleep(10000);
// Apelam metoda de stergere a agentului
doDelete();
}
public override void takeDown()
{
Console.WriteLine("Agent {0} is being removed…", getAID().getName());
}
}
4.3 Comportamente și comunicare inter-agent
4.3.1 Comportamente
Sarcina sau sarcinile concrete pe care un agent le are de îndeplinit sunt realizate prin comportamente. Un comportament reprezintă o sarcină pe care un agent trebuie să o îndeplinească și este implementat ca un obiect al unei clase ce extinde jade.core.behaviours.Behaviour. Pentru a face un agent să execute o sarcină implementată de un obiect Behaviour, acesta trebuie să fie adăugat la clasa agentului prin metoda addBehaviour().
public class Agent1 : Agent
{
protected void setup()
{
addBehaviour(new Looper(this, 300));
addBehaviour(new Looper(this, 500));
}
}
Fiecare clasă Behaviour trebuie să implementeze două metode abstracte: action() definește operațiile ce trebuie efectuate atunci când agentul se află în execuție. Metoda done() returnează un boolean pentru a indica dacă s-a terminat comportamentul respectiv sau nu:
class Looper : SimpleBehaviour
{
static string offset = "";
static DateTime t0 = DateTime.Now;
string tab = "";
int n = 1;
long dt;
public Looper(Agent a, long dt): base(a)
{
this.dt = dt;
offset += " ";
tab = offset;
}
public override void action()
{
System.Console.WriteLine(tab + (DateTime.Now – t0).TotalMilliseconds + ": " + myAgent.getLocalName());
block(dt);
n++;
}
public override bool done() { return n > 6; }
}
Când nu sunt comportamente disponibile pentru execuție agentul trece în starea sleep pentru a nu consuma timp CPU, și este trezit atunci când un comportament devine disponibil pentru execuție. Utilitatea funcției block() este de a trece comportamentul curent în așteptare, agentul trecând la un alt comportament care necesita sa fie executat. Spre exemplu, funcția block(dt) de mai sus pune comportamentul Looper în așteptare pentru perioada specificată de parametrul dt. Execuția thread-ului unui agent este ilustrată în figura următoare:
Figura 14. Execuția thread-ului unui agent (preluat din [12])
4.3.2 Comunicare inter-agent
Comunicarea și interacțiunea dintre agenți sunt caracteristici fundamentale ale sistemelor multiagent. Acestea sunt realizate prin intermediul schimbului de mesaje. Este deci foarte important ca agenții să folosească pentru aceste mesaje un format și o semantică compatibile. Deoarece JADE folosește standardele FIPA, în mod normal agenții JADE ar trebui să poată comunica cu alți agenți care rulează pe alte platforme.
Pe lângă conținut, un mesaj trebuie sa aibă o listă cu destinatari, un expeditor, un format, un tip de mesaj etc. În JADE mesajele folosesc standardul ACL (Agent Communication Language), standard ce permite mai multe tipuri de codare a conținutului mesajului. De asemenea permite conținutului mesajului să reprezinte un obiect serializat. Comunicarea dintre agenți se bazează pe trimiterea de mesaje asincrone. Fiecare agent are “căsuță poștală” (coada de mesaje), unde JADE plasează mesaje trimise de alți agenti și agentul care a primit mesajul este notificat.
Trimiterea de mesaje spre alți agenți se realizează completând câmpurile unui obiect de tip ACLMessage și apoi apelând metoda send() a agentului cu parametrul reprezentat de mesajul completat. Un agent poate selecta mesaje din coada sa de mesaje executând metoda receive() care returnează primul mesaj din coada sau null dacă nu sunt mesaje.
//trimiterea unui mesaj: crează mesajul ACL și setează destinatar, conținut
ACLMessage message = new ACLMessage();
AID receiverAID = new AID("Agent1", AID.ISLOCALNAME); // în același container
message.addReceiver(receiverAID);
message.setContent("Hello");
myAgent.send(message);
//recepționarea unui mesaj: cere un mesag din coada sa internă
ACLMessage message = myAgent.receive();
/afiseaza conținut la consola
if (message != null)
{
string s = message.getContent() + " from " + message.getSender().getLocalName();
System.Console.WriteLine(s) ;
}
5. Dezvoltarea aplicației pentru monitorizarea și controlul iluminatului
Aplicația realizată de mine oferă posibilitatea monitorizării și controlului iluminatului unei clădiri prin intermediul agenților inteligenți proiectați în JADE și cu ajutorul unei interfețe ”user friendly” proiectată în limbajul de programare JAVA.
Interfața are rolul de a reprezenta o legătură între agenții care realizează monitorizarea și/sau controlul diverșilor parametri de mediu, celelalte componente ale sistemului AmICare și un ”Call Center” către care se vor trimite mesajele importante. De la celelalte component ale AmICare, agentul va obține informații despre: persoana care se află în încăpere (pentru ca pe viitor să se poata extrage prefetințele fiecăruia în materie de temperatură și iluminare), valori critice ale parametrilor ce caracterizează starea de sănătate a unui pacient, diverse situații critice în care se poate găsi un pacient (detectarea unei căderi care face imposibilă ajungerea la un echipament de comunicație). Informațiile despre persoana care se află în încăpere vor fi utilizate pentru a stabili valorile referințelor de temperatură/iluminat.
Parametrii critici și situațiile critice vor fi transmise către call center. Comunicarea între agentul interfață și call center se face pe două canale diferite.
stabilește referința de temperatură/lumină (eventual în urma comunicării cu alte aplicații);
comunică agenților referințele stabilite;
comunică în exterior evenimentele de la agentul evenimentelor importante.
Agentul iluminare va realize iluminarea unei incinte. Aceasta va fi posibilă în două moduri:
prin intermediul unor storuri(pentru lumina naturală)
prin controlul intensității luminii artificial.
Referința de lumină va fi primită de la interfață și, pâna la sosirea unei referințe noi, va reprezenta valoarea ce trebuie urmărită. Ca și în cazul agentului de temperatură, pentru fiecare cameră a ambientului va exista cate un agent de iluminare ce va controla camera respectivă.
Intrări:
referința primită de la agentul interfață;
valoarea primită de la senzorul de lumină.
Ieșiri:
comandă catre motorul de comandă al storurilor;
comandă către echipamentul de control al iluminatului artificial;
mesaj de eroare către agentul interfață în cazul în care nu poate urmări referința.
Acțiunile caracteristice agentului iluminare sunt următoarele:
primește de la agentul interfață referinșa de temperatură;
încearcă urmărirea referințeiș
sesisează agentului interfață imposibilitatea urmăririi referinței;
este legat cun un sensor de lumină și un element de execuție pentru controlul iluminării.
8. Utilitatea aplicațiilor de monitorizare a iluminatului – concluzii
Lumina reprezintă una dintre cele mai importante caracteristici ale lumii reale care trebuie observată. Iluminatul dintr-o încăpere sau zonă de lucru trebuie să asigure vizibilitatea bună a sarcinilor vizuale și realizarea acesteia în condiții de confort vizual.
Iluminatul dintr-o încăpere trebuie să asigure:
confortul vizual al persoanelor ce lucrează în încăpere: lucrători, operatori, prin inducerea acestora de senzații pozitive în timpul activității;
performanța vizuală, care determină efectuarea sau perceperea sarcinii vizuale cu rapiditate și acuratețe, chiar și în condiții dificile și pentru perioade îndelungate;
siguranța vizuală, astfel încât lucrătorii să fie capabili de a percepe vizual spațiul înconjurător.
Monitorizarea iluminatului prin intermediul senzorilor a devenit una dintre cele mai importante aplicații ale zilelor noastre deoarece poate fi integrat cu success în aplicații care vizează automatizarea locuințelor, a clădirilor inteligente de birouri, controlul automat al unor procese industriale sau monitorizarea condițiilor de mediu dintr-o anumită arie geografică.
Monitorizarea iluminatului utilizând rețele de senzori în aplicațiile ce vizează automatizarea locuințelor și a clădirilor de birouri poate conduce la proiectarea unor structuri eficiente de control al sistemelor de climatizare interioară. Datele achiziționate de senzorii de temperatură plasați în diferite încăperi ale locuințelor sunt transmise unui microprocesor în scopul prelucrării acestora. Mai departe, microprocesorul va putea elabora și transmite comenzi către sistemul de iluminare sau către cel de storuri în scopul menținerii unei lumini adecvate în fiecare încăpere a locuinței sau a clădirii de birouri. Comanda acestor sisteme de iluminare sau storuri poate fi realizată și de către un administrator al respectivei clădiri.
Fig.13 – preluata din [14]
Aplicațiile de monitorizare pot fi configurate să trimită administratorului datele achiziționate de către senzori prin intermediul unei rețele private de Internet sau prin mesaje scrise către diferite dispozitive mobile wireless (smartphone-uri, PDA-uri). Astfel, administratorul va fi informat în permanență de evoluția parametrilor de mediu și va putea trimite comenzi către sistemul central de iluminare al clădirilor.
O altă aplicație a monitorizării iluminatului o reprezintă proiectarea unor sisteme de eficientizare a consumului de resurse a unei clădiri.
Asemenea sisteme pot ajuta la determinarea gradului de eficiență energetică și de vizualizare a consumului energetic a respectivei construcții.
Bibliografie
[1] Aportul politicilor și strategiilor UE la dezvoltarea AmI, Mihaela Tache, Institutul Național de Studii și Cercetări pentru Comunicații, București. (http://www.agir.ro/buletine/750.pdf)
[2] http://www.inscc.ro/mediu-ambiental-inteligent/
[3] Social, Economic, and Ethical Implications of Ambient Intelligence and Ubiquitous Computing, J. Bohn, V. Coroamă, M. Langheinrich, F. Mattern, and M. Rohs
[4] Weiser, M. (1991) The Computer for the 21st Century. Scientific American, 265(3):66–75, September 1991.
[5] Ambient Intelligence Research in HomeLab: Engineering the User Experience, B. de Ruyter, E. Aarts, P. Markopoulos, and W. Ijsselsteijn
[6] Security for Ambient Intelligent Systems I. Verbauwhede, A. Hodjat, D. Hwang, and B.-C. Lai
[7] Agenti și modelarea bazată pe agenți în economie…………………….. (http://www.contabilizat.ro/file/cursuri_de_perfectionare/economie_generala/agenti_si_modelarea_bazata_pe_agenti_in_economie/cap1.pdf)
[8] Florin Leon (2006). Agenti inteligenti cu capacitati cognitive, Tehnopress, Iasi, ISBN 978-973-702-422-0 http://florinleon.byethost24.com
[9] The Concise Oxford Dictionary, of Current English, (7 th edition), Oxford University Press, 1988
[10] Agenti și modelarea bazată pe agenți………………………………………….. http://www.asecib.ase.ro/BCIB/CAPITOLUL-6.pdf
[11] Developing Multi-Agent Systems with JADE, Fabio Bellifemine, Giovanni Caire, Dominic Greenwood, WILEY 2007
[12] Andrei Leca, Florin Leon – Modelarea si analiza sistemelor multi-agent – Laborator http://florinleon.byethost24.com/lab_masma.htm
[14] Ambient Intelligence Research in HomeLab : Engineering the User Experience
B. de Ruyter, E. Aarts, P. Markopoulos, and W. Ijsselsteijn
[15] http://www.inscc.ro/wp-content/uploads/2011/01/Ami32.jpg
Bibliografie
[1] Aportul politicilor și strategiilor UE la dezvoltarea AmI, Mihaela Tache, Institutul Național de Studii și Cercetări pentru Comunicații, București. (http://www.agir.ro/buletine/750.pdf)
[2] http://www.inscc.ro/mediu-ambiental-inteligent/
[3] Social, Economic, and Ethical Implications of Ambient Intelligence and Ubiquitous Computing, J. Bohn, V. Coroamă, M. Langheinrich, F. Mattern, and M. Rohs
[4] Weiser, M. (1991) The Computer for the 21st Century. Scientific American, 265(3):66–75, September 1991.
[5] Ambient Intelligence Research in HomeLab: Engineering the User Experience, B. de Ruyter, E. Aarts, P. Markopoulos, and W. Ijsselsteijn
[6] Security for Ambient Intelligent Systems I. Verbauwhede, A. Hodjat, D. Hwang, and B.-C. Lai
[7] Agenti și modelarea bazată pe agenți în economie…………………….. (http://www.contabilizat.ro/file/cursuri_de_perfectionare/economie_generala/agenti_si_modelarea_bazata_pe_agenti_in_economie/cap1.pdf)
[8] Florin Leon (2006). Agenti inteligenti cu capacitati cognitive, Tehnopress, Iasi, ISBN 978-973-702-422-0 http://florinleon.byethost24.com
[9] The Concise Oxford Dictionary, of Current English, (7 th edition), Oxford University Press, 1988
[10] Agenti și modelarea bazată pe agenți………………………………………….. http://www.asecib.ase.ro/BCIB/CAPITOLUL-6.pdf
[11] Developing Multi-Agent Systems with JADE, Fabio Bellifemine, Giovanni Caire, Dominic Greenwood, WILEY 2007
[12] Andrei Leca, Florin Leon – Modelarea si analiza sistemelor multi-agent – Laborator http://florinleon.byethost24.com/lab_masma.htm
[14] Ambient Intelligence Research in HomeLab : Engineering the User Experience
B. de Ruyter, E. Aarts, P. Markopoulos, and W. Ijsselsteijn
[15] http://www.inscc.ro/wp-content/uploads/2011/01/Ami32.jpg
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: Sistem de Monitorizare a Unui Ambient Inteligent (ID: 163513)
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.
