76
SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE V A R A Ž D I N Marin Rukavina AGENTI U 3D OKOLINI DIPLOMSKI RAD Varaždin, 2015.

DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

SVEUČILIŠTE U ZAGREBU

FAKULTET ORGANIZACIJE I INFORMATIKE

V A R A Ž D I N

Marin Rukavina

AGENTI U 3D OKOLINI

DIPLOMSKI RAD

Varaždin, 2015.

Page 2: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

SVEUČILIŠTE U ZAGREBU

FAKULTET ORGANIZACIJE I INFORMATIKE

V A R A Ž D I N

Marin Rukavina

Matični broj: 42617/13–R

Studij: Baze podataka i baze znanja

AGENTI U 3D OKOLINI

DIPLOMSKI RAD

Mentor:

Doc.dr.sc. Markus Schatten

Varaždin, studeni 2015.

Page 3: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

I

Sadržaj

1. Uvod ...................................................................................................................................... 1

2. Agenti i višeagentni sustavi ................................................................................................... 3

2.1. Pojam agenta .................................................................................................................. 3

2.1.1. Programi, objekti, ekspertni sustavi i umjetna inteligencija ................................... 4

2.2. Višeagentni sustav .......................................................................................................... 6

2.3. Konačni automati ............................................................................................................ 6

2.3.1. Agent kao konačni automat ..................................................................................... 8

2.4. Vrste okolina .................................................................................................................. 8

3. Agenti u 3D okolini ............................................................................................................. 11

3.1. Pojam prostora u tri dimenzije ..................................................................................... 11

3.1.1. Euklidski vektorski prostor ................................................................................... 12

3.1.2. Gibanja i pomaci u Euklidovom prostoru ............................................................. 13

3.1.3. Agentno razumijevanje prostorne stereometrije .................................................... 14

3.2. Pokretni strojevi s mogućnosti programiranja .............................................................. 15

3.2.1. Roboti .................................................................................................................... 15

3.2.1.1. Primjeri ........................................................................................................... 16

3.2.1.2. Robot Shakey ................................................................................................. 19

3.2.2. Bespilotna prijevozna sredstva .............................................................................. 20

3.2.2.1. Bespilotne letjelice ......................................................................................... 20

3.3. Percepcija okoline i senzorska tehnologija ................................................................... 21

3.3.1. Senzori udaljenosti ................................................................................................ 22

3.4. Otkrivanje okoline ........................................................................................................ 24

3.4.1. Procjena položaja .................................................................................................. 26

3.4.2. Akvizicija 3D podataka ......................................................................................... 27

3.4.3. Mapiranje ............................................................................................................... 27

3.4.3.1. Reprezentacije metričkih mapa ...................................................................... 28

3.4.3.2. Implementacija metričkih mapa ..................................................................... 28

3.4.4. Istraživanje ............................................................................................................ 30

3.4.4.1. Rubne metode ................................................................................................. 31

3.4.4.2. Metode temeljene na dobitku informacija ...................................................... 31

4. Simulacija 3D višeagentnih sustava .................................................................................... 34

4.1. Potreba .......................................................................................................................... 34

4.2. Pregled postojećih višeagentnih 3D simulatora ........................................................... 34

4.2.1. V-REP ................................................................................................................... 35

Page 4: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

II

4.2.2. Entorama ............................................................................................................... 37

4.2.3. AMP ...................................................................................................................... 38

4.2.4. FLAME ................................................................................................................. 40

5. Primjer: Simulator agentnog ponašanja u 3D okolini ......................................................... 42

5.1. Zamisao simulatora ...................................................................................................... 42

5.1.1. Vrsta okoline ......................................................................................................... 43

5.1.2. Podmornica kao agent ........................................................................................... 43

5.1.3. Učitavanje scenarija i neovisnost od definicije terena .......................................... 44

5.1.4. Orijentacija na modularna ponašanja .................................................................... 45

5.2. Odlučivanje o platformi ................................................................................................ 45

5.3. Pregled korištenih tehnologija i biblioteka ................................................................... 46

5.3.1. Three.js .................................................................................................................. 46

5.3.2. Tween.js ................................................................................................................ 48

5.3.3. Enmasse.io suita .................................................................................................... 49

5.3.3.1. Hypertimer ..................................................................................................... 50

5.3.4. Ostale tehnologije .................................................................................................. 51

5.4. Implementacija ............................................................................................................. 52

5.4.1. Definicija terena .................................................................................................... 52

5.4.2. Simulator ............................................................................................................... 54

5.4.2.1. Detekcija kolizija ............................................................................................ 54

5.4.3. Agenti .................................................................................................................... 55

5.4.4. Ponašanja ............................................................................................................... 57

5.4.4.1. Algoritmi istraživanja ..................................................................................... 59

5.4.5. Meniji, izgled simulatora i ostala funkcionalnost.................................................. 60

5.5. Diskusija ....................................................................................................................... 62

5.5.1. Akvizicija 3D podataka ......................................................................................... 63

5.5.2. Sposobnosti istraživačkog ponašanja .................................................................... 63

5.5.3. Organizacija koda .................................................................................................. 65

6. Zaključak ............................................................................................................................. 67

7. Literatura ............................................................................................................................. 68

8. Popis slika ............................................................................................................................ 70

9. Popis isječaka koda .............................................................................................................. 71

10. Prilozi ........................................................................................................................... 72

10.1. Resursi .................................................................................................................... 72

Page 5: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

1

1. Uvod

Tehnologija svijeta se neprestano razvija – uređaji postaju manji, štedljiviji, moćniji;

sve je više elektroničkih naprava spojenih na Internet od mobilnih uređaja do frižidera i

perilica rublja. Premda je budućnost autonomnih automobila, pametnih kućanskih uređaja i

bijele tehnike te robotskih dostavljača pošte zračnim putem opisivana već godinama, ona

postepeno postaje sve manje fantastična kroz postepeni razvoj i široku primjenu naprava koje

stvaraju unikatnu tehnološku platformu.

Razvoj softvera za te nove prilike najzanimljiviji je možda iz perspektive autonomnih

agenata koji rješavaju probleme koji su ljudima nemogući ili repetitivni i naporni. Postoje

istraživanja u kojima se opisuju načini otkrivanja nepoznatih terena višekatnih zgrada u svrhu

robotiziranog traganja za ljudima koji su unesrećeni potresima i prirodnim katastrofama. U

takvim slučajevima ljudski napori često ne uspijevaju otkriti ili kasno otkrivaju zarobljene

osobe, a u budućnosti bi rojevi takvih robota mogli brže otkriti lokacije ljudi i omogućiti bolju

koordinaciju spasiteljskih snaga.

Opisana primjena je samo jedna od mnogih, neke od kojih su nam trenutno

nezamislive. Dostava pošiljaka zračnim putem, koordinirano istraživanje podmorja i svemira,

automatiziran popravak sustava hlađenja u postrojenjima za iskorištavanje nuklearne energije,

automatizirana vozila koja znaju najbolju rutu i gdje naći parkirno mjesto već su neki od

svakodnevno istraživanih primjena autonomnih robota-agenata u prostoru oko nas koje

zamjenjuju opasne i dosadne poslove ili poboljšavaju kvalitetu i energetsku efikasnost.

Područje razvoja autonomnih agenata za primjenu u upravljanju robotima, letjelicama

i drugim napravama vrlo je široko područje koje je zanimljivo na svim razinama zasebno. Da

bi takav robot bio dobar, mora imati dobru senzorsku tehnologiju i razumijevanje i

interpretaciju ulaza s tih senzora. Mora imati dobre modele stvarnosti temeljem kojih može

rezonirati o koracima nekog zadatka, te koje korake ne smije napraviti. Mora biti svjestan

drugih agenata u njegovoj okolini (robota, ljudi, životinja) i kako komunicirati s njima ako je

potrebno za postizanje zadatka ili izbjegavanje različitih konfliktnih slučajeva (prostornih i

logičkih). Na kraju, vjerojatno nije sam na svijetu – mora imati svoj protokol djelovanja kojim

postaje jedan element velike cjeline koja postiže cilj distribuirano, djelomično sinkronizirano.

Takva cjelina si može ostavljati tragove u okolini koji potiču određene radnje ili odgovaraju

Page 6: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

2

od njih. Takvi sustavi su samooptimizirajući, kolektivno učeći i iz njih izranja funkcionalnost

koja bi bila nezamisliva od jednog pojedinca. Premda su takvi fizički sustavi još uvijek daleki

od implementacije, svakog dana se rješavaju problemi koji ih čine stvarnijim – često koristeći

primjere iz životinjskog i biljnog svijeta za inspiraciju o najefektivnijim takvim metodama.

U ovom radu predstavljene su osnovne značajke agenata u 3D okolinama te su

istaknuti osnovni problemi i zahtjevi njihove implementacije. Stavljen je naglasak na

računalnu simulaciju takvih agenata kako bi se njihovo ponašanje moglo analizirati odvojeno

od fizičke implementacije. Kroz projekt kojeg sam napravio u sklopu ovog rada namjeravao

sam pokazati simulaciju istraživanja nepoznatog prostora koje je podijeljeno između više

agenata te kako se može ponašanje agenata mijenjati.

Područje agenata u 3D prostoru obuhvaća ne samo područje višeagentnih sustava i

robotike, već brojna druga područja među kojima – da nabrojim samo nekoliko – su logika,

matematika, sociologija, filozofija, ekologija, teorija igara, umjetna inteligencija, fizika,

elektrotehnika, statistika, teorija estimacije, teorija signala i digitalnog procesiranja signala te

teorija sustava. Svjestan opširnosti područja kojeg obrađujem, pokušao sam spomenuti

najbitnije bez dubokih digresija u tisuće i tisuće detalja koji bi mogli biti predmet rada za

sebe.

Page 7: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

3

2. Agenti i višeagentni sustavi

2.1. Pojam agenta

Riječ „agent“ je izvedena iz latinskog glagola agere, što znači činiti, raditi ili voditi. U

svakodnevnom govoru, agentom se imenuju osobe ili stvari koje čine nešto za nas ili umjesto

nas, implicirajući da te osobe ili stvari imaju slobodu odlučivanja o tome koja je radnja (ako je

ima) je primjerena (Nwana, 1996).

U područjima računalne znanosti se termin agenta koristi u različitim kontekstima, ali

generalno sa sličnim značenjem. Jedna disciplina u kojoj je učestalo korištenje tog termina

jesu računalne mreže i telekomunikacija, gdje se misli na bilo kojeg sudionika u komunikaciji

ili nekom njenom dijelu. Pod softverskim agentom se s druge strane misli na softversku

aplikaciju koja je u stanju proaktivno djelovati i zastupati interese korisnika, u najširem

smislu. Dogovora oko konkretne definicije među istraživačima i znanstvenicima nema, ali

gore navedena definicija solidno obuhvaća smisao računalnog agenta.1

Schatten (2015) navodi sljedeću formalnu definiciju agenta:

Ag ∶ 𝑃𝑂 → 𝐴𝐾

definirajući time da je agent preslikavanje prolaza kroz okružje u akciju, gdje je 𝑃𝑂 konačni skup

svih prolaza koji završavaju okružjem, gdje je prolaz definiran kao naizmjenični niz stanja

okružja i akcija. Okružje je element skupa diskretnih stanja, a akcija je element iz konačnog

skupa repertoara akcija nekog agenta. Koristeći koncept crne kutije iz teorije sustava, moglo

bi se reći da je agent crna kutija koja spoznaju o okolini, prethodnim akcijama nad njom i

prethodnim stanjima te okoline daje za izlaz akciju koju želi izvršiti. Ako se agentove

spoznaje o okolini stave unutar te crne kutije kao dio njegove implementacije, može se reći da

se na izlazu akcije dobivaju isključivo temeljem agentove percepcije okoline u kojoj se nalazi.

Podjela agenata bi se moglo napraviti mnogo po različitim kriterijima, ali Nwana

(1996) daje zgodnu podjelu u obliku spektra u kojemu se agent prema nekim karakteristikama

stavlja u određeni skup Venovog dijagrama. Sposobnosti koje se razmatraju su mogućnost

1 Hyacinth S. Nwana u Software Agents: An Overview 1996. godine navodi kako konsenzusa među stručnjacima

vjerojatno neće biti oko definicije termina agenta, slično kao i oko definicije umjetne inteligencje.

Page 8: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

4

kooperacije, učenja i autonomnosti, a u ovisnosti od toga koje od tih sposobnosti ima agent

može biti kolaborativan učeći, kolaborativan, agent sučelja ili (ako ima sve osobine), pametan

agent.

Slika 1: Tipovi agenata prema sposobnostima kooperacije, učenja i autonomnosti (Izvor:

Nwana, 1996)

Bez obzira na te sposobnosti, neke značajke koje bi svi agenti trebali imati je da su Woolridge

i Jennings (1995):

1. Autonomni – zahtijevaju vrlo malo interakcije korisnika ili interakcija uopće nije

potrebna jednom kad se agent postavi u okolinu i ima dovoljno podataka za

djelovanje.

2. Reaktivni – agenti ne biraju akcije „naslijepo“, već ostvaruju kontinuiranu interakciju

s okolinom (uključujući i druge agente) te shodno tome biraju akcije.

3. Proaktivni – agenti ne reagiraju samo na okolinu, već aktivno djeluju u njoj u

pokušaju da ostvare vlastite ciljeve, dakle preuzimaju inicijativu i nisu pogonjeni

isključivo događajima u okolini .

4. Društveni – u interakciji su s drugim agentima i ljudima pomoću međusobno

razumljivog jezika, uzimaju ciljeve drugih agenata u obzir te se koordiniraju za

postizanje međusobnog zadovoljstva (u obliku postizanja ciljeva).

Time se dolazi do koncepta da se agenti mogu promatrati kao intencijski sustavi,

odnosno da se mogu radi lakšeg razumijevanja opisivati kao entiteti koji imaju uvjerenja,

želje i namjere i djeluju na okolinu u skladu s tim uvjerenjima, željama i namjerama.

2.1.1. Programi, objekti, ekspertni sustavi i umjetna inteligencija

Page 9: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

5

Franklin i Graesser (1996) su bili među prvim istraživačima koji su uveli distinkciju

između programa i agenata, navodeći pritom četiri ključne pojave koje razlikuju agente od

proizvoljnog računalnog programa, pozivajući se također na originalne točke Woolridgea i

Jenningsa (1995):

i. Reaktivnost na okolinu

ii. Autonomnost (većina računalnih programa zahtjeva interakciju s korisnikom koja

odlučuje o tijeku izvođenja, agenti su uglavnom autonomni u svojem radu)

iii. Orijentacija na ciljeve (slično kao i proaktivnost, znači da su agenti sposobni

planiranja, korak po korak rješavaju probleme i uklanjaju prepreke sa svrhom

postizanja nekog cilja)

iv. Perzistentnost (agenti perzistiraju u svojoj okolini, ne uključuju se na zahtjev kao

drugi programi)

U odnosu na objekte, agenti su autonomniji. Objekti su uglavnom statički konstrukti

koji enkapsuliraju neko stanje, ali ne djeluju samostalno, čekajući poziv od drugih objekata.

Objekti su možda društveni u smislu da ih je više u međudjelovanju, ali agenti su sposobni

različitih načina komunikacije uključujući i pregovaranje oko resursa.

Ekspertni sustavi nemaju percepciju okoline, te ne iskazuju proaktivno ponašanje.

Ekspertni sustav obično čeka da neki entitet (korisnik, agent, …) inicira razgovor s njim i

rezultat je determiniran korisničkim upitima i znanjem. Kod agenata, postoji koncept akcije i

za odabir te akcije agent uzima u obzir svoje znanje (unutarnje stanje) i poznato stanje okoline

ili doživljaj iz okoline.

Pojam inteligentnog agenta nije nužno vezan uz softver, pod tim pojmom se može

označiti ljude, društvene skupine, strojeve, organizacije, itd. To je pojam iz umjetne

inteligencije i usko je vezan uz koncept inteligencije. Agenti ne moraju biti inteligentni ili

imati umjetnu inteligenciju, ali često se koriste tehnike iz područja umjetne inteligencije kod

razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata.

Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina. Nije nipošto

isključeno da agent ima ekspertni sustav kao dio svoje implementacije, niti da je realiziran

objektnim tehnikama.

Page 10: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

6

2.2. Višeagentni sustav

Višeagentni sustav (VAS, eng. multi-agent system, M.A.S.) je pojam srodan pojmu

agenta, kojim se opisuje bilo koji sustav u kojem postoje više agenata u međusobnoj

interakciji. Posebnost ovakvog sustava je u tome što proizvoljan broj agenata djeluju nad

istim okružjem, potencijalno mijenjajući ga. Radi toga, agenti moraju često biti u stanju

sinkronizirati svoje radnje, pregovarati, surađivati i općenito komunicirati radi postizanja

vlastitih ciljeva, koji mogu biti oprečni ciljevima drugih agenata. Među najzanimljivijim

višeagentnim sustavima su oni u kojima pojedinačno agenti nisu sposobni postizati ciljeve, ali

u sustavu u kojemu ih je više ih mogu postići.

2.3. Konačni automati

Konačni automat (eng. finite-state machine) je diskretni matematički model koji se

sastoji od konačnog broja stanja, prijelaza između tih stanja i akcija koje obavlja (Black,

2013). Koncept konačnog automata se može zamisliti kao apstraktni stroj koji može biti u

jednom od više stanja, a prelazi iz stanja u stanje kada se ostvari određeni uvjet ili pri nekom

događaju. Apstraktnost koncepta omogućuje da se njime opiše jako širok spektar pojava –

konačni automati su uz primjenu u modeliranju reaktivnih sustava našli primjene u

elektrotehnici, računarstvu, lingvistici, filozofiji, biologiji, matematici te logici kao i u

brojnim drugim područjima. Područje teorije automata se bavi proučavanjem samih konačnih

automata (Aziz et al., 2005).

Konačni automati se između ostaloga mogu klasificirati po tome jesu li deterministički

ili nedeterministički – jedna od razlika je to što nedeterministički konačni automati imaju

skup početnih stanja, dok deterministički ima točno jedno. U daljnjem tekstu opisat ću samo

determinističku varijantu konačnih automata. Svaki konačni automat je uređena petorka:

(Σ, 𝑆, 𝑠0,𝛿, 𝐹)

Σ … ulazna abeceda (konačni neprazni skup simbola)

