Agent software

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare

Un agent software este un program de calculator capabil într-o anumită măsură să acționeze (să se comporte) autonom. Este înțeles sau perceput, în general, ca un robot-software ce acționează independent de intervenția utilizatorului. Calitatea de agent software este determinată, conform studiilor actuale despre inteligența artificială, de următoarele proprietăți ale acestuia:

  1. - autonom: programul lucrează independent de intervenții externe;
  2. - proactiv: programul acționează fundamental din proprie inițiativă, adică lucrează în "mod de așteptare", decidând cum și unde trebuie (se cuvine) să intervină;
  3. - reactiv: programul reacționează la schimbări din domeniul său de activitate (mediul ambiant);
  4. - adaptiv: programul își poate modifica parametrii de funcționare inițiali proprii în funcție de stările sale interne sau stări din domeniul de acțiune (externe);
  5. - cognitiv: programul are capacitatea de a învăța din deciziile pe care le ia sau din observații făcute;
  6. - robust: reușește să anihileze sau să depășească deranjamente (soft) survenite intern sau extern;
  7. - social: programul (agentul software) comunică cu alți agenți software.

Conceptul agent software aparține domeniului știința calculatoarelor, fără ca această apartenență să fie pe deplin tranșată deoarece există păreri după care ar aparține și domeniului inteligență artificială. Poate că din acest motiv, dar nu numai, în literatura de specialitate dedicată agenților nu există un consens în privința unei definiții pentru agentul software. Totuși câteva definiții formulate de autori de prestigiu au căpătat o anumită notorietate și sunt larg acceptate.
Mai mulți agenți pot constitui un sistem multi-agent.

Definiții ale agenților[modificare | modificare sursă]

Agentul simplu[modificare | modificare sursă]

Structura unui agent

Termenul actual de agent derivă din verbul latin agere care înseamnă a acționa, a face, conduce.

  • Un agent este un sistem de calcul situat într-un anumit mediu, fiind capabil să acționeze autonom în acel mediu cu scopul de a-și îndeplini obiectivele [1]
  • Agentul simplu este un program software care acționează autonom într-un anumit mediu pentru îndeplinirea unor sarcini proprii (percepe limitat mediul, dar nu dispune de reprezentarea mediului).
  • Agenții sunt entități care interpretează roluri într-un mediu, operează într-un mediu.
  • Agenții percep mediul prin senzori, prin percepție înțelegându-se setul complet de intrări la un moment dat. Percepția curentă sau o secvență de percepții poate influența acțiunile unui agent.
  • Agenții acționează asupra mediului prin actuatori (efectori), determinând schimbarea sa. Acțiunile pot fi grupate în secvențe de acțiuni.
  • Un agent (un program agent) implementează corespondența dintre o secvență de percepții și o acțiune.
  • Agenții au scopuri. Un agent decide autonom ce acțiune va lua în situația curentă pentru a maximiza avansarea (progresul) către scopurile sale.


Agentul inteligent[modificare | modificare sursă]

Agentul inteligent are caracteristicile agentului simplu și în plus poate comunica direct cu alți agenți, este reactiv la modificările mediului, poate avea inițiative sau oferi servicii fiind proactiv, dispune de o reprezentare cel puțin parțială a mediului, este condus de un ansamblu de scopuri, are resurse proprii, poate percepe complex mediul, dezvoltă competențe sau învață, se poate multiplica, se caracterizează prin comportament (determinat de țeluri, resurse, competențe, percepții și reprezentarea mediului, etc.). Agenții inteligenți se clasifică de regulă în cognitivi și reactivi.

Agentul rațional[modificare | modificare sursă]

Un agent rațional face întotdeauna un lucru corect. Agentul își schimbă preferințele după norme (nu le încalcă). Decizia sa este rațională când acțiunile sale sunt alese pe baza maximizării unei funcții (de utilitate).

Agentul reactiv[modificare | modificare sursă]

