150 likes | 303 Views
Spuštanje moonlandera upotrebom genetskog programiranja. Krešimir Mišura Voditelj: doc. Dr. Sc. Domagoj Jakobović. EVOLUCIJA - 1859. Charles Darwin objavljuje knjigu “O podrijetlu vrsta posredstvom prirodne selekcije” - osnova teorije evolucije je prirodna selekcija
E N D
Spuštanje moonlandera upotrebom genetskog programiranja Krešimir Mišura Voditelj: doc. Dr. Sc. Domagoj Jakobović
EVOLUCIJA - 1859. Charles Darwin objavljuje knjigu “O podrijetlu vrsta posredstvom prirodne selekcije” - osnova teorije evolucije je prirodna selekcija - najbolje prilagođene jedinke uspjevaju preživjeti i imaju najveću vjerojatnost da svoj genetski materijal prenesu na sljedeću generaciju - tako se postiže da je sljedeća generacija “bolja” od prethodne GENETSKO PROGRAMIRANJE - genetsko programiranje se razlikuje od genetskih algoritama po tome što svaka jedinka ustvari predstavlja neki program - stvara se početna populacija jedinki i simulira se određen broj generacija. - u svakoj generaciji se odabiru jedinke koje najbolje rješavaju problem i njima se dopušta da prenesu svoj kod u daljnje generacije.
DOBROTA JEDINKE • želimo da jedinka riješi neki problem koji smo postavili. Što je jedinka bliže tom rješenju, smatrat ćemo ju boljom. Definira se funkcija koja svakoj jedinki pridružuje vrijednost koja označava njenu dobrotu REPREZENTACIJA JEDINKE - Jedinke ćemo zapisivati u obliku stabla. Čvor predstavlja neki operator, dok su podstabla njegovi operandi (argumenti). Npr x+2 bi izgledalo: + x 2
SELEKCIJA - u prirodi slabije jedinke obično umiru prije nego što dobiju priliku imati potomstvo. Taj proces oponašamo selekcijom u genetskom programiranju. Postoje mnoge vrste selekcije u GP-u, a u ovoj implementaciji ćemo koristiti turnirsku selekciju TURNIRSKA SELEKCIJA - slučajno odabiremo nekoliko jedinki te onoj sa najvećom dobrotom dopuštamo prijenos svojih gena u sljedeću generaciju.
KRIŽANJE - najčešće se koristi križanje podstabala. Između dva roditelja nasumično se izabere točka križanja u jednom i u drugom roditelju. Sada se kopira prvog roditelja i u kopiji zamijeni podstablo u točki križanja kopijom podstabla iz točke križanja drugog roditelja
MUTACIJA • Postoje mnoge vrste mutacije u genetskom programiranju, a u ovoj implementaciji ćemo koristiti standardnu mutaciju. • Standardna mutacija (subtree mutation) • -slučajno se izabire čvor u stablu jedinke i umjesto njega se stavlja podstablo sa nasumično generiranim čvorovima
OPIS PROBLEMA • Problem koji pokušavamo riješiti je spuštanje moonlandera na mjesec. • Letjelicu privlači mjesečeva gravitacija. Dodavanjem potiska moguće je odupirati se toj gravitaciji. Cilj je letjelicu što nježnije spustiti na površinu. • Rješenje, odnosno jedinka je funkcija koja za dano vrijeme i trenutačnu brzinu kao izlaz daje silu potiska • Koristimo genetsko programiranje da bi dobili funkciju koja što nježnije spušta letjelicu na površinu, odnosno tražimo takvu funkciju da brzina u trenutku kontakta sa podlogom bude minimalna
ZADANE KONSTANTE • letjelica se nalazi na 100 metara iznad površine mjeseca • masa letjelice iznosi 1000 kg • mjesečeva gravitacija je 1.6 m/s^2 • potisak koji daje silu od 1000 N u trajanju od 1 sekunde troši 1 litru goriva • količina goriva je ograničena na 30 litara • snaga potiska je ograničena na 100 000 N
PARAMETRI • koristi se turnirska selekcija • veličina turnira je 3 • uvijet za prekid simulacije je određen brojem generacija • dubina stabla početne populacije je 3-8 • simulacija se provodi 3 puta za sve kombinacije sljedećih parametara: • veličina populacije: 30 ili 200 jedinki • broj generacija: 10 ili 200 • vjerojatnost mutacije jedinke: 0.1 ili 0.6
m/s Vjer. mutacije Brojgeneracija Veličina popul.
REZULTATI • pregledom rezultata zaključujemo da 200 jedinki kroz dvjesto generacija daje najbolja rješenja no simulacija tada traje cca. 20 minuta. • rješenja vrlo slične kvalitete dobivamo već za 200 jedinki kroz 10 generacija, a takva simulacija traje tek nešto duže do minute. • za 30 jedinki kroz 200 generacija dobivamo nešto lošija rješenja i 2 do 3 puta dulje vrijeme izvođenja nego u slučaju 200 jedinki kroz 10 generacija. • simulacije sa 30 jedinki kroz 10 generacija traju svega 10-ak sekundi ali zato ipak daju nešto lošija rješenja.
REZULTATI - primjetno je da vjerojatnost mutacije ima veći utjecaj kod manjih populacija, i u tom slučaju dovodi do poboljšanja rezultata - tokom provedbi simulacija 3 puta je došlo do slučaja da je najbolja jedinka bila neobično velika i u sva tri slučaja je vjerojatnost mutacije bila 0.6, iz čega se izvodi zaključak da u ovom slučaju povećanje vjerojatnosti mutacije dovodi do napuhavanja.