𝑆 … skup stanja (konačan i neprazan)

𝑠0 ∈ 𝑆 … početno stanje.

Page 11: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

7

𝛿: 𝑆 × Σ → S … funkcija prijelaza

𝐹 … skup konačnih stanja – potencijalno prazan podskup od 𝑆.

Jedan oblik konačnog automata je takozvani konačni pretvornik ili transduktor (eng.

finite state transducer) koji uz „ulaznu traku“ (apstrakcija koja predstavlja bilo kakvu vrstu

ulaza) ima i izlaznu traku. Takvi automati generiraju izlaze temeljem ulaza i/ili stanja

automata. Ovakav model najbolje odgovara kod opisivanja agenta, te se on najčešće spominje

u ovom kontekstu. Konačni transduktor je uređena šestorka:

(Σ, Γ, 𝑆, 𝑠0,𝛿, 𝜔)

Σ … ulazna abeceda (konačni neprazni skup simbola)

Γ … izlazna abeceda (konačni neprazni skup simbola)

𝑆 … skup stanja (konačan i neprazan)

𝑠0 ∈ 𝑆 … početno stanje

𝛿: 𝑆 × Σ → S … funkcija prijelaza stanja

𝜔: 𝑆 × Σ → Γ … izlazna funkcija

Automati se mogu zapisati tabelarno ili grafički. Grafički prikaz konačnog automata s

dva stanja je prikazan na sljedećoj slici:

Slika 2: Primjer konačnog automata s dva stanja i prijelazima (javno dobro, izvor:

wikimedia.org).

Gore navedeni dijagram prikazuje automat u obliku stroja stanja. Prijelazi između

stanja moraju u ovom slučaju biti izazvani elementom iz Σ = {0,1} i izlazno stanje je spojeno

Page 12: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

8

strjelicom koja zajedno s elementom iz Σ grafički predstavlja funkciju promjene stanja. U

dijagramu nisu označeni izlazi.

2.3.1. Agent kao konačni automat

Konačni automat je vrlo pogodan model za opisivanje ponašanja agenta. Agent se

može promatrati kao konačni automat kojemu je:

1. Ulazna abeceda Σ skup mogućih doživljaja 𝐷𝑜,

2. Izlazna abeceda Γ skup mogućih akcija 𝐴𝐾,

3. Skup mogućih stanja 𝑆 skup mogućih unutarnjih stanja agenta 𝑈,

4. Početno stanje 𝑠0 početno unutarnje stanje 𝑢,

5. Funkcija prijelaza stanja 𝛿 funkcija 𝑠𝑙𝑗𝑒𝑑𝑒ć𝑒,

6. Funkcija izlaza 𝜔 funkcija 𝑎𝑘𝑐𝑖𝑗𝑎.

Tako se agent može razumijevati kao konačni automat koji prelazi iz stanje u stanje s

obzirom na svoja unutarnja stanja i doživljaje, a akcije odabire također temeljem unutarnjeg

stanja i doživljaja. Ovakva definicija agenta koristan je mentalni okvir kojemu sam kasnije

našao primjenu u izradi 3D simulatora agentnog ponašanja, gdje sam ponašanje agenta

izdvojio u zaseban objekt prema GoF state (stanje) uzorku, imitirajući promjenu stanja

funkcijom prijelaza stanja.

2.4. Vrste okolina

Razumijevanje vrsta okolina u kojima se agent može naći je fundamentalni korak u

razumijevanju i modeliranju sustava u kojima će agent ili više agenata djelovati.

Prema Weyns et al. (2006), dva problema vezana uz okolinu koja se najčešće javljaju

u literaturi vezanoj uz višeagentne sustave su:

1. Termin „okolina“ ima nekoliko značenja, što dovodi do nesporazuma.

2. Funkcionalnosti vezane uz okolinu se implicitno rješavaju ili je njihova integracija

napravljena ad-hoc.

Page 13: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

9

Korisno je klasificirati okoline u kojima se agent može naći jer se tako može olakšati

predviđanje toga koliko će biti teško izvesti neki zadatak. Russel i Norvig (2009) daju sedam

različitih klasifikacija okolina:

1. Determiniranost (eng. deterministicness). Okružja mogu biti deterministička ili

stohastička. Deterministička su okružja ona za koje se sljedeće stanje može u

potpunosti predvidjeti ako je poznato trenutno stanje i akcija koju agent odabire.

Ostala okružja su stohastička. Stvarni svijet je primjer stohastičkog okružja jer obiluje

nepoznatim varijablama.

2. Statičnost. Statične okoline se ne mijenjaju dok agent razmatra iduću radnju.

Dinamične okoline uvode dodatne probleme kod dizajna agenta.

3. Pristupačnost (eng. observability). Potpuno pristupačna okolina je ona u kojoj agent

ima pristup svim relevantnim informacijama njegovom zadatku.

4. Agentnost (eng. agency). Agentnost okoline može biti jedna ili višestruka. Ako

postoji barem još jedan drugi agent onda je okolina višeagentna, s time da drugi agenti

mogu biti apatetični, kooperativni ili kompetitivni.

5. Poznatost (eng. knowledge). Okolina je poznata ili znana ako agent razumije pravila

koja vrijede u njoj. Primjerice, okolina igre šaha ne može biti poznata agentu ako ne

razumije da uzimanjem tuđe figure se ona uklanja iz igre.

6. Epizodičnost (eng. episodicness). Okolina prema ovoj razdiobi može biti epizodična

ili sekvencijalna. U sekvencijalnim okolinama je potrebno znanje prethodnih stanja da

bi se odredila točna akcija. Epizodične okoline su nizovi akcija koje se jednom

odabiru. Agent koji promatra sliku da bi odredio je li na njoj prisutna neka značajka je

u epizodičnoj okolini: jedna slika nema nikakve veze s prethodnim ili budućim.

7. Diskretnost (eng. discreteness). Diskretna okolina ima fiksne lokacije ili vremenske

intervale. Kontinuirane okoline s druge strane se mogu mjeriti kvantitativno do bilo

koje razine točnosti. Računala su nedvojbeno diskretni strojevi, pa je razumijevanje

kontinuiranih okolina često implementirano diskretizacijom istih.

Page 14: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

10

Odell et al. (2002) razlikuju fizičku okolinu agenta i komunikacijsku okolinu. Fizička

okolina pruža zakone, pravila, ograničenja i politike koje vode i podržavaju fizičko postojanje

agenata i entiteta u okolini. Komunikacijska okolina pruža:

1. Principe i procese koji vode i podržavaju izmjenu ideja, znanja i informacija

2. Funkcije i strukture koje su učestalo upotrebljene za izmjenu poruka kao što su uloge,

grupe i interakcijski protokoli između uloga i grupa.

Koncept okoline kod višeagentnih sustava je namjerno apstraktan pojam radi iznimno

različitih okolina u kojima se agent može naći. Neki agenti, poput onih koji su predmet ovoga

rada, djeluju u stvarnosti i imaju fizičku manifestaciju u obliku pokretnog tijela i senzora (ili

simulirane varijante istih). Kod takvih agenata se razmišlja o vrsti posla koju će obavljati te

koliko dobro modelirano njihovo znanje o okolini treba biti. Primjerice, agent za čišćenje

podova u kući mora biti svjestan toga da je njegovo okružje dinamično (stolice i drugi kućni

namještaj se mogu premjestiti, ljudi mogu povremeno biti prepreka njegovom radu, itd.) ali ne

treba razumjeti da se u njegovom okružju ne mogu predvidjeti brojevi lutrije. Kod dizajna

takvih agenata treba odlučiti kakav model okoline će agent poznavati – taj model nije nužno (i

gotovo zasigurno nikada neće biti) točna reprezentacija svijeta koji ga okružuje.

S druge strane, neki agenti nemaju fizičku manifestaciju. Djeluju isključivo u

virtualnom prostoru računala. Oni ne trebaju imati razumijevanje stvarnog prostora, ali često

imaju složena razumijevanja one okoline na koju trebaju utjecati.

Page 15: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

11

3. Agenti u 3D okolini

Dosadašnja razmatranja su se ticala agenata na općenitoj razini koja ne mari za

konkretnu vrstu okoline u kojoj se agent nalazi. Na taj način se može jednako razmatrati

agenta koji radi rezervacije karata preko weba i organizaciju kalendara za nekog korisnika i

agenta koji upravlja robotom koji se može kretati kroz prostor. Razlika između takvih agenata

je u skupu akcija koje mogu odabrati kao i skupu unutarnjih stanja koje mogu postići, ali po

tome se razlikuju svi agenti. Od agenta u 3D okolini se prije svega očekuje da ima vlastiti

model stvarnosti koji uzima u obzir neke od zakonitosti koje su bitne za izvršavanje njegovog

zadatka, a kojima podliježu ljudi i predmeti u fizikalnom prostoru – neće svaki agent jednako

poznavati sve aspekte stvarnosti, ali mora biti sposoban zaključivati o onome što mu je važno

za postizanje cilja.

Prema Odell et al. (2002), okolina pruža uvjete pod kojima entitet (agent ili objekt)

postoji, pa je to snažna motivacija za kvalitetno razumijevanje okoline.

3.1. Pojam prostora u tri dimenzije

Matematički gledano, prostor je samo skup brojeva s nekom dodanom strukturom.

Pojam prostora se u matematici tretira vrlo generalno, što omogućuje zaključivanje na

općenitoj razini.

Na najvišoj razini se prostori mogu podijeliti na Euklidove i projektivne (ostale, ili

jednostavno ne-Euklidove). Glavna značajka Euklidovih prostora je definiranost koncepta

udaljenosti između dvije točke, a takvi prostori su oni koji su čovjeku najintuitivniji jer sva

bića na Zemlji svakodnevno djeluju u jednom takvom prostoru – teško je zamisliti da

udaljenost između dva predmeta nije uvijek definirana.

Vektorski prostori su prostori u kojima se razmatra koncept vektora, uređene n-torke

nad kojom su definirane operacije poput zbrajanja i množenja. Generalno su ti prostori

najpogodniji za opisivanje 3D prostora koji nalikuje stvarnosti, što pokazuje i činjenica da je

računanje vektorima potrebno znanje za bavljenje računalnom grafikom. Topološki prostori

su druga vrsta prostora koji postoji, u kojemu se razmatranja temelje na skupovima točaka i

konceptu susjedstva.

Page 16: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

12

3.1.1. Euklidski vektorski prostor

Bez ulaženja u matematički formalizam, može se reći da je neki vektorski prostor 𝑅𝑛

nad poljem realnih brojeva euklidski vektorski prostor ako je u njemu uveden skalarni produkt

(Kurepa, 1987:151). Temeljem definicije skalarnog produkta dva vektora �⃗� = (𝑥1, 𝑥2, … , 𝑥𝑛)

i �⃗� = (𝑦1, 𝑦2, … , 𝑦𝑛) u n-dimenzionalnom vektorskom prostoru 𝑅𝑛,

�⃗� ∙ �⃗� = ∑ 𝑥𝑘

𝑛

𝑘=1

𝑦𝑘

mogu se definirati dva izraza:

1. Norma vektora ili duljina vektora �⃗�,

|�⃗�| = √∑ 𝑥𝑘2

𝑛

𝑘=1

2. Udaljenost dva vektora �⃗� i �⃗�,

𝑑(�⃗�, �⃗�) = 𝑑(�⃗�, �⃗�) = ‖�⃗� − �⃗�‖ = √∑(𝑥𝑘 − 𝑦𝑘)2

𝑛

𝑘=1

3. Kut 𝜃 (0 < 𝜃 < 𝜋) između dva vektora �⃗� i �⃗�,

𝜃 = 𝑎𝑟𝑐𝑐𝑜𝑠 (�⃗� ∙ �⃗�

‖�⃗�‖‖�⃗�‖)

To nam daje aparat za poznavanje možda najosnovnijih aspekta stvarnosti, a to su duljina,

udaljenost i kut. Za neki vektor možemo reći koliko je dugačak i koliko je udaljen od nekog

drugoga te koliki je kut između dva vektora. Ako uzmemo da je 𝑛 = 3, dobivamo izraze za

trodimenzionalni prostor.

Page 17: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

13

Slika 3: U kartezijevom koordinatnom sustavu svaki vektor se izražava pomoću pomaka po

osima baze (Izvor: intmath.com)

Uz skalarni produkt, u vektorskim prostorima je definiran zbroj dva vektora i umnožak

sa skalarom. U trodimenzionalnim vektorskim prostorima je zasebno definiran pojam

vektorskog produkta, koji je također vrlo koristan aparat.

3.1.2. Gibanja i pomaci u Euklidovom prostoru

Kurepa (1990:518) kaže sljedeće o gibanju tijela:

Za neko tijelo u svakodnevnom životu kažemo da se giba tokom vremena

mijenja svoj položaj prema nekim čvrstim tijelima za koja kažemo da se ne

gibaju, odnosno da miruju. Matematički možemo reći da se neka

materijalna točka ili neko tijelo gibaju ako se tokom vremena podudaraju s

različitim geometrijskim točkama.

Temeljem te definicije možemo zaključiti da se gibanje nekog stvarnog tijela može

„projicirati“ u gibanje neke geometrijske točke. Uočava se da je konkretna geometrijska točka

zapravo funkcija vremena, i ako nam je poznat položaj tijela u svakom trenutku je takva

funkcija neprekidna i derivabilna. Derivacijom funkcije možemo dobiti brzinu kojim se tijelo

gibalo i tako spoznati još nešto novo o prostoru oko sebe.

Na analogan način se agentovo znanje može nadopuniti sa spoznajama o gravitacijskoj

sili, sili trenja, inerciji, dinamici tekućina i plinova te s drugim matematičkim modelima koji

predstavljaju spoznaju vezanu uz dio djelatnosti koju agent treba obavljati. Ovo izneseno će

međutim biti osnovno znanje vjerojatno svakog agenta koji želi djelovati u 3D okolini.

Page 18: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

14

Kad se priča o kretanju kroz prostor, mora se spomenuti koncept šest stupnjeva

slobode (6DoF, eng. six degrees of freedom) što predstavlja šest osnovnih kretnji u prostoru

za čvrsto tijelo u tri dimenzije.

Slika 4: Prikaz šest stupnjeva slobode kretanja u trodimenzionalnom prostoru (Izvor:

Wikimedia Commons)

Šest stupnjeva slobode predstavljaju kretnje iz perspektive čvrstog tijela koje

odgovaraju translaciji po i rotaciji oko tri prostornih osi.

3.1.3. Agentno razumijevanje prostorne stereometrije

Postavlja se pitanje kakav je zapravo prostor stvarnosti, i treba li ga agent poznavati ili

može poznavati neku drugu vrstu matematičkog prostora. Ideja je svakako kreirati agenta koji

će imati zaključke o prostornim akcijama koje su nam logične i koje ga neće dovoditi van

sinkronizacije s okolinom u kojoj se nalazi.2

Matematičkih reprezentacija prostora koji nas okružuje je jako puno3, a pitanje

točnosti bilo kojeg od njih je još uvijek otvoreno filozofsko (više nego fizičko ili

2 Kad bi neki zamišljeni agent za dostavu pošiljaka predočavao prostor oko njega kao dvodimenzionalni, koncept

stepenice bi mu bio nejasan i ne bi mogao razumjeti kako preći tu prepreku. Također, kad bi razmatrao radnje u

skladu s uvjerenjem da je Pariz bliži Varaždinu od Zagreba, ne bismo imali koristi od takve dostave jer mu

razumijevanje prostora ne odgovara stvarnosti. 3 Minkowskijev prostor je matematički konstrukt koji se koristi u teoriji relativnosti za reprezentaciju vremena i

prostora. To je samo jedan primjer specijalnog prostora koji je primjenu našao u nekim aspektima razumijevanja

stvarnosti.

Page 19: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

15

matematičko) pitanje koje nije riješeno još od drevnih vremena.4 Stoga je dovoljno reći da

agent ne mora imati savršenu predodžbu prostora u kojemu djeluje – na kraju krajeva, to

nemaju niti ljudi. Kad čovjek krene hodati iz točke A u točku B, ne odabere najkraću rutu, već

odabere heuristički jednu koja mu se čini kraćom, i putem se korigira. To na kraju krajeva

dovodi i do pogrešaka, ali kontinuiranim učenjem o okolini se izbjegavaju ubuduće.

Najbolje je stoga reći da će agentovo razumijevanje stereometrije prostora koja ga

okružuje ovisiti jako o njegovoj namjeni, isto kao što se ne očekuje da odlazak do dućana

bude isplaniran i svaki korak rigorozno izračunat kao svemirski let. Agent koji bi upravljao

svemirskom letjelicom će morati poznavati sve relevantne zakonitosti (uključujući i

relativnost) te stroj koji ih može računati uz određenu točnost.

3.2. Pokretni strojevi s mogućnosti programiranja

Kako bi agent imao stvarne moći mijenjanja svoje okoline, potrebno mu je fizičko

tijelo kojim može raditi akcije. Obično je konstrukcija takva da se cijelim tijelom (uključujući

motore i senzore) upravlja elektroničkim signalima, kao u slučaju robota.

3.2.1. Roboti

Roboti su mehanički agenti koji su obično konstruirani od elektromehaničkog stroja

koji im čini tijelo kojim upravlja upravljački program ili elektronički sklop. Teško je pričati o

kretanju agenata u 3D prostoru bez da se odmah ne zamisli robota. Roboti obično djeluju

autonomno ili polu-autonomno i najbolji su primjeri agenata konstruiranih od strane ljudi da

obavljaju zadatke u fizičkom prostoru. Robotika je čitava disciplina koja se bavi dizajnom,

konstrukcijom, radom i primjenom robota5.

Pojam robota je vrlo širok, te se njime praktički može obuhvatiti bilo koji stroj koji na

nekoj razini autonomnosti obavlja zadatke u 3D prostoru. Opet, ne postoji konsenzus oko

točne definicije, ali postoji općenito slaganje među stručnjacima da roboti mogu se

samostalno kretati u prostoru, koristiti mehaničku ud, osjetiti i manipulirati okolinom te

demonstrirati donekle inteligentno ponašanje, pogotovo ako imitira ljudsko ili životinjsko

4 Zenonovi paradoksi su filozofsko pitanje o svojstvima djeljivosti prostora u kojem se nalazimo. Jasno je da

Ahil uvijek pretekne kornjaču u nekom trenutku, ali nemamo još odgovor na to koja je najsitnija udaljenost koju

