sistemski agenti

Upload: amirljuca

Post on 08-Oct-2015

259 views

Category:

Documents


1 download

DESCRIPTION

agenti

TRANSCRIPT

DRAVNI UNIVERZITET U NOVOM PAZARUFAKULTET TEHNIKIH NAUKARAUNARSKA TEHNIKA

Napredne WEB tehnologije

- Softverski agenti -

Mentor:Student:Doc. dr Ejub KajanAzrudin Peanin

Novi Pazar, 2015SADRAJ

1.UVOD32.UOPTENO O AGENTIMA42.1Opta svojstva agenata52.2Arhitektura agenata83.PODELA AGENATA93.1Inteligentni agenti za pretraivanje Web-a133.1.1Izgradnja jednostavnog inteligentnog agenta za pretraivanje Web-a143.1.2Metode pretraivanja Web-a163.1.3Primeri agenata za pretraivanje Web-a203.2BDI agent223.2.2Primer upotrebe BDI agenata254.VIEAGENTSKI SISTEMI274.2Komunikacija izmeu agenata304.2.1KQML agentski komunikacijski jezik314.2.2FIPA ACL komunikacijski jezik375.PRIMERI UPOTREBE AGENATA395.1Cleverbot405.2Ciljno orijentisani agenti za pruanje telekomunikacijskih usluga416.ZAKLJUAK43

UVOD

Uvoenjem nove generacije mree ili 3G mree pokretnih telekomunikacijskih sistema stavlja se naglasak na razvoj usluga, gde pruilac usluga mora da vodi raunara o potrebama korisnika. Usluge moraju biti prilagoenje korisnikovim eljama i potrebama te olakati korisniku poslovanje ili donoenje odluka. Inteligencija mree morala bi omoguiti prezentaciju samo onih sadraja koje korisnika zanimaju, a pokretljivost te usluge bi trebala omoguiti da tu istu uslugu koristi i na drugim terminalima koje korisnik eventualno poseduje.Vreme u kojem danas ivimo ne bi mogli zamisliti bez World Wide Web-a (WWW). Ono to je dobro u vezi WWW je to to moemo pronai na njemu to god nas zanima, ali problem je to to vie nije tako lak posao. Svakodnevno smo okrueni velikom koliinom informacija, kako bi smo pronali ba ono to trebamo i to nas zanima. Danas su oni vrlo sofisticirani i omoguuju nam stvari koje su nam nekada bile nezamislive. Softverski agenti su upravo ti programi koji imaju takve osobine i takve mogunosti. Podruje inteligentnih softverskih agenata je u poetku i jo je u fazi proirivanja teoretskih postavki i u traenju adekvatnih praktinih reenja koja bi uvaavala teoriju. Re agent je jako teko definisati budui da agenti dolaze u raznim oblicima (neke fabrike kau, nazivaju se roboti). Gruba definicija softverskog agenta bi bila da je to deo softvera koji deluje za korisnika. Dati su primeri upotrebe agenata, zatim su objanjeni ciljno-orijentisani programski agenti za pruanje telekomunikacijskih usluga. Glavni cilj ovoga rada je da blie objasni i prikae agentske sisteme i inteligentne agente prikazati njihovu svrhu i korisnost u poslovanju i svakodnevnom ivotu.

UOPTENO O AGENTIMA

Agent predstavlja entitet u mrei koji samostalno obavlja skup poslova zadanih od strane korisnika. Mogu biti ljudski, sklopovski i programski agenti. Svakog agenta karakteriziraju brojne osobine koje su izraene u veoj ili manjoj meri. Opis karakteristika zavisi o ideji ili cilju koji agent mora postii. Agenti moraju biti sposobni da samostalno deluju u svome okruenju kao odgovor na zahtev okoline.Postoje mnoge definicije o tome ta su agenti koji odraavaju raznolikost shvaanja pojma to je posledica poetka razvoja ovoga podruja.U nastavku su navedene neke od definicija od kojih svaka naglaava neku od osobina agenata koja se inila znaajnom za tvorca definicije ili za podruje kojim se bavi.

Agent je neto to moe prihvatiti vlastitu okolinu kroz senzore i delovanja na okolinu kroz efekte. Autonomni agenti su sistemi koji prihvataju kompleksnu dinaminu okolinu, oseaju je i deluju autonomno u toj okolini, te na taj nain realizuju skup ciljeva zbog kojih su dizajnirani. Inteligentni agenti (eng. Intelligent agents) su sredstva to pomau pri pretraivanju velikih koliina informacija pomou raunarskih programa koji imitiraju ponaanje oveka pri prikupljanju potrebnih informacija. Inteligentni softverski agenti neprestano obavljaju tri funkcije: percepcija promenljivih uslova u okolini, preduzimanje akcija koje utiu na okolinu te zakljuivanje o percipiranim uslovima, reavanje problema, izvoenje zakljuaka i odreivanje akcija.

Na osnovu navedenih definicija moe se zakljuiti kako su agentski softveri koji su napravljeni kako bi pomogli ljudima tj. kako bi im olakali neke stvari u ivotu. Imaju sposobnost posmatrati okolinu i prilagoavati svoje ponaanje okolini.

Slika 2.1. Interakcija agenta sa okolinom

Karakteristike koje mora imati svaki agent su:

agent radi za Vas, agent radi s Vaom dozvolom i agent je specijalizovan za neko podruje.

1.1 Opta svojstva agenata

Postoji izreka kako su svi inteligentni softverski agenti programi, ali nisu svi programiinteligentni softverski agenti. esto se ova dva pojma poistoveuju i dovode u pitanje ta su uopte agenti i koja je razlika izmeu agenata i programa.Odgovor je u svojstvima agenata:

1. Autonomnost sposobnost agenta da samostalno, neovisno od vanjskog poticajadeluje i poseduje samokontrolu nad vlastitim aktivnostima koje vode kaostvarivanju cilja. Na Slici 2.1.1. vidimo kako agent prima aktivnosti iz okoline iprelazi iz stanja 1 u stanje 2 koje tada primenjuje na tu okolinu.

Slika 2.1.1. Autonomnost agenta

2. Sposobnost reakcije trenutno selektivno percipiranje promene u okolini i primena prikladne reakcije.3. Orijentiranost ka cilju prilagoavanje okoline u skladu sa ciljevima koje treba postii.4. Vremenska trajnost nepromenjivost osobina kroz dui period, manifestuje se kao agentovo neprekidno delovanje.5. Sposobnost uenja sposobnost usvajanja znanja od strane korisnika te autonomnog korienja steenog u novim situacijama, izraeno kod inteligentnih agenata. Na Slici 2.1.2. vidimo kako agent poprima znanja iz okoline i primenjuje ta znanja u raznim situacijama koje se deavaju u toj okolini.

Slika 2.1.2. Sposobnost uenja agenata

6. Komunikativnost sposobnost komunikacije sa drugim agentima, prikupljanje novog znanja.7. Mobilnost mogunost prelaska agenta sa jedne na drugu domainsku platformu.8. Sposobnost saradnje mogunost udruivanja s vie agenata s ciljem lakeg postizanja nekog cilja. Na Slici 2.1.3. vidimo kako agenti primaju znanje iz okoline i koriste ga u drugim situacijama u toj okolini ali vidimo i kako agenti meusobno sarauju.

Slika 2.1.3. Sposobnost saradnje agenata

Postoje i neka dodatna svojstva agenata, tanije njih tri svojstva, a to su:

1. Svojstvo istinitosti pretpostavlja da agent nee svjesno davati nekakve lane informacije,2. svojstvo benevolencije ovo svojstvo pretpostavlja da agent nee imati konfliktne ciljeve, te da e svaki agent dati sve od sebe da obavi onaj posao za koji je zaduen i3. svojstvo racionalnosti ovo svojstvo pretpostavlja da e agent delovati u skladu sa postavljenim ciljem, te da nee onemoguavati postavljanje cilja, jedino ukoliko se taj cilj izmeni.

