33
Zagreb, lipanj 2009. SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 956 AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ OKOLINI Lovro Paić-Antunović

AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

  • Upload
    letruc

  • View
    264

  • Download
    2

Embed Size (px)

Citation preview

Page 1: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

Zagreb, lipanj 2009.

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

ZAVRŠNI RAD br. 956

AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ OKOLINI

Lovro Paić-Antunović

Page 2: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

ii

Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog

inteligentnog upravljanja u simuliranoj okolini. Proučiti metodologije strojnog učenja

primijenjene na dotični problem. Ostvariti programski sustav za rješavanje problema

automatskog upravljanja uz pomoć genetskog programiranja. U sustav ugraditi mogućnost

definiranja proizvoljne simulacijske okoline i prikaza puta. Eksperimentalno utvrditi

učinkovitost dobivenih rješenja. Radu priložiti izvorne tekstove programa i rezultate

istraživanja uz potrebna pojašnjenja i dokumentaciju. Citirati korištenu literaturu.

Page 3: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

iii

Page 4: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

iv

Sadržaj

1. Sažetak ............................................................................................................................... 1 2. Uvod ................................................................................................................................... 2 3. Genetsko programiranje ..................................................................................................... 3

3.1. Temelj genetskog programiranja – evolucija ............................................................. 3 3.2. Križanje, reprodukcija i mutacija u genetskom programiranju .................................. 3

3.2.1. Križanje .............................................................................................................. 4

3.2.2. Reprodukcija ...................................................................................................... 5

3.2.3. Mutacija .............................................................................................................. 5

3.3. Funkcija dobrote (fitness) ........................................................................................... 6 3.4. Tok izvođenja genetskog programa ........................................................................... 7

4. Programska izvedba ........................................................................................................... 8

4.1. Cilj .............................................................................................................................. 8 4.2. Korišteni alati ............................................................................................................. 9 4.3. Detalji implementacije ............................................................................................... 9

4.3.1. Struktura genotipa .............................................................................................. 9

4.3.2. Funkcije robota ................................................................................................. 10

4.3.3. Ostvarenje genetske paradigme ........................................................................ 11

4.3.4. Pregled podesivih parametara izvođenja .......................................................... 14

4.3.5. Primjer pokretanja i analiza rješenja ................................................................ 16

4.3.6. Utjecaj pojedinih funkcija na rješenje .............................................................. 22

4.3.7. Utjecaj odabranih parametara na izvođenje rješenja ........................................ 23

4.3.8. Vrijeme izvođenja ............................................................................................ 25

4.3.9. Nedostatci i prijedlozi za daljnji razvoj ............................................................ 26

5. Zaključak .......................................................................................................................... 28 Literatura .................................................................................................................................. 29

Page 5: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

1

1. Sažetak

U radu je objašnjena primjena genetskog programiranja na problem pronalaženja puta u

simuliranoj okolini. Rad se bazira na programskom ostvarenju simulacije kretanja robota za

proizvoljno nacrtanu sobu, odnosno niz prepreka. Programsko ostvarenje bazira se na

„roulette wheel“ selekciji uz podesive parametre izvođenja algoritma. Korišteni genetski

operatori su križanje odnosno „crossover“, te mutacija i reprodukcija. Prvo će biti objašnjena

teorijska pozadina genetskog programiranja općenito, a zatim detaljna analiza izvedbe i

rezultata implementiranog rješenja koja će sadržavati analizu utjecaja parametara algoritma na

pronalaženje rješenja, poznate probleme pri izvođenju, te par primjera izvođenja programa za

zanimljive slučajeve.

Page 6: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

2

2. Uvod

Automatsko snalaženje u prostoru veliki je problem današnjice. Kroz povijest su ljudi

imali ideju stvaranja autonomnih vozila sposobnih za vrlo široku paletu problema, krenuvši

od autonomnih robota sposobnih za otkrivanje mina, pilotskih sustava sposobnih za potpunu

kontrolu leta i povećanu sigurnost, pa sve do samostalnih istraživača i ujedno, malih

pokretnih laboratorija sposobnih za istraživanje površine raznih planeta ili cestovnih vozila

sposobnih za izbjegavanje prepreka i poštivanja prometnih znakova. Istraživanja na ovom

području uvelike su doprinijela povećanju sigurnosti u raznim aspektima svakodnevnog

života. Potpuno autonomni robot u stvarnom svijetu ima mogućnosti primanja informacija iz

okoline, operiranja na duže periode bez ljudske pomoći, samostalnog putovanja od točke A do

točke B, izbjegavanja situacija koje su štetne za ljude, okolinu, ili njega samoga te

detektiranje važnih objekata poput ljudi ili vozila. Autonomni robota također mogu sadržavati

mogućnost samostalnog učenja poput npr. učenja novih sposobnosti (bez vanjskog utjecaja

čovjeka), prilagođavanja strategija ovisno o okolini te daljnjeg adaptiranja na istu [1].

Genetsko programiranje jedno je od oruđa pomoću kojih je moguće napasti ovaj problem.

Ono se bazira na procesu evolucije iz prirode, odnosno razvoju koji garantira razmnožavanje

sposobnijih jedinki u populaciji, i samim tim daljnje očuvanje uspješnog genetskog

materijala. Rekombinacijom genetskog materijala dvaju uspješnih roditelja postoji

vjerojatnost da će dijete biti još uspješnije i sposobnije, što daljnjim nastavkom procesa,

garantira razvoj prema sve boljim i boljim rješenjima. Prema tome, rezultat genetskog

programiranja je program koji najuspješnije rješava dani problem.

U ovom radu je objašnjena primjena genetskog programiranja na problem snalaženja u

prostoru. Prvo su detaljnije objašnjeni koncepti genetskog programiranja koji omogućavaju

ovakav pristup, a zatim je naglasak stavljen na programsko ostvarenje koje omogućava

simulaciju za proizvoljno definiran oblik i broj prepreka te podešavanje važnih parametara

koji oblikuju tok pronalaženja najboljeg rješenja.

Page 7: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

3

3. Genetsko programiranje

U ovom poglavlju objašnjeni su osnovni principi genetskog programiranja. U prvom

potpoglavlju objašnjen je temelj ideje genetskog programiranja koji je princip evolucije u

