Sistemi na bazi tehnologije agenata

Autor: Velibor Ilić

ABSTRAKT: U radu se govori o softverskim sistemima na izrađenim bazi tehnologije agenata, klasifikaciji agenata prema funkciji i njihovoj primeni. Napravljeno je poređenje između objektno orijentisanog programiranja i tehnologije na bazi agenata.

Datum izrade: Maj, 2001

Ilić, V., (2002): “Systems based on agent's technology”, InfoM – Journal of Information Technology and Multimedia Systems, no 3-4/2002, Belgrade
http://scindeks.nb.rs/article.aspx?artid=1451-43970204055I


      Velibor Ilic

Sadržaj
Uvod
Vrste sistema baziranih na agentima
   Kooperativni agenti
   Interfejs agenti
   Mobilni agenti
   Informacioni / Internet agenti
   Reaktivni agenti
   Inteligentni agenti
   Hibridni agenti
Multi agentni sistemi
Objektno orijentisana i agentna metodologija
Primena agenata
Zaključak
Literatura

Uvod
Agenti predstavljaju softver koji ima sposobnosti da samostalno, bez intervencije korisnika, izvršava postavljeni zadatak i izveštava korisnika o završetku zadatka ili pojavi očekivanog događaja. Agent se može definisati na sledeći način:

Agent je računarski sistem, koji u interakciji sa okruženjem, ima sposobnost da fleksibilno i samostalno reaguje u skladu sa ciljevima koji su mu postavljeni. U ovoj definicija ističe tri ključna zahteva: interakcija sa okruženjem, autonomnost, i fleksibilnost.

Interakcija sa okruženjem u ovom kontekstu znači da je agent sposoban da reaguje na ulaz dobijen od senzora iz okruženja i da može da izvode akcije koje menjaju okruženje u kome agenti deluju. Okruženje u kome agenti deluju može biti fizičko (realan svet) ili softversko (računar na kome su instalirani ili Internet). Za razliku od klasičnih ekspertnih sistema koji informacije o okruženju dobijaju preko posrednika (korisnika) koji unosi parametre sistema. Klasični ekspertni sistemi nisu bili u mogućnosti da deluju na okruženje (bar ne direktno) ili su to takođe činili takođe preko posrednika (korisnika) koji je u zavisnosti od dobijenog odgovora reagovao na okruženje.

Autonomnost znači da je sistem u stanju da reaguje bez intervencije korisnika (ili drugih agenata), i da ima kontrolu nad sopstvenim akcijama i unutrašnjim stanjem. Takav sistem trebao da bude sposoban da uči iz iskustva. Mogućnost interakcije u okruženjem, i autonomnost računarskih sistema nije nova ideja. Postoje već mnogi takvi sistemi kao što su programi za kontrolu realnih sistema koji nadgledaju okruženje realnog sveta i izvode akcije kao odgovor na promene sistema u realnom vremenu, i programi koji nadgledaju softversko okruženje i izvode akcije kojima deluju na okruženje kako se uslovi menjaju (anti-virus programi). Navedeni primeri imaju odlike interakcije sa okruženjem i autonomnosti, ali se sistemi ovi ne mogu smatrati agentima sve dok nemaju mogućnost fleksibilnog ponašanja kada se nađu u situacijama koje nisu planirane prilikom dizajniranja.

Da bi se softverski sistem smatrao fleksibilnim mora da ispunjava sledeće uslove:

  • agent treba da primeti promene u okruženju i da donese odluku o mogućim akcijama dovoljnom brzinom da bi takva akcija bila od značaja za sistem u kome deluje,
  • agenti ne bi trebalo samo jednostavno da reaguju kao odgovor na signale iz okruženje, oni bi trebali da budu sposobni da uočavaju povoljne prilike i u tim situacijama preuzimaju inicijativu u skladu sa svojim ciljevima,
  • agenti bi trebalo da su sposobni da stupe u komunikaciju, po potrebi, sa drugim agentima i/ili ljudima da bi rešili sopstveni problem ili pomogli jedni drugima agentima u njihovim aktivnostima.