Osim navedenih svojstava agenti jo imaju i svojstvo da budu tolerantni prema grekama, neoekivanim ili pogrenim ulazima.

1.2 Arhitektura agenata

Pod arhitekturom agenta se podrazumeva konstrukcija raunarskog sistema koja omoguuje agentima da imaju osobine koje ih ine agentima. Arhitektura agenta je odreena metodologija za izgradnju agenta, ona odluuje kako se agent dekomponira u niz modula te kako su ti moduli povezani. Ona pokazuje i nain na koji moduli obavljaju svoje aktivnosti, a u svrhu obavljanja zadatka. U arhitekturi agenata mogu se i prikazivati veze izmeu razliitih agenata, a ne samo struktura jednog agenta. Prije svega ona bi trebala omoguiti autonomiju, komunikacije, uenje, orijentiranost ka cilju, mobilnost i stabilnost. Postoje razliite razne arhitekture u smislu da odreeni agent ne mora imati sve osobine, ali one moraju biti iz gore navedenog skupa kako bi se entitet smatrao agentom. Samostalnost je jedan od najeih zahteva za arhitekturu. Drugi vaan aspekt su uenje i zakljuivanje. Budui da agent delujeu okolini koja sadri i druge agente i razliite usluge , potrebna je takva arhitektura kojastandardizuje komunikaciju meu agentima i omoguuje pristup odreenim uslugama.Arhitektura agenta je zapravo struktura njegovog programa.

Slika 2.2.1. Arhitektura samostalnog agenta

Model samostalnog agenata, prikazan na Slici 3.1. sastoji se od 8 jedinica i ukljuuje:

Jedinica za opaanje oitava podatke iz agentovog okruenja. Sadri listu pojedinanih stanja koja definiu ukupno stanje okruenja. Ukoliko se neko od pojedinih stanja promeni, lista podataka se aurira te se obavetava kontrolnu jedinicu o promenama. Jedinica za obradu sadri cilj ili vie ciljeva te njihove meusobne odnose. Delatna jedinica sadri sve delatnosti koje je agent sposoban obaviti. Kontrolna jedinica aktivira reakcijska delovanja na promene ukoliko jedinica za opaanje uoi nekakve promene u okolini. Raunska jedinica tu su definirane funkcije kojima se odabiru ciljevi i optimalna delovanja. Jedinica za razumevanje nadgleda dio koji je odgovoran za znanje agenta koje se primenjuje za reavanje problema. Jedinica s podacima omoguuje svim mehanizmima pristup bazi podataka. Komunikacijska jedinica definie naine komunikacije izmeu agenata.

PODELA AGENATA

Buduci da su softverski agenti u zaetku kao podruje informacione nauke , a i zbog svoje irine (u smislu podruja koje zahvata) postoje mnogobrojne podele agenata, ovde navodimo jednu od podela:

1. Kooperativni agenti (eng. Collaborative agents) - omogucavaju meusobnopovezivanje i obradu postojecih viestrukih sistema. Najeca primena im jereavanje decentralizovanih problema ili onih previe sloenih da bi se reilijednim centralizovanim agentom. Primenom ovih agenata smanjuje se rizikotkazivanja sistema koji je prisutan u centralizovanom sistemu , poboljava se brzina, pouzdanost, modularnost sistema, fleksibilnost i ponovno koricenje sistema. 2. Agenti interfejsi (eng. Interace agents) - Njihova uloga je da olaka krajnjem korisniku sistem upravljanja koji funkcionie. Moe se koristiti za prilagoavanje korisnikog interfejsa (eng. Adaptive User interface), sredstva interfejsi tokom vremena prati navike korisnika i preuzme svoje buduce akcije . Zadatak ovih agenata je da pokae informacije od interesa za korisnika.

3. Pokretni agenti (eng. Mobile agents ) - ovi agenti mogu putovati na drugi raunar u mrei, sa sobom prenositi svoje stanje (vrednosti atributa) i programski kod, te na tim raunarima nastaviti izvoenje. Agent odluuje kada i gde ce migrirati. On moe suspendovati izvoenje u pogodnom trenutku, migriraju na drugi raunar i tamo nastaviti izvoenje. Pokretni agent dolazi u okolinu u kojoj se nalazi neki objekat sa kojim eli interagirati - agent iskoricava prednost to se nalazi u okolini s tim objektom (npr. lokalno koristi podatke koji se nalaze u toj okolini).Prednosti pokretnih agenata su: smanjenje optereenja mree, smanjenje vremena ekanja na izvoenje operacija, nezavisnost o moguim prekidima rada mree, dinamika adaptacija na promene u okolini gde se izvode.Pokretni agenti moraju sadravati sledee modele:

Model agenta (to agent radi: autonomija, uenje, kooperativna svojstva), Model ivotnog ciklusa (definicija razliitih stanja izvoenja pokretnog agenta i dogaaja koji uzrokuju prelaz iz jednog u drugo stanje), Raunarski model (to pokretni model izvodi kada je u aktivnom stanju), Sigurnosni model (zatita raunara od malicioznih agenata, zatita agenata od raunara, zatita agenata od drugih agenata), Komunikacijski model (komunikacija s korisnicima, agentima i okolinom u koju dolaze) i Navigacijski model (svi aspekti pokretljivosti: otkrivanje ciljnog domaina,nain transporta agenta).

Primena pokretnih agenata je u sljedeim podrujima:

Elektroniko poslovanje (komercijalna transakcija moe traiti pristup urealnom vremenu udaljenim resursima, npr. vrednostima deonica), Osobni asistenti (agent obavlja neki zadatak za svoga vlasnika, ak i kada jeraunar iskljuen), Sigurna saradnja s drugim agentima (ukoliko nisu poverljivi svi agenti s kojima se sarauje, tada se sastanak agenata napravi na sigurnom raunaru), Distribuirano pretraivanje informacija (agenti stvaraju preglednost sadraja na udaljenim raunarima i kasnije ih prebacuju na svoje raunare kako ne bi morali prebacivati ogromne koliine informacija na pretraiva da bi se stvorio preglednost sadraja), Upravljanje telekomunikacijskim mrenim uslugama (agenti izvode dinamike rekonfiguracije mree te prilagoavaju usluge korisnicima), Monitoring informacijskog izvora (agent prati rad informacijskog izvora bezda je zavistan o sistemu s kojeg dolazi),