tijelo može prijeći. 5 Definicija prema Oxford Dictionaries. Preuzeto 5.11.2015. s

http://www.oxforddictionaries.com/definition/english/robotics

Page 20: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

16

ponašanje.6 Načelno bi se robotom smatrao stroj koji se može programirati da izvodi neke

fizičke zadatke ili akcije.

Pod terminom robota se obično može obuhvatiti i pojava robotske ruke, koja obično

nema mogućnost potpunog kretanja u prostoru, već samo u određenom djelokrugu te je

obično učvršćena za pod.

3.2.1.1. Primjeri

ASIMO (napredan korak u inovativnoj pokretljivosti, eng. Advanced Step in

Innovative Mobility) je čovjekoliki robot dizajniran od strane Honde i predstavljen 2000.

godine. Zamišljen kao pomoćnik ljudima otežane pokretljivosti, ASIMO je vremenom stekao

slavu diljem svijeta i danas je jedan od najprepoznatljivijih robota na svijetu. Možda najveći

njegov doprinos bio je upravo u tome što je popularizirao područje robotike, i učestalo se

predstavlja na događajima u svrhu popularizacije matematike i prirodnih znanosti (Volkmann,

2011).

Slika 5: ASIMO, čovjekoliki robot (Izvor: Wikimedia.org, autor Gnsin, licencirano pod CC-

by-SA 3.0 unported)

Također poznati robot koji je postao dio svakodnevice gotovo 10 milijuna korisnika

diljem svijeta7 jest Roomba, serija autonomnih čistača podova firme iRobot. Od prvog modela

6 Encyclopaedia Britannica navodi sljedeću definciju robota: bilo koji stroj s automatskim upravljanjem koji

zamjenjuje ljudski napor, premda možda ne nalikuje na čovjeka po izgledu niti obavlja funkcije na čovjekolik

način. 7 Prema podacima iz http://www.irobot.com/About-iRobot.aspx, preuzeto 5. studenog 2015.

Page 21: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

17

koji je predstavljen 2002. godine, Roombina posebnost je u tome što ne poznaje geometriju

svojeg okružujućeg prostora. Kroz različite senzore, među kojima je i vrlo bazični senzor

udarca o neki predmet, Roomba uči ne samo o geometriji prostora oko sebe, već i o mjestima

gdje je pod prljav pomoću posebnih senzora. Putem Roomba otvorenog sučelja (eng. Roomba

Open Interface), moguće je programirati Roombu da izvodi druge kreativne zadatke koristeći

embedded računalo.

Slika 6: iRobot Roomba (Izvor: irobot.com)

Primjer iz fikcije je Pixarov film iz 2008. godine WALL-E u kojem je WALL-E

posljednji robot njegove vrste za čišćenje onečišćenog okoliša na Zemlji (prije je bio dio

višeagentnog sustava jednakih robota kao što je on koji su kooperativno čistili Zemlju).

Premda je fikcionalan, WALL-E ima sve važne značajke inteligentnog agenta u 3D prostoru –

mogućnost kretanja, rotiranja i čak dodatne akcije kao što su pokreti rukama kojima je

sposoban potanko manipulirati svojom neposrednom okolinom. Dodatna potvrda njegovih

agentnih značajki je to što ima hobi skupljanja njemu značajnih predmeta iz 50-ih i 60-ih

godina 20. stoljeća, što je (pretpostavlja se) samo njegov cilj kojeg ostvaruje neovisno od

drugih jedinki.

Page 22: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

18

Slika 7: WALL-E, robot iz istoimenog Pixarovog filma primjer je složenog agenta u 3D

prostoru (Izvor: wikimedia.org, copyright Pixar Animation Studios)

OC Roboticsov „Snake Arm“ (zmijoruki) robot na sljedećoj slici složena je naprava sa

savitljivom rukom s brojnim zglobovima i montiranom kamerom kojom upravlja operater.

Kontrolu nad strojem bi mogao preuzeti agent, ali bi tada imao širok spektar složenih akcija

koje može odabrati za kontrolu robotske ruke. Nažalost, zmijoruki robot je fiksno zavidan za

pod prostorije pa nema mogućnost kretanja u svojoj cijelosti, već samo može upravljati

rukom. Nad takvim strojem bi svejedno mogao preuzeti kontrolu agent koji bi obavljao

teoretski bilo koji posao za kojeg bi se namijenilo. Ipak, tehnologija je trenutno na razini toga

da takve strojeve mogu kontrolirati programi koji dovršavaju interijere Airbus zrakoplova, ali

nije na razini da agent samostalno i proaktivno radi popravke sustava hlađenja u nuklearnim

postrojenjima (koje trenutno radi stručno osoblje upravljajući robotskom rukom).

Slika 8: OC Roboticsov "Snake Arm" robot (Izvor: ocrobotics.com)

Page 23: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

19

3.2.1.2. Robot Shakey

Shakey se smatra prvim mobilnim robotom opće namjene koji je imao sposobnost

rezoniranja o svojim akcijama, pa je stoga od posebne važnosti za područje robotike i

autonomnih agenata koji djeluju u 3D okolini.

Razvijen kroz otprilike šest godina na prijelazu između 60-ih i 70-ih godina 20.

stoljeća, Shakey je mogao analizirati naredbe koje su mu dane i razlomiti ih na manje radnje

koje treba napraviti da ispuni naredbu.8

Slika 9: Tom Garvey i Helen Chan upravljaju Shakeyjem, 1973. godine (Izvor: SRI

international)

Projekt robota Shakey je značajan po više stvari. Kao prvo, projekt je kombinirao

elemente robotike, računalnog vida i procesiranja prirodnih jezika (NLP, eng. natural

language processing). Bio je to prvi projekt koji je tako kombinirao logičko rezoniranje s

fizičkim radnjama. Koristio je STRIPS planiranje za složene radnje. Nadalje, tijekom projekta

su se razvile metode poput A* algoritma pretraživanja, Hough transformacije te metoda grafa

vidljivosti, koje su vrlo značajne i u današnje vrijeme. A* algoritam traženja puta je posebice

učestalo korišten te se i dalje smatra možda najboljim algoritmom takvog tipa.

8 http://www.sri.com/work/timeline/shakey-robot dostupno 6. studenog 2015. Značajno je što drugi roboti do

Shakeyja nisu imali tu mogućnost, već su im operateri morali davati naredbu po naredbu koju su doslovno

izvršavali.

Page 24: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

20

3.2.2. Bespilotna prijevozna sredstva

Bespilotna prijevozna sredstva, među kojima su bespilotne letjelice (eng. unmanned

aerial vehicles, UAV) se mogu promatrati kao podskup robota. Glavna distinkcija nad onime

što bi se tradicionalno zvalo robotom je u oblikovanju tijela: bespilotna prijevozna sredstva ne

imitiraju ljudske radnje već zamjenjuju ljudski faktor u određenom prijevoznom sredstvu

softverskim agentom. Povijesno gledano su ovakve vrste agenata pronašli primjenu samo u

vojne svrhe, ali se u zadnje vrijeme to mijenja (Franke, 2015).

Autonomnost kod ovakve vrste uređaja može varirati, koordinacijski signali iz okoline

(npr. GPS) mogu također biti dostupni ili nedostupni te je područje razvoja autonomnih

agenata u obliku onih sličnim automobilima, helikopterima, avionima, podmornicama i slično

za snalaženje na različitim vrstama terena vrlo atraktivna disciplina. Kod rovera za

istraživanje drugih planeta je autonomnost donekle i nužnost (Elfes, 1989), gdje se želi agentu

komunicirati samo naredbe na visokoj razini (te naredbe u pravilu dolaze sa Zemlje te se

putem satelitskih uređaja prenose do agenta) a detalje snalaženja u neposrednoj okolini čim

više prepustiti lokalnoj obradi i samostalnom odlučivanju. S druge strane, u mnogim

zemaljskim situacijama autonomnost je također poželjna jer je ljudski nadzor težak ili skup,

kao u poslovima traganja za unesrećenima nakon prirodnih katastrofa (Bachrach, 2009).

3.2.2.1. Bespilotne letjelice

Bespilotne letjelice ili dronovi su od posebnog interesa jer posebnim dizajnom koji ne

predviđa mjesto za ljudskog operatera se težina letjelice može minimizirati, pa tako i

mogućnost manevriranje te cijena. Bespilotne letjelice predstavljaju vrlo uzbudljiv aspekt

budućnosti razvoja autonomnih agentnih sustava jer se njima mogu zamijeniti ili ubrzati neki

svakodnevni ljudski poslovi (npr. dostava pošte) ali i obavljati zadatke puno brže i uspješnije

od dosad mogućeg (npr. traganje za izgubljenim osobama na nepogodnom terenu).

Page 25: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

21

Slika 10: Bespilotna letjelica DJI Phantom za rekreativnu zračnu fotografiju (Izvor:

wikimedia.org, autor Lino Schmid)

Bespilotne letjelice s montiranom kamerom i mogućim montiranim sklopom za obradu

podataka (ili mogućnost telekomunikacijske veze s računalnom) imaju ispunjene minimalne

preduvjete za implementaciju agenta koji samostalno (koristeći računalni vid) otkriva okolinu.

Korisnici diljem svijeta su uglavnom iz razonode implementirali nekoliko takvih programa,

što je rezultiralo letjelicama koje mogu pratiti ljude kroz raznolike prostore poput interijera

stana.

3.3. Percepcija okoline i senzorska tehnologija

Senzorska tehnologija je složeno i raznoliko područje koje bi moglo biti predmet za

zaseban rad. Senzor okoline može biti bilo koja naprava koja daje neku vrstu mjerenja

stvarnosti. Kamere mjere svjetlost koja se odbija od predmeta, termometar mjeri temperaturu

medija okoline, ali da bi takav uređaj bio senzor mora postojati način komunikacije između

uređaja i agenta koji će biti vođen (i njegove akcije determinirane) ulazima iz tih uređaja.

Senzori se mogu zavarati, i realističnost njihove percepcije je filozofsko pitanje koje se može

usporediti s Platonovom alegorijom pećine. Stoga su brojni znanstvenici, među njima i Elfes

(1989) zaključili da je sigurnost rijetka kod agenata i da je estimacija jedina realna situacija –

za neki prostor će se rijetko reći da je slobodan ili zauzet, nego će se reći da je vjerojatnost

zauzetosti neki broj između 0 i 1, a za računanje će se često uzeti neka granica iznad koje se

vjeruje da je područje zauzeto, ispod koje se vjeruje da nije. Daljnjim mjerenjima i

senzorskim ispitivanjima se može smanjiti ta vjerojatnost za dubiozna područja.

Page 26: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

22

Senzorski uređaji se mogu načelno podijeliti na aktivne i pasivne – aktivni projiciraju

u okolinu svjetlost ili zvuk i mjere projicirano da bi zaključili o stereometriji prostora oko

njih, dok pasivni (poput kamera i 3D kamera) računaju da u prostoru oko njih ima dovoljno

neke pojave (npr. svjetlosti) da se može mjeriti i time zaključiti o prostoru.

Shade (2011) daje sljedeću podjelu senzora:

1. Senzori udaljenosti (eng. range sensors), koji mjere udaljenost do okolnih čvrstih

predmeta na različite načine.

2. Senzori apsolutnog pozicioniranja (eng. absolute position sensors), poput GPS-a i

ViCon mreža kamera, omogućuju agentu da u nekom trenutku odredi svoju apsolutnu

poziciju obzirom na globalni koordinatni okvir. Problem s ovakvim senzorima je što

nisu dostupni u svim okolinama.

3. Senzori okoline (eng. environmental sensors), koji mjere vrijednosti različitih atributa

koje okolina može imati, poput temperature i vlažnosti.

4. Inercijalni senzori (eng. inertial sensors), koji mjere poziciju i akceleraciju agenta te se

mogu koristiti za utvrđivanje pozicije agenta. Elfes (1989) ističe da mjerenja iz takvih

senzora iz različitih razloga postaju neprecizna nakon dužeg vremena.

3.3.1. Senzori udaljenosti

Neki uređaji su specifično konstruirani senzorski uređaji namijenjeni za uporabu u

robotici i kod autonomnog istraživanja agenata. Laserski mjerači firme SICK (koja je

specijalizirala u izradi senzorskih uređaja) kao što je LMS 100 funkcioniraju tako što ispaljuju

laserske zrake u okolinu i mjere vrijeme odaziva. Na taj način agent može deducirati koja je

udaljenost do čvrstih tijela u okolini koji nisu propustili lasersku zraku. Funkcionalnost

takvog uređaja je dobra pod određenim uvjetima, ali može biti otežana u drugima.

Slika 11: SICKov LMS 100 (Izvor: sick.com)

Page 27: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

23

Nadalje postoje stereo kamere poput Point Grey Bumblebee linije koje su pasivni

senzorski uređaji za 3D razumijevanje prostora. Pomoću dvije specijalne kamere se dvije

istovremeno dobivene slike uspoređuju te se stvara dubinska percepcija prostora na sličan

način kao i kod čovjeka.

Slika 12: Dva modela Point Grey Bumblebee serije (Izvor: ptgrey.com)

Još jednu važnu kategoriju senzorskih uređaja čine oni koji nisu specifično

namijenjeni korištenju u svrhe robotike i autonomnog istraživanja, već su u tome našli

primjenu s vremenom. Primjer takvog uređaja je Microsoft Kinect, koji je sličan Bumblebee

uređajima po tome što isto ima dvije kamere, ali je aktivan senzor koji ispred sebe projicira

posebno strukturirani točkasti infracrveni svjetlosni uzorak, i onda snimajući taj uzorak

deducira 3D konfiguraciju predmeta ispred sebe. Kinect je radi svoje niske cijene i dostupnog

API-ja (pošto je komercijalni potrošački uređaj namijenjen korištenju igara koje percipiraju

kretnje i položaje osoba ispred uređaja) našao veliku popularnost posebice u amaterskoj izradi

autonomnih uređaja.

Slika 13: Microsoft Kinect, uređaj namijenjen prvenstveno za korištenje u industriji video

igara koji je našao širu primjenu (Izvor: Wikimedia commons)

Page 28: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

24

Brojni specijalni agenti mogu koristiti i specijalno dizajnirane senzorske uređaje za

njihovu specifičnu namjenu, kao što su recimo roboti za istraživanje drugih planeta. Razlozi

za poseban dizajn mogu biti široki, poput toga da su specijalno optimizirani za neku vrstu

okoline ili da imaju dodatne zaštite (od pozadinskog zračenja, koji predstavlja problem kod

svih svemirskih tehnologija).

3.4. Otkrivanje okoline

Prema Galland et al. (2009), da bi agent evoluirao u virtualnom svijetu i demonstrirao

složeno ponašanje, on zahtjeva semantičke, simboličke i topološke podatke o svojem

okruženju. Najjednostavnija ponašanja obuhvaćaju samo izbjegavanje statičkih i dinamičkih

prepreka, što zahtjeva samo geometrijske informacije o raznim objektima u okolnom 3D

svijetu. Složenija ponašanja obično ovise o prirodi objekata. To zahtjeva dodavanje

semantičkih informacija u model okoline. Semantička razina je namijenjena da klasificira

razne objekte na različitim razinama apstrakcije. Konačno, kako bi se omogućilo agentu da

efikasno izračuna najbolju putanju između dvije točke u 3D svijetu, topološke informacije o

tom svijetu su potrebne, što se obično postiže zahvaljujući navigacijskim grafovima koji se

prethodno generiraju iz izgleda okoline (Galland et al., 2009). Dakle, za kvalitetno

razumijevanje okoline agent mora geometrijski model stvarnosti nadopunjavati sa spoznajama

o topologiji te semantički klasificirati.

Svaki od gore opisanih razina razumijevanja stvarnosti je ogromno područje i ovdje ću

obraditi samo elemente nekih od njih. Prvi korak je naravno geometrijsko razumijevanje

svijeta, što je možda najjednostavnije i najbolje istraženo, ali svakako vrlo sofisticirano

područje na kojemu se još uvijek aktivno radi.

S obzirom na to da agent može dobivati podatke o svojoj okolini jedino indirektno,

preko senzora, konstrukcija modela prostora oko agenta iz senzorskih podatka se najbolje

modelira kao problem teorije estimacije (Elfes, 1989). Drugim riječima, u razumijevanju

prostora oko sebe agent će generalno funkcionirati na razini vjerojatnosti – temeljem različitih

senzorskih ulaznih podataka, agent može zaključiti da je dio prostora vjerojatno zauzet nekim

predmetom, ali neće biti do kraja siguran u to. Na neki način, to nije problematično jer ljudska

percepcija ima iste mane.

Page 29: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

25

Načelno, sposobnosti i načini snalaženja agenta u 3D okolini uvelike će ovisiti o

brojnim pitanjima na koje treba odgovoriti, između ostaloga:

Ima li agent a-priori spoznaje o svojem okruženju?

Postoji li infrastruktura kojom bi se moglo zaključivati o položaju agenta, kao što je

mreža kamera s fiksnim pozicijama, fiksni izvor radio valova (među kojima bi bio i

GPS) ili već postavljene oznake u okolini temeljem kojih agent može rezonirati o

svojem položaju?

Trebaju li agentove mogućnosti spoznaje vlastite pozicije skalirati, odnosno treba li

biti jednostavno da se snalazi na širom području nakon što se zna snalaziti na manjem?

Na kojoj razini agent treba biti sposoban za apstraktnu klasifikaciju objekata u

okruženju? (npr. sve kvake su načelno iste, obavljaju istu funkciju i redovito se

identično njima upravlja, ali mogu izgledati vrlo različito, biti postavljene na različitim

visinama, itd.)

Ako zamislimo da je agent na početku slijep i neupućen u svoje okruženje, agent mora

početi interakciju sa svojom okolinom na način da može početi stvarati internu reprezentaciju

svijeta oko sebe. Suvremeni robot će imati (za razliku od rudimentarnog senzora udarca kao

kod Roombe) senzorsku podršku za otkrivanje okoline u obliku stereo kamera i laserskih

skenera (Shade, 2011).

Izlazni podaci iz tih senzora čuvat će se u agentovoj internoj reprezentaciji svijeta oko

sebe, i onda će znanjima o prostornom kretanju moći početi kretati se i dalje istraživati,

odnosno nadopunjavati tu reprezentaciju. Očigledni problem koji se javlja je određivanje gdje