Agentul reactiv este un agent simplu sau inteligent care acționează pe baza unui mecanism cu reacție la interacțiunea cu mediul. Ia decizii bazate exclusiv pe starea prezentă a mediului.

Agentul cognitiv[modificare | modificare sursă]

Agentul cognitiv este un agent inteligent care dispune de stări mentale. Se bazează pe modele simbolic-cognitive. Poate avea o bază de cunoștințe, scopuri și planuri explicite de a le realiza.

Agentul deductiv[modificare | modificare sursă]

Agentul deductiv este un agent cognitiv care ia decizii pe baza deducției logice. Conține o bază de date cu formule logice.

Exemple de agenți[modificare | modificare sursă]

  1. Oamenii – dispun de senzori (ochi, urechi, nas, piele, papile) și actuatori (degete, membre, gură, picioare).
  2. Roboții – au senzori (camere video, detectoare în infraroșu, etc.) și actuatori (roți, lumini, difuzoare, mecanisme de prindere, etc.).
  3. Softboții (agenți software) - au funcții ca senzori și funcții ca actuatori.

Caracteristicile fundamentale ale agenților[modificare | modificare sursă]

  • Sesizează
  • Acționează
  • Înțeleg
  • Raționează
  • Învață
  • Comunică cu alți agenți, au comportament social.


Mediul agentului[modificare | modificare sursă]

Mediul în care agentul își desfășoară activitatea poate fi complet observabil (de exemplu jocul de șah, agenți care joacă șah). În acest caz agentul în general nu trebuie să memoreze istoria schimbărilor de mediu ca urmare a acțiunilor sale. Mediul agentului poate fi și parțial observabil (de exemplu, jocul de pocher, agenți care joacă pocher). Mediul poate fi caracterizat:

  • determinist – următoarea stare a mediului este complet descrisă de starea curentă și acțiunea agentului
  • stochastic – dacă intervin elemente de interferență sau se manifestă elemente de incertitudine
  • strategic – starea mediului este în ansamblu de starea precedentă și de acțiunile mai multor agenți.

Mediul poate fi:

  • episodic – când episoadele următoare nu depind de ce acțiuni au fost făcute în episoadele anterioare
  • secvențial – când agenții se angajează în serii de episoade conectate.

Mediul poate fi:

  • static – nu își schimbă starea în timpul acțiunii agenților, singurele schimbări fiind produse de agenții însăși
  • dinamic – schimbările au loc în timp independent de acțiunile agenților.

Mediul poate fi:

  • continuu sau discret. Dacă numărul de percepții sau acțiuni posibile ale agentului este limitat, atunci mediul este discret, altfel este continuu.

Mediul poate fi:

  • complex, dacă este caracterizat de o cantitate mare de intrări pe care le poate transmite agentului și de o cantitate mare de informații pe care le poate conține. Agentul trebuie să aibă o cale de a administra această complexitate. Adesea în astfel de medii agenții dezvoltă strategii de sesizare/descoperire și mecanisme atenționale.


Arhitecturi de agenți[modificare | modificare sursă]

Agent bazat pe tabele[modificare | modificare sursă]

Informațiile achiziționate prin senzori (percepțiile) și acțiunile specifice declanșate prin efectori sunt organizate în tabele. Apariția unui eveniment în mediu care este perceput de agent produce o analiză a tabelelor urmată de acțiunea corespunzătoare. Tabelul este cel mai simplu mod de specificare a corespondenței dintre percepții și acțiuni. Corespondența este implicit determinată de programul agentului fiind bazată pe reguli, pe algoritmi sau pe rețele neuronale. Tabelele pot ajunge la dimensiuni foarte mari. Toată munca de realizare a tabelelor este făcută de proiectant, toate acțiunile agentului fiind predeterminate și nu se poate considera că există o autonomie reală. Procesul de învățare poate lua foarte mult timp în cadrul unui sistem bazat pe tabele. Agenții bazați pe tabele nu au istorie, starea curentă a agentului înseamnă ceea ce vede agentul la acel moment de timp.