Udaljeno auriranje softvera (agenti omoguuju automatsko auriranjesoftvera na udaljenom raunaru i irenje informacija (agenti mogu realizovati internetski push model ukojem donose na udaljenim raunarima svee informacije, npr. vesti)

Slika 3.1. prikazuje mobilnog agenta, njegovu mogunost putovanja na druge raunare putem mree. Tokom tog putovanja agent sa sobom prenosi svoje stanje i tu nastavlja sa izvoenjem.

Slika 3.1. Mobilni agent

4. Informacije / Internet agenti (eng. Information/Internet agents) - koriste se zapronalaenje informacija na lokalnom disku preko niza sistema za pretraivanjeviestrukih baza na udaljenim posluiteljima ili za pronalaenje informacija naintranetu ili internetu. Ovi agenti se spominju u sledeem delu ovoga poglavlja gde e biti reeno neto vie o njima.5. Reaktivni agenti (eng. Reactive agents) - ne sadre unutranju logiku, niti poseduju vlastiti model okoline. Njihovo delovanje zavisi o trenutnim dogaanjima i stanjima sistema (ovi agenti ne planiraju svoje akcije). Najee se primenjuju u raunarskim igrama.6. Inteligentni agenti (eng. Smart agents) - ovi agenti mogu automatski izvriti zadatak od druge osobe ili agenta. Jednom podeeni inteligentni agenti izvravaju svoje zadatke bez daljne intervencije korisnika. Njihova najea upotreba je za automatsko traenje informacija, daju odgovore na postavljena pitanja u domenu svog znanja, obavetavaju korisnika o zanimljivim dogaajima (npr. pojava novog lanka na webu), pronalaze artikle po najpovoljnijim cenama i sl. Inteligentni agenti imaju mogunost adaptacije to znai da se tokom vremena njihove sposobnosti poboljavaju. Za uenje agenata koriste se razliite metode: statistika analiza, zakljuivanje temeljeno na pravilima, neizrazita logika, neuronske mree, evolucijsko raunanje.

Slika 3.2. prikazuje model inteligentnog agenta, njegovu sposobnost reavanja zadataka, prikupljanje i korienje znanja te njegovu saradnju s drugim agentima i s korisnikom.

Slika 3.2. Model inteligentnog agenta

Hibridni agenti (eng. Hybrid agents) - temelje se na jednoj ili vie prethodnonavedenih vrsta agenata. Na ovaj nain je mogue unutar jednog agenta imati sadranufunkcionalnost nekoliko vrsta, zavisno o zahtevima sistema.

Osim ove osnovne podele agenata postoje i sledei agenti:

1. Agenti za obavljanje nekog zadatka - ovi agenti obavljaju zadatke u ime korisnika ili drugog agenta.2. Agenti koji zakljuuju ovi agenti interpretiranju dogaaje, rjeavaju probleme i odreuju akcije koje e poduzeti.3. Agenti za pregovaranje koriste se za dijalog, pregovaranje i koordiniranje prenosa informacija.4. Korisniki agenti omoguuju komunikaciju s korisnikom. Putem njih korisnikpostavlja svoje zahteve i putem njih se tom korisniku predoe rezultati obrade.

1.3 Inteligentni agenti za pretraivanje Web-a

Inteligentnim agentima za Pretrativanje veb - a nazivaju se raunarske programe to samostalno izvode neki pretrativacki posao " u ime i za raun " korisnika . Smjeteni su u raunal vlasnika to ne mora nuno biti ( ai najece nije ) raunali krajnjeg korisnika, vec neko internetsko web mesto. Korisnik mora da ih " napuniti " informacijama o podrujima svojeg interesa, pravilima Pretrativanje , prioritetima te eventualnim vremenskim ogranicenjima.nakon to agent obavi postavljeni mu zadatak , analiziraju se rezultati , a agent ispravlja sam sebe ako ti rezultati nisu zadovoljavajuci prema nekom unapred postavljenom kriterijumu.Inteligentni agenti za pretraivanje Web-a mogu imati razliite stepene samostalnosti uizvravanju zadataka u odnosu prema korisniku i njegovim potrebama. Tako neki od njih mogu samo da prikupljaju informacije, neki drugi filtrirati (selektovati) poruke primljene elektronskom potom ili putem dostavnih lista , a neki saraivati sa drugim agentima, te obavljati veoma sloene i specifine zadatke.Razvijene su tri vrste takvih agenata:

1. Web puzai (eng. Web crawler) - pokuavaju korisniku dati celovit pregledinformacija "etajuci" Web-om i izvetavajuci korisnika o onome to su pronali.2. Web pauci (eng. Web spider) - to su programi koji se pomocu "crvica"(eng. Worm) "Uvlaim" u dubinu hipermedijskih dokumenata, odnosno Web stranica, te pronaene informacione sadraje indeksirane i pohranjuju u sopstvene baze podataka koju korisnik moe kasnije jednostavno na raunaru pretraivati i analizirati.3. Web roboti (eng.Web robot) - to su programi koji mogu gotovo potpuno nezavisno od korisnika izvravati kompletne transakcije, poput kupovine na daljinu, rezervaciju avionskih karata, novanih transakcija itd ., u skladu sa instrukcijama koje im je korisnik ranije dao.

Podruje primene inteligentnih agenata za pretraivanje Web-a je vrlo iroko. Tako seinteligentni agenti koriste i za:

statistike analize osveavane URL adresa zrcaljenje (eng. Mirroring) indeksiranje kombinirana upotreba

1.3.1 Izgradnja jednostavnog inteligentnog agenta za pretraivanje Web-a

U ovome delu e biti neto reeno o izgradnji inteligentnog agenta za pretraivanje Web-a.Parametri koje trebamo definirati za agente su:

Cilj kljuna re ili fraza, Poetna lokacija URL adresa od koje poinje pretraivati, Broj iteracija koliko ponavljanja (to vie URL-ova to bolje), Vremensko ogranienje koliko dugo e pretraivati i Metoda pretraivanja na koji nain e birati put.

Razvoj inteligentnog agenta podrazumeva 4 glavne faze:

1. Faza inicijalizacije (eng. initialization) ukljuuje postavljanje svih varijabli, struktura i polja, te unoenje ulaznih informacija o pretraivanju: kljuna re, cilj pretraivanja, broj Web stranica koje sadre kljunu re, poetna lokacija, metoda pretraivanja.2. Faza percepcije (eng. perception) je usmerena na korienje znanja za kontaktiranje Web stranice i pronalaenje informacija s te lokacije. Treba identifikovati prisutnost kljune rei i linkove s te stranice na druge.3. Faza akcije (eng. action) tokom ove faze agent uzima sve prikupljene informacije i odluuje je li cilj postignut tj. je li meta pronaena i pretraivanje gotovo. Ukoliko cilj nije postignut tada mora odluiti koju adresu e sledeu posetiti. Ovaj deo se odnosi na inteligenciju agenta a koliko e agent biti inteligentan zavisi o metodi pretraivanja koju e odabrati.4. Faza efekta (eng. effect) u ovoj fazi agent izlistava Web adrese na kojima je pronaao kljunu re, daje status i povratnu informaciju korisniku.

Na Slici 3.1.1.1. je prikazan niz osnovnih akcija inteligentnog Web agenta, od poetkapretraivanja pa do kraja tj. postignutog cilja (pronalaenja onoga to korisnika zanima).

Slika 3.1.1.1 Niz osnovnih akcija inteligentnog Web agenta

3. Metode pretraivanja Web-a

Zadatak agenta je doci iz poetnog stanja do ciljnog stanja , koje je reenje problema, sledom dogaaja koji uzrokuju promene stanja . Jedna od metoda je metoda pretrage prostora stanja - to je postupak koji slijedno prolazi kroz stanja u kojima bi se mogao nalaziti sistem , te uporeivanjem trenutnog stanja sa ciljnim stanjem odluuje se da li je postupak doao do kraja. Postoje dve osnovne klase algoritama za Pretraivanje, a to su: slepo ili neinformirano pretraivanje i heuristiko ili usmereno pretraivanje.Slepo pretraivanje - je pretraivanje koje nema nikakvih informacija o broju koraka ilivrednosti putanje od poetka pa do cilja. U ova pretraivanja se ubrajaju:

1. Pretraivanje po dubini (DFS) - je nain pretraivanja koji radi na principu LIFO.

Slika 3.1.2.1 Primer grafa pretraivanja po dubini

Na Slici 3.1.2.1. moemo videti primer grafa Pretraivanja po dubini, gde je poetnostanje oznaeno sa A, a ciljno stanje oznaeno je sa L, poetno stanje je voru A iskladitimo ga u gomilu. Dole u Tabela 3.1.2.1. se vidi izvoenje operacije i stanje na gomilu.

Postupak se ponavlja sve dok prvi element stoga ne bude ciljni vor (tj. dok se ne dostigne L to je najbolje prikazano tablicom).

Tabela 3.1.2.1. Tok izvoenja operacija pretraivanja po dubini

2. Pretraivanje po irini (BFS) - je nain pretraivanja koji radi na principu FIFO

Slika 3.1.2.2. Primer grafa pretraivanja po irini

Na Slici 3.1.2.2. moemo videti primer grafa pretraivanja po irini sa poetnimstanjem A i ciljnim stanjem L (kao i u prethodnom pretraivanju). Dole u Tablica 3.1.2.2. moe se videti tok ovoga pretraivanja i kako se razlikuje od prethodnog.

Tablica 3.1.2.2. Tok izvoenja operacije pretraivanja po irini

3. Pretraivanje sa jednolikom cenom(UCS) - slino pretraivanju po irini.4. Pretraivanje do odreene dubine(DLS) - vrsta pretraivanja po dubini, samo to je ovde dubina pretraivanja ograniena.

Heuristike(usmerene) metode pretraivanja ove metode koriste dodatne informacije o problemu koje mogu ubrzati pronalaenje reenja, a to su:

1. Pretraivanje najboljim prvim ( eng. Best first search) pretraivanje po irini.2. Pretraivanje penjanjem (eng. Hill climbing search) slina metodi pretraivanja po dubini (iri se onaj vor koji je najpogodniji dok se ostali briu).3. A* pretraivanje - je poseban sluaj pretraivanja najboljim prvim koji ukljuujupostupak raunanja udaljenosti vora n od poetnog vora.4. Ogranieno pretraivanje po irini (eng. Beam search) posebna vrsta A*pretraivanja, sprovodi pretraivanja na samo n odabranih najboljih vorova.5. IDA* pretraivanje posebna vrsta A* pretraivanja, postavlja graninu vrijednost tj. dubinu do koje se istrauje.

3. Primeri agenata za pretraivanje Web-a

Danas postoji veliki broj inteligentnih agenata za pretraivanje Web-a. Njihov razvoj je poeo ranih 90-ih i dan danas traje. Popis svih inteligentnih agenata se moe videti u bazi podataka na adresi http://www.robotstxt.org/db.html . Neki od tih inteligentnih agenata za pretraivanje Web-a e biti predstavljeni, njihova svojstva i osnovne funkcije.

1. TueMosaic - je najraniji primer inteligentnog agenta za pretraivanje Web-a.Korienjem ovoga agenta korisnik moe uneti kljunu re, odrediti dubinu i irinu pretraivanja za linkove sadrane na poetnoj stranici, te zatraiti od agenta da hvata poetne stranice povezane s tom stranicom. TueMosaic koristi metodu pretraivanja najboljim prvim koja je spomenuta u prethodnom poglavlju.

2. WebCrawler - je razvijen nakon tueMosaic-a. Ovaj agent zapoinje pretraivanjevlastitog indeksa, a linkove pretrauje na inteligentan nain. Nakon preuzimanja dokumenata WebCrawler oznaava dokumente, deifrira odlazee linkove i indeksira sadraj dokumenta. Pretraivanje se zapoinje od poznatog skupa dokumenata, istraujui njihove odlazee linkove, sledei jednog od linkova koji vodi u novi dokument, a zatim se ponavlja cijeli postupak. Nedostatak je taj to su ti tekstovi veinom kratki i ne osiguravaju relevantnost podataka, odnosno kada korisnik unese kljune rei kao upit, a naslov i URL dokumenta koji sadre neke ili sve od tih rei su dobavljeni iz indeksa i predstavljeni korisniku kao lista dokumenata sortiranih po vanosti. Na Slici 3.1.3.1. moemo videti kako izgleda ekran WebCrawler-a.

Slika 3.1.3.1 Izgled WebCrawler ekrana

3. Letizia - je inteligentni agent koji koristi Netscape kao svoj interfejs sa jednimprozorom koji slui korisniku za pretraivanje i s jednim ili vie prozora koji prikazuju preporuke agenta. Letizia pokuava predvideti potrebe korisnika ali ga ne ometa u njegovom pretraivanju, ali korisnik moe bilo kada zatraiti preporuke agenta. Kada korisnik zatvori stranicu agent odbacuje te pretrage i zapoinje nove pretrage vezane uz stranicu koju je korisnik otvorio. Ovaj proces se zove izvianje jer Letizia izvia novu teritoriju pre nego mu korisnik pristupi. Na Slici 3.1.3.2. moemo videti kako izgleda ekran Letizi-e.

Slika 3.1.3.2 Izgled Letizia ekrana1. BDI agent

BDI model ili model uverenja, elja i namera se bavi prouavanjem praktinogzakljuivanja i nemogucnostima ranijih modela uverenja - elja da bi objasnili ljudsku nameru stvaranja planova i pridravanje tih pravila. BDI model omogucava stvaranje inteligentnog agenta sa mentalnim stavovima, uverenja, elja i namera. Posedovanjem tih stavova agent moe definisati svoje znanje i pomocu ugraenih pravila koristiti to znanje kako bi doneo odluke. BDI agent je vrsta racionalnog agenta o kojem smo neto vie rekli ranije u poglavlju o vrstama agenata.Uverenje - predstavlja skup znanja koje agent ima o svome okruenju. To znanje se menja kako se okolina menja, tako da se novo znanje dodaje, a zastarelo se brie. Znanje se memorie u jednostavne strukture kako bi se olakao dohvat informacija. Uverenje se koristi u postupku odreivanja ciljeva i naina koji mogu reiti problem.elje - su skup akcija koje agent moe izvriti u svojoj okolini, a mogue je da ih ima i vie od jedne u istom vremenskom trenutku. One mogu biti i u meusobnom konfliktu i ne moraju sve biti istovremeno izvrene. Ciljevi su poput uverenja ili malo stroeg oblika.Namere - su trenutne opcije koje agent izvodi nad svojom okolinom. Za razliku od elja, agent u istom trenutku moe imati samo jednu aktivnu nameru koja se odreuje postupkom prosuivanja nad trenutnim skupom znanja i skupom elja. Namere unose dodatna ogranienja u sistem.Zbog stalne promjene okolia agent je prisiljen stalno prosuivati o svojim namerama. Prema tome, postoje dve strategije prosuivanja. Jedna je strategija sporog agenta kod koje agent vrlo retko prosuuje, a druga je strategija brzog agenta kod koje se prosuivanje vri esto.Postoje razmiljanja da BDI model nije podoban za neke tipove ponaanja, a naroitoosnovni BDI model. Razlog tome je taj to se ini nepodoban za sisteme koji moraju uiti i menjati svoje ponaanje.

Postoje etiri karakteristike inteligentnih agenata zasnovanim na BDI modelu:

Smeteni - uklopljeni su u svoju okolinu, Usmereni prema cilju - imaju ciljeve koje pokuavaju postii, Reaktivni reaguju na promene u okolini i Drutveni mogu komunicirati s drugim agentima (ukljuujui ljude).

Izrada planova je kljuan dio BDI agenta kako bi mogao doi do cilja.Kod tih agenta postoji mehanizam traenja reenja koji definie nain na koji sistem procesuira i odreuje pravila. Ona koriste znanje kako bi doli do odluka, imitirajui nain na koji ljudi dolaze do odluka.Postoje dva mehanizma dolaenja do reenja:

1. ulanavanje unapred (eng. Forward Chaining)2. ulanavanje unazad (eng. Backward Chaining)

Ulanavanje unapred - poinje sa raspoloivim podacima i koristi pravila kako bi se izvuklo jo podataka i na kraju se dolo do cilja. Sistem pretrauje uslove pravila i kada nae ispunjen uslov tada izvri operaciju za taj uslov.Tok obrade je sledei:

sistem proverava uslove pravila ako je uslov ispunjen izvrava se operacija i promeni stanje statusa

Prikaz ulanavanja u napred moemo videti na Slici 3.2.1. koji je predstavljen primerom narudbe i isporuke raunara.

Slika 3.2.1. Prikaz ulanavanja unapred

Ulanavanje unazad - poinje sa listom ciljeva i ide unazad traei raspoloive podatke koji podupiru te ciljeve. Sistem pretrauje pravila i trai odgovarajue, ijim izvrenjem bi se postigao neki cilj. Ukoliko uslov tog pravila nije ispunjen tada se to pravilo stavlja na listu ciljeva.

Tok obrade je sledei:

cilj je izvriti akciju sistem trai pravila ije izvrenje postie eljeno stanje sistema pravila se izvravaju menjajui stanje sistema i izvrava se pravilo koje postie cilj.

Na Slici 3.2.2. vidimo prikaz ulanavanja unazad koji je dat istim primerom kao i prikaz ulanavanja unapred.

Slika 3.2.2. Prikaz ulanavanja unazad

Neki od postojeih BDI agenata su: PRS, IRMA, UM-PRS, dMARS, AgentSpeak(L), JAM, JACK, JADEX, Jason, SPARK, 3ALP.

4. Primer upotrebe BDI agenata

Budui da su BDI agenti jo uvek u razvoju i da postoji mali broj njihovih praktinih primena, ipak u sledeih desetak godina se oekuje mnogo vee zanimanje za njih i vei broj primera njihove praktine primene.Jedan od poznatih postojeih primera BDI agenta koji se koristi u sistemu kontrole zranoga sistema je OASIS(eng. Organic Airborne and Surface Influence Sweep) Njegova arhitektura se sastoji od jednog zrakoplovnog agenta (eng. aircraft agent) po svakom dolazeem zrakoplovu i nekoliko globalnih agenata kao to su usklaiva (eng. sequencer), model vetrova (eng. wind modeller), koordinator (eng. coordinator) i kontrolor putanje (eng. trajectory checker). U sustavu u svakom trenutku radi paralelno 70 - 80 agenata koji su zrakoplovni agenti odgovorni za let zrakoplova, a globalni agenti za celokupno usklaivanje i koordinaciju zrakoplovnog agenta. Sistem trenutno prolazi paralelna evaluacijska ispitivanja na aerodromu u Sydney-u, dobivajui prave podatke uivo sa radara. Zrakoplovni agent je odgovoran za letenje po putanji leta odreenoj koordinatama niza taaka na planiranom putu. Ovde je jedina nesigurnost vetar, tj. njegova jaina i smer. Za svaku taku planiranog puta su vrednosti vetra drugaije. Agent ima izbor brzine leta izmeu minimalne i maksimalne brzine i izbor visine leta izmeu minimalne i maksimalne.Poto je cilj leta odredini aerodrom, elje zrakoplovnog agenta za putom leta su one ije izraunato vremensko trajanje leta odgovara eljenom trajanju leta. Agentova lista elja se dobija od liste uverenja, uklanjajui putove koji ne zadovoljavaju uvjete leta. Lista namera se dobija iz liste elja, zadravajui samo one putove koji su "najbolji" u odnosu na potronju goriva, zrakoplovnih performansi i dr.Glavna svrha agenta usklaivanja je sigurno sletanje aviona u optimalnom nizu. Koristei karakteristike performansi zrakoplova, eljenu udaljenost izmeu zrakoplova, vrednosti vetra, dodelu piste i funkcije trokova, agent usklaivanja koristi vie razliitih strategija prosuivanja kako bi proraunao "najbolji" redosled dolazaka za zrakoplove i trajanja njihovog leta unutar odreenog vremena. Agent ostaje pri svom planu dok: (a) svi zrakoplovi nisu sleteli u datom redosledu, ili (b) ne veruje da postoji mogunost da e sledei zrakoplov stii u svom odreenom vremenu trajanja leta (OVTL). Ovo nije klasian pogled na teoretsko odluivanje, jer bi svaka promena vrednosti vetra traila ponovno proraunavanje redosleda dolazaka, ak i kad bi svi zrakoplovi stigli unutar svog OVTLa.U implementiranoj verziji OASIS-a, svaki se agent u sistemu bavi samo sa trenutnimuverenjima i eljama, a opcije dostupne agentima za postizanje elje su zapisane kao planovi.

Kao primer, makar postoji mnogo razliitih naina postizanja OVTL-a (npr. nisko letenje pod punom brzinom), planovi zrakoplovnih agenata predstavljaju samo kao opcije one putanje leta koje su maksimalno efikasne u odnosu na potronju goriva.U budunosti bi bilo mogue napraviti sustav kontrole cestovnog prometa pomou BDIagenata. Takav sistem bi kontrolirao vozila na cestama i njihova kretanja. Svakom vozilu bi bio pridruen jedan agent vozila koji bi sa centrom koordinirao putne putanje i upravljao vozilom. Tako bi se drastino smanjio broj nesrea izazvan ljudskim grekama, a i guve u prometu. Agent vozila bi mogao u svakom trenutku dohvatiti podatke o saobraajnicama i izraunati najkrai put do odredita, kako bi izbegao mogue guve i to pre doveo korisnika do eljene destinacije.

VIEAGENTSKI SISTEMI

Vieagentski sustavi, MAS (eng. Multiagent Systems) je sustav koji se sastoji od veeg broja agenata koji se mogu nalaziti u meusobnoj interakciji. Retko kada je agent samostalan sistem. U veini situacija on e postojati paralelno s drugim agentima i nalaziti se u interakciji s njima. Ukoliko se problem svodi na vei broj ljudi ili organizacija sa razliitim ciljevima i zasebnim informacijama, tada je nuna upotreba vieagentskih sustava kako bi se upravljalo njihovim meudelovanjem. Vieagentski sustav se razlikuje od onog u kojem je samo jedan agent u postojanju veeg broja agenata od kojih svaki utie na ciljeve i delovanja svih drugih. Takoe postoji mogunost direktne interakcije (komunikacije) izmeu dva ili vieagenata. Slika 4.1. prikazuje jednog agenta i njegovo okruenje, ponekad je teko odrediti razliku izmeu agenta i okoline i posmatrati ih odvojeno. Slika 4.2. prikazuje dva agenta koji se nalaze u istom okruenju i pri emu svaki ima svoje ciljeve, koji se meusobno razlikuju, postupke delovanja i znanja iz odreenih domena. Na slici se takoe vidi prikaz mogunosti direktne komunikacije izmeu dva agenta.

Slika 4.1. Jedan agent i njegovo okruenje

Slika 4.2. Dva agenta u istom okruenju

Mogue je i postojanje velikog broja agenata koji se meusobno vie ili manje razlikuju ali i ne moraju imati mogunost komunikacije s ostalim agentima. Agenti u sistemu s vie agenata moraju meusobno komunicirati, koordinirati svoje aktivnosti i pregovarati kada meu njima doe do konflikta.Mogunosti koje pruaju MAS:

omoguuju menjanje broja procesora koji se primenjuju na reavanje problema, mogunost povezivanja i rada veeg broja tradicionalnih informacijskih sustava firmi, reavanje inherentnih distribuiranih sistema (npr. upravljanje zranim prometom), reavanje problema koji koriste distribuirane izvore informacija, reenje problema tamo gde je ekspertiza distribuirana (npr. u pruanju zdravstvene nege) i sl. Postoje dva ekstremna sistema s vie agenata

1. kooperativni multiagentski sistemi - sve agente je stvorio jedan dizajner, agentisu kooperativni, moe se raunati s tim da e svi agenti raditi za dobro sistema)2. sebini multiagentski sistemi - agente su razvili razliiti dizajneri stoga suagenti individualno motivisani, kompetitivni i ne kooperativni (npr. skupinaosobnih agenata za planiranje sastanaka, gde svaki agent nastoji planiratisastanak u vreme najpogodnije za svojeg vlasnika).

