Advertisement
fr1sk

Untitled

Mar 28th, 2017
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 34.22 KB | None | 0 0
  1. 1. =========================================================================
  2. problem pretrage deli se na stanja i akcije, moze se opisati grafom.
  3. cvorovi predstavljaju stanja
  4. grane predstavljaju akcije
  5.  
  6. graf moze biti usmeren ili neusmeren.
  7. slagalica neusmeren - iz nekog stanja A za koji postoji neka akcina kojom se moze stici do B, postoji i neka akcija iste cene koja iz B vodi u A.
  8. gradovi neusmeren - svakom cvoru pridruzen jedan grad
  9. sah usmeren - postoje potezi takvi da se iz A moze doci do B ali ne i obrnuto
  10.  
  11. pretrazivanjem, obilaskom grafa prostora stanja dobija se stablo pretrage.
  12. broj cvorova stabla pretrage moze biti besk i ako je prostor stanja konacan, zato sto se stanja u stablu pretrage mogu ponavljati
  13.  
  14. pathfinding: naci put u grafu od cvora A do cvora B tako da cena bude minimalna
  15. koristi se u google mapama, rutiranje u racunarskim mrezama, navigacija robota, dizajniranje cipova.
  16.  
  17. Da bi neki problem resavali kao problem pretrage, on treba ispuniti sledece:
  18. - razmatranje razlicitih stanja - za odlucivanje u datom trenutnu potrebno je znatisva raspoloziva stanja.
  19. - polazni stanje - stanje od koga krecemo
  20. - zavrsno stanje - problem je resen ako se dodje do zavrsnog stanja.
  21. * test cilja - provera da li je trenutno stanje, zavrsno.
  22. - skup akcija - niz akcija koje (grane) koje dovode do resavanja problema. Moze da bude isti u svakom stanju ili da se razlikuje od stanja do stanja, zavisi od problema koji resvamo
  23. - funkcija prelaska - preslikava par stanje-akcija u novo stanje. Ukoliko ona nije poznata, ne zna se u koje ce se stanje dospeti i odlucivanje je dosta otezano. Ukoliko nije poznata cesto se aproskimira na osnovu procesa koji se zasniva na analizi pokusaja i gresaka.
  24. - cena akcije - preslikava stanje-akcija u numericku vrednost
  25.  
  26. deca stanja, susedi stanja - stanja koja su dostupna iz nekog stanja
  27.  
  28. resenje problema - niz akcija koje vode od polaznog do zavrsnog stanja
  29. svako resenje ima svoju cenu - suma svih ceni akcija koje dovode do resenja
  30. optimalno resecnje - resenje sa minimalnom cenom
  31.  
  32. svojstva algoritama pretrage:
  33. - potpunost - svojstvno koje garantuje da ce alg naci neko resenje ako resenje uopste postoji. Nije uvek slucaj, u nekim teskom problemima u vecini slucanjeva pronalaze resenje. Bolje nego potpuni algoritmi, ali ne garantuju da ce resenje naci.
  34. - optimalnost - da ce resenje biti sa najmanoom cenom. Alg koji nemaju ovo svojstno nalaze blizu optimalno ali u znatno kracem vremenu.
  35. - vremenska slozenost - koliko ce vremena biti potrebnog. Razmatra se najgori i prosecni slucaj.
  36. - prostorna slozenost - koliko je prostora potrebno. Razmatra se najgori i prosecan slucaj.
  37.  
  38. informisana/neinformisana pretraga:
  39. dele se na osnovu dostupnosti informacija pretrage.
  40. na osnovu toga delimo i agloritme pretrage.
  41.  
  42.  
  43. 2. ==============================================================================
  44.  
  45. Neinformisana pretraga
  46. - nema dodatnih informacija koje mogu pomoci u pronalazenju ciljnog stanja
  47. - primer lavirinta - ako je graf koji odgovara algoritmu, stablo, lavirint je savrsen
  48.  
  49. BFS i DFS metode neinformisanje pretrage koje ispitnuju sve cvorome u grafu trazeci obicno neki specificni cvor
  50. backtracking - modifikacija DFS-a
  51.  
  52. Pretraga u dubinu DFS - pretrazuje pocevsi od polaznog cvora, zatim obradjuje sve njegove potomke, pa sve potomke potomaka, sve dok se trazeni cvor ne pronadje i sve dok potomci postoje. Ukoliko vise nema potomaka vraca se unazad do cvora ciji svi potomci nisu ispitani. Obicno se cuva na steku LIFO listi. Potrebno je cuvati info o posecenim cvorovima kako ne bi upali u besk petlju. Kada se pronadje cvor, na staku se nalazi put do njega.
  53.  
  54. DFS - ulaz: G, polazni cvor, ciljni cvor
  55. izlaz: put u G od polaznog do ciljneg
  56. 1. stek put i skup posecenih cvorova sadrze samo ulazni cvor
  57. 2. idemo sve dok stek nije prazan
  58. * uzmemo cvor n sa vrha steka
  59. * ako je n ciljni cvor, pronasli smo put i vratomo sadrzaj steka put
  60. * ako n nema potomka koji nije posecen izbaciti ga sa steka
  61. * u suprotnom izaberi prvog takvog potomka, m, stavi ga na stek put i dodaj ga u skup posecenih
  62. 3. obavesti da put nije pronadjen
  63.  
  64. bektrekint - modifikacija DFS tako sto se pretraga u dubinu tekuceg cvora prekida kada se ustanovi da trazeni cvor nije u potomcima datog cvora, tada se vraca na prethodni cvor i nastavlja dalje. Najcesci problem je problem 8 dama.
  65.  
  66. backtracking - dodavanje parcijalnog resenja, ako nije moguce vraca se unazad
  67.  
  68. 8 dama - 1848 godine - 92 razlicitih resenja
  69. uopstenje - n dama na tabli n x n, tako da se nikoje dve ne sudaraju. U svakoj koloni mora biti po jedna dama i da se one ne napadaju
  70.  
  71. Pretraga u sirinu BFS - ispituje cvorove koji su susedi trenutnom cvoru, a kasnije njihove potomke. Kada se prodanje trazeni cvor on ce uvek biti na najmanjem rastojanu (po broju grana) od polaznog cvora. Cvorovi koji se razmatraju cuvaju se u redu FIFO listi, i takodje treba da se obeleze poseceni kako ne bi doslo do besk petlje. Informacija o posecenom se ne cuva eksplicitno vec se zna na osnovu predhodnog cvora.
  72.  
  73. BFS - ulaz: graf, polazni cvor, ciljni cvor
  74. izlaz: najkraci put od polaznog do ciljnog u G ako takav put postoji
  75. 1. RED init sadrzi samo polazni cvor
  76. 2. Izvrsava se dok red S nije prazan
  77. * uzima cvor n sa pocetka reda i brise ga iz reda
  78. * ako je n ciljni cvor, pronasli smo put, vratiti unazad put od ciljnog cvora
  79. * za svaki od potomka m cvora n za koji nije def roditelj, zapamti n kao roditelja i dodaj ga na kraj S
  80. 3. obavesti da trazeni put ne postoji.
  81.  
  82. DFS pogodnija pretraga, vidi zbog cega
  83. Vremenska slozenost algoritma BFS I DFS je (O(|V|+|E|)) - broj cvorova + br grana
  84. a prostorna slozenost agloritma (O(|V|)) - broj cvorova
  85.  
  86. Dejkstring algoritam - 1959 - pronalazi najkrace puteve u grafu sa ne negativnim cenama.
  87. koristi se za pronalazenje najkraceg puta od A do B, ali i od svih cvorova do B
  88.  
  89. Dejkstrin - ulaz: G, ulazni i izlazni cvor
  90. izlaz: najkraci put ako postoji
  91. 1. inicijalno skup Q sadrzi sve cvorove
  92. 2. radimo sve dok skup Q nije prazan
  93. * iz Q se uzme cvor n sa najmanjim rastojanjem od polaznog cvora i brise se iz Q
  94. * ako n zavrsni cvor, kostruisemo put iduci unazad
  95. * za svaki cvor m iz Q koji je vezan sa n proveriti da li je pd polaznog do m rastojanje vece nego preko n, ako jeste postaviti roditelja m da bude n i zapamtiti novo rastojanje
  96. 3. obavestiti da ne postoji, Q prazan a uspeh nije projavljen
  97.  
  98. Dijkstra invarijanta - Invarijanta petlje je da se za ˇcvorove koji
  99. nisu u 𝑄 zna najkra´ce rastojanje od ciljnog ˇcvora
  100.  
  101. Dijkstra se najcesce implementira uz pomoc niza ili povezanih lista i tu je slozenost O(|V|^2)
  102. za neke grafove koji imaju mnogo manje grana, moze biti efikasnije, time sto se implementira preko binarnog min-hipa i slozenost je O((|E|+|V|)log|V|)
  103. min-hip je stabolika struktura koja zadovoljava hip svostvo, te je najmanji element uvek koren stabla. Analogno max-hip
  104.  
  105. 3. ======================================================================
  106. Informisana pretraga - nema info samo o mogucim akcijama, vec i dodatno znanje o konkretnom problemu, te usmerava pretragu ka stanjima koja vise obecavaju. Ta informacija moze biti ocena ili moze da bude zasnovana na info o pocetnom i zavrsnom stanju. Nije 100% tacna, vec predstavlja procenu, heuristicku vrednost.
  107.  
  108. Heuristike - mere koje sluze za usmeravanje i susavanje pretrage u kojima se javlja kombinatorna ekspozija
  109. - izbor izmedju nekoliko mogucih akcija, tako da se izabera najbolja koja dovodi do nekog cilja
  110.  
  111. f - funkcija evaluacije stanja - funkcija koja odredjuje kvalitet stanja
  112. f(n) - ocenja stanja
  113. moze se desiti da postoje ista stanja u stablu pretrage, te je bolje reci ocenja cvora a ne ocena stanja
  114.  
  115. =======
  116. Pohlepna pretraga
  117.  
  118. pohlepni algoritam - tezi neposrednom povecanju vrednosti neke ciljne funkcije
  119. - on ne procenjuje akcije koje dovode do najefikasnijeg ostvarenja cilja, vec u trenutku izbora, na osnovu trenutnog znanja on bira
  120. najbolju medju raspolozivim akcijama
  121.  
  122. Pohlepni - ulaz: G, pocetni i ciljni cvor
  123. izlaz: niz koraka od polaznog do ciljneg cvora ili neuspen (neuspeh ili besk petlja moguce i ako postoji put)
  124. 1. tekuci cvor, je polazni cvor
  125. 2. beskonacno izvrsava sledece korake
  126. * ako je n ciljni, obavesti o ospehu i vrati put od polaznog do ciljneg
  127. * ako tekouci cvor nema direktno dostupnih cvorova, neuspeh
  128. * od direktno dostupnih cvorova izaberi novi n, koji ima najbolju ocenu f(n)
  129.  
  130. problem ovog alg:
  131. * ne nadje uvek najbolje resenje
  132. * mozda ne nadje resenje ako postoji
  133. * moze ostati u besk petlji
  134.  
  135. Menhetn rastojanje - najkrace restojanje izmedju A i B (najmanji br polja) krecuci se samo horizontalno ili vertikalno (nema dijagonalno)
  136.  
  137. pohlepni algoritmi koriste se i u resvanju problema matematicke optimizacije, a tada se najcesce nazivaju algoritmi penjanja uz brdo, posto biraju susede koji imaju najvecu vrednost fje cilja. Zahtevaju postojanje funkcije cilja i skupa dopustivih resenja, a pronalaze optimalno resenje.
  138.  
  139. Pohlepna pretraga se ponasa dobro ukoliko se optimalno resenje problema gradi od lokalno optimalnih resenja problema.
  140.  
  141. Mane penjanja uz brdo:
  142. 1. opasnost od lokalnog maksimuma - nemaju nacina da utvrde da li su u lokalnom maksimumu. Susedi trenutnog cvora imaju manju vrednost fje cilja nego ona, ali je njegova vrednost manja od globalnog max.
  143. 2. neefikasnost u slicaju grebena (uske staze koje opadaju i rastu duz nekog pravca) - penjanje uz brdo ne vodi u pravcu rasta vec treba napraviti dosta cik cak pokreta da bi se popeo/spustio.
  144. 3. Platoi - oblast prostora pretrage u kojoj funkcija ima konstantnu brednost, pa se ne moze odrediti koji je potez najbolji a cesto se iz njega ne moze ni izaci.
  145.  
  146. modifikacije koje resavaju neke probleme:
  147. 1. Stohasticko penjanje uzbrdo - ne bira uvek susedno stanje koje ima najvecu vrednost, ali verovatnoca da neko stanje bude izabrano je da ima sto vecu vrednost
  148. 2. penjanje sa slucajnim restartovanjem - gde se nakon pronalazenja lokalnog max, pretraga ponovo pogrece iz random generisanog polaznog stanja
  149.  
  150.  
  151. =====
  152. PRESKOCIO - 3.1.1 Pohlepna pretraga u sluˇcaju diferencijabilne funkcije cilj
  153.  
  154. =====
  155. pretraga prvo najbolji - pronalazi put od pocetnog do ciljneg cvora. Svakom cvoru se pridruzuje informacija o svom predhodniku (roditelju) slicno kao kod dijgstre. Kako bi se izbegla beskonacna petlja (ponavljanje istih cvorova) cuvaju se dve liste cvorova.
  156. * zatvorena lista - lista stanja za koje su ispitani svi susedi
  157. * otvorena lista - lista stanja koja su posecena, ali nisu ispitani svi susedi (treba lako da pristupi el sa najboljom ocenom)
  158.  
  159. ideja ukratko: otvorena lista na pocetku zadrzi samo polazni cvor a zatvorena je prazna. Ideja je da ispitujemo cvor sa najboljom ocenom iz otvorene liste i obradjuju se njegova neposredna stanja. ukoliko se naidje na ciljno stanje algoritam prekida rad.
  160.  
  161. prvo najbolji:
  162. ulaz - G, pocetno i krajnje stanje
  163. izlaz - niz koraka, od ciljnog, ako postoji
  164. 1. inicijalno otvorena lista sadrzi pocetno stanje, zatvorena je prazna
  165. 2. sve dok postoje elementi u otvorenoj listi
  166. * izaberemo cvor n koji ima najbolju ocenu iz otvorene liste
  167. * ako je taj cvor ciljni, uspesno, vracamo put pocevsi od tog cvora
  168. * za svaki cvor m koji je direktno dostupan iz n
  169. - ako m nije ni u jednoj listi, dodaj ga u otvorenu listu i oznaci nkao njegovog roditelja
  170. * izbaci n iz otvorene i dodaj u zatvorenu
  171. * izvestaj da put nije prodanadjen
  172.  
  173.  
  174. Optimizacija:
  175. prvo najbolji ne daje optimalno resenje, i to ne garantuje. Ali se ta sansa moze unaprediti ako, kada se ispituje trenutni cvor m, koji je diraktan sa n, ako se m vec nalazi u nekoj od listi, moze se proveriti da li je put od polaznog cvora do cvora m preko n, bolji od postojeceg puta do m. Ako je bolji promeniti roditelja cvora m na n, a ako je m uzatvorenoj listi prebaciti ga u otvorenu.
  176.  
  177. T1: ako je broj stanja i akcija konaca Prvo najbolji se zaustavlja i nalazi trazeni put uvek kada postoji.
  178.  
  179. Algoritam prvo najbolji je slican pohlepnom alg, samo sto ima mogucnost da se vrati na cvorove koji nisu ispitani. Takodje algoritam prvo najbolji ima mogucnost da nastavi pretragu ukoliko naidje na plato ili lokalni optimum (zahvaljujuci alternativama otvorenoj lisi) i eliminise mogucnost beskonacnih petlji (zahvaljujuci pamcenju obradjenih cvorova u zatvorenoj listi)
  180.  
  181. ukoliko funkcija f(n) vraca dubinu cvora n, onda se algoritam ponasa kao BFS, a ukoliko vraca zbir cena od polaznog do n, onda se ponasa kao dijkstrin
  182.  
  183. prvo najbolji je sposoban da resi lojdovu slagalicu, ali ne garantuje najmanji br poteza.
  184.  
  185. =====
  186. A* - zasnovan na koriscenju heuristinka a potpun je i optimalan
  187. - pronalazi put izmedju 2 cvora u grafu
  188. - najbitniji alg vi
  189. - prva verzija Hart, Nilson, Rafael 1968 godine, kasnije uvedeno nekoliko modifikacija
  190. - predstavlja varijantu algoritma "Prvo najbolji" sa modifikovanom f
  191. - koristi formulu f(n) = g(n) + h(n)
  192. - g(n) predstavlja cenu puta od polaznog cvora do cvora n
  193. - h(n) je procenjena(heuristicka) cena najjeftinijeg puta od n do ciljnog cvora
  194. - tokom primene algoritma, uvek se zna tekuca cena od pocetnog do n - g(n), a h(n) se moze samo procenjivati
  195. - najvaznija stvar je izbor kvalitetne heuristike
  196.  
  197.  
  198. - posto otkriva najbolji put do ciljnog cvora, i zato svaki cvor koji naidje proverava da li je ranije vec pronadjen neki losiji put do tog covra i ako jeste menja ga sa novim. To je opcija u prvo najbolji, a u a* je obavezno.
  199.  
  200. - slican dijkstrinom, cesto ispituje manje cvorova, zbog toga sto je informisan sa g(m)
  201. - vrednost g(m) - jednaka je zbiru vrednosti funkcije g za roditelja cvora m i ceni puta od roditelja do m
  202. - ako se pronajde m koji je vec u otvorenoj ili zatvorenoj listi to znaci da je pronadjen novi put za m, i proverava se da li je preko n bolji od postojeceg. Ako je taj m u zatvorenoj prebaciti ga u otvorenu i ponovo ispitati, kako bi se uvek nasao najkraci put.
  203.  
  204. svojstva algoritma A*:
  205. moze se dokazati da je A* potpun i da je pod odredjenim uslovima optimalan
  206.  
  207. Potpun - ako su broj cvorova i broj akcija konacni, i ako postoji put izmedju 2 dvora A* ce naci neki put.
  208. Optimalnost - od svih puteva izmedju 2 cvora, A* ce naci najkraci, ako je funkcija h dopustiva (ako nikad ne precenjuje stvarno rastojanje izmedju tekuceg cvora i ciljnog cvora. Tj ako za svaki cvor vazi 0<=h(n)<=h*(n) gde je h*(n) cena optimalnog puta od cvora n do cilja)
  209.  
  210. fja h je konzistenta ako ciljni cvor ima vrednost 0 i za bilo koja 2 susedna cvora m i n vazi
  211. c(n,m) + h(m) >= h(n)
  212. gde je c(n,m) cena grane n,m
  213.  
  214. svaka konzistentna je dopustiva al obrnuto ne vazi
  215. ako je h konzistentna, ona je i dopustiva. Obrnuto ne vazi. Moze da bude dopustiva a ne konzostentna.
  216.  
  217. l1: ako je h konzistentna heuristika, onda tokom primene algoritma, vrednosti f(n) nisu opadajuce
  218. dokaz: ako je u nekom trenutku primene algoritma cvor m trenutni a njegov roditelj je cvor n tada vazi
  219. f(m) = g(m) + h(m) = g(n) + c(n,m) + h(m) >= g(n) + h(n) = f(n)
  220.  
  221. l2: ako je h konzistentna heuristika, za niz cvorova redom proglasenih za tekuce, niz vrednosti f(n) u stablu pretrage cini neopadajuci niz
  222. dokaz: u svakoj iteraciji algoritam za tekuci cvor bira cvor sa najmanjim f(n) iz otvorene liste, te su svi preostali cvorovi veci ili jednaki po f(n).
  223. Te svi buduci cvorovi (potomci ovih) imaju ili vece ili iste vrednosti, pa je niz tekucih cvorova ne opadajuci.
  224.  
  225. l3: sako je h konzistentna heuristika, kada neki covr stabla pretrage postanje tekuci, do njegovog stanja je vec pronadjen optimalni put. Tj. svaki cvor koji postaje tekuci bice cvor sa najmanjom cenom za to stanje.
  226. dokaz: kada algoritam proglasi neki cvor tekucim, on ima vrednost g(n) = g0 i f(n) = g0. Ako predpostvatimo da g(n) nije optimalan puut, i da je do istog moguce doci u nekoj kasnijoj iteraciji koja ima vrednosti g1 i f1. g1 je cena optimalnog puta do n, vazi g0>g1, pa i g0+h(n) > g1+h(n) -> f0>f1, a prethodna lema kaze f0 <= f1 sto je kontradikcija.
  227.  
  228. t: ako je h konzistentna heuristika, ako je pronadjen put do ciljneg cvora on je sigurno najbolji
  229. dokaz: vraca najdeni put cim ciljni cvor postane tekuci, a ako je h konzistentna heuristika, kada ciljni postane tekuci, on je vec optimalan na osnovu predhodne leme.
  230.  
  231. slozenost:
  232. * slozenost zavisi od odabira heuristike. U najgorem slucaju, broj obradjenih cvorova je eksponencijalan u odnosu na duzinu najkraceg puta.
  233. Te je i prostorna i vremenska A* ista kao i za BFS.
  234. * broj obradjenih cvorova je polinomijalan ako je heuristika kvalitetna, ako zadovoljava sledeci uslov:
  235. |h(x)-h*(x)| <= O(log h*(x)) - h* optimalna heuristika (vraca tacnu cenu puta od x do cilja)
  236.  
  237. sumasumarum:
  238. - A* ima najbolje performanse kada je fja heuristike bliska idealnoj funkciji heuristike.
  239. - Optimalnost je garantovana samo ako fja heuristike ne precenjuje stvarnu cenu puta.
  240. - te funkcija heuristike mora da se konstruise tako da bude bliska idealnoj ali da je nikad ne premasuje.
  241.  
  242. kada heuristika nije konzistentna treba proveravati i zatvorene cvorove !!!!!!!!!!
  243.  
  244. Specijalni slucajevi:
  245. obilazak grafa u dubinu sa A* ako je g(n) = 0 i pogodnom heoriskitkom h. H nije nuzno dopustiva.
  246. obilazak grafa u sirinu sa A* gde je h(n) = 0 u za svaki n. H je konzistentna i garantuje optimalni put.
  247.  
  248. pronalazenje puta u mrezi covorova - mapi:
  249. euklidsko i menhetn rasotjanje.
  250.  
  251. Implementacija:
  252. otvorena lisata - bnarni mini hip - efikasno dolazi do elementa sa najmanjom vrednostcu
  253. dodavanje i brisanje elementa iz otvorene liste O(logV) - v je broj cvorova grafa
  254. zatvorena lista - hes tabela
  255. dodavanje cvora i provara da li je u zatvorenoj listi O(1)
  256.  
  257.  
  258. prostorna slozenost - staticko alociranje, izbegavaju se skupe op dinamicke alokacije
  259.  
  260. treba koristiti samo celobrojnu aritmetiku.
  261.  
  262. najgore je kada put od A do B ne postoji pa se implementira jednostavna provera.
  263.  
  264. pronalazenje puta u uniformnoj mrezi, daje korake u 8 smerova te su putevi neprirodni. Te puteve zamenjujemo slicnim, prirodnijim - omeksavanje
  265.  
  266. =====
  267. Genetski algoritmi
  268. metaheuristike - metode koje opisuju opste strategije pretrage za resavanje optimizacionihh problema
  269. - nisu specificne za odredjeni problem, vec imaju siroku upotrebu
  270. - razmatraju samo mali uzorak iz skupa resenja i ne garantuju pronalazenje najboljeg moguceg resenja
  271. - ali cesto daju dovoljno dobra resenja kada nije raspoloziva ni jedna druga egzaktna metoda za resavanje tog problema
  272. - genetski algoritmi koriste metaheuristicke algoritme
  273.  
  274. bioloski pojmovi:
  275. - svaka celija sadrzi hromozome
  276. - svai hromozo sadrzi blokove DNK
  277. - svaki gen odredjuje neku osobinu organizma
  278. - GENOTIP - familija gena
  279. - FENOTIP - familija osobina
  280. - reprodukcija ukljucuje kombinovanje gena roditelja i mali nivo mutacije
  281. - organizmi prilagodjeni okolini opstaju, dok ne prilagodjeni nestaju kroz generacije
  282.  
  283. Evolucioni procesi u prirodi su optimizacioni procesi!!!
  284. - procesi u kojima se kroz generacije optimizuje genetski materijal tako da bude sto prilagodjeniji okolini
  285.  
  286. Moderne genetske algoritme uveo je Dzon Holadn 70tih godina, a postali su popularni krajem 80tih.
  287.  
  288. Genetski algoritmi se primenjuju na skiroki skup problema, cesno na NP-kompetne ili teske probleme, za koje ne postoje efikasna resenja.
  289. primeri problema: najkraci put u grafi, problem trgovackog putnika, igranje strateskih igara
  290.  
  291. Genetski algoritmi iako cesto nalaze globalne ekstremume, nemaju informaciju da li je ekstremum globalni ili lokalni i sa kolikom greskom
  292. je to odredjeno.
  293.  
  294.  
  295.  
  296. Opsti genetski algoritam
  297.  
  298. - Reprezentacija jedinke naziva se hromozom iligenotip.
  299. - Cilj je pronaci vrednozt za koju funkcija cilja postize svoj ekstremum ili vrednost koja je dovoljno blizu ekstremuma
  300. vrednost moze biti: fja, num, put...
  301. - Jedinke se obricno reprezentuju binarno (niz 0 i 1) ali je moguce i druga reprezentacija kada binarna nije pogodna.
  302. - Postupak se odvija kroz generacije, gde je prva gen obicno random generisane jedinke,mogu biti i jedinke koje su rez neke druge optimizacije
  303. - U svakoj generaciji postoji isti broj jedinki i za svaku od njih se racuna kvalitet (prilagodjenost okolini)
  304. Prilagodjenost se racuna funkcijom prilagodjenosti ili funkcijom kvaliteta.
  305. Veoma je bitna i moze al ne mora da bude jednaka funkciji cilja.
  306.  
  307. slicnost/razlicitost dve generacije:
  308. - SELEKCIJA: Iz jedne gen se na osnovu vrednost fje prilagodjenosti, biraju jedinke koje se koriste za stvaranje novih jedinki.
  309. - UKRSTANJE: primenjuje se na izabrane jedinke, i tako se dobijaju nove. Ta nova jeinka ima gen material od roditelja.
  310. - MUTACIJA: modifikuje se deo jedinke (oponasa mutacije koje se u prirodi desavaju usred spoljasnih faktora)
  311.  
  312.  
  313. Politika zamene generacija:
  314. -odredjuje kako se od postojecih jedinki i njihovog potomstva bira nova generacija.
  315. -neke jedinke u novo su losije od starih, a neke bolje, ali se ocekuje da se prosek popravlja
  316.  
  317. Aloritam:
  318. - algoritam se najcesce zaustavlja, kada je dostignut zadati broj generacija, kada je dostignut zaljeni nivo kvaliteta populacije
  319. ili neki drugi uslov.
  320. - funkcija cilja moze biti definisana tek kada su dostupne sve neophodne informacije koje precizno zadaju problem.
  321.  
  322. Ulaz: opis problema na osnovu koga se definise fja cilja, ali i podesavanje algiritma za konkretan problem.
  323. Izlaz: najkvalitetnija jedinka u trenutnoj populaciji
  324. 1. Generise pocetnu populaciju
  325. 2. Izracunaj prilagodjenost svake jedinke
  326. 3. izvrsavanj petlju sve dok nije zadovoljen uslov zaustavljanja
  327. * izaberi skup jedinki za reporodukciju - SELEKCIJA
  328. * kreiraj nove jedinke i racunaj prolagodjenost - MUTACIJA i UKRSTANJE
  329. * kreiraj novu generaciju
  330. 4. vrati najkvalitetniju jedinku u poslednjoj populaciji
  331.  
  332.  
  333. Komponente genetskog algoritma - moraju biti poznate pre pocetka alg:
  334. 1. reprezentacija jedniki:
  335. -izbor genetskih operatora znatno utice na efikasnos genetskih algoritama.
  336. -moze se reprezentovati u vidu niza binarnih cifara, matricama, stablima...
  337. -najcesce se koristi niz binarnih cifara. Gde svaka cifra predstavlja jedan gen, a cio niz hromozom.
  338. -pogledaj za interval jos jednom
  339.  
  340. 2. funkcija prilagodjenosti
  341. -daje ocenu kvaliteta jedinke,
  342. -dosta utice na efikasnost algoritma
  343. -treba da zadovoljava:
  344. -prikazuje kvalitet jedinke
  345. -definisana za sve moguce jedinke
  346. -da se brzo izracunava
  347. -posto odredjuje ocenu jedinke, sto je veca to je veca verovanoca da ce jedinka koristiti za kreiranje naredne generacije
  348. pa se kroz generacije ocekuje da ukupna prilagodjenost bude sve bolja i bolja
  349.  
  350. -za fju prilagodjenosti moze se koristiti i fja nad kojoj se trazi fja prilagodjenosti.
  351. -fja cilja i fja prilagodjenosti ne moraju da se podudaraju.
  352.  
  353. 3. inicijalizacija - proces generisanja pocetne populacije
  354. -najcesce se generise slucajno (ako binarno najcesce od 0 do 2^n-1 gde je n duzina hromozoma)
  355. -mogu se dodati neke specificne jedinke, ili se citava populacija moze generisati koriscenjem nekog drugog metoa
  356. -ponekad postoji ogranicenje nad nekim jedinkama pa i to ogranicenje treba uzeti u obzir prilikom kreiranja slucajnih jedinki
  357. -i u kasnijim fazama treba voditi racuna o neispravnim jedinkama, koje su se pojavile ali ne ispunjavaju uslov za cilj.
  358. Takve jedinke se koriguju nekim postupcima
  359.  
  360. 4. selekcija - obezbedjuje cuvanje i prenosejie dobrih osobina na sledecu generaciju.
  361. -u svakoj gen deo jedinki se izbdvoji za reprodukciju i generisanje nove generacije.
  362. Koje jedinke ce biti izdvojene govori funkcija prilagodjenosti - sto veca prilagodjenost veca sansa za potomstvo
  363. ali ponekad se i biraju random, sa verovatnocama izvedene iz prilagodjenosti, to dovodi do odrzanja raznolikosti
  364. Strategije za selekciju:
  365. 1. Ruletska - selekcija u kojoj vece sanse imaju prilagodjenije jedinke
  366. f(i) - prilagodjenost za jedinku i
  367. N - broj jedinki
  368. verovatnoca da ce biti izabrana je: pi = f(i)/SUMA(j,N)f(j)
  369. samo ako fja prilagodjenosti ima pozitivne vrednosti
  370. moguce je da se jedna jedinka vise puta izabere i ucestvuje u sledecoj gen i reproduk.
  371. preveliki broj ponavljanja istih jedinki lose utice na performanse algoritma.
  372. 2. Turnirska - jedinke igraju turnire i vece sanse za pobedu imaju one prilagodjenije
  373. Parametri: p - verovatnoca, k - velicina turnira
  374. bira se random k jedinki, koje se sortiraju po prilagodjenosti
  375. i-ta jedinka se bira sa verovatnocom p(1-p)^(i-1)
  376. ako je velicina turnira velika - nekvalitetne imaju manje sanse da budu izabrane
  377. ako je k = 1 => slucajna selekcija
  378. ako je p = 1 => deterministicka turnirska selekcija - bira se najbolja jedinka u svakom turniru
  379. ako je jednom izabrana, moze se zabraniti ucesce u narednim turnirima
  380.  
  381. ukrstanje i mutacija su genetski operatori
  382. 5. reprodukcija - ukrstaju se dve jedinke (roditelji) koje su izabrane u procesu selekcije
  383. rezultat su jedna ili dve nove jedinke (deca), nasledjuju osobine roditelja, prilagodjenost (nekad imaju i bolju)
  384.  
  385. nacini ukrstanja kada se koristi binarna reprezentacija:
  386. 1. visepoziciono ukrstanje - izaberemo tacke prekida i po tome ukrsamo... broj tacaka moze da bude proizvoljan.
  387. 2. uniformno ukrstanje - svaki bit prvog roditelja sa verovatnocom p se prenosi na dete i sa verovatnocom 1-p na drugo dete. Verovatnoca je 0.5 uglavnom, ali moze biti i drugacija.
  388.  
  389. 6. mutacija - primenjuje se nakon ukrstanja. Ona sa nekom malo verovatnocom menja deo jedinke.
  390. Obicno je taj deo dosta mali, i dobija se kao parametar algoritma. Uglavnom se menja 1 bit.
  391. Od jedne jedinke nastaje druga.
  392. Sprecava da jedinke u populaciji postanu isuvise slicne, i obnavljaju izgubljen genetski materijal
  393. Cesto omogucava izbegavanje lokalnih ekstremuma. Vec se razmatraju novi prostori u nadi da ce se naci globalni ekstremum.
  394. dovoljno je da se jedna jedinka priblizi glob ekstremumu, pa ce uskoro kroz generacije sve jedinke biti tu.
  395. Ukoliko je verovatnoca mutacije velika - ona lici na slucajnu pretragu
  396. ukoliko je verovatnoca mmutacije mala - skoro da nema mutacije, i ona ce dostici neki lokalni ekstremum
  397.  
  398. 7. politika zamene generacije - opisuje kako se od tekuce generacije dobija nova
  399. podela:
  400. 1. generacijski genetski algoritmi - selekcijom se biraju jedinke iz tekuce generacije tako da se moze napraviti
  401. cela nova generacija, ukrstaju se mutiraju i tako nova generacija zamenjuje staru.
  402. 2. genetski algoritmi stablinog stanja - cim se izabere par roditelja vrsi se ukrstanje i mutacija
  403. i umetanje potomaka u populaciju nekom politokom zamene.
  404. neke od politika zamene su:
  405. 1. zamena najgorih - novi menjaju najmanje prilagodjene
  406. 2. nasumicna zamena - nasumicno zamenjuju
  407. 3. tacmicenje roditelja i potomaka - potomci zamenjuju roditelje ukoliko su bolji
  408. 4. turnirska zamena - bira se kao kod turnirske gore samo sto se biraju najgore prilagodjeni
  409. Elitizam - nekoliko najboljih jedinki se stite od eliminisanja ili bilo kakvih izmena i takve se prenose u sledecu generaciju. Spreceva da se pokvari vec dobra jedinka. Moze se koristiti i u 1 i u 2.
  410. 8. zaustavljanje - izvrsava se algoritam dok se ne dodje do nekog od uslova zaustavljanja
  411. * pronadjeno je resenje koje zadovoljava unapred zadati kriterijum
  412. * dostignut je zadati broj generacija
  413. * funkcija prilagodjavanja je izracunata zadati br puta
  414. * brednost prilagodjenosti najbolje jedinke tokom odredjenog bra generacija nije popravljen
  415. * kombinacija nekoliko uslova
  416.  
  417.  
  418. svojstva genetski algoritama:
  419. 1. ciljna funkicja - moze biti proizvolja, i ne mora da zadovoljava nikakve uslove (ni diferencijabilna, nista)
  420. ali cesto u razlicitim problemima zadaje se implicitno (nije eksplicitna) kroz veci broj kriterijuma.
  421. 2. reprezentacija jedinki, fja prilagodjenosti i operatori
  422. izbor gore navedenih stvari je kljucan za efikasnost algoritma (kvalitet i brzina). Ipak za mnoge probleme je unapred
  423. tesko odrediti funkciju prilagodjenosti, jer se ne moze oceniti sta je resenje a sta ne. Na pocetku, reprezentacija jedinki
  424. fja prilagodjenosti i operatori se prilagodjavaju problemu a onda se vrsi prilagodjavanje parametara algoritmu.
  425. 3. paramerti algoritma - velicina populacije, verovatnoca ukrstanja, verovatnoca mutacije su dosta bitni za performanse.
  426. Cesto se izaeru parametri koji daju lose performanse, a optimizacija se vrsi probnim resavanjem i dosta je kompleksna.
  427. Parametri ne moraju biti fiksni, vec se mogu menjati tokom rada.
  428. 4. domen genetskih algoritama - dosta su primenjeni, ali za uspesno resavanje potrebno je napraviti puno dobrih izbora
  429. 5. kvalitet resena - ne daje garanciju da je pronadjeno resenje globalni optimum, cesto idu ka lokalnom optimumu, jer je dolazak do globalnog tezak. Cesto pronadjeno resenje je dovoljno dobro, i moze se ponuditi skup najboljih pronadjenih jedinki.
  430. 6. zahtevani resursi - jednostavno se implementiraju, ali je potrebno prilagoditi konkretnom problemu. Cesto je izvrsavanje veoma zahtevno
  431. te se mogu pogodno i efikasno paralelizovati.
  432.  
  433.  
  434.  
  435.  
  436. 4. strateske igre
  437. ==================
  438.  
  439. Tores Kevedo - 1910 konstruisao elektor-mehanicki uredjaj "sahista" koji je kao beli igrao kralj i top protiv kralja i iz svake poz pobedjivao iako ne u najmanjem broju poteza.
  440. Fon Nojman - 1928 opsti problem igranja igara.
  441. Klod Senon - 1950 u claku "programiranje digitalnog racunara za igranje saha" opuisao je sve stratekije izbora poteza A i B
  442. A - minimax (lookahead) - bira se potez sa najboljom ocenom
  443. B - (lookup table pristup) - potez ze bira na osnovu stanja u igri i na osnovu unapred pripremljene tabele.
  444. - u tabeli sa dve kolone u jednoj se nalazi trenutno stanje a u drugoj optimalan potez za to stanje
  445. Kenet Tompson - 1977 koriscenjem lookup pristupa kreirao "kralj i kraljica protiv kralja i topa"
  446. Lomonsov tabele - 2012 - tabele optimalnih poteza za sve zavrsniice (za najvise 7 figura)
  447.  
  448. razlikujemo legalne ppozicije i legalne poteze.
  449. legalne pozicije: pocetne, krajnje...
  450. legalan potez: dalje...
  451. one se predstavljaju preko usmerenog grafa - pozicije cvorovi, potezi grane
  452.  
  453. stablo igre - stablo naizmenicno 2 igraca
  454. kompletno stablo igre - koren je pocetna pozicija, a svi listovi su zavrsne pozicije.
  455.  
  456. otvaranje:
  457. biblioteka otvaranja - sadrzi informacije po poznatim i kvalitetnim potezima na otvaranu.
  458. moze biti staticka ali moze se i prosirivati tokom izvrsavanja.
  459.  
  460. biranje verovatnoce poteza na nekoj poziciji: pi = mi/suma(j=1,n)mj - bolji potezi ce se birati cesce ali ne uvek.
  461.  
  462. sredisnjica:
  463. Da bi se odredio dobar potez trenutnog igraca, cvorovima se pridruzuju vrednosti (funkcija evaluacije) te potezi mogu da se porede po kvalitetu
  464. Ona se dodeljuje poziciji, pazeci na specificnosti igre, i ne ispituje prednone niti naredne poteze.
  465. od fje evaluacija navise zavisi kavalitet igre programa.
  466. Potrebno je da ima sto vise relevantnijih informacija, ali sa druge strane kako se mnogo puta izracunava, potrebno je da bude sto prostija.
  467. Obicno preslikava skup svih mogucih pozicija u skup celih ili brojeva u pokrentom zarezu:
  468. F:P -> [-M,M] - vrednosti M gde je pobednik prvi igrac, -M gde je pobednik drugi igrac
  469. Najjednostavnija je trovrednosna funkcija koja se primenjuje na zavrsne cvorove, ali posto treba doci do zavrsnih cesto se ide dosta duboko
  470. pa je gotovo ne upotrebljiva. Ima vrednosti 1 - prvi pobedio, -1 - drugi pobedio, 0 - nereseno
  471. ocene zavrsnoh pozicija ne moraju biti staticke - mogu se menjati dubina, kako bi se nasao najmanji broj koraka
  472.  
  473. Minimaks: odredjuje najbolji moguci potez u datoj situaciji (najbolji - za zadati cvor, za zadatu dubinu, i za fju evaluacije)
  474. funkcija evaluacija za igraca koj je na potezu - biramo vecu vrednost (njemu odgovaraju pozitivni)
  475. a za protivnika biramo manju vrednost
  476. ocene se dodeljuju samo najdubljim cvorovima (oni ne moraju biti zarsni)
  477. algoritam vrsi izbor poteza na osnovu cvorova na max dubini i ne gleda dalje - a te info mogu biti veoma korisne
  478. efekat horizonta - ne vide se ni cvorovi pre ni posle, samo svorovi na nekoj fiksnoj dubini
  479.  
  480. Alfa-Beta: sredinom dvadesetog veka - algoritam zasnovan osdecanju stabla igre, heuristikama ubrzan minimax
  481. Semjuel, Ricards, Hart, Levin, Edvards - ranu verziju algoritma pocetkom 50tih, nezavisno Semjuel
  482. Makarti - 1956 - slicne ideje
  483. Brudno - 1963 - nezavisno otkrio i objavio A-B
  484. ideja kako se radi
  485. nalazi nabolji moguci potez
  486. ima najbolji efekat kada se potezi ispituju pocevsi od najboljeg, a isti kao minimaks kada se ispituje od najlosijeg ka najboljem (tekucem cv)
  487. tako se moze poboljsati alfa beta algoritam
  488.  
  489. Heuristika killer: zasniva se na cinjenicama i ne korisi specificna znaja o igri
  490. killer potez - najbolji potez na nekoj dubinid
  491. u svakom sledecem cvoru na dubini d ispitivanja pocinjemo sa killer potezom za tu dubinu
  492. ukoliko se nadje bolji potez za taj cvor, taj potez postaje killer
  493. upotreba killer heuristike u alfa beta naziva se alfabeta/killer algoritam.
  494. ne menja rezultat alfa bete
  495. ideja: ako je na dubini d najbolji potez W ima izgleda da je najbolji i u drugim stablima na istoj dubini
  496. legalni potezi treba da budu organizovani u ciklicni niz i da svaki potez jednoznacno odredjuje drugi (legalan)
  497.  
  498. iterativni algoritam ABkiller: za razliku od rekurzivnog postoji i killer potez za popocetni cvor u pretrazivanu.
  499. kada dodje do prekida, ima smislen rezultat tj najbolje pronadjen potez za neku iteraciju
  500. mana: visestruko pretrazivanje nekih cvorova.
  501. plus: ovo gore, zavrsna iteracija ispituje manji br cvorova od rekurzivnog
  502. modifikacija: da se vrse samo prva i poslednja iteracija
  503.  
  504. ALFA-BETA, MINIMAKS, Killer, killer iterativni - najbolji potez za datu fju evaluacije i dubinu
  505.  
  506. stabilno pretrazivanje: vrsi se pretrazivanje do neke fiksne dubine, ali se pretrazivanje nastavlja ukoliko je cvor nestabilan
  507. po nekim kriterijumima a taj kriterijum zavisi od igre do igre (moze i u isto igri razlicit da bude)
  508. prekid: najbolji iterativni ab killer jer u svakoj iteraciji ima resenje koje je dovoljno dobro
  509.  
  510. zavrsnica:
  511. taktika je korektna ako u trenutnoj poziciji vodi do pobede, ili u remi poziciji vodi do remija
  512. taktika je optimalna ako do pobede vodi u najmanjem br koraka ili gubitak maksimalno odlaze.
  513. optimalna taktika je korektna ali ne vazi obrnuto
  514.  
  515. bramerov opsti algoritam - algoritam za zavrsnicu 1975
  516. skupovi pozicija kao klasa ekvivalencije
  517. 1.generise skup svih legalno poteza
  518. 2.izabere najbolji potez iz skupa poteza
  519. 3.odigra najbolji potez
  520.  
  521. implementacija: legalni potezi - ciklicni
  522. fja evaluacoje - celobrojna
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement