28
HEURISTI HEURISTI Č Č KE PRETRAGE KE PRETRAGE Informativne (heurističke) Informativne (heurističke) strategije pretrage strategije pretrage Funkcije ocene Funkcije ocene A i A A i A * algoritmi pretrage algoritmi pretrage Svojstva algoritma A Svojstva algoritma A * Primeri heurističkih pretraga Primeri heurističkih pretraga Mere efikasnosti algoritama pretrage Mere efikasnosti algoritama pretrage

HEURISTI Č KE PRETRAGE

  • Upload
    lyneth

  • View
    46

  • Download
    2

Embed Size (px)

DESCRIPTION

HEURISTI Č KE PRETRAGE. Informativne (heurističke) strategije pretrage Funkcije ocene A i A * algoritmi pretrage Svojstva algoritma A * Primeri heurističkih pretraga Mere efikasnosti algoritama pretrage. EVALUACIONE FUNKCIJE. - PowerPoint PPT Presentation

Citation preview

HEURISTIHEURISTIČČKE PRETRAGEKE PRETRAGE

Informativne (heurističke) strategije pretrage Informativne (heurističke) strategije pretrage Funkcije oceneFunkcije ocene A i AA i A** algoritmi pretrage algoritmi pretrage Svojstva algoritma ASvojstva algoritma A** Primeri heurističkih pretragaPrimeri heurističkih pretraga Mere efikasnosti algoritama pretrageMere efikasnosti algoritama pretrage

EVALUACIONE FUNKCIJEEVALUACIONE FUNKCIJE Informativne strategijeInformativne strategije - Ukoliko za rešavanje datog problema - Ukoliko za rešavanje datog problema

posedujemo dodatne informacije vezane za prirodu rešavanog posedujemo dodatne informacije vezane za prirodu rešavanog problema, a koje nam olakšavaju odluku o tome koji naredni problema, a koje nam olakšavaju odluku o tome koji naredni čvor treba otkriti u grafu pretrage. čvor treba otkriti u grafu pretrage.

Heurističke informacijeHeurističke informacije – specifične informacije vezane za – specifične informacije vezane za datu problemsku oblast koje olakšavaju procenu datu problemsku oblast koje olakšavaju procenu perspektivnosti mogućih alternativnih akcija u toku rešavanja perspektivnosti mogućih alternativnih akcija u toku rešavanja datog problema.datog problema.

Formalno se definišu kao Formalno se definišu kao evaluacione (heurističke) funkcijeevaluacione (heurističke) funkcije, , koje se primenjuju na čvorove u grafu pretrage. Usvojeno je koje se primenjuju na čvorove u grafu pretrage. Usvojeno je da malim vrednostima odgovaraju perspektivniji čvorovi.da malim vrednostima odgovaraju perspektivniji čvorovi.

Sve strategije ovog tipa rade na principu otkrivanja Sve strategije ovog tipa rade na principu otkrivanja najperspektivnijeg čvora i potonjeg testiranja da li je najperspektivnijeg čvora i potonjeg testiranja da li je dostignut ciljni čvor.dostignut ciljni čvor.

pretraga u širinu

2 8 3

1 6 4

5

2 8 3

1 6 4

7 5

2 8 3

1 4

7 5

2 8 3

1 6 4

7

2 8 3

4

7 5

2 3

4

7 5

2 8 3

1

7 5

8 3

2 1 4

7 5

2 8 3

7 1 4

5

8 3

2 1 4

7 5

7 6 5

6

1

6

1 8

6

4

6 6

6

4

5 3 5

3 3 4

3 4

3

ka cilju

