|
|
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
Uvod
|
English version (Google Translate)
|
|
|
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:
|
|
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:
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:
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.
|
|
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:
|
|
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.
|
|
|
|
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,
· i 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.
|
|
[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
| Poslednja izmena 09.06.2001.
Autor: Velibor Ilić Adresa ove stranice je:http://SOLAIR.EUnet.rs/~ilicv/agenti.html |