19
Rešavanje problema korišćenjem pretrage

Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Rešavanje problema korišćenjem pretrage

Page 2: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Uvod Veštačka inteligencija bavi se, prevashodno, problemima u kojima se javlja kombinatorna eksplozija, problemima čije rešavanje zahteva razmatranje ogromnog broja mogućnosti. Rešavanje takvih problema obično se svodi na neku vrstu pretrage, sistematičnog postupka obrade velikog broja mogućnosti.

Kako je sve mogućnosti često nemoguće razmotriti u razumnom vremenu, potrebno je pretragu usmeravati kako bi se razmotrile mogućnosti koje su izglednije da daju rešenje problema. Neke od realnih primena algoritama pretrage su pronalaženje najkraćih puteva, igranje logičkih igara, navigacija robota, automatsko nalaženje redosleda sklapanja delova u industriji, dizajn proteina sa određenim traženim svojstvima, rešavanje logističkih problema i slično.

Problemi pretrage često zahtevaju pronalaženje niza koraka ili akcija kojima se ostvaruje cilj kada to ne može biti ostvareno pojedinačnim koracima ili akcijama.

Page 3: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Primer 1: Slagalica 15 (ili Lojdova slagalica)

Sastoji se od 15 kvadrata raspoređenih na tabli veličine 4x4 polja.

Kvadrati su numerisani brojevima od 1 do 15. Slagalicu je potrebno urediti tako da su polja poređana redom od prvog reda i da je poslednje polje u četvrtom redu prazno. Taj raspored polja može se kompaktno zapisati kao [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, _]