prirodi. U drugom potpoglavlju su objašnjeni osnovni operatori genetskog programiranja:

reprodukcija, križanje („crossover“), te mutacija. U trećem potpoglavlju je objašnjena

funkcija dobrote („fitness“). U konačnom četvrtom potpoglavlju, povezani su svi prethodni

dijelovi u smislenu cjelinu te je prikazan osnovni algoritam izvođenja genetskog programa.

3.1. Temelj genetskog programiranja – evolucija

Genetsko programiranje temelji se na principu evolucije iz prirode. Evolucija je proces

promjene genetskog materijala populacije organizama iz generacije u generaciju[2]. Proces

evolucije se temelji na prenošenju genetskog materijala najsposobnijih jedinki iz populacije.

Ovaj proces se zapravo obavlja automatski, jer sposobnije jedinke imaju veću šansu preživjeti

i naći partnera za reprodukciju. Spolnom reprodukcijom dvaju uspješnih roditelja nastaje

dijete čiji genetski kod odgovara kombinaciji genetskih kodova njegovih roditelja. Taj proces

se zove križanje. Genetski kod tako dobivenog djeteta uglavnom također predstavlja vrlo

sposobnu jedinku, makar to ne mora nužno biti slučaj. Drugi proces koji se primjećuje u

evoluciji je mutacija. Mutacijom nazivamo pojavu kojom unutar jedne jedinke dođe do

promjene genetskog materijala uzrokovane radijacijom, virusima, brojnim drugim vanjskim

faktorima, te nekim replikacijama gena. Mutacije su zaslužne za genetsku varijaciju, međutim

istraživanja pokazuju (konkretno, istraživanje muhe „Drosophila melanogaster“[2]) da je oko

70% mutacija zapravo štetno i rezultira lošijim genetskim materijalom, dok ostali slučajevi ili

uopće ne utječu, ili blago poboljšavaju kvalitetu genetskog materijala.

3.2. Križanje, reprodukcija i mutacija u genetskom programiranju

Kao što je već rečeno u poglavlju 1.1., glavni nositelji evolucije su procesi spolne

reprodukcije te mutacija. U ovom poglavlju je objašnjeno kako se ti procesi simuliraju

pomoću računala, te je objašnjena razlika između reprodukcije u prirodi i reprodukcije u

Page 8: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

4

genetskom programiranju. Postoje različiti načini reprezentacije genotipa u računalu od kojih

je najučestaliji binarni zapis u kojem svaki bit predstavlja jedan kromosom. Taj je način

korišten za objašnjavanje procesa evolucije u ovom poglavlju, međutim treba naglasiti da se u

ostvarenoj programskoj implementaciji koristi drugačiji zapis.

3.2.1. Križanje

Kao što je već rečeno u poglavlju 1.1., križanje je proces kombiniranja dvaju

roditeljskih genotipa s ciljem stvaranja novog genotipa djeteta. Križanjem u biti simuliramo

spolnu reprodukciju iz biologije. U genetskom programiranju postoji više vrsta križanja, od

kojih su najpoznatije križanje u jednoj i križanje u više točaka.

Križanje u jednoj točki funkcionira na način da se prvo odabere proizvoljan broj

između 1 i broja kromosoma onog roditelja koji ima kraći genetski zapis. U primjeru na slici

3.1 to je drugi roditelj. Zatim se u prvo dijete prepisuju kromosomi prvog roditelja do točke

križanja, te drugog roditelja od točke križanja do kraja njegovog genetskog zapisa. Za drugo

dijete radi se obrnuti postupak, prvo se do točke križanja prepisuju kromosomi drugog

roditelja, a zatim od te točke do kraja genetskog zapisa, kromosomi prvog roditelja.

Slika 3.1 Križanje u jednoj točki

Page 9: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

5

Križanje u više točaka slično je križanju u jednoj točki i funkcionira na način da se prvo

odabere više proizvoljnih točaka, a zatim se križanje obavlja na način da se do prve točke

križanja prepisuju kromosomi prvog roditelja, potom od prve točke do druge točke

kromosomi drugog roditelja, te od druge točke do treće točke opet kromosomi prvog roditelja

itd.

Na slici 3.2 pokazan je primjer križanja u 2 točke.

Slika 3.2 Križanje u dvije točke

3.2.2. Reprodukcija

Za razliku od reprodukcije u prirodi, reprodukcija u genetskom programiranju obilježena je

izborom samo jednog roditelja ovisno o njegovoj funkciji dobrote. Tako izabrana jedinka

prepisuje se u novu generaciju. U literaturi se često nalazi naziv „aseksualna reprodukcija“.

Ovaj proces osigurava prelazak najboljih jedinki u sljedeću generaciju te time poboljšava

postupak nalaženja rješenja.

3.2.3. Mutacija

Mutacija u genetskom programiranju se obavlja na način da se u malom broju slučajeva

dogodi da nasumično određeni kromosom mutira, i postane neki drugi. Slika 3.3 pokazuje

primjer mutacije.

Page 10: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

6

Slika 3.3 Mutacija jednog kromosoma

3.3. Funkcija dobrote (fitness)

U stvarnom životu teško je odrediti funkciju po kojoj bismo mjerili koliko je stvarno netko

uspješan, zato što različiti ljudi imaju različite ciljeve u životu. Nije moguće reći da postoji

univerzalno pravilo po kojem se rangiraju ljudi, ali kod genetskog programiranja situacija je

drugačija, zato što je poznato točno što se želi postići. Točno i precizno definirana funkcija

dobrote najbitniji je parametar svakog genetskog algoritma. Tako primjerice, ako je cilj

napraviti robota koji posjećuje svaki dio određene sobe, podijelit ćemo sobu na određeni broj

polja i funkciju fitnesa definirati kao broj posječenih polja. Ako je cilj pak napraviti robota

koji skače u vis, funkcija dobrote biti će visina skoka. Dodjeljivanje točnog iznosa funkcije

dobrote za svaku jedinku ključan je proces u genetskom programiranju jer se za daljnju

reprodukciju, mutaciju i križanja odabiru jedinke na način da bolje jedinke imaju veću šansu

biti odabrane, što je temelj evolucije. Bez funkcije dobrote, jedinke bi bile nasumično

izabrane za reprodukciju, mutaciju i križanja čime ne bi bio postignut cilj približavanja

