You are on page 1of 49

Vetaka Inteligencija

Informisane
(informed) metode
za pretragu

Informisane (informed)
metode za pretragu
Neinformisane pretrage su sistematski generisale
nova stanja, i uporeivali ih sa ciljnim stanjem.
Ove strategije obino rade sa loom efikasnou.
U klasu informisanih pretraga spadaju algoritmi
za lokalnu pretragu koji su inspirisani statistikom
fizikom
(simulirano
hlaenje,
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 okruenju.
2

Informisane (heuristike)
strategije za pretragu
Ciljevi ovih pretraga su:

Poboljanje efikasnosti slepih algoritama za pretragu


Smanjenje raunarske snage za reavanje problema
Pretraga ako su resursi ogranieni
Uzimanje u obzir informacije koje su vezane za dati
problem

Heuristika

Uopteno znaenje: bilo koji savet, koji je esto efikasan,


ali nije sigurno da je vaei u svakoj situaciji

Tehniko znaenje: heuristina funkcija za evaluaciju, koji


jednom stanju problema dodeljuje jedan broj
(npr.: jaina jedne pozicije u ahu)
3

Informisane (heuristike)
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 hlaenje,
genetski algoritmi)
Pronalaenje najboljeg vora u principu nije laki zadatak
od samog zadatka pretrage!

Heuristika funkcija za
evaluaciju
Cilj:
1.
2.
3.

Smanjenje raunarske snage za reavanje problema


Pronalaenje najboljeg mogueg reenja pri korienju
dostupnih resursa
Kompromis izmeu korienja resursa i kvaliteta reenja

Relativno malo znanja o aplikaciji moe uveliko pomoi


pri ostvarivanju ciljeva 1. i 2.
Jedna esta heuristika funkcija za evaluaciju
Procena koliko bi kotalo dostizanje ciljnog stanja iz
trenutnog stanja.
(npr. igra 4x4, traenje puta izmeu gradova, 8kraljica)
5

Pretraga tipa prvo najbolji


(best first search)
Pretraga tipa prvo najbolji (best-first search).
Ova je specijalni sluaj 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 vrednou, jer evaluaciona
funkcija meri udaljenost od cilja. Ova
metoda ne bira najbolji vor (poto
pretraujemo, ne moemo da znamo koji je
najbolji), nego vor koji se ini najboljim.

Pretraga tipa prvo najbolji


(best first search)
Kljuni element ovih algoritama je
heuristika funkcija (heuristic function)
h(n):

h(n) = procenjeno kotanje najjeftinijeg


puta od vora n do cilja.

Ako je n ciljno stanje, tada je h(n)=0.


7

Halapljiva (greedy)
pretraga tipa prvo najbolji
(Greedy best first search)
Greedy best first search: u narednom
koraku razvija onaj vor za koji proceni da
je najblii ciljnom stanju.
Algoritam evaluira vorove sa f(n)=h(n)
heuristikom funkcijom.

Greedy best first search


Neka na primeru Rumunije hVU bude
vazduna udaljenost meu gradovima. Ako
je cilj Bukuret, onda je hVU(U(Arad))=366.

Vrednosti za hVU vazdune udaljenosti pojedinih gradova do Bukureta

Greedy best first search


Koraci pretrage i
primena hVU funkcije.
vorovi su obeleini
sa svojim hVU
vrednostima.

10

Greedy best first search


Ovaj algoritam nikad ne razvija vor koji nije
na putanji reenja. Zato mu je kotanje
pretrage minimalno, ali algoritam nije
optimalan:
Putanja Arad-Nagyszeben-Fogaras-Bukurest je
za 32km dua od putanje Arad-NagyszebenRimnicu Vilcean-Pitestin-Bukurest.
Algoritam je halapljiv jer u svakom koraku
pokuava da se najvie priblii cilju.
11

Greedy best first search


Minimizacija funkcije h(n) je osetljiva na
pogrene poetne poteze. Uzmimo na primer
put Iasi-Fogaras. Na osnovu heuristike, prvo
bi trebalo razviti Neamtot, ali to je slepa ulica.
Reenje je prvo otii do Vaslui (koji je
udaljeniji od cilja), pa u Csalnos, Bukarest,
Fogaras. U ovom sluaju algoritam e razviti i
jedan suvian vor.
Ako ne obratimo panju na stanja koja se
ponavljaju, nikad neemo pronai reenje
(stalno emo se kretati izmeu gradova
Neamt i Iasi).
12