= broj pozicija koje se ne poklapaju sa ciljnom= broj pozicija koje se ne poklapaju sa ciljnom)(ˆ nf

2 8 31 6 4

5

2 8 31 6 4

7 5

2 8 31 4

7 5

2 8 31 6 4

7

2 8 34

7 5

2 34

7 5

2 8 31

7 5

8 32 1 4

7 5

2 8 37 1 4

5

7 6 5

6

16

1 864

6 6

0+4

1+5 1+3 1+5

2+3 2+3 2+4

3+3 3+4

31 4

5

21 4

5

1 34

5

1 37 4

5

1 38 4

5

8

2

7 6

3

8

7 6

2

8

7 6

2

7 6

286

3+2 3+4

4+1

5+2 5+0

CILJ

)(ˆ)(ˆ)(ˆ nhngnf

OPŠTI ALGORITAM PRETRAGE NA GRAFUOPŠTI ALGORITAM PRETRAGE NA GRAFUGRAPHSEARCHGRAPHSEARCH

1.1. Kreirati graf pretrage Kreirati graf pretrage GG, koje se u početku sastoji samo od startnog , koje se u početku sastoji samo od startnog čvora čvora ss. Staviti . Staviti ss u uredjenu listu u uredjenu listu OPENOPEN..

2.2. Kreirati listu Kreirati listu CLOSEDCLOSED, koja je u početku prazna., koja je u početku prazna.3.3. Ako je Ako je OPENOPEN prazna lista, neuspešan kraj procedure. prazna lista, neuspešan kraj procedure.4.4. Selektovati prvi čvor Selektovati prvi čvor nn iz iz OPENOPEN. Izbrisati ga iz . Izbrisati ga iz OPENOPEN i zapisati u i zapisati u

listu listu CLOSEDCLOSED..5.5. Ako je Ako je nn ciljni čvor, procedura se završava sa uspehom. Ukupno ciljni čvor, procedura se završava sa uspehom. Ukupno

rešenje se dobija preko ukazatelja iz rešenje se dobija preko ukazatelja iz GG, unazad od , unazad od nn do do ss. . (Ukazatelji se formiraju u koraku 6.)(Ukazatelji se formiraju u koraku 6.)

6.6. Otvoriti čvor Otvoriti čvor nn generisanjem skupa generisanjem skupa MM svih njegovih naslednika. svih njegovih naslednika. Uvesti ukazatelje za sve elemente iz Uvesti ukazatelje za sve elemente iz MM ka ka nn u u GG, u cilju , u cilju identifikacije ovih čvorova kao naslednika čvora identifikacije ovih čvorova kao naslednika čvora nn. Za sve čvorove . Za sve čvorove iz M, koji su već u CLOSED odlučiti da li treba promeniti iz M, koji su već u CLOSED odlučiti da li treba promeniti ukazatelje njegovih potomaka iz ukazatelje njegovih potomaka iz GG..

7.7. Sortirati listu Sortirati listu OPENOPEN, proizvoljno ili na osnovu neke heuristike., proizvoljno ili na osnovu neke heuristike.8.8. Preći na korak 3.Preći na korak 3.

GRAPHSEARCH eksplicitno formira graf pretrage G i njegov GRAPHSEARCH eksplicitno formira graf pretrage G i njegov podgraf - stablo pretrage Tr.podgraf - stablo pretrage Tr.

Stablo Tr je odredjeno ukazateljima (korak 6). Ovim se Stablo Tr je odredjeno ukazateljima (korak 6). Ovim se obezbedjje jedinstvenost roditelja.obezbedjje jedinstvenost roditelja.

Čvorovi iz OPEN su krajnji čvorovi stabla pretrage, koji još Čvorovi iz OPEN su krajnji čvorovi stabla pretrage, koji još nisu birani za otvaranje.nisu birani za otvaranje.

Čvorovi iz CLOSED su ili krajnji čvorovi izabrani za otvaranje Čvorovi iz CLOSED su ili krajnji čvorovi izabrani za otvaranje koji nemaju naslednike ili neterminalni čvorovi ovog stabla.koji nemaju naslednike ili neterminalni čvorovi ovog stabla.

Svi mogući putevi do nekog čvora, otkriveni ovim algoritmom Svi mogući putevi do nekog čvora, otkriveni ovim algoritmom su u G u eksplicitnom obliku, dok je jedan izabrani put do su u G u eksplicitnom obliku, dok je jedan izabrani put do svakog čvora dat stablom Tr.svakog čvora dat stablom Tr.

Rešenje problema pretrage se dobija sledovanjem ukazatelja Rešenje problema pretrage se dobija sledovanjem ukazatelja od terminalnog (ciljnog) do početnog čvora.od terminalnog (ciljnog) do početnog čvora.

RAZJAŠNJENJE KORAKA 6RAZJAŠNJENJE KORAKA 6

Kada bi G bilo stablo, bili bismo sigurni da ni jedan od Kada bi G bilo stablo, bili bismo sigurni da ni jedan od potomaka generisan u koraku 6. nije generisan ranije.potomaka generisan u koraku 6. nije generisan ranije.

Pri ponovnom otkrivanju nekog čvora, do njega se otvara novi Pri ponovnom otkrivanju nekog čvora, do njega se otvara novi put, različit od onoga koji je do tada fiksiran u stablu pretrage put, različit od onoga koji je do tada fiksiran u stablu pretrage Tr.Tr.

Ukoliko je ovaj put kraći (manje težine) od onog koji je do Ukoliko je ovaj put kraći (manje težine) od onog koji je do tada postojao, potrebno je korigovati stablo pretrage Tr. tada postojao, potrebno je korigovati stablo pretrage Tr.

s

6

1

2

4 5

3

AA

BB

RAZJAŠNJENJE KORAKA 6RAZJAŠNJENJE KORAKA 6 čvor 4 ima za roditelja čvor 6 jer je put preko 6 do s kraći (4)čvor 4 ima za roditelja čvor 6 jer je put preko 6 do s kraći (4) čvor 2 za roditelja ima čvor 3 (put do s je dužine 4)čvor 2 za roditelja ima čvor 3 (put do s je dužine 4) Nakon otvaranja čvora1 generiše se njegov naslednik, čvor 2, Nakon otvaranja čvora1 generiše se njegov naslednik, čvor 2,

koji je već bio u CLOSED. U novonastaloj situaciji treba koji je već bio u CLOSED. U novonastaloj situaciji treba preispitati ukazatelje.preispitati ukazatelje.

Sada je roditelj čvoru 4, čvor 2 jer je put do s preko čvorova 2 i Sada je roditelj čvoru 4, čvor 2 jer je put do s preko čvorova 2 i 1 kraći i iznosi 3 umesto prethodnih 4.1 kraći i iznosi 3 umesto prethodnih 4.

Novi roditelj čvoru 2 je čvor 1, budući da je put do s preko Novi roditelj čvoru 2 je čvor 1, budući da je put do s preko čvora 1 svega 2 umesto prethodnih 4 preko čvora 3.čvora 1 svega 2 umesto prethodnih 4 preko čvora 3.

Graphsearch je dovoljno opšti za obuhvatanje i Graphsearch je dovoljno opšti za obuhvatanje i neinformativnih strategija pretrage.neinformativnih strategija pretrage.

Pretraga u širinu odgovara stavljanju novootvorenih Pretraga u širinu odgovara stavljanju novootvorenih čvorova na kraju liste OPEN, koja radi po principu FIFO čvorova na kraju liste OPEN, koja radi po principu FIFO (first in, first out – prvi ulazi, prvi izlazi).(first in, first out – prvi ulazi, prvi izlazi).

Pretraga u dubinu se dobija kada se novootvoreni Pretraga u dubinu se dobija kada se novootvoreni čvorovi stavljaju na početak liste OPEN, koja radi sada čvorovi stavljaju na početak liste OPEN, koja radi sada po principu LIFO (last in, first out- poslednji ulazi, prvi po principu LIFO (last in, first out- poslednji ulazi, prvi izlazi )izlazi )

Heuristička pretraga kojom se čvorovi u OPEN sortiraju Heuristička pretraga kojom se čvorovi u OPEN sortiraju tako da najperspektivniji čvor dolazi na prvo mesto se tako da najperspektivniji čvor dolazi na prvo mesto se naziva još i pretraga naziva još i pretraga prvi najboljiprvi najbolji (Best First) (Best First)

Neka je )(nf proizvoljna funkcija ocene sa značenjem minimalne cene puta od polaznog čvora s do ciljnog čvora pod uslovom da prolazi kroz čvor n. Shodno principu optimalnosti, optimalan put je i u delovima optimalan, pa se )(nf može predstaviti kao suma puta najniže cene od s do n i puta najniže cene od n do ciljnog čvora.

)()()( nhngnf Ako je ),( ji nnk minimalna cena puta izmedju

čvorova in i jn , tada važi

),(min)( ii tnknh , gde je it ciljni čvor.

),()( nskng , komponenta optimalnog puta od početnog čvora s do čvora n. Očigledno je u važnosti )()( shsf . Ako za obe komponente uvedemo procene )(ˆ ng

i )(ˆ nh , tada je procena funkcije ocene

)(ˆ)(ˆ)(ˆ nhngnf Za komponentu )(ˆ ng možemo uzeti dužinu puta os do n na grafu pretrage G generisanom do tog trenutka. Tada je u važnosti nejednakost )()(ˆ ngng .

)(nf)(nh

)(ng

Komponenta )(ˆ nh se mora zasnivati na heurističkin znanjima o datom problemu i naziva se heurističkom funkcijom. Algoritam koji u proceduri GRAPHSEARCH

koristi funkciju ocene )(ˆ)(ˆ)(ˆ nhngnf se naziva A algoritam. Primer: pretraga u širinu je A algoritam budući da

važi 0)(ˆ nh i dng )(ˆ , gde je d dubina čvora n u grafu pretrage.

Algoritam u kome se za heurističku funkciju )(ˆ nh uzima ona za koju važi nejednakost

)()(ˆ nhnh se naziva A* algoritam.

Primer: kako je 0)(ˆ nh , svakako donja granica

za koju važi )()(ˆ nhnh , pretraga u širinu je ujedno i A* algoritam.

Svojstva A* algoritmaSvojstva A* algoritma

Dopustivost (admissibility)Dopustivost (admissibility) Algoritam pretrage je dopustiv ukoliko za Algoritam pretrage je dopustiv ukoliko za

svaki graf završi svaki graf završi rad i nalazi optimalni put rad i nalazi optimalni put od početnog do ciljnog čvora, pod od početnog do ciljnog čvora, pod uslovom da taj put postoji.uslovom da taj put postoji.

Stav 1Stav 1 Algoritam A* je dopustiv.Algoritam A* je dopustiv.

Dokaz dopustivosti (admissibility)Dokaz dopustivosti (admissibility)

Lema 1Lema 1

U svakom koraku pre zavrU svakom koraku pre završetka A* , uvek šetka A* , uvek postoji čvor postoji čvor n*n* u OPEN, sa sledećim u OPEN, sa sledećim svojstvimasvojstvima

n*n* je na optimalnom putu do cilja je na optimalnom putu do cilja A* je već pronašao optimalan put do A* je već pronašao optimalan put do n*n* f(f(n*n*) ) ≤≤f(n0), n0-stratni čvor.f(n0), n0-stratni čvor.

Dokaz konzistentnostiDokaz konzistentnosti

Dokaz dopustivosti (admissibility)Dokaz dopustivosti (admissibility)

Dokaz se zatim izvodi u dva koraka:Dokaz se zatim izvodi u dva koraka: A* mora da okonča pretraguA* mora da okonča pretragu A* završava pretragu sa pronadjenim A* završava pretragu sa pronadjenim

optimalnim putem.optimalnim putem.

Poredjenje varijanti algoritma A*

A*1 : )(ˆ)(ˆ)(ˆ

111 nhngnf

A*2 : )(ˆ)(ˆ)(ˆ

222 nhngnf . A*

2 je informativniji od A*1 ukoliko za svaki

neciljni čvor važi )(ˆ)(ˆ12 nhnh .

Stav 2 Neka su A*

1 i A*2 dve varijante algoritma A*,

takve da je A*2 informativniji od A*

1. Tada nakon okončanja pretrage na bilo kom grafu koji sadrži put od s do ciljnog čvora, svaki čvor otkriven algoritmom A*

2 je otkriven i algoritmom A*1.

Stoga A*1 otkriva najmanje onoliko čvorova

koliko otkriva i A*2.

Odnos izmedju pojedinih algoritama Odnos izmedju pojedinih algoritama pretragepretrage

Monotono ograničenje

Heuristička funkcija )(ˆ nh zadovoljava uslov

monotonosti ukoliko za sve čvorove in i jn ,

takve da je jn naslednik čvora in , u važnosti

0)(),,()(ˆ)(ˆ thnncnhnh jiji .

Ova nejednakost podseća na nejednakost trougla. Stav 3 Ako je zadovoljen uslov monotonosti, tada za svako n izabrano za otkrivanje, važi

)()(ˆ ngng .

Ovo znači da A* automatski bira optimalan put do proizvoljnog čvora izabranog za otkrivanje. Stoga nije potrebna dopunska korekcija stabla pretrage Tr, odnosno nema potrebe da se proverava da li su tek otvoreni čvorovi već bili prisutni u listi CLOSED, odnosno nema potrebe za promenom naslednih odnosa medju čvorovima na tekućem stablu pretrage. Stav 4 Ako su zadovoljeni uslovi monotonosti, vrednost

funkcije ocene )(ˆ nf na nizu čvorova otkrivenih algoritmom A* ne opadaju.

HEURISTIHEURISTIČKA SNAGA FUNKCIJE OCENEČKA SNAGA FUNKCIJE OCENE Izbor h jednake najvećoj mogućoj gornjoj granici, obezbedjuje otkrivanje Izbor h jednake najvećoj mogućoj gornjoj granici, obezbedjuje otkrivanje

najmanjeg broja čvorova ne nerušavajući konzistentnost algoritma pretrage.najmanjeg broja čvorova ne nerušavajući konzistentnost algoritma pretrage. Često je moguće dobiti na heurističkoj snazi žrtvovanjem konzistentnosti.Često je moguće dobiti na heurističkoj snazi žrtvovanjem konzistentnosti. Jedan pogodan oblik funkcije ocene jeJedan pogodan oblik funkcije ocene je

gde velika vrednost za w daje veliki značaj heurističkoj komponenti, dok mala gde velika vrednost za w daje veliki značaj heurističkoj komponenti, dok mala vrednost daje algoritmu karakter pretrage u širinu.vrednost daje algoritmu karakter pretrage u širinu.

Ako se uzme da je Ako se uzme da je

algoritam u početku rada ima visoku usmerenost usled dominirajuće algoritam u početku rada ima visoku usmerenost usled dominirajuće heurističke komponente, dok pri kraju rada usled male vrednosti proizvoda heurističke komponente, dok pri kraju rada usled male vrednosti proizvoda

poprima svojstva pretrage u širinu.poprima svojstva pretrage u širinu.

)(ˆ)(ˆ)(ˆ nhwngnf

)(

1

ndConstw

hw ˆ

hw ˆ

MERE KVALITETA PRETRAGAMERE KVALITETA PRETRAGA Usmerenost pretrageUsmerenost pretrage

gde je L - dužina puta od starta do ciljagde je L - dužina puta od starta do cilja

T - broj otkrivenih čvorovaT - broj otkrivenih čvorova

PPmaxmax=1, odgovara optimalnim procedurama sa najvišom mogućom =1, odgovara optimalnim procedurama sa najvišom mogućom

heurističkom sangom, dok Pheurističkom sangom, dok P<<<<1 odgovara neinformativnim procedurama1 odgovara neinformativnim procedurama Pokazatelj efikasnosti grananja BPokazatelj efikasnosti grananja B B je konstantan faktor grananja stabla pretrage čija je dubina jednaka dužini B je konstantan faktor grananja stabla pretrage čija je dubina jednaka dužini

optimalnog puta od starta do cilja i čiji je ukupan broj čvorova identičan optimalnog puta od starta do cilja i čiji je ukupan broj čvorova identičan broju čvorova posmatranog grafa pretrage. Dobro svojstvo je da B ne zavisi broju čvorova posmatranog grafa pretrage. Dobro svojstvo je da B ne zavisi u velikoj meri od dužine puta od starta do cilja.u velikoj meri od dužine puta od starta do cilja.

T

LP

.1

)1(,32

B

BBTTBBBB

LL

Odnos izmedju B, N, dOdnos izmedju B, N, d