boljem rješenju.

Page 11: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

7

3.4. Tok izvođenja genetskog programa

Prvo je potrebno generirati inicijalnu generaciju. To se radi na način da se nasumično

generiraju genotipovi svih jedinki u generaciji. Za neke jednostavnije primjere ili dovoljno

velike populacije moguće je da će već nulta generacija imati dobro rješenje, pa je potrebno

ispitati je li zadovoljen uvjet prekidanja programa. Uvjet prekidanja programa je obično

unaprijed definiran broj generacija izvođenja ili zadovoljeno određeno ponašanje jedinki,

odnosno uspješnost pronađenog rješenja. Često se implementiraju oba mehanizma. Zatim je

potrebno za svaku jedinku u inicijalnoj generaciji odrediti koliko je ona dobra i pridijeliti joj

tu vrijednost. To se radi uz pomoć funkcije dobrote opisane u poglavlju 1.3. Nakon toga se

ulazi u petlju u kojoj se ostaje sve dok se ne generira broj organizama jednak inicijalnoj

populaciji. U petlji se obavlja sljedeći niz naredbi: prvo se generira nasumični broj, zatim se

u ovisnosti o tom broju izabire operator koji će se koristiti. Ako se izabere reprodukcija, bira

se jedna jedinka i prenosi u novu generaciju. Operator križanja funkcionira na način objašnjen

u poglavlju 1.2.1. Bitno je napomenuti da izbor jedinki ovisi o njihovoj uspješnosti te da bolje

jedinke imaju veću šansu biti odabrane. Ovaj proces se ponavlja sve dok se ne postigne uvjet

izlaza iz programa, kada se ispisuje najbolje dobiveno rješenje iz svih generacija.

Indeks generacije:=0;

Kreiraj nasumičnu inicijalnu populaciju;

Ponavljaj dok nije zadovoljen uvjet za prekidanje:

Evaluiraj kvalitetu svake jedinke u populaciji;

i:=0;

Ponavljaj dok god je broj i manji od inicijalne populacije:

Izaberi genetski operator u ovisnosti o vjerojatnostima pojavljivanja;

Izaberi jednog ili dva roditelja ovisno o izabranom genetskom operatoru;

Stvori novu jedinku ili jedinke ovisno o izabranom genetskom operatoru;

Dodaj kreiranu djecu u novu populaciju;

Indeks generacije++;

Prikaži najbolju pronađenu jedinku;

Kraj;

Page 12: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

8

4. Programska izvedba

U ovom poglavlju detaljno je objašnjena programska izvedba završnog rada te provedena

analiza dobivenog rješenja. Prvo potpoglavlje opisuje zadani cilj programske izvedbe. Drugo

potpoglavlje ukratko govori koje su tehnologije i alati korišteni pri izradi programske izvedbe.

Treće potpoglavlje opisuje kako je implementirano rješenje, koje su funkcije korištene za

kretanje robota i implementaciju genetskog algoritma, poznate informacije robotu, skeniranje

itd.... Četvrto potpoglavlje daje pregled podesivih parametara pri pokretanju programa. Peto

potpoglavlje prikazuje i analizira primjer pokretanja programa.

4.1. Cilj

Cilj programske izvedbe je pružiti okolinu za testiranje rješenja genetskog

programiranja na problem snalaženja u prostoru. Naglasak je na mogućnosti korisnika da sam

podesi sve relevantne parametre pokretanja postupka pronalaska rješenja, kao i na mogućnost

zadavanja testnog primjera, odnosno, konkretno, crtanja prepreka, koridora itd. za koji

program mora naći rješenje. Cilj simuliranog robota je naći najudaljeniju točku od polazne u

što manje koraka bez zabijanja u okolne prepreke. Udaljenost točaka definirana je kao zračna

udaljenost između istih. Odnos važnosti udaljenosti i broja koraka moguće je zadati pomoću

parametra „Air distance coefficient“ (detaljno objašnjeno u potpoglavlju 2.3). Na slici 4.1

moguće je vidjeti jedan primjer izvođenja programa kako bi se lakše razumio njegov

Page 13: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

9

cilj.

Slika 4.1 Primjer izvođenja programa za ilustraciju cilja

4.2. Korišteni alati

Za izradu programske izvedbe korišten je Microsoftov C# programski jezik te „Visual

Studio Team System 2008 Team Suite edition“ razvojna okolina. Za izradu korisničkog

sučelja korištena je WPF (Windows Presentation Foundation) tehnologija. Za pokretanje

programa potrebno je imati instaliran Microsoftov .net framework verziju 3.5.

4.3. Detalji implementacije

4.3.1. Struktura genotipa

Korišteni način zapisa genotipa u programskoj izvedbi jest linearni promjenjive

duljine. To znači da su funkcije slijedno zapisane jedna iza druge te da različite jedinke mogu

sadržavati različit broj funkcija. Važno je napomenuti da slijed zapisa funkcija nije nužno i

Page 14: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

10

slijed izvođenja istih zbog funkcija koje mijenjaju tok izvođenja danog programa (za više

detalja pogledati poglavlje 4.3.2).

4.3.2. Funkcije robota

Robot prema uzoru na robota iz knjige Johna R. Koze [3] ima 6 osnovnih funkcija

pomoću kojih ostvaruje svoje kretanje. To su:

• MF („Move Forward“) – ova funkcija pomiče robota za jedan korak u smjeru prema

kojem je robot trenutno pozicioniran. Veličina koraka određena je parametrom

„Forward step“ koji se može podesiti u korisničkom sučelju. Funkcija je programski

ostvarena na način da se traži presjecište između linije smjera gledanja robota i

kružnice radijusa „Forward step“. „Forward step“ je zapravo broj piksela koje robot

pređe pri jednom koraku.

• MB („Move Backward“) – funkcija koja pomiče robota za jedan korak unazad,

odnosno u direktno suprotnom smjeru od smjera trenutne orijentacije robota. Veličina

koraka određena je parametrom („Backward step“). „Move Backward“ je ostvaren

istom funkcijom kao i „Move Forward“ s jedinom razlikom da umjesto točke

presjecišta koja je ispred njega, uzima točku presjecišta iza njega.

• TL („Turn Left“) – funkcija koja rotira robota oko njegove osi za „Turn degrees“