Greedy best first search


Ova vrsta pretrage najvie lii na
dubinsku pretragu. Preferira praenje
jednog puta do cilja, ali se vraa iz slepih
ulica.
Nije optimalan i nije potpun (moe pratiti
i beskonaan put). I vremenska i
prostorna kompleksnost su O(bm), gde je
sa m oznaena maksimalna dubina
prostora za pretragu.
13

A* pretraga
Ovaj algoritam minimizira procenjeno
kotanje celog puta (ita se: A zvezda).

Princip po kojem se vri evaluacija:


Cena preenog puta do aktuelnog vora
Oekivana cena puta od datog vora do
cilja

14

A* pretraga
Evaluaciona funkcija:

f(n)=g(n)+h(n)
g(n) je cena puta od poetnog 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


reenja koji vodi kroz vor n.
15

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. Oigledan primer prihvatljive
heuristike je vazduna udaljenost hVU prilikom
putovanja u Bukuret.
Vazduna udaljenost je prihvatljiva jer izmeu
bilo koje dve take najkrae rastojanje je
upravo vazduna udaljenost, tako da
vazduna udaljenost nikad ne moe da
preceni.
16

A* pretraga

17

A* pretraga

18

A* pretraga

Koraci A* pretrage kod traenja najkraeg puta do Bukureta

19

A* pretraga
Bukuret se prvo pojavio na obodu koraka (e),
ali nije dolo do razvijanja, jer je f-vrednost
Bukureta (450) vei od Pitesti-ja (417).
Ovo se moe objasniti na sledei nain:
mogue je da kroz Pitesti postoji jedno reenje
ije je kotanje 417, tako da algoritam nee
izabrati reenje sa cenom od 450.
Algoritam A* je optimalan ako je h(n) prihvatljivo.
20

Heurisitke funkcije
Razmotrimo 8-slagalicu. Cilj je da ploice
oznaene
brojevima
pomerajui
horizontalno i vertikalno dovedemo iz
polaznog stanja u ciljno stanje.

Tipian zadatak 8-slagalice. Reenje se moe nai


u 26 koraka.

21

Heurisitke funkcije
U sluaju sluajno generisane 8-slagalice,
proseno reenje se sastoji od 22 koraka.
Faktor grananja je uglavnom 3 (2, 3 ili 4).
Potpuna pretraga do dubine 22 imala bi 322
vorova (3.1x1010). Ako iskljuimo stanja
koja
se
ponavljaju,
ostaje
nam
9!/2=181440 razliitih rasporeda.
U sluaju 15-slagalice ovaj broj je ve 1013.
Na osnovu ovih brojeva zakljuujemo da
nam je potrebna dobra heuristika.
22

Heurisitke funkcije
Ako elimo da naemo najkrae reenje sa
A* algoritmom, potrebna nam je heuristika
funkcija koji nikad ne precenjuje broj koraka
koji je potreban da se dostigne ciljno stanje.
Postoje dve mogunosti:
h1 broj ploica koji se nalaze na
pogrenom
mestu.
h2 zbir udaljenosti ploica od njihovih
ciljnih
poloaja.
23

Heurisitke funkcije
h1: Na prethodnoj slici nijedna ploica nije
na mestu, tako da je u polaznom stanju
h1=8. h1 je prihvatljiva heuristika funkcija
poto je jasno da svaku ploicu treba
pomeriti bar jednom.
h2: Poto se ploice ne mogu pomerati
dijagonalno, izraunata udaljenost e biti
zbir horizontalnih i vertikalnih udaljenosti.
24

Heurisitke funkcije
h2: ova udaljenost se jo naziva i city block
udaljenost (city block distance) ili Menhetn
udaljenost. h2 je takoe prihvatljiva heuristika
funkcija jer svakim pojedinanim pomeranjem
jednu ploicu moemo pribliiti cilju samo za
jedno mesto. U poetnom stanju za ploice 1-8
Menhetn udaljenost je:
h2=3+1+2+2+2+3+3+2=18.
h2 ne precenjuje kotanje reenja koje iznosi 26.
25