Agentska platforma omoguuje realizaciju vieagentskog sistema koji predstavljaraspodeljenu aplikaciju zasnovanu na agentima.Veina platformi ima arhitekturu koja sadri agentski, sigurnosni i komunikacijski sloj Slika 4.3. Agentski sloj je odgovoran za upravljanje agentima (njihovo kreiranje, kretanje, identifikaciju i sl.), sigurnosni slojosigurava mehanizme za zatitu privatnosti informacija i tienja od neovlaenih aktivnosti u informacijsko komunikacijskom sistemu. Komunikacijski sloj se brine o isporuci poruka koje agenti razmenjuju.

Slika 4.3 Primer arhitekture agentske platforme

Prednosti MAS u velikim softverskim sistemima su:

ubrzanje i efikasnost, robusnost i pouzdanost (otkazivanje jednog agenta rezultira degradacijom ali ne i otkazivanjem itavog sistema), skalabilnost i fleksibilnost ( lako je dodavati nove agente u sisteme), smanjenje trokova (cena agenta je mala u uporeivanju sa cenom sistema) i razvoj i ponovna upotrebljivost (lake je odravati i razvijati modularni nego monolitni sistem).

4.2 Komunikacija izmeu agenata

Programski agenti mogu se promatrati kao aplikacije koje imaju sposobnost komunikacije sa ostalim aplikacijama pri emu se nain izmjene informacija (znanja) stavlja na prvo mjesto.Slika 4.2.1. prikazuje moguu strukturu takvih programskih agenata, odnosno skupinukomponenti koje zajedno sudjeluju u konceptu izmjene informacija:

Slika 4.2.1. Prikaz komponenti u modelu akcije programskih agenata

Komunikacija agenata moe se posmatrati kao troslojna struktura koja se sastoji od transportnog protokola, komunikacijskog jezika i interakcijskog protokola.Interakcijski protokol odnosi se na strategiju komuniciranja i pregovaranja koje programski agent koristi u interakciji sa ostalim agentima. Taj protokol moe varirati od vrlo sloenih mehanizama pregovaranja pa sve do jednostavnih protokola koji se temelje na principu pribavljanja jednostavnih podataka. Komunikacijski jezik predstavlja medij preko kojeg se prenosi informacija (znanje) izmeu agenata. On je taj element pomou kojeg se sadraj komunikacije moe predstaviti na razne naine; kao neka dodatna informacija, kao neki zahtev ili kao upit.Prema tome, jezik slui za izraavanje svrhe komunikacije.Transportni protokol je mehanizam koji se koristi za prenos informacija za vreme komunikacije, poput npr. TCP-a. Praktine performanse transportnih protokola mogu koristiti kombinacije ovih protokola ili druge protokole koji se temelje na njima.Dakle, jezikom se izraava cilj komunikacije, no da bi jezik mogao ostvarivati svoju svrhu, mora mu se pridodati dobro definisana semantika koja opisuje u kakvim odnosima trebaju biti jezini primitivi tako da tvore smislenu celinu.Baza podataka predstavlja izvor informacija u procesu komunikacije. Nju koristi agent u svrhu izmene znanja sa drugim agentima. Ukoliko agentu stigne upit, on pretrauje svoju bazu podataka u potrazi za traenim podatkom. Ako traeni podatak postoji, tada ga vraa kao odgovor na upit, a ako ne postoji, alje izvetaj o tome. Baza podataka s vremenom raste kako agent sudjeluje u komunikaciji.Programski agenti mogu koristiti usluge raznih drugih komponenata kako bi im pomogle u obavljanju poslova. Te komponente moraju imati sposobnost planiranja odreenih aktivnosti, donoenja odluka, prezentacije meta-podataka (meta-podaci su strukturiran prikaz informacija o nekom podatku), modeliranja drugih agenata i dr. Takve vrste komponenata obino se izgrauju nad bazom podataka.Aplikacije koje slue za komunikaciju meu procesima, poput FTP-a (File Transfer Protocol), temelje se na skupu relativno primitivnih komunikacijskih protokola. Razlog tome je to ne postoje standardi koji bi podravali kompleksniju komunikaciju procesa.S ciljem standardizacije protokola koji bi bili vieg nivoa od dosadanjih te nudili mogunost jednostavnije i automatiziranije komunikacije izmeu procesa osmiljen je KQML (Knowledge Query and Manipulation Language), protokol koji slui za izmenu informacija i znanja, o kojem emo neto vie rei u sledeem poglavlju.