stupnjeva u smjeru obrnutom od kazaljke na satu.

• TR („Turn Right“) – funkcija koja rotira robota oko njegove osi za „Turn degrees“

stupnjeva u smjeru kazaljke na satu.

• AlignAlongLongestDistance – funkcija koja prvo skenira okolinu uz pomoć svih

senzora na robotu, čiji se broj može podesiti modificiranjem parametra „Number of

sensors“, te zatim rotira robota tako da mu je nova orijentacija u smjeru te najdalje

udaljenosti.

• IfObstacleInFront – funkcija koja skenira prostor neposredno ispred robota te, ovisno

o tome da li postoji prepreka ili ne, obavlja sljedeće funkcije. Izraz se evaluira na

način da ako je izmjerena udaljenost prednjeg senzora manja od veličine koraka

unaprijed, onda funkcija evaluira „true“ a u suprotnom evaluira „false“. Kada se izraz

evaluira kao „true“, onda se obavlja neposredno sljedeća funkcija u genotipu i

Page 15: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

11

preskače funkcija koja slijedi neposredno iza nje, dok ako se izraz evaluira „false“,

preskače se neposredno sljedeća funkcija i obavlja sljedeća iza nje.

4.3.3. Ostvarenje genetske paradigme

4.3.3.1 Stvaranje početne populacije

Nakon zadavanja parametara pokretanja programa, te crtanja sobe unutar koje se robot

kreće, program kreće sa kreiranjem inicijalne generacije od „Population size“ broja programa.

Generiranje funkcija ovisi o parametrima vjerojatnosti njihova generiranja. Tako npr. ako se

podesi da je vjerojatnost generiranja „Probability of MF“ 1, a vjerojatnost generiranja svih

drugih funkcija 0, program će generirati „Population size“ programa sa proizvoljno

generiranim brojem, između brojeva „Minimum functions“ i „Maximum functions“, MF

funkcija. Takvo pokretanje naravno ne bi imalo smisla. Valja napomenuti da se za

vjerojatnost pojavljivanja određene funkcije može unesti bilo koji cijeli broj, te da zbroj

vjerojatnosti pojavljivanja svih funkcija ne mora iznositi 100. Izbor funkcije temelji se na

udjelu respektivne funkcije u odnosu na sumu vjerojatnosti svih pojavljivanja.

4.3.3.2 Funkcija dobrote

Nakon generiranja pojedine jedinke, određuje joj se funkcija dobrote na način da se

pokrene simulacija određene jedinke, te se nakon izvršavanja programa definiranog njenim

genotipom, ukoliko nije došlo do sudara, računa zračna udaljenost početne i konačne točke

pomnožena sa koeficijentom „air distance coefficient“ od čega se oduzima broj funkcija

potrebnih kako bi se došlo do rješenja. Oduzimanje broja funkcija rješenja nužno je za

pronalaženje rješenja koje simulira kretanje robota u što manjem broju koraka. Pomoću „air

distance coefficient“ parametra u biti je moguće regulirati važnost pronalaska što dalje točke

u odnosu na broj koraka. Što je on veći, bit će važnije pronaći put do dalje točke, dok što je on

manji, bit će važnije pronaći rješenje u malom broju koraka.

4.3.3.3 Izvođenje daljnjih generacija

Tim postupkom završava generiranje inicijalne generacije. Ono se stavlja u generičku

listu svih generacija, posebno se bilježi najbolje rješenje iz generacije (radi ispisa statistike),

te se kreće sa kreiranjem prve generacije potomaka. Proizvoljno odabrani broj određuje prema

parametrima „Reproduction probability“, „Crossover probability“ i „Mutation probability“,

operatore reprodukcije, križanja ili mutacije respektivno. Za izbor jedinki koje ulaze u ove

Page 16: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

12

procese, koristi se „roulette wheel“ selekcija. To je selekcija jednostavnog proporcionalnog

odabira, gdje je vjerojatnost izbora svake jedinke točno jednaka njenoj dobroti podijeljenoj sa

zbrojem svih fitnesa u generaciji kao što je prikazano na slici 4.2.

Slika 4.2 Vjerojatnosti izbora za 5 različitih jedinki kojima funkcije dobrote redom iznose 1-15,2-45,

3-25, 4-10 te 5-80

Glavni nedostatak ovakve selekcije jest tendencija prenošenja puno najboljih jedinki u

sljedeću generaciju, čime se narušava raznolikost rješenja, što često uzrokuje zaglavljivanje u

lokalnom maksimumu. Ovaj se problem, u skladu sa očekivanjima, pojavljuje u rezultatima

izvođenja programa kao što je prikazano slikom 4.3.

Page 17: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

13

Slika 4.3 Program koji je zaglavio u lokalnom maksimumu

Na slici 4.4 dan je primjer križanja dvaju roditelja u programu. Implementirano je križanje u

jednoj točki prijeloma.

Slika 4.4 Primjer križanja u implementiranom rješenju

Primjer mutacije u programu pokazan je na slici 4.5.

Slika 4.5 primjer mutacije u implementiranom rješenju

Tim postupcima dobivenim jedinkama dodjeljuje se iznos uspješnosti te se one umeću u novu

generaciju. Ovaj postupak se ponavlja sve dok se ne kreira broj novih jedinki jednak broju

Page 18: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

14

jedinki u inicijalnoj generaciji, odnosno jednak parametru „population size“. Nakon što je

završen proces kreiranja prve generacije potomaka, ovaj proces se ponavlja sve dok se ne

kreira „Number of generations“ generacija.

4.3.3.4 Skeniranje

Robot sadrži „Num of sensors“ senzora pomoću kojih skenira okolinu. Svaki senzor

funkcionira na način da pošalje pravocrtnu zraku koja mjeri udaljenost do prvog objekta kojeg

pogodi. U programu je to implementirano na način da se za svaki zid sječe li se sa tom

zrakom, te se mjeri udaljenost točke presjecišta tih dviju linija od robota. Na kraju se vraća

samo najkraća udaljenost, kako bismo simulirali senzor koji nema mogućnost skeniranja kroz

zidove. Skeniranje je ključan proces u funkcijama „IfObstacleInFront“ i

„AlignAlongLongestDistance“, jer se u odnosu na informaciju primljenu od senzora odlučuje

o idućem koraku.