je robot naspram svojeg početnog položaja i proširivanje mape prostora s novim senzorskim

podacima – ova dva problema se zajedno grupiraju pod akronim SLAM (simultana

lokalizacija i mapiranje, eng. Simultaneous Localisation and Mapping) (Shade, 2011).

Problem SLAM-a je solidno proučen u robotičkim znanstvenim krugovima9.

Tri konkretna problema prema Shade (2011) su sljedeća:

9 Kao u radu Toma Baileya i profesora Durrant-Whyte, Simultaneous localization and mapping: part I (2006)

Robotics and Automation Magazine, IEEE, 13(3):108–117.

Page 30: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

26

6DoF estimacija položaja – koja je pozicija senzora naspram globalnog referentnog

okvira i kako se ta estimacija osvježava kretanjem?

Akvizicija 3D podataka – kako se mogu snimiti i obraditi 3D podaci?

Mapiranje – ako je poznat položaj i snimljen 3D podaci u odnosu na taj položaj, kako

te podatke integrirati u globalno konzistentnu strukturu mape temeljem koje se može

istraživati i planirati putanja?

Istraživanje – odlučivanje na visokoj razini, odnosno ako je poznata mapa i trenutni

položaj, gdje se treba sljedeće pomaknuti?

Ove četiri točke predstavljaju samo temelj agentnog ponašanja u 3D prostoru. Bez da

se riješe ovi problemi za nekog konkretnog agenta, ne može se niti početi rezonirati o

akcijama koje agent treba izvoditi i ciljevima koje treba postizati. Ovi problemi su međutim

usko povezani s tehnologijom senzora, spoznajama iz područja umjetne inteligencije i

računalnog vida, mehaničkog inženjerstva i s brojnim drugim područjima.

3.4.1. Procjena položaja

Srž procjene položaja (eng. pose estimation) je sadržana u pitanju „gdje je agent u

odnosu na njegov početni položaj?“. Da bi odgovor bio poznat i bio približno točan, agent

mora voditi brigu o svojoj poziciji i orijentaciji.

U slučaju robota koji je limitiran na kretanje po ravnoj površini, ta prosudba će imati

oblik koji sadrži dvije translacijske komponente i jednu rotacijsku (Shade, 2011):

𝑝 = (𝑥, 𝑦, 𝜃).

U slučaju nešto više načelnog slučaja robota sa slobodom kretanja u smjeru treće

prostorne osi, taj položaj će biti

𝑝 = (𝑥, 𝑦, 𝑧, 𝜃𝑟 , 𝜃𝑝, 𝜃𝑦),

gdje je 𝜃𝑟 kut ljuljanja oko x-osi (eng. roll), 𝜃𝑝 kut nagiba oko y-osi (eng. pitch) i 𝜃𝑦 kut

skretanja oko z-osi (eng. yaw).

Česti načini za estimaciju položaja su sljedeći (Shade, 2011):

Page 31: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

27

Odometrija kotača (eng. wheel odometry), koja se temelji na mjerenju broja rotacija

kotača kojim se robot kreće. Na početku je poznata prijeđena duljina za jedan puni

okret kotača, i nakon toga se udaljenost izražava pomoću toga. Iako je ovo

najjednostavniji način mjerenja prijeđenog puta, greške se vrlo brzo akumuliraju radi

klizanja kotača i ne postoji način da se kompenzira za te nastale greške. Također,

leteći dronovi se ne bi mogli služiti ovom metodom radi očiglednog nedostatka kotača.

Uparivanje laserskih skenova (eng. laser scan matching) je metoda kojom se laserski

skenovi naprave na dvije različite pozicije. Dobiveni rezultati sa senzora su zapravo

podaci o vremenu prolaska laserske zrake kroz medij koji propušta svjetlost zapisani

kao jednodimenzionalni vektori. Usporedbom dva skena se pokušava naći

transformacija koja bi ih najbolje uparila te se time može deducirati promjena položaja

koja ih je uzrokovala.

Vizualna odometrija (eng. visual odometry). Kamere su učestali senzori u robotici,

između ostaloga zato što su lakše i jeftinije od laserskih skenera i daju slike svijeta s

informacijama o boji. Također, ako dvije ili više kamera gledaju u isti prizor, moguće

je provesti 3D rekonstrukciju i time dobiti podatke o geometriji okoline koja

bogatstvom nadilazi ostale metode. Praćenjem upečatljivih elemenata na ulaznim

podacima iz kamera i promjene njihovih položaja između slika, može se rezonirati o

promjeni položaja tijela agenta. Ova tehnika je učestala kod zračnih letjelica te je čak

korištena i za rovere koji su poslani na Mars.

3.4.2. Akvizicija 3D podataka

Postoje velik broj različitih senzora koji mogu služiti za prikupljanje 3D podataka –

sonari, stereo kamere i laserski skeneri. Skupa s procjenom pozicije tijela agenta (odnosno

senzora) u odnosu na globalni koordinatni okvir, i ulaznim podacima s tog senzora možemo

integrirati te podatke u konzistentnu kartu okružja.

3.4.3. Mapiranje

Mapa ili karta prostora prikazuje strukturu okoline na nekoj razini apstrakcije i može

se kategorizirati u metričku kartu ili topološku kartu (Shade, 2011).

Čisto topološka karta odražava strukturu okoline na razini veza između lokacija i

obično se reprezentira pomoću grafa ili strukture koja nalikuje grafu. Na taj način topološka

Page 32: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

28

karta zapravo odražava veze između lokacija i služi za planiranje puta. Metrička karta s druge

strane reprezentira geometrijsku stvarnost okoline, obično koristeći mrežu, gdje svaki kvadrat

mreže ima određenu vjerojatnost da sadrži prepreku.

3.4.3.1. Reprezentacije metričkih mapa

Jedna moguća reprezentacija geometrije jest pomoću oblaka točaka (eng. point

cloud), koja je vjerojatno među jednostavnijim. Točke koje detektira senzor udaljenost se

transformiraju u globalni koordinatni sustav i dodaju u kolekciju s drugim točkama, što čini

svojevrsni oblak (Shade, 2011). Jednostavnost oblaka točaka dolazi s nedostatcima, u obliku

nemogućnosti prepoznavanja dinamičkih prepreka ili senzorskog šuma (Shade, 2011).

2.5D mapa je također metoda reprezentacije prostora oko agenta koja je posebice

korisna kod agenata koji su ograničeni na djelovanje u razini poda. Kod 2.5D ili elevacijskih

mapa, prostor se reprezentira kao 2D mreža u kojoj svaka ćelija sadrži uz uobičajene podatke

i procjenu visine terena na toj poziciji. Nedostatak takvih mapa je svakako što slobodan

prostor ne zapisuju na način da se da jednostavno izračunati njegove granice, što je

ograničavajući faktor kod 6DoF istraživanja prostora (Shade, 2011).

Često rješenje za reprezentaciju metričkih mapa je također takozvana mreža

zauzetosti (eng. occupancy grid). S ovim pristupom se svijet diskretizira te reprezentira kao

mreža 2D kvadrata ili 3D kubičnih volumena (poznati u literaturi kao „vokseli“, eng. voxels)

gdje svaka ćelija mreže ima određenu vjerojatnost zauzetosti (Elfes, 1989). Takve mreže su

memorijski intenzivne, u redu veličine 𝑂(𝑛3), ali su se uspješno primjenjivale do sada u

robotici, od kojih je primjer autonomni auto Stanley koji je pobijedio na DARPA Grand

Challengeu 2005. godine (Shade, 2011).

3.4.3.2. Implementacija metričkih mapa

Naivan pristup kreiranju 3D karte zauzetosti bi bilo kreiranje običnog polja voksela za

kojeg se nada da će biti dovoljno velik da pokrije cijelu regiju koja će se htjeti istražiti. Osim

što je takav postupak memorijski intenzivan, rezolucija karte može ubrzo postati problem ako

se pojedini dijelovi žele smanjiti u rezoluciji jer agent više ne djeluje u njima ili povećati

(ukoliko je veća razlučivost potrebna). Također, povećanje polja je problematično nakon

inicijalizacije ako se tijekom rada javi potreba za proširenjem mape jer se uočila potreba za

dodatnim istraživanjem terena.

Page 33: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

29

Octree podatkovna struktura (Slika 14) mimoilazi neke od tih problema i koristi se u

raznolikim automatiziranim sustavima. Octree je hijerarhijska podatkovna struktura koja se

koristi za dijeljenje prostora na particije (rekurzivnom podjelom kubičnog prostora na osam

manjih kubičnih prostora). Formalno, to je usmjereni aciklički graf u kojemu svaki čvor ima

najviše jednog roditelja i ili nula ili osam čvorova djece. U terminima struktura podataka,

octree je stablo s ograničenjem na broj djece koje čvor može imati.

Iz definicije octree strukture intuitivno se može zaključiti da efikasno rješava problem

rezolucije na nekom dijelovima mape (odnosno razine diskretiziranosti prostora). Problem

proširenja mape se rješava tako što se octree čvor koji je korijenski čvor doda kao jedan od

osam djece nekom novom čvoru, i time se dobije osam novih potencijalno jednako velikih

reprezentacija terena. Octree struktura ima neke dodatne prednosti nad drugima, a to je što će

se veliki dijelovi prostora sa sličnim karakteristikama (npr. prazan prostor) reprezentirati

jednim ogromnim octree čvorom umjesto da kroz cijelu tu regiju razlučivost bude ista kao i u

kompliciranim zonama s puno manjih prepreka. Također, raspon mape ne treba biti poznat u

trenutku pokretanja programa i reprezentacija terena se može po potrebi promatrati na

različitim rezolucijama jednostavnim odabirom koliko će se razina octree strukture prelaziti.

Slika 14: Octree struktura podataka (Izvor: Wikimedia.org, autor WhiteTimberwolf

licencirano pod CC-by-SA 3.0)

Page 34: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

30

3.4.4. Istraživanje

Istraživanje je klasičan problem u području mobilne robotike i relevantno je svim

aplikacijama koje iziskuju autonomnu navigaciju robota u nepoznatim okolinama (Shen,

Michael i Kumar, 2011).

Cilj algoritma istraživanja je povećati agentovo znanje svoje okoline tako da se

odabiru prikladne akcije koje će tijelo agenta dovesti na prethodno neposjećena područja ili na

već posjećena mjesta koja imaju visoke faktore nesigurnosti oko izgleda terena (Shade, 2011).

Jednom kad se fizičko tijelo agenta u 3D prostoru premjesti na takvu lokaciju, senzorima

bilježi stvarnost oko sebe te interpretacijom ulaza učvršćuje ili gradi sliku svijeta oko sebe.

Shen, Michael i Kumar (2011) smatraju da se problem autonomnog istraživanja sastoji

od dva dijela:

1. Definicija regija koje, jednom kad su posjećene, prostorno proširuju trenutni model

okoline.

2. Autonomna navigacija tim regijama, uključujući mapiranje, lokalizaciju, planiranje i

kontrolu.

Shade (2011) proces istraživanja odvaja od mapiranja, ali načelno su istraživači složni oko

toga što čini proces istraživanja.

Može se naslutiti iz ovog navedenog da su većina problema istraživanja ponajprije

problemi pronalaska dobrih algoritama za istraživanje. Jasno je da nisu svi problemi

istraživanja isti: a priori dostupnost mapa terena uvelike olakšava istraživanje i rezultirat će

manjim brojem istraživačkih radnji agenta (što je poželjno u puno primjena, poput već

spomenutog Marsovog rovera), ali u slučaju puno drugih to nije praktično ili nije moguće.

Tim agentima će proces istraživanja biti složeniji – ne nužno algoritmički složeniji, već

složeniji po broju radnji koje će morati napraviti.

Shen, Michael i Kumar (2011), Shade (2011) i brojni drugi autori navode iste

„klasične“ metode istraživanja u nepoznatim područjima:

1. Rubne metode (eng. frontier methods)

2. Entropijske ili metode temeljene na dobitku informacija (eng. information-gain

methods, entropy methods)

Page 35: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

31

Shade (2011) nadalje navodi nekoliko metoda koje su izgubile popularnost ili su namijenjene

za specifične primjene:

3. Topološke metode, koje su uglavnom primjenjivane od strane robota s ograničenim

senzorskim sposobnostima, koriste graf spajanja prostornih lokacija. U tim

slučajevima agent nema aparaturu za mjerenje metričkih pomaka, ali može

identificirati trenutak kad je došao u novi čvor.

4. Stablo navigacije razmacima (GNT, eng. Gap Navigation Tree), koja je metoda

temeljena na posebnoj podatkovnoj strukturi stabla koje bilježi graf razmaka

(diskontinuiteta obzirom na smjer agenta). Eliminacijom tih razmaka se postiže

lokalno-optimalna navigacija.

5. Metode potencijala, u kojima se početnoj poziciji se dodjeljuje visoki potencijal,

ciljnoj niski, a put se pronalazi kroz teren prateći pad gradijenta između te dvije točke.

3.4.4.1. Rubne metode

Ideja iza rubnih metoda (eng. frontier methods) je pomaknuti se na rub između

slobodnog prostora i nepoznatog prostora, gdje se očekuje da će agent pomoću senzorskih

ulaza moći razlučiti dotad nepoznate elemente terena i proširiti unutarnju reprezentaciju

svijeta.

Algoritmi u kojima se traži najbliži rub kojem se onda agent približava su vrlo efikasni

i relativno jednostavni, ali postoje bolji algoritmi koji uzimaju u obzir koliko je takvo

pomicanje vrijedno vremena i energije, a to su metode temeljene na dobitku informacija, koje

su slične ali obično efikasnije.

3.4.4.2. Metode temeljene na dobitku informacija

Još poznate kao entropijske metode, ideja je ne samo proširiti znanje o okolini, već i

maksimizirati količinu podataka koja se dobije sa svakim skeniranjem (Shade, 2011).

Koncept poznat iz teorije informacija je entropija, 𝐻𝑝(𝑥), koja je mjera informacije u

vjerojatnosnoj distribuciji 𝑝(𝑥):

𝐻𝑝(𝑥) = − ∫ 𝑝(𝑥) log 𝑝(𝑥)𝑑𝑥

Page 36: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

32

Intuitivno, to je mjera nesigurnosti neke slučajne varijable. Entropija postiže maksimum za

uniformnu distribuciju, što je lako razumljivo kad se zaključi da je nesigurnost najveća kad su

svi ishodi jednako vjerojatni. 𝐻𝑝(𝑥) se smanjuje kako 𝑝(𝑥) dobiva grafički sve oštriji vrh, na

kraju padajući na nulu kad je ishod nekog događaja siguran.

Dobitak informacija (eng. information gain) se definira kao smanjenje entropije

između dva uzastopna mjerenja (Shade, 2011). U kontekstu istraživanja, to znači da se mjeri

entropija mape u trenutku 𝑡 i uspoređuje s trenutkom 𝑡 + 1. Sumiranje dobitka informacija za

svaki voksel u mreži zauzetosti nam daje smanjenje entropije za cijelu kartu, i to je upravo

vrijednost koja se želi maksimizirati odabirom prikladnih novih pozicija.

Proces odabira pozicije i maksimizacija takve vrijednosti se može napraviti na

nekoliko načina, jedan od kojih je pomoću praćenja zraka svjetlosti (eng. raytracing), što je

poznata tehnika iz računalne grafike. U ovom kontekstu, iz potencijalne pozicije senzora se

vuče više zraka u smjerovima koji bi bili obuhvaćeni senzorskim mjerenjem te se promatra

kroz koje voksele bi te zrake prolazile. Taj postupak se ponavlja za više mogućih pozicija te

se na kraju odabire ona pozicija koja će donijeti najveći dobitak informacija (najveće

smanjenje entropije).

Vagana verzija ovog algoritma uzima u obzir dodatna ograničenja te njima važe

potencijalne nove pozicije za mjerenje. Primjerice, mjerenje na poziciji A bi bilo nešto malo

više informacijski bogato od mjerenja na poziciji B. Međutim, put koji treba prijeći da bi se

došlo do pozicije A je značajno energetski skuplji nego put koji se treba prijeći do pozicije B i

mjerenje na poziciji B. Algoritam bi mogao zaključiti da je pozicija B ipak bolji izbor iako će

pridonijeti nešto manjem smanjenju entropije.

Slika 15 prikazuje grafički ovu ideju, gdje iz neke točke agent simulira senzorsko

mjerenje okoline metodom zraka svjetlosti te uspoređuje rezultate za odabir najpoželjnije

opcije.

Page 37: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

33

Slika 15: Prikaz vagane metode dobitka informacije (Izvor: Shade, 2011).

Shade (2011) u svom radu iznosi dva različita pristupa istraživanja okoline. Prvi je

temeljen na grafovima, te se u njemu iznose mogućnost reprezentacije stvarnosti u obliku

grafa. U tom pristupu moguće je planirati radnje pomoću algoritama za pronalaženje

najkraćeg puta u grafovima poput Dijkstrinog, Best-first-search te A* algoritma.

Drugi skup metoda koje nalažu kompletno drukčiji pristup su neprekidne metode koje

koriste elemente funkcijske analize te posebno modeliranje rubnih vrijednosti pomoću

parcijalnih diferencijalnih jednadžbi. Značajka ovog pristup je mogućnost dokazivo potpunog

istraživanja okoline, što je vrlo značajno. Također, koristeći koncepte izvora i ponora postiže

se analogija s fizikom toka tekućina, što je dobro istraženo područje s bogatim skupom

matematičkih modela, kojima je temeljni alat Laplaceova jednadžba.

Page 38: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

34

4. Simulacija 3D višeagentnih sustava

4.1. Potreba

Modeliranje i simulacija su zastupljene tehnike u gotovo svim područjima, pa tako i u

području robotike i višeagentnih sustava. Računalna simulacija omogućuje da se analiziraju

odabrani aspekti nekog sustava u velikom broju različitih slučajeva vrlo brzo i razmjerno

jeftino, pa je evidentno da je potreba za simulatorima u ovoj domeni također velika.

U kontekstu agenata u 3D okolinama, simulacija je posebno korisna jer za testiranje

nekog ponašanja nije potrebno imati pristup velikom broju vjerojatno skupih prototipova. Ako

se želi demonstrirati efektivnost nekog pristupa ili softvera, simulacija je vjerojatno u svakoj

fazi razvoja korisna tehnika. Pošto se s agentima želi često postići distribuirana učinkovitost