Vrste sistema baziranih na agentima
U zavisnosti od domena primene agenti se međusobno razlikuju, međutim oni se ipak mogu klasifikovati u nekoliko karakterističnih klasa kao što us:
  • Kooperativni agenti (Collaborative Agents)
  • Interfejs agenti (Interface Agents)
  • Mobilni agenti (Mobile Agents)
  • Informacioni/Internet agenti (Information/Internet Agents)
  • Reaktivni agenti – (Reactive Agents)
  • Inteligenti agenti – (Smart Agents)
  • Hibridni agenti – (Hybrid Agents)
Kooperativni agenti
Kooperativni agenti omogućavaju međusobno povezivanje i obradu postojećih višestrukih sistema (npr ekspertni sistemi, sistemi za podršku pri odlučivanju). Najčešće se upotrebljavaju rešavanje za problema koji su po prirodi decentralizovani ili za rešavanje problema koji su suviše kompleksni da bi se rešavali jednim centralizovanim agentom. Primenom kooperativnih agenata može se prevazići problem ograničenih resursa i smanjiti rizik otkazivanja sistema, koji je prisutan u centralizovanim sistem. Ovakvi agenti poboljšavaju modularnost sistema, brzinu, pouzdanost, fleksibilnost i ponovno iskorišćenje (re-usability) sistema.

Interfejs agenti
Uloga interfejs agenata je da krajnjem korisniku olakšaju upravljanje sistemom na kome radi. Ovi agenti se mogu upotrebiti za izradu adaptivnog korisničkog interfejsa (Adaptive user interfaces). Ulaga agenata u ovakvom sistemu je da tokom vremena prate navike korisnika i pretpostavljaju njegove buduće akcije. Interfejs agenti imaju zadatak da prikazuju informacije za koje pretpostavljaju da u datom trenutku interesuju korisnika.

Mobilni agenti
Za ovu vrstu agenata je karakteristično da imaju sposobnost da se fizički kreću od jednog ka drugom serveru (hostu) agenata preko računarske mreže (Internet/Intranet). Mobilni agenti su se pokazala posebno korisni u situacijama kada je potrebno smanjiti obim (troškove) komunikacije troškove između povezanih računara. Umesto obimne razmene informacije među računarima šalje se agent na izvor informacija i tamo vrši obradu podataka, nakon završene obrade agent šalje rezultate serveru. Ovi agenti se takođe mogu upotrebljavati da bi se prevazišao problem ograničenih lokalnih resursa, ukoliko su resursi jednog računara zauzeti agent može da potraži računar sa slobodnim resursima i tamo obraditi podatke. Životni ciklus mobilnih agenata sastoji se od stanja pokretanja, stanja izvršavanja i stanje ispunjenja postavljenog zadatka nakon čega se agent uništava (oslobađaju se zauzeti resursi). U trenutku kada se agenti kreću od jednog računarskog sistema ka drugom, stanje izvršavanje se zaustavlja i memoriše se trenutno stanje obrade. Kada se agent prenese na drugi računar, obrada se nastavlja sve dok se ne izvrši postavljeni zadatak.

U sistemima gde se primenjuju mobilni agenti posebna pažnja se mora posvetiti bezbednosnim problemima kao što su:

  • sprečavanje neovlašćenih osoba/agenta da prikupljanja podataka.
  • sprečavanje neovlašćenih osoba/agenata menjaju podataka na sistema
  • sprečavanje neovlašćenih osoba/agenata da upotrebljavaju resurse sistema.
  • sprečavanje pokretanja agenata sa nejasnim ili zlonamernim ciljevima.

Informacioni / Internet Agenti
Zadatak informacionih agenata je da se suoče sa savremenim kompleksnim informacionim okruženjem, zadatak takvih agenata se sastoji od pronalaženja informacija na lokalnom hard disku, preko niza sistema za pretraživanje višestrukih baza na udaljenim serverima ili pronalaženje informacija na Intranetu ili Internetu. Glavni zadatak informacionih agenata je da aktivno tragaju za informacijama u zavisnosti od interesovanja korisnika u svom informacionom okruženju obaveštavajući korisnike o novim sadržajima koji zadovoljavaju postavljene kriterijume. Informacioni agenti pronalaze, analiziraju, obrađuju i objedinjavaju informacije sa više nezavisnih izvora. Sistemi informacionih agenata aktivno tragaju za podacima za koji oni veruju da su interesantni korisniku, umesto da informacije dobijaju jednostavnim propuštanjem kroz pasivni filtar. Jedan od ciljeva istraživanje oblasti informacionih agenata predstavlja za razvoj naredne generacije informacionih okruženja. Primer sistema gde su upotrebljeni informacioni agenti predstavlja sistem AMALTEA [2].

