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

Informisane (informed) metode za pretragu Neinformisane pretrage su sistematski generisale nova stanja, i upoređivali

Informisane (informed) metode za pretragu 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

Informisane (heurističke) strategije za pretragu Ciljevi ovih pretraga su: § § Poboljšanje efikasnosti slepih

Informisane (heurističke) strategije za pretragu 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

Informisane (heurističke) strategije za pretragu Heuristika u pretrazi: § Evaluacija još nerazvijenih čvorova: koliko

Informisane (heurističke) strategije za pretragu 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

Heuristička funkcija za evaluaciju Cilj: 1. Smanjenje računarske snage za rešavanje problema 2. Pronalaženje

Heuristička funkcija za evaluaciju Cilj: 1. 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 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) Pretraga tipa prvo najbolji (best-first search). Ova

Pretraga tipa prvo najbolji (best first search) 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

Pretraga tipa prvo najbolji (best first search) Ključni element ovih algoritama je heuristička funkcija

Pretraga tipa prvo najbolji (best first search) 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

Pohlepna (greedy) pretraga tipa prvo najbolji (Greedy best first search) Greedy best first search:

Pohlepna (greedy) pretraga tipa prvo najbolji (Greedy best first search) 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

Mapa Rumunije 9

Mapa Rumunije 9

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 10

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 pohlepan 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

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

A* pretraga 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

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

A* pretraga 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

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

A* pretraga 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

A* pretraga 18

A* pretraga 18

A* pretraga 19

A* pretraga 19

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

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

A* pretraga Bukurešt se prvo pojavio na obodu koraka (e), ali nije došlo do

A* pretraga 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

Heurisitčke funkcije Razmotrimo 8 -slagalicu. Cilj je da pločice označene brojevima pomerajući horizontalno i

Heurisitčke funkcije 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

Heurisitčke funkcije U slučaju slučajno generisane 8 -slagalice, prosečno rešenje se sastoji od 22

Heurisitčke funkcije 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

Heurisitčke funkcije Ako želimo da nađemo najkraće rešenje sa A* algoritmom, potrebna nam je

Heurisitčke funkcije 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

Heurisitčke funkcije h 1: Na prethodnoj slici nijedna pločica nije na mestu, tako da

Heurisitčke funkcije 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

Heurisitčke funkcije h 2: ova udaljenost se još naziva i „city block” udaljenost (city

Heurisitčke funkcije 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

Algoritmi za lokalnu pretragu Algortimi za pretragu sa kojima smo se do sada upoznali

Algoritmi za lokalnu pretragu 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

Lokalna pretraga U mnogim problemima putanja koja vodi do cilja nam nije od interesa.

Lokalna pretraga 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

Lokalna pretraga Algoritmi za lokalnu pretragu nisu sistematični, ali uprkos tome imaju dve ključne

Lokalna pretraga 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

Lokalna pretraga Za razumevanje lokalne pretrage treba analizirati površ koja opisuje prostor stanja (state

Lokalna pretraga 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

Lokalna pretraga Ova površ ima „tačke” (što je definisano stanjem) i „visinu” (koja je

Lokalna pretraga 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

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

Lokalna pretraga 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

Algoritam penjanja (hill climbing) Za ilustraciju algoritma penjanja koristićemo problem 8 kraljica (8 -queens).

Algoritam penjanja (hill climbing) 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

Algoritam penjanja (hill climbing) Heuristička funkcija h predstavlja broj kraljica koje se napadaju. Globalni

Algoritam penjanja (hill climbing) 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

Algoritam penjanja (hill climbing) Slika (a): stanje problema 8 kraljica sa vrednošću heurističke funkcije

Algoritam penjanja (hill climbing) 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

Algoritam penjanja (hill climbing) Ova vrsta pretrage ponekad se naziva i halapljivom lokalnom pretragom

Algoritam penjanja (hill climbing) Ova vrsta pretrage ponekad se naziva i halapljivom 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 (hill climbing) Algoritam penjanja se ipak vrlo često zaglavljuje zbog sledećih problema:

Algoritam penjanja (hill climbing) 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

Algoritam penjanja (hill climbing) Visoravan (plateaux): to je takav deo prostora stanja gde je

Algoritam penjanja (hill climbing) 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 penjanja (hill climbing) Algoritam dođe do tačke iz koje ne može da napravi

Algoritam penjanja (hill climbing) 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 penjanja (hill climbing) Algoritam će se zaustaviti kad stigne do visoravni, gde najbolji

Algoritam penjanja (hill climbing) 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

Algoritam penjanja (hill climbing) Često rešenje je ograničenje broja bočnih koraka. Ako kod 8

Algoritam penjanja (hill climbing) Č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

Algoritam penjanja (hill climbing) Ovi algoritmi nisu potpuni, često ne dolaze do rešenja jer

Algoritam penjanja (hill climbing) 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

Algoritam penjanja (hill climbing) Ako je svaki algoritam pretrage penjanjem uspešan sa verovatnoćom p,

Algoritam penjanja (hill climbing) 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

Algoritam penjanja (hill climbing) Uspešnost algoritma penjanja u velikoj meri zavisi od oblika površi

Algoritam penjanja (hill climbing) 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

Simulirano hlađenje Algoritam penjanja nije potpun jer može da se zaglavi u lokalni maksimum.

Simulirano hlađenje 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

Simulirano hlađenje Osnovna ideja: U obradi metala i stakla hlađenje (annealing) je postupak za

Simulirano hlađenje 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

Simulirano hlađenje Prvo treba da se upoznamo sa opadanjem gradijenta (gradient descent). Zamislimo da

Simulirano hlađenje 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

Simulirano hlađenje Trik je u tome da sto treba toliko jako da zatresemo da

Simulirano hlađenje 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