zamišljenih agenata (koji su potencijalno samo u istraživačkoj fazi ili su trenutno preskupi za

realizaciju), simulacija je ponekad i jedina realna opcija.

Što se tiče robotskih simulatora, isti slučajevi vrijede. Dodatni bonusi razvoja softvera

za korištenje na određenim simulatorima je također to što se taj softver može direktno

kompajlirati i za sklopove robotskog uređaja bez modifikacija koda (Koenig i Howard, 2004).

Također, kod realnih primjena gdje se na robotu želi koristiti neki softver koji je razvijen za

njega, simulatorom se može testirati aplikabilnost takvog softvera u modelu okruženja u

kojemu će robot raditi. U ovom području se ističu simulatori poput Webots, V-REP i

SimSpark.

4.2. Pregled postojećih višeagentnih 3D simulatora

Brojnost alata za simulaciju nekih aspekata agentnog ponašanja u 3D-u je zasigurno

znatno veća nego što se može u razumnom vremenu spomenuti. Kao prvo, postoji puno

simulatora za specifične namjene koje su konkretni za agente iz neke domene (npr. na enzime

bi se također moglo gledati kao na agente). Drugi su oni alati koji su dovoljno općeniti da

budu simulatori ponašanja za širi broj slučajeva.

U svojem odabiru simulatorskih alata ograničio sam se samo na one koji simuliraju

ponašanje trodimenzionalnih prostora i agenata u njima. Pokušao sam se također ograničiti na

one koje bi bilo najprikladnije spomenuti obzirom na fazu razvoja te zanimljivost njihovih

Page 39: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

35

mogućnosti. Uz napomenu da mi niti donekle iscrpan popis nije bio cilj, odabrao sam

sljedećih četiri alata:

4.2.1. V-REP

V-REP od švicarske tvrtke Coppelia Robotics je ponajprije robotički simulator. S

bogatom funkcionalnosti, dobrim grafičkim sučeljem i širokim API-jem, V-REP je možda i

najnapredniji simulator takve vrste.

Neke od značajke V-REP-a su:10

Podrška više operacijskih sustava

Više programskih pristupa (pluginovi, udaljeni API klijenti, embedded skripte, dodaci,

ROS čvorovi)

Vrlo bogat API (obični i udaljeni) s bibliotekama za više jezika (C/C++, Lua, Python,

Java, …).

Modularnost emulatora fizike (eng. physics engines) uključujući Bullet, ODE, Vortex

i Newton.

Detekcija kolizija, računanje minimalne udaljenosti, sustav za prikaz dinamičkih

čestica.

Simulacija senzora blizine i vida.

Koncept slaganja gradbenih blokova (složeniji elementi se mogu sastojati od manjih,

svaki sa svojom sadržanom funkcionalnosti)

Planiranje puta i pokreta.

Vizualizacija i snimanje podataka. Moguća vizualizacija više simulacijskih izvedbi

istovremeno za vizualnu usporedbu.

U alatu su odmah dostupni modeli nekih robota (Kuka YouBot) i robotskih ruka

(pojedini Jaco, KUKA i UR modeli) koji su zamišljeni ili stvarni. Za specifične potrebe

potrebno je razviti vlastite modele koji opisuju hardver različitih robota, ali postojećim

modelima je također moguće dodati skriptne komponente te postići zanimljivu

funkcionalnost.

10 Prema http://www.coppeliarobotics.com/features.html, preuzeto 1. studenog 2015.

Page 40: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

36

Slika 16: Početni ekran V-REP alata

Na scenu je moguće dodavati modele robota, strojeva, ljudi te puno druge opreme koja

je razvrstana po direktorijima preglednika modela.

Slika 17: Kvadrikopter dodan na scenu sa simulacijom čestica zraka ispod kvadrikoptera.

Modeli i simulacijski scenariji za V-REP su široko dostupni radi njegove popularnosti.

Primjerice, edukacijski projekt TRS (recept za podučavanje/učenje robotike uz pomoć

simulatora, eng. Open Source Recipe for Teaching/Learning Robotics with a Simulator) se

temelji na V-REP simulatoru. Slika 18 prikazuje izgled jednog zadatka iz TRS-eve biblioteke

renderiran pomoću V-REP-a.

Page 41: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

37

Slika 18: V-REP projekt razvrstavanja predmeta po košarama (Izvor: ulgrobotics.github.io)

Nedostaci softvera su svakako to što nije otvorenog koda, međutim to je razumljivo s

ovakvom vrstom proizvoda. Teško je očekivati da bi V-REP bio jednako dobar da ga je

razvijala zajednica, a ne tvrtka s ciljem profita. Pozitivna strana je što V-REP moguće dobiti

besplatno pod edukacijskom licencom11, pa je tako moguće dobiti praktički sve

funkcionalnosti ovog softvera za edukacijske svrhe.

4.2.2. Entorama

Entorama je softverski alat za višeagentno modeliranje i simulaciju napravljen od

strane Branimira Cace, tadašnjeg studenta strojarskog fakulteta Sveučilišta u Zagrebu. Alat je

dostupan samo za Windows platformu u obliku kompajlirane izvršne datoteke te je nejasno

licenciran. Iako je alat pokazivao potencijal u pogledu 3D agentnih simulacija, nažalost se

trenutno čini da je stao s razvojem 2008. godine.

Vlastiti skriptni jezik za opisivanje interakcija između agenata. Jezik je na službenim

stranicama opisan kao jednostavan, premda bi podrška za neki poznatiji, bolje

definiran jezik (Lua, Python, i slično) bila korisnija. Alat također uključuje i

kompletno nedefinirano sučelje kojim se mogu dodavati pozivi u taj skriptni jezik

putem kompajliranih DLL modula.

Definicija agenata pomoću klase, te skriptiranje interakcija između tih klasa.

Podrška za neograničen broj instanci agenata.

Trodimenzionalna scena u kojoj agenti mogu djelovati.

11 Prema http://www.coppeliarobotics.com/licensing.html, preuzeto 1. studenog 2015.

Page 42: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

38

Entorama je jako mladi alat s osjetno manjim brojem funkcionalnosti naspram alata

poput V-REP-a, ali je pokazivao interesantan skup funkcionalnosti koje bi daljnjim razvojem

mogle postati korisnim alatom. Pošto u alatu nisam uspio napraviti jednostavnog agenta koji

išta radi u prostoru (npr. giba se), uglavnom radi nejasnog jezika kojim se definira ponašanje i

tankim korisničkim uputama, odlučio sam alat okarakterizirati kao eksperimentalan s

ograničenom funkcionalnosti.

Slika 19: Model s više agenata u međusobnom djelovanju (Izvor: entorama.com)

4.2.3. AMP

AMP (platforma za modeliranje agenata, eng. agent modeling platform) je dodatak za

Eclipse softverski paket u sklopu Eclipse alata za modeliranje (eng. Eclipse Modeling Tools)

koji daje okvir za reprezentaciju, editiranje, generiranje, izvođenje i vizualizaciju modela

temeljenih na agentima.12

Sama platforma se sastoji od više komponenata koji se mogu promatrati zasebno, ali

se generalno koriste skupa:

Okvir za modeliranje agenata, AMF. Služi za reprezentaciju metamodela baziranih na

modeliranju temeljenom na agentima, editiranje, generiranje i razvoj. AMF načelno

12 Prema http://www.eclipse.org/amp/, preuzeto 1. studenog 2015.

Page 43: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

39

kreira modele koji se mogu izvoditi u Escape-u, Ascape-u, Repast Simphonyju ili

eksportirati u oblik Java kostura klasa i sučelja.

Okvir za agentno izvođenje, AXF (eng. Agent Execution Framework), koji nudi skup

servisa za grafičko sučelje, upravljanje modelima i izvođenje. Općenito, AXF se može

koristiti neovisno o ovoj platformi za vizualizaciju i izvođenje kolekcije objekata.

Okvir za agentnu grafiku, AGF (eng. Agent Graphics Framework), za grafički prikaz

agentnih interakcija u stvarnom vremenu. Postoji i 3D inačica koja je doduše trenutno

u stanju „inkubatora“, što znači da nije stabilna.

Escape, temeljen na starijem alatu Ascape, je skup alata za modeliranje temeljeno na

agentima. Omogućava kodiranje agenata u Javi ili generiranje modela pomoću AMF-a

te izvođenje u istoj okolini. Također, AGF i AXF se brzo razvijaju pa se može

mijenjati API jednako brzo. Escape zaobilazi taj problem i namijenjen je korisnicima

kojima je to potrebno.

Korisno je što AMP dolazi s nekoliko modela primjera. Jedan od tih modela je model

širenja epidemije neke zarazne bolesti između agenata. Čitav model obuhvaća ABM

(agentno-baziran model, Slika 20) agenata te grafičku reprezentaciju (Slika 21).

Slika 20: AMP model primjera – Epidemija (Izvor: Eclipse.org)

Page 44: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

40

Slika 21: AXF izgled modela epidemije u AMP-u (Izvor: Eclipse.org)

Za potrebe modeliranja agenata, rekao bih da je AMP možda najsofisticiraniji takav

alat. Klasični pristup Eclipse paketa da kreira module koji su uglavnom međusobno neovisni

ovdje vrlo dobro funkcionira također, a mogućnosti alata daleko nadmašuju druge koje sam

isprobao. S druge strane, za modeliranje konkretnih ponašanja u 3D prostoru nije jak koliko

V-REP, ali alati ustvari služe za bitno različite svrhe.

4.2.4. FLAME

FLAME, fleksibilna okolina za modeliranje agenata velikog opsega (eng. Flexible

Large-scale Agent Modelling Environment) je generičan sustav za modeliranje agenata.

FLAME je besplatan alat razvijen od strane tima britanskih znanstvenika i zanimljiva

značajka mu je što se kao izlaz programa može dobiti izvršna datoteka „agentno-bazirane

aplikacije“.13

Ovaj alat nije sam po sebi grafički simulator agenata u trodimenzionalnom prostoru

već je generator aplikacija ili dijelova aplikacija iz XML zapisa agenata. Uključeni program

xparser učitava XML datoteku i ispisuje cijeli projekt u C jeziku uključujući zaglavlja i

13 Prema http://www.flame.ac.uk/, preuzeto 1. studenog 2015.

Page 45: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

41

Makefile datoteku. S uključenom libmboard bibliotekom, program se može kreirati za

pravljenje agentno-baziranih programa, a FLAME-ovi alati za pokretanje iz komandne linije

za kreiranje koda kojeg korisnik ne želi sam napisati. Možda radi nekompatibilnosti

kompajliranih binarnih datoteka s 64-bitnim Windowsima, nisam uspio postići da mi alat

kompajlira minimalni funkcionalni primjer.

Page 46: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

42

5. Primjer: Simulator agentnog ponašanja u 3D okolini

Za potrebe ovog diplomskog rada odlučio sam razviti vlastiti jednostavni simulator

agentnog ponašanja u 3D okolini. Cilj mi je bio razviti platformu koja će biti u stanju

simulirati ponašanja različitih konfiguracija agenata i terena u kojima agenti imaju kompletno

internalizirano razumijevanje prostora oko sebe i sami odlučuju radnje koje trebaju napraviti,

naravno komunicirajući s drugim potencijalnim agentima da bi se izbjegli sudari i kako bi

postigli zadani cilj na čim efektivniji i efikasniji način. Osim što će takav zadatak rezultirati

konkretnim simulatorom koji će potencijalno naći primjenu, razvoj shvaćam kao proces

učenja o teškoćama koje predstoje razvoju inteligentnih agenata općenito.

5.1. Zamisao simulatora

Iako su se više-robotni sustavi uglavnom proučavali s kopnenim robotima u prošlosti,

u zadnjih deset godina također postoji rastući interes za morskim robotskim istraživanjem

(Rathnam i Birk, 2013). Istraživanje podmorja je aktivna potreba, a podmornice regulirane

agentima s različitim razinama autonomnosti su poznat koncept. Rad Rathnama i Birka (2013)

se bavi komunikacijom i kooperativnim istraživanjem upravo na primjeru podmornice.

Međutim, potreba za simulacijom nije glavna motivacija. Naime, mali je broj

slučajeva na našoj planeti da pokretni robot ima mogućnost manevriranja u svih šest smjerova

– osim bespilotnih letjelica u obliku helikoptera (odnosno kvadrikoptera, i sličnih) i naravno

robotike u medijima u kojima utjecaj gravitacije ne drži agente čvrsto uz podlogu.

Podmornice su jedan takav slučaj gdje je manevriranje u svim smjerovima moguće, premda

dolaze sa svojim specifičnim skupom problema koji bi dobar simulator trebao podržavati kao

što su utjecaj morskih struja, varijabilne temperature slojeva mora, pritiskom vode na

podmornicu te brojne druge faktore. Međutim, razvoj takvog simulatora bi zahtijevao u

najmanju ruku ekspertno znanje inženjera podmornica, a vjerojatno čitavog tima stručnjaka sa

znanjima iz ove domene.

Stoga sam odlučio implementirati okvir simulatora koji ne poznaje većinu pravila koja

bi bila bitna stručnjaku koji želi simulirati stvarna istraživanja podmornice, ali su dovoljna za

pokazati načelna pravila sinkronizacije agenata u okolini u kojoj se slobodno mogu

manevrirati (ako teren to dozvoljava) u svim smjerovima.

Page 47: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

43

5.1.1. Vrsta okoline

Vrsta okoline je bitno razmatranje prije nego se može krenuti na izradu simulatora, jer

će gotovo sve ovisiti o odabiru. Okolina koju u ovom slučaju razmatram ima sljedeća

značajke:

Diskretan prostor (agenti mogu zauzimati određeni kubični volumen i micati se do

drugog kubičnog volumena). Ovo je bitna značajka i istovremeni nedostatak

simulatora. Ovaj model je odabran radi jednostavnije koordinacije agenata.

Diskretno vrijeme (simulator u određenim trenucima šalje signal svim agentima – tick

– kojim ih obavještava o prolasku jedne vremenske jedinice).

Donekle statična (glavni tijek simulatora se izvodi u jednoj dretvi, pa dok agent

razmatra akciju se neće ništa bitno promijeniti. Međutim, animacije se odvijaju u

posebnim „dretvama“ tijekom kojih je moguće da se drugi agenti pomiču.

Deterministička po osnovnoj funkcionalnosti (moguće je dodati nedeterminističke

elemente u ponašanje agenata, u kojem slučaju okolina više neće biti deterministička).

Nepoznata okolina (agenti ne dobivaju znanje o izgledu okoline od simulatora, već ga

moraju otkriti sami).

5.1.2. Podmornica kao agent

Podmornica u ovom slučaju je trodimenzionalno tijelo koje zauzima određen volumen

i koje ima aparaturu za različite akcije u vodenom mediju. Za potrebe ovog simulatora uzeo

sam da podmornica ima sljedeći skup akcija:

Kretanje u nekom smjeru (gore, dolje, lijevo, desno, naprijed i nazad kao i u

kombinaciji neka dva ili tri moguća takva smjera, npr. gore-lijevo ili gore-lijevo-

naprijed).

Rotacija u nekom smjeru (lijevo, desno, za 180 stupnjeva u odnosu na smjer)

Ne izvršava akciju, odnosno održava postojeću poziciju i smjer.

Podmornica također ima mogućnost komunikacije s drugim agentima. Komunikacija

je zamišljena kao radnja koju može činiti u bilo kojem trenutku a odnosi se na komunikaciju s

određenim agentnom (npr. drugom podmornicom) ili kao poruka poslana svim agentima

(broadcast).

Page 48: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

44

Što se tiče senzorskih sposobnosti, zamišljeni agent podmornice opremljen je sa

sljedećim senzorima:

Šest senzora blizine – svaki usmjeren u jednom osnovnom smjeru (gore, dolje, lijevo,

desno, naprijed, nazad). Agent može koristiti ove senzore za detekciju čvrstih

predmeta u susjednim ćelijama, što uključuje teren i druge agente.

Šest kamera – svaka usmjerena u jednom osnovnom smjeru. Kamere se u simulatoru

zasad koriste isključivo za korisničko promatranje iz perspektive agenta, agent sam te

kamere ne uzima u razmatranje.

Slika 22: Izgled podmornice u simulatoru.

Kao model podmornice koji će je predstavljati u 3D prostoru uzeo sam ovalno tijelo s

dva propelera (Slika 22). Model samo služi kao grafička reprezentacija – stvarna podmornica

bi zasigurno izgledala bitno drukčije. Tijelo nije model dizajniran u nekom alatu za 3D dizajn,

već je sastavljeno od jednostavnih geometrija dostupnih u Three.js biblioteci, neke od kojih će

biti opisane kasnije.

5.1.3. Učitavanje scenarija i neovisnost od definicije terena

Želja mi je bila kreirati više mogućih scenarija koji se mogu učitati u simulator i

izvoditi. U svakom scenariju bi se definirao izgled terena u kojemu se podmornica treba

snalaziti, početna konfiguracija agenata (primjerice da je u simulaciji agent A klase K s

određenim početnim parametrima), cilj simulacije te drugi metapodaci. Da bi se to postiglo,

potrebno je organizirati scenarije u posebne datoteke koje se mogu učitati u simulatoru, a

Page 49: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

45

strukturu takvih datoteka definirati kako bi se mogle izrađivati van onih koje sam pripremio

za potrebe testiranja simulatora.

Za strukturiranje takvih datoteka odlučio sam se koristiti XML zapis, što donosi

dodatne pogodnosti poput validacije po nekoj shemi (DTD, XSD, RelaxNG, Schematron,

itd.).

5.1.4. Orijentacija na modularna ponašanja

Ovim simulatorom sam ciljao odvojiti neki kostur agenta od njegovog ponašanja. Htio

sam da postoji posebna hijerarhija objekata koji opisuju agente i posebna hijerarhija koja

opisuje ponašanja tih agenata. To bi omogućilo da određene vrste agenta imaju isti kostur

(kao što je sličnost u redoslijedu izvođenja akcija) uz kojeg je asociran grafički izgled (kao što

je podmornica) a da se u fazi odlučivanja o idućem koraku obrate svojem ponašanju, koje

koristi akumulirano znanje agenta da odabere akciju.

To bi rezultiralo ovakvim tijekom događaja za prosječnog agenta:

i. Simulatorsko okruženje javlja instanci agenta da je prošla jedinica vremena.

ii. Instanca agenta prolazi kroz svoju unutarnju petlju i odrađuje zadatke poput primanja

poruka od drugih agenata, dohvaćanja podataka sa senzora, ažuriranje stanja svoje

osobne animacije te odabir akcije.

iii. Instanca agenta se obraća svojem pripadajućem objektu ponašanja da odluči iduću

akciju temeljem raspoloživog znanja.

iv. Instanca ponašanja temeljem nekog algoritma odabire akciju. Instanca ponašanja ima

puni pristup znanju i stanju pripadajućeg agenta.

v. Instanca agenta dobiva akciju od ponašanja te je izvršava.

Prednost ovog modela je to što bi se tijekom izvođenja ponašanje agenta moglo

promijeniti. Primjerice, agent može imati ponašanje koje ga heuristički usmjerava na položaj

koji je pogodniji za početak istraživanja, te tada instancira ponašanje istraživanja te postavlja

tu instancu kao ponašanje agenta. Slično kao i u SPADE platformi za Python, to bi omogućilo

razvoj agenata s jasno odvojenim stanjima ponašanja.

5.2. Odlučivanje o platformi

Page 50: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

46

Sad kad su neke pretpostavke simulatora razjašnjene, može se razmišljati o

tehnologijama kojima implementirati simulator. Nakon razmatranja biblioteke VPython te

SPADE okvira, na mentorov prijedlog sam odabrao projekt izraditi u JavaScriptu koristeći

Three.js biblioteku za trodimenzionalnu grafiku.

Velika prednost ove platforme je mogućnost izvođenja cijele aplikacije u web

pregledniku što efektivno omogućuje da se aplikacija izvršava na svim platformama, ali

dolazi s nedostacima poput memorijskih ograničenja ako se aplikacija izvodi unutar prozora

web preglednika. Uz JavaScript sam odlučio dio funkcionalnosti implementirati u PHP

programskom jeziku (radi njegove široke dostupnosti na web poslužiteljima), specifično dio

aplikacije koji se bavi razumijevanjem datoteka scenarija. Na taj način, datoteke scenarija se

mogu pohraniti u nekom direktoriju na web poslužitelju, a na zahtjev JavaScript aplikacije

(potencijalno asinkroni, putem AJAX tehnologije) se može učitati struktura temeljem koje će

se kreirati 3D scena s agentima. Na taj način se postiže odvojenost zapisa scenarija od

simulatora, te omogućuje da se scenariji zapišu u drukčijem zapisu ukoliko se razvije popratni

PHP program koji će preslikati taj zapis u istu strukturu koju razumije simulator.

5.3. Pregled korištenih tehnologija i biblioteka

Sve odabrane tehnologije i biblioteke su otvorenog koda i besplatne.

5.3.1. Three.js

Three.js je JavaScript biblioteka i API izdana 2010. godine s podrškom više

preglednika za korištenje 3D računalne grafike u prozoru web preglednika. Three.js podržava

više grafičkih renderera, uključujući HTML Canvas i WebGL.

Biblioteka ima dobru podršku za većinu zadataka računalne grafike, među kojima su:

3D scena u koju se mogu dodavati i iz koje se mogu uklanjati objekti prilikom

izvođenja.

Geometrije poput ravnine, kutije (kvadratne geometrije), sfere, torusa, valjka, 3D

teksta i mnogih drugih. Navedene su samo implementacije, vlastite geometrije se

također mogu kreirati.

Materijali – jednostavni, Lambert i Phong modeli, vlastite teksture.

Shaderi – pristup punom OpenGL shader jeziku (GLSL).

Page 51: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

47

Svjetla – ambijentalna, usmjerena, točkasta (point, spot).

Kamere (perspektivne, ortografske)

Objekti poput mreža (eng. meshes), čestice, spriteovi, linije, kosti, itd.

Pomoćne funkcije – biblioteka vremenskih i matematičkih funkcija kao što su

vektorske i matrične funkcionalnosti, kvaternioni, UV-ovi i slično.

Three.js je relativno mlada biblioteka, ali je stekla vrlo veliku popularnost. Dosad su

brojni autori objavili igre, bogata web mjesta, simulacije, primjere i općenito raznolike

aplikacije, neke od kojih su navedene na službenom web mjestu.

Najjednostavniji primjer kojim se pokazuje kocka u pregledniku je dana sljedećim

kodom:

Isječak koda 1: Three.js jednostavan primjer

var scena = new THREE.Scene();

var kamera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight,

1, 5000);

