pretrazivanje stabala- algoritmi
DESCRIPTION
PRETRAZIVANJE STABALA- AlgoritmiTRANSCRIPT
-
UVOD U UMJETNU INTELIGENCIJU PRETRAIVANJE(UVOD I SLIJEPO PRETRAIVANJE)Prof.dr.sc.Darko [email protected] 813
DefinicijaSlijepo pretraivanje
-
to je pretraivanje ?
Postupak rjeavanja zadataka umjetne inteligencije. Pretraivanje ukljuuje traenje puta od poetnog stanja do ciljnih stanja kroz prostor stanja unutar kojeg se zadatak rjeava.
-
to je pretraivanje ?
Skup stanja je organiziran u strukturu grafa ili stabla pa jepretraivanje pronalaenje puta kroz graf ili stablo.
Pretraivanje - kretanje od vora do vora nakon irenja i generiranja susjednih (slijednih) vorova.
-
Primjer problem najkraeg puta
Dva mogua zadatka:1. PRONAI put. (FIND a (the) path.) = computational cost
2. PRATI put. (TRAVERSE the path.) = travel cost
Postupak traenja moe biti:
1. nai bilo koji put
2. nai najkrai put
Mrea od 8 gradovaMrea od 8 gradova
AA
DD
BB
EE
CC
FF
GGSS
33
44
44
44
55 55
44
3322
-
AA
DD
BB
EE
CC
FFGG
SS33
44
44
44
55 55
44
33
Prostor rjeenja zadatka predstavljen grafom tipa stablo
22
SSAA DD
BB DD EEAA
CC EE EE BB BB FF
DD FF BB FF CC EE AA CC GG
GG CC GG FF
GG
33
33 33
33
33
22
22
2244
44
4444
44
4444
44
44
44
44
44
5555
55 55
5555
-
Oznake:U ovom dijelu govorimo o tehnikama pretraivanja kod kojih ne traimo optimalni put, pa izostavljamo teine.
SSAA DD
BB DD EEAA
CC EE EE BB BB FF
DD FF BB FF CC EE AA CC GG
GG CC GG FF
GG
Na svakoj razini kombinacijom slova stavljamo oznaku koja jednoznano definira preenu rutu
OznakaOznaka::SASA OznakaOznaka::SDASDA
OznakaOznaka::SDEBASDEBA
-
Terminologija:
vor(node), poveznica (link or edge), grana (branch)Roditelj (parent), dijete (child), predak (ancestor), potomak(descendant)Korijenski vor (root node), Ciljni vor (goal node)iriti (expand) / Otvoreni vor (open node) / Zatvoreni vor (closed node) / Faktor grananja (Branching factor)
SSAA DD
BB DD EEAA
CC EE EE BB BB FF
DD FF BB FF CC EE AA CC GG
GG CC GG FF
GG
-
Podjela strategija pretraivanja
Podjela strategija pretraivanja je prema informacijama koje se koriste tijekom pretraivanjaInformacije koje se koriste tijekom pretraivanja1. mogu se odnositi na:- cijeli prostor stanja ili- samo na neka stanja.2. mogu biti dostupna:- unaprijed ili- samo nakon irenja vora.U najgorem sluaju raspoloiva informacija je ona u kojoj moemo razlikovati ciljna stanja od ostalih.
-
Podjela strategija pretraivanja
Pretraivanja dijelimo i na1. pretraivanja prema naprijed ili unaprijedna ulanavanja (forward chaining)2. pretraivanja prema natrag ili povratna ulanavanja (beckward chaining)
-
Podjela strategija pretraivanja
Povratno - grananje u smjeru Start Cilj (Goal)Povratno grananje u smjeru Cilj (Goal) Start
GoalGoalStartStart
-
Podjela strategija pretraivanja
1. Slijepo pretraivanje (engl. Blind search, Bruteforce search, Uninformed search)
2. Usmjereno pretraivanje (engl. Directed search, Informed search)
Pokazatelji efikasnosti pojedinog postupka:1. Da li sigurno nalazi rjeenje ?2. Da li je rjeenje najbolje ?3. Vremenska sloenost ?4. Prostorna sloenost ?
-
Slijepo pretraivanje
Slijepo pretraivanje je pretraivanje u kojem su jedine raspoloive informacije:1. poetno stanje2. dozvoljene operacije nad stanjima3. test na rjeenje problemaSlijepo pretraivanje napreduje sistematski kroz prostor pretraujui vorove u nekom prethodno definiranom redoslijedu ili birajui ih sluajno.
-
Kriteriji usporedbe metoda:
Potpunost: Da li algoritam uvijek pronalazi rjeenje?
(za svaku mreu ukoliko rjeenje postoji)
Vremenska kompleksnost (brzina) : Koji je ukupan broj vorova koji se trebaju otvoriti prije
dolaska do rjeenja ? Prostorna kompleksnost (memorija) : Koji je maksimalni broj vorova koji se moraju memorirati u
pojedinom stupnju rjeavanja zadatka?Kompleksnosti izraavamo u odnosu na:
d = maksimalnu dubinu stabla (ukupan broj razina) b = (prosjeni) faktor grananja stabla m = najmanja dubina na kojoj se dolazi do rjeenja
-
Napomena: Aproksimacije
U analizi kompleksnosti ne uzima se u obzir redukcija traenja zbog eliminacije petlji.
Ukljuivanje utjecaja petlji ini analizu previe kompleksnom.
-
Slijepo pretraivanje - metode
1. Pretraivanje u irinu2. Pretraivanje u dubinu3. Nedeterministiko pretraivanje4. Iterativno pretraivanje u dubinu5. Dvostrano pretraivanje (bi-direkcijsko) pretraivanje
-
Pretraivanje u irinu
Pretraivanje u irinu (engl. breadth-first search)je pretraivanje u kojem se ispituju svi vorovi na odreenoj razini prije odlaska u slijedeu razinu.
Struktura reda (engl. queue) koristi se za uvanje generiranih i jo ne istraenih vorova.
Redoslijed kojim se vorovi pohranjuju u red za ispitivanje i uklanjanje odreuje tip pretraivanja.
-
Pretraivanje u irinu
-
Pretraivanje u irinu:
SS
AA DD
BB DD AA EE
CC EE EE BB BB FF
DD FF BB FF CC EE AA CC GG
GG
GGGG FFCC
-
Pretraivanje u irinu
ALGORITAM pretraivanja u irinu
1. Pohrani poetni vor u red.2. AKO je red prazan ONDA vrati pogreku i STANI.3. AKO je prvi element reda ciljni vor ONDA vrati
naeno uspjeno rjeenje i STANI.4. Inae, ukloni prvi vor u redu, razvi ga i svu njegovu
djecu stavi na rep reda bilo kojim redom.5. Vrati se na korak 2.
-
ONLY ONLY DIFFERENCE !DIFFERENCE !
Breadth-first algorithm:1. 1. QUEUEQUEUE
-
Razvoj pretraivanja u irinu
(S) S makni, (SA,SD) pronai i dodaj(SA, SD) SA makni, (SAB,SAD,SAS) pronai,
(SAB,SAD) dodaj - SAS je petlja pa se odbacuje(SD,SAB,SAD) SD makni, (SDA,SDE,SDS) pronai,
(SDA,SDE) dodaj(SAB,SAD,SDA,SDE) SAB makni, (SABA,SABE,SABC) pronai
(SABE,SABC) dodaj(SAD,SDA,SDE,SABE,SABC) SAD makni, (SADS,SADA, SADE)
pronai, (SADE) dodajitd, sve dok red ne sadri:
(SABED,SABEF,SADEB,SADEF,SDABC,SDABE,SDEBA,SDEBC, SDEFG)cilj (G) dosegnut: javi uspijeh
-
AA
DD
BB
EE
CC
FFGG
SS33
44
44
44
55 55
44
33
Prostor rjeenja zadatka predstavljen grafom tipa stablo
22
SSAA DD
BB DD EEAA
CC EE EE BB BB FF
DD FF BB FF CC EE AA CC GG
GG CC GG FF
GG
33
33 33
33
33
22
22
2244
44
4444
44
4444
44
44
44
44
44
5555
55 55
5555
-
Pretraivanje u irinu POTPUNOST rjeenja
POTPUNO
ak i ukoliko ne odbacujemo petlje !!!
UVIJEK pronalazi NAJKRAI PUT.
-
Pretraivanje u irinu Vremenska kompleksnost
Ukoliko se vor nalazi na dubini m svi vorovi do te dubine e biti razvijeni.
ddGGbb
mm
Ako je b broj vorova djece, a m razina vremenska kompleksnost je
O(bm)
-
Pretraivanje u irinu Prostorna kompleksnost (memorija)
Najvei broj vorova koji se nalazi u redu je razvijen na razini mod korjenskog vora.
GGddbb
mm
Red mora sadravati sve vorove na toj razini, pa je prostorna kompleksnost isto tako proporcionalna O(bm)
-
Pretraivanje u irinu
Eksponencijalna kompleksnost je najvei nedostatak pretraivanja u irinu.
-
Pretraivanje u irinu Primjer 2
-
Pretraivanje u irinu - Primjer
-
Pretraivanje u irinu - Primjer
-
Pretraivanje u irinu - Primjer
-
Pretraivanje u dubinu
Pretraivanje u dubinu (engl. depth-first search)
Pretrauje poniranjem niz stablo to je bre mogue tako da uvijek generira djecu zadnje proirenog vora dok ne doe do rjeenja (ili se pree zadani limit dubine).
Algoritam pretraivanja u dubinu razlikuje se od onog u irinu po redoslijedu kojim je taj vor stavljen u red novo stvorena djeca stavljaju se na poetak reda tako da se ona prva ispituju.
-
Pretraivanje u dubinu
-
Pretraivanje u dubinu
Izaberi nasljedni vor Uobiajeno : sa lijeva na desno
Idi ponovo na nasljedni vor na isti nainVraaj se natrag tek kada doe do zadnje razine, a nisi pronaao rjeenje.
BB
CC EE
DD FF
GG
SS
AA
-
Pretraivanje u dubinu
ALGORITAM pretraivanja u dubinu
1. Pohrani poetni vor u red.2. AKO je red prazan ONDA vrati pogreku i STANI.3. AKO je prvi element reda ciljni vor ONDA vrati naeno uspjeno rjeenje i STANI. Inae,4. Ukloni prvi vor u redu, razvi ga i svu njegovu djecu stavi na poetak reda bilo kojim redoslijedom.5. Vrati se na korak 2.
- Depth-first algorithm:1. 1. QUEUEQUEUE
-
AA
DD
BB
EE
CC
FFGG
SS33
44
44
44
55 55
44
3322
1. 1. QUEUEQUEUE
-
Razvoj pretraivanja u dubinu:
(S) S makni, (SA,SD) pronai i dodaj(SA, SD) SA makni, (SAB,SAD,SAS) pronai,
(SAB,SAD) dodaj(SAB,SAD,SD) SAB makni, (SABA,SABC,SABE) pronai,
(SABC,SABE) dodaj(SABC,SABE,SAD,SD) SABC makni, (SABCB) pronai,
nita se ne dodaje(SABE,SAD,SD) SABE makni, (SABEB,SABED,SABEF)
pronai, (SABED,SABEF) dodaj(SABED,SABEF,SAD,SD) SABED makni, (SABEDS,SABEDA.SABEDE) pronai, nita se ne dodaje(SABEF,SAD,SD) SABEF makni, (SABEFE,SABEFG) pronai, (SABEFG) dodaj
-
AA
DD
BB
EE
CC
FFGG
SS33
44
44
55 55
44
3322
SSAA DD
BB DD EEAA
CC EE EE BB BB FF
DD FF BB FF CC EE AA CC GG
GG CC GG FF
GG
33
33 33
33
33
22
22
2244
44
4444
44
4444
44
44
44
44
44
5555
55 55
5555
-
Pretraivanje u dubinu POTPUNOST rjeenja
Rjeenje je potpuno za konane mree.
VANA NAPOMENA: Vano je ubaciti algoritam za provjeru i eliminaciju petlji. Da se to ne napravi potpunost postaje upitna. Algoritam moe zaglaviti u beskonane petlje i nikada ne doi do cilja.
Algoritam NE NALAZI najbolje rjeenje.
-
AA
DD
BB
EE
CC
FFGG
SS33
44
44
55 55
44
3322
SSAA DD
BB DD EEAA
CC EE EE BB BB FF
DD FF BB FF CC EE AA CC GG
GG CC GG FF
GG
33
33 33
33
33
22
22
2244
44
4444
44
4444
44
44
44
44
44
5555
55 55
5555
-
Vremenska kompleksnost pretraivanje po dubiniU najgorem sluaju:
(jedini) moe biti na kraju najdesnije grane,
GG
ddbb
Vremenska kompleksnost= bd+ bd-1 + + 1 = bd+1 -1Iz ega slijedi: O(bd) b b -- 11
-
Pretraivanje u dubinu Prostorna kompleksnost (memorija)Najvei broj vorova u redu je kod lijevog najdonjegvoraPrimjer: d = 3, b = 3 :
......
Red ukljuuje maksimalno 7 vorova.Openito: ((b-1) * d) + 1Pa je: O(d*b) (manja nego kod pretraivanja u irinu)Ovo je pretraivanje pogodnije od pretraivanja u irinu kada stablo pretraivanja ima puno ciljnih vorova.
-
Pretraivanje u dubinu - Primjer
-
Pretraivanje u dubinu - Primjer
-
Pretraivanje u dubinu rjeavanje slagalice 3x3
-
Usporedba:Pretraivanje u dubinu: AKO prostor rjeenja sadri vrlo duge grane bez rjeenja, ONDA pretraivanje u dubinu ima veliku VREMENSKU KOMPLEKSNOST
Pretraivanje u irinu: Loe je u odnosu na prostornu kompleksnost (memoriju) !
Rjeenje ?? Ne-deterministiko pretraivanje Pretraivanje limitirano po dubini Iterativno pretraivanje u dubinu
-
Ne-deterministiko pretraivanje
ALGORITAM ne-deterministikog pretraivanja
1. Pohrani poetni vor u red.2. AKO je red prazan ONDA vrati pogreku i STANI.3. AKO je prvi element reda ciljni vor ONDA vrati naeno uspjeno rjeenje i STANI. Inae,4. Ukloni prvi vor u redu, razvi ga i svu njegovu djecu stavi na bilo koje mjesto sluajnim odabirom.
5. Vrati se na korak 2.
- Non-deterministic Search:1. 1. QUEUEQUEUE
-
Pretraivanje limitirano po dubinu
Pretraivanje u dubinu po principima pretraivanja u dubinu, ali samo do odreene dubine, a nakon toga se ide u slijedeu granu do iste dubine. Algoritam je u jednoj iteraciji identian algoritmu za pretraivanje u dubinu. Taj se algoritam prekida kada je postignuta dubina d, ako cilj nije pronaen. Uklanjaju se svi vorovi iz reda, d se poveava za jedan i postupak ponovno zapoinje.
- Depth-limited search:1. 1. DEPTHDEPTH
-
Iterativno pretraivanje u dubinu
Pretraivanje u dubinu koje u prvom koraku ide do dubine 1, a ako rjeenje nije naeno odbacuju se vorovi i zapoinje ponovno pretraivanje u drugoj iteraciji do dubine 2. Ako rjeenje i tada nije naeno zapoinje ponovno pretraivanje u dubinu do dubine 3 itd. slijedno do neke granine dubine n.
Algoritam je u jednoj iteraciji identian algoritmu za pretraivanje u dubinu. Taj se algoritam prekida kada je postignuta dubina d, ako cilj nije pronaen. Uklanjaju se svi vorovi iz reda, d se poveava za jedan i postupak ponovno zapoinje.
-
Iterative deepening algorithm:
1. 1. DEPTHDEPTH
-
Iterativno pretraivanje u dubinu
-
Iterativno pretraivanje u dubinu
-
Iterativno pretraivanje u dubinu
-
Iterativno pretraivanje u dubinu
-
Iterativno pretraivanje u dubinu najbolje slijepo pretraivanje
Potpuno: da nalazi najkrai put (optimalno rjeenje) kao pretraivanje u dubinu.
b b -- 11bm-1+ bm-2+ + 1 = bm -1 = O(bm-1)
ZakljuakZakljuak: : najbolje slijepo pretraivanjenajbolje slijepo pretraivanje
Vrijeme potroeno na dubini m je O(bm)
Prostorna kompleksnost: b*m (kombinira dobre osobine pretraivanja u dubinu i irinu)Vremenska kompleksnost: Ukoliko je rjeenje naeno na dubini m, koliko smo vremena
izgubili izgradnjom pretraivanjem manjih grana??
-
Bi-direkcijsko pretraivanje
Mogue je ako problem:1. ima jedno ciljno stanje koje je dano eksplicitno i2. sve operacije na vorovima (stanjima, objektima) imaju inverzne.
Pretrauje se istodobno u dva smjera:- unaprijed poevi od poetnog stanja- unatrag poevi od cilja
Program pohranjuje generirana stanja oba smjera dok se nenae zajedniki vor (stanje).
Sve tri metode pretraivanja mogu se kombinirati u dvosmjerno pretraivanje.
-
Bidirekcionalno pretraivanje
- Bi-directional algorithm:1. 1. QUEUE1QUEUE1
-
Osobine (Bi-direkcijsko):
Potpunost: da.
Vremenska kompleksnost: O(bm/2)
Prostorna kompleksnost: O(bm/2)
-
Usporedba algoritama slijepog pretraivanja