4.2.1 KQML agentski komunikacijski jezik

KQML istovremeno predstavlja model strukture poruke, kao i protokol za upravljanjeporukama koji bi omoguio izmenu znanja meu agentima u stvarnom vremenu. Moe se koristiti kao jezik kojim bi neka aplikacija komunicirala sa inteligentnim sistemom ili dva ili vie inteligentnih sistema meusobno izmenjivala podatke potrebne za zajedniko reavanje problema.KQML se u prvom redu temelji na dva bitna elementa u procesu komunikacije:

1. znati s kim komunicirati i kako pronai izvor traene informacije i2. znati kako zapoeti i odravati izmenu informacija.

Prema tome, KQML je jezik i skup protokola koji procesima olakavaju identifikovanje,povezivanje i izmenu informacija sa ostalim procesima.

Slika 4.2.2.1. Jednostavna sinhrona komunikacija

Na Slici 4.2.1.1. prikazan je klasini primer sinhrone komunikacije dva procesa. U tom jednostavnom primeru jedan proces (klijent) alje upit (query) drugom procesu (serveru) i eka na odgovor (reply). U stanju oekivanja odgovora klijent je blokiran, odnosno tek nakon to primi odgovor nastavlja sa daljim radom.Primer na Slici 4.2.1.2. opisuje jo jedan est sluaj kada server na upit klijenta ne aljekompletan odgovor, nego alje parametre na temelju kojih klijent moe zatraiti komponente odgovora, jednu po jednu. Ovakav sluaj moe nastupiti kada klijent postavlja upite nad relacijskom bazom podataka. Iako to zahteva da server poseduje skup unutranjih stanja, pojedinane transakcije su jednake kao i ona u prethodnom primeru, a to znai da se radi o sinhronoj komunikaciji (poalji upit-ekaj-prihvati odgovor).Jo jedan sluaj komunikacije je mogu korienjem asinhronog komunikacijskog protokola Slika 4.2.1.3. Klijent se posebnim zahtevom moe pretplatiti na obavesti o odreenoj temi (eng. subscribe), nakon ega nastavlja s radom. Odgovori od strane servera mogu stizati u proizvoljnim vremenskim trenucima i neodreenom uestalou.

Slika 4.2.1.2. Server moe odravati unutranje stanje tako da pamti delimian odgovor

Slika 4.2.1.3 Klijent alje zahtjev za pretplatom, nakon ega mu odgovori pristiu u sluajnim vremenskim trenutcima

Postoje razne druge izvedbe spomenutih protokola. Npr. poruke ne moraju biti adresirane na jednog servera, nego na vie njih (multicast). Odgovori koji pristiu na sinhroni ili asinhroni nain, moraju se razvrstati tako da se svaki od njih pridrui odgovarajuem upitu.KQML podrava navedene protokole kao deo komunikacijskog jezika. Kada neki programski agent koristi KQML, poruka predstavljena reprezentacijskim jezikom agenta prenosi se unutar KQML poruke. Konceptualno je KQML podeljen u tri sloja: 1) sloj sadraja, 2) sloj poruke i 3) sloj komunikacije Slika 4.2.1.4.Sloj sadraja predstavlja stvarni sadraj poruke, izraen vlastitim jezikom neke aplikacije kojoj je poruka namenjena. KQML-om se moe prenositi bilo koji jezik, ukljuujui jezike predstavljene ASCII kodom ili one binarnom notacijom.Sloj poruke ini jezgru KQML jezika i on odreuje vrstu interakcije meu agentima. Primarne funkcije koje obavlja su identifikacija (odreivanje) protokola koji e se koristiti za isporukunporuka te podrka definiu element koji predstavlja delovanje poruke (performative), a kojeg poiljalac poruke umee u telo poruke da bi naznaio s kojim ciljem alje tu poruku.Upravo taj element pokazuje da li je poruka informativne prirode, da li je upit, da li je naredba ili moda sadri neku drugu vrstu poruke. Ovaj sloj takoe opisuje karakteristike sadraja poput koritenog jezika, semantike i sl.Sloj komunikacije omoguava opis elementarnih parametara agentske komunikacije, poput imena poaljilaca i primatelja, jedinstvenog identifikatora pojedine komunikacije i dr.

Slika 4.2.1.4. Konceptualna podjela KQML jezika

Iz navedenog se moe zakljuiti da strukturu KQML poruke mora initi element koji opisuje tip (svrhu) poruke te skupina parametara za opis sadraja poruke i uesnika komunikacije. U KQML-u postoji sedam kategorija koje predstavljaju mogue tipove poruka, a koje moemo videti u Tablica 4.2.1.1.

Tablica 4.2.1.1. Kategorije poruka u KQML jeziku