var renderer = new THREE.WebGLRenderer();

renderer.setSize(window.innerWidth, window.innerHeight);

document.body.appendChild(renderer.domElement);

var geometrija = new THREE.BoxGeometry(100, 100, 100);

var materijal = new THREE.MeshBasicMaterial({

color: 0x00ff00,

});

var kocka = new THREE.Mesh(geometrija, materijal);

scena.add(kocka);

kamera.position.z = 500;

renderer.render(scena, kamera);

Prvi korak je kreirati scenu, u koju se mogu dodavati objekti. Scena u Three.jsu je

trodimenzionalni prostor u kojemu su x- i y-osi početno u ravnini s korisničkim ekranom (x

raste prema vrhu ekrana, y slijeva nadesno), a z-os se može zamisliti da raste iz centra scene

van kroz ekran. Nakon toga se kreira jedna kamera kojom će se scena prikazivati, navodeći

pritom zorno polje (FOV, eng. field of view), omjer aspekata te minimalne i maksimalne

udaljenosti renderiranja u odnosu na poziciju kamere. Slijedi kreiranje renderera, koji je

objekt kojim će se scena konkretno (fizički) prikazivati. Njemu se zadaje veličina te ga se

dodaje u HTML web stranice kao element.

Page 52: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

48

Nakon te inicijalne faze pripreme za prikaz, kreiraju se konkretni 3D objekti koji se

žele prikazati. Svaki objekt načelno ima geometriju i materijal koji se preslikava na pojedine

dijelove te geometrije. U ovom slučaju, geometrija je kutija (kvadratne strane) veličine 100 x

100 x 100. Pripadni materijal je osnovni materijal plave boje koji će se preslikati na sve strane

geometrije. Mesh ili mreža je poznata pojava iz nekih drugih 3D grafičkih okvira, i služi za

objedinjenje geometrije i materijala u jedinstveni 3D objekt.

U idućih par redova se taj objekt („kocka“) dodaje u scenu, kamera se pozicionira

malo udaljeno od centra po z-osi kako bi bila izvan kocke, te se scena renderira u renderer.

Načelno je korak renderiranja stavljen u petlju uz neku logiku kako bi se renderirao kad je

potrebno (radi osvježavanja animacija)

5.3.2. Tween.js

Premda Three.js ima neku ugrađenu podršku za animacije, brojni korisnici često uz

sam Three.js koriste Tween.js biblioteku za postizanje animacija, koja je poseban proizvod i

nije namijenjena korištenju isključivo u kontekstu animacija.

Tween.js je biblioteka koja služi za kreiranje „tweenova“ (objekata koji predstavljaju

kontinuirani prijelaz između dviju vrijednosti). Pomoću Tween.js biblioteke moguće je

navesti atribut i krajnju vrijednost te vrijeme tijekom kojeg će se dani atribut približavati toj

vrijednosti. S mogućnosti registracije povratnih funkcija (eng. callback) koje se pozivaju pri

svakom osvježavanju vrijednosti ili kad je proces završen, moguće je jednostavno kreirati

animacije u Three.jsu.

Isječak koda 2: Tween.js jednostavan primjer

var pozicija = { x : 0, y: 300 };

var ciljna_pozicija = { x : 400, y: 50 };

var tween = new TWEEN.Tween(pozicija).to(ciljna_pozicija, 2000);

tween.start();

TWEEN.update();

Primjer koda iznad radi prijelaz između objekta „pozicija“ (0, 300) do objekta

„ciljna_pozicija“ (400, 50). Pravi se instanca objekta prijelaza objekta „pozicija“ u vrijednosti

iz objekta „ciljna_pozicija“ u trajanju od 2000 ms (dvije sekunde).

Page 53: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

49

Pozivom start metode se pokreće prijelaz, a poziv TWEEN.update() poželjno je staviti

negdje gdje će se izvršiti jednom po jedinici osvježavanja (npr. u glavnu petlju renderiranja).

Bez ove biblioteke, animiranje kretanja i rotacija objekata u simulatoru bi bilo znatno

kompliciranije ili bi zahtijevalo vlastitu implementaciju ovakvog ponašanja.

5.3.3. Enmasse.io suita

Suita Enmasse.io je skup JavaScript biblioteka za razvoj distribuiranih višeagentnih

sustava u stvarnim i simuliranim okolinama. Ciljna okolina za biblioteke je izvođenje u

pregledniku te u Node.jsu.

Suita je sastavljena od međusobno neovisnih JavaScript biblioteka koje

implementiraju različite funkcionalnosti koje su korisne kod implementacije agenata u

JavaScriptu te je svaki modul dovoljno načelan da omogućuje korištenje u vrlo različite svrhe.

Suita je generalno podijeljena u nekoliko logičkih odjeljenja:14

Logički agenti

o Eve (modul za dizajn objekata agenata)

o Babble (modul za dinamički protok poruka između sudionika u obliku

razgovora)

o Baza znanja.15

o Stroj za rezoniranje / odabir akcija.15

Komunikacija

o Distribus (distribuirani sustav slanja poruka)

o Remote objects (proxy modul za upravljanje udaljenim objektima koji nisu

nužno unutar istog preglednika na temelju distribusa)

o JSON-RPC modul.15

Okolina

o Load-balancer za distribuiranu mrežu agenata. 15

o Upravljačka ploča s web sučeljem. 15

14 Prema podacima s http://enmasse.io/, dostupno 25. listopada 2015. 15 Nije implementirano u trenutnom izdanju dostupnom 25. listopada 2015.

Page 54: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

50

Simulacija

o Hypertimer (modul za realizaciju diskretnog vremena)

o Stroj za simulaciju fizike.15

Iz gornjeg popisa se vidi da dobar dio funkcionalnosti koji bi bio koristan u ovakvom

projektu tek planiran, a nije implementiran. Stroj za rezoniranje bi bila najkorisnija

komponenta, ali sam svejedno odlučio proučiti Eve, Babble i Hypertimer.

Nakon razmatranja navedenih biblioteka, zaključio sam da Eve i Babble imaju najviše

koristi ako ih se primjenjuje zajedno s Distribusom, u kontekstu distribuiranih agenata koji

djeluju u više odvojenih prozora preglednika. Pošto u ovom slučaju mi nije bilo u cilju kreirati

distribuiranu aplikaciju, odlučio sam kreirati vlastiti objekt agenta s mogućnosti komunikacije

koji će zamijeniti Eve i Babble, obzirom da je glavnina njihovih prednosti neiskoristiva u

slučaju ovog simulatora.

5.3.3.1. Hypertimer

Hypertimer je JavaScript implementacija diskretnog simulacijskog vremena pomoću

kojeg se agenti (distribuirani ili ne) mogu sinkronizirati. Hypertimer funkcionira

Isječak koda 3: Hypertimer s vremenskim pomakom događaja

var timer = hypertimer({ rate: 1, time: new Date(2015, 0, 1), }); var id = timer.setTimeout(function() { console.log('Hypertimer timeout', timer.getTime()); }, 1000);

Iz gornjeg isječka koda (Isječak koda 3) može se prepoznati sličnost s ugrađenim

JavaScript funkcijama poput window.setTimeout. Hypertimer također ima podršku za

intervale i još brojnu funkcionalnost. Razlika u odnosu na ugrađene JavaScript pozive je u

tome što se može regulirati brzina protjecanja vremena i može se ručno navesti datum i

vrijeme koje će simulacija uzimati za trenutno, što je korisno za simulacije koje ovise o

datumu i vremenu.

Korist ove biblioteke bi bila upravo u reguliranju brzine protjecanja vremena u

simulaciji. Namjeravao sam iskoristiti biblioteku za generiranje događaja koji označavaju

Page 55: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

51

prolazak jedne jedinice vremena prema agentima koji ih obavještavaju o prolasku jedne

jedinice vremena što bi im značilo da je vrijeme za ponovno razmatranje okoline i odabir

nove akcije. Tako bi agenti mijenjali svoje unutarnje stanje u određenim razmacima, a

simulator i Three.js bi ih samo crtali za grafički prikaz.

Međutim, jedna komplikacija ovog pristupa je ta što Three.js treba imati vlastitu petlju

te se u toj petlji trebaju odvijati animacije. Takva petlja obično se realizira pomoću

window.requestAnimationFrame poziva, jer takva vrsta petlje ima prednost što se izvršava

dok je aplikacija otvorena u trenutno otvorenom prozoru ili tabu preglednika, a pauzira se

ukoliko je neki drugi tab otvoren, što štedi resurse. Kad bi se kombinirali Hypertimer i

requestAnimationFrame na opisani način, Three.js prikaz scene bi postao nesinkroniziran sa

stvarnim pozicijama agenata te bi se trebao generirati ponovno svaki put kad se ta petlja

ponovno pokrene. Osim što bi to bilo komplicirano, bilo bi i neefikasno jer bi se svi agenti u

svakom koraku trebali ukloniti iz scene, izračunati im se nove pozicije te ponovno dodati

umjesto da scena prati atribute iz njihovih klasa. Razumnije je u ovom slučaju dati prednost

requestAnimationFrame metodi jer ako se neki drugi tab otvori, pauzirati simulaciju nije loša

ideja.

Stoga sam dalje razmotrio model u kojemu agenti dobivaju događaje o prolasku jedne

jedinice vremena od Hypertimer objekta, a animacija se normalno odvija putem Three.jsa.

Nedostatak ove metode je u tome što agenti usred animacije nisu spremni za novu akciju, a

Hypertimer, koji je odvojen od animacijskog ciklusa simulatora, smatra da je vrijeme za to.

To dovodi do problema u kojemu agenti nakon završenog animacijskog ciklusa (pomaka ili

slične akcije koja se animira) čekaju nepotrebno događaj od Hypertimera ili nepotrebno

dobivaju događaj usred animacije pa ga moraju ignorirati jer nije vrijeme za obradu tog

događaja. Čak i tako već loš pristup dodatno je zakompliciran time što je Hypertimer pokazao

da ponekad uopće ne okida događaje (nakon više uzastopnih pauziranja, potencijalno usred

okidanja), iz čega sam zaključio da je relativno eksperimentalna biblioteka. Naposljetku sam,

uklanjanjem Hypertimera, čitavu Enmasse.io biblioteku izostavio iz projekta.

5.3.4. Ostale tehnologije

Kako bih pojedine funkcionalnosti aplikacije implementirao brže i jednostavnije,

odlučio sam iskoristiti funkcionalnosti iz nekoliko dodatnih biblioteka:

Page 56: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

52

jQuery JavaScript biblioteka koja pojednostavljuje česte zadatke u JavaScriptu poput

manipulacije DOM-a, obrađivanje događaja, AJAX te brojne druge.

jQuery UI biblioteka za izgradnju korisnička sučelja, korištena za prikaz dijaloga i

polja za unos.

libxml biblioteka za parsiranje i validaciju XML dokumenata, korištena iz PHP-a.

5.4. Implementacija

U nastavku će biti opisani neki dijelovi konkretne implementacije ovog simulatora,

njihove mogućnosti i ograničenja te mjesta za potencijalnu nadogradnju. Potrebno je

napomenuti da se u tekstu termini „objekt“ i „klasa“ koriste više-manje kao ekvivalenti ili se

objekte dovodi u kontekst koji opisuje klasu. Razlog za to je što je JavaScript prototipni

programski jezik u kojemu ne postoje klase16, već se objekti kreiraju dinamički te im se

dodjeljuje prototip koji predstavlja roditelja u hijerarhiji.

5.4.1. Definicija terena

Za definiciju izgleda terena odlučio sam se za vlastiti zapis u XML obliku u kojem će

biti moguće navesti sve potrebne parametre za provedbu simulacije.

Isječak koda 4: Primjer opisnika scenarija

<?xml version="1.0" encoding="utf-8"?>

<agent-setup version="1.0"

description="Opis scenarija"

xmlns="http://arka.foi.hr/~marrukavi/dipl"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://arka.foi.hr/~marrukavi/dipl

http://arka.foi.hr/~marrukavi/dipl/scenarios/agent-setup.xsd">

<objective>

<cell position="3,1,4" />

</objective>

<deployment>

<agents>

<agent name="Sub 1"

type="AS.Submersible"

behaviour="AS.Behaviours.Exploration"

startposition="2,2,0"

startdirection="0,1"/>

<agent name="Sub 2"

type="AS.Submersible"

behaviour="AS.Behaviours.SitStill"

16 Klase su zapravo dio sintakse ECMAScripta 6, ali su jednostavno sintaktički konstrukt koji efektivno kreira

objekt na isti način kao i pomoću standardnog načina koristeći prototipove.

Page 57: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

53

startposition="2,3,0"

startdirection="1,0" />

</agents>

</deployment>

<scene type="box" xspan="5" yspan="5" zspan="5" unitlength="20">

...

</scene>

</agent-setup>

Isječak koda 4 pokazuje minimalni primjer opisnika scenarija u kojemu je cilj doći do

određene pozicije unutar terena, i dva agenta se kreiraju (podmornice) svaki sa svojim

početnim ponašanjem, lokacijom i smjerom.

Korijen XML dokumenta, tag agent-setup ima atribut verzije, što omogućuje buduće

mijenjanje zapisa uz održavanje kompatibilnosti prema starijim zapisima.

XML tag scene opisuje strukturu scene a njegovi su elementi tagovi slojeva, redova i

ćelija. U ovom slučaju se radi o kubičnoj (box) sceni 5 x 5 x 5 prostornih volumena, svaki

duljine, visine i širine 20 jedinica. Opis jednog sloja bi sadržavao popis redova u tom sloju, a

svaki red popis ćelija s različitim atributima. Pošto je opisana scena dimenzija 5 x 5 x 5, imat

će pet uzastopnih tagova sloja, svaki s pet redaka. Unutar svakog retka može biti ili pet tagova

ćelije ili manje ako je označena opcija ponavljanja, u kojem slučaju se navedeni tag ponavlja

dok nije popunjen taj redak.

Isječak koda 5: Dizajn jednog sloja scene

<layer>

<row><cell block="yes" boundingbox="full" repeat="yes" /></row>