Reaktivni agenti
Reaktivni agenti ne planiraju svoje akcije, njihove akcije zavise od isključivo od trenutnih događanja u sistemu. U ovakvim agentima se najčešće primenjuju tradicionalne tehnike veštačke inteligencije kao što je monotono rezonovanje. Do sada su se reaktivni agenti najčešće primenjivali u računarskim igrama.

Inteligentni agenti
Inteligentni agenti predstavljaju softver koji automatski može da izvrši zadatak koji mu postavi osoba ili drugi softver (agent). Kada se jednom podese oni izvršavaju svoje zadatke, automatski, bez dalje intervencije korisnika. Najčešće se upotrebljavaju za automatsko traganje za informacijama, pružaju odgovore na postavljena pitanja u domenu svog znanja, informišu korisnike o interesantnim događajima (o pojavi novog članka na Internetu, prikazuje informacije o eventualnoj pojavi problema na putu između početne i krajnje destinacije, da li se zadati pojam pojavljuje negde na web-u i slično), obezbeđuju trenutne i presonalizovane vesti, omogućavaju inteligentno obučavanje korisnika, pronalaze robu po najpovoljnijim cenama, obezbeđuju automatske servise kao što je provera izmena na web stranicama ili pojava “prekinutih” linkova.

Hibridni agenti
Ova vrsta agenata je bazirana na jednoj ili više agenata sa prethodne liste.

Multi agentni sistemi
Sistemi u kojima je upotrebljeno više agenata radi rešavanja zajedničkog problema nazivaju se multi agentni sistemi. U ovakvim sistemima neophodno je da agenti imaju mogućnost međusobne komunikacije u cilju razmene iskustva ili “pregovaranja” da bi se našlo optimalno rešenje. Agenti koji se upotrebljavaju u multi agentnim sistemima mogu biti jednaki po karakteristikama ili se mogu razlikovati prema specijalnostima. Multi agentni sistemi su idealni za predstavljanje problema koji imaju više različitih metoda za rešavanje problema, višestruke perspektive i/ili višestruke entitete rešavanja problema. Omogućavaju izradu za paralelnih računarskih sisteme, pomažu pri radu sa vremenski ograničenim rezonovanjem i robusnim sistemima – ako su odgovornosti podeljene. U sistemima izrađenim na ovaj način umesto da procesom upravlja jedan kompleksan agent, upravljanje se deliti na više agenata koji prema svojim specijalnostima preuzimaju nadležnost nad kontrolom složenog procesa. Upotrebom multi agentnih sistema se povećava bezbednost sistema u situacijama otkazivanja jednog od agenata, čitav sistem može biti automatski rekonstruisan ili zaustavljen na kontrolisan način.

Prilikom dizajniranja multi agentnih sistema potrebno je definisati broj agenata, kritičnu količinu vremena za obavljanje zadatka, dinamiku pristizanja ciljeva, troškove komunikacije, cenu neuspeha, uticaj korisnika, neodređenost okruženja. Na nivou svakog agenta potrebno je definisati: početna stanja u domenu, moguće akcije drugih agenata, izlazne akcije agenta. Sa povećanjem broja agenata koji sarađuju na rešavanju zajedničkog problema javljaju problemi kao što su:

  • kooperativnost (dizajnirati agente tako da zajednički rade na zajedničkim ciljevima);
  • koordinacija (upravljati agentima tako da si izbegnu štetne interakcije a korisne interakcije iskoriste);
  • pregovaranje (dolaženje do dogovora koji su prihvatljivi svim objektima/agentima koji učestvuju u rešavanju problem).
Za izradu multi agentnih sistemima javlja se potreba da se standarizuje komunikacija između agenata, da bi se omogućila komunikacija između agenata koji bi bili kreirani nezavisno jedan od drugoga (različiti programeri) i time bi se omogućilo planiranje akcija i upravljanje resursima celokupnog sistema.