Svaki od navedenih tipova poruka ima dobro definisano znaenje, treba napomenuti da ovo nije konaan skup i oekuje se njegovo proirenje novim funkcijama. Agent ili aplikacija koja eli implementirati odreene tipove komunikacije, mora to uiniti na propisan nain.Skupina agenata moe izabrati korienje dodatnih performative elemenata ukoliko imodgovara njihovo izvrenje te protokoli koje elementi koriste.

Tako su skupu standardnih tipova poruka poput ask, tell, deny, delete, te vie protokolno orijentisanom tipu subscribe, pridodani tipovi poruka advertise, koji agent koristi kako bi objavio kakvom vrstom asinhrone poruke bi elio komunicirati, te recruit, kojim agent pronalazi druge agente prikladne za komuniciranje tano odreenim tipom poruke.Skup parametara koji se mogu koristiti u KQML poruci se nalaze u Tablica 4.2.1.2.

Tablica 4.2.1.2. Parametri KQML poruke

Pogledajmo konkretan primer jedne KQML poruke. Pretpostavimo da agentaimena rock-fan zanima broj studijskih albuma grupe Led Zeppelin pa to pitanje postavi nekom serveru imena music-server , koji sadri bazu podataka iz podruja muzike. Upit bi mogao biti strukturiran otprilike ovako :

(ask-one:sender rock-fan:content (STUDIO-ALBUMS LED-ZEPPELIN ?studio-albums):receiver music-server:reply-with zeppelin-albums:language KQML:ontology ROCK-MUSIC)Dakle , u ovom primeru tip poruke je ask - one , to predstavlja upit poslat samo jednom primaocu. Sadraj je (STUDIO - ALBUMS LED - ZEPPELIN ? Studio-albums), kao primalac upita naznaeno je music-server , a element :reply-to izraava elju poiljaoca da mu primalac odgovori na upit koricenjem izraza zeppelin-albums. Element :language predstavlja jezik koricen u komunikaciji (u ovom sluaju KQML), a :ontology naznauje u kojem kontekstu se jezik koristi, to u ovom sluaju znai u kontekstu rock muzike. Gledano prema slojevima KQML jezika, kljunu re (elementi) :sender , :receiver i :repli-with pripadaju sloju komunikacije, :content predstavlja sloj sadraja, dok elementi :language i :ontology formiraju sloj poruke.Nakon nekog vremena, agent rock-fan mogao bi primiti sledei odgovor:

(tell:sender music-server:content (STUDIO-ALBUMS LED-ZEPPELIN 9):receiver rock-fan:in-reply-to zeppelin-albums:language KQML:ontology ROCK-MUSIC)

Ovde tip poruke tell oznaava da se radi o informativnom tipu poruke (poruka koja ima svrhu da primaoca obavesti o neemu).Semantiki model KQML-a nije jo potpuno dovren, a temeljan je na pretpostavci da agent koji koristi KQML jezik poseduje virtuelnu bazu podataka sa dve meusobno odvojene komponente: skup informacija, koji predstavlja ''uverenja'' agenta, odnosno njegovo znanje i skup ciljeva, koji predstavlja agentove namere, odnosno elje. Jeziki primitivi koji oznaavaju delovanje poruke (performatives) definisani su sa ciljem da utiu na sadraj spomenutih skupova. Tako porukom tell agent iskazuje da se taj izraz nalazi u njegovom skupu informacija (uverenja), dok npr. porukom achieve poiljalac izdaje zahtev primaocu da se taj izraz memorie u svoj skup ciljeva, itd.

Slika 4.2.1.5. Uloga KQML usmeriteljaKomunikacijska arhitektura KQML sistema temeljena je na dva specijalizirana elementa, KQML usmeritelj (router) i prilagodni element (facilitator), te grupi metoda KQML interfejsa, KRIL (KQML Router Interface Library).KQML usmjeritelj nekoj aplikaciji prua interfejsa prema mrei, izvodei pritom i klijentske i posluiteljske funkcije. On moe upravljati veim brojem konekcija (veza) istodobno te samostalno nadgledati KQML interakcije Slika 4.2.1.5.Usmeritelj nikad ne gleda sadraj poruke kojom upravlja. Njegova funkcija odnosi se navrstu poruke te elemente koji opisuju sadraj i uesnike u komunikaciji. Ako je neka poslana poruka naslovljena na odreenu Internet adresu, usmeritelj e je proslediti prema toj adresi.Ako poruka referencira odreenu uslugu, usmeritelj e pokuati pronai adresu na kojojse ta usluga nudi. U sluaju da poruka sadri samo opis sadraja (npr. naveden je samo tip poruke, jezik i kontekst), usmeritelj moe pokuati pronai servera koji bi obradioporuku i dostaviti je njemu, ili poruku moe proslediti do drugog ''pametnijeg''komunikacijskog agenta koji bi je dostavio na prikladno odredite. Usmeritelji mogu biti razliitih stupnjeva sloenosti; ne mogu garantirati ispravnu isporuku svih poruka koje prihvate.

4.2.2 FIPA ACL komunikacijski jezik

FIPA ACL16 jezik razvio se iz KQML-a, pa se temelji na slinom principu opisakomunikacije, odnosno slinoj strukturi poruke.FIPA ACL poruka sastoji se od dva osnovna dijela: tijela poruke i ovojnice poruke, ME(Message Envelope), koji se pak sastoje od nekoliko karakteristinih elemenata. Elementi potrebni za ostvarivanje djelotvorne agentske komunikacije varirat e ovisno o situaciji, odnosno tipu i zahtjevima komunikacije. Najvaniji i obavezan element tijela svake ACL poruke je onaj koji opisuje djelovanje poruke (performative element). Osim njega, u veini sluajeva telo ACL poruke takoe sadri poiljatelja poruke (sender), primatelja poruke (receiver) i opis sadraja (content). Ukoliko agent ne prepoznaje ili ne moe obraditi jedan ili vie elemenata ili vrednosti, poslat e poruku da nije razumeo sadraj (not-understood message).

Prema FIPA specifikacijama, telo FIPA ACL poruke sastoji se od nekoliko karakteristinih elemenata, koji su podeljeni u sledee kategorije, ovisno o njihovoj ulozi u komunikaciji:

1. Tip komunikacije delovanja (eng. communicative act):performative oznaava vrstu komunikacijskog djelovanja ACL poruke, odnosno njenu svrhu u komunikaciji. Ovo je obavezan element svih poruka.2. Uesnici komunikacije (eng. participants in communication):sender predstavlja poiljaoc poruke. Ovaj element prisutan je u veini sluajeva, moe se izostaviti ukoliko npr. poiljaoc eli ostati anoniman,receiver sadri identifikator primaoca poruke. Samo u sluaju da se primatelj moe zakljuiti iz konteksta, ovaj element nije potreban, ali je uglavnom prisutan kao deo poruke. Moe sadravati ime jednog ili skupine agenata,reply to oznaava povratnu adresu na koju treba poslati poruku u sluaju da seodgovor ne alje poiljaoca poruke.3. Sadraj poruke (eng. content of the message):content predstavlja sadraj same poruke tj. podatke nad kojima se vri akcijanavedena u poruci. Zahteva se kod veine poruka.4. Opis sadraja (eng. description of content):language oznaava jezik elementa sadraja (kao je jezik sadraja propisan, ovaj deo moe se izbei uz pretpostavku da je poznat agentu koji prima poruku),encoding oznaava na koji nain je kodiran sadraj poruke (agent koji primaporuku, na temelju ovog podatka izvodi dekodiranje sadraja da bi mogao ispravno delovati na njega). Ukoliko ovaj element nije prisutan, tada su podaci o kodiranju zapisani u omotau poruke,ontology predstavlja semantiku jezika , odnosno odreuje znaenje simbola usadraju (koristi se zajedno sa jezikom da bi primaoc mogao interpretirati sadraj). Nije obavezan element.5. Kontrola komunikacije (eng. control of communication):protocol - oznaava komunikacijski protokol koji poiljalac koristi za slanje ACL poruka (izbor protokola nije strogo odreen),conversation id oznaava identifikator komunikacije, a omoguava agentu kontrole sleda zbivanja u komunikaciji. Najee omoguava praenje pojedine komunikacije prilikom komuniciranja sa vie agenata.reply with - odreuje izraz za prepoznavanje komunikacije koji e agent koristiti u svom odgovoru kako bi se mogla razluiti neka komunikacija u sluaju vie istodobnih dijaloga. Naime, ako poiljalac agent od odreenog primatelja eli korienje nekog izraza u odgovoru, to e naglasiti postavljanjem reply with elementa na vrijednost eljenog izraza (reply with )in reply with - nadovezuje se na prethodni element, a predstavlja korienjezahtijevanog izraza u odgovoru. Naime, ako agent A alje agentu B poruku koja

