Vetaka Inteligencija Informisane informed metode za pretragu 1

  • Slides: 50
Download presentation
Veštačka Inteligencija Informisane (informed) metode za pretragu 1

Veštačka Inteligencija Informisane (informed) metode za pretragu 1

Neinformisane pretrage su sistematski generisale nova stanja, i upoređivali ih sa ciljnim stanjem. Ove

Neinformisane pretrage su sistematski generisale nova stanja, i upoređivali ih sa ciljnim stanjem. Ove strategije obično rade sa lošom efikasnošću. U klasu informisanih pretraga spadaju algoritmi za lokalnu pretragu koji su inspirisani statističkom fizikom (simulirano hlađenje, simulated annealing), i metode koje su inspirisane sa evolutivnim procesom (genetski algoritmi, genetic algorithms). Osim toga, postoje još i metode takozvane online pretrage (online search). Tu se agent nalazi u potpuno nepoznatom okruženju. 2

Ciljevi ovih pretraga su: § § Poboljšanje efikasnosti slepih algoritama za pretragu Smanjenje računarske

Ciljevi ovih pretraga su: § § Poboljšanje efikasnosti slepih algoritama za pretragu Smanjenje računarske snage za rešavanje problema Pretraga ako su resursi ograničeni Uzimanje u obzir informacije koje su vezane za dati problem Heuristika § Uopšteno značenje: bilo koji savet, koji je često efikasan, ali nije sigurno da je važeći u svakoj situaciji § Tehničko značenje: heuristična funkcija za evaluaciju, koji jednom stanju problema dodeljuje jedan broj (npr. : jačina jedne pozicije u šahu) 3

Heuristika u pretrazi: § Evaluacija još nerazvijenih čvorova: koliko je blizu cilja? Tipovi algoritama

Heuristika u pretrazi: § Evaluacija još nerazvijenih čvorova: koliko je blizu cilja? Tipovi algoritama § Pretraga tipa prvo najbolji (best-first search): razvijanje onog čvora koji se čini najboljim (pretraga sa gledanjem unapred, A*) § Iterativna popravka stanja: pomeranje u pravcu koji se čini najboljim (postupak penjanja, simulirano hlađenje, genetski algoritmi) Pronalaženje najboljeg čvora u principu nije lakši zadatak od samog zadatka pretrage! 4

Cilj: Smanjenje računarske snage za rešavanje problema 2. Pronalaženje najboljeg mogućeg rešenja pri korišćenju

Cilj: Smanjenje računarske snage za rešavanje problema 2. Pronalaženje najboljeg mogućeg rešenja pri korišćenju dostupnih resursa 3. Kompromis između korišćenja resursa i kvaliteta rešenja 1. Relativno malo znanja o aplikaciji može uveliko pomoći pri ostvarivanju ciljeva 1. i 2. Jedna česta heuristička funkcija za evaluaciju � Procena koliko bi koštalo dostizanje ciljnog stanja iz trenutnog stanja. (npr. igra 4 x 4, traženje puta između gradova, 8 kraljica) 5

Pretraga tipa prvo najbolji (best-first search). Ova je specijalni slučaj pretrage sa stablom gde

Pretraga tipa prvo najbolji (best-first search). Ova je specijalni slučaj pretrage sa stablom gde se čvor za razvoj bira u zavisnosti od evaluacione funkcije (evaluation function) f(n). Za razvoj se tradicionalno bira čvor sa najmanjom vrednošću, jer evaluaciona funkcija meri udaljenost od cilja. Ova metoda ne bira najbolji čvor (pošto pretražujemo, ne možemo da znamo koji je najbolji), nego čvor koji se čini najboljim. 6

Ključni element ovih algoritama je heuristička funkcija (heuristic function) h(n): h(n) = procenjeno koštanje

Ključni element ovih algoritama je heuristička funkcija (heuristic function) h(n): h(n) = procenjeno koštanje najjeftinijeg puta od čvora n do cilja. Ako je n ciljno stanje, tada je h(n)=0. 7