<row><cell block="yes" boundingbox="full" repeat="yes" /></row>

<row><cell block="yes" boundingbox="full" repeat="yes" /></row>

<row>

<cell block="yes" boundingbox="full" />

<cell block="yes" boundingbox="full" />

<cell block="no" boundingbox="full" origin="yes" />

<cell block="no" boundingbox="full" />

<cell block="yes" boundingbox="full" />

</row>

<row><cell block="yes" boundingbox="full" repeat="yes" /></row>

</layer>

U gornjem isječku koda navedena je geometrija gornjeg od pet slojeva. Prvih tri reda

imaju istu vrstu ćelije, neprolaznu (čvrstu) ćeliju. Atributom boundingbox mogu se navesti

granice čvrstoće unutar te ćelije. U četvrtom redu, jedna dvije ćelije su prohodne (nisu

ispunjene), s time da je jedna ćelija ishodište. U simulaciji će ova ćelija imati koordinate

(0, 0, 0), a druge će dobiti koordinate obzirom na nju.

Page 58: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

54

Uz ovaj format zapisa kreirao sam i XML shemu (XSD dokument) kojim se mogu

validirati potencijalni opisnici scenarija (prilog Error! Reference source not found.). PHP

plikacija koja generira strukturu scenarija za simulator neće niti prihvatiti opisnik ako sadržaj

ne zadovoljava strukturu zadanu shemom.

5.4.2. Simulator

S dizajnom glavnine simulatora krenuo sam kroz dizajn objekata simulatora i pripadne

bazne klase koja sadrži okvir za Three.js aplikaciju. Simulator je ekstenzija bazne Three.js

aplikacije koja ima kukice koje se pozivaju tijekom izvođenja glavne petlje (Template method

uzorak), kao što su metoda za osvježavanje. Sam simulator definira stanja u kojima može biti

(postavljanje, pauziran, pokrenut) te metode za prijelaz između tih stanja.

Bitni objekt kojeg koriste gotovo svi dijelovi simulatora jest objekt okoline (definiran

u Environment.js). Okolina je u simulatoru objekt koji je zamjena za sve ono što bi bila

funkcionalnost okoline, i na čistoću te klase sam posebno pripazio. Okolina propagira poruke

između agenata (u stvarnosti bi to bilo riješeno radio valovima ili drugim načinom), registrira

agente (u stvarnosti potreba za registracijom ne postoji) tako što im dodjeljuje ID brojeve te

radi druge implicitne poslove koji su ovdje iz potrebe sadržani u takvom objektu, a koje u

stvarnosti ne bi bile potrebne, kao što su prenošenje događaja prolaska jedne jedinice vremena

svim agentima (u stvarnosti bi svaki agent pratio vrijeme interno) te jedino okolina zna koji su

svi agenti prisutni.

5.4.2.1. Detekcija kolizija

Unutar Three.js okvira postoji više metoda kojima bi se mogao implementirati

detektor kolizija. Jedna mogućnost je korištenje THREE.Box3 objekta te testiranje kolizija

prostora kojeg zauzima agent s drugim prostorima. Ovo je posebno korisno prilikom

provođenja same animacije kretanja: ukoliko dođe do doticaja s kutijom drugog agenta ili

scene, agent se treba odmah zaustaviti te otkriti s čime dolazi u skoru koliziju.

Druga metoda koju sam uglavnom koristio jest već spomenuto projiciranje crta

svjetlosti (raytracing), koje se može koristiti pomoću THREE.Raycaster objekta. Takvim

postupkom se zamišljene zrake iz neke točke emitiraju u nekom smjeru, te se dobiva nazad

lista svih kolizija koje je zraka doživjela obzirom na listu čvrstih predmeta u okolini. Između

ostalog se dobiva i podatak o udaljenosti predmeta s kojim se kolizija zrake dogodila. Ako

Page 59: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

55

ograničimo simulator da uzima samo one objekte koji su unutar nekog raspona udaljenosti,

postigne se otprilike emulacija laserskog senzora udaljenosti.

Treća korištena metoda je sama komunikacija agenata, koja će biti potanje objašnjena

u sljedećim poglavljima. Agent prilikom odabira akcije najavljuje okolnim agentima porukom

da se namjerava kretati u neku ćeliju, što sprječava slučaj da dva agenta istovremeno

pokušavaju ići u istu ćeliju i pritom moraju izbjegavati sudar. Ova metoda najavljivanja dobro

funkcionira unutar simulirane okoline simulatora s diskretnim kubičnim volumenima, ali u

stvarnosti ne bi funkcionirala. Međutim, to nije nedostatak simulatora nego modela

komunikacije agenata, definiranog unutar ponašanja agenata (poglavlje 5.4.4).

5.4.3. Agenti

Agenti su u simulatoru realizirani kroz hijerarhiju objekata koja počinje objektom

„Agent“, koji opisuje agenta u najširem mogućem smislu. Ponukan primjerom SPADE

platforme, svaki agent u sustavu ima jedinstveni AID (agent ID) po kojem ga je moguće

razlikovati. U trenutnoj implementaciji, taj AID je broj kojeg dodjeljuje objekt okoline kad se

agent registrira, ali u stvarnosti bi mogao biti XMPP identifikator kao i kod SPADE-a.

Takav osnovni agent ima strukture za spremanje znanja i sljedeće akcije, ima svoje

ponašanje te zna slati i obrađivati poruke, percipirati okolinu, izvesti akciju te izvršiti svoje

interne radnje u nekom zadanom redoslijedu. Glavnina funkcija u ovom objektu su

jednostavne ili minimalno definirane, a zadatak je potklasa da specificiraju konkretne

implementacije.

Slika 23 prikazuje dijagram klasa tri klasa koje su dostupne u simulatoru trenutno.

Agent3D je objekt koji proširuje objekt agenta s radnjama poput kretanja u prostoru te pamti

vlastitu poziciju, smjer i zna koje kamere ima za razmatranje okoline.

Objekt podmornice (Submersible) definira izgled podmornice i njene specifične

radnje. Za simulaciju nisam imao potrebe dodavati nove radnje, iako bi ih podmornica mogla

imati (npr. uključi/isključi motore, itd.).

Page 60: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

56

Slika 23: Dijagram klasa agenata

Klasa agenta definira akciju da se ne radi niti jedna akcija, a Agent3D definira

prostorno kretanje i rotiranje, s pretpostavkom da će svaki agent moći te radnje napraviti.

Moguće je svakako da specifični agenti neće moći rotirati se već će imati akcije koje će se

razložiti na rotaciju u nekom smislu, npr. pomicanje unaprijed uz određeni položaj kotača. U

tom slučaju oni ne moraju biti sposobni razumjeti tu radnju i njihova ponašanja je ne moraju

nikad odabrati, premda će objekt Agent3D svejedno imati implementaciju takvog kretanja.

Samo kretanje podmornice je moguće u svih šest osnovnih smjerova (gore, dolje,

lijevo, desno, naprijed, nazad) te je rotacija moguća za 90° lijevo i desno, te za 180° (složena

akcija od dvije rotacije u istom smjeru). Grafički prikaz je dan na sljedećoj slici (Slika 24):

Page 61: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

57

Slika 24: Prikaz osnovnih kretnji i rotacija na simulatorovom modelu podmornice

Međutim, postoji i podrška za bilo kojim od 26 mogućih prostornih kretnji u susjedne

kubične ćelije, kao što je gore-naprijed ili gore-naprijed-lijevo. Tween.js ima podršku za ne

samo linearni prijelaz između dviju vrijednosti, već i pomoću dodatnih točaka preko

vrijednosti na odgovarajućoj Bézierovoj krivulji (Slika 25).

Slika 25: Kretanje dolje i naprijed pomoću vrijednosti na Bézierovoj krivulji

Premda je podrška za ovu vrstu kretanja započeta u implementaciji simulatora, nije

korištena u konačnoj verziji, gdje je takva kretnja zamijenjena odvojenim kretnjama naprijed i

dolje. Proširenjem senzorskih mogućnosti agenta (percepcija svih okolnih 26 ćelija umjesto

neposrednih 6) bilo bi moguće uvesti podršku za ovakvo kretanje.

5.4.4. Ponašanja

Page 62: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

58

Cilj pri izradi aplikacije da ponašanja budu odvojena od kostura agenta djelomično je

postignut. Ponašanja su uspješno implementirana u vlastitoj hijerarhiji (Slika 26) te ih je

moguće mijenjati prilikom izvođenja i tako postizati različita ponašanja kad se za to javi

potreba. Međutim, prijelaz iz stanja u stanje ponašanja kao dio nekog ponašanja nije

implementirano (premda je moguće) i klasa istraživačkog ponašanja (Exploration) je toliko

enkapsulirana da ukoliko je se promijeni i onda ponovno kreira nova instanca tog ponašanja,

agent zaboravlja što je dosad istražio i kreće ispočetka. Moguće rješenje je bolja integracija

stabla cilja sa znanjem agenta.

Slika 26: Dijagram klasa ponašanja agenata

Slika 26 prikazuje da sva ponašanja nasljeđuju zajednički objekt ponašanja koji

definira neke zajedničke funkcionalnosti svih ponašanja. Svaki konkretni objekt deklarira

vlastite metode za dolaska do konačne akcije, premda su tri od četiri uključena ponašanja

toliko trivijalna da samo su samo nadopuna apstraktnog objekta ponašanja. U modulu

AS.Behaviours postoje četiri ponašanja, a ona su:

SitStill – agent uvijek odabire akciju propuštanja akcije. Ne obrađuje poruke iz

okoline.

SimpleDown – agent s ovim ponašanjem će provjeriti ima li prema senzorima

indikacija da je ćelija direktno ispod njega zauzeta. Ukoliko je, odabire propustiti

akciju. Ukoliko nije, odabire akciju kretanja u tu ćeliju.

Shark – agent provjerava je li ćelija direktno ispred njega (prva susjedna ćelija u

smjeru u kojem gleda) zauzeta. Ako nije, pomiče se u tu ćeliju. Ako je, okreće se za

180°. Rezultat ovog ponašanja je da agent ide ravno dok ne naiđe na prepreku, onda

ide u suprotnom smjeru, pomalo kako se morski pas kreće u akvariju.

Page 63: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

59

Exploration – ovo ponašanje je najkompleksnije od navedenih. Agent će istraživati

prostor u kojem se nalazi tako što će održavati stablo odluka o prostornom kretanju te

odabrati jedan od mogućih17 smjerova (ukoliko je poznata lokacija cilja, onu koja je

prostorno najbliža cilju, inače prvu ćeliju u nekom proizvoljno definiranom

redoslijedu), ili vraćati se putem kojim je došao ukoliko u nekom trenutku više nema

odabira (backtracking). Agent će održavati komunikaciju s drugim agentima oko toga

gdje namjerava ići (da se spriječe sudari) te kad se pomaknuo (da agenti znaju da je

ćelija gdje je prethodno bio slobodna).

5.4.4.1. Algoritmi istraživanja

Kod istraživačkog ponašanja agenta, potreban je bio algoritam za istražiti prostor oko

agenta koji mu je nepoznat. Agent ima mogućnost percepcije čvrstih predmeta u neposrednim

susjedima svojoj ćeliji te temeljem toga i znanja o posjećenosti ćelija treba odlučiti koje ćelije

posjetiti.

Algoritam istraživanja je dan sljedećim tijekom:

1. Ako stablo odluka o kretanju nije inicijalizirano, inicijaliziraj ga.

2. akcija = ∅

3. Ukoliko trenutni čvor stabla nema djecu,

a. akcija = roditelj trenutnog čvora.

4. Ukoliko je poznat cilj,

a. Odaberi dijete čvora koje je prostorno najbliže cilju.

b. akcija = cilju najbliže dijete

5. Ukoliko nije poznat cilj,

a. akcija = prvo dijete.

6. Ako je akcija jednaka ∅, sve su mogućnosti iscrpljene i scenarij nema rješenje. Kraj.

7. Najavi okolini kretanje u odabranu ćeliju (intent).

8. Ako se na namjeru nije dobio prigovor, odaberi akciju. Kraj.

9. Ako se na namjeru dobio prigovor, odaberi prvo sljedeće najbolje dijete. Ako takvog

djeteta nema, odaberi akciju da se ne izvrši niti jedna akcija. Kraj.

Jasno je da stablo odluka igra veliku ulogu u određivanju konkretnih ishoda algoritma.

Struktura stabla odluke je takva da svaki čvor generira djecu koja predstavljaju moguća

17 Smjer se smatra mogućim ako ne dovodi do ćelija koje su prethodno posjećene ili ne dovodi do zauzete ćelije

(drugim agentom ili terenom).

Page 64: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

60

kretanja iz te pozicije (takvih je kretanja 6). Moguća kretanja su sva fizički moguća kretanja

iz kojih su eliminirana ona kretanja koja bi podmornicu dovela iznad površine vode, ispod

neke maksimalne dubine, u ćeliju koja je zauzeta terenom ili nekim drugim agentom ili u

ćeliju za koju je poznata neprovedena najava nekog agenta da se pomakne u nju (namjera).

Najavljivanje namjere navedeno u koraku 7 služi za obavještavanje okolnih agenata da

agent želi krenuti i zauzeti određenu ćeliju. Kad bi dva agenta istodobno pokušala se

pokrenuti u istu ćeliju (koja im se čini slobodna), moglo bi doći do sudara. Sustavom najava

se tako pokušava riješiti problem sudara. U simuliranoj okolini u kojoj se ti zadaci odvijaju

sekvencijalno u jednoj dretvi, okolina pamti namjere te ih neće odobriti drugom agentu ako je

prvi zatražio tu istu namjeru. U tom slučaju će se prvi agent pomaknuti, a drugi će čekati ili

odabrati drugu akciju ako je ima (Slika 27).

Slika 27: Grafički prikaz sustava namjera (intent)

U stvarnom okruženju bi takve dvije najave mogle doći do situacije da se oba agenta

najave istovremeno za isti prostor. U najgorem slučaju bi oba krenula i izazvala sudar (ili

morali manevrirati da ga izbjegnu), a u drugom najgorem će oba agenta čekati i niti jedan se

neće pomaknuti. Ovakva situacija bi se mogla riješiti kraćim čekanjem nakon najave da se

uhvate najave potencijalnih susjednih agenata i konceptom nasumičnih vremena čekanja prije

ponovne najave kao u slučaju kolizija u fizičkom sloju računalnih mreža (Ethernet). Međutim,

opcija je i da oba agenta krenu u drugim mogućim smjerovima ukoliko imaju taj odabir, ili da

se mimoiđu na siguran način pošto stvarna okolina nije prostorno diskretna kao u simuliranom

slučaju.

5.4.5. Meniji, izgled simulatora i ostala funkcionalnost

U implementaciji simulatora dodatni zahtjev je bio implementacija menija kojim se

može upravljati postavkama simulacije te postavkama agenata kako bi se moglo lakše utjecati

na agente ukoliko se to želi.

Page 65: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

61

Traka menija se nalazi pri vrhu prozora (vidljivo na slici ispod, Slika 28) te ima niz

opcija koje se mogu selektirati i više gumbića koji reguliraju pojedine simulacijske parametre

ili opcije prikazivanja. Pokretanje, pauziranje i resetiranje simulacije je moguće, dodavanje i

brisanje agenata te mijenjanje njihovih ponašanja, prikaz pomoćnih osi, postavljanje brzine

izvođenja simulacije, otvaranje „Agent View“ opcije koja omogućuje pogled iz perspektive

agenta na okolinu putem šest kamera kojim se zasebno renderira scena (Slika 30) te dnevnika

u kojem se navodi veliki dio akcija koje agenti odabiru i drugih napomena.

Slika 28: Izgled simulirane okoline s dva agenta-podmornice

Što se terena tiče, korišten je jednostavni, donekle prozirni (Slika 29) materijal kako bi

se mogli agenti vidjeti kroz njega premda ga oni percipiraju kao čvrstim i neprolaznim. Teren

se može pokretima miša uz klik rotirati, zumirati u njega te pomicati kameru lijevo odnosno

desno kako bi se simulacija mogla promatrati iz kuta koji je optimalan. Pritiskom na tipku 'Z'

se postavke pogleda resetiraju na početne kao na početku simulacije.

Slika 29: Nekoliko agenata podmornica vidljivi u sceni simulatora

Page 66: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

62

Slika 30: "Agent View", pogled iz perspektive agenta u šest osnovnih smjerova

Dodatak 10.1, Resursi, navodi link na punu aplikaciju ovdje opisanu te na izvorni kod.

5.5. Diskusija

Opisani simulator kojeg sam implementirao je u svakom slučaju rudimentaran. Jedna

funkcionalnost koju smatram vrlo bitnom za sve agente jest mogućnost logičkog rezoniranja

uz pomoć baze znanja s mnoštvom pravila o svijetu. Tu temu gotovo uopće nisam doticao u

ovom radu jer nisam imao priliku koristiti takvu tehnologiju u izradi simulatora. Jedan razlog

za to izostavljanje je to što za JavaScript nema postojeće implementacije takvog stroja.

Razlozi za to su potencijalno brojni – kao prvo, takav stroj za rezoniranje je obično intenzivan

za resurse, a JavaScript (koji se izvodi najčešće unutar prozora preglednika) nije takva

tehnologija da bi to bilo praktično. Enmasse.io suita predviđa takav stroj, no za sada nema

naznaka kad bi mogao postati stvarnost. Implementacija vlastitog deduktivnog stroja u

JavaScriptu bio bi preveliki zadatak da bi ga mogao odraditi dovoljno dobro u razumnom

vremenu za potrebe ovog rada.

Najveći neuspjeh simulatora kad ga promatram na kraju je što je prostorno toliko

diskretiziran. Moguće je kreirati teren koji je dovoljno velik da se pojedinačni blokovi čine

kao da nisu kubični volumeni, ali trenutni kod simulatora pretpostavlja da su agenti veličine

jednog takvog bloka. Mislim da to uvelike umanjuje korist ovakvog simulatora, ali je ta

Page 67: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

63

odluka bila nužna kako bih mogao solidno implementirati ponašanje koje bi u suprotnom bilo

vrlo komplicirano da je prostor diskretan jer agenti ne bi imali istu vrstu prostornih

koordinata.

Sve u svemu, smatram da bi ovaj simulator mogao naći najveću primjenu u edukaciji o

agentno-baziranom programiranju. Teren je dovoljno jednostavan i agenti imaju dovoljno

prostornih sposobnosti da bi se moglo napisati još nekoliko modula ponašanja (uz uključena

četiri) koja bi demonstrirala različite modele komunikacije u ovakvoj okolini. Također,

mogućnost relativno jednostavnog kreiranja vlastitih terena dozvoljava testiranje ponašanja u

velikom broju različitih konfiguracija terena. Mjestimično sam i tijekom implementacije

pripremio kod za dodatne funkcionalnosti za koje sam sumnjao ili znao da neće biti uključene

u verziju koju predajem uz ovaj rad, ali koje dozvoljavaju lakše proširivanje. Naravno,

nedostataka u ovom pogledu ima također, neke od kojih ću navesti.

5.5.1. Akvizicija 3D podataka

Dobivanje, procesiranje i razumijevanje podataka o okolini fundamentalni je korak ka

implementaciji agenta. Ovo područje je jedno od sofisticiranijih softverskih tema kod razvoja

autonomnih agenata te je također usko vezano uz umjetnu inteligenciju.

Dobar simulator bi trebao imati podršku za senzorske ulaze različitih vrsta. Primjerice,

relativno jednostavno bi bilo implementirati da se pomoću raytracinga generira mapa blizine

različitih predmeta s odabrane strane podmornice. U stvarnosti bi taj postupak koristio stereo

kamere ili senzor blizine i složeniju obradu. Nažalost, u implementaciji takva mapa ne postoji

jer za njom realno nije bilo potrebe (sav prostor ispred agenta je definiran jednom vrijednosti

– slobodan ili zauzet). Kad bi prostor bio kontinuiran s različitim detaljima, agent bi mogao

dobiti takvu mapu (u obliku skalarnog polja udaljenosti, primjerice) i prosuđivati o

slobodnosti tog prostora.

5.5.2. Sposobnosti istraživačkog ponašanja

Specifičan nedostatak je po meni ponašanje agenata dok istražuju prostor. Opisani

algoritam istraživanja kojeg sam primijenio koristi backtracking da bi došao u prethodnu

ćeliju ukoliko trenutna ćelija nema korisnih opcija za kretanje. Premda je taj algoritam

odabran radi njegove jednostavnosti, ima nekoliko nedostataka. Kao prvo, koristeći samo to

Page 68: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

64

stablo, agent nije svjestan prostora oko sebe. Najbolja ilustracija je dana u nastavku (Slika

31):

Slika 31: Odabir putanje kod backtrackinga u algoritmu odabira akcije

Na gornjoj ilustraciji pod oznakom 1) je scenarij u kojem agent ne prepozna

nepotrebnost istraživanja cirkularnog prostora koji ne dovodi do cilja, što je sasvim razumni

događaj ukoliko lokacija cilja nije poznata. Agent koji je istražio cirkularni potprostor

putanjom označenom narančastom crtom na prvoj slici se nalazi u položaju u kojemu nema

više neposjećenih ćelija (iduća ćelija dovodi do početne, prethodna dovodi do prethodno

posjećene). U ovom slučaju će prema algoritmu pretraživanja agent odlučiti vraćati se kroz

stablo odluka. U trenutnoj implementaciji se agent fizički vraća kroz to stablo, dakle napravit

će cijeli krug u suprotnom smjeru da dođe do izlaza iz konfiguracije, umjesto da stablo

pretraži logički i zaključi da mu je kraći put ići dva koraka unaprijed, kao što je prikazano na

slici 2. Za implementaciju ovakvog poboljšanja potrebno bi bilo uvesti pomoćni objekt koji

agentu omogućava planiranje najkraćeg puta između dvije lokacije preko već posjećenih

lokacija.

Drugi nedostatak algoritma je sličan prvome, a odnosi se na situaciju u kojoj agent

koji je istražio dio terena i posjetio neke lokacije dobije drugo ponašanje (npr. ponašanje

SitStill). Ukoliko mu se nakon toga ponovno uključi ponašanje istraživanja, stablo će biti

generirano ispočetka iz trenutne pozicije te će se time zaboraviti na redoslijed backtrackinga,

što će u nekim situacijama dovesti do toga da agent percipira cijeli okružujući prostor

istraženim i (pogreško) ne odabire dalje istraživati. Moguće rješenje je održavanje stabla

kretanja kroz druga ponašanja (što bi narušilo korist modela zasebnih ponašanja) ili promjena

Page 69: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

65

algoritma uz pamćenje prethodnog stanja stabla odluka. U svakom slučaju, dobro rješenje

ovog problema uvelike ovisi o kvalitetnom rješavanju prethodno opisanog problema. Time bi

agent imao sposobnost planiranja puta kroz posjećeni skup prostora neovisno od stanja stabla

odluka te bi to dovelo do ogromnog poboljšanja u efikasnosti istraživanja prostora.

5.5.3. Organizacija koda

U organizaciju koda simulatora sam uložio razumnu količinu truda jer sam ciljao na

modularnost ponašanja i hijerarhije objekata tamo gdje je to korisno. Tako sam puno

funkcionalnosti poput snalaženja u prostoru i izračunavanja kolizija izdvojio u zasebne

pomoćne (eng. helper) objekte. Na taj način je zasićenost koda u ponašanju i klasama agenata

smanjena.

Jedan problem kojeg nisam razmotrio na vrijeme i sad bi zahtijevao refaktoriranje je

struktura objekata stabla cilja, koji je prikazan slikovno na stranici 58 (Slika 26). Naime,

stablo cilja predviđa samo jednu implementaciju, koja je dana objektom stabla i čvora stabla.

Bolja alternativa bi bila da su stablo i čvor cilja apstraktni s konkretnom implementacijom

tipa Position3DGoalTree ili DiscreteExplorationPositionGoalTree, koje bi davale trenutnu

funkcionalnost ali omogućile da se koncept stabla cilja proširi s drugim implementacijama

(Slika 32).

Slika 32: Bolja organizacija GoalTree strukture na sučelje (odnosno apstraktnu klasu) i

implementaciju

Page 70: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

66

Još jedan problem organizacije koda je također problem objektnog dizajna. Nakon što

je ponašanje izdvojeno od kostura agenta, mala je potreba za klasom podmornice kao poseban

element hijerarhije objekata agenata. U nekom drugom jeziku, bolji dizajn bi bio da je

Agent3D osnovna klasa koja ima referencu na neki fizički izgled, npr. podmornice koji onda

koristi kao svoj. Pošto je JavaScript prototipski jezik, trenutni izgled koda se ne čini kao

velika greška pošto je podmornica samo objekt s prototipom Agent3D.

Sigurno je još nedostataka u pogledu dizajna koda simulatora, ali smatram da najveći

nedostatci ovog projekta leže u funkcionalnostima simulatora.

Page 71: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

67

6. Zaključak

Ovim radom sam pokušao dati pregled problematike dizajna i implementacije agenata

za rad u trodimenzionalnim okolinama kroz više razina. Puno problema dolaze iz različitih

disciplina i stoga smatram da je tehnologija izrade autonomnih agenata vrlo interdisciplinarno

područje i da je široki spektar znanja o tehničkim i organizacijskim problemima ključ za

razumijevanje područja, kao i surađivanje sa stručnjacima iz domena kojima pripadaju

određeni problemi.

Cilj dizajna autonomnih agenata će istraživače i tehničare provesti kroz teren koji je

zakrčen nizom prepreka. Koliko mi se ovo područje približilo tijekom proučavanja za potrebe

ovog rada, toliko mi se udaljilo jer je postalo jasno koliko je opsežno i da su sva područja

puno dublja nego što se na početku čini. Teško je reći koje područje je najbitnije za daljnji

razvoj i uvođenje robotskih autonomnih agenata u svijet jer jednako ovisi o razvoju tehnika

umjetne inteligencije, koliko o tehnologiji senzora, koliko o brzini procesora i tehnologijama

baterijskog napajanja električnom energijom.

Sve u svemu, nadam se da sam se u ovom radu osvrnuo na ono najbitnije iako sam

sigurno propustio reći sve. Projekt kojeg sam razvio u sklopu rada može poslužiti za

edukaciju o agentima orijentiranim na ponašanje u jednostavnoj 3D okolini radi toga što su

ponašanja modularna i jednostavno ih je proširiti novom logikom ili dodati nova ponašanja.

Pošto je jezik odabira JavaScript, a platforma prozor web preglednika, jednostavnost

nadogradnje simulatora je veća od simulatora napravljenih u jeziku poput jezika C ili C++.

Istraživanje mogućnosti primjena stvarnih višeagentnih sustava u našem

trodimenzionalnom okruženju dovodi do optimističnog pogleda na budućnost. Primjena

takvih sustava može dovesti do veće energetske efikasnosti u brojnim pogledima, a polagana

zamjena određenih poslova će biti popraćena većom potrebom za drugim poslovima, što je

vjerojatno znak civilizacijskog rasta. Raduje me da bi distribuirane mreže agenata u

međusobnoj komunikaciji mogle postati stvarnost, samo sada s novim razumijevanjem

problematike ovog područja shvaćam koliko su još neriješenih problema opreka takvoj

budućnosti i tek počinjem shvaćati koliko bi fascinantna ta stvarnost bila.

Page 72: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

68

7. Literatura

[1] Aziz, A.D., et al. (2005) Basics of Automata Theory. Preuzeto 3. studenog 2015. s

http://cs.stanford.edu/people/eroberts/courses/soco/projects/2004-05/automata-

theory/basics.html

[2] Bachrach, A.G. (2009) Autonomous flight in unstructured and unknown indoor

environments. Magistarski rad, Massachusetts Institute of Technology, S.A.D.

[3] Black, P.E., (2013) Finite state machine (u National Institute of Standards and

Technology Dictionary of Algorithms and Data Structures). Preuzeto 3. studenog 2015. s

https://www.nist.gov/dads/HTML/finiteStateMachine.html

[4] Elfes, A. (1989) Using occupancy grids for mobile robot perception and navigation.

IEEE Computer vol 22-6. pp. 46-57. S.A.D.: IEEE.

[5] Franke, U.E. (2015) Civilian Drones: Fixing an Image Problem? Članak na web mjestu,

preuzeto 5. studenog 2015 s http://isnblog.ethz.ch/security/civilian-drones-fixing-an-

image-problem

[6] Franklin, S. i Graesser, A. (1996) Is it an Agent, or just a Program?: A Taxonomy for

Autonomous Agents. Proceedings of the Third International Workshop on Agent

Theories, Architectures, and Languages. S.A.D.: Springer-Verlag.

[7] Galland, S., Gaud, N., Demange, J., Koukam, A. (2009) Environment Model for

Multiagent-Based Simulation of 3D Urban Systems. The 7th European Workshop on

Multiagent Systems (EUMAS09), članak 36.

[8] Koenig, N. i Howard, A. (2004) Design and Use Paradigms for Gazebo, an Open-Source

Multi-Robot Simulator. Proceedings of 2004 IEEE/RSJ International Conference on

Intelligent Robots and Systems. Japan.

[9] Kurepa, S. (1987) Uvod u linearnu algebru. 5. izdanje. Zagreb: Školska knjiga.

[10] Kurepa, S. (1990) Konačno dimenzionalni vektorski prostori i primjene. 5. izdanje.

Zagreb: Tehnička knjiga.

[11] Nwana, H. S. (1996) Software Agents: An Overview. Cambridge University Press,

Knowledge Engineering Review, Vol. 11, Br. 3, 205-244.

[12] Odell, J., Parunak H.V.D., Fleisher, M. i Brueckner, S. (2002) Modeling Agents and their

Environment. Agent-Oriented Software Engineering III, vol. 2585 of Lecture Notes In

Computer Science. S.A.D.: Springer-Verlag.

[13] Rathnam, R.K. i Birk, A. (2013) Distributed Algorithm for Cooperative 3D Exploration

under Communication Constraints. Paladyn, Journal of Behavioural Robotics. Vol. 4,

Issue 4, pp. 223–232. Versita.

[14] Russel, S. i Norvig, P. (2009) Artificial Intelligence: A Modern Approach. 3. izdanje.

S.A.D.: Prentice Hall.

[15] Schatten, M. (2015) Višeagentni sustavi. Prezentacije s kolegija „Višeagentni sustavi“,

Sveučilište u Zagrebu, Fakultet organizacije i informatike Varaždin.

[16] Shade, R. (2011) Choosing Where To Go: Mobile Robot Exploration. Doktorska

disertacija. Robotics Research Group, Department of Engineering Science, University of

Oxford.

Page 73: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

69

[17] Shen, S., Michael N. i Kumar, V. (2011) 3D Indoor Exploration with a Computationally

Constrained MAV. Robotics: Science and Systems, 2011.

[18] Volkmann, K. (2011) Honda's ASIMO visits first robotics event. St. Louis Business

Journal. Preuzeto 5. studenog 2015. s

http://www.bizjournals.com/stlouis/blog/2011/04/hondas-asimo-visits-first-robotics.html

[19] Weyns, D., Parunak, H.V.D., Michel, F., Holvoet, T. i Ferber, J. (2006) Environments for

Multiagent Systems State-of-the-Art and Research Challenges. Third International

Workshop (E4MAS 2006), vol. 4389 of Lecture Notes in Artifcial Intelligence, pp 1-47.

Hakodate: Springer.

[20] Wooldridge, M. i Jennings, N.R. (1995) Agent Theories, Architectures, and Languages: a

Survey. Intelligent Agents, 1-22. Berlin: Springer-Verlag.

Page 74: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

70

8. Popis slika

Slika 1: Tipovi agenata prema sposobnostima kooperacije, učenja i autonomnosti (Izvor:

Nwana, 1996) ............................................................................................................................. 4 Slika 2: Primjer konačnog automata s dva stanja i prijelazima (javno dobro, izvor:

wikimedia.org). .......................................................................................................................... 7 Slika 3: U kartezijevom koordinatnom sustavu svaki vektor se izražava pomoću pomaka po

osima baze (Izvor: intmath.com) .............................................................................................. 13 Slika 4: Prikaz šest stupnjeva slobode kretanja u trodimenzionalnom prostoru (Izvor:

Wikimedia Commons) ............................................................................................................. 14 Slika 5: ASIMO, čovjekoliki robot (Izvor: Wikimedia.org, autor Gnsin, licencirano pod CC-

by-SA 3.0 unported) ................................................................................................................. 16

Slika 6: iRobot Roomba (Izvor: irobot.com) ........................................................................... 17

Slika 7: WALL-E, robot iz istoimenog Pixarovog filma primjer je složenog agenta u 3D

prostoru (Izvor: wikimedia.org, copyright Pixar Animation Studios) ..................................... 18 Slika 8: OC Roboticsov "Snake Arm" robot (Izvor: ocrobotics.com) ..................................... 18 Slika 9: Tom Garvey i Helen Chan upravljaju Shakeyjem, 1973. godine (Izvor: SRI

international) ............................................................................................................................ 19

Slika 10: Bespilotna letjelica DJI Phantom za rekreativnu zračnu fotografiju (Izvor:

wikimedia.org, autor Lino Schmid) ......................................................................................... 21

Slika 11: SICKov LMS 100 (Izvor: sick.com) ......................................................................... 22 Slika 12: Dva modela Point Grey Bumblebee serije (Izvor: ptgrey.com)................................ 23 Slika 13: Microsoft Kinect, uređaj namijenjen prvenstveno za korištenje u industriji video

igara koji je našao širu primjenu (Izvor: Wikimedia commons) .............................................. 23 Slika 14: Octree struktura podataka (Izvor: Wikimedia.org, autor WhiteTimberwolf

licencirano pod CC-by-SA 3.0) ................................................................................................ 29 Slika 15: Prikaz vagane metode dobitka informacije (Izvor: Shade, 2011). ............................ 33

Slika 16: Početni ekran V-REP alata ........................................................................................ 36 Slika 17: Kvadrikopter dodan na scenu sa simulacijom čestica zraka ispod kvadrikoptera. ... 36 Slika 18: V-REP projekt razvrstavanja predmeta po košarama (Izvor: ulgrobotics.github.io) 37 Slika 19: Model s više agenata u međusobnom djelovanju (Izvor: entorama.com)................. 38

Slika 20: AMP model primjera – Epidemija (Izvor: Eclipse.org) ............................................ 39 Slika 21: AXF izgled modela epidemije u AMP-u (Izvor: Eclipse.org) .................................. 40 Slika 22: Izgled podmornice u simulatoru. .............................................................................. 44 Slika 23: Dijagram klasa agenata ............................................................................................. 56 Slika 24: Prikaz osnovnih kretnji i rotacija na simulatorovom modelu podmornice ............... 57

Slika 25: Kretanje dolje i naprijed pomoću vrijednosti na Bézierovoj krivulji........................ 57 Slika 26: Dijagram klasa ponašanja agenata ............................................................................ 58 Slika 27: Grafički prikaz sustava namjera (intent) ................................................................... 60 Slika 28: Izgled simulirane okoline s dva agenta-podmornice ................................................ 61 Slika 29: Nekoliko agenata podmornica vidljivi u sceni simulatora ........................................ 61

Slika 30: "Agent View", pogled iz perspektive agenta u šest osnovnih smjerova ................... 62 Slika 31: Odabir putanje kod backtrackinga u algoritmu odabira akcije ................................. 64

Slika 32: Bolja organizacija GoalTree strukture na sučelje (odnosno apstraktnu klasu) i

implementaciju ......................................................................................................................... 65

Page 75: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

71

9. Popis isječaka koda

Isječak koda 1: Three.js jednostavan primjer ........................................................................... 47 Isječak koda 2: Tween.js jednostavan primjer ......................................................................... 48 Isječak koda 3: Hypertimer s vremenskim pomakom događaja .............................................. 50 Isječak koda 4: Primjer opisnika scenarija ............................................................................... 52 Isječak koda 5: Dizajn jednog sloja scene ................................................................................ 53

Page 76: DIPLOMSKI RAD - bib.irb.hr · razvoja agenata. Umjetna inteligencija načelno ne mora imati značajke agenata. Sva navedena područja su bliska i posuđuju koncepte iz drugih disciplina

72

10. Prilozi

10.1. Resursi

Cijela aplikacija opisana u ovom radu dostupna je na web mjestu:

http://arka.foi.hr/~marrukavi/dipl

Zrcalno web mjesto:

http://shinyshell.net/foi/dipl

Izvorni kod je dostupan na: https://bitbucket.org/vipera/diplomski