Kada je dat proizvoljan raspored polja na tabli, u svakom koraku može se pomeriti jedno od dva ili jedno od tri ili jedno od četiri polja. Dakle, za svaki raspored broj mogućih akcija je izmedu dva i četiri.

Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje, sve dok se ne naiđe na traženi, ciljni raspored (razmatranje svih mogućih koraka za početni raspored [_, 2, 3, 4, 6, 5, 10, 12, 9, 1, 8, 15, 13, 14, 7, 11]

Page 4: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Lojdova slagalica

Page 5: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Objašnjenje problema Očigledno, ovaj pristup sigurno dovodi do rešenja za bilo koju početnu poziciju. Isto tako, očigledno je da je ovaj pristup potpuno nepraktičan i zahteva razmatranje ogromnog broja mogućnosti.

Zbog toga, praktično sprovodivo rešenje zahteva neku dodatnu ideju i usmeravanje pretrage, kako ne bi bile razmatrane sve mogućnosti. Jedna moguća ideja bi bila da se razmatraju samo koraci koji vode do pozicija koje su bliže rešenju, pri čemu se za odredivanje „rastojanja pozicije od ciljne pozicije“ može uzeti zbir rastojanja svakog polja od njegove ciljne pozicije. Medutim, ova jednostavna ideja ne dovodi do rešenja. U nekim pozicijama nema koraka koji vodi ka boljoj pozicijama.

Page 6: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Primer 2 U skupu gradova od kojih su neki međusobno povezani putevima, zadatak je od jednog grada stići do nekog drugog zadatog grada. Ovaj problem može se razmatrati kao problem pretrage: pretraga može da kreće od početnog grada, da se zatim razmatraju svi gradovi do kojih se može doći neposredno, i tako dalje, sve dok se ne dode do ciljnog grada.

Konkretan zadatak može biti, na primer, nalaženje puta od Zagreba do Bukurešta. Mogu biti različite varijante problema u kojoj jesu i u kojoj nisu unapred poznati svi gradovi i putevi između njih. U prvom slučaju, bitno je i da li su poznate dužine puteva izmedu gradova ili vazdušna rastojanja.

Page 7: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Graf koji opisuje problem puteva između gradova

Page 8: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Graf kao opis prostora stanja Problemi pretrage najčešće mogu da se reprezentuju grafovima.

Graf opisuje prostor stanja i mogućih akcija i tada je svakom čvoru grafa pridruženo jedno stanje, a svakoj grani jedna akcija.

Graf koji opisuje prostor stanja može da bude neusmeren ili usmeren.

Neusmeren je ako za svako stanje A iz kojeg se može nekom akcijom doći do stanja B, postoji odgovarajuća akcija iste cene kojom se iz stanja B može doći do stanja A.

Primer slagalice, gradova, šaha ?

Page 9: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Stablo pretrage Pretraživanjem , obilaskom grafa prostora stanja nastaje stablo pretraživanja ili stablo pretrage.

U stablu pretrage svakom čvoru pridruženo je jedno stanje, ali jedno stanje može da bude posećeno više puta tokom obilaska, pa može da se nalazi u više čvorova stabla pretrage

Zbog toga stablo pretrage može da bude beskonačno i onda kada je prostor stanja konačan

Page 10: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Problem pretrage oOpšti problem nalaženja puta (eng. Path finding) može se opisati na sledeći način: dat je graf svojim čvorovima i granama izmedu nekih od njih i zadatak je naći put izmedu dva zadata čvora (polazni čvor i ciljni čvor).

oGranama grafa mogu da budu pridružene nenegativne cene i zadatak može da bude nalaženje puta izmedu zadata dva čvora takvog da je zbir cena svih grana koje pripadaju putu minimalan.

oPostoji mnogo algoritama za rešavanje ovog problema i oni imaju mnoge primene, uključujući primene u planiranju obilazaka i putovanja, dizajniranju čipova, rutiranju u računarskim mrežama, navigaciji robota, industriji igara, itd.

Page 11: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Elementi problema pretrage Da bi se neki problem razmatrao kao problem pretrage i rešavao primenom algoritama pretrage, on treba da ima određenu strukturu i određene elemente:

◦ Skup mogućih stanja: U toku procesa pretrage razmatraju se različita stanja. Za odlučivanje u datom trenutku potrebno je poznavanje skupa svih raspoloživih stanja

◦ Polazno stanje: Rešavanje problema kreće od određenog stanja, koje nazivamo polaznim stanjem

◦ Test cilja: Problem je rešen ako se dođe do ciljnog stanja, završnog stanja. Potrebno je da postoji raspoloživ efektivan test koji proverava da li se došlo do ciljnog stanja tj. do završetka procesa pretrage

◦ Skup mogućih akcija: U svakom koraku pretrage može se preduzeti neki korak, neka akcija. Niz akcija preduzetih u odgovarajućim trenucima treba da dovedu do rešenja problema. Skup mogućih akcija može biti isti u svakom stanju ili može da se razlikuje od stanja do stanja, što zavisi od problema koji se rešava

Page 12: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Elementi problema pretrage ◦ Funkcija prelaska: Ova funkcija preslikava par stanje-akcija u novo stanje,

dobijeno izborom neke akcije u nekom stanju. Ukoliko ova funkcija nije poznata, nije poznato u koje će se stanje dospeti posle preduzimanja određene akcije i proces odlučivanja postaje kompleksniji. Funkcija prelaska nije poznata , na primer, u slučaju delovanja u nepoznatoj ili promenljivoj okolini. Jedan način rešavanja ovakvih problema je korišćenjem informacija iz iskustva, odnosno aproksimiranjem ove funkcije pomoću procesa koji se zasniva na analizi pokušaja i grešaka

◦ Cena akcije: Ovo je funkcija koja preslikava par stanje-akcija u numeričku vrednost – cenu preduzimanja date akcije u datom stanju

Page 13: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Primer slagalice Skup stanja: skup svih permutacija [s1 s2…s16] za si Є {_,1,2,…15}

Polazno stanje i završno stanje: polazno stanje može biti bilo koje stanje slagalice (za neke od njih ciljni raspored nije moguće dobiti)

Test cilja : provera da li je stanje jednako [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,_]

Skup akcija: može biti {levo, desno, gore, dole}, gde se date akcije odnose na pomeranje praznog polja levo, desno, gore i dole. Iako je naizgled prirodnije kao akcije razmatrati pomeranje kvadrata susednih praznom polju na prazno polje, ovakva formulacija je jednostavnija zbog uniformnosti

Funkcija prelaska: preslikava stanja i akcije u stanja koja nastaju pomeranjem praznog polja na neku od četiri moguće strane

Cena akcije: može biti konstantna za svaku akciju na primer 1, pošto se sva pomeranja mogu smatrati jednako skupim. Cena rešenja je u tom slučaju jednaka ukupnom broju pomeranja potrebnih za slaganje slagalice

Page 14: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Elementi problema stizanja iz jednog grada u drugi

Skup stanja:

Polazno stanje:

Test cilja:

Skup mogućih akcija:

Funkcija prelaska:

Cena akcije:

Page 15: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Definisanje problema pretraživanja

• stanjima,

• operatorima,

• strategijama pretraživanja,

• procenjivačkim funkcijama,

• faktorom grananja

Page 16: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Stanja i operatori • Stanje se može definisati kao snimak procesa u vremenu

• Od značaja su stabilna stanja, to jest stanja, koja bez spoljnih stimulansa ostaju nepromenjena. • Promene koje se dešavaju pod dejstvom spoljnih stimulansa su trenutne i diskretne.

• Da bi stanja bila od koristi u procesu pretraživanja, ona moraju da u sebe uključe sve što je važno o nekoj situaciji koja se analizira, što obično znači listu činjenica

• Promena stanja pod dejstvom spoljnog stimulansa zove se prelaz.

• Cilj pretraživanja se stoga svodi na to da se polazeći od početnog, startnog stanja, nizom prelaza ono prevede u završno stanje koje predstavlja cilj, odnosno rešenje problema.

Page 17: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Operatori Neka je data tačka X u prostoru stanja PS(sx1, sx2, sx3, ..., sxn), gde su sx1, sx2, sx3, ..., sxn deskriptori tačke X u prostoru stanja.

• Tačka X se može prevesti u tačku Y opisanu sa PS(sy1, sy2, sy3, ..., syn) pod dejstvom nekog operatora opi iz skupa operatora opi X→Y

• Operator opi ne može se uvek bezuslovno primeniti na svako X, znači ne važi opi X → Y za svako X

• opi se može primeniti na tačku X u prostoru stanja samo ako deskriptori tačke X zadovoljavaju podskup uslova iz skupa uslova U

Page 18: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Predstavljanje prostora stanja Zadatak 1: Problem dva krčaga

Na raspolaganju su dva krčaga zapremina 3 i 2 litra bez mernih oznaka. Krčazi mogu da se pune vodom sa česme, a voda može i da se prospe. Potrebno je postići da se u manjem krčagu nađe 1 litar vode.

a) Definisati prostor stanja problema.

b) Definisati operatore koji sistem prevode iz stanja u stanje.

c) Navesti jedan od redosleda primene operatora koji predstavlja rešenje problema.

Page 19: Rešavanje problema korišćenjem pretrage...Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim stanjima i tako dalje,

Predstavljanje prostora stanja Zadatak 2:

Dve posude od 4 i 3 litra bez mernih oznaka.

Kako se posuda od 4 litra može napuniti tačno do polovine svoje zapremine?

a) Definisati prostor stanja problema.

b) Definisati operatore koji sistem prevode iz stanja u stanje.

c) Navesti jedan od redosleda primene operatora koji predstavlja rešenje problema.