sadri reply-with , agent B odgovorit e sa in-reply-to ,reply by - oznaava vremenski interval (datum/vreme) unutar kojeg poiljalac eli dobiti odgovor.to se tie tipa poruke FIPA je za sada specificirala odreen skup moguih vrednostikomunikacijskog delovanja poruke. Taj skup nije konaan i moe se proiriti novimkomunikacijskim delovanjem. Ni da bi novi tip poruke bio prihvaen, potrebno je da budu zadovoljeni barem sledei uslovi:

moraju biti objanjeni semantika struktura i opis sadraja, detaljan opis jezika i posledica njegova korienja, formalni opis semantike komunikacijskog delovanja izraen standardnim jezikom za opisivanje, preduslovi koji moraju biti ispunjeni da bi se nova vrsta poruke mogla koristiti te uinci tog korienja, naveden i objanjen primer koritenja novog komunikacijskog delovanja,odnosno pojanjenje korisnosti takvog modela komunikacije, jezgrovita i jasna dokumentacija, koja precizno opisuje parametre novog modela i dokaz da je predloena funkcionalnost jedinstvene namene, odnosno da je nijemogue postii kombinacijom postojeih komunikacijskih delovanja.

PRIMERI UPOTREBE AGENATA

U ovome poglavlju bit e navedeni neki od primera upotrebe agenata. U radu su ve prikazani neki od primera upotrebe agenata (inteligentni agenti za pretraivanje web-a). Temeljem ovih primera bit e jednostavnije shvatiti njihovu svrhu postojanja i njihovu korisnost. Najpre e biti prikazan primer upotrebe inteligentnog agenta koji komunicira sa spoljanjim svetom, zatim e bit reeno neto o agentima za pruanje telekomunikacionih usluga.

1.5 Cleverbot

Cleverbot je web aplikacija koja koristi algoritam vetake inteligencije da razgovara sa spoljanjim svetom. Ima za cilj da simulira prirodno ljudsko askanje na zanimljiv, zabavan i duhovit nain.Cleverbot je drugaiji. On ui. Na neki nain, pokazuje kako ljudi ue jezik, injenice, kontekst i pravila.Opti AI uva sve svako je ikada rekao, i pronalazi najprikladnije stvari da kaem koristei kontekstualno imenske tehnike. U razgovoru sa vama koristi samo taj naueni materijal i pozajmljuje malo tvoje inteligencije jer ui vie. Bez tekih-kodiranih pravila, jer u svemu se oslanja na principima povratne informacije. Ovo je veoma velika razlika od veine inteligentnih botova, koji su pravilo-vezan i konaan. Ako govorite na stranom jeziku to e ga naiti, i na odgovarajui nain reaguje ako ima dovoljno da ide dalje. Moe uiti engleski, argonske igre reima, viceve ili bilo koji drugi oblik prepoznatljive osobine jezika. Svako u sutini doprinosi, tako da svi mogu da uivaju u chat-u , moglo bi se rei da je konverzacijska Wikipedia. Uenje isto iz razgovora daje AI optu inteligenciju i karakter, ali nije namenjen za upotrebu u poslovnim prilikama gde se trai vie kontrole nad razgovoru toka.Prikazaemo na Slici 5.1.1. kako to uopte izgleda.

Slika 5.1.1 Razgovor sa inteligentnim softverskim agentom

1.6 Ciljno orijentisani programski agenti za pruanje telekomunikacijskih usluga

Kako je ranije u radu objanjeno, ciljno orijentirani programski agenti su BDI agenti, stoga e biti objanjena njegova primena u novoj generaciji mree. U novoj generaciji mree stavlja se naglasak na razvoj usluga, za razliku od druge i tree generacije gdje je naglas bio na razvoju tehnologije. BDI programski agenti zbog svoje fleksibilnosti imaju veliki potencijal primene za razvoj usluga u novoj generaciji mree. Primer jednog programskog okvira za automatizaciju usluga u mrei je RMS (eng. Remote Mainstance Shell), razvijen na zavodu za telekomunikaciju, Fakulteta elektrotehnike i raunarstva. RMS je agentski orijentisani programski okvir za udaljenu kontrolu nad softverom. Arhitektura RMS-a se sastoji od dve komponente:

RMS konzole (administrativni deo koji omoguuje definisanje operacija nadudaljenim vorovima) i RMS servera (mora biti instaliran na udaljenom voru, a predstavlja okolinu u kojoj se mogu izvoditi operacije i aplikacije). Razvijen je koristeiprogramski jezik Java to Jade agentsku platformu.

Slika 5.2.1. prikazuje arhitekturu RMS-a unapreenog korienjem BDI agenata.

Slika 5.2.1. Arhitektura RMS-a unapreena BDI agentima

RMS server se sastoji od sledeih komponenti:

Proxy agent omoguuje koritenje vie verzija RMS-a na istom stroju ili nekogdrugog komercijalnog okvira za udaljeno upravljanje softverom. Agent za migraciju - upravlja procesom preuzimanja datoteka sa udaljenihservera. Agent za instalaciju sprovodi postupak instalacije programskih komponenti zaudaljeni raunar. Agent za upravljanje aplikacijama nadzire pokretanje ili zaustavljanje radaaplikacija. Agent za konfigurisanje aplikacija njegov je zadatak postupak konfigurisanjainstaliranih aplikacija.

ZAKLJUAK

Rad se bavi softverskim agentima tj. inteligentnim softverskim agentima. Iz rada moemo videti kako je ovo podruje tek u poetku i kako mnogo ljudi i ne znaju ta su uopte softverski agenti. Iako postoji jako malo literature o softverskim agentima jer su se mnogi tek poeli baviti ovim temama moe se zakljuiti kako je to ipak opirno podruje i da je ovim radom obuhvaen samo mali deo tog podruja.Radom su predstavljeni softverski agenti i inteligentni softverski agenti odnosno njihova svojstva, arhitektura, podela, podruja njihove primene. Predstavljeni su i sistemi koji se sastoje od veeg broja agenata koji se nalaze u meusobnoj interakciji te je objanjena i komunikacija meu takvim agentima. Primerima poput Cleverbot i ciljno orijentisanih agenata za pruanje telekomunikacijonih usluga je objanjena konkretna primena inteligentnih agenata.Umetanje inteligencije u maini nije nimalo lak zadatak, naroito prilagoavanje maine korisniku i njegovim eljama. Naroito je teko napraviti takvu mainu jer i korisnik sam ponekad ne zna ta eli. Inteligentni softverski agenti su veliki napredak u tehnologiji jer je ovakva vrsta softvera donedavno bila nezamisliva. Inteligentni softverski agenti su stvoreni kako bi pomagali ljudima, a njihova velika prednost je ta to imaju sposobnost da posmatraju okolinu i da joj se prilagoavaju.Budunost agenata je optimistina, ali pre njihove potpune primene potrebno je iskljuiti svaku mogunost da nekome nanesu tetu, potrebno je da se korisnik osigura da uvek ima kontrolu nad agentom, agenti ne smeju otkriti svoje znanje nekome kome ne bi trebali i trebaju potovati pravilo privatnosti. U budunosti e inteligentni agenti postati neto sasvim uobiajeno. Oni tede vreme i olakavaju upotrebu aplikacija, njihov potencijal je neogranien.2