Algoritmi za lokalnu
pretragu
Algortimi za pretragu sa kojima smo se do sada
upoznali su sistematino pretraivali prostor za
pretragu.
Sistematinost je postignuta tako da jednu ili
vie putanja pamte u memoriji, a takoe se
pamti koje su alternative du puta bile ispitane,
a koje ne.
Kad pronau cilj, putanja do cilja ujedno je i
reenje problema.
26

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 obino prelaze samo na
susedna stanja.
Putanju tipino ne memoriu.
27

Lokalna pretraga
Algoritmi za lokalnu pretragu nisu sistematini, ali uprkos tome imaju dve kljune
prednosti:
1.

2.

Zahtevaju veoma malo (obino konstantnu


koliinu) memorije.
U vrlo velikom ili beskonanom prostoru za
pretragu esto daju zadovoljavajui rezultat
(u suprotnosti sa sistematinim algoritmima).
28

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 pronalaenje globalnog maksimuma.

29

Lokalna pretraga
Ova povr ima take (to je definisano
stanjem) i visinu (koja je odreena
vrednou heuristine ili ciljne funkcije).
Ako je visina srazmerna sa kotanjem, onda
je cilj pronai dolinu koja je na najmanjoj
visini (globalni minimum).
Ako visina odgovara ciljnoj funkciji, onda je
cilj pronalaenje najvieg vrha (globalni
maksimum).
Prelazak izmeu minimuma i maksimuma
lako se ostvaruje jednostavnom promenom
znaka.
30

Lokalna pretraga
Jedna potpuna lokalna pretraga uvek e
pronai reenje ukoliko ono postoji. Jedan
optimalan algoritam uvek e pronai
globalni minimum ili maksimum.

31

Algoritam penjanja (hill


climbing)
Algoritam penjanja (hill climbing) je jedan
jednostavan ciklus koji uvek koraa prema boljim
vrednostima (na gore). Algoritam staje kad se
stigne na vrh gde nema suseda sa veom
vrednou. Algoritam ne pamti stablo za
pretragu. Algoritam penjanja nema strategiju
koja bi gledala nekoliko koraka unapred,
posmatraju se samo neposredni susedi.
Algoritam podsea na sluaj kao da elimo da
naemo vrh Mount Everest-a u gustoj magli i da
pri tome jo i patimo od amnezije (gubitak
pamenja).
32

Algoritam penjanja (hill


climbing)
Za ilustraciju algoritma penjanja koristiemo
problem 8 kraljica (8-queens). Lokalni
algoritmi za pretragu obino koriste potpuni
opis stanja (complete state formulation),
gde je u svakom stanju na tabli rasporeeno
svih osam kraljica, po jedna u svakoj koloni.
Funkcija prelaza stanja vraa svako mogue
stanje koje se dobija pomeranjem jedne
kraljice na drugo polje unutar iste kolone
(svako stanje ima 8x7=56 sledbenika).
33

Algoritam penjanja (hill


climbing)
Heuristika funkcija h predstavlja broj
kraljica koje se napadaju. Globalni minimum
ove funkcije je 0, i to stanje je dostino
samo kada doemo do savrenog reenja.
Sledea 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 vie
najboljih sledbenika, algoritam e sluajno
izabrati jedan od njih.
34

Algoritam penjanja (hill


climbing)

Slika (a): stanje problema 8 kraljica sa vrednou heuristike funkcije h=17, i gde su
zadate sve vrednosti sledbenika kad sve kraljice pomeramo du kolone u kojoj se
nalaze. Najbolji potezi (12) su obeleeni. (b): Jedan od lokalnih minimuma u
prostoru 8-kraljica.
35

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 dugoroniju
strategiju. Algoritam penjanja veoma esto vrlo
brzo koraa prema reenju, jer se jedno loe
stanje moe lako ispraviti.
Polazei iz stanja sa perthodne slike (a) dovoljno
je napraviti samo 5 koraka kako bismo stigli do
stanja sa slike (b) ije je kotanje h=1, i to
stanje je veoma blizu reenju.
36

Algoritam penjanja (hill


climbing)
Algoritam penjanja se ipak vrlo
zaglavljuje zbog sledeih problema:

esto

Lokalni maksimumi: lokalni maksimum je


vrh koji je vii od svakog svog suseda, ali je
nii od globalnog maksimuma. Algoritmi
penjanja, kad stignu u blizinu lokalnog
maksimuma, primorani su da koraaju 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.
37