4.3.4. Pregled podesivih parametara izvođenja

Tok programa ovisi o 20 podesivih parametara. Na slici 4.7 prikazan je izgled sučelja za

podešavanje parametara. Parametri i njihova značenja su redom:

• Population size – broj jedinki u jednoj generaciji.

• Number of generations – broj generaciji koje će se kreirati prije no što se završi

izvođenje programa.

• Air distance coefficient – koeficijent koji određuje omjer važnosti pronalaska što dalje

točke u odnosu na važnost pronalaska rješenja u što manjem broju funkcija. Što je

koeficijent veći, važnija je zračna udaljenost početne i konačne točke.

• Reproduction probability – vjerojatnost da će se kod izbora operatora pri generiranju

nove generacije izabrati reprodukcija.

• Crossover probability – vjerojatnost da će se kod izbora operatora pri generiranju

nove generacije izabrati križanje.

• Mutation probability – vjerojatnost da će se kod izbora operatora pri generiranju nove

generacije izabrati mutacija.

• Probability of MF – vjerojatnost izbora funkcije MF (Move Forward) pri generiranju

jedinki inicijalne generacije

Page 19: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

15

• Probability of MB – vjerojatnost izbora funkcije MB (Move Backward) pri

generiranju jedinki inicijalne generacije

• Probability of TL – vjerojatnost izbora funkcije TL (Turn Left) pri generiranju jedinki

inicijalne generacije

• Probability of TR – vjerojatnost izbora funkcije TR (Turn Right) pri generiranju

jedinki inicijalne generacije

• Probability of Align – vjerojatnost izbora funkcije AlignAlongLongestDistance pri

generiranju jedinki inicijalne generacije

• Prob. of obstacle scan – vjerojatnost izbora funkcije IfObstacleInFront pri generiranju

jedinki inicijalne generacije.

• Minimum functions – minimalan broj funkcija jednog genotipa

• Maximum functions – maksimalan broj funkcija jednog genotipa

• Number of sensors – broj senzora kojima robot percipira okolinu

• Forward step – veličina koraka unaprijed u pikselima

• Backward step –veličina koraka unazad u pikselima

• Turn degrees – kut zakretanja u stupnjevima kod funkcija TL i TR

• Current direction – smjer gledanja robota na početku, prije izvođenja programa. Radi

se zapravo o kutu u stupnjevima, gledano kao da je pogled desno kut od 0 stupnjeva,

prema vrhu prozora 90 stupnjeva, lijevo 180 stupnjeva, a prema dolje 270 stupnjeva.

Moguće je postaviti ovaj parametar na bilo koji broj između 0 i 360

• Radius of robot – veličina robota. Robot je definiran kao kružnica ovdje zadanog

radijusa mjerenog u pikselima.

Page 20: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

16

4.3.5. Primjer pokretanja i analiza rješenja

Za detaljnu analizu rješenja, uzet je primjer zadan na slici 4.6 koja također pokazuje i

najbolje pronađeno rješenje u generaciji 25.

Slika 4.6 Testni primjer za analizu, te najbolje rješenje pronađeno u 25. generaciji

Slika 4.7 pokazuje parametre korištene u ovom primjeru.

Slika 4.7 Parametri korišteni u ovom primjeru

Page 21: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

17

Najbolji program nulte generacije prikazan je na slici 4.8.

Slika 4.8 Najbolji program nulte generacije

Kretanje robota pokazuje da je došao dosta daleko, no onda se okrenuo i počeo kretati prema

nazad. Najbolji program nulte generacija postigao je fitnes 620,05. Uspio se udaljiti 339,03

piksela od inicijalne pozicije. Zanimljiva je statistika koja pokazuje da se od 1000 programa

nulte generacije, čak njih 983 zabilo u zid. To se dogodilo zato što je na početku robot bio

orijentiran prema zidu, a zadana je velika vjerojatnost generiranja funkcije MF u odnosu na

druge funkcije. Samo su 3 programa uspjela doći do 50% fitnesa programa iz 25. generacije,

dok je njih 8 došlo do 30%. Niti jedan program nije uspio zadovoljiti uvjet 70% fitnesa

najboljeg programa. Najbolji program u nultoj generaciji sastoji se od 58 funkcija. Suma

fitnesa u generaciji je 5610,10 što znači da je prosječan fitnes po jedinki jednak 5,61. Najbolji

program u nultoj generaciji definiran je sljedećim nizom funkcija:

AlignAlongLongestDistance MF IfObstacleInFront MF TR TL MF IfObstacleInFront TR TR

MF MF MF IfObstacleInFront AlignAlongLongestDistance MF MF IfObstacleInFront TL

MF IfObstacleInFront MF MB MF IfObstacleInFront MF MB IfObstacleInFront MF MF

IfObstacleInFront TL TL MF MF MF MF IfObstacleInFront MF MF MB IfObstacleInFront

Page 22: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

18

MF TL AlignAlongLongestDistance AlignAlongLongestDistance

AlignAlongLongestDistance IfObstacleInFront IfObstacleInFront MB MF IfObstacleInFront

MF MF MF MF IfObstacleInFront TL.

Izvođenje programa prve generacije prikazano je slikom 4.9.

Slika 4.9 Najbolji program prve generacije

Na slici 4.9 se vidi da je najbolji program već iz prve generacije uspio pronaći rješenje koje je

bolje od najboljeg rješenja u nultoj generaciji. Očigledno je da je rješenje bolje zato što se nije

krenuo vraćati prema mjestu odakle je krenuo. Najbolji program prve generacije uspio je

postići zračnu udaljenost od 449,68 piksela. To je napravio koristeći 84 funkcije te je ostvario

uspješnost iznosa 815,36. Suma svih fitnesa u prvoj generaciji je 1888824, što čini prosjek

fitnesa u generaciji jednakim 188,82. Ovakav nagli skok prosječnog fitnesa dogodio se zbog

vrlo malenog broja robota u prvoj generaciji koji su uspjeli uopće preživjeti. Slika 4.9 također

pokazuje problem najboljeg programa prve generacije, a taj je bespotrebno okretanje na 2

mjesta u sobi. Iz druge generacije 2 programa zadovoljavaju uvjet 70% kvalitete rješenja

najboljeg pronađenog programa iz generacije 25. Čak 119 programa zadovoljava uvjet 50%