Greedy best first search: u narednom koraku razvija onaj čvor za koji proceni da

Greedy best first search: u narednom koraku razvija onaj čvor za koji proceni da je najbliži ciljnom stanju. Algoritam evaluira čvorove sa f(n)=h(n) heurističkom funkcijom. 8

Greedy best first search Neka na primeru Rumunije h. VU bude vazdušna udaljenost među

Greedy best first search Neka na primeru Rumunije h. VU bude vazdušna udaljenost među gradovima. Ako je cilj Bukurešt, onda je h. VU(U(Arad))=366. Vrednosti za h. VU – vazdušne udaljenosti pojedinih gradova do Bukurešta 9

Traženje rešenja pomoću stabla za pretragu Mapa Rumunije. Cilj agenta je da stigne od

Traženje rešenja pomoću stabla za pretragu Mapa Rumunije. Cilj agenta je da stigne od Arad-a do Bukurešt-a

Greedy best first search Koraci pretrage i primena h. VU funkcije. Čvorovi su obeležini

Greedy best first search Koraci pretrage i primena h. VU funkcije. Čvorovi su obeležini sa svojim h. VU vrednostima. 11

Greedy best first search Ovaj algoritam nikad ne razvija čvor koji nije na putanji

Greedy best first search Ovaj algoritam nikad ne razvija čvor koji nije na putanji rešenja. Zato mu je koštanje pretrage minimalno, ali algoritam nije optimalan: Putanja Arad-Nagyszeben-Fogaras-Bukurest je za 32 km duža od putanje Arad-Nagyszeben. Rimnicu Vilcean-Pitestin-Bukurest. Algoritam je halapljiv jer u svakom koraku pokušava da se najviše približi cilju. 12

Greedy best first search Minimizacija funkcije h(n) je osetljiva na pogrešne početne poteze. Uzmimo

Greedy best first search Minimizacija funkcije h(n) je osetljiva na pogrešne početne poteze. Uzmimo na primer put Iasi-Fogaras. Na osnovu heuristike, prvo bi trebalo razviti Neamtot, ali to je slepa ulica. Rešenje je prvo otići do Vaslui (koji je udaljeniji od cilja), pa u Csalános, Bukarest, Fogaras. U ovom slučaju algoritam će razviti i jedan suvišan čvor. Ako ne obratimo pažnju na stanja koja se ponavljaju, nikad nećemo pronaći rešenje (stalno ćemo se kretati između gradova Neamt i Iasi). 13

Greedy best first search Ova vrsta pretrage najviše liči na dubinsku pretragu. Preferira praćenje

Greedy best first search Ova vrsta pretrage najviše liči na dubinsku pretragu. Preferira praćenje jednog puta do cilja, ali se vraća iz slepih ulica. Nije optimalan i nije potpun (može pratiti i beskonačan put). I vremenska i prostorna kompleksnost su O(bm), gde je sa m označena maksimalna dubina prostora za pretragu. 14

Ovaj algoritam minimizira procenjeno koštanje celog puta (čita se: A zvezda). Princip po kojem

Ovaj algoritam minimizira procenjeno koštanje celog puta (čita se: A zvezda). Princip po kojem se vrši evaluacija: § Cena pređenog puta do aktuelnog čvora § Očekivana cena puta od datog čvora do cilja 15

Evaluaciona funkcija: § f(n)=g(n)+h(n) g(n) je cena puta od početnog čvora do čvora n

Evaluaciona funkcija: § f(n)=g(n)+h(n) g(n) je cena puta od početnog čvora do čvora n (aktuelni čvor) § h(n) je procena cene puta od aktuelnog čvora n do ciljnog čvora, i zato je: § f(n) = procena cene najjeftinijeg puta do rešenja koji vodi kroz čvor n. 16

Algoritam A* je optimalan, ako je h(n) prihvatljiva heuristika (admissible heuristic), to jest ako