Algoritam penjanja (hill


climbing)
Visoravan (plateaux): to je takav deo
prostora stanja gde je funkcija za
evaluaciju praktino ravna. To moe biti
jedan ravan lokalni maksimum, odakle se
vie ne moe penjati, ali moe biti i rame
(shoulder), odakle je jo mogu napredak.
Za algoritam penjanja visoravan moe da
bude nepremostiva prepreka.

38

Algoritam penjanja (hill


climbing)
Algoritam doe do take iz koje ne moe
da napravi nijedan korak. Ako krenemo iz
sluajno generisanog stanja 8-kraljica,
algoritam penjanja e se zaglaviti u 86%
sluajeva, a problem e reiti u svega
14% sluajeva. Algoritam je brz, proseno
e napraviti 4 koraka u sluaju uspeha, i
tri koraka kad se zaglavi. Poto je prostor
stanja 88=17 miliona, ovo uopte nije lo
rezultat.
39

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 bone korake (sideway move), i
nadaemo se da je visoravan u stvari rame.
Ako uvek dozvolimo bone korake, i ako nema
napretka prema gore, doi emo u beskonanu
petlju svaki put kad algoritam naie na takav
lokalni maksimum koji nije rame.

40

Algoritam penjanja (hill


climbing)
esto reenje je ogranienje broja bonih
koraka. Ako kod 8-kraljica dozvolimo 100
uzastopnih bonih koraka, uspenost
reenja e se popeti sa 14% na 94%.
Cena uspeha je poveanje broja koraka.
Proseno e se do reenja dolaziti u 21
koraka, a do neuspeha u 64 koraka.

41

Algoritam penjanja (hill


climbing)
Ovi algoritmi nisu potpuni, esto ne dolaze
do reenja jer se zaglave u jedan lokalni
maksimum.
Algoritam
penjanja
sa
sluajnim restartom (random-restart hill
climbing) ponaa se prema poznatoj
poslovici: Ako ne ide napred, kreni od
poetka. Algoritam e iz sluajno
generisanih poetnih stanja vriti pretragu
penjanjem dok ne stigne do cilja.
Algoritam je potpun jer e pre ili kasnije
ciljno stanje generisati kao poetno stanje.
42

Algoritam penjanja (hill


climbing)
Ako
je
svaki
algoritam
pretrage
penjanjem uspean sa verovatnoom p,
oekivani broj sluajnih restarta je 1/p.
Ako kod problema 8-kraljica ne dozvolimo
bone poteze, p=0.14, tako da e nam za
pronalaenje cilja u proseku biti potrebno
7 iteracija (6 neuspeha i 1 uspeh).

43

Algoritam penjanja (hill


climbing)
Uspenost algoritma penjanja u velikoj
meri zavisi od oblika povri prostora
stanja: ako ima samo nekoliko lokalnih
maksimuma i visoravni, metod sa
restartom e brzo pronai reenje.

44

Simulirano hlaenje
Algoritam penjanja nije potpun jer moe da
se zaglavi u lokalni maksimum.
Nasuprot tome, potpuna sluajna pretraga
je potpuna, ali je veoma neefikasna.
Razumnim se ini ideja kombinovanja
algoritma penjanja i sluajne pretrage kako
bismo zadrali i efikasnost i potpunost.

45

Simulirano hlaenje
Osnovna ideja: U obradi metala i stakla
hlaenje (annealing) je postupak za
dobijanje vee vrstine materijala, kad te
materijale
ugrejemo
na
visoku
temperaturu, pa ih postepeno hladimo
kako bi materijal doao u kristalno stanje
sa malom energijom.

46

Simulirano hlaenje
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 doi u lokalni
minimum.
Ako zatresemo sto, lopticu moemo izbaciti iz
lokalnog minimuma.
47

Simulirano hlaenje
Trik je u tome da sto treba toliko jako da
zatresemo da loptica iskoi iz lokalnog
minimuma, ali ipak ne toliko jako da ispadne i
iz globalnog minimuma.
Simulirano hlaenje je jedno reenje po kome
prvo
jako
zatresemo
sto
(visoka
temperatura), pa postepeno smanjujemo
intenzitet
potresa
stola
(smanjujemo
temperaturu).
48

Kraj

49

You might also like