kvalitete, njih 305 zadovoljava uvjet 30% kvalitete, a 556 programa rezultiralo je sudarom.

Page 23: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

19

Najbolji program prve generacije sastoji se od sljedećih funkcija: MF IfObstacleInFront MF

TR MB TL AlignAlongLongestDistance MF IfObstacleInFront MB MF MF TR MB MF

AlignAlongLongestDistance MF AlignAlongLongestDistance MF MF TL MB MF

IfObstacleInFront MF MB IfObstacleInFront AlignAlongLongestDistance MF MF MF

IfObstacleInFront MF TL IfObstacleInFront MF AlignAlongLongestDistance

IfObstacleInFront AlignAlongLongestDistance TL MB IfObstacleInFront MF MF

IfObstacleInFront MF MB IfObstacleInFront TL MB MB MF AlignAlongLongestDistance

TL IfObstacleInFront TR MB MF TL IfObstacleInFront MB TR IfObstacleInFront

AlignAlongLongestDistance MF MF MF AlignAlongLongestDistance MF TL TL MF TR

IfObstacleInFront MF AlignAlongLongestDistance TL TR TR AlignAlongLongestDistance

IfObstacleInFront MF MF MB.

Najbolji program četvrte generacije prikazan je slikom 4.10.

Slika 4.10 Najbolji program četvrte generacije

Statistika najboljeg rješenja četvrte generacije pokazuje da je program našao točku udaljenu

za 476,93 piksela, međutim, za razliku od prijašnjih rješenja, našao ju je u samo 58 funkcija

čime je postigao fitnes iznosa 895,86. Četvrta generacija već je dosta poboljšana u odnosu na

prijašnje generacije, što se najbolje vidi iz statistike koja pokazuje da je suma svih fitnesa u

populaciji jednaka 310192, što čini prosječan fitnes generacije jednakim 310,19. Također, za

razliku od prijašnjih generacija, u ovoj generaciji je čak 24 posto jedinki ostvarilo 70%

Page 24: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

20

kvalitete najboljeg pronađenog programa. Njih 287 ostvarilo je 50% kvalitete, 499 30%, a 437

programa rezultiralo je sudarom. Najbolji program četvrte generacije izgleda ovako:

MF IfObstacleInFront MF TR MB TL AlignAlongLongestDistance MF IfObstacleInFront

MB MF MF TR MB MF AlignAlongLongestDistance MF AlignAlongLongestDistance MF

MF TL MB MF IfObstacleInFront MF MB IfObstacleInFront AlignAlongLongestDistance

MF MF MF IfObstacleInFront MF TL IfObstacleInFront MF AlignAlongLongestDistance

MB MF MB MF IfObstacleInFront MF MF MF IfObstacleInFront TR TL MF TR MF

IfObstacleInFront TL MF MF IfObstacleInFront IfObstacleInFront TR.

Slika 4.11 Najbolji program pete generacije

Slikom 4.11 prikazan je najbolji program pete generacije. Kao što se vidi sa slike, program

pete generacije uspio je pronaći dosta bolje rješenje od programa četvrte generacije. To je

napravio na način da je i bolje krenuo i bolje završio od prethodne generacije. Postigao je

zračnu udaljenost od 543,64 piksela u samo 63 funkcije. Time si je osigurao fitnes iznosa

1024,28. Suma svih fitnesa programa pete generacije iznosi 364101,42, što znači da je

prosječan fitnes generacije jednak 364, 10. U ovoj generaciji se prvi put pojavljuje rješenje

koje je zadovoljilo uvjet 90% kvalitete najboljeg pronađenog programa. 39 programa

zadovoljilo je uvjet od 70%, njih 360 uvjet 50%, 577 programa uvjet od 30%, što znači da je

preostali broj od 364 programa rezultirao sudarom. Najbolji program pete generacije definiran

je sljedećim genotipom: AlignAlongLongestDistance MF IfObstacleInFront MF TR TL MF

Page 25: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

21

IfObstacleInFront TR TR MF MF MF IfObstacleInFront AlignAlongLongestDistance MF

MF IfObstacleInFront MF MF TL MB MF IfObstacleInFront MF MB IfObstacleInFront

AlignAlongLongestDistance MF MF MF MF IfObstacleInFront TR TR

AlignAlongLongestDistance MF MB MF MB AlignAlongLongestDistance MF MF MF

IfObstacleInFront MF MF IfObstacleInFront MF TL MF MF MB IfObstacleInFront MF TR

MF MF IfObstacleInFront MF AlignAlongLongestDistance TL AlignAlongLongestDistance.

U generaciji 6 još uvijek je najbolja jedinka ova nađena u prethodnoj generaciji koja se

uspjela reproducirati bez promjene genotipa, međutim već se u sedmoj generaciji to rješenje

izgubi što rezultira smanjenjem fitnesa najboljeg programa generacije kroz idućih par

generacija, ali se i dalje bilježi rast prosječnog fitnesa po jedinkama, te smanjuje broj

programa koji rezultiraju sudarom. Iduće zanimljivo rješenje pojavljuje se u 18. generaciji i

opisano je slikom 4.12.

Slika 4.12 Najbolji program 18. generacije

Program osamnaeste generacije postigao je zračnu udaljenost od 556,87 piksela, i to je

napravio u odličnih 58 funkcija čime je zaslužio fitnes iznosa 1055,75. Međutim važniji

rezultat analize razlika ove generacije i prije analiziranih generacija je u prosječnom fitnesu

generacije koja je dvostruko veća u odnosu na petu generaciju i iznosi 719,97. Također je

zanimljiv podatak da u 18. generaciji 8 jedinki zadovoljava uvjet 90% uspješnosti najboljeg

rješenja, 370 jedinki zadovoljava uvjet 70%, čak 903 jedinke zadovoljavaju uvjet 50%, dok ih

Page 26: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

22

956 zadovoljava uvjet 30%. Broj programa koji rezultiraju sudarom u osamnaestoj generaciji

smanjen je na vrlo malenih 44.

Na slici 4.6 nalazi se najbolji pronađeni program u svim generacijama. Taj program

pronađen je u 25. generaciji. Postigao je zračnu udaljenost iznosa 596,64, te je to napravio

koristeći 67 funkcija. Time je pridobio fitnes iznosa 1126,28. Također je zanimljiva i