Algoritam A* je optimalan, ako je h(n) prihvatljiva heuristika (admissible heuristic), to jest ako h(n) nikad ne preceni cenu do postizanja cilja. Očigledan primer prihvatljive heuristike je vazdušna udaljenost h. VU prilikom putovanja u Bukurešt. Vazdušna udaljenost je prihvatljiva jer između bilo koje dve tačke najkraće rastojanje je upravo vazdušna udaljenost, tako da vazdušna udaljenost nikad ne može da preceni. 17

18

18

19

19

Koraci A* pretrage kod traženja najkraćeg puta do Bukurešta 20

Koraci A* pretrage kod traženja najkraćeg puta do Bukurešta 20

Bukurešt se prvo pojavio na obodu koraka (e), ali nije došlo do razvijanja, jer

Bukurešt se prvo pojavio na obodu koraka (e), ali nije došlo do razvijanja, jer je f-vrednost Bukurešta (450) veći od Pitesti-ja (417). Ovo se može objasniti na sledeći način: moguće je da kroz Pitesti postoji jedno rešenje čije je koštanje 417, tako da algoritam neće izabrati rešenje sa cenom od 450. Algoritam A* je optimalan ako je h(n) prihvatljivo. 21

Razmotrimo 8 -slagalicu. Cilj je da pločice označene brojevima pomerajući horizontalno i vertikalno dovedemo

Razmotrimo 8 -slagalicu. Cilj je da pločice označene brojevima pomerajući horizontalno i vertikalno dovedemo iz polaznog stanja u ciljno stanje. Tipičan zadatak 8 -slagalice. Rešenje se može naći u 26 koraka. 22

U slučaju slučajno generisane 8 -slagalice, prosečno rešenje se sastoji od 22 koraka. Faktor

U slučaju slučajno generisane 8 -slagalice, prosečno rešenje se sastoji od 22 koraka. Faktor grananja je uglavnom 3 (2, 3 ili 4). Potpuna pretraga do dubine 22 imala bi 322 čvorova (3. 1 x 1010). Ako isključimo stanja koja se ponavljaju, ostaje nam 9!/2=181440 različitih rasporeda. U slučaju 15 -slagalice ovaj broj je već 1013. Na osnovu ovih brojeva zaključujemo da nam je potrebna dobra heuristika. 23

Ako želimo da nađemo najkraće rešenje sa A* algoritmom, potrebna nam je heuristička funkcija

Ako želimo da nađemo najkraće rešenje sa A* algoritmom, potrebna nam je heuristička funkcija koji nikad ne precenjuje broj koraka koji je potreban da se dostigne ciljno stanje. Postoje dve mogućnosti: h 1 – broj pločica koji se nalaze na pogrešnom mestu. h 2 – zbir udaljenosti pločica od njihovih ciljnih položaja. 24

h 1: Na prethodnoj slici nijedna pločica nije na mestu, tako da je u

h 1: Na prethodnoj slici nijedna pločica nije na mestu, tako da je u polaznom stanju h 1=8. h 1 je prihvatljiva heuristička funkcija pošto je jasno da svaku pločicu treba pomeriti bar jednom. h 2: Pošto se pločice ne mogu pomerati dijagonalno, izračunata udaljenost će biti zbir horizontalnih i vertikalnih udaljenosti. 25

h 2: ova udaljenost se još naziva i „city block” udaljenost (city block distance)

h 2: ova udaljenost se još naziva i „city block” udaljenost (city block distance) ili Menhetn udaljenost. h 2 je takođe prihvatljiva heuristička funkcija jer svakim pojedinačnim pomeranjem jednu pločicu možemo približiti cilju samo za jedno mesto. U početnom stanju za pločice 1 -8 Menhetn udaljenost je: h 2=3+1+2+2+2+3+3+2=18. h 2 ne precenjuje koštanje rešenja koje iznosi 26. 26

Algortimi za pretragu sa kojima smo se do sada upoznali su sistematično pretraživali prostor

Algortimi za pretragu sa kojima smo se do sada upoznali su sistematično pretraživali prostor za pretragu. Sistematičnost je postignuta tako da jednu ili više putanja pamte u memoriji, a takođe se pamti koje su alternative duž puta bile ispitane, a koje ne. Kad pronađu cilj, putanja do cilja ujedno je i rešenje problema. 27

U mnogim problemima putanja koja vodi do cilja nam nije od interesa. Kod problema

U mnogim problemima putanja koja vodi do cilja nam nije od interesa. Kod problema 8 kraljica bitna je samo krajnja konfiguracija kraljica, a ne redosled kojim smo kraljice postavljali na tablu. Algoritmi za lokalnu pretragu (local search) uzimaju u obzir samo jedno aktuelno stanje (current state), i obično prelaze samo na susedna stanja. Putanju tipično ne memorišu. 28

Algoritmi za lokalnu pretragu nisu sistematični, ali uprkos tome imaju dve ključne prednosti: 1.

Algoritmi za lokalnu pretragu nisu sistematični, ali uprkos tome imaju dve ključne prednosti: 1. Zahtevaju veoma malo (obično konstantnu količinu) memorije. 2. U vrlo velikom ili beskonačnom prostoru za pretragu često daju zadovoljavajući rezultat (u suprotnosti sa sistematičnim algoritmima). 29

Za razumevanje lokalne pretrage treba analizirati površ koja opisuje prostor stanja (state space landscape).

Za razumevanje lokalne pretrage treba analizirati površ koja opisuje prostor stanja (state space landscape). Jednodimenzionalna površ prostora stanja, gde visina odgovara ciljnoj funkciji. Cilj je pronalaženje globalnog maksimuma. 30