Agent bazat pe percepție[modificare | modificare sursă]

Informațiile provenind de la senzori schimbă starea curentă a agentului și determină în mod direct acțiuni prin intermediul efectorilor, fiind eficient. Acest tip de agent sunt denumiți agenți reactivi sau agenți stimul-răspuns. Nu au istorie, starea curentă fiind ceea ce agentul sesizează/vede în acel moment de timp. Nu au o reprezentare internă pentru raționament, nu face planuri strategice, nu învață.

Agent bazat pe stări[modificare | modificare sursă]

Informațiile achiziționate prin intermediul senzorilor (percepțiile) schimbă starea lumii interioare a agentului. Pe baza stării lumii sale interioare și a cunoștințelor (memoria), agentul declanșează acțiuni prin efectori.

Agent bazat pe scop[modificare | modificare sursă]

Acțiunile agentului depind de scopurile sale. Atingerea unui scop reprezintă de fapt rezolvarea unei probleme în inteligența artificială care oferă multe căi de rezolvare, dintre care un mecanism cunoscut este căutarea. Secvența de pași necesară pentru rezolvare nu este cunoscută a priori și trebuie determinată printr-o explorare sistematică a alternativelor.

Agent bazat pe utilitate[modificare | modificare sursă]

În acest caz sunt definite preferințe pentru scopuri diferite. O funcție de utilitate pune în corespondență o stare sau o secvență de stări cu o utilitate de valoare reală. Agentul reacționează într-un mod specific pentru a maximiza utilitatea dorită.

Agent care învață[modificare | modificare sursă]

Învățarea permite agenților operarea în medii inițial necunoscute. Elementele învățate modifică criteriul performanță. Învățarea este necesară pentru o autonomie reală a agentului.

Note[modificare | modificare sursă]

  1. ^ N. R. Jennings and M. Wooldridge. Applying Agent Technology In Journal of Applied Artificial Intelligence special issue on Intelligent Agents and Multi-Agent Systems, 1995.

Bibliografie[modificare | modificare sursă]

În limba engleză[modificare | modificare sursă]

  1. Michael Wooldridge, An introduction to Multiagent Systems, John Wiley & Sons, 2002
  2. Michael Wooldridge, Reasoning about intelligent systems, MIT Press, 2000
  3. Gerhard Weiss, Multiagent Systems A Modern Approach to Distributed Modern Approach to Artificial Intelligence, The MIT Press, 1999
  4. Virginia Dignum, Handbook of Research on Multi-Agent Systems: Semantics and Dynamics of Organizational Models, IGI Global, 2009
  5. Yoav Shoham, Kevin Leyton-Brown, MULTIAGENT SYSTEMS,Algorithmic, Game-Theoretic, and Logical Foundations, Cambridge University Press, 2009
  6. Vjayan Sugumaran, Application of Agents, and Intelligent Information Technologies, IdeA Group publIshInG, 2007
  7. Leon Sterling and Kuldar Taveter, The Art of Agent-Oriented Modeling, MIT, 2009

În limba română[modificare | modificare sursă]

  1. Gabriela Șerban, Horia F. Pop, Tehnici de Inteligență Artificială. Abordări bazate pe Agenți Inteligenți, Ed. MEDIAMIRA, 2004
  2. C. Nișu, A. Dumitrașcu, L. Nițu, Sisteme Inteligente Multiagent, Ed. MATRIX ROM, 2008
  3. Dan Floroiu, Sisteme Multiagent, Ed. Albastră, 2009

Legături externe[modificare | modificare sursă]

  1. Laboratorul de Inteligență Artificială și Sisteme Multi-Agent AIMAS, UPB
  2. Conferința Internatională de Agenți Autonomi și Sisteme Multi-Agent, IFAAMAS
  3. FIPA
  4. AOML
  5. Agenți Autonomi și Sisteme Multi-Agent, SpringerLink