Objektno orijentisana i agentna metodologija
U objektno orijentisanim programskim jezicima objekti se definišu kao entiteti koji enkapsuliraju neka stanja, imaju mogućnost da izvode akcije ili metode, i međusobno razmenjuju informacije. Pod principom enkapsulacije se u objektno orijentisanim programskim jezicima smatra da se entitetu (objektu) pristupa kao celini, ne uzimajući u obzir unutrašnju strukturu i ne utičući direktno na nju. Objektu se pristupa isključivo preko javnih metoda i funkcija, i na taj se izbegavaju konfliktne situacije u kojima bi korisnik ili drugi objekat greškom poremetio unutrašnju strukturu objekta. Kada se na ovaj način pravi poređenje između objekata i agenata može se uočiti dosta sličnosti.

Pored sličnosti postoje i brojne razlike. Jedna od značajnih razlika između agenta i objekta predstavlja stepen autonomije prilikom izvršavanja metoda. Objekti predstavljaju pasivne entitete koji slede naredbe programa u kome su primenjeni, dok su agenti samostalni entiteti koji slede sopstvenu logiku u skladu sa sopstvenim ciljevima. Na primer, u objektno orijentisanom programskom jeziku ukoliko imamo definisan objekat A, sa javno definisanom metodom M1, ostali objekti mogu pozivati ovu metodu po potrebi, pri čemu objekat A nema uticaj da li će se metoda M1 izvršiti ili ne. Prilikom izrade agenata ne može se uvek pretpostaviti šta će biti zajednički cilj na kome će se agenti upotrebiti, kao što je slučaj sa objektima. U multi agentnim sistema mogu se često mogu naći agenti koje su izradili drugi pojedinci ili firme koji nisu mogli predvideti u kakvim sistemima će se agenti upotrebljavati. Agenti predstavljaju entitete koji deluju u skladu sa sopstvenim ciljevima, ukoliko agent B pokuša da pozove metodu M1 agenta A, može se desiti da izvršenje metode M1 nije trenutno u interesu agenta A. Pošto metoda M1 pripada agentu A on donosi konačnu odluku da li će se metode M1 izvršiti ili ne. U multi agentnom sistemu bi se pre moglo reći da agenti međusobno upućuju zahteve za izvršenje metoda umesto da direktno pozivaju metode kao što je slučaj sa objektima u objektno orijentisanim programskim jezicima. Postoji još jedna ključna razlika između ove dve tehnologije, u objektno orijentisanom programiranju se svi objekti izvršavaju u jednom tread-u aplikacije u kojoj su upotrebljeni, dok u multi agentnom sistemu svaki agent predstavlja zaseban thread. Naravno, agenti se mogu implementirati objektno orijentisanim programskim jezicima.

Primena agenata
Tehnologija agenata dobija sve više na značaju i oni se sve upotrebljavaju za rešavanje realnih problema i komercijalnim aplikacijama. Agenti imaju veoma širok spektar primena od veoma jednostavnih sistema kao što su filteri za elektronsku poštu, programa za presretanje i uklanjanje računarskih virusa pa sve do veoma kompleksnih kao što je softver za kontrolu avio saobraćaja. Oblasti u kojima se trenutno najčešće primenjuju aplikacije na bazi agenata se mogu svrstati u sledeće oblasti, proizvodnja, kontrola procesa, telekomunikacioni sistemi, kontrola avio saobraćaja, upravljanje transportom, meteorologija, filtriranje i sakupljanje informacija, upravljanje tokovima informacija, elektronska trgovina, upravljanje poslovnim procesima, medicina, industrija zabave, kompjuterske igre, i drugim oblastima.

