I122 Osnove umjetne inteligencije Tema:. 7.1.2016. predavač: Darija Marković asistent: Darija Marković
1 I122 Osnove umjetne inteligencije. 2/26
(PZO) Problem zadovoljavanja ograničenja sastoji se od 3 komponente X je skup varijabli {X 1,..., X n } D je skup domena {D 1,..., D n }, gdje je svaka domena vezana za jednu varijablu C je skup ograničenja koja odreduju dozvoljene kombinacije vrijednosti Svako stanje u PZO definirano je dodjelom vrijednosti nekim ili svim varijablama Dodjela koja ne krši niti jedno ograničenje naziva se konzistentna ili legalna (zakonita) dodjela Potpuna dodjela je ona u kojoj svaka varijabla ima dodjeljenu vrijednost Rješenje za PZO je konzistentna, potpuna dodjela I122 Osnove umjetne inteligencije. 3/26
Primjer bojenje zemljopisnih karata varijable: X = {W A, NT, Q, NSW, V, SA, T } domena: D i = {c, z, p} ograničenja: susjedne regije su različitih boja Implicitno: W A NT Eksplicitno: (W A, NT ) {(c, z), (c, p),... } I122 Osnove umjetne inteligencije. 4/26
Primjer N - kraljica varijable: Q k domena: D i = {1, 2,..., N} ograničenja: Implicitno: i, j (Q i, Q j ) bez napada Eksplicitno: (Q 1, Q 2 ) {(1, 3), (1, 4),... } I122 Osnove umjetne inteligencije. 5/26
Primjer sudoku varijable: svaki prazni kvadrat domena: D = {1, 2,..., 9} ograničenja: U svakom stupcu svi različiti U svakom retku svi različiti U svakoj 3 3 regiji svi različiti I122 Osnove umjetne inteligencije. 6/26
Vrste PZO Diskretne varijable konačne domene (svi navedeni primjeri) beskonačne domene (raspored poslova, varijable su početna i završna vremena za svaki posao) Kontinuirane varijable (problemi linearnog programiranja) Vrste ograničenja unarna ograničenja: ograničavaju vrijednost samo jedne varijable binarna ograničenja: povezuju dvije varijable ograničenja višeg reda (globalna ograničenja): ograničenje koje obuhvaća 3 ili više varijabli Preferense (prednosti/blaga (slaba) ograničenja) ograničenje koje nije apsolutno/jako, odnosno nije ga nužno zadovoljiti često predstavljaju cijenu postavljanja varijabli na ovaj način dolazimo do problema uvjetovane optimizacije I122 Osnove umjetne inteligencije. 7/26
Zaključivanje u PZO algoritam može pretraživati ili raditi odredenu vrstu zaključivanja zvanu prostiranje ograničenja, tj. koristeći ograničenja smanjiti domenu jedne varijable, što može izazvati smanjenje domene druge varijable itd. ključna ideja je lokalna konzistentnost. Ako svaku varijablu promatramo kao čvor u grafu, a svako binarno ograničenje kao granu (brid), onda nametanje lokalne konzistentnosti u svakom dijelu grafa dovodi do eliminiranja nekonzistenthih vrijednosti kroz graf tipovi lokalne konzistentnosti su konzistentnost čvora konzistentnost grane (brida) konzistentnost putanje K-konzistentnost I122 Osnove umjetne inteligencije. 8/26
Standardna formulacija pretrage za PZO stanje je definirano sa svim do tada dodjeljenim vrijednostima početno stanje: prazna dodjela funkcija sljedbenik: dodjeljuje vrijednost nedodjeljenoj varijabli test cilja: trenutna dodjela je potpuna i zadovoljava sva ograničenja naivan pristup je raditi pretrživanje u dubinu I122 Osnove umjetne inteligencije. 9/26
Vraćanje unatrag (Backtracking) osnovni neinformirani algoritam za PZO U njega su uklopljene sljedeće dvije ideje Jedna po jedna varijabla pridruživanje vrijednosti varijablama je komutativno, tj. ne ovisi o redosljedu na koji dodjeljujemo vrijednosti varijablama u svakom koraku ćemo dodjeljivati vrijednost samo jednoj varijabli Provjera ograničenja u svakom koraku razmatraju se samo vrijednosti koje nisu u konfliktu s prije dodjeljenim u svakom koraku ćemo potrošiti neko vrijeme za provjeru ograničenja postepeni test cilja I122 Osnove umjetne inteligencije. 10/26
Poboljšanja za vraćanje unatrag Za poboljšanje možemo iskoristiti sljedeće ideje Filtriranje: postoji li način za ranije otkrivanje neizbježnog neuspjeha? Redosljed: Kojim redosljedom biramo varijable? Kojim redosljedom biramo vrijednosti? Struktura: možemo li iskoristiti strukturu problema? I122 Osnove umjetne inteligencije. 11/26
Filtriranje: Provjera unaprijed Pratimo domene nedodjeljenih varijabli i iz njih nakon svake dodjele izbacujemo loše izbore, tj. izbacujemo vrijednosti koje narušavaju ograničenja s obzirom na trenutnu dodjelu u trenutku kada se pojavi varijabla s praznom domenom vraćamo se unatrag I122 Osnove umjetne inteligencije. 12/26
Filtriranje: Provjera unaprijed Provjera unaprijed prosljeduje informacije o varijablama s dodjeljenim vrijednostima prema varijablama s nedodjeljenim vrijednostima, ali ne omogućava rano otkrivanje svih neuspjeha Iako znamo da NT i SA ne mogu obje biti plave, to ovdje nismo iskoristili! I122 Osnove umjetne inteligencije. 13/26
Filtriranje: Konzistentnost grane Grana X Y je konzistentna ako i samo ako za svaki izbor x za X postoji neki y u domeni varijable Y koji ne narušava ograničenja. opet izbacujemo sve što stvara probleme (iz domene početka grane) provjera unaprijed osigurava konzistentnost onih grana koje završavaju u varijabli koju smo posljednju dodjelili I122 Osnove umjetne inteligencije. 14/26
Filtriranje: Konzistentnost grafa tražimo da su sve grane konzistentne važno: ako X izgubi vrijednost, nanovo moramo provjeriti konzistentnost svih susjeda Y s X (Y X) provjera konzistentnosti grana otkriva neuspjehe prije od provjere unaprijed možemo provjeravati konzistentnost u predprocesiranju ili nakon svakog pridruživanja vrijednosti novoj varijabli produžuje se izvodenje svakog koraka nakon postizanja konzistentnosti grana moguće je dobiti rješenje imati nekoliko rješenja nemati rješenje (i ne znati to) I122 Osnove umjetne inteligencije. 15/26
Redosljed Možemo gledati redosljed izbora za varijable ili za vrijednosti kod varijabli: minimum preostalih vrijednosti (Minimum Remaining Values (MRV)) izaberemo varijablu kojoj je preostalo najmanje vrijednosti u domeni iako se to čini kao teža opcija, sve varijable na kraju moraju imati pridružene neke vrijednosti, pa je bolje teže izbore isprobati ranije naziva se još i redosljed brzog neuspjeha kod vrijednosti: vrijednost najmanjeg ograničenja (Least Constraining Value (LCV)) izabiremo vrijednost koja izbacuje najmanje vrijednosti iz preostalih domena to zahtjeva dodatni račun, ali omogućava dobre izbore za razliku kod varijabli, sve vrijednosti ne moraju biti dodjeljene, pa možemo započeti s onima koje najvjerojatnije vode do rješenja I122 Osnove umjetne inteligencije. 16/26
Struktura problema S obzirom na izgled grafa, ponekad su dostupne tehnike za vrlo efikasno rješavanje ekstremni slučaj: nezavisni potproblem nezavisne potprobleme možemo otkriti kao povezane komponente grafa ograničenja uz pretpostavku da se graf s n varijabli može podijeliti na potprobleme sa samo c varijabli, pri čemu s d označimo veličinu domene, u najgorem slučaju imamo O( ( n c ) d c ) linearno u n I122 Osnove umjetne inteligencije. 17/26
PZO sa strukturom stabla U grafu ograničenja nemamo ciklusa Teorem Ukoliko graf ograničenja nema ciklusa, tada se PZO može rješiti u O(nd 2 ) Algoritam za PZO sa strukturom stabla odabere se proizvoljna varijabla kao korijen stabla, i nakon toga se ostale varijable poslažu na način da se svaka varijabla javlja nakon svog roditelja prvo se koristi strategija uklanjanja od natrag (remove backward): krenuvši od posljednjeg čvora uklanjamo sve nekonzistentne vrijednosti u granama Roditelj Dijete nakon toga se koristi strategija dodjeljivanja od naprijed (assign forward): krenuši od korijenskog čvora, redom se dodjeljuju vrijednosti I122 Osnove umjetne inteligencije. 18/26
PZO sa strukturom stabla I122 Osnove umjetne inteligencije. 19/26
Poboljšanje strukture ponekad uklanjanjem jedne ili više varijabli dolazimo do grafa ograničenja koje je stablo. U takvim slučajevima razmotrimo sljedeće: napravimo sva moguća dodjeljivanja za te varijable, za preostale varijable smanjimo domenu, i nakon toga primjenimo algoritam za rješavanje PZO sa strukturom stabla moguće je takoder uvesti mega-varijable i na taj način stvoriti strukturu stabla, gdje svaka mega-varijabla sadrži dio originalnog problema nakon što se riješe potproblemi, dodatno se zahtjeva da se dodjele varijablama koje su zajedničke u nekoliko mega-varijabli podudaraju I122 Osnove umjetne inteligencije. 20/26
Algoritmi iterativnog poboljšavanja počinjemo s netočnim rješenjem i pokušavamo PZO riješiti uklanjajući konflikte Algoritam imamo potpunu dodjelu koja ne zadovoljava ograničenja nekoj varijabli ponovno dodjeljujemo vrijednost nemamo frontu! Dok nije riješeno: odaberi varijablu: slučajno se odabire bilo koja varijabla koja je konfliktna odabir vrijednosti: heuristika minimalnog konflikta odabire se vrijednost koja narušava najmanji broj ograničenja I122 Osnove umjetne inteligencije. 21/26
Izgled kampusa Trebamo odrediti izgled malog kampusa koji ima sljedeće elemente: administrativnu zgradu (A), autobusnu stanicu (B), zgradu s predavaonicama (C) i studentski dom (D). Te elemente treba smjestiti na pozicije u sljedećoj mreži: I122 Osnove umjetne inteligencije. 22/26
Pri tome trebamo zadovoljiti sljedeća ograničenja: (i) Autobusna stanica (B) mora biti spojena s cestom. (ii) Administrativna zgrada (A) i predavaonice (C) moraju biti spojene s autobusnom stanicom (B). (iii) Predavaonice (C) moraju biti spojene sa studentskim domom (D). (iv) Administrativna zgrada (A) ne smije biti spojene sa studentskim domom (D). (v) Administrativna zgrada (A) ne smije biti na brežuljku. (vi) Studentski dom (D) mora biti ili na brežuljku ili povezan s cestom. (vii) Svi elementi moraju biti smješteni na različitim pozicijama u mreži. Elemente smatramo povezanim ukoliko dijele brid u mreži. I122 Osnove umjetne inteligencije. 23/26
(a) Koja su od ograničenja (i)-(vii) unarna? Odredite domene za sve varijable nakon zadovoljavanja unarnih ograničenja. (b) Želimo sve grane učiniti konzistentnim. Na početku u redu za provjeru su sve grane u abecednom poretku. Odredite domenu za A nakon što se grana A B učini konzistentnom. (c) Provjerite da su grane A C, A D, B A, B C, B D i C A konzistentne. Odredite domenu za C nakon što se grana C B učini konzistentnom. Koje se grane nakon ovog koraka nalazi u redu za provjeru konzistentnosti? (d) Odredite domene svih varijabli nakon što sve grane postanu konzistentne. (e) Koristeći heuristiku minimalne preostale vrijednosti odredite kojoj ćemo varijabli prvoj dodjeliti vrijednost. (f) Koristeći heuristiku vrijednosti najmanjeg ograničenja, koju ćemo vrijednost dodjeliti toj varijabli? (g) Nakon ove dodjele, ponovno sve grane učinite konzistentnim, te odredite rješenje. I122 Osnove umjetne inteligencije. 24/26
PZO sa strukturom stabla Razmotrimo sljedeći PZO sa strukturom stabla, koji predstavlja problem bojanja karte. Istaknute su domene za svaku varijablu. Ukoliko za korjensku varijablu odaberemo A, imamo sljedeću situaciju: I122 Osnove umjetne inteligencije. 25/26
PZO sa strukturom stabla (a) Koristeći strategiju uklanjanja od natrag (remove backward), odredite domene za sve varijable. (b) Koristeći strategiju dodjeljivanja od naprijed (assign forward), odredite rješenje ovog PZO-a. I122 Osnove umjetne inteligencije. 26/26