Ova površ ima „tačke” (što je definisano stanjem) i „visinu” (koja je određena vrednošću

Ova površ ima „tačke” (što je definisano stanjem) i „visinu” (koja je određena vrednošću heuristične ili ciljne funkcije). Ako je visina srazmerna sa koštanjem, onda je cilj pronaći „dolinu” koja je na najmanjoj visini (globalni minimum). Ako visina odgovara ciljnoj funkciji, onda je cilj pronalaženje najvišeg „vrha” (globalni maksimum). Prelazak između minimuma i maksimuma lako se ostvaruje jednostavnom promenom znaka. 31

Jedna potpuna lokalna pretraga uvek će pronaći rešenje ukoliko ono postoji. Jedan optimalan algoritam

Jedna potpuna lokalna pretraga uvek će pronaći rešenje ukoliko ono postoji. Jedan optimalan algoritam uvek će pronaći globalni minimum ili maksimum. 32

Algoritam penjanja (hill climbing) je jedan jednostavan ciklus koji uvek korača prema boljim vrednostima

Algoritam penjanja (hill climbing) je jedan jednostavan ciklus koji uvek korača prema boljim vrednostima (na gore). Algoritam staje kad se stigne na vrh gde nema suseda sa većom vrednošću. Algoritam ne pamti stablo za pretragu. Algoritam penjanja nema strategiju koja bi „gledala” nekoliko koraka unapred, posmatraju se samo neposredni susedi. Algoritam podseća na slučaj kao da želimo da nađemo vrh Mount Everest-a u gustoj magli i da pri tome još i patimo od amnezije (gubitak pamćenja). 33

Za ilustraciju algoritma penjanja koristićemo problem 8 kraljica (8 -queens). Lokalni algoritmi za pretragu

Za ilustraciju algoritma penjanja koristićemo problem 8 kraljica (8 -queens). Lokalni algoritmi za pretragu obično koriste potpuni opis stanja (complete state formulation), gde je u svakom stanju na tabli raspoređeno svih osam kraljica, po jedna u svakoj koloni. Funkcija prelaza stanja vraća svako moguće stanje koje se dobija pomeranjem jedne kraljice na drugo polje unutar iste kolone (svako stanje ima 8 x 7=56 sledbenika). 34

Heuristička funkcija h predstavlja broj kraljica koje se napadaju. Globalni minimum ove funkcije je

Heuristička funkcija h predstavlja broj kraljica koje se napadaju. Globalni minimum ove funkcije je 0, i to stanje je dostižno samo kada dođemo do savršenog rešenja. Sledeća slika prikazuje stanje u kojem je h=17. Slika prikazuje i vrednosti svih sledbenika datog stanja, gde najbolji sledbenik ima vrednost h=12. Ako ima više najboljih sledbenika, algoritam će slučajno izabrati jedan od njih. 35

Slika (a): stanje problema 8 kraljica sa vrednošću heurističke funkcije h=17, i gde su

Slika (a): stanje problema 8 kraljica sa vrednošću heurističke funkcije h=17, i gde su zadate sve vrednosti sledbenika kad sve kraljice pomeramo duž kolone u kojoj se nalaze. Najbolji potezi (12) su obeleženi. (b): Jedan od lokalnih minimuma u prostoru 8 -kraljica. 36

Ova vrsta pretrage ponekad se naziva i pohlepnom lokalnom pretragom (greedy local search) jer

Ova vrsta pretrage ponekad se naziva i pohlepnom lokalnom pretragom (greedy local search) jer se uhvati za jednog dobrog sledbenika bez obzira na neku dugoročniju strategiju. Algoritam penjanja veoma često vrlo brzo korača prema rešenju, jer se jedno loše stanje može lako ispraviti. Polazeći iz stanja sa perthodne slike (a) dovoljno je napraviti samo 5 koraka kako bismo stigli do stanja sa slike (b) čije je koštanje h=1, i to stanje je veoma blizu rešenju. 37

Algoritam penjanja se ipak vrlo često zaglavljuje zbog sledećih problema: Lokalni maksimumi: lokalni maksimum

Algoritam penjanja se ipak vrlo često zaglavljuje zbog sledećih problema: Lokalni maksimumi: lokalni maksimum je vrh koji je viši od svakog svog suseda, ali je niži od globalnog maksimuma. Algoritmi penjanja, kad stignu u blizinu lokalnog maksimuma, primorani su da koračaju ka vrhu, iako će se tamo zaglaviti (slajd 29). Slika (b) (slajd 35) je jedan primer za to. Bilo koji potez bilo koje kraljice samo će pokvariti situaciju. 38

Visoravan (plateaux): to je takav deo prostora stanja gde je funkcija za evaluaciju praktično

Visoravan (plateaux): to je takav deo prostora stanja gde je funkcija za evaluaciju praktično ravna. To može biti jedan ravan lokalni maksimum, odakle se više ne može penjati, ali može biti i rame (shoulder), odakle je još moguć napredak. Za algoritam penjanja visoravan može da bude nepremostiva prepreka. 39

Algoritam dođe do tačke iz koje ne može da napravi nijedan korak. Ako krenemo

Algoritam dođe do tačke iz koje ne može da napravi nijedan korak. Ako krenemo iz slučajno generisanog stanja 8 -kraljica, algoritam penjanja će se zaglaviti u 86% slučajeva, a problem će rešiti u svega 14% slučajeva. Algoritam je brz, prosečno će napraviti 4 koraka u slučaju uspeha, i tri koraka kad se zaglavi. Pošto je prostor stanja 88=17 miliona, ovo uopšte nije loš rezultat. 40

Algoritam će se zaustaviti kad stigne do visoravni, gde najbolji sledbenik ima istu vrednost

Algoritam će se zaustaviti kad stigne do visoravni, gde najbolji sledbenik ima istu vrednost kao i aktuelno stanje. Zato ćemo dozvoliti i bočne korake (sideway move), i nadaćemo se da je visoravan u stvari „rame”. Ako uvek dozvolimo bočne korake, i ako nema napretka prema gore, doći ćemo u beskonačnu petlju svaki put kad algoritam naiđe na takav lokalni maksimum koji nije „rame”. 41

Često rešenje je ograničenje broja bočnih koraka. Ako kod 8 -kraljica dozvolimo 100 uzastopnih

Često rešenje je ograničenje broja bočnih koraka. Ako kod 8 -kraljica dozvolimo 100 uzastopnih bočnih koraka, uspešnost rešenja će se popeti sa 14% na 94%. Cena uspeha je povećanje broja koraka. Prosečno će se do rešenja dolaziti u 21 koraka, a do neuspeha u 64 koraka. 42

Ovi algoritmi nisu potpuni, često ne dolaze do rešenja jer se zaglave u jedan

Ovi algoritmi nisu potpuni, često ne dolaze do rešenja jer se zaglave u jedan lokalni maksimum. Algoritam penjanja sa slučajnim restartom (random-restart hill climbing) ponaša se prema poznatoj poslovici: „Ako ne ide napred, kreni od početka”. Algoritam će iz slučajno generisanih početnih stanja vršiti pretragu penjanjem dok ne stigne do cilja. Algoritam je potpun jer će pre ili kasnije ciljno stanje generisati kao početno stanje. 43

Ako je svaki algoritam pretrage penjanjem uspešan sa verovatnoćom p, očekivani broj slučajnih restarta

Ako je svaki algoritam pretrage penjanjem uspešan sa verovatnoćom p, očekivani broj slučajnih restarta je 1/p. Ako kod problema 8 -kraljica ne dozvolimo bočne poteze, p=0. 14, tako da će nam za pronalaženje cilja u proseku biti potrebno 7 iteracija (6 neuspeha i 1 uspeh). 44

Uspešnost algoritma penjanja u velikoj meri zavisi od oblika površi prostora stanja: ako ima

Uspešnost algoritma penjanja u velikoj meri zavisi od oblika površi prostora stanja: ako ima samo nekoliko lokalnih maksimuma i visoravni, metod sa restartom će brzo pronaći rešenje. 45

Algoritam penjanja nije potpun jer može da se zaglavi u lokalni maksimum. Nasuprot tome,

Algoritam penjanja nije potpun jer može da se zaglavi u lokalni maksimum. Nasuprot tome, potpuna slučajna pretraga je potpuna, ali je veoma neefikasna. Razumnim se čini ideja kombinovanja algoritma penjanja i slučajne pretrage kako bismo zadržali i efikasnost i potpunost. 46

Osnovna ideja: U obradi metala i stakla hlađenje (annealing) je postupak za dobijanje veće

Osnovna ideja: U obradi metala i stakla hlađenje (annealing) je postupak za dobijanje veće čvrstine materijala, kad te materijale ugrejemo na visoku temperaturu, pa ih postepeno hladimo kako bi materijal došao u kristalno stanje sa malom energijom. 47

Prvo treba da se upoznamo sa opadanjem gradijenta (gradient descent). Zamislimo da nam je

Prvo treba da se upoznamo sa opadanjem gradijenta (gradient descent). Zamislimo da nam je zadatak da na neravnom stolu jednu ping-pong lopticu ubacimo u najdublju rupu. Ako pustimo lopticu da se kotrlja, ona će doći u lokalni minimum. Ako zatresemo sto, lopticu možemo izbaciti iz lokalnog minimuma. 48

Trik je u tome da sto treba toliko jako da zatresemo da loptica iskoči

Trik je u tome da sto treba toliko jako da zatresemo da loptica iskoči iz lokalnog minimuma, ali ipak ne toliko jako da ispadne i iz globalnog minimuma. Simulirano hlađenje je jedno rešenje po kome prvo jako zatresemo sto (visoka temperatura), pa postepeno smanjujemo intenzitet potresa stola (smanjujemo temperaturu). 49

Kraj 50

Kraj 50