statistika drugih jedinki 25. generacije. Naime, 25. generacija kolektivno je zaradila fitnes od

719777, što čini prosječan fitnes u generaciji 719,77. 39 jedinki 25. generacije zadovoljilo je

uvjet 90% najboljeg rješenja, njih 435 zadovoljilo je uvjet 70% rješenja, 881 je zadovoljila

uvjet 50% rješenja dok je 913 jedinki zadovoljilo 30% rješenja. Ono što je zanimljivo je da je

u 25. generaciji čak 84 izvođenja programa rezultiralo sudarom. Genotip najboljeg

pronađenog programa u ovom primjeru prikazan je sljedećim funkcijama:

AlignAlongLongestDistance MF IfObstacleInFront MF TR TL MF IfObstacleInFront TR TR

MF MF MF IfObstacleInFront AlignAlongLongestDistance MF MF IfObstacleInFront TL

MF IfObstacleInFront MF MB MF IfObstacleInFront MF MB IfObstacleInFront MF MF

IfObstacleInFront TL TL MF MF MF TL AlignAlongLongestDistance MF

AlignAlongLongestDistance AlignAlongLongestDistance MF MF MF IfObstacleInFront MF

MF IfObstacleInFront AlignAlongLongestDistance MF IfObstacleInFront MF TR TL MF TR

AlignAlongLongestDistance AlignAlongLongestDistance TL IfObstacleInFront TR MF MF

TL MF TL IfObstacleInFront.

Najveći prosječni fitnes ima zadnja odnosno 35. generacija, i on iznosi 787,85.

4.3.6. Utjecaj pojedinih funkcija na rješenje

U slučaju podešavanja opcija na način da je nemoguće generirati funkciju

IfObstacleInFront dobiveni genetski program bi degradirao u genetski algoritam. To bi se

dogodilo zato što ne bi postojala opcija upravljanja tokom izvršavanja pojedinih kromosoma,

odnosno cijeli genotip određene jedinke bi se izvršio slijedno. Genetski algoritam i dalje

uspijeva pronaći dovoljno dobro rješenje, ali gubi se mogućnost ponovne iskoristivosti

programa za drugačije zadane prepreke. Odabir vjerojatnosti izbora funkcija uvelike utječe na

rješenje, ali samo u nekim ekstremnim slučajevima. Na primjer, ako u potpunosti maknemo

mogućnost generiranja funkcije MoveForward, robot će biti prisiljen gibati se unazad kao što

je prikazano na slici 4.13.

Page 27: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

23

Slika 4.13 Robot bez mogućnosti kretanja unaprijed

4.3.7. Utjecaj odabranih parametara na izvođenje rješenja

4.3.7.1 Veličina populacije

Kao što je već objašnjeno u poglavlju 4.3.4, parametar Population size definira broj

jedinki unutar jedne generacije što direktno znači i veći diverzitet početne generacije. To je

parametar koji u danoj implementaciji najviše utječe na kvalitetu dobivenog rješenja. Dio

razloga zašto je to tako leži i u izboru selekcijskog algoritma. Budući da selekcija „kotačem

ruleta“ ima problema sa brzim uništavanjem diverziteta, početni veliki broj jedinki ipak

osigurava veći broj proučenih mogućih rješenja, te sporiju degradaciju diverziteta. Na slici

4.14 pokazana su rješenja za isti problem, sa razlikom parametra Population size. Na lijevoj

strani slike je prikazano pokretanje sa veličinom populacije 200, a na desnoj slici sa veličinom

populacije 2000.

Page 28: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

24

Slika 4.14 Usporedni test za veličine populacija 200 i 2000

Iz primjera je očigledno da je najbolje rješenje pri pokretanju s populacijom od 2000 jedinki

rezultiralo pronalaskom bolje, odnosno udaljenije točke te da mu je za to bio potreban manji

broj funkcija.

4.3.7.2 „Air distance coefficient“

Air distance coefficient definira važnost odnosa pronalaska što udaljenije točke i

pronalaska rješenja u što manje koraka. Ovaj parametar uvelike utječe na izgled rješenja što je

najbolje vidjeti na slici 4.15 na kojoj se vidi paralelna usporedba pronalaska rješenja za faktor

10 na lijevoj strani slike i za faktor 0,2 na desnoj strani slike.

Slika 4.15 Paralelna usporedba utjecaja faktora Air distance coefficient na izgled rješenja

Program sa Air distance coefficient faktorom jednakim 10, došao je do točke udaljene

632,88 piksela u odnosu na početnu točku, međutim, pri pronalasku tog rješenja iskoristio je

ukupno 78 funkcija. Prosjek udaljenosti po funkciji prema tome iznosi 632,88/78=8,11

Page 29: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

25

piksela po funkciji. Program s koeficijentom jednakim 0.2, došao je do točke udaljenje 372,18

piksela, no za to je iskoristio samo 32 funkcije, što čini prosjek udaljenosti po funkciji

jednakim 372,18/32=11,63 piksela po funkciji.

4.3.7.3 Broj generacija

Makar je moguće da se najbolje rješenje nađe već u nultoj generaciji, to najčešće nije

slučaj, i istraživanja pokazuju da pokretanje što većeg broja generacija rezultira pronalaskom

boljih rješenja. Jedan takav usporedni test prikazan je na slici 4.16. Ona pokazuje usporedbu

rješenja pronađenog u 25 generacija (na lijevoj strani slike) s rješenjem pronađenim u 2

generacije (na desnoj strani slike).

Slika 4.16 Usporedba utjecaja broja generacija na kvalitetu rješenja

Program pronađen u 2 generacije dostigao je točku udaljenu 495,47 piksela koristeći 53

funkcije. Čime je, uz Air distance coefficient faktor 3, postigao dobrotu jednaku 1433,41.

Program pronađen u 25 generacija, došao je do točke udaljene 628,21 piksela, koristeći samo

48 funkcija čime je postigao dobrotu jednaku 1836,65.

4.3.8. Vrijeme izvođenja

Vrijeme izvođenja programa uvelike ovisi o različitim faktorima koji oblikuju

izvođenje. Najvažniji faktori koji utječu na izvođenje su broj generacija (Number of

generations), veličina populacije (Population size), broj senzora (Number of sensors), te

prosječan broj funkcija po genotipu (Maximum functions – Minimum functions). Zbog

odabrane metode implementacije pri skeniranju okoline i detekcije sudara, broj nacrtanih

zidova također znatno utječe na vrijeme izvođenja. To se događa zato što se pri skeniranju

Page 30: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

26

okoline traži presjek svake zrake sa svakim zidom te zato što se koristi slična metoda za

detekciju kolizije. Ova metoda je izabrana kako bi bilo moguće dinamički, odnosno preko

sučelja, definirati parametar veličine koraka unaprijed (Forward step). Implementacija bi bila

drastično brža da je odabrana metoda koja se inače koristi u detekciji kolizije u 2D sustavima,

odnosno podjela cijelog ekrana na mrežu, te ispitivanje uvjeta da li u određenom trenutku,

robot i zid nastanjuju isti prostor. Takva implementacija bi nužno za sobom povlačila

nemogućnost definiranja parametra veličine koraka naprijed, jer se u jednom koraku ne bi

smjelo proći više mogućih pozicija između početne i krajnje točke, ili interpolaciju svih

pozicija između, što bi bilo znatno kompliciranije za implementirati.

Vrijeme izvođenja naravno ovisi i o računalo na kojem se izvodi. Računalo korišteno

za mjerenje vremena izvođenja prikazanog testnog slučaja sadrži Intel Centrino Duo T7200

procesor takta 2.0GHz te 2GB memorije. Za testni slučaj korištena je veličina populacije

1000, broj generacija 25, raspon broja funkcija od 50 do 100 te 9 senzora u sobi zadanoj sa 4

zida. Provedeno je 5 mjerenja. Rezultati se mogu vidjeti u tablici 4.1.

1. 11,25

2. 11,14

3. 10,95

4. 10,94

5. 9,98

Tablica 4.1 Vrijeme izvođenja programa (u sekundama)

Prosjek duljine izvođenja programa za zadane parametre iznosi 10,85 sekundi.

4.3.9. Nedostatci i prijedlozi za daljnji razvoj

Glavni nedostatak implementiranog rješenja jest nepotpuna iskoristivost pri korištenju

u drugačije zadanom prostoru. Makar bi se program izvođenjem malenog broja novih

generacija vrlo brzo prilagodio promjenama u okolini, zadatak uspješnog pronalaska rješenja

koje bi odgovaralo svim mogućim okolinama nije uspješno ostvaren. Za ostvarenje jednog

takvog sustava bila bi potrebna puno kompliciranija implementacija. Kao proces koji bi

mogao rezultirati takvim ponašanjem predlaže se promjena zapisa genotipa u zapis stablom,

drugačije definiranje funkcija, te jasnija podjela između funkcija korištenih za odabir toka

Page 31: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

27

programa i funkcija korištenih za kretanje robota. Također, za daljnji razvoj se predlaže

implementacija znatnog bržeg sistema detekcije kolizija i skeniranja senzorima, opisan u

poglavlju 4.3.8, te također uporaba naprednijih algoritama za definiranje selekcije roditelja i

za samu implementaciju te selekcije. Konkretno, predlaže se implementacija binarnog

pretraživana umjesto slijednog, te implementacija različitih algoritama izbora roditelja, a ne

samo izborom „kotača ruleta“. Ukoliko se stvarno uspije pronaći sistem koji ući pravila

primjenjiva na sve oblike prepreka predlaže se implementacija rješenja pogodna za pokretanje

preko Internet preglednika kako bi što veći broj ljudi sudjelovao u daljnjem razvoju njegove

inteligencije, prvenstveno zato što je provedenim kratkim istraživanjem na par sudionika

postavljena hipoteza da različiti ljudi definiraju dosta različitije prepreke od onih definiranih

samo jednom osobom u više pokretanja programa.

Page 32: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

28

5. Zaključak

Genetskim programiranjem dobivene su jedinke koje uspješno obavljaju zadani zadatak

snalaženja u prostoru. Svakom novom generacijom poboljšava se prosječna kvaliteta jedinki.

Uspješno je napravljeno simulacijsko okruženje za provjeru izvođenja rezultata genetskog

programiranja. Zaključeno je da bi se rješenje brzo prilagodilo manjim promjenama u okolini,

međutim za postizanje univerzalnog programa koji bi funkcionirao u svim mogućim

situacijama, bila bi potrebna puno kompleksnija implementacija. Ovoj implementaciji

problem predstavljaju lokalni maksimumi, što je bilo i očekivano, zbog izbora selekcijskog

algoritma „roulette wheel“. Izvođenje genetskog programa ne preporuča se za stvarnu izvedbu

robota zbog kompleksnosti izvođenja, odnosno zbog potrebnog vremena i računalnih resursa

za njegovu izvedbu te također zbog količine loših programa koji bi rezultirali oštećivanjem

robota prije nego li se nađe zadovoljavajući program. Genetsko programiranje uistinu

uspješno oponaša proces evolucije iz biologije u kreiranju sve uspješnijih generacija

programa.

Page 33: AUTOMATSKO UPRAVLJANJE U SIMULIRANOJ · PDF fileii Automatsko upravljanje u simuliranoj okolini. Opisati problematiku automatskog inteligentnog upravljanja u simuliranoj okolini. Proučiti

29

Literatura

[1] Wikipedia, the free encyclopedia, Unmanned ground vehicle – autonomus UGV, s Interneta, http://en.wikipedia.org/wiki/Unmanned_Ground_Vehicle, datum pristupa: 10. svibanj 2009.

[2] Wikipedia, the free encyclopedia, Evolution, s interneta, http://en.wikipedia.org/wiki/Evolution, datum pristupa: 13.svibanj 2009.

[3] Koza, J. R.: Genetic Programming – On the Programming of Computers by Means of Natural Selection, MIT Press, Massachusetts, 1992.

[4] Koza, J. R.: Genetic Programming II – Automatic Discovery of Reusable Programs, MIT Press, Massachusetts, 1994.

[5] Koza, J. R.: Genetic Programming III – Darwinian Invention and Problem Solving, MIT Press, Massachusetts, 1999.

[6] Koza, J. R , Genetic Programming flow chart, s interneta, http://www.genetic-programming.com/gpflowchart.html, datum pristupa: 25.svibanj 2009.