Zaključak
Oblast autonomnih agenata i multi agentnih sistema je veoma raznolika i predstavlja oblast koja se ubrzano širi. Metodologija izrade programa bazirana na agentima pruža niz efikasnih alata i tehnika koje imaju potencijal da značajno unaprede tehniku izrade softvera počevši od idejnog rešenja pa sve do konkretne implementacije. Oni predstavljaju spoj više naučnih oblasti kao što su distribuirana obrada podataka, objektno orijentisanih sistema, softverskog inženjerstva, veštačke inteligencije, ekonomije, sociologije, organizacione nauke. U toku protekle dve dekade je otkriven značajan broj poboljšanja u dizajnu i implementaciji autonomnih agenata, kao i načinu na koji oni stupaju u interakciju. Tehnologija na bazi agenata sve više nalaze primenu u komercijalnim proizvodima i softveru koji se primenjuje u realnom okruženju.
Trenutno, je veoma važno rešiti dva problema:
  • nedostatak jasno definisane sistematske metodologije za razvoj agenata u multi agentnim okruženjima,
  • nedostatak široko rasprostranjenih, dostupnih i standardizovanih razvojnih aplikacija za izradu multi agentnih sistema.
Većina dosadašnjih aplikacija su bile dizajnirane na bazi metodologije pozajmljene iz objektno orijentisanih programskih jezika. Trenutno ne postoji metodologija koja definiše kako najbolje struktuirati multi agentni sistem, kako uskladiti individualne i/ili kolektivne ciljeve agenata u međusobnoj komunikaciji, ili koja je najbolja struktura individualnog agenta u takvom sistemu. Neophodni su razvojni alati koji bi omogućili jednostavno definisanje ponašanje agenata, način na koji agenti stupaju u interakciju, vizalizaciju i debagovanje ponašanja agenata u kompletnom sistemu.
Prilikom izrade programa na bazi tehnologije agenata mora se naći ravnoteža između konstante interakcije sa korisnikom ko što je slučaj sa većinom današnjih aplikacija (bespotrebno uznemiravanje korisnika) i situacije u kojoj agenti sprovode odluke bez konsultacije sa korisnikom (imaju previše ovlašćenja). Da bi pojedinačni agenti prihvatili ideju rada sa drugim agenata, oni im moraju prvo verovati. Neophodno je prethodno uspostaviti međusobno poverenje, a ovaj proces može zahtevati vremena.
Kao što se može videti iz prethodnih pasusa uprkos očiglednom potencijalu, postoje i brojna pitanja koja tek treba da se istraže i razviju. Njihovim rešavanjem agenti će naći primenu čitavom nizu novih oblasti. Samo standardizovana, pouzdana, lako primenljiva i skalabilna rešenja će u potpunosti iskoristiti potencijal sistema baziranih na agentima.

Literatura
[1] Jennings, N., R., Sycara, K., Wooldridge, M., (1998) “A roadmap of agent research and development” (7-38), “Autonomous Agents and Multi-Agents systems”, Kluwer Academic Publishers, Boston
[2] Moukas, A., Pattie, M., (1998) “AMALTHAEA: An Evolving Multi-Agent Information Filtering and Discovery” (59-88), “Autonomous Agents and Multi-Agents Systems for the WWW”, Kluwer Academic Publishers, Boston
[3] Grand, S., Cliff, D., (1998) “Creatures: Entertainment Software Agents with Artificial Life” (39-57), “Autonomous Agents and Multi-Agents systems”, Kluwer Academic Publishers, Boston
[4] Downing, T., E,. Moss, S., Pahl-Wostl, C., (2000) “Understanding Climate Policy Using Participatory Agent-Based Cocial Simulation”, (199-213), “Multi-Agent-Based Simulation”, Second International Workshop, MABS 2000, Springer, Boston
[5] Grosof, B., N., (1997) “Building Comercial Agents: An IBM Research Perspective ”, http://www.research.ibm.com/iagents/paps/rc20835.pdf
[6] Grosof, B., N., Foulger, D., A,. (1995) “Globenet and RAISE: Intelligent Agents for Networked Newsgroups and Customer Service Support”, http://www.research.ibm.com/iagents/paps/rc20226.pdf
[7] Chess, D., Harrison, C., Kershenbaum, A., “Mobile Agents: Are They A Good Idea?” http://www.research.ibm.com/iagents/paps/mobile_idea.pdf
[8] http://www.botknowledge.com/
[9] http://agents.umbc.edu/
[10] http://www.research.ibm.com/iagents/
[11] http://www.iiia.csic.es/~sierra
[12] http://www.soi.city.ac.uk/~msch
[13] http://www.soi.city.ac.uk/~kostas
[14] http://www.agentlink.org
[15] http://multiagent.com/
[16] http://www.botspot.com