314

(2017) · (2017) Glava 1 savanjeRe problemacenjems kori pretrage cka stainteligencijaeV bavi se, prevashodno, problemima u kojima se ja-vlja kombinatorna eksplozija, problemimacijesaanjev

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Elektro

nsko

izdanje(2017)

Elektro

nsko

izdanje(2017)

Elektro

nsko

izdanje(2017)

Predrag Janicic Mladen Nikolic

VESTACKA INTELIGENCIJA

Beograd2017.

Elektro

nsko

izdanje(2017)

Autori:dr Predrag Janicic, redovni profesor na Matematickom fakultetu u Beogradudr Mladen Nikolic, docent na Matematickom fakultetu u Beogradu

VESTACKA INTELIGENCIJA

...

...

Obrada teksta, crtezi i korice: autori

©2017. Predrag Janicic i Mladen NikolicOvo delo zasticeno je licencom Creative Commons CC BY-NC-ND 4.0 (Attribution-

NonCommercial-NoDerivatives 4.0 International License). Detalji licence mogu se

videti na veb-adresi http://creativecommons.org/licenses/by-nc-nd/4.0/. Do-

zvoljeno je umnozavanje, distribucija i javno saopstavanje dela, pod uslovom da se

navedu imena autora. Upotreba dela u komercijalne svrhe nije dozvoljena. Prerada,

preoblikovanje i upotreba dela u sklopu nekog drugog nije dozvoljena.

Elektro

nsko

izdanje(2017)Sadrzaj

Sadrzaj 5

I Pretraga 11

1 Resavanje problema koriscenjem pretrage 13

1.1 Elementi problema pretrage . . . . . . . . . . . . . . . . . . . . 171.2 Resenje problema i kvalitet algoritama pretrage . . . . . . . . . 181.3 Neinformisana i informisana pretraga . . . . . . . . . . . . . . . 19

2 Neinformisana pretraga 21

2.1 Obilazak grafa u dubinu i sirinu . . . . . . . . . . . . . . . . . . 222.2 Dejkstrin algoritam . . . . . . . . . . . . . . . . . . . . . . . . . 29

3 Informisana pretraga 33

3.1 Pohlepna pretraga . . . . . . . . . . . . . . . . . . . . . . . . . 343.2 Pretraga Prvo najbolji . . . . . . . . . . . . . . . . . . . . . . . 413.3 Algoritam A* . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4 Igranje strateskih igara 63

4.1 Rani algoritmi za igranje strateskih igara . . . . . . . . . . . . 644.2 Legalni potezi i stablo igre . . . . . . . . . . . . . . . . . . . . . 654.3 Otvaranje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664.4 Sredisnjica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.5 Zavrsnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794.6 Implementaciona pitanja . . . . . . . . . . . . . . . . . . . . . . 81

5 Genetski algoritmi 87

5.1 Opsti genetski algoritam . . . . . . . . . . . . . . . . . . . . . . 885.2 Komponente genetskog algoritma . . . . . . . . . . . . . . . . . 90

5

Elektro

nsko

izdanje(2017)

5.3 Svojstva genetskih algoritama . . . . . . . . . . . . . . . . . . . 975.4 Primeri primene genetskih algoritama . . . . . . . . . . . . . . 99

II Logika i deduktivno zakljucivanje 107

6 Resavanje problema koriscenjem logike 109

6.1 Modelovanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096.2 Resavanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

7 Iskazna logika 111

7.1 Sintaksa iskazne logike . . . . . . . . . . . . . . . . . . . . . . . 1147.2 Semantika iskazne logike . . . . . . . . . . . . . . . . . . . . . . 1177.3 Istinitosne tablice i odlucivost problema zadovoljivosti . . . . . 1217.4 Logicke posledice i logicki ekvivalentne formule . . . . . . . . . 1237.5 Normalne forme i potpuni skupovi veznika . . . . . . . . . . . . 1287.6 Problem SAT i algoritam DPLL . . . . . . . . . . . . . . . . . . 1337.7 Resavanje problema svodenjem na sat . . . . . . . . . . . . . . 138

8 Logika prvog reda 151

8.1 Sintaksa logike prvog reda . . . . . . . . . . . . . . . . . . . . . 1538.2 Zamena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1568.3 Semantika logike prvog reda . . . . . . . . . . . . . . . . . . . . 1588.4 Logicke posledice, logicki ekvivalentne formule, zamena . . . . . 1638.5 Normalne forme . . . . . . . . . . . . . . . . . . . . . . . . . . . 1678.6 Unifikacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1738.7 Metod rezolucije . . . . . . . . . . . . . . . . . . . . . . . . . . 1778.8 Prirodna dedukcija . . . . . . . . . . . . . . . . . . . . . . . . . 1878.9 Resavanje problema svodenjem na problem valjanosti . . . . . . 193

9 PROLOG 197

9.1 Metod rezolucije i PROLOG . . . . . . . . . . . . . . . . . . . 1989.2 Sintaksa i semantika u PROLOG-U . . . . . . . . . . . . . . . . 2029.3 Stablo izvodenja . . . . . . . . . . . . . . . . . . . . . . . . . . 2049.4 Operator secenja . . . . . . . . . . . . . . . . . . . . . . . . . . 2069.5 Negacija kao neuspeh . . . . . . . . . . . . . . . . . . . . . . . . 2119.6 Liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2139.7 Ugradeni predikati . . . . . . . . . . . . . . . . . . . . . . . . . 2189.8 Primeri resavanja problema primenom PROLOG-a . . . . . . . 222

III Masinsko ucenje i induktivno zakljucivanje 237

10 Uvod u masinsko ucenje 239

10.1 Primeri primena masinskog ucenja . . . . . . . . . . . . . . . . 23910.2 Pojam generalizacije . . . . . . . . . . . . . . . . . . . . . . . . 241

Elektro

nsko

izdanje(2017)

10.3 Primer problema ucenja . . . . . . . . . . . . . . . . . . . . . . 24210.4 Nadgledano i nenadgledano ucenje . . . . . . . . . . . . . . . . 24410.5 Modeli zakonitosti u podacima . . . . . . . . . . . . . . . . . . 24510.6 Podaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24610.7 Izbori u dizajnu sistema koji uci . . . . . . . . . . . . . . . . . 247

11 Nadgledano masinsko ucenje 249

11.1 Dizajn algoritama nadgledanog ucenja . . . . . . . . . . . . . . 24911.2 Regresija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25911.3 Klasifikacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26511.4 Tehnike evaluacije i kofigurisanja algoritma ucenja . . . . . . . 286

12 Nenadgledano ucenje 295

IV Resenja zadataka 297

13 Resenja zadataka 299

7

Elektro

nsko

izdanje(2017)

Elektro

nsko

izdanje(2017)Predgovor

Ovo knjiga nastala je na osnovu beleski koji prate predavanja za pred-met Vestacka inteligencija koje smo drzali akademskih godina od 2007/08 do2015/16 (prvi autor) i vezbe od 2007/08 do 2011/12 (drugi autor). Knjiga trebada olaksa pripremu prateceg ispita, ali nadamo se da moze da bude zanimljivasvima koje interesuje ova oblast racunarstva.

Zahvaljujemo koleginici Danijeli Simic koja je kreirala zadatke za pismeneispite iz predmeta Vestacka inteligencija od 2011/12, a od kojih su mnogi na-vedeni na kraju lekcija kao zadaci za vezbu. Zahvaljujemo kolegama koje sunam dale dragocene komentare i savete, pre svega Filipu Maricu, MiroslavuMaricu i Dusku Vitasu. Zahvaljujemo na dragocenim ispravkama i komenta-rima i studentima koji su slusali predmet „Vestacka inteligencija“, pre svegaNemanji Micovicu, Jani Protic, Vojislavu Stankovicu, Nikoli Premcevskom,Nikoli Ajzenhameru, Uni Stankovic, Jeleni Simovic, Vladimiru Simonovskom,Petru Vukmirovicu, Danielu Dozi, Ivanu Balevicu, Milanu Kovacevicu, NebojsiLoznjakovicu, Milosu Samardziji i Vojislavu Grujicu.

Predrag Janicic i Mladen Nikolic

Beograd, februar 2017.

9

Elektro

nsko

izdanje(2017)

Elektro

nsko

izdanje(2017)

Deo I

Pretraga

Elektro

nsko

izdanje(2017)

Elektro

nsko

izdanje(2017)

Glava 1

Resavanje problema koriscenjem

pretrage

Vestacka inteligencija bavi se, prevashodno, problemima u kojima se ja-vlja kombinatorna eksplozija, problemima cije resavanje zahteva razmatranjeogromnog broja mogucnosti. Resavanje takvih problema obicno se svodi naneku vrstu pretrage, sistematicnog postupka obrade velikog broja mogucnosti.Kako je sve mogucnosti cesto nemoguce razmotriti u razumnom vremenu, po-trebno je pretragu usmeravati kako bi se razmotrile mogucnosti koje su izgled-nije da daju resenje problema. Neke od realnih primena algoritama pretragesu pronalazenje najkracih puteva, igranje logickih igara, navigacija robota, au-tomatsko nalazenje redosleda sklapanja delova u industriji, dizajn proteina saodredenim trazenim svojstvima, resavanje logistickih problema i slicno.

Problemi pretrage cesto zahtevaju pronalazenje niza koraka ili akcija ko-jima se ostvaruje cilj kada to ne moze biti ostvareno pojedinacnim koracima iliakcijama. Pretraga moze biti shvacena i sire, pa ce u daljem tekstu biti opisanii neki problemi i algoritmi optimizacije.

Problemi i algoritmi pretrage mogu se opisati i u terminima agenata. U tomslucaju, smatra se da pretragu sprovodi agent, da se agent tokom pretrage mozenaci u razlicitim stanjima, da agent pokusava da dode do zavrsnog stanja, itd.Takva formulacija ne menja nista sustinski u problemu ili algoritmima, ali mozebiti pogodna zbog uniformnosti kroz razlicite podoblasti vestacke inteligencije.

Primer 1.1. Slagalica 15 (ili Lojdova slagalica) sastoji se od 15 kvadratarasporedenih na tabli velicine 4x4 polja. Kvadrati su numerisani brojevimaod 1 do 15. Slagalicu je potrebno urediti tako da su polja poredana redom odprvog reda i da je poslednje polje u cetvrtom redu prazno. Taj raspored poljamoze se kompaktno zapisati kao [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,_] iprikazan je na slici 1.1.

Kada je dat proizvoljan raspored polja na tabli, u svakom koraku moze sepomeriti jedno od dva ili jedno od tri ili jedno od cetiri polja. Dakle, za svaki

13

Elektro

nsko

izdanje(2017)

14

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15

Slika 1.1: Ciljni raspored za slagalicu „15“

2 3 4

6 5 1012

9 1 8 15

1314 7 11

6 2 3 4

5 1012

9 1 8 15

1314 7 11

2 3 4

6 5 1012

9 1 8 15

1314 7 11

2 3 4

6 5 1012

9 1 8 15

1314 7 11

6 2 3 4

5 1012

9 1 8 15

1314 7 11

6 2 3 4

9 5 1012

1 8 15

1314 7 11

2 3 4

6 5 1012

9 1 8 15

1314 7 11

2 5 3 4

6 1012

9 1 8 15

1314 7 11

2 3 4

6 5 1012

9 1 8 15

1314 7 11

1 2 3 4

5 6 7 8

9 101112

131415

. . .

Slika 1.2: Stablo pretrage za slagalicu „15“

raspored broj mogucih akcija je izmedu dva i cetiri.Slagalicu je moguce sloziti tako sto se razmatraju svi moguci koraci, a za-

tim svi moguci koraci u dobijenim stanjima i tako dalje, sve dok se ne naidena trazeni, ciljni raspored (razmatranje svih mogucih koraka za pocetni ra-spored [_, 2, 3, 4, 6, 5, 10, 12, 9, 1, 8, 15, 13, 14, 7, 11] ilustrovano je na slici 1.2).

Elektro

nsko

izdanje(2017)

15 1. Resavanje problema koriscenjem pretrage

Beograd

Budimpesta

Sarajevo

Zagreb

Podgorica

Skoplje

Sofija

Bukurest590

450

840

640

360

300

240

170350

190

230170

450

280

400

290

390

370

340

300

290

190

380320

430

320

Slika 1.3: Graf koji opisuje problem puteva izmedu gradova

Ocigledno, ovaj pristup sigurno dovodi do resenja za bilo koju pocetnu pozi-ciju. Isto tako, ocigledno je da je ovaj pristup potpuno nepraktican i zahtevarazmatranje ogromnog broja mogucnosti. Zaista, za proizvoljnu pocetnu pozi-ciju, slagalicu je moguce sloziti u najvise 80 koraka, pri cemu postoje pocetnepozicije za koje ne postoji resenje u manje od 80 koraka. To znaci da je zagarantovano pronalazenje resenja potrebno ispitati vise od 280 mogucnosti, stoje naravno prakticno neizvodivo. Zbog toga, prakticno sprovodivo resenje za-hteva neku dodatnu ideju i usmeravanje pretrage, kako ne bi bile razmatranesve mogucnosti. Jedna moguca ideja bi bila da se razmatraju samo koraci kojivode do pozicija koje su blize resenju, pri cemu se za odredivanje „rastojanjapozicije od ciljne pozicije“ moze uzeti zbir rastojanja svakog polja od njegoveciljne pozicije. Medutim, ova jednostavna ideja ne dovodi do resenja. Na-ime, u nekim pozicijama nema koraka koji vodi ka boljoj pozicijama (pozicijau korenu stabla na slici 1.2, je jedna takva pozicija).

Primer 1.2. U skupu gradova od kojih su neki medusobno povezani putevima,zadatak je od jednog grada stici do nekog drugog zadatog grada. Ovaj problemmoze se razmatrati kao problem pretrage: pretraga moze da krece od pocetnoggrada, da se zatim razmatraju svi gradovi do kojih se moze doci neposredno,i tako dalje, sve dok se ne dode do ciljnog grada. Primer ovakvog problemailustrovan je na slici 1.3. Konkretan zadatak moze biti, na primer, nalazenjeputa od Zagreba do Bukuresta.

Bitno su razlicite varijante problema u kojoj jesu i u kojoj nisu unapredpoznati svi gradovi i putevi izmedu njih. U prvom slucaju, bitno je i da li supoznate duzine puteva izmedu gradova ili vazdusna rastojanja.

Primer 1.3. Jednu od najstarijih grupa matematickih problema cine geome-

Elektro

nsko

izdanje(2017)

16

trijski konstruktivni problemi. Zadatak je lenjirom i sestarom, na osnovu da-tih ogranicenja ili datih pocetnih tacaka, konstrusati trazenu geometrijsku fi-guru. Lenjirom i sestarom moze se konstruisati prava koja je odredena dvematackama, krug cije je srediste jedna tacka i koji sadrzi drugu tacku, moguce jekonstruisati presek dve prave i moguce je konstruisati presek prave i kruga —ovo su takozvane elementarne konstrukcije. I ovaj problem moze se razmatratikao problem pretrage: pretraga moze da krece od pocetnih figura, zatim se raz-matraju svi moguci koraci (sve moguce primene elementarnih konstrukcija nadpostojecim figurama), i tako dalje, sve dok se ne dobije trazena figura.

Primer 1.4. Kao problem pretrage moze da se opise kretanje robota od polaznedo ciljne tacke u nepoznatnom okruzenju. Robot u vecini trenutaka moze dapromeni smer i brzinu kretanja i u zavisnosti od tih akcija moze do cilja dastigne pre ili kasnije.

Problemi pretrage obicno mogu da se pogodno reprezentuju grafovima (a ida se vizualizuju na odgovarajuci nacin). Graf moze da opisuje prostor stanjai mogucih akcija i tada je svakom cvoru grafa pridruzeno jedno stanje, a svakojgrani jedna akcija. Graf koji opisuje prostor stanja moze da bude usmerenili neusmeren. Neusmeren je ako za svako stanje 𝐴 iz kojeg se moze nekomakcijom doci do stanja 𝐵, postoji odgovarajuca akcija iste cene kojom se izstanja 𝐵 moze doci do stanja 𝐴. U primeru slagalice, graf prostora stanjaje neusmeren i svakom cvoru grafa pridruzen je jedan raspored. I u primerugradova, graf prostora stanja je neusmeren, a svakom cvoru pridruzen je jedangrad (slika 1.3). Za igru sah, medutim, graf bi bio usmeren (jer postoje pozicije𝐴 i 𝐵 takve da se iz 𝐴 moze jednim potezom doci do 𝐵, ali ne i obratno).

Pretrazivanjem, obilaskom grafa prostora stanja nastaje stablo pretrazivanjaili stablo pretrage (slika 1.2). U stablu pretrage svakom cvoru pridruzeno jejedno stanje, ali jedno stanje moze da bude poseceno vise puta tokom obilaska,te moze da se nalazi u vise cvorova stabla pretrage. Zato stablo pretrage mozeda bude beskonacno i onda kada je prostor stanja konacan. Kada se kaze „cvor“,obicno je iz konteksta jasno da li se misli na cvor prostora stanja ili na cvor ustablu pretrage, a cesto se isto oznacavaju cvor i stanje koje mu je pridruzeno.

U mnogim problemima vestacke inteligencije potrebno je obici neki graf iliodrediti najkraci put izmedu dva cvora grafa i ovi problemi se, dakle, prirodnorazmatraju kao problemi pretrage. Opsti problem nalazenja puta (eng. pathfinding) moze se opisati na sledeci nacin: dat je graf svojim cvorovima i gra-nama izmedu nekih od njih i zadatak je naci put izmedu dva zadata cvora (po-lazni cvor i ciljni cvor). Granama grafa mogu da budu pridruzene nenegativnecene i zadatak moze da bude nalazenje puta izmedu zadata dva cvora takvogda je zbir cena svih grana koje pripadaju putu minimalan. Postoji mnogo al-goritama za resavanje ovog problema i oni imaju mnoge primene, ukljucujuciprimene u planiranju obilazaka i putovanja, dizajniranju cipova, rutiranju uracunarskim mrezama, navigaciji robota, industriji igara, itd.

Elektro

nsko

izdanje(2017)

17 1. Resavanje problema koriscenjem pretrage

1.1 Elementi problema pretrage

Da bi se neki problem razmatrao kao problem pretrage i resavao primenomalgoritama pretrage, on treba da ima odredenu strukturu i odredene elemente:

Skup mogucih stanja: U toku procesa pretrage razmatraju se razlicita sta-nja. Za odlucivanje u datom trenutku potrebno je poznavanje skupa svihraspolozivih stanja.

Polazno stanje: Resavanje problema krece od jednog odredenog stanja, kojenazivamo polaznim stanjem.

Test cilja: Problem je resen ako se dode do ciljnog stanja, zavrsnog stanja.Potrebno je da postoji raspoloziv efektivan test koji proverava da li sedoslo do ciljnog stanja tj. do zavrsetka procesa pretrage.

Skup mogucih akcija: U svakom koraku pretrage moze se preduzeti nekikorak, neka akcija. Niz akcija preduzetih u odgovarajucim trenucimatreba da dovede do resenja problema. Skup mogucih akcija moze biti istiu svakom stanju ili moze da se razlikuje od stanja do stanja, sto zavisiod problema koji se resava.

Funkcija prelaska: Ova funkcija preslikava par stanje-akcija u novo stanje,dobijeno izborom neke akcije u nekom stanju. Ukoliko ova funkcija nijepoznata, nije poznato u koje ce se stanje dospeti posle preduzimanjaodredene akcije i proces odlucivanja postaje kompleksniji. Funkcija pre-laska nije poznata, na primer, u slucaju delovanja u nepoznatoj ili pro-menljivoj okolini. Jedan nacin resavanja ovakvih problema je koriscenjeminformacija iz iskustva, odnosno aproksimiranjem ove funkcije pomocuprocesa koji se zasniva na analizi pokusaja i gresaka.

Cena akcije: Ovo je funkcija koja preslikava par stanje-akcija u numerickuvrednost — cenu preduzimanja date akcije u datom stanju.

Kod nekih problema nabrojani elementi se lako i prirodno uocavaju, dok jekod drugih najpre potrebno preformulisanje problema.

Stanja koja su neposredno dostupna iz nekog stanja zovemo i susedima togstanja a ponekad i decom tog stanja.

Primer 1.5. Elementi problema iz primera 1.1 mogu biti definisani na sledecinacin:

� Skup stanja: skup svih permutacija [𝑠1𝑠2 . . . 𝑠16] za 𝑠𝑖 ∈ {_, 1, 2, . . . , 15}.

� Polazno stanje i zavrsno stanje: polazno stanje moze biti bilo koje stanjeslagalice (za neke od njih ciljni raspored nije moguce dobiti).

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

Elektro

nsko

izdanje(2017)

1.2. Resenje problema i kvalitet algoritama pretrage 18

� Skup akcija: moze biti {𝑙𝑒𝑣𝑜, 𝑑𝑒𝑠𝑛𝑜, 𝑔𝑜𝑟𝑒, 𝑑𝑜𝑙𝑒}, gde se date akcije odnosena pomeranje praznog polja levo, desno, gore i dole. Iako je naizgled pri-rodnije kao akcije razmatrati pomeranje kvadrata susednih praznom poljuna prazno polje, ovakva formulacija je jednostavnija zbog uniformnosti.

� Funkcija prelaska: preslikava stanja i akcije u stanja koja nastaju pome-ranjem praznog polja na neku od cetiri moguce strane.

� Cena akcije: moze biti konstantna za svaku akciju (na primer, 1), postose sva pomeranja mogu smatrati jednako skupim. Cena resenja je u tomslucaju jednaka ukupnom broju pomeranja potrebnih za slaganje slagalice.

Primer 1.6. Elementi problema stizanja iz jednog grada u drugi (primer 1.2)su:

� Skup stanja: skup gradova koji su dostupni iz polaznog grada (neposrednoili posredno).

� Polazno stanje: polazno stanje je grad iz kojeg se krece.

� Test cilja: provera da li je tekuci grad jednak ciljnom gradu.

� Skup mogucih akcija: kretanje ka susednim gradovima (skup mogucihakcija u ovom problemu se razlikuje od stanja do stanja, jer su za razlicitegradove razliciti i skupovi direktno dostupnih gradova).

� Funkcija prelaska: odredena je vezama izmedu gradova (i smerom u kojemse krece iz tekuceg grada).

� Cena akcije: na primer, duzina puta ili cena goriva potrebnog za prevozizmedu susednih gradova.

Primer 1.7. U slucaju kretanja robota (primer 1.4), bilo bi potrebno odreditimoguce smerove kretanja i diskretizovati intervale u kojima se menja smerkretanja. Takode, bilo bi potrebno odluciti da li se pokreti razlicitim delovimarobota mogu preduzimati simultano ili ne. Posle toga bi se navedeni elementiproblema mogli lako definisati.

1.2 Resenje problema i kvalitet algoritama pretrage

Resenje problema pretrage je niz koraka (akcija) koji vode od polaznog sta-nja do ciljnog stanja. Svakom resenju se moze pridruziti njegova cena kao sumacena akcija koje se preduzimaju. Optimalno resenje je resenje sa najmanjomcenom. Ono ne mora biti jednoznacno definisano.

Kao i kod drugih vrsta algoritama, kod algoritama pretrage potrebno jepoznavati njihova svojstva kako bi se lakse izvrsio izbor pogodnog algoritmaza dati problem. Najvaznija opsta svojstva koje algoritmi pretrage mogu daimaju su sledeca:

Elektro

nsko

izdanje(2017)

19 1. Resavanje problema koriscenjem pretrage

Potpunost je svojstvo koje garantuje da ce algoritam naci neko resenje pro-blema ako resenja uopste postoje. Ovo svojstvo je ocito pozeljno, ali seu nekim slucajevima ne zahteva. Naime, u slucaju vrlo teskih problemacesto je moguce formulisati heuristike koje ne garantuju pronalazenjeresenja, ali u visokom procentu slucajeva nalaze dobra resenja mnogobrze nego potpuni algoritmi.

Optimalnost je svojstvo koje garantuje nalazenje resenja sa najmanjom ce-nom. Moguce je da algoritam koji nema ovo svojstvo cesto pronalaziresenja bliska optimalnim, ali u znacajno kracem vremenu.

Vremenska slozenost govori, kao i za druge vrste algoritama, o tome kolikoce vremena biti potrebno za sprovodenje procesa pretrage. Obicno serazmatra vremenska slozenost najgoreg i prosecnog slucaja.

Prostorna slozenost govori, kao i za druge vrste algoritama, o tome koliko jememorije potrebno za sprovodenje procesa pretrage. Obicno se razmatraprostorna slozenost najgoreg i prosecnog slucaja.

1.3 Neinformisana i informisana pretraga

Prilikom resavanja nekog problema, moguci su razliciti stepeni poznavanjadetalja samog problema. U primeru pronalazenja puta od grada do grada(primer 1.2), moguce je na primer:

1. potpuno nepoznavanje rastojanja izmedu gradova;

2. poznavanje rastojanja samo izmedu susednih gradova (koja se, na primer,mogu procitati sa putokaza);

3. poznavanje vazdusnih rastojanja od svih gradova do ciljnog grada (kojase, na primer, mogu proceniti na osnovu mape);

4. tacno poznavanje putnog rastojanja izmedu svih parova (ne nuzno sused-nih) gradova.

Prema dostupnosti informacija koje mogu pomoci u pronalazenju ciljnogstanja u toku pretrage, problemi pretrage se dele na probleme informisane ineinformisane pretrage. U skladu sa tim, moguce je formulisati i algoritmekoji mogu da iskoriste dostupne informacije, pa stoga i algoritme delimo naalgoritme informisane i neinformisane pretrage.

U problemu iz primera 1.2, ako su raspolozive samo informacije o direktnodostupnim stanjima, u pitanju je problem neinformisane pretrage i za resavanjeje moguce koristiti standardne algoritme za pretragu u sirinu ili u dubinu. Uko-liko su poznata vazdusna rastojanja izmedu gradova, ona bi se mogla iskoristitikao procena korisna za navodenje pretrage i u tom slucaju bi problem pripadaogrupi problema informisane pretrage. U tom slucaju mogu se koristiti specija-lizovani algoritmi u zavisnosti od vrste informacija koje su na raspolaganju. Za

Elektro

nsko

izdanje(2017)

1.3. Neinformisana i informisana pretraga 20

problem pronalazenja najkracih puteva u grafu, algoritam A* moze da iskori-sti, na primer, informaciju o euklidskom rastojanju izmedu cvorova u grafu. Uslucaju problema igranja saha, egzaktan algoritam pretrage minimax se mozekombinovati sa heuristickom procenom pozicije (na primer, koriscenjem infor-macije o figurama, mogucnosti mata u malom broju poteza i slicno).

Pitanja i zadaci

Pitanje 1.1. Navesti barem pet opstih elemenata svakog problema pretrage.

Pitanje 1.2. Kako se, prema dostupnosti informacija koje mogu pomoci upronalazenju ciljnog stanja u toku pretrage, dele problemi pretrage?

Elektro

nsko

izdanje(2017)

Glava 2

Neinformisana pretraga

U svim problemima pretrage, podrazumeva se da je moguce opaziti tekucestanje, preduzimati akcije i prepoznati ciljno stanje. Specificno za „neinfor-misanu pretragu“ (eng. uninformed) je to sto nema dodatnih informacija kojemogu pomoci u pronalazenju ciljnog stanja. U primeru pronalazenja putaizmedu dva grada, scenario neinformisane pretrage odgovara situaciji u kojojse u svakom gradu zna koji je to grad, moguce je izabrati jedan od puteva kadrugim gradovima, moguce je pamtiti posecene gradove i prepoznati odredisni,ali nema nikakvih informacija o rastojanjima izmedu gradova (karte, putna sig-nalizacija, itd). Tipican primer problema neinformisane pretrage je i problemlavirinta koji je opisan u nastavku.

Primer 2.1. Lavirint se sastoji od skupa povezanih hodnika kojima je mogucekretati se. Svaki hodnik ima jedno ili vise polja i dva kraja. Jedno polje jeulaz, a jedno izlaz iz lavirinta. Ulaz, izlaz, krajeve hodnika, kao i polja koja suzajednicka za dva hodnika zovemo cvorovima lavirinta. Cilj je pronaci put odulaza do izlaza preko cvorova lavirinta. Elementi ovog problema su sledeci:

� Skup stanja: skup cvorova lavirinta.

� Polazno stanje: ulaz u lavirint.

� Ciljno stanje: izlaz iz lavirinta.

� Skup mogucih akcija: izbor puta (tj. sledeceg cvora lavirinta) u svakomkoraku.

� Funkcija prelaska: odredena je vezama izmedu cvorova lavirinta.

Jedan nacin pronalazenja izlaza (koji ce u nastavku biti preciznije formuli-san algoritmom pretrage) je drzati se leve strane hodnika i pratiti zidove dokse ne naide na izlaz.

21

Elektro

nsko

izdanje(2017)

2.1. Obilazak grafa u dubinu i sirinu 22

1 2

34

56

7 8

9

10

11 12

1314

15 16

17

18

19 20

21

22

1

2

3

4 5

6

7

8

9 10

11

12

13

14

15

16

19

221720

1821

Slika 2.1: Primer lavirinta (gore levo), cvorovi lavirinta i veze medu njima (goredesno), graf prostora stanja koji odgovara lavirintu (dole)

Elementi problema pretrage (stanja i relacija prelaska), pa i problema ne-informisane pretrage se najcesce prirodno izrazavaju pomocu grafova, tako dasu i algoritmi neinformisane pretrage najcesce formulisani u vidu algoritamaobilaska grafova. U slucaju lavirinta, radi se o grafu ciji cvorovi su cvorovi la-virinta, a grane putevi izmedu tih cvorova lavirinta (slika 2.1 (desno)). Ukolikoje graf koji odgovara lavirintu stablo, kaze se da je lavirint savrsen.

2.1 Obilazak grafa u dubinu i sirinu

Obilazak grafa u dubinu (eng. depth-first search — DFS) i u sirinu (eng. breadth-first search — BFS) su metode neinformisane pretrage koje ispituju sve cvoroveu grafu trazeci resenje, obicno – neki specifican cvor. Oni sistematski pretrazujuceo graf bez ikakvog navodenja. Posebna paznja ce biti posvecena bektrekingu,jednoj modifikaciji obilaska grafa u dubinu.

2.1.1 Pretraga u dubinu

Pretraga u dubinu je pretraga koja napreduje obradujuci najpre polaznicvor, zatim njegove potomke, zatim njihove potomke i tako dalje sve dok se

Elektro

nsko

izdanje(2017)

23 2. Neinformisana pretraga

ne naide na trazeni cvor i sve dok ti potomci postoje. Ukoliko vise nema po-tomaka koje treba ispitati, pretraga se vraca unazad do cvora ciji svi potomcinisu ispitani i nastavlja dalje. U nerekurzivnoj verziji, cvorovi se obicno cuvajuna steku, tj. u LIFO listi. Da ne bi doslo do beskonacne petlje, potrebno jecuvati informaciju o cvorovima koji su vec poseceni. Ovaj postupak je opisanalgoritmom DFS na slici 2.2 a slika 2.3 ilustruje obilazak jednog grafa prime-nom algoritma DFS. Prikazani algoritam, ukoliko pronade ciljni cvor, u tomtrenutku na steku 𝑝𝑢𝑡 sadrzi redom cvorove koji cine trazeni put.

Algoritam: DFS (pretraga u dubinu)

Ulaz: Graf 𝐺, polazni cvor i ciljni cvorIzlaz: Put od polaznog ciljnog cvora u grafu 𝐺 (ako postoji takav put)

1. Inicijalno, stek 𝑝𝑢𝑡 i skup posecenih cvorova sadrze samo polazni cvor.

2. Izvrsavaj dok stek 𝑝𝑢𝑡 nije prazan:

� Uzmi cvor 𝑛 sa vrha steka 𝑝𝑢𝑡.

� Ako je 𝑛 ciljni cvor, obavesti o uspehu i vrati put konstruisan naosnovu sadrzaja steka 𝑝𝑢𝑡.

� Ako 𝑛 nema potomaka koji nisu poseceni, izbaci 𝑛 sa steka 𝑝𝑢𝑡.

� U suprotnom, izaberi prvog takvog potomka 𝑚 i dodaj ga na vrhsteka 𝑝𝑢𝑡 i u skup posecenih cvorova.

3. Obavesti da trazeni put ne postoji.

Slika 2.2: DFS — algoritam pretrage u dubinu.

1

2

3 4

5

6

Slika 2.3: Primer obilaska grafa primenom algoritma DFS (oznake cvorovaukazuju na poredak obilaska cvorova)

Primer 2.2. Algoritam DFS se moze upotrebiti za nalazenje izlaza iz lavirinta(pri cemu algoritam vraca ceo put od ulaza do izlaza). U slucaju savrsenog

Elektro

nsko

izdanje(2017)

2.1. Obilazak grafa u dubinu i sirinu 24

lavirinta, graf koji se pretrazuje je stablo. Pracenje hodnika lavirinta drzeci seleve strane predstavlja upravo pretragu u dubinu.

Primer 2.3. Ukoliko se, posavsi od Zagreba trazi put do Bukuresta prime-nom algoritma DFS i ukoliko se prilikom izbora sledeceg grada prednost dajejuznijem, bio bi pronaden put Zagreb-Sarajevo-Podgorica-Skoplje-Sofija-Bukurest.Ovaj put je po duzini vrlo los izbor, sto je i bilo ocekivano posto algoritam neuzima u obzir duzine puteva izmedu gradova. Kako se moze naci najkraci put,bice prikazano kasnije.

Beograd

Budimpesta

Sarajevo

Zagreb

Podgorica

Skoplje

Sofija

Bukurest

1

2

3

4

5

6

Slika 2.4: Trazenje puta od Zagreba do Bukuresta primenom algoritma DFS

Bektreking (eng. backtracking) je modifikovana varijanta pretrage u dubinu.Modifikacija se sastoji u tome da se bektrekingom ne mora obici ceo graf, vecse napredovanje u dubinu prekida i ranije ako se ustanovi da se ciljni cvor nenalazi medu potomcima tekuceg cvora i tada nastupa vracanje na prethodnicvor. Prirodan primer za bektreking je resavanje problema osam dama.

Primer 2.4. Problem osam dama formulisan je 1848. godine i od tada jebio predmet mnogih matematickih i informatickih istrazivanja. Problem imajednostavnu formulaciju: rasporediti osam dama na sahovskoj tabli tako da senikoje dve dame ne napadaju. Skup polja koja jedna dama napada definisanje u skladu sa opstim pravilima saha i ilustrovan je na slici 2.5 (levo). Jednomoguce resenje ovog problema prikazano je na slici 2.5 (sredina). Problem „𝑛dama” je uopstenje problema na 𝑛 dama koje treba rasporediti na tabli dimenzija𝑛× 𝑛 tako da se nikoje dve ne napadaju.

U svakom resenju, ocigledno, u jednoj koloni ne mogu biti dve dame, pase problem moze preformulisati na sledeci nacin: na tabli 𝑛 × 𝑛 rasporediti 𝑛dama tako da u svakoj koloni bude po jedna i da se nikoje dve ne napadaju.

Elektro

nsko

izdanje(2017)

25 2. Neinformisana pretraga

80Z0Z0Z0Z7Z0Z0Z0Z060Z0Z0Z0Z5Z0Z0Z0Z040Z0L0Z0Z3Z0Z0Z0Z020Z0Z0Z0Z1Z0Z0Z0Z0

a b c d e f g h

80ZQZ0Z0Z7Z0Z0ZQZ060Z0L0Z0Z5ZQZ0Z0Z040Z0Z0Z0L3Z0Z0L0Z020Z0Z0ZQZ1L0Z0Z0Z0

a b c d e f g h

80L0Z0Z0Z7Z0Z0Z0Z060Z0ZQZ0Z5Z0L0Z0Z040Z0Z0Z0Z3Z0ZQZ0Z020Z0Z0Z0Z1L0Z0Z0Z0

a b c d e f g h

Slika 2.5: Problem osam dama: kretanje dame u sahu (levo), jedno resenjeproblema (sredina), situacija kada je u pretrazi nuzno vratiti se na prethodniizbor (desno)

Pored problema lavirinta, problem dama predstavlja jedan od tipicnih pro-blema koji se resavaju primenom bektrekinga. Prostor stanja koji se analizira uovom slucaju cine svi razliciti rasporedi 0 do 8 dama. Postoji grana od jednogstanja (rasporeda) ka drugom ukoliko se drugi moze dobiti od prvog dodavanjemjedne dame na slobodno polje na tabli. Neki raspored moguce je dobiti razlicitimredosledima dodavanja dama polazeci od prazne table, ali se dodavanjem damane moze dobiti tabla sa manjim brojem dama. Dakle, radi se o usmerenomaciklicnom grafu. Polazno stanje je prazna tabla, a ciljno stanje je bilo kojestanje koje zadovoljava uslove problema (za osam dama postoji 92 resenja).

Opisani graf prostora stanja sadrzi i rasporede u kojima se vise od dve damenapadaju. U stablu pretrage, svaki put od prazne table do ovakvog rasporedamora sadrzati raspored sa tacno dve dame koje se napadaju. Kako se duzputeva kroz stablo pretrage dame samo dodaju, postupak pretrage se ne isplatinastavljati nakon sto se naide na takav raspored. Na slici 2.5 (desno) prikazanje jedan raspored koji nema smisla ispitivati dalje. Na slici 2.6, prikazan je deostabla pretrage koja koristi bektreking za problem cetiri dame (za problem osamdama stablo pretrage preveliko je za ilustraciju).

Na prethodnom primeru mogu se uociti neke tipicne osobine bektrekinga.Bektreking se zasniva na prosirivanju tekuceg parcijalnog resenja. Polazno par-cijalno resenje je prazno resenje. U prethodnom primeru, to je prazna sahovskatabla, a u slucaju lavirinta, to je ulaz. Prosirivanje parcijalnog resenja se uslucaju problema dama vrsi dodavanjem dame na tablu, a u slucaju lavirintaprelaskom na sledeci cvor lavirinta. Prosirivanje parcijalnog resenja u nekimslucajevima nije isplativo ili nije moguce i tada se pretraga vraca unazad, oda-kle dolazi i ime tehnike. U problemu dama, nije isplativo nastaviti pretraguukoliko je dostignut raspored u kojem se dve dame napadaju, a u slucaju la-virinta nije moguce nastaviti pretragu kada se dode do cvora lavirinta kojinije povezan ni sa jednim drugim cvorom lavirinta (sem sa onim iz kojeg sedoslo). Prilikom izbora naredne grane u pretrazi, prati se neki poredak izbora.

Elektro

nsko

izdanje(2017)

2.1. Obilazak grafa u dubinu i sirinu 26

/ \ ...

40Z0Z3Z0Z020Z0Z1L0Z0

a b c d

40Z0Z3Z0Z02QZ0Z1Z0Z0

a b c d

/ \ \

40Z0Z3ZQZ020Z0Z1L0Z0

a b c d

40L0Z3Z0Z020Z0Z1L0Z0

a b c d

40L0Z3Z0Z02QZ0Z1Z0Z0

a b c d

/ / \ \

40Z0Z3ZQZ020Z0Z1L0Z0

a b c d

40L0Z3Z0Z020ZQZ1L0Z0

a b c d

40L0Z3Z0Z020Z0Z1L0Z0

a b c d

40L0Z3Z0Z02QZ0Z1Z0L0

a b c d

| |

40L0Z3Z0Z020ZQZ1L0Z0

a b c d

40L0Z3Z0ZQ2QZ0Z1Z0L0

a b c d

Slika 2.6: Prikaz dela stabla pretrage za resavanja problema cetiri dame prime-nom bektrekinga. Oznaka X oznacava polja na kojima je pokusano postavljanjedame, ali je ustanovljeno da se u tom slucaju napada sa nekom od vec posta-vljenih dama. Eksplicitno su prikazani samo rasporedi u kojima se postavljenedame medusobno ne napadaju.

U slucaju lavirinta, to moze biti sledeci hodnik nadesno u odnosu na posled-nji poseceni cvor lavirinta, a u slucaju problema dama, sledece prazno polje uskladu sa nekom numeracijom polja.

2.1.2 Pretraga u sirinu

Pretraga u sirinu razmatra cvorove koji su susedni tekucem cvoru, a kasnijerazmatra, redom, sve njihove potomke. U traganju za cvorom koji zadovoljavaneki uslov, bice pronaden onaj na najmanjem rastojanju (pri cemu se podrastojanjem misli na broj grana) od polaznog cvora. Cvorovi koji se razmatrajuobicno se cuvaju u redu, tj. u FIFO listi. I u ovom pristupu, da ne bi doslodo beskonacne petlje, potrebno je cuvati informaciju o cvorovima koji su vecposeceni. Ovaj postupak je opisan algoritmom BFS na slici 2.7. U prikazanom

Elektro

nsko

izdanje(2017)

27 2. Neinformisana pretraga

algoritmu, informacija o posecenim cvorovima se ne cuva eksplicitno, vec krozinformaciju o cvoru prethodniku. Slika 2.8 ilustruje obilazak grafa primenomalgoritma BFS.

Algoritam: BFS (pretraga u sirinu)

Ulaz: Graf 𝐺, polazni cvor i ciljni cvorIzlaz: Najkraci put od polaznog do ciljnog cvora u grafu 𝐺 (ako postoji takavput)

1. Red 𝑆 inicijalno sadrzi samo polazni cvor.

2. Izvrsavaj dok red 𝑆 nije prazan:

� Uzmi cvor 𝑛 sa pocetka reda 𝑆 i obrisi ga iz reda.

� Ako je 𝑛 ciljni cvor, obavesti o uspehu i vrati put od polaznog dociljnog cvora (iduci unazad od ciljnog cvora).

� Za svaki od potomaka 𝑚 cvora 𝑛 za koji nije definisan roditelj,zapamti 𝑛 kao roditelja i dodaj ga na kraj reda 𝑆.

3. Obavesti da trazeni put ne postoji.

Slika 2.7: BFS — algoritam pretrage u sirinu.

1

2

3

4

5

6

Slika 2.8: Primer obilaska grafa primenom algoritma BFS (oznake cvorova uka-zuju na poredak obilaska cvorova)

Primer 2.5. U slucaju pronalazenja puta od Zagreba do Bukuresta, bice pronadenput Zagreb-Beograd-Bukurest (slika 2.9). Na pocetku, tekuci grad je Zagreb. IzZagreba, pronalaze se Sarajevo, Beograd i Budimpesta. Oni cine novi red 𝑆 i zanjih se pamti da je prethodni grad Zagreb, koji se uklanja iz reda. Iz Sarajeva sepronalazi put do Podgorice koja se dodaje na kraj reda 𝑆, a Sarajevo se iz njegauklanja. Iz Beograda se pronalazi put do Skoplja i Bukuresta, koji se dodajuna kraj reda 𝑆, a Beograd se iz njega uklanja. Iz Budimpeste se ne pronalazi

Elektro

nsko

izdanje(2017)

2.1. Obilazak grafa u dubinu i sirinu 28

put ni do jednog grada koji vec nije obraden. Budimpesta se uklanja iz reda. IzPodgorice se ne pronalazi put ni do jednog grada koji vec nije obraden. Pod-gorica se uklanja iz reda. Iz Skoplja se pronalazi put do Sofije koja se dodajena kraj reda 𝑆, a Skoplje se iz njega uklanja. Kada Bukurest postane grad kojise analizira, konstatuje se da je to ciljni grad, konstruise se put i algoritam sezaustavlja.

Beograd

Budimpesta

Sarajevo

Zagreb

Podgorica

Skoplje

Sofija

Bukurest

1

2

3

4

5 6

7

Podgorica

Sarajevo Beograd

Skoplje

Zagreb

Budimpesta

Bukurest

Slika 2.9: Trazenje puta od Zagreba do Bukuresta primenom algoritma BFS:gore je prikazan graf prostora stanja, a dole stablo pretrage

DFS pretraga je pogodnija od BFS pretrage za usmeravanje koje bira cvorovekoji vise obecavaju. Vremenska slozenost oba algoritma je proporcionalna zbirucvorova i grana grafa koji se pretrazuje (𝑂(|𝑉 |+ |𝐸|)), a prostorna je propor-cionalna broju cvorova (𝑂(|𝑉 |)).

Elektro

nsko

izdanje(2017)

29 2. Neinformisana pretraga

2.2 Dejkstrin algoritam

Dejkstrin algoritam (razvio ga je holandski informaticar Edzger Dejkstra1959. godine) je algoritam za pretragu grafa koji nalazi najkrace puteve ugrafu sa nenegativnim cenama koje su pridruzene granama. Algoritam se mozekoristiti za odredivanje najkraceg puta od jednog datog cvora do datog ciljnogcvora, ali i za odredivanje najkracih puteva od svih cvorova grafa do datogciljnog cvora.

Ideja Dejkstrinog algoritma moze se ilustrovati na sledeci nacin. Pretposta-vimo da je skup cvorova vezan nitima (i da cenom puta od jednog do drugogcvora smatramo duzinu niti koja ih vezuje). Uzmimo cvor koji je izabran zapolazni i pocnimo da podizemo celu konfiguraciju (tako da nikoje dve niti nisuupletene). Postepeno se cvorovi, jedan po jedan, odvajaju od tla. Najmanjerastojanje izmedu nekog od tih cvorova i polaznog cvora je upravo direktnorastojanje izmedu njih. Opsta ideja algoritma je slicna: postoje cvorovi koji suvec podignuti sa tla i oni koji su jos uvek na tlu. Za one koji su podignuti sa tlavec znamo najkrace puteve od polaznog cvora. U svakom koraku mozemo josjedan cvor „podici sa tla“ i izracunati njegovo najmanje rastojanje od polaznogcvora (razmatrajuci samo one cvorove koji su mu susedni i koji su vec iznadtla). Ukoliko na kraju ovog postupka na tlu ostanu jos neki cvorovi, to znacida do njih ne postoji put od polaznog cvora.

Algoritam: Dejkstrin algoritam

Ulaz: Graf 𝐺, polazni cvor i ciljni cvorIzlaz: Najkraci put od polaznog do ciljnog cvora u grafu 𝐺 (ako postoji takavput)

1. Skup 𝑄 inicijalno sadrzi sve cvorove grafa.

2. Izvrsavaj sve dok je skup 𝑄 neprazan:

� Izaberi iz 𝑄 cvor 𝑛 sa najmanjim ustanovljenim rastojanjem odpolaznog cvora i obrisi ga iz 𝑄.

� Ako je 𝑛 ciljni cvor, konstruisi put od polaznog do ciljnog cvora(iduci unazad od ciljnog cvora) i obavesti o uspehu.

� Za svaki cvor 𝑚 iz 𝑄 koji je direktno dostupan iz 𝑛, proveri da li jeustanovljeno rastojanje od polaznog cvora do 𝑚 vece od rastojanjaod polaznog cvora do 𝑚 preko cvora 𝑛 i ako jeste, promeniti infor-maciju o roditelju cvora 𝑚 na cvor 𝑛 i upamtiti novo rastojanje.

3. Obavesti da trazeni put ne postoji (𝑄 je prazan skup i uspeh nije prija-vljen).

Slika 2.10: Dejkstrin algoritam.

Elektro

nsko

izdanje(2017)

2.2. Dejkstrin algoritam 30

Dejkstrin algoritam prikazan je na slici 2.10. U svakoj iteraciji, bira se cvor𝑛 iz skupa cvorova 𝑄 (to su cvorovi koji su „na tlu“) takav da je vrednosttekuceg najmanjeg rastojanja od polaznog cvora do njega najmanje. Taj cvorse tada brise iz skupa 𝑄. Ukoliko je to ciljni cvor, onda se konstruise trazeniput od polaznog cvora (koristeci informaciju o roditeljskim cvorovima). Inace,za svaki cvor 𝑚 iz 𝑄 koji je susedan cvoru 𝑛 proverava se da li se (preko 𝑛)moze popraviti tekuce najmanje rastojanje od polaznog cvora i, ako moze, cvor𝑛 se postavlja za roditelja cvora 𝑚. Invarijanta petlje je da se za cvorove kojinisu u 𝑄 zna najkrace rastojanje od ciljnog cvora.

U najjednostavnijoj implementaciji Dejkstrinog algoritma, skup 𝑄 se im-plementira kao obicna povezana lista ili niz. Slozenost algoritma sa takvomimplementacijom skupa 𝑄 je 𝑂(|𝑉 |2 + |𝐸|) = 𝑂(|𝑉 |2), gde je |𝐸| broj grana,a |𝑉 | broj cvorova grafa. Za retke grafove (koji imaju mnogo manje grana od|𝑉 |2), Dejkstrin algoritam moze se implementirati efikasnije. Na primer, vari-janta koja koristi binarni min-hip1 za odredivanje tekuceg najblizeg cvora imaslozenost 𝑂((|𝐸|+ |𝑉 |) log |𝑉 |).

Primer 2.6. Na slici 2.11 tabela prikazuje efekat primene Dejkstrinog algoritmana prikazani graf. U ovom primeru, cvor 𝐴 je polazni, a cvor 𝐹 ciljni cvor.Polje tabele za neki cvor prikazuje vrednost najmanjeg nadenog rastojanja odpolaznog do tog cvora.

𝐴 𝐵

𝐶 𝐷

𝐸 𝐹

2

3

6

4

1

4

2

5

5

1

korak B C D E F cvor 𝑛

1 ∞ ∞ ∞ ∞ ∞ 𝐴2 3 2 6 4 ∞ 𝐶3 3 2 6 3 ∞ 𝐵4 3 2 6 3 8 𝐸5 3 2 5 3 7 𝐷6 3 2 5 3 6 𝐹

Slika 2.11: Primer primene Dejkstrinog algoritma

1Min-hip je specificna stablolika struktura koja zadovoljava hip-svojstvo: ako je 𝐵 poto-mak cvora 𝐴, onda je vrednost pridruzena cvoru 𝐴 manja od vrednosti pridruzene cvoru 𝐵.U skladu sa tim, najmanji element je uvek koren stabla. Max-hip se definise analogno.

Elektro

nsko

izdanje(2017)

31 2. Neinformisana pretraga

Primer 2.7. Slika 2.12 i prateca tabela ilustruje izvrsavanje Dejkstrinog algo-ritma na problemu nalazenja puta od Bukuresta do Podgorice (najkraci put jeBukurest-Sofija-Skoplje-Podgorica).

Beograd

Budimpesta

Sarajevo

Zagreb

Podgorica

Skoplje

Sofija

Bukurest590

840

360

240350

230

450

400

390

340

290

380

430

1

2

3

4

5

6

7

korak Bg So Bud Sk Pg Sa Zg cvor 𝑛

1 ∞ ∞ ∞ ∞ ∞ ∞ ∞ Bukurest2 590 360 840 ∞ ∞ ∞ ∞ Sofija3 590 360 840 600 ∞ ∞ ∞ Beograd4 590 360 840 600 1040 880 980 Skoplje5 590 360 840 600 950 880 980 Budimpesta6 590 360 840 600 950 880 980 Sarajevo7 590 360 840 600 950 880 980 Podgorica

Slika 2.12: Trazenje puta od Bukuresta do Podgorice primenom Dejkstrinogalgoritma

Elektro

nsko

izdanje(2017)

Elektro

nsko

izdanje(2017)

Glava 3

Informisana pretraga

Informisana (ili heuristicka) pretraga koristi ne samo informaciju o mogucimakcijama (koracima) u svakom stanju, vec i dodatno znanje o konkretnom pro-blemu koje moze da usmerava pretragu ka stanjima koja vise obecavaju, zakoje postoji nekakvo ocekivanje da brze vode ciljnom stanju, tj. resenju pro-blema. Ta informacija moze biti nekakva ocena, mera „kvaliteta“ stanja, amoze da bude zasnovana i na informacijama vezanim za pocetno ili ciljno sta-nje. Ta mera kvaliteta cesto nije egzaktna, nego predstavlja nekakvu procenu,heuristicku meru.1

U nastavku cemo funkciju koja ocenjuje kvalitet stanja zvati funkcija eva-luacije i oznacavati sa 𝑓 , pa ce 𝑓(𝑛) oznacavati ocenu stanja 𝑛. Smatracemo ida su cene akcija (ili cene grana grafa) nenegativne. Vec je receno da problemepretrage obicno reprezentujemo grafovima koji opisuju prostor stanja, pa cemocesto umesto „stanja“ i „ocena stanja“ govoriti i „ cvor” i „ocena cvora“.

Prilikom resavanja problema pretragom, generise se stablo pretrage (obicnosamo implicitno) cijim su cvorovima pridruzena stanja. Posto kroz jedno istostanje moze da se prode vise puta tokom pretrage moze da bude vise cvorovastabla pretrage sa istim tim stanjem. Posto ocena stanja moze da zavisi odtrenutnog konteksta procesa pretrage, obicno je preciznije reci „ocena cvora(stabla pretrage)“ nego „ocena stanja“.

1Heuristike su tehnike za usmeravanje i suzavanje pretrage u problemima u kojima sejavlja kombinatorna eksplozija. Rec „heuristika“ potice od grcke reci „heurisko“ koja znaci„traziti“ ili „otkrivati“. Srodna grcka rec „heureka“ ili „eureka“ znaci „nasao sam“ ili „otkriosam“ i obicno se vezuje za Arhimeda i njegov uzvik kada je dosao do jednog znamenitogotkrica. Aristotel je koristio termin „heuristika“ za otkrivanje novog znanja (ili demonstriranjepostojeceg) kroz komunikaciju i interakciju izmedu izlagaca i slusalaca. Perl (1984) podheuristikama smatra „kriterijume, metode ili principe za izbor izmedu nekoliko mogucih akcijaonu koja obecava da ce biti najkorisnija za postizanje nekog cilja”.

33

Elektro

nsko

izdanje(2017)

3.1. Pohlepna pretraga 34

3.1 Pohlepna pretraga

Pohlepnim algoritmom naziva se algoritam koji bira lokalno optimalne ak-cije, tj. tezi neposrednom povecanju vrednosti neke ciljne funkcije. Ovakavalgoritam ne procenjuje dugorocni kvalitet izabranih akcija, tj. koliko one do-prinose ostvarenju konacnog cilja, vec bira akciju koja se na osnovu znanjadostupnog u trenutku izbora procenjuje kao najbolja medu raspolozivim akci-jama.

Algoritam: Pohlepna pretraga u grafu

Ulaz: Graf 𝐺, polazni cvor i ciljni cvorIzlaz: niz koraka od polaznog do ciljnog cvora ili neuspeh (neuspeh ili bes-konacna petlja su moguci i ako postoji put izmedu ova dva cvora)

1. Inicijalno, tekuci cvor je polazni cvor.

2. Izvrsavaj beskonacno sledece korake:

� Ako je 𝑛 ciljni cvor, izvesti o uspehu i vrati resenje konstruisuciput od polaznog do ciljnog cvora.

� Ako nema direktno dostupnih cvorova iz tekuceg cvora, izvesti oneuspehu.

� Od cvorova koji su direktno dostupni iz tekuceg cvora kao novitekuci cvor izaberi cvor 𝑛 koji ima najbolju ocenu 𝑓(𝑛).

Slika 3.1: Algoritam pohlepne pretrage.

Primer 3.1. U primeru pronalazenja najkracih puteva izmedu gradova (primer1.2), ako je u svakom gradu moguce videti tablu sa tacnim rastojanjima dosusednih gradova, pohlepni informisani algoritam bi kao funkciju evaluacije𝑓(𝑛) mogao da koristi zbir tacnog rastojanja od tekuceg cvora do cvora 𝑛 (tj. dauvek za sledeci grad bira najblizi grad). Ukoliko su poznata vazdusna rastojanjaizmedu gradova na osnovu mape, pohlepni informisani algoritam bi kao funkcijuevaluacije 𝑓(𝑛) mogao da koristi vazdusno rastojanje od 𝑛 do ciljnog grada(tj. da uvek za sledeci grad bira onaj koji je najblizi ciljnom vazdusnim putem).

Ako je u svakom gradu moguce i videti tablu sa tacnim rastojanjima dosusednih gradova i poznata su vazdusna rastojanja izmedu gradova, pohlepniinformisani algoritam bi kao funkciju evaluacije 𝑓(𝑛) mogao da koristi zbirtacnog rastojanja od tekuceg cvora do cvora 𝑛 i vazdusnog rastojanja od 𝑛 dociljnog grada. Dakle, tada se, u svakom koraku, kao sledeci grad, kao grad kojinajvise obecava, bira grad 𝑛 za koji je zbir tacnog rastojanja od tekuceg gradado 𝑛 i vazdusnog rastojanja od 𝑛 do ciljnog grada najmanji. Ovaj pristup biceilustrovan primerom trazenja puta od Podgorice do Budimpeste (slika 3.2). Iz

Elektro

nsko

izdanje(2017)

35 3. Informisana pretraga

Beograd

Budimpesta

Sarajevo

Zagreb

Podgorica

Skoplje

Sofija

Bukurest590

450

840

640

360

300

240

170350

190

230170

450

280

400

290

390

370

340

300

290

190

380320

430320

410

640

Podgorica

SarajevoBeograd Skoplje

ZagrebBeograd

Podgorica

Budimpesta

640 770 990

700 610 790

380

Slika 3.2: Trazenje puta od Podgorice do Budimpeste primenom pohlepnogalgoritma: na slici gore je prikazan graf koji opisuje prostor stanja, a na slicidole prikazano je stablo pretrage

Podgorice su neposredno dostupni Sarajevo, Beograd i Skoplje, a ocene duzinaputeva do cilja preko tih gradova su 640km, 770km i 990km, te se ide u Sara-jevo. Iz Sarajeva su neposredno dostupni Zagreb, Beograd i Podgorica, a oceneduzina puteva preko tih gradova su 700km, 610km i 790km, te se ide u Beograd.Iz Beograda su neposredno dostupni Sarajevo, Zagreb, Budimpesta, Bukurest,Skoplje, Podgorica, a ocene duzina puteva preko tih gradova su 700km 690km,380km, 1230km, 1070km i 1010km, te se ide u Budimpestu. Pronadeni putje, dakle, Podgorica-Sarajevo-Beograd-Budimpesta i njegova stvarna duzina je900km. Medutim, stvarna duzina puta Podgorica-Beograd-Budimpesta je ma-

Elektro

nsko

izdanje(2017)

3.1. Pohlepna pretraga 36

nja i iznosi 830km, sto znaci da je napravljeni izbor pogresan, tj. nije najboljimoguci. Ovaj ishod ilustruje opsti problem pohlepne pretrage, a to je da jemoguce pronaci resenje koje nije najbolje. Stavise, u opstem slucaju, moguceje ne pronaci resenje i ako ono postoji, a moguce je i ostati u beskonacnoj petlji.

Primer 3.2. U slucaju Lojdove slagalice, kao ocena rastojanja od tekuceg dociljnog stanja moze se koristiti zbir Menhetn rastojenja svakog od 15 poljaslagalice do njegovog ciljnog mesta. Menhetn rastojanje izmedu dva polja 𝐴 i 𝐵definise se kao najmanji broj polja koji je potrebno preci kako bi se doslo od 𝐴 do𝐵, krecuci se iskljucivo horizontalno ili vertikalno2. U slucaju stanja slagalice ukorenu levog stabla na slici 3.3, Menhetn rastojanje polja 1 do njegovog pravogmesta je 3, zato sto je na tom putu potrebno preci preko dva polja krecucise navise, a potom jedno polje krecuci se nalevo. Moguci su i drugi putevi,ali njihova duzina nije manja. Ukupna ocena rastojanja za to stanje slagaliceje 0+0+0+1+1+2+1+0+3+2+2+0+0+2+2=16. Pohlepna pretraga se mozeformulisati tako da se u svakom koraku preduzima potez koji vodi ka najmanjojoceni rastojanja u odnosu na tekuce stanje.

2 3 4

6 5 10 12

9 1 8 15

13 14 7 11

6 2 3 4

5 10 12

9 1 8 15

13 14 7 11

2 3 4

6 5 10 12

9 1 8 15

13 14 7 11

1 2 3

15 5 10 4

9 12 6 8

13 14 7 11

1 2 3

15 5 10 4

9 12 6 8

13 14 7 11

1 2 3 4

15 5 10

9 12 6 8

13 14 7 11

Slika 3.3: Stanje slagalice (levo) u kojem nema poteza koji vodi u stanje saboljom ocenom rastojanja i stanje slagalice (desno) iz kojeg postoji niz korakakoji poboljsavaju ocenu rastojanja (pomeranjem praznog polja nadole), ali sezavrsava u stanju iz kojeg svi potezi pogorsavaju ocenu.

U slucaju stanja slagalice u korenu slike 3.3 (levo), pohlepna pretraga nemoze da nastavi posto dato stanje predstavlja lokalni minimum ocene rastojanjajer se bilo kojim potezom ta ocena uvecava za 1.

S druge strane, ukoliko je polazna konfiguracija 3.3 (desno) ocena rastojanjase smanjuje pomeranjem polja 4 navise a zatim i pomeranjem navise polja 8i 11. Nakon toga se dolazi do stanja koje je lokalni minimum i pretraga sezaustavlja.

2Rastojanje se zove Menhetn, jer podseca na kretanje ulicama Menhetna koje sumedusobno normalne ili paralelne: od jednog do drugog bloka moguce je kretati se ulicama,ali nije moguce prolaziti blokove dijagonalno.

Elektro

nsko

izdanje(2017)

37 3. Informisana pretraga

Navedeni primeri pokazuju da predlozenom jednostavnom pohlepnom pre-tragom nije moguce resiti Lojdovu slagalicu.

Pohlepni algoritmi se mogu koristiti i za resavanje opstijih problema odpretrage — problema matematicke optimizacije. Ovi problemi pretpostavljajupostojanje funkcije cilja i skupa dopustivih resenja. U zavisnosti od formula-cije problema, potrebno je naci dopustivo resenje sa minimalnom ili maksimal-nom vrednoscu funkcije cilja. Takvo resenje se naziva optimalnim resenjemproblema optimizacije. Ovakvi problemi ne moraju pretpostavljati postojanjestanja, akcija i drugih elemenata problema pretrage. U kontekstu matematickeoptimizacije, pohlepni algoritmi se obicno nazivaju algoritmima penjanja uz-brdo posto biraju susedna dopustiva resenja koja imaju najvise vrednosti funk-cije cilja.

Pohlepna pretraga obicno se ponasa dobro u slucaju problema kod kojihkvalitet odluke u nekom stanju pretrage ne zavisi od buducih odluka ili ako sedati problem moze aproksimirati problemom za koji ovo vazi. Ako navedenosvojstvo vazi, lokalno optimalna odluka je stvarno optimalna. Navedeno svoj-stvo se moze i drugacije formulisati — pohlepna pretraga ce se ponasati dobroukoliko se optimalno resenje problema gradi neposredno od lokalno optimalnihresenja potproblema.

Algoritmi zasnovani na pohlepnoj pretrazi su obicno znatno jednostav-niji od algoritama koji garantuju optimalnost ili potpunost procesa resavanja.Medutim, iako obicno ne garantuju optimalnost resenja, cesto daju resenja kojasu prakticno prihvatljiva. S druge strane, mane ovog pristupa su sledece:

Opasnost od lokalnih maksimuma: Lokalni maksimumi su tacke u pro-storu pretrage ciji susedi imaju manju vrednost funkcije cilja od nje,ali je njena vrednost manja od vrednosti globalnog maksimuma. Algo-ritmi penjanja uzbrdo nemaju nacina da utvrde da se nalaze u lokalnommaksimumu (slika 3.4, levo)

Neefikasnost u slucaju grebena: Grebeni predstavljaju uske staze koje opa-daju ili rastu duz nekog pravca (slika 3.4, desno). U takvim problemima,penjanje uzbrdo ne vodi u pravcu rasta staze, vec je potrebno da napravimnogo cik-cak koraka da se uspne uz greben (ili da se spusti niz greben).

Platoi: Platoi predstavljaju oblasti prostora pretrage u kome funkcija ciljaima konstantnu vrednost. Zbog toga je nemoguce odrediti koji potez jenajbolji, a samim tim se moze desiti da pohlepna pretraga ne nade izlazsa platoa.

Postoje razne varijacije osnovnog penjanja uzbrdo koje pokusavaju da seizbore sa navedenim problemima. Takvo je na primer stohasticko penjanjeuzbrdo koje ne bira uvek susedno stanje koje ima najvecu vrednost, ali ve-rovatnoca da odredeno stanje bude izabrano je veca sto je veca njegova vred-nost. Druga varijacija je penjanje uzbrdo sa slucajnim restartovanjem kod kojeg

Elektro

nsko

izdanje(2017)

3.1. Pohlepna pretraga 38

Slika 3.4: Situacija u kojoj pohlepna pretraga moze da vrati samo lokalni mak-simum (levo) i greben (desno)

se posle pronalazenja lokalnog maksimuma proces pretrage ponovo pokrece izslucajno generisanog polaznog stanja. Ovaj metod omogucava pronalazenjeglobalnog maksimuma sa verovatnocom koja se priblizava 1 kada se povecavabroj pokusaja.

3.1.1 Pohlepna pretraga u slucaju diferencijabilne funkcije cilja

Metode pretrage i matematicke optimizacije cesto pokusavaju da iskori-ste neku zakonitost u strukturi prostora pretrage, odnosno prostora dopustivihresenja. Tako, metode penjanja uzbrdo, u slucaju diferencijabilne funkcije cilja,obicno pocivaju na koriscenju koncepta gradijenta. Ukoliko je data diferenci-jabilna funkcija cilja 𝑓 : R𝑛 → R, gradijent se definise kao vektor parcijalnihizvoda te funkcije:

∇𝑓 =

(𝜕𝑓

𝜕𝑥1,𝜕𝑓

𝜕𝑥2, . . . ,

𝜕𝑓

𝜕𝑥𝑛

)Gradijent izracunat u odredenoj tacki 𝐴 ∈ R𝑛 predstavlja vektor u prostoru R𝑛

u cijem pravcu funkcija 𝑓 najstrmije raste u okolini tacke 𝐴. Stoga se kretanjemu ovom pravcu moze doci do lokalnog maksimuma. Kretanjem u suprotnompravcu, moze se doci do lokalnog minimuma. U tradiciji matematicke optimi-zacije, cesce se koristi formulacija trazenja minimuma, a metoda za trazenjeminimuma se moze upotrebiti i za nalazenje maksimuma ukoliko se primeni nafunkciju −𝑓 umesto na funkciju 𝑓 . Princip kretanja u smeru suprotnom od gra-dijenta je osnova algoritma Najstrmiji spust ili gradijentnog spusta. AlgoritamNajstrmiji spust prikazan je na slici 3.5.

U praksi se ne moze ocekivati nalazenje same tacke lokalnog minimuma, sobzirom na to da se ne radi o diskretnom prostoru, te se opisani postupak pre-kida kada razlika u vrednosti funkcije 𝑓 u odnosu na njenu prethodnu vrednostpostane dovoljno mala.

Elektro

nsko

izdanje(2017)

39 3. Informisana pretraga

Algoritam: Najstrmiji spust

Ulaz: Diferencijabilna funkcija 𝑓 , polazna tacka x0 i preciznost 𝜀Izlaz: lokalni minimum (ukoliko postoji)

1. Postaviti 𝑛 na 0.

2. Ponavljati

� Izracunati gradijent funkcije ∇𝑓(xn).

� Izvrsiti kretanje u pravcu suprotnom od gradijenta do sledece tackexn+1.

� Uvecati 𝑛 za 1.

dok vazi |𝑓(xn−1)− 𝑓(xn)| > 𝜀|𝑓(xn−1)|

3. Vratiti xn kao resenje.

Slika 3.5: Algoritam Najstrmiji spust.

Da bi se dati algoritam u potpunosti definisao potrebno ga je precizirati.Poznavanje gradijenta i proizvoljno kretanje u suprotnom pravcu u praksi ipakne garantuje nalazenje minimuma, jer je u zavisnosti od duzine koraka mogucepreci preko minimuma, nastaviti dalje i doci i do resenja goreg od tekuceg.Stoga je u svakom koraku potrebno odrediti pogodnu vrednost 𝜆𝑛 koja se koristiu izboru nove tacke:

xn+1 = xn − 𝜆𝑛∇𝑓(xn)

Vrednosti 𝜆𝑛 mogu se definisati na razlicite nacine. Dovoljan uslov za konver-genciju dat je takozvanim Monro-Robinsonovim uslovima koji kazu da se zavrednosti 𝜆𝑛 mogu uzeti bilo koji brojevi koji zadovoljavaju sledece uslove:

∞∑𝑛=0

𝜆𝑛 = ∞

∞∑𝑛=0

𝜆2𝑛 < ∞

Intuitivno, prvi uslov garantuje da su koraci pretrage dovoljno veliki da pre-traga ne uspori prerano i da stoga uopste ne stigne do minimuma, dok drugigarantuje da su koraci dovoljno mali da optimizacioni proces ne divergira. Je-dan izbor koji zadovoljava ove uslove je 𝜆𝑛 = 1

𝑛+1 .

Primer 3.3. Potrebno je izgraditi lekarsku stanicu koja bi opsluzivala cetirisportske lokacije. Stanica bi trebalo da bude relativno blizu svim lokacijama.

Elektro

nsko

izdanje(2017)

3.1. Pohlepna pretraga 40

01

23

−10

1

2

3

−15

10

15

20

25

30

35

−5𝑥

𝑦

𝑧

s1

s2s3

s4

x0x1

Slika 3.6: Ilustracija problema pronalazenja optimalne pozicije za lekarsku sta-nicu.

Jedan povoljan izbor njene lokacije bi bila tacka x takva da je zbir

𝑓(x) =

4∑𝑖=1

‖x− s(𝑖)‖2

minimalan, gde vazi x = (𝑥1, 𝑥2), s(1) = (0, 0), s(2) = (0, 1), s(3) = (2, 0) is(4) = (3, 3).

Zapisano drugacije, funkcija 𝑓 jednaka je:

𝑓(x) = (𝑥1 − 0)2 + (𝑥2 − 0)2 + (𝑥1 − 0)2 + (𝑥2 − 1)2 +

(𝑥1 − 2)2 + (𝑥2 − 0)2 + (𝑥1 − 3)2 + (𝑥2 − 3)2

= 4𝑥21 + 4𝑥2

2 − 10𝑥1 − 8𝑥2 + 23

Gradijent funkcije 𝑓 jednak je

∇𝑓(x) = (8𝑥1 − 10, 8𝑥2 − 8)

Neka je polazna tacka x0 = (1, 1) i 𝜀 = 10−6. Vrednost gradijenta ∇𝑓(x0) uprvoj iteraciji je (−2, 0). Vrednost parametra 𝜆𝑛 je 1

𝑛+1 . Tabela 3.7 prikazujekako se menjaju relevantne vrednosti prilikom primene gradijentnog spusta.Primetno je da na pocetku metoda pravi velike korake, sto je posledica relativnovelike vrednosti 𝜆𝑛. Medutim, kako se ona smanjuje, koraci postaju manji idolazi se do tacnog resenja. U opstem slucaju, retko se desava zaustavljanje

Elektro

nsko

izdanje(2017)

41 3. Informisana pretraga

𝑛 𝑥𝑛 𝜆𝑛 ∇𝑓(𝑥𝑛)

0 (1, 1) 1 (-2,0)1 (3, 1) 1/2 (14,0)2 (3, 1) 1/3 (14,0)3 (10, 1) 1/4 (70,0)4 (−7.5, 1) 1/5 (-70,0)5 (6.5, 1) 1/6 (42,0)6 (−0.5, 1) 1/7 (-14,0)7 (1.5, 1) 1/8 (2,0)8 (1.25, 1) 1/9 (0,0)9 (1.25, 1) - -

Slika 3.7: Izvrsavanje gradijentnog spusta u problemu odredivanja lokacije bol-nice.

sa tacnim resenjem. U ovom konkretnom slucaju, resenje je moglo da budepronadeno i analiticki — resavanjem jednacina ∇𝑓(x) = 0, ali to u opstemslucaju nije moguce.

Za diferencijabilne funkcije postoje i drugi metodi lokalne optimizacije,medu kojima je algoritam Najstrmiji spust najjednostavniji. Problem ovog algo-ritma je sto je konvergencija cesto spora. Brze alternative su ili komplikovanijeili prave dodatne pretpostavke o svojstvima funkcije (poput konveksnosti) ilizahtevaju dodatne informacije o ciljnoj funkciji (poput parcijalnih izvoda dru-gog reda).

Treba imati u vidu da diskutovani algoritam ne garantuje nalazenje global-nog minimuma. U slucaju da funkcija ima veci broj minimuma, u zavisnostiod izabrane polazne tacke, resenja koja algoritam daje mogu biti razlicita ipronadeni minimum moze biti samo lokalni.

3.2 Pretraga Prvo najbolji

Pristup pretrage prvo najbolji (engl. best-first search) predstavlja osnovuza razlicite algoritme pretrage grafa (pri cemu je u vidu grafa opisan prostorstanja i akcija za neki problem). Resenjem se smatra niz cvorova (tj. put) odpolaznog do ciljnog cvora u grafu. U toku primene algoritma, svakom cvorustabla pretrage pridruzuje se informacija o njegovom prethodniku (roditelju) umogucem resenju, isto kao u Dejkstrinom algoritmu.

Da bi se izbegle beskonacne petlje (tj. beskonacno obradivanje istog stanja,tj. beskonacni nizovi cvorova stabla pretrage u kojima je isto stanje), odrzavajuse dve liste stanja/cvorova:

� zatvorena lista (ili lista zatvorenih stanja) – lista stanja za koje su vecispitani svi susedi (tj. sva neposredno dostupna stanja);

Elektro

nsko

izdanje(2017)

3.2. Pretraga Prvo najbolji 42

� otvorena lista (ili lista otvorenih stanja) – lista stanja koja su vec posecena,ali nisu obradeni svi njihovi susedi.

Implementacija otvorene liste treba da omogucava efikasan pristup elementusa najboljom ocenom 𝑓(𝑛). Jednostavnosti radi, u nastavku cemo cesto istooznacavati cvor stabla pretrage i njegovo stanje.

Na pocetku je u otvorenoj listi samo polazno stanje, a zatvorena lista jeprazna. Sustinska ideja je da se u svakoj iteraciji, analizira element otvoreneliste sa najboljom ocenom i obraduju se iz njega neposredno dostupna stanja.Ukoliko se naide na ciljno stanje – zadatak je resen i algoritam zavrsava rad.Precizniji opis algoritma dat je na slici 3.8.

Algoritam: Prvo najbolji

Ulaz: Graf 𝐺, polazni cvor i ciljni cvorIzlaz: niz koraka od polaznog do ciljnog cvora (ako postoji put izmedu ovadva stanja)

1. Zatvorena lista je inicijalno prazna, a otvorena lista sadrzi samo polaznicvor.

2. Izvrsavaj sve dok ima elemenata u otvorenoj listi:

� Izaberi cvor 𝑛 (tekuci cvor) iz otvorene liste koji ima najbolju ocenu𝑓(𝑛).

� Ako je 𝑛 ciljni cvor, izvesti o uspehu i vrati resenje konstruisuci putod polaznog do ciljnog cvora (iduci unazad — od ciljnog cvora).

� Za svaki cvor 𝑚 koji je direktno dostupan iz 𝑛 uradi sledece:

– Ako 𝑚 nije ni u otvorenoj ni u zatvorenoj listi, dodaj ga uotvorenu listu i oznaci 𝑛 kao njegovog roditelja.

� Izbaci 𝑛 iz otvorene liste i dodaj ga u zatvorenu listu.

3. Izvesti da trazeni put ne postoji (otvorena lista je prazna i uspeh nijeprijavljen).

Slika 3.8: Algoritam Prvo najbolji.

Algoritam Prvo najbolji ne pretenduje da daje optimalno resenje (tj. daotkrije najbolji put do ciljnog cvora) niti pruza ikakve garancije u tom smislu.Ipak, da bi se uvecale sanse da se pronade sto kraci put izmedu dva cvora, kadase analizira cvor 𝑚 koji je direktno dostupan iz tekuceg cvora 𝑛 (u skladu saprikazanim algoritmom), u slucaju da je cvor 𝑚 vec u otvorenoj ili zatvorenojlisti, moze se proveriti da li je put od polaznog cvora do cvora 𝑚 preko cvora 𝑛bolji od postojeceg puta do𝑚; ako jeste, treba promeniti informaciju o roditeljucvora 𝑚 na cvor 𝑛, a ako je 𝑚 bio u zatvorenoj listi, prebaciti ga u otvorenu.

Elektro

nsko

izdanje(2017)

43 3. Informisana pretraga

Ako je broj stanja i akcija konacan, algoritam se ocigledno zaustavlja i imasvojstvo potpunosti, o cemu govori naredna teorema.

Teorema 3.1. Ako je broj stanja i akcija konacan, algoritam Prvo najboljise zaustavlja i nalazi trazeni put uvek kada on postoji.

Ako funkcija 𝑓(𝑛) vraca dubinu cvora 𝑛 (u DFS obilasku grafa pocev odpolaznog cvora), onda se navedeni algoritam ponasa kao algoritam obilaska usirinu. Ako funkcija 𝑓(𝑛) vraca zbir cena od polaznog cvora do cvora 𝑛, ondase navedeni algoritam ponasa kao Dejkstrin algoritam.

Opsti algoritam Prvo najbolji predstavlja bitnu modifikaciju algoritma jed-nostavnog pohlepnog pristupa. Iako oba u jednom cvoru biraju (najpre) naj-bolji susedni cvor (tj. cvor 𝑛 sa najboljom vrednoscu 𝑓(𝑛)) algoritam Prvonajbolji, za razliku od jednostavnog pohlepnog pristupa omogucava vracanjena cvorove koji nisu ispitani jer je neka od alternativa obecavala vise. Takode,ovim pristupom se omogucava nastavak pretrage i u slucaju kada pohlepnapretraga naide na plato ili lokalni optimum (zahvaljujuci alternativama u otvo-renoj listi) i eliminise se mogucnost beskonacnih petlji (zahvaljujuci pamcenjuobradenih cvorova u zatvorenoj listi).

Primer 3.4. U slucaju primera slagalice diskutovanog u primeru 3.2 (slika3.3), situacija prikazana levo predstavlja lokalni minimum, zbog cega se po-hlepna pretraga zaustavlja. Algoritam Prvo najbolji ce odabrati jedan od mogucihpoteza, ali ce alternativno stanje cuvati u otvorenoj listi i mozda ga obraditikasnije. U situaciji prikazanoj desno, pohlepnom pretragom se prazno poljespusta do donjeg desnog ugla, cime se dolazi do lokalnog optimuma i pohlepnapretraga ne moze da nastavi. Medutim, u slucaju algoritma Prvo najbolji, sta-nja koja su bila alternative ispitanim stanjima su i dalje u otvorenoj listi iispituju se dalje. Stoga je algoritam Prvo najbolji u stanju da resi slagalicu, aline garantuje nalazenje resenja koje se sastoji od najmanjeg broja poteza.

3.3 Algoritam A*

Algoritam A* pretraga ili, krace, algoritam A* (cita se „a zvezda“, engl. „astar“) za odredivanje najkraceg puta izmedu dva cvora grafa, jedan je od funda-mentalnih i najpopularnijih algoritama vestacke inteligencije. Zasnovan je nakoriscenju heuristika, ali ipak ima svojstva kao sto su potpunost i optimalnost.Prvu verziju algoritma A* su razvili Hart, Nilsson i Raphael 1968. godine, a unarednim godinama uvedeno je nekoliko modifikacija.

Algoritam A* je varijanta algoritma Prvo najbolji u kojoj se koristi funkcijuevaluacije 𝑓 definisana na sledeci nacin:

𝑓(𝑛) = 𝑔(𝑛) + ℎ(𝑛),

gde je 𝑔(𝑛) cena puta od polaznog cvora do cvora 𝑛, a ℎ(𝑛) je procenjena (he-uristicka) cena najjeftinijeg puta od cvora 𝑛 do ciljnog cvora. Dok se traga

Elektro

nsko

izdanje(2017)

3.3. Algoritam A* 44

za najkracim putem, uvek se zna tekuca minimalna cena (a moze se menjatitokom primene algoritma) od polaznog cvora do cvora 𝑛 (tj. tekuca vrednost𝑔(𝑛)), ali se vrednost ℎ(𝑛) moze samo procenjivati. Od kvaliteta heuristikezavisi ponasanje i efikasnost algoritma. Izbor kvalitetne heuristike jedan je odnajvaznijih i najtezih izazova u dizajniranju konkretnih implementacija algo-ritma A*.

Algoritam A* trazi optimalno resenje (tj. otkriva najbolji put do ciljnogcvora) i zato za svaki cvor na koji naide proverava da li je do njega ranije vecbio pronaden neki losiji put i, ako jeste, zamenjuje ga novim, boljim putem.Takva provera je u algoritmu Prvo najbolji bila opciona, a u algoritmu A* jeobavezna.

Pored toga sto je specijalan slucaj metoda Prvo najbolji, algoritam A* jeuopstenje Dejkstrinog algoritma. Kao i u Dejkstrinom algoritmu, cvorovi kojetek treba obraditi cuvaju se u listi, sortiranoj prema nekom kriterijumu. Algo-ritam A* cesto ispituje manje cvorova nego Dejkstrin algoritam. To smanjenjeproistice iz koriscenja heuristike koja procenjuje donju granicu daljine do ciljnogcvora. Kljucna razlika izmedu dva algoritma je u tome sto Dejkstrin algoritam(kao algoritam neinformisane pretrage) uzima u obzir samo cenu od polaznogdo tekuceg cvora — vrednost 𝑔(𝑚), a A* (kao algoritam informisane pretrage)koristi vrednost funkcije evaluacije 𝑓(𝑚) = 𝑔(𝑚) + ℎ(𝑚).

Opis algoritma A* dat je na slici 3.9. Prilikom dodavanja cvora 𝑚 u otvo-renu listu vrednost 𝑔(𝑚) moze se izracunati na inkrementalan i efikasan nacin:vrednost 𝑔(𝑚) jednaka je zbiru vrednosti funkcije 𝑔 za roditelja cvora 𝑚 i ceniputa od roditelja do 𝑚.

Ako algoritam naide na cvor 𝑚 koji je vec u otvorenoj ili zatvorenoj listi,to znaci da je pronaden novi put do cvora 𝑚. Tada se proverava da li je putod polaznog cvora do vec posecenog cvora 𝑚 preko cvora 𝑛 bolji od postojecegputa. Ako jeste bolji, potrebno je azurirati vrednost 𝑔(𝑚). To moze da se desii za cvor 𝑚 koji pripada zatvorenoj listi: ako to jeste slucaj, potrebno je cvor𝑚 ponovo ispitati kao otvoreni cvor. Ovo je neophodno kako bi se obezbedilopronalazenje najboljeg puta od polaznog do ciljnog cvora.

Koriscenje algoritma A* nije uvek jednostavno. Cesto je algoritam potrebnoprilagoditi specificnom problemu a uvek je, u kontekstu aplikacija koje rade urealnom vremenu, vazno imati u vidu vremensku slozenost, prostornu slozenost,upravljanje memorijom i razlicite dodatne faktore. Neki od dodatnih, spe-cificnih zahteva mogu da iziskuju dodatno matematicko znanje i izracunavanjai specificne implementacione tehnike i strukture. Svi ti moduli treba da buduuklopljeni u kompaktan i efikasan sistem za nalazenje puta.

3.3.1 Svojstva algoritma A*

Moze se dokazati da je algoritam A* potpun i da je pod odredenim uslovimaoptimalan:

Potpunost: Ako su broj cvorova i broj akcija konacni, ako postoji put izmedu

Elektro

nsko

izdanje(2017)

45 3. Informisana pretraga

Algoritam: A*

Ulaz: Graf 𝐺, polazni cvor i ciljni cvorIzlaz: najkraci put od polaznog do ciljnog cvora (ako postoji put izmedu ovadva cvora)

1. Zatvorena lista je inicijalno prazna, a otvorena lista sadrzi samo polaznicvor.

2. Izvrsavaj dok god ima elemenata u otvorenoj listi:

� Izaberi cvor 𝑛 (tekuci cvor) iz otvorene liste koji ima najbolju ocenu𝑓(𝑛).

� Ako je 𝑛 ciljni cvor, izvesti o uspehu i vrati resenje konstruisuci putod polaznog do ciljnog cvora (iduci unazad — od ciljnog cvora).

� Za svaki cvor 𝑚 koji je direktno dostupan iz 𝑛 uradi sledece:

– Ako 𝑚 nije ni u otvorenoj ni u zatvorenoj listi, dodaj ga uotvorenu listu i oznaci 𝑛 kao njegovog roditelja. Izracunaj ipridruzi vrednost 𝑓(𝑚) cvoru 𝑚.

– Inace, proveri da li je put od polaznog cvora do cvora 𝑚 prekocvora 𝑛 bolji (kraci ili jeftiniji) od postojeceg puta do 𝑚 (tre-nutna vrednost 𝑔(𝑚)). Ako jeste, promeni informaciju o ro-ditelju cvora 𝑚 na cvor 𝑛 i azuriraj vrednosti 𝑓(𝑚), a ako je𝑚 bio u zatvorenoj listi, prebaci ga u otvorenu.

� Izbaci 𝑛 iz otvorene liste i dodaj ga u zatvorenu listu.

3. Izvesti da trazeni put ne postoji (otvorena lista je prazna i uspeh nijeprijavljen).

Slika 3.9: Algoritam A*

dva cvora, algoritam A* ce, kao i svaki Prvo najbolji algoritam, naci jedantakav (ukoliko je raspolozivo dovoljno vremena i memorijskog prostora).Cak i ako je heuristicka funkcija veoma losa, ciljni cvor ce biti dostignutu konacnom broju koraka.

Optimalnost: Od svih puteva izmedu dva data cvora, algoritam A* vraticenajkraci (tj. vratice optimalno resenje) ako je funkcija ℎ dopustiva (eng. ad-missible). Funkcija ℎ je dopustiva ako nikada ne precenjuje stvarno ra-stojanje izmedu tekuceg cvora i ciljnog cvora, tj. ako za svaki cvor vazi:

0 ≤ ℎ(𝑛) ≤ ℎ*(𝑛),

gde je ℎ*(𝑛) cena optimalnog puta od cvora 𝑛 do ciljnog cvora.

Elektro

nsko

izdanje(2017)

3.3. Algoritam A* 46

Ukoliko funkcija ℎ nije dopustiva, ali ne precenjuje stvarnu cenu za vise od𝑑, onda je cena puta koji ce pronaci algoritam A* visa od cene najkracegza ne vise od 𝑑.

Funkcija ℎ je konzistentna (eng. consistent) ako ima vrednost 0 za ciljnicvor i za bilo koja dva susedna cvora 𝑚 i 𝑛 vazi:

𝑐(𝑛,𝑚) + ℎ(𝑚) ≥ ℎ(𝑛)

gde je 𝑐(𝑛,𝑚) cena pridruzena (moguce usmerenoj) grani (𝑛,𝑚). Svakakonzistentna funkcija je dopustiva, ali obratno ne vazi. Ako je funkcija ℎkonzistentna, nije potrebno proveravati da li je put preko tekuceg cvora dojednom zatvorenog cvora bolji od postojeceg (jer sigurno nije). Dakle, akoje funkcija ℎ konzistentna, algoritam A* je optimalan i jos jednostavnijinego u opstem slucaju. Dokaz optimalnosti dat je u nastavku i zasnivase na nekoliko pomocnih tvrdenja. U tvrdenjima se pominju vrednosti𝑓 i 𝑔 i treba imati na umu sledece: vrednosti funkcije 𝑔, pa onda i 𝑓 zaneko stanje mogu da se menjaju u toku primene algoritma, ali u stablupretrage svaki cvor ima vrednosti 𝑔 i 𝑓 koje se ne menjaju. Moze da budevise cvorova kojima je pridruzeno jedno isto stanje.

Lema 3.1. Ako je ℎ konzistentna heuristika, onda u svakom trenutkuprimene algoritma, duz svakog puta kroz stablo pretrage, vrednosti 𝑓(𝑛)nisu opadajuce.

Dokaz: Ako je u nekom trenutku primene algoritma cvor stabla pretrage𝑚 tekuci i ako je njegov roditelj cvor 𝑛, onda vazi:

𝑓(𝑚) = 𝑔(𝑚)+ℎ(𝑚) = 𝑔(𝑛)+ 𝑐(𝑛,𝑚)+ℎ(𝑚) ≥ 𝑔(𝑛)+ℎ(𝑛) = 𝑓(𝑛)

Tvrdenje leme onda sledi na osnovu jednostavnog induktivnog ar-gumenta. �

Lema 3.2. Ako je ℎ konzistentna heuristika, za niz cvorova redom progla-senih za tekuce, niz vrednosti 𝑓(𝑛) u stablu pretrage cini neopadajuci niz.

Dokaz: U svakoj iteraciji, algoritam bira za tekuci cvor cvor iz otvo-rene liste sa najmanjom vrednoscu 𝑓(𝑛) (te svi preostali cvorovi uskupu otvorenih cvorova imaju vece ili jednake vrednosti 𝑓). Svibuduci tekuci cvorovi su preostali cvorovi iz otvorene liste, potomcitih cvorova ili potomci njihovih potomaka. Na osnovu prethodneleme onda sledi da svi buduci cvorovi imaju vrednosti 𝑓 vece ili jed-nake 𝑓(𝑛). Kako ovo vazi za svaki tekuci cvor 𝑛, sledi tvrdenje leme,tj. algoritam proglasava cvorove tekucim u neopadajucem poretkupo 𝑓(𝑛). �

Elektro

nsko

izdanje(2017)

47 3. Informisana pretraga

Lema 3.3. Ako je ℎ konzistentna heuristika, kad neki cvor stabla pre-trage 𝑛 postane tekuci, do njegovog stanja je vec pronaden optimalan put.Drugim recima, svaki cvor koji postaje tekuci bice cvor sa najmanjom ce-nom za to stanje.

Dokaz: Kada algoritam proglasi neki cvor tekucim, pri cemu je to prvitakav cvor za odgovarajuce stanje 𝑛, on ima neke vrednosti 𝑔(𝑛) = 𝑔0i 𝑓(𝑛) = 𝑓0. Pretpostavimo da 𝑔(𝑛) nije optimalan put i pretposta-vimo da je optimalan put do istog stanja moguce dostici u nekojkasnijoj iteraciji, u nekom buducem cvoru koji ima vrednosti 𝑔1 i𝑓1. Kako je 𝑔1 cena optimalnog puta do 𝑛, vazi 𝑔0 > 𝑔1, pa i𝑔0 + ℎ(𝑛) > 𝑔1 + ℎ(𝑛), tj. 𝑓0 > 𝑓1. S druge strane, na osnovuprethodne leme, vazi 𝑓0 ≤ 𝑓1, sto je kontradikcija. �

Teorema 3.2. Ako je ℎ konzistentna heuristika, ako je pronadenput do ciljnog cvora, on je sigurno optimalan.

Dokaz: Algoritam vraca nadeni put cim ciljni cvor po prvi put postanetekuci. Na osnovu prethodne leme, ako je ℎ konzistentna heuristika,kad ciljni cvor postane tekuci, do njega je vec pronaden optimalanput, sto daje tvrdenje teoreme. �

Upravo lema 3.3 govori da za cvorove dostupne iz tekuceg cvora koji su veczatvoreni, ne mora da se proverava da li njihova vrednost 𝑔 treba da budeazurirana. Ovo tvrdenje u slucaju konzistentne heuristike obezbedujejednostavniju i efikasniju implementaciju algoritma A*.

Ako je funkcija ℎ konzistentna, onda je ona i dopustiva. Obratno ne vazinuzno: funkcija ℎ moze da bude dopustiva, a da ne bude konzistentna.

Slozenost: Vremenska slozenost algoritma A* zavisi od heuristike. U naj-gorem slucaju, broj obradenih cvorova je eksponencijalan u odnosu naduzinu najkraceg puta. U tom slucaju, i prostorna i vremenska slozenostalgoritma A* jednake su kao za BFS algoritam.

Broj obradenih cvorova je polinomijalan po duzini najkraceg puta ako jeheuristika kvalitetna, tj. ako funkcija ℎ zadovoljava sledeci uslov:

|ℎ(𝑥)− ℎ*(𝑥)| ≤ 𝑂(log ℎ*(𝑥))

gde je ℎ* optimalna heuristika, tj. funkcija koja vraca tacnu cenu putaod cvora 𝑥 do ciljnog cvora.

Elektro

nsko

izdanje(2017)

3.3. Algoritam A* 48

Ukoliko funkcija 𝑓* odgovara optimalnom putu, onda algoritam A* obra-duje sve cvorove za koje vazi 𝑓(𝑛) < 𝑓*(𝑛), kao i neke cvorove 𝑛 za kojevazi 𝑓(𝑛) = 𝑓*(𝑛).

Prethodna tvrdenja sugerisu da algoritam A* najbolje performanse (naj-manji broj obradenih cvorova) daje kada je funkcija heuristike bliska idealnojfunkciji heuristike. S druge strane, optimalnost je garantovana samo ako funk-cija heuristike nikada ne precenjuje stvarnu cenu puta. Zajedno, to govori dadobra funkcija heuristike mora da bude veoma pazljivo konstruisana, tako dabude sto bliza idealnoj funkciji, ali da je nikada ne premasuje.

Primer 3.5. U sledecem grafu zadatak je naci najkraci put od 𝐴 do 𝐸. Poredcvorova grafa zapisane su procenjene duzine puta do cvora 𝐸, tj. vrednostifunkcije ℎ. Naredna tabela ilustruje primenu algoritma A* (odgovarajuce stablopretrage prikazano je na slici 3.10).

𝐴

𝐵

𝐶

𝐷

𝐸𝐹

𝐺

𝐻

5

6

4

3

4

3 3

2

25

6

1

6

5

03

6

4

tekuci stanje otvorene liste u zatvorenu listucvor [cvor(roditelj,g+h)] se dodaje

A(-, 0+6)A(6) D(A,6+5), G(A,5+6) A(-)D(11) G(A,5+6), F(D,9+3), H(D,9+4), C(D,10+6) D(A)G(11) F(D,9+3), H(D,9+4), C(D,10+6) G(A)F(12) B(F,12+1), H(D,9+4), C(D,10+6) F(D)B(13) H(D,9+4), E(B,14+0), C(D,10+6) B(F)H(13) B(H,11+1), E(B,14+0), C(D,10+6) H(D)B(12) E(B,13+0), C(D,10+6) B(H)E(13) C(D,10+6)

Na kraju primene algoritma, kada je cvor 𝐸 postao tekuci cvor, konstruisese trazeni put (koristeci informacije o roditeljma za cvorove iz zatvorene liste:𝐴 −𝐷 −𝐻 − 𝐵 − 𝐸. Koriscena heuristika je dopustiva, pa je pronadeni putoptimalan.

Elektro

nsko

izdanje(2017)

49 3. Informisana pretraga

𝐴

𝐷 𝐺

6 1

11 11

𝐴

𝐷 𝐺

𝐴 𝐶 𝐹 𝐻

6 1

11 2 11

6 16 12 13

𝐴

𝐷 𝐺

𝐴 𝐶 𝐹 𝐻

𝐺

𝐴 𝐻

6 1

11 2 11

6 16 12 13

3

6 13

𝐴

𝐷 𝐺

𝐴 𝐶 𝐹 𝐻

𝐺

𝐴 𝐻𝐹

𝐷 𝐻 𝐵

𝐺

𝐴 𝐻

6 1

11 2 11

6 16 12 13

3

6 134

12 13 13

𝐴

𝐷 𝐺

𝐴 𝐶 𝐹 𝐻

𝐺

𝐴 𝐻𝐹

𝐷 𝐻 𝐵𝐵

𝐻𝐹𝐸

6 1

11 2 11

6 16 12 13

3

6 134

12 13 13 5

𝐴

𝐷 𝐺

𝐴 𝐶 𝐹 𝐻

𝐺

𝐴 𝐻𝐹

𝐷 𝐻 𝐵𝐵

𝐻𝐹𝐸

𝐻

𝐺 𝐷 𝐹 𝐵

6 1

11 2 11

6 16 12 13

3

6 134

12 13 12 5

6

𝐴

𝐷 𝐺

𝐴 𝐶 𝐹 𝐻

𝐺

𝐴 𝐻𝐹

𝐷 𝐻 𝐵𝐵

𝐻𝐹𝐸

𝐻

𝐺 𝐷 𝐹 𝐵

𝐻𝐹𝐸

6 1

11 2 11

6 16 12 13

3

6 134

12 13 12 5

6

7

𝐴

𝐷 𝐺

𝐴 𝐶 𝐹 𝐻

𝐺

𝐴 𝐻𝐹

𝐷 𝐻 𝐵𝐵

𝐻𝐹𝐸

𝐻

𝐺 𝐷 𝐹 𝐵

𝐻𝐹𝐸

6 1

11 2 11

6 16 12 13

3

6 134

12 13 12 5

6

7

8

Slika 3.10: Stablo pretrage tokom primene algoritma A* na problem iz primera3.5 (levo od cvora je zapisana njegova 𝑓 vrednost, a desno redni broj u nizutekucih cvorova)

Elektro

nsko

izdanje(2017)

3.3. Algoritam A* 50

S druge strane, heuristika nije konzistentna jer vazi 𝑐(𝐻,𝐵) + ℎ(𝐵) = 2 +1 < 4 = ℎ(𝐻) (primetimo da vrednosti 𝑓 za cvorove koji postaju tekuci nisuneopadajuce). Zato je nuzno i za zatvorene cvorove proveravati da li se put donjih moze popraviti. To i jeste bio slucaj za cvor 𝐵: u koraku u kojem se 𝐻brise iz zatvorene liste, u nju se dodaje cvor 𝐵 jer je do njega pronaden boljiput (preko 𝐻) od ranije postojeceg. Ukoliko to ne bi bilo radeno, algoritam bise ponasao na sledeci nacin:

𝐴

𝐵

𝐶

𝐷

𝐸𝐹

𝐺

𝐻

5

6

4

3

4

3 3

2

25

6

1

6

5

03

6

4

tekuci stanje otvorene liste u zatvorenu listucvor [cvor(roditelj,g+h)] se dodaje

A(-, 0+6)A(6) D(A,6+5), G(A,5+6) A(-)D(11) G(A,5+6), F(D,9+3), H(D,9+4), C(D,10+6) D(A)G(11) F(D,9+3), H(D,9+4), C(D,10+6) G(A)F(12) B(F,12+1), H(D,9+4), C(D,10+6) F(D)B(13) H(D,9+4), E(B,14+0), C(D,10+6) B(F)H(13) E(B,14+0), C(D,10+6) H(D)E(14) C(D,10+6)

Na kraju primene algoritma, kada je cvor 𝐸 postao tekuci cvor, konstruisese put: 𝐴−𝐷−𝐹−𝐵−𝐸. Ovo jeste put od cvora 𝐴 do cvora 𝐸, ali nije najkracimoguci. Ovo ponasanje posledica je cinjenice da funkcija ℎ nije konzistentna:kada heuristika nije konzistentna, neophodno je proveravati i zatvorene cvorove.

Ukoliko se za isti problem koristi konzistentna funkcija, rezultat ce biti op-timalan put od 𝐴 do 𝐸, a nece biti potrebno proveravati jednom zatvorenecvorove. U narednom primeru koristi se konzistentna heuristika ℎ cija se vred-nost razlikuje u odnosu na prethodnu samo za cvor 𝐻 i daje optimalni put𝐴−𝐷 −𝐻 −𝐵 − 𝐸.

Elektro

nsko

izdanje(2017)

51 3. Informisana pretraga

𝐴

𝐵

𝐶

𝐷

𝐸𝐹

𝐺

𝐻

5

6

4

3

4

3 3

2

25

6

1

6

5

03

6

3

tekuci stanje otvorene liste u zatvorenu listucvor [cvor(roditelj,g+h)] se dodaje

A(-, 0+6)A(6) D(A,6+5), G(A,5+6) A(-)D(11) G(A,5+6), H(D,9+3), F(D,9+3), C(D,10+6) D(A)G(11) H(D,9+3), F(D,9+3), C(D,10+6) G(A)H(12) B(H,11+1), F(D,9+3), C(D,10+6) H(D)B(12) F(D,9+3), E(B,13+0), C(D,10+6) B(H)F(12) E(B,13+0), C(D,10+6) F(D)E(13) C(D,10+6)

Primer 3.6. U primeru pronalazenja najkracih puteva izmedu gradova (pri-mer 1.2), ako su poznata rastojanja izmedu gradova vazdusnim putem, algori-tam A* moze kao heuristicku funkciju ℎ(𝑛) da koristi vazdusno rastojanje odcvora 𝑛 do ciljnog cvora, kao i u primeru 3.1. Tabela na slici 3.11 ilustrujeizvrsavanje algoritma A* na primeru puta Podgorica-Budimpesta. Nadeni putje Podgorica-Beograd-Budimpesta, za razliku od pohlepne pretrage koja prona-lazi put Podgorica-Sarajevo-Beograd-Budimpesta.

Primer 3.7. Slika 3.12 prikazuje stanje slagalice i tri moguca naslednika, kojaimaju ocenu rastojanja istu kao i polazno stanje ili vecu. Stoga, kako se polaznostanje nalazi na platou, pristup ciste pohlepne pretrage je nemocan vec napocetku.

Za isto polazno stanje, algoritam A* pronalazi resenje od pet poteza – levo,gore, desno, dole, dole. Stablo pretrage vrsene algoritmom A* je prikazano naslici 3.13 i odgovara procesu pretrage u kojem se medu stanjima naslednicimaprvo razmatra pogresan, ali po proceni rastojanja, jednako obecavajuc poteznadole.

Elektro

nsko

izdanje(2017)

3.3. Algoritam A* 52

Beograd

Budimpesta

Sarajevo

Zagreb

Podgorica

Skoplje

Sofija

Bukurest590

450

840

640

360

300

240

170350

190

230170

450

280

400

290

390

370

340

300

290

190

380320

430320

560

410

640

tekuci stanje otvorene liste u zatvorenucvor [cvor(roditelj,g+h)] listu se

dodaje

Pg(-,0+560)Pg Sa(Pg,230+410), Bg(Pg,450+320), Sk(Pg,350+640) Pg(-)Sa Bg(Pg,450+320), Sk(Pg,350+640), Zg(Sa,630+300) Sa(Pg)Bg Sk(Pg,350+640), Zg(Sa,630+300), Bud(Bg,830+0) Bg(Pg)Bud Sk(Pg,350+640), Zg(Sa,630+300)

Slika 3.11: Graf koji opisuje problem puteva izmedu gradova.

3.3.2 Specijalni slucajevi primene

Obilasci grafa u dubinu i sirinu mogu se smatrati specijalnim slucajevimaalgoritma A*.

Za obilazak grafa u dubinu, moze se koristiti algoritam A* sa 𝑔(𝑛) = 0 ipogodno kreiranom funkcijom ℎ. Na primer, neka je vrednost 𝐶 inicijalizovanana neku veoma veliku vrednost. Kad god se obraduje neki cvor, vrednost 𝐶 sepridruzuje kao vrednost funkcije ℎ svim njegovim susedima koji nisu poseceniranije. Nakon svake dodele neka se smanjuje vrednost 𝐶 za jedan. Time cevrednost ℎ(𝑛) da bude veca za cvorove na koje se ranije naislo. Ovako definisanafunkcija ℎ nije nuzno dopustiva.

Za 𝑔(𝑛) = 0, algoritam A* predstavlja specijalnu varijantu pristupa Prvonajbolji, koja najpre obraduje cvorove sa najboljom heuristickom vrednoscu.Ova varijanta algoritma nije nuzno optimalna.

Dejkstrin algoritam, kao specijalni slucaj obilaska grafa u sirinu, takodeje specijalni slucaj algoritma A* u kojem je ℎ(𝑛) = 0 za svaki cvor 𝑛. Ova-kva funkcija ℎ je konzistentna i garantuje nalazenje optimalnog puta. Skupotvorenih cvorova siri se ravnomerno, slicno koncentricnim krugovima oko po-laznog cvora, bas kao kod Dejkstrinog algoritma. S druge strane, sa boljom

Elektro

nsko

izdanje(2017)

53 3. Informisana pretraga

1 2 3 4

5 6 11 7

9 10 8

13 14 15 12

5

1 2 3 4

5 6 11 7

9 10 8 12

13 14 15

4

1 2 3 4

5 6 11 7

9 10 8

13 14 15 12

4

1 2 3 4

5 6 11

9 10 8 7

13 14 15 12

6

Slika 3.12: Stablo pohlepne pretrage na primeru slagalice u kojem se polaznostanje nalazi na platou.

heuristikom, skup otvorenih cvorova ce se brze siriti ka ciljnom cvoru.

Opsti algoritam A* cesto se primenjuje za pronalazenje puta na uniform-noj mrezi cvorova (koja odgovara, na primer, diskretizovanoj mapi). Tada ondobija specificnu formu. Pretpostavimo da je mreza pravilna (sacinjena odkvadrata) i da ima pravougaonu formu. Dodatno, pretpostavljamo da nekicvorovi (tj. neki kvadrati, neka polja mreze) nisu dostupni i da oni predsta-vljaju prepreke. Svako polje je povezano sa svakim susednim poljem (osim sapreprekama), te ima (izuzev polja na rubu) cetiri susedna polja (ali neka odnjih mogu biti prepreke i kao takve nedostupne). Svakom horizontalnom ilivertikalnom pokretu obicno se pridruzuje (stvarna) cena 1. Funkcija heuristikeℎ moze se zadati na razlicite nacine. Kada se izracunava vrednost ℎ, obicno se,jednostavnosti i efikasnosti radi, ignorisu sve prepreke jer vrednost ℎ(𝑛) je pro-cenjeno a ne stvarno rastojanje, a ignorisanjem prepreka bice potcenjeno stvarnorastojanje (sto upravo i jeste pozeljan uslov). Jedan nacin zadavanja heuristikeℎ je euklidsko rastojanje izmedu dva polja. Ova funkcija je konzistentna (teobezbeduje optimalnost), ali je zahtevna sto se tice vremena izracunavanja (po-sebno na mapama sa milionima cvorova). Drugi primer funkcije heuristike jeMenhetn rastojanje u kojem se broji ukupan broj polja predenih horizontalnoili vertikalno da bi se doslo od jednog do drugog polja. Ova heuristika je do-pustiva (jer nikad ne precenjuje stvarno rastojanje), te garantuje pronalazenjeoptimalnog puta. Ukoliko su na mrezi dozvoljeni i dijagonalni potezi, onda sesvakom horizontalnom ili vertikalnom potezu obicno pridruzuje stvarna cena1, a svakom dijagonalnom potezu stvarna cena

√2 ≈ 1.414 (ovakva cena od-

govara euklidskom rastojanju izmedu sredista polja; zbog efikasnije primene,ove vrednosti se obicno mnoze nekom konstantom, na primer, 10, i zaokruzujuna ceo broj). U ovom slucaju, Menhetn rastojanje potencijalno precenjuje ra-stojanje do ciljnog cvora, te nije dopustiva heuristika i zbog toga ne garantujepronalazenje najkraceg puta. No, ovaj metod u praksi ipak obicno daje dobrerezultate i pronadeni putevi su obicno dovoljno dobri, cak i ako nisu najkraci. I

Elektro

nsko

izdanje(2017)

3.3. Algoritam A* 54

1 2 3 4

5 6 11 7

9 10 8

13 14 15 12

0 + 5 (1)

1 2 3 4

5 6 11 7

9 10 8 12

13 14 15

1 + 4 (2)

1 2 3 4

5 6 11 7

9 10 8

13 14 15 12

1 + 4 (3)

1 2 3 4

5 6 11

9 10 8 7

13 14 15 12

1 + 6

1 2 3 4

5 6 11 7

9 10 8 12

13 14 15

2 + 5

1 2 3 4

5 6 11 7

9 10 8

13 14 15 12

2 + 5

1 2 3 4

5 6 7

9 10 11 8

13 14 15 12

2 + 3 (4)

1 2 3 4

5 6 11 7

9 10 15 8

13 14 12

2 + 5

1 2 3 4

5 6 7

9 10 11 8

13 14 15 12

3 + 4

1 2 3 4

5 6 7

9 10 11 8

13 14 15 12

3 + 2 (5)

1 2 4

5 6 3 7

9 10 11 8

13 14 15 12

3 + 4

1 2 3

5 6 7 4

9 10 11 8

13 14 15 12

4 + 3

1 2 3 4

5 6 7 8

9 10 11

13 14 15 12

4 + 1 (6)

1 2 3 4

5 6 7 8

9 10 11

13 14 15 12

5 + 2

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15

5 + 0 (7)

Slika 3.13: Stablo pretrage vrsene algoritmom A*, na primeru slagalice u kojemse polazno stanje nalazi na platou. U prikazu stabla, medu naslednicima svakogstanja su samo stanja koja nisu vec dodata u zatvorenu listu. U zagradama sunavedeni redni brojevi pod kojim stanja postaju tekuca.

Elektro

nsko

izdanje(2017)

55 3. Informisana pretraga

kada heuristika nije konzistentna, mogu da se ne azuriraju (i otvaraju ponovo)zatvoreni cvorovi. I ovakav pristup cesto daje dovoljno dobra i efikasna resenja,iako ne nuzno optimalna.

Primer 3.8. Vrednosti funkcija 𝑓 , 𝑔 i ℎ su napisane u svakom polju uniformnemreze: vrednost funkcije 𝑓 je zapisana gore-levo, vrednost funkcije 𝑔 dole-levo,a vrednost funkcije ℎ dole-desno. Vrednost funkcije 𝑓 za svako polje je, kaoi obicno, zbir vrednosti funkcija 𝑔 i ℎ. Polazni cvor oznacen je zelenom, aciljni crvenom bojom. Dozvoljeni su horizontalni, vertikalni i dijagonalni po-tezi. Otvorena polja su oznacena tankim zelenim kvadratima, a zatvorena de-bljim crvenim kvadratima u okviru polja. Strelice ukazuju na tekuceg roditeljapolja.

Postupak je isti kao kod opsteg algoritma: u svakoj iteraciji bira se polje izotvorene liste sa najmanjom vrednoscu funkcije 𝑓 . To, tekuce polje izbacuje seiz otvorene liste i dodaje u zatvorenu listu. Proveravaju se sva susedna polja,ne razmatrajuci polja koja su u zatvorenoj listi ili nisu dostupna. Ako susednopolje nije vec u otvorenoj listi, izracunavaju se vrednosti funkcija 𝑔, ℎ i 𝑓 zanjega i oznacava se da je tekuce polje njegov roditelj. Ako je susedno polje vecu otvorenoj listi, proverava se da li je put preko tekuceg polja bolji, tj. proveravase da li je vrednost funkcije 𝑔 za to susedno polje manja ako se do njega dolazipreko tekuceg polja. Ukoliko to nije tacno, ne preduzima se nista, a ako jeste,tekuce polje postaje novi roditelj tog susednog polja i njemu se pridruzuju novevrednosti 𝑔 i 𝑓 .

Pretraga krece od polaznog polja jer je na pocetku samo ono u otvorenojlisti. U poljima levo, desno, gore i dole od polaznog polja, vrednost funkcije 𝑔 je10. U dijagonalnim poljima vrednost funkcije 𝑔 je 14. Ove vrednosti odgovarajupribliznom euklidskom rastojanju (pomnozenom sa 10 i zaokruzenom). Vred-nosti funkcije ℎ izracunavaju se na osnovu Menhetn rastojanja (pomnozenogsa 10) do ciljnog polja i zanemarujuci prepreku.

Polazno polje brise se iz otvorene liste i dodaje u zatvorenu listu. U otvo-renoj listi je samo njegovih osam susednih polja. Od svih njih, bira se ono sanajmanjom vrednoscu funkcije 𝑓 (40), to je polje neposredno desno od polaznogpolja i ono ce biti sledece tekuce polje.

Tekuce polje izbacuje se iz otvorene liste, dodaje se u zatvorenu listu i ondase proveravaju njegova susedna polja (naravno, samo ona koja nisu u zatvo-renoj listi i nisu prepreke). Preostala cetiri polja su vec u otvorenoj listi, paje potrebno proveriti da li put preko tekuceg cvora popravlja njihove trenutneocene. Razmotrimo, na primer, polje neposredno iznad tekuceg polja: vrednostfunkcije 𝑔 za njega je 14. Ukoliko bi se do njega dolazilo preko tekuceg polja,vrednost funkcije 𝑔 bila bi 20 (10 je cena od polaznog do tekuceg cvora i 10je cena prelaska od tekuceg polja). Dakle, na ovaj nacin se ne moze popravitivrednost funkcije 𝑔 u polju iznad i ona ostaje nepromenjena.

Opisani postupak sprovodi se za sva cetiri susedna polja i, u ovom slucaju,utvrduje se da ocena nijegnog ne moze da se popravi. Time je obrada tekucegpolja zavrsena i trazi se novo tekuce polje. Od preostalih sedam polja u otvorenoj

Elektro

nsko

izdanje(2017)

3.3. Algoritam A* 56

1460

74

1050

60

1440

54

1030

40

1440

54

1050

60

1460

74

1050

60

𝑔 ℎ

𝑓

1460

74

1050

60

1440

54

1030

40

1440

54

1050

60

1460

74

1050

60

1030

40

1460

74

1050

60

1440

54

1030

40

1440

54

1050

60

1460

74

1050

60

1030

40

2860

88

2450

74

1460

74

1050

60

1440

54

1030

40

1440

54

1050

60

1460

74

1050

60

1030

40

2880

108

2470

94

2060

80

2470

94

2880

108

2470

94

2060

80

2450

74

2470

94

3870

108

3870

108

3460

94

2060

80

2450

74

3440

74

3850

88

4430

74

4840

88

5420

74

5830

88

7230

102

5420

74

5810

68

6820

88

7210

82

68 0

68

7210

82

1460

74

1050

60

1440

54

1030

40

1440

54

1050

60

1460

74

1050

60

1030

40

2880

108

2470

94

2060

80

2470

94

2880

108

2470

94

2060

80

2450

74

2470

94

3870

108

3870

108

3460

94

2060

80

2450

74

3440

74

3850

88

4430

74

4840

88

5420

74

5830

88

7230

102

5420

74

5810

68

6820

88

7210

82

68 0

68

7210

82

Slika 3.14: Ilustracija rada algoritma A* na uniformnoj mrezi

listi bira se ono sa najmanjom vrednoscu funkcije 𝑓 . Ukoliko postoji vise takvihsvejedno je koji izabrati. Neka je, na primer, izabrano polje neposredno ispodprethodnog tekuceg polja.

Za tekuce polje nece se razmatrati susedna polja koja su u zatvorenoj listikao i ona koja su nedostupna (tj. prepreke). No, moze se (iako to nije nuznoi zavisi od konkretne primene) zabraniti ispitivanje polja koje je desno-dole odtekuceg polja. Naime, moze se smatrati da je dijagonalni potez od tekuceg dotog polja nemoguc zbog prepreke koja se nalazi desno od tekuceg polja. Ukoliko

Elektro

nsko

izdanje(2017)

57 3. Informisana pretraga

se prihvati takvo ogranicenje, ostaje jos tri susedna polja koja treba razmotriti.Dva polja ispod tekuceg polja nisu u otvorenoj listi, pa se dodaju zajedno saizracunatim vrednostima funkcija i informacijom da im je roditelj tekuce polje.Za polje levo od tekuceg polja se proverava da li se moze smanjiti vrednostfunkcije 𝑔 (odgovor je — ne) i time je zavrsena obrada tekuceg polja.

Opisani postupak se nastavlja dok ciljno polje ne postane tekuce.

U konkretnom primeru, nakon nekoliko iteracija, vrednosti funkcija 𝑔 i 𝑓 ,kao i roditeljsko polje promenili su se za polje dva polja ispod polaznog polja.Ranije je ovo polje imalo vrednost funkcije 𝑔 jednaku 28 (i vrednost funkcije 𝑓jednaku 88) i roditeljsko polje je bilo gore-desno. Kasnije, ovo isto polje imavrednost funkcije 𝑔 jednaku 20 (i vrednost funkcije 𝑓 jednaku 80), a roditeljskopolje je gore. Ova izmena dogodila se u nekoj iteraciji u meduvremenu. U ovomslucaju ona ne utice na pronadeni put, ali su ovakve izmene u opstem slucajuveoma ceste i uticu na konacno resenje.

Kada tokom pretrage ciljno polje postane tekuce, trazeni put od polaznogcvora se konstruise jednostavno. Krece se od ciljnog cvora i prelazi na roditeljskisve dok se ne dode do polaznog cvora. Ovako odreden niz polja u suporotnomporetku daje trazeni put od polaznog do ciljnog polja.

3.3.3 Implementaciona pitanja

Algoritam A* se obicno primenjuje u aplikacijama koje rade u realnom vre-menu, te je neohodno da je efikasno implementiran. Otvorena lista se cestoimplementira kao binarni min-hip (kako bi se brzo dolazilo do elementa sa naj-manjom vrednoscu funkcije 𝑓), a zatvorena lista kao hes tabela3. Koriscenjemovih funkcija, operacije za dodavanje u i brisanje elemenata iz otvorene listezahtevaju vreme 𝑂(log 𝑉 ), gde je 𝑉 broj cvorova grafa, a dodavanje cvora uzatvorenu listu i proveravanje da li je vec u zatvorenoj listi zahteva vreme 𝑂(1).

Zahtevi za memorijskim prostorom su za algoritam A* cesto jos veci pro-blem nego vremenska slozenost. Ipak, ukoliko broj cvorova grafa nije preveliki,moze da bude isplativo i staticko alociranje potrebnog prostora (ili dinamickoalociranje vecih blokova) koji onda moze da se koristi u savezu sa min-hipstrukturom, kako bi se izbegle ceste i skupe operacije dinamickog alociranja (idealociranja) za pojedinacne cvorove.

Potrebno je eliminisati racun sa decimalnim brojevima i koristiti samocelobrojnu aritmetiku. Ukoliko cene imaju vrednosti koje nisu celobrojne(npr. 1.414) potrebno ih je pomnoziti sa, na primer, 1000 i koristiti samo zao-kruzene vrednosti.

Najgori slucaj za algoritam A* je kada ne postoji put izmedu polaznog iciljnog cvora. U tu svrhu moze se implementirati brza provera da li uopstepostoji put izmedu dva cvora: dva cvora su povezana ako i samo ako pripadaju

3 Hes tabela je struktura podataka koja povezuje vrednosti i kljuceve. Ona omogucavaefikasno nalazenje vrednosti na osnovu kljuca. To se postize preslikavanjem kljuca hes funk-cijom u hes vrednost koja sluzi kao indeks niza na kojem se nalazi odgovarajuca vrednost.

Elektro

nsko

izdanje(2017)

3.3. Algoritam A* 58

povezanim delovima grafa. Ako se za svaki cvor moze lako proveriti kom delugrafa pripada, onda je i navedena provera jednostavna.

Kada se algoritam A* primenjuje za pronalazenje puta na uniformnoj mrezi,on daje korake u osam mogucih smerova sto kasnije cesto dovodi do neprirodnihputeva sacinjenih od segmenata sa jednim od osam nagiba. Takve puteve je po-trebno unaprediti omeksavanjem, tj. zameniti slicnim putevima koji izgledajuprirodnije.

Pitanja i zadaci

Pitanje 3.1. Kako se naziva algoritam pretrage koji uvek bira lokalno opti-malne akcije?

Pitanje 3.2. Sta, umesto globalnog ekstremuma, pohlepna pretraga moze vra-titi kao rezultat?

Pitanje 3.3. Sta je plato u problemima pretrage?

Pitanje 3.4. Kako se zove oblast prostora pretrage u kojem ciljna funkcijaima konstantnu vrednost?

Pitanje 3.5. Cemu je jednaka vrednost 𝑓(𝑛) koja se u algoritmu A* pri-druzuje cvoru 𝑛?

Pitanje 3.6. Sta, za razliku od Dejkstrinog algoritma, algoritam A* uzima uobzir?

Pitanje 3.7. Da li je algoritam A* opstiji od Dejkstrinog algoritma? Da lije Dejkstrin algoritam opstiji od algoritma A*?

Pitanje 3.8. Kada se algoritam A* ponasa isto kao Dejkstrin algoritam?

Pitanje 3.9. Da li se tokom primene algoritma A*, moze promeniti vrednost𝑔(𝑛) za cvor 𝑛? Da li se tokom primene algoritma A*, moze promeniti vred-nost ℎ(𝑛) za cvor 𝑛? Da li se tokom primene algoritma A*, moze promenitivrednost 𝑓(𝑛) za cvor 𝑛?

Pitanje 3.10. Kako se zove skup iz kojeg se u glavnoj petlji algoritma A*bira tekuci cvor?

Pitanje 3.11. Kakva struktura se koristi za cuvanje vrednosti funkcije eva-luacije u okviru algoritma A*? Obrazloziti.

Pitanje 3.12. Da li je, na samom pocetku primene algoritma A*, lista za-tvorenih cvorova prazna?

Pitanje 3.13. Koji cvor se, prilikom primene algoritma A*, prvi dodaje ulistu otvorenih cvorova?

Elektro

nsko

izdanje(2017)

59 3. Informisana pretraga

Pitanje 3.14. Kada se, u okviru algoritma A*, u listu zatvorenih cvorovadodaje novi element?

Pitanje 3.15. Tokom primene algoritma A*, ako se ispituje tekuci cvor inaide na njegov susedni cvor 𝑣 koji nije u zatvorenoj listi, ali jeste u otvorenojlisti, sta treba uraditi?

Pitanje 3.16. Da li je na kraju primene algoritma A* lista otvorenih cvorovanuzno prazna?

Pitanje 3.17. Da li je na kraju primene algoritma A* lista zatvorenih cvorovanuzno prazna?

Pitanje 3.18. Sta je uslov zaustavljanja za algoritam A*?

Pitanje 3.19. Za koje grafove je algoritam A* najpogodniji za primenu?

Pitanje 3.20. Kada kazemo da je funkcija heuristike ℎ u algoritmu A* do-pustiva, a kada kazemo da je konzistentna?

Pitanje 3.21. Sta znaci to da je algoritam A* potpun?

Pitanje 3.22. Pod kojim uslovom je algoritam A* potpun?

Pitanje 3.23. Pod kojim uslovom je algoritam A* optimalan (nalazi najkraciput)?

Pitanje 3.24. Ukoliko je 𝑓* funkcija koja odgovara optimalnom putu izmedudva cvora u grafu, koje cvorove obraduje algoritam A*?

Pitanje 3.25. Kada je u algoritmu A* broj obradenih cvorova polinomijalan?

Pitanje 3.26. Kako se zove rastojanje izmedu dva cvora u kojem se brojiukupan broj polja predenih horizontalno ili vertikalno od prvog do drugog?

Pitanje 3.27. Koliko je Mehnetn rastojanje izmedu donjeg levog i gornjegdesnog polja sahovske table?

Pitanje 3.28. Kada se algoritam A* primenjuje na uniformnoj mrezi, kojafunkcija se obicno primenjuje kao heuristika? Da li je ova heuristika dopu-stiva? Zasto se primenjuje ova heuristika, sta je njena kljucna osobina?

Pitanje 3.29. Kada se algoritam A* primenjuje na uniformnoj mrezi, sta seobicno koristi kao cena puta do susednog cvora koji je desno, a sta do susednogcvora gore-desno?

Elektro

nsko

izdanje(2017)

3.3. Algoritam A* 60

Zadatak 3.1. Data je tabla za igru kao na sledecoj slici. Potrebno je nacinajjeftiniji put od polja A do polja B pri cemu dijagonalno kretanje nije do-zvoljeno. Cena prelaska sa belog na belo polje je 1, cena prelaska sa belog nasivo polje je 4 i cena prelaska sa sivog na belo polje je takode 4. Crno poljenije dostupno. Prikazati izvrsavanje algoritma A* za ovaj problem. Za ocenucene kretanja od nekog polja do cilja, koristiti Menhetn rastojanje od tog poljado cilja.

A

B

Zadatak 3.2. Potrebno je naci najjeftiniji put od grada A do grada E. Pro-cenjene cene puta od razlicitih gradova su (A,105), (B,100), (C,50), (D,20).Stvarne cene putovanja izmedu gradova su (A,B,20), (A,C,50), (A,D,100),(B,C,20), (B,E,110), (C,D,30), (D,E,30). Izmedu ostalih gradova nema pu-teva. Da li je zadata heuristika dopstiva? Da li je zadata heuristika konzi-stentna? Prikazati izvrsavanje algoritma A* na ovom problemu.

Zadatak 3.3. U datom grafu, algoritmom A* naci najkraci put od gornjeglevog do donjeg desnog cvora. Pri tom, brojevi pored cvorova predstavljajuvrednosti heuristicke procene cene puta preko tog cvora, dok brojevi iznadlukova predstavljaju tacne cene prelaska od cvora do cvora.

c cc c

1 0

2 1

1

1

2 3

Zadatak 3.4. U datom grafu, algoritmom A*, naci najkraci put od cvora Ado cvora F. Podvuceni brojevi predstavljaju vrednosti heuristicke funkcije ucvorovima, a ostali cene prelaska preko grana.

𝐴2 𝐵2

𝐶1 𝐷1 𝐸1

𝐹0

2

2

6

2

6 2

2

6

2

Zadatak 3.5. Algoritmom A* naci put od cvora A do cvora E. Heuristickaprocena cene puta izmedu dva cvora je broj grana koje je potrebno preci natom putu. Stvarne cene su date pored grana.

Elektro

nsko

izdanje(2017)

61 3. Informisana pretraga

𝐴 𝐵

𝐶

𝐷 𝐸

10

18

64

1

1

Zadatak 3.6. Algoritmom A* naci put od cvora V3 do cvora V1. Heuristickaprocena cene puta izmedu dva cvora je broj grana koje je potrebno preci natom putu. Stvarne cene su date pored grana.

𝑉 3

𝑉 4𝑉 5

𝑉 2

𝑉 0 𝑉 1

73

9

12

8 1

5

4

Zadatak 3.7. Na datoj tabli primeniti algoritam A*. Kao heuristicka merarastojanja izmedu dva cvora koristi se Menhetn rastojanje. S oznacava start,a C cilj. Stupanje na belo polje kosta 2, na sivo 6, a crna polja su neprohodna.

S

C

Zadatak 3.8. Na datoj tabli primeniti algoritam A*. Kao heuristicka merarastojanja izmedu dva cvora kojirsti se Menhetn rastojanje. S oznacava start,a C cilj. Stupanje na belo polje kosta 1, na sivo 6, a crna polja su neprohodna.

C

S

Zadatak 3.9. Pera peca na mostu 𝐴 bez mnogo uspeha. Od druga koji je namostu 𝐵 je cuo da je tamo ulov veliki. Pera procenjuje vreme u minutimakoje mu je potrebno da autom doe. do mosta 𝐵 kao najmanji broj ostrva prekokojih mora da pree. . Vremena koja su mu potrebna za prelazak preko svakogod ostrva su na prilozenoj slici zapisana na tim ostrvima, ali ih Pera nezna. Kako bi zapamtio najkraci put i za ubuduce, Pera se odlucuje da ga nae.algoritmom A*. Opisati Perinu pretragu.

Elektro

nsko

izdanje(2017)

3.3. Algoritam A* 62

1 1 1

3 1

𝐴

𝐵

Elektro

nsko

izdanje(2017)

Glava 4

Igranje strateskih igara

Igranje strateskih igara kao sto je sah jedan je od klasicnih problema vestackeinteligencije i verovatno jedan od najatraktivnijih. Kako strateske igre zahte-vaju odlucivanje koje se moze smatrati inteligentnim, ova problematika pred-met je interesovanja mnogih istrazivaca u oblasti vestacke inteligencije, a ine samo njih. Mozda su zbog toga neki od najvecih dometa vestacke inte-ligencije upravo u ovom domenu: racunari su vec pobedili svetske sampioneu igrama bekgemon, dame i sah (u igri sa racunarom, partiju saha izgubioje 1997. godine, tadasnji vazeci svetski sampion Gari Kasparov), a pocetkom2016. godine i u igri go. Uprkos ovim dometima, jos uvek treba zadrzati oprezprema programima za strateske igre, jer njihovi principi odlucivanja kvalita-tivno (po pitanjima apstrahovanja, analogija, pravljenja planova i sl.) jos uveknisu dovoljno blizu ljudskim. Mogucnosti resavanja ovih problema i primenetih tehnika u drugim domenima upravo i motivisu dalja istrazivanja vestackeinteligencije u ovom pravcu. Vecina najznacajnijih programa za igranje igarazasnovana je na efikasnim algoritmima pretrage, a od nedavno (na primer, zaigru go) i na naprednim tehnikama masinskog ucenja.

U ovom tekstu nece biti upustanja u teorijske analize pojedinacnih igara,vec ce biti opisani opsti pojmovi i algoritmi koji mogu da se koriste za sirokspektar strateskih igara. Preciznije, bice razmatrani algoritmi za igre nultesume za dva igraca bez nepoznatih informacija, dakle — igre kod kojih igraci,grubo receno, imaju analogne, simetricne mogucnosti i svaki igrac zna kojepoteze na raspolaganju ima protivnik. U ovu kategoriju spadaju, na primer,igre sah, dame, go, reversi, iks-oks, cetiri u nizu itd, a ne spadaju, na primer,igre u kojima igrac ne zna karte koje ima protivnik, nepoznati broj koji trebapogoditi itd.

63

Elektro

nsko

izdanje(2017)

4.1. Rani algoritmi za igranje strateskih igara 64

4.1 Rani algoritmi za igranje strateskih igara

Istorija automatskog igranja strateskih igara pocinje pocetkom dvadese-tog veka: spanski pronalazac Tores Kevedo (Torres y Quevedo) konstruisao je1910. godine (i prikazao 1914. na svetskoj izlozbi u Parizu) elektro-mehanickiuredaj El Ajedrecista („Sahista“) koji je, kao beli, igrao sahovsku zavrsnicu„kralj i top protiv kralja“ i iz svake pozicije nepogresivo pobedivao (iako ne unajmanjem mogucem broju poteza).

Razmatranje teorije igara zapoceo je fon Nojman (Von Neuman) postavlja-njem opsteg problema (1928): Igraci 𝑆1, 𝑆2, . . . , 𝑆𝑛 igraju datu igru Γ. Kakotreba da igra igrac 𝑆𝑚 da bi ostvario najbolji moguci rezultat? Za vecinu igaratesko je ili nemoguce efektivno realizovati optimalni algoritam za proizvoljnopocetno stanje.

Moderna istorija programiranja igara pocinje „klasicnim“ tekstom Program-ming a digital computer for playing Chess koji je 1950. godine objavio KlodSenon (Claude Shannon). U tom tekstu Senon je opisao dve opste strategijeza izbor poteza: strategije A i B:

A: Minimaks procedurom vrsi se pretrazivanje stabla igre sa odredenomfunkcijom evaluacije i ocenjivanje legalnih poteza; bira se potez sa naj-boljom ocenom (videti poglavlje 4.4.2).

B: Potez se bira na osnovu trenutne pozicije/situacije u igri i na osnovuodgovarajuce, unapred pripremljene tabele.

Pristup zasnovan na Senonovoj A strategiji naziva se i gledanje unapred(eng. lookahead) pristupom, a ponegde i „sistematskim pretrazivanjem“ ili „du-binskim pretrazivanjem“. Ako bi se koriscenjem ove strategije, minimaks al-goritmom, pretrazivanje stabla igre vrsilo do zavrsnih stanja igre, ispitivanjemsvih mogucih tokova partije zaista bi bio izabran najbolji legalan potez i taj iz-bor bi imao savrseno obrazlozenje u samom primenjenom algoritmu. Medutim,za vecinu igara nije prakticno moguce pretraziti kompletno stablo igre. Caki pretrazivanje stabla igre do dubine od svega nekoliko poteza u igrama saprosecno deset ili dvadeset legalnih poteza, zahteva ispitivanje ogromnog brojapozicija. Zbog toga, efikasna primena SenonoveA strategije svodi se na pristup„gruba sila plus jednostavna vrednosna funkcija“, tj. na pretrazivanje stabla igredo relativno male dubine algoritmima koji su usmereni heuristikama i uz do-bro osmisljenu, ali jednostavnu funkciju evaluacije za ocenu nezavrsnih pozicijaigre (umesto jednostavne „trovrednosne“ funkcije za ocenu zavrsnih pozicija).Ovakvim pristupom gubi se svojstvo po kojem se pretrazivanjem dobija zaistanajbolji potez, a obim pretrazivanja i razlicitih izracunavanja ostaje, najcesce,i dalje veoma veliki. Precizni opisi funkcije evaluacije, algoritama minimaks isrodnih dati su u poglavlju 4.4.

Senonovoj strategiji B tipa odgovara lookup table pristup – jednostavnatabela koja zamenjuje izracunavanje u toku izvrsavanja. U kontekstu igara,ovaj pristup zahteva postojanje unapred pripremljene tabele sa dve kolone: u

Elektro

nsko

izdanje(2017)

65 4. Igranje strateskih igara

jednoj su moguce pozicije/stanja igre, a u drugoj optimalni potezi. Jednaod „klasicnih“ implemetacija ovog pristupa je program za igranje sahovskezavrsnice „kralj i kraljica protiv kralja i topa“ koji je 1977. godine kreirao Ke-net Tompson (Kenneth Thompson, tvorac operativnog sistema UNIX). Tabelakoju je koristio program sadrzavala je sve moguce pozicije za oba igraca i opti-malne poteze za sve te pozicije (pri cemu se pod optimalnim potezom za jacegigraca (koji ima kralja i kraljicu) smatra potez koji vodi pobedi u najmanjembroju poteza, a za slabijeg, potez koji maksimalno odlaze poraz). Tabela jeimala oko tri miliona vrsta i program koji se na njoj zasnivao bio je nepobediv.Tabela je kreirana koristeci retrogradnu analizu i induktivni pristup. Za opti-malnu igru igraca koji ima topa, najpre se prepoznaju i oznacavaju pozicije ukojima je protivnik matiran (mat u 0 poteza), dalje, prepoznaju se pozicije ukojima ma sta da odigra protivnik postoji mat u najvise 𝑑 poteza i za takvepozicije vazi da postoji mat u najvise 𝑑+1 potez. Za zavrsnicu kralj i top protivkralja, ovaj postupak staje posle 33 iteracije (jer iz svake pozicije postoji matu najvise 33 poteza). Nedavno su (2012), koriscenjem sustinski istog pristupa,na Moskovskom univerzitetu kreirane Lomonosov tabele optimalih poteza zasve sahovske zavrsnice sa najvise sedam figura na tabli. Tabela sadrzi vise od500 triliona pozicija (pri cemu se u tabeli ne cuvaju mnoge pozicije koje semogu dobiti od drugih simetrijama i rotacijama). U ovom pristupu, znanje oigri ne nalazi se niti u samom programu koji igra, niti u tabeli, vec u programukoji je tabelu generisao. Opisani pristup zahteva, pored adekvatne procedureza generisanje lookup tabele i veliku memoriju (za smestanje svih mogucih po-zicija), ali u samom procesu igre program zahteva zanemarljivo vreme za izborpoteza.

Senonova strategija A u procesu izbora poteza zahteva malo memorije imnogo izracunavanja, a strategija B malo izracunavanja i mnogo memorije. Natoj skali odnosa kolicine podataka koji se koriste i obima izracunavanja, covekovnacin zakljucivanja je izmedu ovih krajnosti i bitno se od njih razlikuje po svojojprirodi. Upravo priroda covekovog nacina razmisljanja i zelja da se on oponasa,vodi ka novim pristupima u formalizaciji igara i njihovom programiranju.

4.2 Legalni potezi i stablo igre

Pravila konkretne igre definisu legalna stanja (tj. legalne pozicije) i legalnepoteze za svaku legalnu poziciju. Za svaku legalnu poziciju moze se efektivnoodrediti skup legalnih poteza. Neke legalne pozicije mogu biti pocetne pozicijea neke zavrsne. U nekim igrama, legalni potez moze biti i dalje, u situaciji kadaigrac koji je na redu nema na raspolaganju legalnih poteza i preskace svoj red(takve situacije ne postoje u sahu, ali postoje, na primer, u igri reversi).

Prostor stanja igre moze se opisati grafom ciji su cvorovi legalne pozicije,a grane legalni potezi. Taj graf je usmeren jer nije nuzno da postoje potezi uoba smera koji povezuju dva stanja (na primer, u sahu pesak moze da ide samonapred, ne i nazad). Stablo igre je stablo pretrage koje nastaje pretrazivanjemgrafa prostora stanja. U igri za dva igraca, u ovako definisanom stablu igre,

Elektro

nsko

izdanje(2017)

4.3. Otvaranje 66

od korena do bilo kog lista naizmenicno se smenjuju grane koje odgovarajupotezima prvog i drugog igraca.

Kompletno stablo igre je stablo igre u cijem je korenu pocetna pozicija igre,a svi listovi su zavrsne pozicije igre. Kompletno stablo igre ima onoliko li-stova koliko data igra ima razlicitih regularnih tokova. Taj broj je kod vecineigara (cak i kod veoma jednostavnih) ogroman i onemogucava kompletno pre-trazivanje u cilju izbora poteza. Na slici 4.1 ilustrovan je deo kompletnog stabloigre za igru iks-oks.

x x

x. . .. . . . . .

xo x o. . . . . . . . . . . . . . . . . . . . . . . . . . .

. . .. . .. . .. . .. . .. . .

x

o

. . . . . . . . .x x

o

xox

o

x xo

o

x x

oo. . .

xoxx

o

xoxxo

. . .xox

xo

xxxo

o. . . . . . . . . . . . . . . . . . . . .

. . .. . .. . .. . .. . .. . . . . .. . .. . .

zavrsno stanje

Slika 4.1: Deo stabla igre za igru iks-oks

U procesu trazenja poteza, ne kreira se stablo pretrage kao struktura, vecje stablo samo implicitno i opisano je procesom (obicno rekurzivnim) obilaskapozicija. Ako je proces pretrage rekurzivan, za potez dubine 𝑑 pamte se samopodaci proistekli iz 𝑑-tostrukog rekurzivnog pozivanja.

4.3 Otvaranje

U programima za strateske igre cesto je znacajna biblioteka otvaranja (ope-ning book) — koja je zasnovana na ljudskom iskustvu i koja sadrzi informacije opoznatim i kvalitetnim potezima koji se cesto javljaju u otvaranju. Bibliotekaotvaranja moze biti staticka (sadrzati odreden, konacan broj varijanti u sva-kom potezu i informacije o potezima samo do odredene dubine) ili se prosirivatitokom samog izvrsavanja programa.

Elektro

nsko

izdanje(2017)

67 4. Igranje strateskih igara

U igri programa sledi se tok partije iz biblioteke dok je to moguce (doko tome postoje odgovarajuce informacije u biblioteci otvaranja), a onda seprelazi na druge strategije izbora poteza. Ukoliko za neku poziciju postojiu biblioteci vise mogucih nastavaka, izbor moze da se nacini po odredenimverovatnocama koje mogu da se koriguju tokom rada programa ili i premaduzini koja u stablu sledi iza odredenog poteza (kao teznja da se sto duzeostane u poznatim varijantama).

Pomenuti pristup moze da se realizuje, na primer, na sledeci nacin: neka je,na osnovu biblioteke otvaranja, u nekom trenutku na raspolaganju 𝑛 poteza.Svakom od njih neka je pridruzena ocena 𝑚𝑖 (1 ≤ 𝑖 ≤ 𝑛) na osnovu empirijskeprocene i na osnovu dubine biblioteke partija koja sledi za 𝑖-tim potezom (teocene predstavljaju karakteristican, dodatni deo biblioteke partija). Ukolikoempirijske procene govore da je 𝑖-ti potez bolji, to je ocena 𝑚𝑖 veca. Takode,ocena 𝑚𝑖 je veca ukoliko je veca dubina biblioteke partija koja sledi za 𝑖-timpotezom. Tada se, u toj poziciji, 𝑖-ti potez (1 ≤ 𝑖 ≤ 𝑛) bira sa verovatnocom

𝑝𝑖 =𝑚𝑖∑𝑛𝑗=1 𝑚𝑗

.

Na taj nacin izbegava se deterministicko ponasanje programa u otvaranju: boljipotezi (u smislu neke procene) se biraju cesce, ali ne uvek. Ocene 𝑚𝑖 mogu setokom vremena i korigovati.

4.4 Sredisnjica

Savremeni programi za strateske igre u sredisnjici najcesce koriste dubinskopretrazivanje (sa jednostavnom funkcijom evaluacije) stabla igre koja odgovaraSenonovoj A strategiji. Kod vecine programa za kompleksnije strateske igre,pored kvalitetne funkcije evaluacije, od kljucne vaznosti su algoritmi koji sekoriste za pretrazivanje stabla igre. Pri pretrazivanju stabla igre u sredisnjici,funkcija evaluacije se izracunava samo za cvorove na nekoj odredenoj dubini,a ostalim cvorovima se pozicija ocenjuje na osnovu ocena nekih od cvorova-potomaka. Pretrazivanje stabla igre odredeno je funkcijom evaluacije, algorit-mom pretrazivanja, heuristikama, dubinom pretrazivanja, itd.

4.4.1 Staticka ocena pozicije i funkcija evaluacije

U cilju odredivanja dobrog (ne nuzno zaista najboljeg) poteza za igraca kojije na potezu, cvorovima stabla igre se mogu dodeliti neke ocene, na osnovu kojecvorovi tj. pozicije i potezi mogu da se porede po kvalitetu. Funkcija evalu-acije (eng. evaluation function) ili vrednosna funkcija je staticka ocena kojase, u skladu sa specificnim karakteristikama konkretne igre, dodeljuje pozicijipri cemu se ne ispituju ni pozicije iz kojih se doslo u tu poziciju, niti mogucinastavci. Gotovo sve znanje o igri koje se koristi u sredisnjici partije sadrzanoje u funkciji evaluacije i u najvecoj meri od nje zavisi kvalitet igre programa.Potrebno je da sadrzi sto vise relevantnih informacija, ali s druge strane, kako

Elektro

nsko

izdanje(2017)

4.4. Sredisnjica 68

se izracunava mnogo puta, potrebno je da bude sto jednostavnija. Funkcija eva-luacije obicno preslikava skup svih mogucih pozicija u segment celih ili brojevau pokretnom zarezu:

ℱ : 𝒫 ↦→ [−𝑀,𝑀 ]

Tada se vrednost 𝑀 dodeljuje samo zavrsnim cvorovima u kojima je pobednikprvi igrac, a vrednost −𝑀 samo zavrsnim cvorovima u kojima je pobednikdrugi igrac.

Najjednostavnija je tzv. trovrednosna funkcija: ona se primenjuje samo nazavrsne pozicije igre i ima samo tri razlicite vrednosti – za pobedu prvog, zapobedu drugog igraca i za neresen ishod (npr. 1, -1 i 0). Trovrednosna funkcijazahteva pretrazivanje stabla igre do zavrsnih cvorova, pa je, zbog potencijalnovelike dubine pretrazivanja, ova funkcija za vecinu igara prakticno neupotre-bljiva. U sahu funkcija evaluacije treba da ukljucuje „materijal“ (tj. vrednostukupnog materijala), pokretljivost figura, pesacku strukturu, rokade i slicno.Na primer, beloj kraljici moze da bude pridruzena vrednost 100, topu 50, lovcui konju 30, pesaku 10, dok mat belog nosi ocenu 1000 (i sve suprotno za crnogigraca).

U igrama nulte sume, smisao funkcije evaluacije za protivnike u igri za dvaigraca je suprotan — ono sto je najbolje stanje za jednog igraca najlosije jeza drugog i obratno. Dakle, da funkcija evaluacije za simetricne pozicije (zazamenjene uloge igraca) treba da daje vrednosti koje se razlikuju samo poznaku.

Ocene zavrsnih pozicija ne moraju nuzno biti staticke: mogu se korigo-vati dodavanjem (odnosno oduzimanjem) dubine odgovarajuceg cvora u pre-trazivanju, kako bi se od svih varijanti koje vode u pobedu izabrala ona kojavodi pobedi u najmanjem broju koraka (odnosno kako bi se, ukoliko je porazneizbezan, taj poraz maksimalno odgodio).

4.4.2 Algoritam minimaks

Algoritam minimaks je kljucni element Senonove A strategije i on je uosnovi skoro svih algoritama za izbor poteza pretrazivanjem stabla igre. Mini-maks algoritam pretrazivanjem stabla igre za igraca koji je na potezu odredujenajbolji moguci potez u datoj situaciji — pri cemu se pod „najboljim“ pod-razumeva najbolji za zadati cvor, zadatu dubinu pretrazivanja i za izabranufunkciju evaluacije. Pretpostavimo da funkcija evaluacije za igraca koji je napotezu ima pozitivan smisao (tj. bolji je potez ako obezbeduje vecu vrednostfunkcije) i, jednostavnosti radi, da se pretrazivanje vrsi do fiksne dubine sta-bla. Funkcijom evaluacije ocene se dodeljuju samo najdubljim cvorovima upretrazivanju (pretrazivanje se vrsi do fiksne dubine i najdublji cvorovi ne mo-raju da predstavljaju zavrsna stanja igre); dalji postupak je rekurzivan: kaoocena cvoru dodeljuje se minimum ocena cvorova-potomaka, ako je u tom cvoruna potezu protivnik, a kao maksimum ocena cvorova potomaka, u suprotnom(slika 4.2). Ocena pocetnog cvora je maksimum ocena cvorova–neposrednih

Elektro

nsko

izdanje(2017)

69 4. Igranje strateskih igara

5 7 1 1 −2 2 −1 5 7 1 1 −2 2 −1

5 7 1 −2 2

5 1 −2

5

𝑚𝑎𝑥

𝑚𝑖𝑛

𝑚𝑎𝑥

Slika 4.2: Stablo pretrage sa ilustracijom algoritma Minimax

potomaka i rezultat je potez kojem odgovara taj maksimim. Dakle, algoritamkarakterise maksimizovanje ocene kada je na potezu sam igrac i minimizovanjekada je na potezu njegov protivnik, pa otuda i ime algoritma. Opis algoritmadat je na slici 4.3.

Primer 4.1. Na slici 4.4 prikazan je primer primene algoritma na sah (po-jednostavljenu verziju na tabli 4x4). Kao najbolji potez za koreni cvor bira seprvi potez naveden u sledecem redu – potez koji vodi u mat u dva poteza.

Algoritam minimaks (kao i ostali algoritmi zasnovani na minimaksingu)vrsi izbor poteza samo na osnovu vrednosti koje su pridruzene cvorovima namaksimalnoj dubini pretrazivanja. To znaci da se ne ispituju potezi koji daljeslede i da se ne koriste informacije o njima (a te informacije mogu biti veomavazne i cesto bi promenile odluku o izabranom potezu). Kada je neki potezodabran na osnovu cvorova na nekoj dubini i odigran, informacija o tome se nekoristi u procesu izbora narednog poteza (npr. ako je u sahu neki potez izabranjer odgovara cvor dubine tri u kojem se protivniku daje sah, u sledecem potezupretrazivanje krece iznova i cesto nece biti izabran potez koji vodi do sahaprotivniku, sada u dva poteza). Dakle, pri pretrazivanju stabla igre „vide se“samo cvorovi na nekoj fiksnoj dubini – ni oni posle, ni oni pre njih. Ovajfenomen cesto se naziva efekat horizonta (eng. horizon effect).

4.4.3 Algoritam Alfa-beta

Algoritam Alfa-beta (ili 𝛼 − 𝛽) otkriven je sredinom dvadesetog veka ne-zavisno od strane nekoliko istrazivaca. Semjuel sa jedne strane i Ricards,Hart, Levin i Edvards sa druge, formulisali su nezavisno ranu verziju algoritma

Elektro

nsko

izdanje(2017)

4.4. Sredisnjica 70

Algoritam: Minimax

Ulaz: pozicijaIzlaz: potez

1. 𝑣 := 𝑀𝑎𝑥(𝑝𝑜𝑧𝑖𝑐𝑖𝑗𝑎)

2. vrati potez kojem odgovara vrednost 𝑣

Funkcija: Max

Ulaz: 𝑝𝑜𝑧𝑖𝑐𝑖𝑗𝑎, funkcija evaluacije 𝑓Izlaz: vrednost pozicije

1. Ako je zavrsna pozicija vrati 𝑓(𝑝𝑜𝑧𝑖𝑐𝑖𝑗𝑎)

2. 𝑣 := −∞

3. Za svaku poziciju 𝑠 do koje se moze doci u jednom potezu:

� Ako je 𝑀𝑖𝑛(𝑠) > 𝑣 onda 𝑣 := 𝑀𝑖𝑛(𝑠)

4. vrati 𝑣

Funkcija: Min

Ulaz: 𝑝𝑜𝑧𝑖𝑐𝑖𝑗𝑎, funkcija evaluacije 𝑓Izlaz: vrednost pozicije

1. Ako je zavrsna pozicija vrati 𝑓(𝑝𝑜𝑧𝑖𝑐𝑖𝑗𝑎)

2. 𝑣 := +∞

3. Za svaku poziciju 𝑠 do koje se moze doci u jednom potezu:

� Ako je 𝑀𝑎𝑥(𝑠) < 𝑣 onda 𝑣 := 𝑀𝑎𝑥(𝑠)

4. vrati 𝑣

Slika 4.3: Algoritam Minimax

pocetkom pedesetih godina. Makarti je slicne ideje predstavio 1956. godine, to-kom znamenite konferencije u Darmutu. Brudno je, ponovo nezavisno, otkrioAlfa-beta algoritam i objavio ga 1963. godine.

Alfa-beta algoritam zasnovan je na tzv. alfa i beta odsecanju stabla igrei predstavlja heuristikama ubrzan algoritam minimaks. Osnovni postupakocenjivanja cvorova je minimaks tipa: funkcijom evaluacije ocenjuju se samocvorovi na nekoj odabranoj dubini, a zatim se rekurzivnim postupkom (mi-

Elektro

nsko

izdanje(2017)

71 4. Igranje strateskih igara

1000

40S0Z3Z0J020Z0Z1j0Z0

a b c d

/ ... | ... \

1000 50 0

40S0Z3Z0Z020ZKZ1j0Z0

a b c d

40S0J3Z0Z020Z0Z1j0Z0

a b c d

40Z0Z3Z0J020Z0Z1jRZ0

a b c d

| | | ... \

1000 50 0

40S0Z3Z0Z02kZKZ1Z0Z0

a b c d

40S0J3Z0Z02kZ0Z1Z0Z0

a b c d

40Z0Z3Z0J020Z0Z1ZkZ0

a b c d

/ ... | ... \ / ... \ / ... \

1000 50 50 50 50 0 0

4RZ0Z3Z0Z02kZKZ1Z0Z0

a b c d

40Z0S3Z0Z02kZKZ1Z0Z0

a b c d

40S0Z3Z0Z02kZ0J1Z0Z0

a b c d

40S0Z3Z0ZK2kZ0Z1Z0Z0

a b c d

4RZ0J3Z0Z02kZ0Z1Z0Z0

a b c d

40Z0Z3ZKZ020Z0Z1ZkZ0

a b c d

40Z0Z3Z0ZK20Z0Z1ZkZ0

a b c d

Slika 4.4: Ilustracija rada algoritma Minimax

nimaksingom) ocenjuju cvorovi prethodnici. Postupak „alfa odsecanje“ biceopisan pretpostavljajuci da funkcija evaluacije za igraca koji je na potezu imapozitivan smisao (bolje su vece ocene).

Neka je u tekucem cvoru na potezu igrac 𝐴 koji trazi najbolji potez (zanjega je bolji potez onaj sa boljom ocenom); neka je ocenjeno 𝑛 od 𝑚 (𝑛 <𝑚) njegovih legalnih poteza i neka su dobijene ocene 𝑤1, 𝑤2 ... 𝑤𝑛 i nekaje 𝑤𝑘 najveca od njih. Razmatramo 𝑛 + 1-i legalni potez (slika 4.5); nakontog poteza protivnik (igrac 𝐵) ima vise mogucnosti i igrac 𝐴 trazi onu sanajmanjom ocenom; za svaku ocenu 𝑤′

𝑖 legalnih poteza u tom cvoru, svakakovazi da je veca ili jednaka zajednickom minimumu 𝑤′

𝑚𝑖𝑛 (𝑤′𝑖 ≥ 𝑤′

𝑚𝑖𝑛) kojipredstavlja ocenu cvora; dakle, ako se u tom pretrazivanju dode do ocene 𝑤′

𝑗

koja je manja ili jednaka oceni 𝑤𝑘 (𝑤′𝑗 ≤ 𝑤𝑘) sigurno je da je i ocena cvora

manja ili jednaka oceni 𝑤𝑘 (𝑤′𝑚𝑖𝑛 ≤ 𝑤𝑘). S obzirom na to da se u pocetnom

cvoru trazi maksimum ocena mogucih poteza, to znaci da taj cvor (sa ocenom𝑤′

𝑚𝑖𝑛 ≤ 𝑤𝑘) ne utice na ocenu pocetnog cvora (jer je 𝑤′𝑚𝑖𝑛 ≤ 𝑤𝑘 ≤ 𝑤𝑚𝑎𝑥), pa

Elektro

nsko

izdanje(2017)

4.4. Sredisnjica 72

𝑤𝑛+1 < 𝑤𝑘

𝑤𝑘 𝑤𝑛 𝑤𝑛+1

𝑤′𝑗

𝛼 odsecanje

𝑚𝑎𝑥

𝑚𝑖𝑛

𝑚𝑎𝑥

−2 < 5

7 > 5

5 7 1 1 −2 2 −1

5 7 1 −2 2

5 1 −2

5

𝛼 odsecanje

𝛽 odsecanje

Slika 4.5: Stablo pretrage sa ilustracijom algoritma Alfa-beta

se dalje pretrazivanje poteza protivnika u tekucem cvoru moze prekinuti bezuticaja na rezultat pretrazivanja — moze da se izvrsi „odsecanje stabla“ (slika4.5). „Beta odsecanje“ je potpuno analogno i primenjuje se na cvorove u kojimaje na potezu protivnik. Naravno, s obzirom na smisao funkcije evaluacije,maksimumi pominjani u „alfa odsecanju“ zamenjuju se minimumima i obratno(slika 4.5). Algoritam Alfa-beta dat je na slici 4.6.

Kako je stablo igre obicno ogromno, ubrzavanje minimaks algoritma he-uristikama „alfa-odsecanje“ i „beta-odsecanje“ ima izuzetan znacaj. Posebnoje vazna cinjenica da i Alfa-beta algoritam nalazi zaista najbolji moguci potezza zadati cvor i zadatu dubinu pretrazivanja, sto znaci da heuristike koje seprimenjuju ne narusavaju tu osobinu minimaks algoritma.

Primer 4.2. Na slici 4.7 prikazan je primer primene algoritma Alfa-beta nasah (pojednostavljenu verziju na tabli 4x4). Sa 𝑋 su oznaceni delovi stabla igrekod kojih je doslo do odsecanja

Ukoliko se u svakom cvoru potezi ispituju od najlosijeg ka najboljem (usmislu tekuceg cvora), tada nema nijednog alfa ili beta odsecanja, pa se Alfa-beta algoritam svodi na algoritam minimaks. S druge strane, najvise alfa i betaodsecanja ima kada se potezi ispituju pocev od najboljeg u smislu tekuceg cvorai tada algoritam Alfa-beta daje najbolji efekat (tj. ispituje najmanji broj cvorovastabla). Naravno, takav poredak poteza nije moguce generisati egzaktno u tokupretrazivanja stabla igre, ali se dobrim procenama efekat Alfa-beta algoritmamoze tako bitno popraviti. Upravo na toj ideji zasnivaju se i neka poboljsanjaAlfa-beta algoritma.

Elektro

nsko

izdanje(2017)

73 4. Igranje strateskih igara

Algoritam: Alfa-beta

Ulaz: pozicijaIzlaz: potez

1. 𝑣 = 𝑀𝑎𝑥(𝑝𝑜𝑧𝑖𝑐𝑖𝑗𝑎,−∞,+∞)

2. vrati potez kojem odgovara vrednost 𝑣

Funkcija: Max

Ulaz: 𝑝𝑜𝑧𝑖𝑐𝑖𝑗𝑎, alfa vrednost 𝛼, beta vrednost 𝛽, funkcija evaluacije 𝑓Izlaz: vrednost pozicije

1. Ako je zavrsna pozicija vrati 𝑓(𝑝𝑜𝑧𝑖𝑐𝑖𝑗𝑎)

2. 𝑣 := −∞

3. Za svaku poziciju 𝑠 do koje se moze doci u jednom potezu:

� Ako je 𝑀𝑖𝑛(𝑠, 𝛼, 𝛽) > 𝑣 onda 𝑣 := 𝑀𝑖𝑛(𝑠, 𝛼, 𝛽)

� Ako je 𝑣 ≥ 𝛽 onda vrati 𝑣

� Ako je 𝑣 > 𝛼 onda 𝛼 := 𝑣

4. vrati 𝑣

Funkcija: Min

Ulaz: 𝑝𝑜𝑧𝑖𝑐𝑖𝑗𝑎, alfa vrednost 𝛼, beta vrednost 𝛽, funkcija evaluacije 𝑓Izlaz: vrednost pozicije

1. Ako je zavrsna pozicija vrati 𝑓(𝑝𝑜𝑧𝑖𝑐𝑖𝑗𝑎)

2. 𝑣 := ∞

3. Za svaku poziciju 𝑠 do koje se moze doci u jednom potezu:

� Ako je 𝑀𝑎𝑥(𝑠, 𝛼, 𝛽) < 𝑣 onda 𝑣 := 𝑀𝑎𝑥(𝑠, 𝛼, 𝛽)

� Ako je 𝑣 ≤ 𝛼 onda vrati 𝑣

� Ako je 𝑣 < 𝛽 onda 𝛽 := 𝑣

4. vrati 𝑣

Slika 4.6: Algoritam Alfa-beta

Elektro

nsko

izdanje(2017)

4.4. Sredisnjica 74

1000

40J0S3Z0Z020Z0S1j0Z0

a b c d

/ \ ...

1000 100

40J0S3Z0Z020Z0Z1j0ZR

a b c d

40J0S3Z0ZR20Z0Z1j0Z0

a b c d

/ \ / ... X

1000 1000 100

40J0S3Z0Z02kZ0Z1Z0ZR

a b c d

40J0S3Z0Z020j0Z1Z0ZR

a b c d

40J0S3Z0ZR2kZ0Z1Z0Z0

a b c d

/ ... \ / ... X / ... \

1000 100 1000 100 100

40J0Z3Z0Z02kZ0S1Z0ZR

a b c d

40ZKS3Z0Z02kZ0Z1Z0ZR

a b c d

40J0Z3Z0Z020j0S1Z0ZR

a b c d

40ZKS3Z0Z020j0Z1Z0ZR

a b c d

4RZ0Z3ZKZ020Z0S1ZkZ0

a b c d

Slika 4.7: Ilustracija rada algoritma Alfa-beta

4.4.4 Heuristika killer

U prethodnom poglavlju receno je da se efikasnost algoritma moze popravitiako se u svakom cvoru potezi ispituju, po nekoj proceni, od najboljeg ka najlo-sijem. Slicno, algoritam Alfa-beta daje dobre razultate ako se u svakom cvorunajpre ispituje najbolji potez. Naravno, nije moguce unapred znati koji je poteznajbolji u datom cvoru, ali se i dobrim procenama (izborom jednog od boljihpoteza) postizu dobri efekti. Heuristika killer (ponekad se naziva i w-killer)zasniva se na navedenim cinjenicama i ne koristi specificna znanja o igri (da bise procenilo koji potezi su dobri).

Neka se u pretrazivanju stabla Alfa-beta algoritmom prvi put ocenjuje nekicvor na dubini 𝑑 (𝑑 ≥ 1) i neka je 𝑊 najbolji pronadeni potez u smislu togcvora. Taj potez zvacemo killer potezom za dubinu 𝑑. U svakom sledecemcvoru na dubini 𝑑, ispitivanje poteza pocinjemo sa killer potezom za tu dubinu.Ukoliko se pokaze da je za taj cvor bolji neki drugi potez (𝑊 ′), taj potez postajekiller potez za dubinu 𝑑.

Elektro

nsko

izdanje(2017)

75 4. Igranje strateskih igara

Ukoliko se pretrazivanje stabla igre vrsi do dubine 𝑑𝑚𝑎𝑥, opisana heuristikaprimenjuje se za sve dubine 𝑑 takve da je 1 ≤ 𝑑 ≤ 𝑑𝑚𝑎𝑥−1. Alfa-beta algoritamprosiren killer heuristikom zovemo Alfa-beta/killer algoritmom. Primetimo dase primenom killer heuristike ne menja rezultat Alfa-beta algoritma (za istufunkciju evaluacije i istu dubinu pretrazivanja) — tj. dobija se potez sa istomocenom (ne nuzno i isti potez) kao primenom algoritama Alfa-beta ili minimaks,i to najcesce sa bitno manjim brojem ispitanih cvorova stabla.

Smisao killer heuristike je sledeci: ukoliko je u jednoj grani stabla na dubini𝑑 najbolji potez 𝑊 , ima izgleda da je on najbolji (ako je legalan) i u drugimgranama stabla na istoj dubini. Ilustrujmo to na primeru saha: neka igracukoji je na redu preti mat u sledecem potezu i neka nijedan njegov potez ne mozeda otkloni tu pretnju. Pretrazivanjem stabla, u cvoru u kojem je na potezuprotivnik, otkriva se matni potez i on postaje killer potez (za dubinu 1). Pridaljem pretrazivanju stabla, na dubini 1 najpre se ispituje taj potez i kako onvodi pobedi protivnika, alfa odsecanje cini nepotrebnim dalje ispitivanje potezau tom cvoru. Time se broj cvorova stabla koje u ovakvoj situaciji treba ispitatidrasticno smanjuje.

Legalni potezi treba da budu organizovani u ciklicni niz, i da je za svakilegalan potez jednoznacno odreden sledeci. Taj zahtev je u direktnoj vezi sakiller heuristikom, jer se ispitivanje poteza u skladu sa njom, vrsi pocev od killerpoteza i, ispitavsi (eventualno) sve ostale, ciklicno vraca do tog istog poteza.Takode, kako je moguce da killer potez u nekom cvoru odgovarajuce dubinenije legalan, generator treba da za svaki moguci potez, bio on u konkretnojpoziciji legalan ili ne, jednoznacno odreduje sledeci legalan potez.

4.4.5 Iterativni Alfa-beta/killer algoritam

Za dubinu pretrazivanja 𝑑𝑚𝑎𝑥 iterativni Alfa-beta/killer algoritam se rea-lizuje na sledeci nacin: najpre se vrsi pretrazivanje stabla igre do dubine 1(svejedno je kojim algoritmom, jer do dubine 1 nema alfa i beta odsecanja) inajbolji pronadeni potez postaje killer potez za nivo 0 — za pocetni cvor. Daljese, redom za dubine 𝑑 (2 ≤ 𝑑 ≤ 𝑑𝑚𝑎𝑥) primenjuje algoritam Alfa-beta/killer idobijeni najbolji potez postaje killer potez za pocetni cvor. Kao najbolji potezbira se onaj dobijen zavrsnom primenom Alfa-beta/killer algoritma za dubinu𝑑𝑚𝑎𝑥.

Efekti iterativnog algoritma su, u svakoj iteraciji, slicni efektima Alfa-beta/killer algoritma, s tim sto u iterativnom algoritmu postoji i killer potezza pocetni cvor u pretrazivanju. Ima izgleda da je u svakoj iteraciji taj killerpotez bolje odabran i da daje bolje rezultate (veci broj alfa i beta odsecanja).Druga vazna i dobra osobina iterativnog algoritma je to sto za slucaj prekidapretrazivanja, prakticno u svakom trenutku ima smisleni rezultat kao najboljipronadeni potez za neku kompletno zavrsenu iteraciju (videti poglavlje 4.4.7).Ono sto izgleda kao mana algoritma — visestruko pretrazivanje nekih cvorova —ne utice bitno na performanse algoritma. Naime, u odnosu na vreme utrosenoza zavrsnu iteraciju, vreme utroseno na sve ostale iteracije prakticno je za-

Elektro

nsko

izdanje(2017)

4.4. Sredisnjica 76

nemarljivo. Pored toga, s obzirom na (najcesce) dobro odabran killer potezza pocetni cvor, zavrsna iteracija ce obicno zahtevati ispitivanje manjeg brojacvorova od Alfa-beta/killer algoritma za istu dubinu.

I primenom iterativnog Alfa-beta/killer algoritma dobija se najbolji potez(potez sa najboljom ocenom) za datu funkciju evaluacije i datu dubinu pre-trazivanja sto je vazno svojstvo algoritama minimaks, Alfa-beta i Alfa-beta/killer.

Kao modifikacija ovog algoritma, moze se vrsiti samo prva i poslednja ite-racija, jer se i prvom iteracijom cesto dobija dovoljno dobar killer potez zadubinu 0. U razlicitim konkretnim situacijama, nekad je bolji jedan, a nekaddrugi algoritam, s tim sto je, zbog mogucnosti prekida, u praksi prihvatljivijikompletni iterativni algoritam.

4.4.6 Stabilno pretrazivanje

U prethodnim algoritmima se uvek govorilo o pretrazivanju do fiksne du-bine. Nedostatak takvog pristupa je u tome sto funkcija evaluacije, koja seprimenjuje na cvorove na najvecoj dubini, ne razmatra moguce nastavke zapozicije na najvecoj dubini. Te ocene, ma koliko funkcija evaluacije bila dobra,mogu da budu varljive i da vode losem izboru poteza (u sahu se npr. moze iza-brati potez zbog nekog, naizgled dobrog, zavrsnog cvora u kojem se zarobljavaprotivnikov top, ali se ne zna da nakon toga moze da bude izgubljena kraljica ilida sledi mat). Zbog toga se primenjuje „stabilno pretrazivanje“ (eng. quiscencesearching): vrsi se pretrazivanje do neke fiksne dubine, ali se pretrazivanjenastavlja i dalje ukoliko je, po nekom kriterijumu, zavrsni cvor „nestabilan“.Maksimalna dubina dodatnog pretrazivanja takode moze da bude ogranicena.Stabilno pretrazivanje moze se primenjivati u kombinaciji sa svakom od ranijeopisanih tehnika.

Kriterijumi stabilnosti poteza odreduju se u skladu sa specificnostima kon-kretne igre, ali i za istu igru mogu biti razliciti. U sahu, na primer, pozicija semoze smatrati stabilnom ukoliko igrac koji je na potezu nije pod sahom, ukolikomu kraljica ne „visi“, ukoliko ne „visi“ nijedna protivnikova figura i ukoliko nepreti neposredno izvodenje nekog protivnikovog pesaka. Savremeni programiza sah cesto pretrazuju stablo igre do dubine 4 (4 polupoteza tj. dva poteza)sa dodatnim, stabilnim pretrazivanjem do dubine 16 ili vise.

4.4.7 Prekidi i vremenska ogranicenja

Vazan problem u programiranju strateskih igara su i prekidi: potrebno jeda program izabere smislen i dobar potez i ukoliko se pretrazivanje stabla igreprekine pre nego sto se izvrsi kompletan algoritam. Potrebno je, dakle, da al-goritam, i ukoliko je prekinuto njegovo normalno izvrsavanje, vrati neki legalanpotez. Naravno, pozeljno je i da taj potez bude sto bolji. Prekidi mogu biti iza-zvani akcijom korisnika ili ogranicenjima vremena raspolozivog za jedan potez

Elektro

nsko

izdanje(2017)

77 4. Igranje strateskih igara

ili za celu partiju1. Vecina algoritama koji su do sada opisani u situacijama pre-kida moze da izabere tekuci najbolji potez. Ipak, kad algoritam nije kompletnoizvrsen (i, na primer, ispitani su samo neki, povoljni odgovori protivnika), takoodabran potez moze biti veoma los. Za resavanje ovog problema najpogodnijije iterativni Alfa-beta/killer algoritam, jer prakticno u svakom trenutku2 imaneku kompletno zavrsenu iteraciju i njen rezultat cesto jeste dovoljno dobarpotez (iako, naravno, obicno slabiji nego potez koji bi bio dobijen kompletnoizvrsenim algoritmom).

4.4.8 Svojstva algoritama Minimax i Alfa-beta

Definicija 4.1 (Faktor grananja). Neka je 𝐴 deterministicki algoritamza pretrazivanje uniformnog stabla igre stepena 𝑏 (svi njegovi cvorovi osimlistova imaju tacno po 𝑏 neposrednih potomaka), dubine 𝑑 i sa listovima ko-jima su pridruzene vrednosti po raspodeli 𝐹 . Ako je sa 𝐼𝐴(𝑑, 𝑏, 𝐹 ) oznacenocekivani broj zavrsnih cvorova koje algoritam 𝐴 ispituje, tada vrednost

𝑅𝐴(𝑏, 𝐹 ) = lim𝑑→∞

[𝐼𝐴(𝑑, 𝑏, 𝐹 )]1/𝑑

zovemo faktor grananja algoritma 𝐴.

Faktor grananja je kljucna karakteristika algoritama za pretrazivanje stablaigre jer govori o ocekivanom broju zavrsnih cvorova koje nekim algoritmomtreba ispitati. Naime, ukoliko je 𝑅 faktor grananja nekog algoritma, ondaje ocekivani broj ispitanih cvorova za dubinu pretrazivanja 𝑑 jednak 𝑅𝑑. Naprimer, za sahovsku sredisnjicu procenjuje se da je faktor grananja izmedu 35i 38, a za igru go oko 250.

Ako se uniformno stablo stepena 𝑏 i dubine 𝑑 pretrazuje minimaks algorit-mom, bice ispitano 𝑏𝑑 zavrsnih cvorova stabla, pa je faktor grananja algoritmaminimaks za svaku raspodelu 𝐹 ocigledno jednak 𝑏:

𝑅𝑚𝑖𝑛𝑖𝑚𝑎𝑥(𝑏, 𝐹 ) = 𝑏.

Ukoliko je se u svakom cvoru stabla igre ispituju potezi od najlosijeg kanajboljem, onda, ocigledno, nema nikakvih odsecanja i algoritam Alfa-beta seponasa kao algoritam Minimaks. S druge strane, algoritam Alfa-beta ponasa senajbolje ukoliko se u svakom cvoru najpre ispituje najbolji potez za taj cvor io tome govori naredna teorema.

Teorema 4.1. Ukoliko je stablo igre uniformno (svaki cvor koji nije listima tacno 𝑏 dece) i ukoliko se u svakom cvoru najpre ispituje najbolji potezza taj cvor, onda algoritam Alfa-beta, primenjen do fiksne dubine 𝑑 ispituje

1Ukoliko je ograniceno vreme raspolozivo za celu partiju, program mora i da ga eko-nomicno deli na procenjeni broj poteza.

2Prva iteracija moze biti zavrsena u delicu sekunde.

Elektro

nsko

izdanje(2017)

4.4. Sredisnjica 78

𝑂(𝑏𝑑/2) listova.

Dokaz: Neka 𝑇 (𝑑) oznacava broj listova koje treba ispitati za odredivanje eg-zaktne ocene cvora na nivou 𝑑 (za zadato stablo), pri cemu je u ovomkonkretnom kontekstu pogodno da se nivoi broje od listova – njima od-govara nivo 0.

Neka 𝐿(𝑑) oznacava broj listova koje treba ispitati za odredivanje ograni-cenja ocene cvora na nivou 𝑑 dovoljnog da obezbedi odsecanja u nastavkuprimene algoritma.

4

4

4 3 1

4 12

≥ 6 ≥ 7

≤ 3 ≤ 1

6 7 3 0 0 1 −1−4

𝑚𝑎𝑥

Slika 4.8: Ilustracija za broj listova potreban za izracunavanje egzaktne ocenecvora i procene ocene cvora

Vazi 𝑇 (0) = 1 i 𝐿(0) = 1. Kako se u svakom cvoru najpre ispituje najboljipotez, onda vazi (slika 4.8):

𝑇 (𝑑) = 𝑇 (𝑑− 1) + (𝑏− 1)𝐿(𝑑− 1)

𝐿(𝑑) = 𝑇 (𝑑− 1)

odakle sledi

𝑇 (𝑑) = 𝑇 (𝑑− 1) + (𝑏− 1)𝑇 (𝑑− 2)

Karakteristicna jednacine ove veze je 𝑡2 − 𝑡− (𝑏− 1) i njena resenja su

𝑡1 =(1−

√1+4(𝑏−1)

2 = 1/2−√𝑏− 3/4

𝑡2 =(1+

√1+4(𝑏−1)

2 = 1/2 +√

𝑏− 3/4

Dakle, vazi

𝑇 (𝑑) = 𝑎 ·(1/2−

√𝑏− 3/4

)𝑑

+ 𝑏 ·(1/2 +

√𝑏− 3/4

)𝑑

i 𝑇 (𝑑) = 𝑂(√𝑏𝑑) tj. 𝑇 (𝑑) = 𝑂(𝑏𝑑/2) �

Elektro

nsko

izdanje(2017)

79 4. Igranje strateskih igara

Navedena teorema govori da algoritam Alfa-beta ispituje barem 𝑂(𝑏𝑑/2)listova, tj. njegov faktor grananja je barem reda 𝑂(𝑏𝑑/2). Killer heuristika uiterativnoj verziji zaista cesto postize dobar poredak poteza u svakom cvoru, paponasanje reda 𝑂(𝑏𝑑/2) nije nerealno ocekivati. Ovaj rezultat govori i da je (uzdobar poredak poteza), Alfa-beta algoritmom moguce birati poteze analizirajucistablo do dva puta vece dubine nego sa minimaks algoritmom.

Problem odredivanja faktora grananja Alfa-beta algoritma za funkciju 𝐹sa uniformnom raspodelom mnogo je slozeniji. Odgovor na pitanje o faktorugrananja Alfa-beta algoritama daje sledeca teorema.3

Teorema 4.2. Za faktor grananja Alfa-beta algoritma za stablo stepena 𝑏(koji nije mnogo veliki, tj. za koji je 𝑏 ≤ 1000), i za ravnomernu raspodelu𝐹 vazi:

𝑅𝛼−𝛽(𝑏, 𝐹 ) = 𝑂(𝑏3/4)

Vazno je i sledece srodno tvrdenje.

Teorema 4.3. Algoritam Alfa-beta je asimptotski optimalan algoritam zapretrazivanje stabla igre.

Navedeno tvrdenje znaci da ne postoji algoritam za pretrazivanje stablaigre koji, u opstem slucaju, asimptotski ispituje manje zavrsnih cvorova negoalgoritam Alfa-beta. Algoritmi, koji su opisani u prethodnom delu teksta i kojipredstavljaju unapredenja algoritma Alfa-beta u praksi zaista najcesce dajubolje rezultate nego algoritam Alfa-beta i to je uslovljeno prirodom stabla igre ifunkcijom koja ocenjuje zavrsne cvorove (koja nije slucajna). Ipak, faktori gra-nanja ovih algoritama se ne razlikuju od faktora grananja Alfa-beta algoritmai u opstem slucaju oni ne garantuju manje ispitanih zavrsnih cvorova stablanego algoritam Alfa-beta.

4.5 Zavrsnica

U igrama kao sto je sah, zavrsnica iziskuje posebne tehnike. Ponekad suto tehnike koje se koriste u sredisnjici, ali uz koriscenje posebne ili vise po-sebnih funkcija evaluacije. U onim drugim igrama, resenja koja se zasnivajuna dubinskom pretrazivanju ne daju dobre rezultate u zavrsnici jer kvalitetnaigra iziskuje jako veliku dubinu pretrazivanja. Problem zavrsnice je jos teziako se postavi zahtev za korektnom ili optimalnom igrom/taktikom4. Ukoliko

3 Zapravo, preciznije tvrdenje je da se vrednost 𝑅𝛼−𝛽(𝑏, 𝐹 ) moze ograniciti odozgo sa

𝜉𝑏/(1− 𝜉𝑏), gde je 𝜉𝑏 pozitivno resenje jednacine 𝑥𝑏 + 𝑥− 1 = 0. Vrednost 𝜉𝑏/(1− 𝜉𝑏) se za𝑏 takvo da je 𝑏 ≤ 1000 moze aproksimirati sa 0.925 · 𝑏0.747, sto se dalje moze ograniciti sa𝑏3/4.

4Za taktiku kazemo da je korektna ukoliko u dobijenoj poziciji sigurno vodi do pobede iukoliko pri (teorijskoj) remi–poziciji sigurno vodi bar remiju. Za taktiku kazemo da je opti-

Elektro

nsko

izdanje(2017)

4.5. Zavrsnica 80

se, tehnikama koje se koriste u sredisnjici, sistematsko pretrazivanje vrsi dozavrsnih cvorova time se obezbeduje optimalna strategija (naravno, za vecinuigara to je u praksi nemoguce izvesti). Tako, na primer, optimalnu igru usahovskoj zavrsnici prakticno je nemoguce obezbediti (za uobicajena vremen-ska ogranicenja), jer su moguce zavrsnice u kojoj igrac ima dobijenu poziciju, aline moze da matira protivnika u manje od dvadeset poteza, pa takva zavrsnicaza optimalnu igru zahteva dubinu pretrazivanja vecu od dvadeset. Slicni pro-blemi vaze i za korektnu taktiku. U nastavku su opisani neki od algoritamakoji se mogu efikasno primenjivati u sahovskim zavrsnicama.

Skupovi pozicija kao klase ekvivalencija. Bramerov opsti algoritam (1975)za zavrsnicu izgleda ovako:

(a) generisi skup svih legalnih poteza — skup 𝑄;

(b) odaberi najbolje ocenjeni elemenat skupa 𝑄 — element 𝑞;

(c) odigraj potez 𝑞;

Kljucni korak algoritma (korak (b)) zasnovan je na sledecoj ideji: neka jeskup 𝑄* skup svih regularnih pozicija u igri i neka je svaka od tih pozicijasvrstana u tacno jedan od podskupova koji razlazu 𝑄* (to razlaganje definisese u skladu sa prirodom konkretne igre tako da istom skupu pripadaju sustinskislicne pozicije – npr. u sahu, sve pozicije „kralj i pesak protiv kralja“); svakomod tih skupova (odnosno klasa ekvivalencije) pridruzena je jedinstvena ocenai jedinstvena funkcija evaluacije. Ocenjivanje koje se pominje u koraku (b)Bramerovog algoritma svodi se na sabiranje ocene klase pozicija i ocene pozicijekoja toj klasi pripada. Na taj nacin ocenjuju se svi legalni potezi iz datogcvora i to bez ikakvog pretrazivanja preko dubine 1. Kao najbolji bira se potezkojem odgovara najveca zbirna ocena. Opisani algoritam ima brojne varijacije(ukljucujuci varijacije uporedivanja elemenata iz razlicitih klasa ekvivalencije,provere izabranog poteza pretrazivanjem u dubinu itd.).

Bramerov algoritam, razlaganjem skupa problema na klase slicnih pro-blema, u prilicnoj meri prirodno odgovara covekovom nacinu razmisljanja.Pored toga, algoritam moze biti i veoma efikasan, jer poredenje poteza vrsipo kljucnim parametrima za konkretnu zavrsnicu (npr, u sahu, po rastojanjuizmedu dva kralja), a ne po opstim kriterijumima koji se koriste u sredisnjici.Algoritam zahteva kompleksno definisanje svih relevantnih klasa pozicija uzavrsnici i svih odgovarajucih funkcija evaluacije, ali je i pored toga vero-vatno najprihvatljivije i najcesce korisceno resenje za automatski izbor potezau zavrsnici.

malna ukoliko u dobijenoj poziciji vodi pobedi u najmanjem broju poteza, odnosno ukolikou izgubljenoj poziciji poraz maksimalno odlaze. Ocigledno, ako je taktika optimalna, ondaje i korektna, ali ne vazi obratno.

Elektro

nsko

izdanje(2017)

81 4. Igranje strateskih igara

Mali saveti. Jedan od pristupa koji se primenjuje u sahovskim zavrsnicamaje i pristup malih saveta (eng. advice texts). Navedimo, kao ilustraciju, jedanmali savet za zavrsnicu „kralj i top protiv kralja“ (autora Ivana Bratka).

1. „mat“: Proveri da li je moguce matirati protivnika u dva poteza;

2. „stezanje“: Ako (1) nije moguce, pronadi nacin da topom smanjis prostorna tabli dostupan protivnickom kralju;

3. „priblizavanje“: Ako (1) i (2) nije moguce, pronadi nacin da svog kraljapriblizis protivnickom;

4. „zadrzavanje“: Ako nisu primenljivi delovi saveta (1), (2) i (3), pronadipotez koji zadrzava trenutno stanje u smislu (2) i (3) (tj. odaberi „potezcekanja“);

5. „razdvajanje“: Ako nisu primenljivi delovi saveta (1), (2), (3) i (4), pronadipotez kojim se dobija pozicija u kojoj top razdvaja dva kralja, bilo verti-kalno ili horizontalno.

Nedostatak koncepta ilustrovanog navedenim primerom je u tome sto izi-skuje posebne tekstove saveta za sve sustinski razlicite zavrsnice. Pored toga,za sve tipove zavrsnica nije jednostavno (ili nije moguce) napraviti koncizan iefikasan tekst saveta.

4.6 Implementaciona pitanja

Za efikasno izvrsavanje programa za igre, vazne su strukture podataka kojese koriste, osnovni algoritmi, brza provera legalnosti i drugih bazicnih funkcija.

Pozeljno je da postoji (ciklicno) uredenje poteza, pa se za svaki legalanpotez moze jednoznacno odrediti sledeci legalan potez. Ovo je potrebno kakobi se obezbedilo brzo ispitivanje svih legalnih poteza bez obzira na to od kojegpoteza je ispitivanje pocelo.

Radi efikasnosti, funkcija evaluacije cesto se implementira kao celobrojnafunkcija. Struktura koja opisuje potez treba da sadrzi informacije dovoljneda bi se potez odigrao, ali pozeljno je i da bi se eventualno „vratio“. Kodjednostavnih igara, kao sto je npr. igra iks-oks dovoljne su informacije o tomekoji je igrac potez odigrao5 i na kojem polju. Kod igre reversi, to vise nisudovoljne informacije, jer na osnovu njih ne moze biti vracen potez. Naime,na osnovu informacije o igracu i polju ne moze se rekonstruisati pozicija pretog poteza, pa struktura koja opisuje potez mora da sadrzi i listu zetona kojipri tom potezu menjaju boju. Kod saha je situacija jos slozenija, jer figurese pomeraju (a ne dolaze „niotkuda“ kao u igrama iks-oks i reversi), pa poredoznake igraca, struktura koja opisuje potez mora da sadrzi informacije i o

5Podatak o tome koji je igrac odigrao potez cesto nije neophodan, jer se potezi prvog idrugog igraca smenjuju naizmenicno.

Elektro

nsko

izdanje(2017)

4.6. Implementaciona pitanja 82

polaznom i o odredisnom polju. Pored toga, radi mogucnosti vracanja poteza,ta struktura mora da sadrzi i informaciju o (eventualno) „pojedenoj“ figuri,o (eventualno) „izvedenom“ pesaku (i o figuri u koju je promovisan), kao iinformaciju o (eventualno) primenjenom pravilu „en-passant“6.

Kao dobar okvir namece se organizacija podataka i izracunavanja koja seoslanja na bitovsku aritmetiku. Tako na primer, u sahu moze se za svaki tipfigura (i to za oba igraca) koristiti po jedna bitovska tabela 8 × 8 u kojoj bivrednost 1 oznacavala da igrac na tom polju ima figuru tog tipa, a vrednost 0sve ostale mogucnosti. Na taj nacin jedna tabela 8 × 8 bila bi zamenjena sa12 (svaki igrac ima po sest tipova figura) tabela 8 × 8 ciji su elementi bitov-skog tipa. Dodatna pogodna okolnost u ovom pristupu je sto opisana bitovskatabela moze da se opise jednostavno kao niz osam karaktera (jer tipu karakterodgovara jedan bajt, odnosno osam bita). Ovakav pristup (i analogni u drugimigrama), mada na prvi pogled mozda komplikovaniji, omogucava brojna jedno-stavna i brza resenja kod provere legalnosti poteza, generisanja legalnih potezai sl. Ukoliko je odabran pristup sa bitovskom reprezentacijom table i poteza,operacije odigravanja i vracanja poteza i slicne svodice se na jednostavne i brzebitovske operacije.

Na nivou programa, opisane strukture treba da budu organizovane tako daomogucavaju igru izmedu dva igraca, kao i mogucnost da program zameni bilokog igraca (u celom toku partije, u pojedinacnom potezu ili samo za davanjepreporuke).

Pitanja i zadaci

Pitanje 4.1. Opisati ukratko Senonove strategije?

Pitanje 4.2. Sta znaci da je funkcija ocene koja se koristi u programiranjuigara staticka?

Pitanje 4.3. Koja je najjednostavnija funkcija evaluacije u igrama nultesume?

Pitanje 4.4. Ako je staticka ocena neke sahovske pozicije jednaka 0, sta togovori?

Pitanje 4.5. Ako je staticka ocena neke sahovske pozicije jednaka 𝑐, koja jeocena pozicije koja je dobijena tako sto su sve figure promenile boju?

Pitanje 4.6. Zasto se tako zove minimaks algoritam?

Pitanje 4.7. Ako se pretraga vrsi do iste dubine stabla igre, da li algoritamMinimax ispituje isti broj pozicija bez obzira na poredak poteza u jednom cvoru?

Pitanje 4.8. Po cemu se razlikuju 𝛼 i 𝛽 odsecanja?

6Rokade se mogu opisati samo preko poteza kralja, pa nije potrebno da informacija orokadi bude sadrzana u strukturi potez.

Elektro

nsko

izdanje(2017)

83 4. Igranje strateskih igara

Pitanje 4.9. Da li algoritam Alfa-beta uvek vraca isti rezultat kao algoritamMinimax?

Pitanje 4.10. Da li algoritam Alfa-beta uvek obradi manje cvorova negoalgoritam Minimax?

Pitanje 4.11. U kom slucaju (osnovni) algoritam Alfa-beta obidje isti brojcvorova kao i Minimax?

Pitanje 4.12. Da li algoritam Minimax moze u nekom slucaju, pretrazujucido iste dubine da obide manji broj cvorova od algoritma Alfa-beta?

Pitanje 4.13. Da li Alfa-beta algoritam, u odnosu na Minimax algoritam:daje iste poteze, ali brze; ili daje nesto losije poteze, ali znatno brze; ili dajebolje poteze i to brze; ili daje bolje poteze ali nesto sporije?

Pitanje 4.14. Kada je broj odsecanja u stablu igre najveci u algoritmu Alfa-beta?

Pitanje 4.15. Naredna slika prikazuje deo stabla igre koje se pretrazuje Alfa-beta algoritmom. U korenu 𝑅 se primenjuje maksimizovanje a u cvorovima 𝐴,𝐵, 𝐶 minimizovanje. Koji poredak cvorova 𝐴, 𝐵, 𝐶 bi dao najvise Alfa-betaodsecanja?

𝑅

𝐴 𝐵 𝐶

1 2 3 5 6 7 8 9 10

Pitanje 4.16. Koja heuristika je zasnovana na cinjenici da je broj Alfa-betaodsecanja u stablu igre najveci ako se najpre ispituje najbolji?

Pitanje 4.17. Opisati ukratko heuristiku killer.

Pitanje 4.18. Kakav efekat se ocekuje od heuristike killer u iterativnoj pri-meni Alfa-beta algoritma i zasto?

Pitanje 4.19. Da li iterativni Alfa-beta algoritam sa killer heuristikom dajeuvek isti rezultat kao Alfa-beta algoritam nad istim stablom igre i za istudubinu pretrage?

Pitanje 4.20. Da bi heuristika killer funkcionisala i na nultom nivou stablaigre koji je algoritam potrebno koristiti?

Elektro

nsko

izdanje(2017)

4.6. Implementaciona pitanja 84

Pitanje 4.21. Koji algoritam je pogodan za igru sa vremenskim prekidima izasto?

Pitanje 4.22. Sta je to stabilno pretrazivanje?

Pitanje 4.23. Neka je 𝐴 deterministicki algoritam za pretrazivanje (𝑑, 𝑛, 𝐹 )-stabla i neka je 𝐼𝐴(𝑑, 𝑛, 𝐹 ) ocekivani broj zavrsnih cvorova koje algoritam 𝐴ispituje. Kako se definise faktor grananja algoritma 𝐴?

Pitanje 4.24. Koliki je faktor grananja za algoritam Minimax za sahovskusredisnjicu? (trazi se konkretan broj)?

Pitanje 4.25. Koliki je faktor granjanja algoritma minimaks, ako se ispitujeuniformno stablo stepena 𝑛 i dubine 𝑑?

Pitanje 4.26. Ukoliko cvorovi stabla igre imaju stepen 𝑛, a pretrazuje se dodubine 𝑑, koja je slozenost algoritma Minimax a koja algoritma Alfa-beta zataj problem?

Pitanje 4.27. U igri 𝑃 za dva igraca, u svakom potezu ima prosecno 6legalnih poteza, a igra prosecno traje 4 polupoteza. Koliki je faktor grananjaalgoritma Minimax za ovu igru?

Pitanje 4.28. U igri 𝑃 za dva igraca, u svakom potezu ima prosecno 5legalnih poteza, a igra prosecno traje 20 polupoteza. Koliki je faktor grananjaalgoritma Minimax za ovu igru?

Pitanje 4.29. U programiranju igara, da li se algoritmi Minimax tipa prime-njuju u otvaranju, sredisnjici ili zavrsnici?

Pitanje 4.30. Navesti barem dve strategije za zavrsnicu u programima zaigre.

Pitanje 4.31. Do koje dubine se vrsi pretraga u Bramerovom pristupu zazavrsnicu?

Pitanje 4.32. Na datoj tabli igre X-O minimaks algoritmom sa Alfa-betaodsecanjem odrediti najbolji potez za igraca X. Prikazati stablo igre i odsecanjakoja algoritam vrsi.

X X OO X

O

Zadatak 4.1. Igra X-O se igra na datoj tabli. Igrac je pobedio kad postavisvoje simbole na 2 susedna polja. Nacrtati potpuno stablo igre i pomocu algo-ritma minimaks izracunati vrednosti njegovih cvorova.

Elektro

nsko

izdanje(2017)

85 4. Igranje strateskih igara

Zadatak 4.2. Data je sledeca tabla za igru:

1 23 4

Dva igraca stavljaju naizmenicno zetone na polja dok se tabla ne popunii pri tom osvajaju onoliko poena koliko pise na polju. Pobeduje igrac koji nakraju ima vecu sumu poena. Pomocu Minimax algoritma odrediti najbolji pola-zni potez za prvog igraca. Da li alfa-beta odsecanje omogucava izracunavanjenajboljeg poteza u manje koraka?

Zadatak 4.3. Na datom drvetu algoritmom Alfa-beta izracunati vrednost ko-renog cvora. Oznaciti delove drveta koji su odseceni pri obilasku s leva nadesno. Da li neki drugi raspored grana drveta omogucava vise odsecanja?Ako da, koji?

3 4 6 10 1 3 8 5 5 2 12 7

𝑚𝑎𝑥

Zadatak 4.4. Oznaciti odsecanja koja cini algoritam Alfa-beta pri obilaskusledeceg stabla s leva nadesno. Postoji li redosled obilaska stabla pri kojem seodseca veci broj cvorova?

21 12 56 11 99 13 16 17 31 33 20 15

𝑚𝑎𝑥

Zadatak 4.5. Prikazati odsecanja koja vrsi algoritam Alfa-beta na datomstablu igre pri obilasku s leva na desno. Koji je optimalni obilazak stabla usmislu odsecenih cvorova i koja odsecanja se pri njemu vrse?

12 11 13 16 18 41 33 11 9 99 1 10

𝑚𝑎𝑥

Elektro

nsko

izdanje(2017)

4.6. Implementaciona pitanja 86

Zadatak 4.6. Prikazati odsecanja koja vrsi algoritam Alfa-beta na datomstablu igre pri obilasku s leva na desno. Koji je optimalni obilazak stabla usmislu odsecenih cvorova i koja odsecanja se pri njemu vrse?

12 11 13 16 18 41 33 11 9 99 1 10

𝑚𝑎𝑥

Zadatak 4.7. Oznaciti odsecanja koja cini algoritam Alfa-beta pri obilaskusledeceg stabla s leva nadesno.

3 8 12 5 1 2 30 4 6 23 30 1

𝑚𝑎𝑥

Elektro

nsko

izdanje(2017)

Glava 5

Genetski algoritmi

Heuristike koje se koriste u resavanju problema pretrage dizajnirane su zakonkretan problem, imajuci u vidu njegove specificnosti. Heuristika dizajni-rana za jedan problem cesto je potpuno neupotrebljiva za drugi problem iresavanje svakog novog problema koriscenjem heuristika moze da bude veomazahtevno. S druge strane, metaheuristike ili metaheuristicke metode su me-tode koji opisuju opste strategije pretrage za resavanje optimizacionih pro-blema i formulisane su nezavisno od konkretnog problema. U svom opstemobliku, metaheuristike ne koriste specificnosti nijednog konkretnog problemai mogu se koristiti za resavanje siroke klase problema. Medutim, iako su me-taheuristike opste metode, one mogu biti prilagodene (kombinacijom internihparametara) specificnom problemu koji se resava. Metaheuristike obicno raz-matraju samo mali uzorak skupa svih mogucih resenja i obicno ne garantujupronalazenje najboljeg moguceg resenja. Medutim, resenja koja daju meta-heuristike cesto mogu biti dovoljno dobra, posebno u situacijama kada nijeraspoloziva ili nije prakticno upotrebljiva odgovarajuca egzaktna metoda (kojagarantuje pronalazenje najboljeg moguceg resenja).

Genetski algoritmi pripadaju siroj grupi metaheuristickih algoritama glo-balne optimizacije ili pretrage koji koriste tehnike inspirisane biologijom. Ge-netski algoritmi koriste pojmove kao sto su selekcija, ukrstanje, nasledivanje,mutacija, itd. U prirodi, evolucija je proces u kojem jedinke koje su najboljeprilagodene okolini prezivljavaju i ostavljaju potomstvo, koje je najcesce istotako ili bolje prilagodeno okolini. Svaka celija svakog zivog organizma sadrzihromozome. Svaki hromozom sadrzi skup gena — blokove DNK. Svaki genodreduje neku osobinu organizma. Familija gena cesto se naziva genotip, a fa-milija osobina fenotip. Reprodukcija organizama ukljucuje kombinovanje genaroditelja i, pored toga, male kolicine mutacije. Jedinka moze biti manje ili viseprilagodena okolini. Jedinka koja je bolje prilagodena okolini u kojoj zivi imavecu verovatnocu prezivljavanja i ostavljanja potomstva, a time i prenosenjasvog genetskog materijala. Genetski materijal prilagodenih jedinki uglavnomopstaje, dok genetski materijal neprilagodenih jedinki uglavnom nestaje kroz

87

Elektro

nsko

izdanje(2017)

5.1. Opsti genetski algoritam 88

generacije. Dakle, evolucioni procesi u prirodi su, u odredenom smislu, op-timizacioni procesi — procesi u kojima se kroz generacije optimizuje genetskimaterijal (tj. osobine organizama) tako da bude sto bolje prilagoden okolini.

Genetski algoritmi mogu se koristiti za nalazenje tacnog ili pribliznog resenjanekog problema optimizacije ili pretrage. Mada je jos pedesetih godina dvade-setog veka bilo racunarskih simulacija zasnovanih na evoluciji, smatra se da jemoderne genetske algoritme uveo Dzon Holand sedamdesetih godina dvadese-tog veka, a postali su popularni kasnih osamdesetih godina. Tokom prethodnihtridesetak godina ostvaren je veliki napredak u razvoju genetskih algoritama.Genetski algoritmi se uspesno primenjuju na sirokom skupu problema, cestoNP-kompletnih ili tezih problema, za koje ne postoje efikasna resenja. Neki odtih problema su problem nalazenja najkraceg puta u grafu, problem trgovackogputnika, problem igranja logickih igara itd. Genetski algoritmi imaju uspesneprimene u ekonomiji, tehnici, bioinformatici, hemiji, fizici itd. Genetski algo-ritmi uspesno se primenjuju u mnogim optimizacionim problemima u kojimapostoji i vise lokalnih ekstremuma. Popularnost genetskih algoritama poticeiz njihove uspesnosti, ali i jednostavnosti. Naime, ideje na kojima su genet-ski algoritmi zasnovani su jednostavne za razumevanje i implementiranje, adaju opsti sistem pretrage primenjljiv na veliki broj problema. Pored toga, iu situacijama kada ne nalaze globalne ekstremume, resenja koja daju su cestodovoljno dobra.

Uporedo sa nalazenjem brojnih novih primena i unapredivanjem algoritma,razvijaju se i teorijske osnove genetskih algoritama, ali jos uvek sa ogranicenimuspesima. Na primer, iako cesto nalaze globalne ekstremume, genetski al-goritmi ne pruzaju informaciju o tome da li je u pitanju globalni ili lokalniekstremum, niti o tome sa kolikom greskom je odredeno resenje.

5.1 Opsti genetski algoritam

Genetski algoritmi implementiraju se kao racunarska simulacija u kojoj po-pulacija apstraktno reprezentovanih jedinki koje su kandidati za resenje pro-blema, treba da se priblizava boljim resenjima. Reprezentacija jedinke se nazivahromozomom ili genotipom. Cilj je naci vrednost za koju zadata funkcija ciljadostize svoj ekstremum ili vrednost koja je dovoljno blizu ekstremuma i resenjeproblema moze biti numericka vrednost, matematicka funkcija, put u grafuitd. Potencijalna resenja, tj. jedinke obicno su reprezentovane nizovima nulai jedinica, ali su moguce i druge reprezentacije za probleme u kojem binarnareprezentacija nije pogodna. Postupak se odvija kroz generacije. Pocetnu ge-neraciju obicno cine slucajno generisane jedinke, ali moze da sadrzi i jedinkekoje su (grubi) rezultat neke druge optimizacione metode.

Obicno u svakoj generaciji postoji isti broj jedinki i za svaku od njih racunase njen kvalitet (koji odgovara prilagodenosti okolini). Funkcija koja pridruzujete vrednosti jedinkama naziva se funkcija prilagodenosti ili funkcija kvaliteta.Ova funkcija ima kljucnu ulogu u algoritmu. Ona moze ali ne mora da budejednaka funkciji cilja.

Elektro

nsko

izdanje(2017)

89 5. Genetski algoritmi

Iz jedne generacije se, na osnovu vrednosti funkcije prilagodenosti, kroz pro-ces selekcije biraju jedinke koje ce biti iskoriscene za stvaranje novih jedinki(potomstva). One kvalitetnije biraju se sa vecom verovatnocom. Nad izabra-nim jedinkama primenjuju se genetski operatori ukrstanja1 i tako se dobijajunove jedinke. Ukrstanjem se od dve jedinke dobija nova (ili dve nove) sa ge-netskim materijalom koji je dobijen neposredno od roditelja, tj. od polaznihjedinki. Operatorom mutacije moze da se modifikuje deo polazne jedinke (iona oponasa mutacije koje se u prirodi javljaju pod uticajem spoljnih faktora).U svakoj generaciji, dakle, moze da dode do rekombinacije gena zbog koje sejavlja slicnost ali i razlicitost izmedu jedinki iste generacije.

Politika zamene generacija odreduje kako se od postojecih jedinki i njihovogpotomstva kreira nova generacija. Neke jedinke u novoj generaciji mogu bitibolje, ali neke mogu biti losije od jedinki iz prethodne generacija, ali se ocekujeda se prosecna prilagodenost popravlja. Tako dobijena nova generacija koristise za sledecu iteraciju algoritma.

Postupak se zaustavlja kada je dostignut zadati broj generacija, kada jedostignut zeljeni nivo kvaliteta populacije (na primer, prilagodenost najprilago-denije jedinke) ili kada je ispunjen neki drugi uslov. Ukoliko je dostignut zadatibroj generacija, nema nikakvih garancija da tekuca najkvalitetnija jedinka imazadovoljavajucu vrednost funkcije cilja.

Genetski algoritmi se, kao i mnogi drugi algoritmi, dizajniraju za resavanjeneke klase instanci, a ne pojedinacnih instanci. Na primer, algoritam zaresavanje kvadratne jednacine moze da resi bilo koju kvadratnu jednacinu, ali jeza njegovu primenu potrebno zadati koeficijente koji je u potpunosti odreduju.Slicno, genetski algoritam za pronalazenje rasporeda casova treba da bude di-zajniran tako da resava razlicite instance tog problema — za razlicite skole sarazlicitim brojem nastavnika, odeljenja, ucionica i termina i sa razlicitim spe-cificnim zahtevima. To znaci da funkcija cilja moze da bude definisana tek kadsu poznati svi podaci koji do precizno zadaju problem. Zbog toga se mozesmatrati da ulaz za opsti algoritam cini opis problema na osnovu kojeg tektreba definisati funkciju cilja, ali i brojna podesavanja algoritma (tj. vrednostinjegovih paramatara) pogodna za konkretan problem. Medutim, upravo defi-nisanje funkcije prilagodenosti i izbor pogodnih parametara cesto cine najtezideo primene genetskih algoritama, tj. primena opsteg genetskog algoritma jeobicno samo mali deo potrebnog truda.

Opsti genetski algoritam prikazan je na slici 5.1.

Pored podataka koji odreduju funkciju cilja, da bi navedeni opsti algoritambio specifikovan potrebno je izabrati i podesavanja algoritma (za konkretanproblem) – definisati reprezentaciju jedinki, funkciju prilagodenosti, politikuselekcije, politku zamene generacija, itd.

1Ovaj termin nije sasvim u skladu sa znacenjem koje ima u biologiji.

Elektro

nsko

izdanje(2017)

5.2. Komponente genetskog algoritma 90

Algoritam: Opsti genetski algoritam

Ulaz: podaci koji odreduju funkciju cilja i podesavanja algoritmaIzlaz: najkvalitetnija jedinka u tekucoj populaciji

1. Generisi pocetnu populaciju jedinki;

2. Izracunaj prilagodenost svake jedinke u populaciji;

3. Izvrsavaj sledecu petlju sve dok nije zadovoljen uslov zaustavljanja:

� Izaberi iz populacije skup jedinki za reprodukciju;

� Primenom operatora ukrstanja i mutacije kreiraj nove jedinke; (iracunaj njihovu prilagodenost)

� Na osnovnu starih i novih jedinki, kreiraj novu generaciju;

4. Vrati najkvalitetniju jedinku u poslednjoj populaciji

Slika 5.1: Opsti genetski algoritam

5.2 Komponente genetskog algoritma

Svaki genetski algoritam ima nekoliko komponenti koje moraju biti spe-cifikovane, kao sto je reprezentacija jedinki, proces selekcije, politika zamenegeneracija itd.

5.2.1 Reprezentacija jedinki

Jedinke mogu biti reprezentovane raznovrsnim strukturama podataka, naprimer, nizovima binarnih cifara, stablima, matricama i drugim. Neophodnoje da izabrana reprezentacija moze da opise moguce resenje razmatranog pro-blema i da se nad njom definisu genetski operatori (ukrstanje i mutacija).Takode, odabrana reprezentacija bitno utice na performanse algoritma. Pozeljnoje da genetski operatori budu definisani tako da se njima ne dobijaju jedinkekoje ne predstavljaju moguca resenja (na primer, nelegalni putevi u grafu), jerbi one narusavale performanse algoritma. Medutim, nekada se koriste i takvioperatori, ali se onda moraju definisati mehanizmi popravljanja jedinki, takoda odgovaraju mogucim resenjima.

Najcesce koriscena reprezentacija jedinki je u vidu nizova binarnih cifara.Svaki deo hromozoma, tj. svaku cifru u takvoj reprezentaciji, zovemo gen. Du-blja priroda binarne reprezentacije zavisi od konkretnog problema. Na primer,ako je duzina hromozoma 𝑛 (bitova) i ako je prostor mogucih resenja intervalrealnih brojeva [𝑎, 𝑏], onda je potrebno uspostaviti vezu (koja, naravno, nijebijektivna) izmedu nizova 𝑛 bitova i realnih brojeva iz datog intervala. Tako

Elektro

nsko

izdanje(2017)

91 5. Genetski algoritmi

ce binarna reprezentacija 000 . . . 0⏟ ⏞ 𝑛

odgovarati broju 𝑎, a binarna reprezenta-

cija 111 . . . 1⏟ ⏞ 𝑛

broju 𝑏. Broju 𝑥 sa binarnom reprezentacijom izmedu 000 . . . 0⏟ ⏞ 𝑛

i

111 . . . 1⏟ ⏞ 𝑛

odgovara realni broj

𝑎+𝑥

2𝑛 − 1(𝑏− 𝑎)

S druge strane, realnom broju 𝑥 iz intervala [𝑎, 𝑏] pridruzujemo niz koji pred-stavlja binarnu reprezentaciju broja[

𝑥− 𝑎

𝑏− 𝑎(2𝑛 − 1)

].

Primer 5.1. Pretpostavimo da naftnu platformu treba postaviti na pogodnommestu na putu izmedu tacaka 𝐴 i 𝐵, koji je duzine 5000m. Lokacija platformeje pogodnija ukoliko na tom mestu postoje vece rezerve nafte. U biranju lokacijeplatforme moguce je meriti postojece rezerve nafte na bilo kojoj tacki izmedu𝐴 i 𝐵. Moguca resenja mogu se reprezentovati nizovima bitova duzine 10,tj. brojevima od 0 do 1023. Tacki 𝐴 tada odgovara broj 0 i reprezentacija0000000000, a tacki 𝐵 broj 1023 i reprezentacija 1111111111. Tacki 𝐶 narastojanju 1320m od tacke 𝐴 odgovara vrednost 1023 · (1320/5000) ≈ 270 ireprezentacija 0100001110, a tacki 𝐷 na rastojanju 3128m od tacke 𝐴 odgovaravrednost 1023 · (3128/5000) ≈ 640 i reprezentacija 1010000000. Za vrednostfunkcije prilagodenosti jedne tacke moze se uzeti rezerva nafte izmerena u tojtacki (slika 5.2).

5.2.2 Funkcija prilagodenosti

Funkcija prilagodenosti daje ocenu kvaliteta jedinke. Ukoliko je zadatakodrediti maksimum neke funkcije, onda je prirodni izbor za funkciju prilago-denosti sama ta funkcija. Pogodan izbor funkcije prilagodenosti od izuzetneje vaznosti za efikasnost algoritma. Funkcija prilagodenosti, naravno, treba daoslikava kvalitet jedinke, da je definisana za sve moguce jedinke i da se rela-tivno brzo izracunava. Sem ovih, ne postoje nikakvi opsti uslovi koje funkcijaprilagodenosti treba da zadovoljava (na primer, da je diferencijabilna), mada jealgoritam cesto efikasniji za funkcije koje zadovoljavaju neke specificne uslove.Sto je vrednost funkcije prilagodenosti za neku jedinku veca, to ce biti vecaverovatnoca da se ta jedinka koristi za generisanje sledece generacije. Ocekujese da, kroz generacije, ukupna prilagodenost sve bolja i bolja.

Primer 5.2. Potrebno je odrediti maksimum funkcije 𝑓(𝑥) na intervalu [𝑎, 𝑏].Funkcija je definisana za sve elemente datog intervala, ali nije nuzno ni nepre-kidna, ni diferencijabilna. Genetski algoritam moguce je primeniti tako da seza funkciju prilagodenosti koristi upravo funkcija 𝑓 , a da se za reprezentaciju

Elektro

nsko

izdanje(2017)

5.2. Komponente genetskog algoritma 92

0 100 200 300 400 500 600 700 800 900 1000

𝐴 (0000000000) 𝐵 (1111111111)𝐶 (0100001110)

270

1320

𝐷 (1010000000)

640

31280 1000 2000 3000 4000 5000

Slika 5.2: Reprezentacija problema lokacije naftne platforme

koristi bitovska reprezentacija (na nacin opisan u poglavlju 5.2.1). Ukoliko jepotrebno odrediti minimum funkcije 𝑓(𝑥), onda bi za funkciju prilagodenostimogla da se koristi funkcija −𝑓 .

Treba imati u vidu da funkcija cilja i funkcija prilagodenosti ne moraju uvekda se podudaraju. Na primer, funkcija prilagodenosti moze jedinkama koje sunajbolje u odnosu na funkciju cilja dodeljivati vrednost 1, a ostalima vrednost0. Tako se moze i pojednostaviti implementacija algoritma, ali se ovakve odlukemoraju donositi oprezno kako ne bi doslo do smanjenja raznolikosti populacijei prerane konvergencije (recimo ako najbolje jedinke, kojima ce biti pridruzenavrednost 1, sve pripadaju uskoj podoblasti prostora resenja). S druge strane,funkcija cilja ne mora uvek biti eksplicitno zadata nekom matematickom re-prezentacijom, vec nekakvim manje formalnim zahtevom (u poglavlju 5.4.2 cebiti dat jedan takav primer u kojem se genetskim algoritmom pronalazi agentkoji najbrze vozi automobil na nekoj stazi).

5.2.3 Inicijalizacija

Populaciju jedinki jedne generacije, ukoliko se koristi binarna reprezenta-cija, cini skup nizova binarnih cifara. U toku resavanja jednog problema, obicnosve generacije imaju isti broj jedinki. Taj broj, velicina populacije, je parame-

Elektro

nsko

izdanje(2017)

93 5. Genetski algoritmi

tar algoritma i on je cesto nekoliko desetina ili stotina.

Proces inicijalizacije, tj. proces generisanja pocetne populacije, cesto jejednostavan. Najcesce se pocetna populacija generise slucajno (tako da po-kriva citav prostor pretrage). Ukoliko se koristi bitovska reprezentacija, jedinkepocetne generacije mogu se generisati kao slucajni brojevi u intervalu [0, 2𝑛−1],gde je 𝑛 duzina hromozoma u izabranoj reprezentaciji. Dodatno, u pocetnu po-pulaciju mogu biti dodate neke specificne jedinke (na primer, iz delova prostorapretrage za koje se veruje da sadrzi optimalna resenja) ili citava pocetna popu-lacija moze biti generisana koristeci neki drugi optimizacioni metod. U nekimproblemima moze da postoji ogranicenje nad potencijalnim resenjima, tj. jedin-kama i njega onda treba uzeti u obzir pri generisanju slucajnih jedinki. Slicno,i u kasnijim fazama algoritma treba voditi racuna o neispravnim jedinkama,koje su se pojavile u populaciji, a po formi ne ispunjavaju uslove koje poten-cijalna resenja moraju da ispune. Takve jedinke se obicno koriguju unapreddefinisanim postupcima.

5.2.4 Selekcija

Selekcija obezbeduje cuvanje i prenosenje dobrih osobina populacije (tj. do-brog genetskog materijala) na sledecu generaciju. U svakoj generaciji, deojedinki se izdvaja za reprodukciju i generisanje nove generacije. Izdvajanje je-dinki koje ce ucestovavati u reprodukciji zasniva se na funkciji prilagodenostii, generalno, prilagodenije jedinke imaju vecu verovatnocu da imaju potom-stvo. U najjednostavnijim pristupima biraju se jedinke sa najvecom vrednoscufunkcije prilagodenosti. U drugim pristupima, jedinke se biraju slucajno, ali saverovatnocama koje su izvedene iz prilagodenosti, pri cemu je moguce da buduizabrane i neke losije prilagodene jedinke (to moze da pomogne u odrzavanjugenetske raznolikosti i, dalje, u sprecavanju prerane konvergencije ka nekomlokalnom optimumu). Najpopularnije strategije selekcije su ruletska i turnirskaselekcija.

Ruletska selekcija Ruletska selekcija (eng. roulette wheel selection) je pro-ces selekcije u kojem vece sanse da ucestvuju u reprodukciji imaju prilagodenijejedinke.

Ako je 𝑓(𝑖) vrednost funkcije prilagodenosti za jedinku 𝑖, a 𝑁 broj jedinki upopulaciji, verovatnoca da ce jedinka 𝑖 biti izabrana da ucestvuje u reprodukcijijednaka je

𝑝𝑖 =𝑓(𝑖)∑𝑁𝑗 𝑓(𝑗)

Naziv ruletske selekcije potice od analogije koja se moze napraviti sa rule-tom. Ukoliko polja ruleta imaju sirine proporcionalne verovatnocama jedinkipopulacije, onda je proces biranja 𝑚 jedinki za reprodukciju analogan odigra-vanju 𝑚 partija ruleta.

Elektro

nsko

izdanje(2017)

5.2. Komponente genetskog algoritma 94

Primer 5.3. Pretpostavimo da populacija ima osam jedinki: 𝑎, 𝑏, 𝑐, 𝑑, 𝑒, 𝑓, 𝑔, ℎi da su njihove prilagodenosti redom 0.10, 0.30, 0.06, 0.10, 0.40, 0.24, 0.60,0.20. Ukupna prilogodenost generacije jednaka je 2.00. Sledeca tabela prikazujeverovatnoce izbora jedinki u ruletskoj selekciji:

jedinka a b c d e f g h

prilagodenost 0.10 0.30 0.06 0.10 0.40 0.24 0.60 0.20verovatnoca izbora 0.05 0.15 0.03 0.05 0.20 0.12 0.30 0.10

Sledeca slika ilustruje, u formi ruleta, verovatnoce izbora koje su pridruzenejedinkama.

0.05

0.15

0.030.05

0.20

0.12

0.30

0.10

𝑎

𝑐

𝑒

𝑔

𝑏

𝑑

𝑓 ℎ

U opisanom pristupu, podrazumeva se da je funkcija prilagodenosti defini-sana tako da ima samo pozitivne vrednosti.

U ruletskoj selekciji moguce je da jedna jedinka bude vise puta izabrana daucestvuje u sledecoj generaciji i reprodukciji. Prevelik broj ponavljanja istihjedinki lose utice na performanse algoritma.

Turnirska selekcija U turnirskoj selekciji, jedinke „odigravaju turnire“ ukojima vece sanse za pobedu (tj. za prelazak u narednu generaciju) imaju onesa boljom prilagodenoscu.

Velicina turnira 𝑘 i verovatnoca 𝑝 su parametari procesa turnirske selekcije.Za jedan turnir bira se slucajno 𝑘 jedinki iz populacije. Nakon toga, one se

Elektro

nsko

izdanje(2017)

95 5. Genetski algoritmi

sortiraju po vrednosti funkcije prilagodenosti i 𝑖-ta jedinka u tako sortiranomnizu se bira sa verovatnocom 𝑝(1− 𝑝)𝑖−1.

Ukoliko se u procesu selekcije koristi veca velicina turnira, onda nekvalitetnejedinke imaju manje sanse da budu izabrane. Selekcija sa velicinom turnira1 ekvivalentna je slucajnoj selekciji. U deterministickoj turnirskoj selekciji(𝑝 = 1) bira se najbolja jedinka u svakom turniru.

Jedinkama koje su jednom izabrane moze se zabraniti ucestvovanje u daljimturnirima.

5.2.5 Reprodukcija

U procesu reprodukcije ucestvuju jedinke koje su izabrane u procesu se-lekcije. U ukrstanju (eng. crossover) ucestvuju dve jedinke koje se nazivajuroditelji. Rezultat ukrstanja je jedna nova jedinka ili dve nove jedinke kojenazivamo decom ili neposrednim potomcima. Ocekivano je da deca nasledujuosobine roditelja, ukljucujuci njihovu prilagodenost, pa i da imaju bolju prila-godenost od svojih roditelja.

Postoji vise jednostavnih varijanti ukrstanja kada se koristi binarna repre-zentacija. U jednoj varijanti (visepoziciono ukrstanje) dovoljno je izabrati tackeukrstanja i prekombinovati nizove bitova — jedno dete deo od jedne tackeprekida do sledece nasleduje od jednog roditelja, a naredni deo od drugog.Ukrstanje moze koristiti proizvoljan broj tacaka prekida (s tim da je manji odduzine hromozoma). Slike 5.3 i 5.4 ilustruju ukrstanje sa jednom (jednopozi-ciono ukrstanje) i sa dve tacke ukrstanja (dvopoziciono ukrstanje) za binarnureprezentaciju.

roditelj 2

roditelj 1

dete 2

dete 1

tacka prekida

Slika 5.3: Jednopoziciono ukrstanje.

Uniformno ukrstanje daje dva deteta. Kod ovog ukrstanja svaki bit prvogroditelja se sa verovatnocom 𝑝 prenosi na prvo dete i sa verovatnocom 1− 𝑝 nadrugo dete (pri cemu dete koje nije izabrano nasleduje bit drugog roditelja).Verovatnoca 𝑝 je obicno jednaka 0.5, ali moze biti i drugacija.

Ukrstanje se primenjuje na sledeci nacin: iz skupa jedinki izabranih u pro-cesu selekcije biraju se dve razlicite i ukrstaju sa zadatom verovatnocom (obicnoizmedu 0.6 i 0.9). Tacke prekida se biraju slucajno iz skupa svih mogucih tacakaprekida.

Elektro

nsko

izdanje(2017)

5.2. Komponente genetskog algoritma 96

roditelj 2

roditelj 1

dete 2

dete 1

tacke prekida

Slika 5.4: Dvopoziciono ukrstanje.

5.2.6 Mutacija

Mutacija se primenjuje nakon procesa ukrstanja. To je operator koji saodredenom (obicno veoma malom) verovatnocom menja jedan deo jedinke naodredeni nacin. Na primer, u binarnoj reprezentaciji mutacija menja jedan ilivise slucajno odabranih gena. Od jedne jedinke dobija se jedna nova jedinka.Verovatnoca da ce neki bit neke jedinke populacije biti promenjen je parametaralgoritma i odreduje se eksperimentalno (a obicno je manja od 1%).

Uloga mutacija u genetskim algoritmima je da spreci da jedinke u populacijipostanu suvise slicne i da pomogne u obnavljanju izgubljenog genetskog mate-rijala. Na primer, ukoliko u jednoj generaciji sve jedinke imaju istu vrednostjednog gena, onda taj gen samo ukrstanjem nikada ne bi mogao da se promeni.Kontrolisano podsticanje genetske raznolikosti mutacijom cesto omogucava iz-begavanje lokalnih ekstremuma. Mutacije, naime, omogucavaju razmatranjenovih delova prostrora pretrage u nadi da ce se naici na globalnim ekstremum.Dovoljno je da se jedna jedinka priblizi globalnom ekstremumu, pa da za ne-koliko generacija sve jedinke budu u tom delu prostora pretrage.

Ukoliko je verovatnoca mutacije velika, onda usmeravanje pretrage postajepreslabo i ona pocinje da lici na slucajnu pretragu. Ukoliko je verovatnocamutacije jednaka nuli, onda uopste nema mutacije i algoritam ce verovatnobrzo dospeti do nekog lokalnog ekstremuma.

5.2.7 Politika zamene generacije

Politika zamene generacije opisuje kako se od tekuce generacije dobija nova.Osnovna podela po ovom kriterijumu je na generacijske genetske algoritme(eng. generational genetic algorithm) i genetske algoritme stabilnog stanja (eng. ste-ady state genetic algorithm).

U slucaju generacijskih genetskih algoritama, nova generacija dobija se takosto se selekcijom bira dovoljno jedinki iz tekuce generacije da se napravi celanova generacija. Izabrane jedinke se ukrstaju i mutiraju i tako dobijena gene-racija zamenjuje staru.

U slucaju genetskih agloritama stabilnog stanja, cim se izabere par roditelja,vrse se ukrstanje i mutacija i umetanje potomaka u populaciju u skladu sa

Elektro

nsko

izdanje(2017)

97 5. Genetski algoritmi

nekom politikom zamene. Postoje raznovrsne politike zamene a neke od njihsu:

� zamena najgorih prema kojoj dobijeni potomci zamenjuju najmanje prila-godene jedinke u populaciji;

� nasumicna zamena prema kojoj dobijeni potomci zamenjuju nasumicnoizabrane jedinke iz populacije;

� takmicenje roditelja i potomaka prema kojoj se dobijeni potomci zame-njuju svoje roditelje ukoliko su od njih bolji;

� turnirska zamena prema kojoj se jedinka koju dobijeni potomci zamenjujubira istim mehanizmom kao kod turnirske selekcije, s tim sto se umestonajbolje prilagodenih jedinki biraju najgore.

Pored navedenih, za genetske algoritme stabilnog stanja, postoje i druge stra-tegije zamene.

Elitizam je (opciona) strategija u okviru zamene generacije kojom se ne-koliko najboljih jedinki (mozda samo jedna) u generaciji stite od eliminisanjaili bilo kakvih izmena i takve prenose u sledecu generaciju. Ovim se eliminiseopasnost da se neka posebno kvalitetna jedinka izgubi tokom evolucionog pro-cesa. Elitizam moze da se koristi i u generacijskim politikama i u politikamastabilnog stanja.

5.2.8 Zaustavljanje

Genetski algoritam se izvrsava, tj. evolucioni proces stvaranja novih gene-racija se ponavlja, sve dok nije zadovoljen neki uslov zaustavljanja. Najcescese koriste sledeci uslovi zaustavljanja:

� Pronadeno je resenje koje zadovoljava unapred zadati kriterijum.

� Dostignut je zadati broj generacija.

� Funkcija prilagodenosti je izracunata zadati broj puta.

� Vrednost prilagodenosti najbolje jedinke se tokom odredenog broja gene-racija nije popravila.

� Kombinacija nekoliko uslova.

5.3 Svojstva genetskih algoritama

Genetski algoritmi imaju sirok domen i uspesno se primenjuju na velikombroju optimizacionih problema, cesto onih koji su NP-kompletni ili tezi. Sdruge strane, jos uvek nema mnogo teorijskih rezultata koji govore o svojstvimagenetskih algoritama, o kvalitetu resenja koja daju, pa cak ni o tome zasto su

Elektro

nsko

izdanje(2017)

5.3. Svojstva genetskih algoritama 98

genetski algoritmi uspesni. U daljem tekstu, bice reci o nekim dobrim i losimstranama genetskih algoritama.

Ciljna funkcija. Ciljna funkcija moze biti potpuno proizvoljna i ne mora dazadovoljava nikakve uslove (na primer, da bude neprekidna ili diferenci-jabilna). Medutim, u primenama u vestackoj inteligenciji (na primer, ukretanju robota), ciljna funkcija cesto nije zadata eksplicitno vec impli-citno, kroz veci broj kriterijuma.

Reprezentacija jedinki, funkcija prilagodenosti i operatori. Pogodan iz-bor reprezentacije jedinki, funkcije prilagodenosti i operatora ukrstanjaobicno su kljucni za performanse algoritma (brzina dolazenja do resenjai kvalitet resenja). Ipak, za mnoge optimizacione probleme nije lako kon-struisati pogodnu funkciju prilagodenosti jer se obicno ne moze unapredoceniti da li je nesto resenje ili nije. U prvoj fazi resavanja, reprezentacijajedinki, funkcija prilagodenosti i operatori se prilagodavaju problemu, aonda se vrsi i prilagodavanje parametara algoritma, kao i dodatno finopodesavanje procesa resavanja.

Parametri algoritma. Pogodan izbor operatora ukrstanja i parametara ge-netskog algoritma (velicina populacije, verovatnoca ukrstanja, verovatnocumutacije, itd) veoma je vazan za njegove performanse. S druge strane,upravo velika sloboda u izboru parametara istovremeno je i pretnja damogu da budu korisceni parametri koji daju lose performanse. Optimi-zovanje parametara genetskog algoritma je kompleksan problem koji senajcesce resava izvodenjem eksperimenata – probnih resavanja. Za izborpogodnih parametara cesto se koriste sami genetski algoritmi. Parametrigenetskog algoritma ne moraju biti fiksirani, vec mogu da se menjaju iprilagodavaju tokom rada. Na primer, ukoliko su tekuce jedinke razno-like, onda se moze povecati verovatnoca ukrstanja, a smanjiti mutacija, aukoliko su slicne, onda se moze uraditi obratno, kako bi se povecale sanseza bekstvo jedinki iz lokalnog optimuma.

Domen genetskih algoritama. Genetski algoritmi primenljivi su na veomasirok skup problema. Ipak, za uspesno resavanje konkretnih problema za-hteva potrebno je napraviti mnogo dobrih izbora (na primer, za funkcijuprilagodenosti i za parametre).

Kvalitet resenja. Genetski algoritam ne daje garanciju da je pronadeno resenjeglobalni optimum. Stavise, genetski algoritmi cesto imaju tendenciju daidu ka lokalnim optimumima, posto je pronalazenje globalnog optimumatesko. Medutim, i ako nije nadeno resenje koje je globalni optimum,cesto je resenje koje je nadeno dovoljno dobro. Dodatno, kao rezultatalgoritma moze se ponuditi neki skup najboljih pronadenih jedinki, stoje cesto veoma pogodno. Takvo ponasanje je zadovoljavajuce, posebnou problemima za koje ne postoje tehnike koje garantuju pronalazenjeoptimalnog resenja.

Elektro

nsko

izdanje(2017)

99 5. Genetski algoritmi

Zahtevani resursi. Genetski algoritmi se jednostavno implementiraju. Ipak,za najbolje rezultate cesto je potrebno implementaciju prilagoditi kon-kretnom problemu. Iako su algoritmi i implementacije obicno jedno-stavni, izvrsavanje genetskih algoritama cesto je veoma vremenski i me-morijski zahtevno. Genetski algoritmi mogu se pogodno i efikasno para-lelizovati.

5.4 Primeri primene genetskih algoritama

U ovom poglavlju bice data dva konkretna, jednostavna, ali ilustrativnaprimera primene genetskih algoritama.

5.4.1 Obilazak table skakacem

Problem obilaska table skakacem je problem pronalazenja putanje skakacana sahovskoj tabli 𝑛 × 𝑛, takve da skakac poseti sto veci broj razlicitih poljaali nijedno polje dvaput ili vise puta.2 U daljem razmatranju, pretpostavicemodimenzije table 5×5. Na slici 5.5, prikazana je jedna putanja skakaca od osampoteza koja se ne moze nastaviti.

5 Z0Z0Z4 0Z0Z03 Z0M0Z2 0Z0Z01 Z0Z0Z

a b c d e

5 Z0Z0Z4 0Z0Z03 Z0Z0Z2 0Z0Z01 Z0Z0Z

a b c d e

12

3

4

5

67

8

9

Slika 5.5: Kretanje skakaca (levo) i jedna putanja skakaca od osam poteza kojase ne moze nastaviti (desno).

Za svako od 25 polja treba odrediti na koje je najbolje da skakac prede. Uzavisnosti od polja na kojem je, skakac moze preci na dva do osam drugih polja,pa se izbor narednog polja se uvek moze kodirati pomocu tri bita. Stoga, zapotrebe primene genetskog algoritma, hromozom se moze sastojati iz 25× 3 =75 bitova, pri cemu svaka trojka odgovara jednom polju table i oznacava jedanod osam mogucih poteza sa tog polja. Ocigledno, za neka polja neki od potezakoje hromozom moze predstaviti nece biti legalna, ali ih u prvoj verziji svejednodopustamo. U drugoj varijanti, za svako polje dozvoljeni su samo potezi kojisu u tom polju zaista moguci.

2Strоzije postavljen problem je problem pronalazenja putanje skakaca na sahovskoj tablikojom skakac po jednom posecuje svako polje table.

Elektro

nsko

izdanje(2017)

5.4. Primeri primene genetskih algoritama 100

Za funkciju cilja i funkciju prilagodenosti prirodno se namece broj skokovakoje skakac moze da izvede u skladu sa evaluiranim hromozomom, do skokavan table ili do skoka na vec poseceno polje.

Koristi se generacijski genetski algoritam – u svakom koraku bira se dovoljnojedinki da se generise cela nova populacija, a potom se vrse ukrstanja i muta-cije. Selekcija moze da bude jednostavna ruletska. Ukrstanje moze da bude sajednom tackom prekida, a mutacija moze da se realizuje tako sto bi na svakojpoziciji svakog hromozoma sa nekom unapred zadatom malom verovatnocomtrenutna vrednost bila zamenjena nekom slucajno izabranom od preostalih. Zaobe varijante koriscena je populacija od 3000 jedinki, verovatnoca ukrstanja0.8, verovatnoca mutacije po hromozomu 0.05, a maksimalan broj iteracija jebio 1000.

Kako ponasanje genetskog algoritma moze znacajno zavisiti od polazne po-pulacije koja se slucajno generise, moze se desiti da se u razlicitim pokreta-njima, dobije razlicit kvalitet resenja. Kako bi se stekla bolja slika, resavanje jebilo vrseno 10 puta. Potom su izracunati prosecan kvalitet najboljeg resenja iprosecna generacija u kojoj je ono nadeno. Prosecna duzina pronadene putanjeza prvu varijantu je 19.1, a za drugu 21.6. Prosecan broj iteracija koje su bilepotrebne za dostizanje najboljeg pronadenog resenja je 326.7 za prvu, a 188.0za drugu. Na slici 5.6, prikazana je zavisnost duzine predene putanje za naj-bolju jedinku u odnosu na broj iteracija za po jedno izvrsavanje obe varijantegenetskog algoritma. Vidi se da druga varijanta u manjem broju generacijadolazi do kvalitetnijih resanja, sto se i moglo ocekivati. Nijedna varijanta nijepronasla putanju koja obilazi sva polja. Razlog za to je sto je taj problemprevise tezak za pravolinijski pristup koji je upotrebljen. Za njegovo punoresavanje potrebne su dodatne, napredne tehnike.

0 25 50 75 100125150175200225250275300

2468

101214161820222426

Slika 5.6: Zavisnost kvaliteta najbolje jedinke u populaciji od broja generacijaza obe varijante genetskog algoritma. Prva je prikazana plavom bojom, a drugacrvenom.

Elektro

nsko

izdanje(2017)

101 5. Genetski algoritmi

5.4.2 Voznja automobila stazom

Neka je potrebno opisati agenta koji je u stanju da brzo vozi automobil ponekoj stazi. Staza ima start koji je ujedno i cilj i ima krivine ulevo i udesno.Staza je izdeljena na polja (slika 5.7). Voznju je potrebno zavrsiti sto brze.Agent raspolaze sa nekoliko akcija — prebacivanje u brzu voznju, prebacivanjeu sporu voznju, skretanje ulevo i skretanje udesno. Takode je moguce da agentne preduzme nikakvu akciju. Bilo koju akciju da preduzme, agent nastavljada se krece pravo. Agent raspolaze skupom senzora — jednim koji meri brzinu(sporo, brzo) i senzorima za prepreke — levo, desno, jedno polje napred i dvapolja napred. Pretpostavljamo da staza nema slepih krakova niti grananja, paako postoji prepreka na polju ispred, onda postoji tacno jedno slobodno poljelevo ili desno. U toku kretanja, agent ne moze skretati ukoliko se krece brzo.

Slika 5.7: Automobilska staza

Kako bi obilazak staze bio sto pre zavrsen, pozeljno je da agent ubrza kadasu oba polja ispred njega slobodna, da uspori kad primeti prepreku dva poljaispred i da skrene na slobodno polje kada primeti prepreku na polju neposrednoispred.

Prilikom modelovanja ovog problema, potrebno je specifikovati osnovne ele-mente genetskog algoritma, pocev od reprezentacije hromozoma. Zarad jedno-stavnosti, koristicemo modifikovanu binarnu reprezentaciju. Svaki senzor kojimagent raspolaze moze da daje dve vrednosti. Stoga agent ne moze razlikovativise od 25 = 32 stranja. Neka od tih stanja se nece pojavljivati u toku voznje(na primer, prepreke i neposredno napred i levo i desno), ali nece biti unapredodbacena radi jednostavnosti kodiranja i dekodiranja hromozoma. Svako odmogucih stanja predstavljace jednu poziciju u hromozomu na kojoj se beleziakcija koju agent u tom stanju preduzima. Akcije se mogu kodirati celim broje-vima od 0 do 4, na primer, 0 — ne preduzimati nista, 1 — ubrzati, 2 — usporiti,3 — skrenuti levo i 4 — skrenuti desno. Na osnovu ovoga, hromozom agentakoji u svakom stanju samo skrece desno bio bi predstavljen pomocu niza od 32cetvorke. Dekodiranje hromozoma moze da se realizuje tako sto bi se svakomod senzora dodelio jedan bit pri cemu bi njegova vrednost u slucaju postojanja

Elektro

nsko

izdanje(2017)

5.4. Primeri primene genetskih algoritama 102

prepreke bila 0, a u suprotnom 1 i u slucaju sporog kretanja 0, a u suprotnom1. Ovi bitovi bi se poredali u fiksiranom poretku, na primer, brzina, polje ne-posredno ispred, dva polja ispred, polje levo i polje desno. Tada bi se akcija uslucaju brzog kretanja i sa preprekama levo i desno, a bez prepreka na sledecadva polja nalazila zapisana u hromozomu na mestu sa indeksom (10011)2 = 19.

Funkcija cilja nije eksplicitno data. Dat je samo zahtev da agent sto brzevozi. Moguce je definisati funkciju prilagodenosti, ali ni ona nece biti dataeksplicitno, vec ce biti izracunavana simuliranjem ponasanja agenta na nekojstazi koja ukljucuje sve pomenute aspekte voznje (skretanje, ubrzavanje, itd.).Voznja ce biti simulirana tako sto ce agent u svakom koraku da se pomera pojedno polje duz staze u pravcu kretanja. Pri tome se u svakom koraku dekodirahromozom i odreduje se akcija koju agent preduzima. Svako polje koje agentprede sporo boduje se sa 1, a svako polje koje se prede brzo, boduje se sa 2.Vrednost funkcija prilagodenosti je zbir tih bodova. Na taj nacin ce prilikomselekcije biti favorizovani agenti koji brze prelaze stazu. Kako je najvaznije daagent uopste zavrsi voznju, a tek onda da je zavrsi sto brze, svaki agent kojizavrsi voznju dobija dodatne poene, na primer, onoliko koliko staza ima polja.Na taj nacin se agenti koji zavrsavaju voznju favorizuju u selekciji u odnosu naostale, pa se evolucija ubrzava ka njima.

Koristi se generacijski genetski algoritam. Selekcija moze da bude jedno-stavna ruletska. Ukrstanje moze da bude sa jednom tackom prekida, a mutacijamoze da se realizuje tako sto bi na svakoj poziciji svakog hromozoma sa ne-kom unapred zadatom malom verovatnocom trenutna vrednost bila zamenjenanekom slucajno izabranom od preostalih. Time su definisani genetski operatori.

U eksperimentima je koriscena populacija od 300 jedinki, verovatnoca ukrsta-nja je bila 0.6, verovatnoca mutacije po hromozomu 0.001, a maksimalanbroj iteracija 1000. Kao i u proslom primeru, resavanje je izvrseno 10 puta.Prosecan broj bodova najboljeg nadenog agenta je bio 69.3 od mogucih 70, aprosecan broj iteracije u kojem je takav agent pronaden je bio 6. Ocito, ovajproblem je neuporedivo laksi od problema obilaska table skakacem.

Pitanja i zadaci

Pitanje 5.1. Navesti opsti genetski algoritam.

Pitanje 5.2. Da li, u genetskim algoritmima, ciljna funkcija mora da bude:

� definisana za sve moguce jedinke?

� diskretna?

� neprekidna?

� diferencijabilna?

Pitanje 5.3. Da li, u genetskim algoritmima, funkcija prilagodenosti morada bude:

Elektro

nsko

izdanje(2017)

103 5. Genetski algoritmi

� definisana za sve moguce jedinke?

� diskretna?

� neprekidna?

� diferencijabilna?

Pitanje 5.4. Ukoliko je genetskim algoritmom potrebno odrediti minimumpozitivne funkcije 𝑓 na nekom intervalu, da li je pogodno kao funkciju prila-godenosti koristiti funkciju:

(a) 𝑓?(b) −𝑓?(c) inverznu funkciju of 𝑓?(d) 𝑓 ′?

Pitanje 5.5. Ukoliko je genetskim algoritmom potrebno odrediti minimumpozitivne funkcije 𝑓 na nekom intervalu, koju je funkciju koristiti kao funkcijuprilagodenosti?

Pitanje 5.6. U genetskim algoritmima, koja se reprezentacija jedinki najcescekoristi?

Pitanje 5.7. Broj mogucih resenja datog problema je 1000000. Ukoliko se zaresavanje ovog problema koristi genetski algoritam i binarna reprezentacija,onda je duzina hromozoma koji se koriste

Pitanje 5.8. Ako je za potrebe primene genetskog algoritma, domen {3, 4,5, 6, 7, 8, 9, 10} reprezentovan binarnim hromozomima duzine 3 (u istomporetku), kako ce biti reprezentovana jedinka 9?

Pitanje 5.9. Kako se generise inicijalna populacija u genetskim algorit-mima?

Pitanje 5.10. Navesti dva genetska operatora.

Pitanje 5.11. Koliko genetski operatori ukrstanja i mutacije imaju ulaznihjedinki?

Pitanje 5.12. Sta je uloga selekcije u genetskim algoritmima?

Pitanje 5.13. Koje su vrste selekcije u genetskim algoritmima najpopular-nije?

(a) Menhetn i ruletska;(b) Menhetn i turnirska;(c) ruletska i turnirska;(d) ruletska i uniformna.

Pitanje 5.14. Koje vrste selekcija se najcesce koriste u genetskim algorit-mima?

Elektro

nsko

izdanje(2017)

5.4. Primeri primene genetskih algoritama 104

Pitanje 5.15. Kako se jedinka bira ruletskom selekcijom?

Pitanje 5.16. Ako je 𝑓(𝑖) vrednost funkcije kvaliteta (prilagodenosti) za je-dinku 𝑖, a 𝑁 broj jedinki u populaciji, verovatnoca da ce jedinka 𝑖 ruletskom

selekcijom biti izabrana da ucestvuje u reprodukciji jednaka je 𝑝𝑖 =𝑓(𝑖)𝑥 , gde

je 𝑥 jednako:(a) 1;

(b)∑𝑁

𝑗 𝑓(𝑗);

(c)∑𝑁

𝑗,𝑗 =𝑖 𝑓(𝑗);

(d)∏𝑁

𝑗 𝑓(𝑗);

Pitanje 5.17. Ukoliko su vrednosti prilagodenosti jedinka 𝑎, 𝑏 i 𝑐 2, 5, 8redom, koja je verovatnoca da ce u ruletskoj selekciji biti izabrana jedinka 𝑏?

Pitanje 5.18. Genetskim algoritmom se trazi maksimum funkcije 20 − 𝑥2.Populacija sadrzi (samo) jedinke (1), (-4), (2) i (3). Kolika je, za svaku odjedinki, verovatnoca da ce biti izabrana za reprodukciju u ruletskoj selekciji.

Pitanje 5.19. U genetskim algoritmima, ako u jednoj generaciji postoje(samo) jedinke A, B i C sa vrednostima prilagodenosti 1, 2 i 3 (redom), kojaje verovatnoca da pri ruletskoj selekciji jedinka B ude u proces reprodukcije?

Pitanje 5.20. Opisati algoritam turnirske selekcije.

Pitanje 5.21. Ako je u turnirskoj selekciji velicina turnira 𝑘 jednaka 1, cemuje ona ekvivalentna?

Pitanje 5.22. Dve jedinke-roditelja imaju binarne reprezentacije 1010 i 0101.Da li se nekom vrstom ukrstanja moze dobiti kao njihov potomak: (a) 0000;(b) 0011; (c) 1111?

Pitanje 5.23. Dve jedinke-roditelja imaju reprezentacije 0011 i 1010. Da lise u nekom njihovom potomku (dobijenom ukrstanjem) moze javiti:

(1) na prvoj poziciji (zdesna nalevo) vrednost 0 (da/ne);(2) na prvoj poziciji (zdesna nalevo) vrednost 1 (da/ne);(3) na drugoj poziciji (zdesna nalevo) vrednost 0 (da/ne);(4) na drugoj poziciji (zdesna nalevo) vrednost 1 (da/ne);(5) na treccoj poziciji (zdesna nalevo) vrednost 0 (da/ne);(6) na trecoj poziciji (zdesna nalevo) vrednost 1 (da/ne);(7) na cetvrtoj poziciji (zdesna nalevo) vrednost 0 (da/ne);(8) na cetvrtoj poziciji (zdesna nalevo) vrednost 1 (da/ne).

Pitanje 5.24. Opisati uniformno ukrstanje koje se koristi u genetskim algo-ritmima.

Pitanje 5.25. U genetskim algoritmima, kolika je obicno verovatnoca da nekibit neke jedinke mutira?

Elektro

nsko

izdanje(2017)

105 5. Genetski algoritmi

Pitanje 5.26. Da li se od jedinke 1010 mutacijom moze dobiti jedinka: (a)0000; (b) 0011; (c) 1111?

Pitanje 5.27. Ako tokom primene genetskog algoritma ima 𝑁 jedinki, svakaje reprezentovana sa 𝑀 bitova, a verovatnoca mutacije je 𝑝, koliki je ocekivanibroj mutiranih gena u jednoj generaciji?

Pitanje 5.28. Sta je to elitizam u genetskim algoritmima?

Pitanje 5.29. Navesti bar cetiri moguca uslova za zaustavljanje genetskogalgoritma.

Zadatak 5.1. Napisati implementacije operatora ukrstanja sa jednom tackomprekida i mutacije za hromozome duzine 𝑛 <= 32.

Zadatak 5.2. Napisati implemenaciju jednostavne ruletske selekcije.

Zadatak 5.3. Napisati C implementacije operatora ukrstanja sa jednom tackomprekida i mutacije ukoliko se hromozomi mogu predstaviti kao niske od 32 bita.

Elektro

nsko

izdanje(2017)

Elektro

nsko

izdanje(2017)

Deo II

Logika i deduktivno zakljucivanje

Elektro

nsko

izdanje(2017)

Elektro

nsko

izdanje(2017)

Glava 6

Resavanje problema koriscenjem

logike

Matematicka logika bavi se rigoroznim, deduktivnim metodama zakljucivanja,u nekom konkretnom logickom okviru. Logickih okvira ima mnogo i poje-dinacno su pogodni za opisivanje raznovrsnih problema.

Resavanje problema koriscenjem matematicke logike obuhvata:

� fazu modelovanja;

� fazu resavanja.

U fazi modelovanja, problem se opisuje u terminima nekog konkretnoglogickog okvira, a u fazi resavanja se ispituje da li on ima resenje, koriscenjemmetoda odlucivanja specificnih za taj logicki okvir.

6.1 Modelovanje

Razmotrimo najpre sledeci jednostavan problem.

Primer 6.1. Sef protokola na jednom dvoru treba da organizuje bal za pred-stavnike ambasada. Kralj trazi da na bal bude pozvan Peru ili da ne budepozvan Katar (Qatar). Kraljica zahteva da budu pozvani Katar ili Rumunija(ili i Katar i Rumunija). Princ zahteva da ne bude pozvana Peru ili da nebude pozvan Rumunija (ili da ne budu pozvani ni Peru ni Rumunija). Da li jemoguce organizovati bal i zadovoljiti zahteve svih clanova kraljevske porodice?

Navedeni problem potrebno je najpre formulisati na neki precizan nacin.Iskaz, tvrdnju “na bal ce doci ambasador Perua“ oznacicemo sa 𝑝, iskaz “na balce doci ambasador Katara“ oznacicemo sa 𝑞, a iskaz “na bal ce doci ambasadorRumunije“ sa 𝑟. Uslov koji postavlja kralj, onda glasi „vazi 𝑞 ili ne vazi 𝑞“ ilikrace zapisano „𝑞 ili ne 𝑞“ Uslov koji postavlja kraljica glasi „𝑞 ili 𝑟“. Uslovkoji postavlja princ glasi „ne 𝑝 ili ne 𝑟“.

109

Elektro

nsko

izdanje(2017)

6.2. Resavanje 110

Sva navedena ogranicenja, svi ovi iskazi, zajedno cine novi, komplikovanijiiskaz koji bismo, mogli da zapisemo na sledeci nacin:

„(𝑞 ili ne 𝑞) i (𝑞 ili 𝑟) i (ne 𝑝 ili ne 𝑟)“Ova slozeni iskaz predstavlja precizan zapis problema. Potrebno je proveriti

da li polazni iskazi 𝑝, 𝑞 i 𝑟 mogu da imaju konkretne vrednosti tacno ili netacnotakve da slozeni iskaz ima vrednost tacno. Da bi se taj problem resio potrebnoje precizno definisati na koji nacin se slozenim iskazima pridruzuje vrednosttacno ili netacno ukoliko je poznato na koje vrednosti su pridruzene polaznimiskazima.

Navedeni primer je jednostavan u smislu da u njemu figurisu samo veomajednostavni iskazi. Stvari postaju komplikovanije kada je potrebno modelovatitvrdnje koje vaze za sve ili za neke elemente nekog skupa.

Primer 6.2. Mogu biti zadate sledece tvrdnje: „svaki covek je smrtan“, „Sokratje covek“. Pitanje je da li se iz ovih pretpostavki moze utvrditi da je tacnatvrdnja „Sokrat je smrtan“.

Najpre je potrebno precizno opisati navedeni problem. Tvrdnju da je 𝑥 covekzapisimo kao „𝑥 je covek“ a tvrdnju da je 𝑥 smrtan zapisimo kao „𝑥 je smrtan“.Tvrdnju „svaki covek je smrtan“ zapisimo „za svako 𝑥 vazi: ako je (𝑥 je covek)onda jе (𝑥 je smrtan)“ Zadato tvrdenje onda (pomalo rogobatno u odnosu nasvakodnevni jezik) glasi:

„ako (za svako 𝑥 vazi: ako je (𝑥 je covek) onda (𝑥 je smrtan)) i (Sokrat jecovek) onda je (Sokrat je smrtan)“.

6.2 Resavanje

Ispitivanje da li, pod nekim uslovima, slozeni iskaz iz primera 6.1 mozebiti tacan, moze se sprovesti tako sto bi bile ispitane vrednosti slozenog iskazaza sve moguce vrednosti pridruzene iskazima 𝑝, 𝑞 i 𝑟. Tih iskaza ima tri, zasvaki postoje dve mogucnosti, pa ukupno ima 23 mogucnosti koje treba ispitati.Pored ovog naivnog pristupa, postoje i drugi koji efikasnije vrse ovu proveru.

Ispitivanje da li je tvrdenje iz primera 6.2 tacno, moze se sprovesti na sledecinacin: posto za svako 𝑥 vazi „ako je (𝑥 je covek) onda jе (𝑥 je smrtan)“, vazi ikada je 𝑥 jednako Sokrat, tj. vazi „ako je (Sokrat je covek) onda jе (Sokrat jesmrtan)“. Odatle i iz „Sokrat je covek“ sledi „Sokrat je smrtan“, pa vazi datotvrdenje.

Oba navedena procesa zakljucivanja opisani su neformalno i grubo, ali sluzekao motivacija za stroga pravila zakljucivanja u iskaznoj logici i logici prvogreda koja ce biti opisana u narednim poglavljima.

Elektro

nsko

izdanje(2017)

Glava 7

Iskazna logika

U iskaznoj logici razmatraju se iskazi ili tvrdnje. Iskazne promenljive odgo-varaju jednostavnim iskazima. Iskazi mogu biti kombinovani u slozenije iskazelogickim veznicima. Iskazna logika je dovoljno izrazajna za opisivanje raznovr-snih problema, ukljucujuci mnoge prakticne probleme, kao sto su, na primer,problemi rasporedivanja ili dizajniranja kombinatornih kola.

Iskazna logika ima tri aspekta: sintaksu (koja opisuje njen jezik), semantiku(koja definise istinitosnu vrednost iskaza) i deduktivne sisteme (u okviru kojihse mogu dokazivati teoreme). I semantika i deduktivni sistemi grade se nadistim skupom formula. U ovoj glavi nece biti prikazani deduktivni sistemiza iskaznu logiku, ali ce u narednoj biti prikazani opstiji deduktivni sistemi,za logiku prvog reda. Centralni problemi u iskaznoj logici su ispitivanje dali je data iskazna formula valjana (tautologija) tj. da li je tacna bez obzirana tacnost elementarnih iskaza od kojih je sacinjena, kao i ispitivanje da li jedata iskazna formula zadovoljiva, tj. da li je tacna za neke istinitosne vrednostielementarnih iskaza od kojih je sacinjena. Problem ispitivanja zadovoljivostiformule u knf obliku poznat je kao problem sat i on je tipican predstavnikskupa np-kompletnih problema. Postoji vise pristupa i metoda za ispitivanjevaljanosti i zadovoljivosti.

U algoritmima za logicko zakljucivanje cesto je neki korak zakljucivanjamoguce sprovesti na razlicite nacine, ali nije precizirano na koji nacin trebada se sprovede. Naime, bez obzira na nacinjeni izbor, izvedeni zakljucci suuvek ispravni, ali neki putevi do istog zakljucka mogu da budu znatno kraciod drugih i tada je proces automatskog rasudivanja znatno efikasniji. Ovopokazuje da je i u logickom rasudivanju jedan od centralnih problema problemusmeravanja pretrage.

Kao sto je receno, sredstvima iskazne logike mogu se opisati mnogi prakticniproblemi, posebno problemi nad konacnim domenima. Naime, svaki objekatkoji moze imati konacan broj stanja moze se opisati konacnim brojem iskaznihpromenljivih: ako je broj mogucih stanja 2𝑛, onda je dovoljno koristiti 𝑛 is-kaznih promenljivih. Svi brojevi reprezentovani u racunaru su reprezentovani

111

Elektro

nsko

izdanje(2017)

112

bitovima, pa se i oni mogu modelovati iskaznim promenljivim: koliko bitova,toliko iskaznih promenljivih. Sabiranje celih brojeva (kao i mnoge druge opera-cije) onda moze da se opise u terminima iskazne logike. Slicno vazi i za mnogedruge vrste podataka i mnoge vrste problema. Sa tako velikom izrazajnomsnagom i velikim brojem raznolikih primena, iskazna logika i resavaci za iska-znu logiku cesto se smatraju „svajcarskim nozicem“ savremenog racunarstva,a posebno – vestacke inteligencije.

Primer 7.1. Razmotrimo, za ilustraciju resavanja primenom logike, problem„𝑛 dama” opisan u poglavlju 7.7.2. Na slici 7.1, prikazano je kretanje dame ijedno resenje problema za 𝑛 = 8.

8 0Z0Z0Z0Z7 Z0Z0Z0Z06 0Z0Z0Z0Z5 Z0Z0Z0Z04 0Z0L0Z0Z3 Z0Z0Z0Z02 0Z0Z0Z0Z1 Z0Z0Z0Z0

a b c d e f g h

8 0ZQZ0Z0Z7 Z0Z0ZQZ06 0Z0L0Z0Z5 ZQZ0Z0Z04 0Z0Z0Z0L3 Z0Z0L0Z02 0Z0Z0ZQZ1 L0Z0Z0Z0

a b c d e f g h

3 ZQZ2 QZ01 Z0L

a b c

Slika 7.1: Kretanje dame na tabli 8 × 8 (gore levo), jedno resenje za problemosam dama (gore desno), jedno rasporedivanje za problem tri dame koji nijeresenje (dole)

Jednostavnosti radi, u nastavku cemo razmatrati problem dimenzije 3, zakoji je jedno rasporedivanje tri dame (koje ne cini resenje) prikazano na slici7.1 (desno). Uslovi koje ispravno rasporedivanje treba da zadovolji su:

� na jednom od polja 𝑎1, 𝑎2, 𝑎3 nalazi se dama.

� na jednom od polja 𝑏1, 𝑏2, 𝑏3 nalazi se dama.

� na jednom od polja 𝑐1, 𝑐2, 𝑐3 nalazi se dama.

Elektro

nsko

izdanje(2017)

113 7. Iskazna logika

� ako je neka dama na polju 𝑎1, onda na polju 𝑎2 ne moze da bude dama.

� ako je neka dama na polju 𝑎1, onda na polju 𝑎3 ne moze da bude dama.

� ako je neka dama na polju 𝑎2, onda na polju 𝑎1 ne moze da bude dama.

� ako je neka dama na polju 𝑎2, onda na polju 𝑎3 ne moze da bude dama.

� ako je neka dama na polju 𝑎3, onda na polju 𝑎1 ne moze da bude dama.

� ako je neka dama na polju 𝑎3, onda na polju 𝑎2 ne moze da bude dama.

� . . .

� ako je neka dama na polju 𝑎2, onda na polju 𝑏3 ne moze da bude dama.

� ako je neka dama na polju 𝑏3, onda na polju 𝑎2 ne moze da bude dama.

� ako je neka dama na polju 𝑏1, onda na polju 𝑐2 ne moze da bude dama.

� ako je neka dama na polju 𝑐2, onda na polju 𝑏1 ne moze da bude dama.

Navedeni uslovi zavise od iskaza oblika „na polju ?? nalazi se dama“. Oznacimosa 𝑝𝑎1 iskaz „na polju 𝑎1 nalazi se dama“, sa 𝑝𝑎2 iskaz „na polju 𝑎2 nalazi sedama“, . . ., sa 𝑝𝑐3 iskaz „na polju 𝑐3 nalazi se dama“. Onda navedeni uslovimogu da se zapisu krace:

� 𝑝𝑎1 ili 𝑝𝑎2 ili 𝑝𝑎3.

� 𝑝𝑏1 ili 𝑝𝑏2 ili 𝑝𝑏3.

� 𝑝𝑐1 ili 𝑝𝑐2 ili 𝑝𝑐3.

� ako je 𝑝𝑎1, onda nije 𝑝𝑎2.

� ako je 𝑝𝑎1, onda nije 𝑝𝑎3.

� ako je 𝑝𝑎2, onda nije 𝑝𝑎1.

� ako je 𝑝𝑎2, onda nije 𝑝𝑎3.

� ako je 𝑝𝑎3, onda nije 𝑝𝑎1.

� ako je 𝑝𝑎3, onda nije 𝑝𝑎2.

� . . .

� ako je 𝑝𝑎2, onda nije 𝑝𝑏3.

� ako je 𝑝𝑏3, onda nije 𝑝𝑎2.

� ako je 𝑝𝑏1, onda nije 𝑝𝑐2.

Elektro

nsko

izdanje(2017)

7.1. Sintaksa iskazne logike 114

� ako je 𝑝𝑐2, onda nije 𝑝𝑏1.

Ovim su, od jednostavnih iskaza, konstruisani slozeniji. Skup svih navede-nih slozenih uslova cini jos slozeniji iskaz – iskaz koji sadrzi sve uslove zadatka.Sintaksa iskazne logike govori o pravilima po kojim se od elementarnih iskazamogu konstruisati slozeniji, to jest, o pravilima za konstruisanje ispravnih is-kaznih formula.

Svaki od jednostavnih iskaza kao sto je 𝑝𝑎1 moze biti tacan ili netacan. Uzavisnosti od toga, moze se odrediti istinitosna vrednost slozenijih iskaza. Naprimer, ako je 𝑝𝑎1 tacno, a 𝑝𝑎2 netacno, onda je tacno i „ako je 𝑝𝑎1, onda nije𝑝𝑎2“. Semantika iskazne logike govori o tome kako se slozenim iskazima (tojest, iskaznim formulama) odreduje istinitosna vrednost na osnovu istinitosnevrednosti elementatnih iskaza. Posto je, u okviru resavanja problema, vrednostiskaza kao sto je 𝑝𝑎1 nepoznata i posto on moze biti tacan ili netacan, 𝑝𝑎1 cemozvati i iskazna promenljiva.

Samo resavanje pocetnog problema, moze se svesti na resavanje sledecegproblema: odrediti istinitosne vrednosti elementarnih iskaza 𝑝𝑎1, 𝑝𝑎2, . . ., 𝑝𝑐3takve da svi navedni uslovi budu ispunjeni (to jest, da odgovarajuci iskazi imajuistinitosnu vrednost tacno). Moze se razmatrati i pitanje da li takve istinito-sne vrednosti uopste postoje, to jest da li pocetni problem uopste ima resenja.Pitanje da li uopste postoji resenje moze se resiti razmatranjem svih mogucihvarijacija vrednosti za 𝑝𝑎1, 𝑝𝑎2, . . ., 𝑝𝑐3. Takvih varijacija ima 29 = 512 i raz-matranje svih je naporno i neprakticno. Postoje i metode koje ne razmatrajusve mogucnosti i postojanje resenja mogu obicno da ispitaju znatno efikasnije.

U kontekstu navedenih ogranicenja, mogu se izvesti i neki zakljucci. Na pri-mer, ako je 𝑝𝑎1 onda vazi 𝑝𝑏2 ili 𝑝𝑏3. Ovakvi zakljucci mogu se izvesti koristecirazlicite pristupe, a mogu se koristiti za ubrzavanje traganja za resenjem.

7.1 Sintaksa iskazne logike

Sintaksicki aspekt iskazne logike govori o njenom jeziku — o skupu nje-nih (ispravno formiranih) formula i ne razmatra njihova (moguca) istinitosnavrednost. Skup iskaznih formula obicno se definise za fiksiran, prebrojiv skupiskaznih promenljivih 𝑃 , dve logicke konstante — tacno i netacno, kao i konacanskup osnovnih logickih (tj. bulovskih) veznika: unarnog — negacija i binarnih— konjunkcija, disjunkcija, implikacija, ekvivalencija. Skup iskaznih formuladefinise se induktivno na sledeci nacin.

Definicija 7.1 (Skup iskaznih formula).

� Iskazne promenljive (elementi skupa 𝑃 ) i logicke konstante su iskazneformule;

� Ako su 𝐴 i 𝐵 iskazne formule, onda su iskazne formule i objektidobijeni kombinovanjem ovih formula logickim veznicima.

Elektro

nsko

izdanje(2017)

115 7. Iskazna logika

U navedenoj definiciji (u duhu apstraktne sintakse) ne govori se o tomekako se zapisuju ili citaju iskazne formule, vec samo o tome kako se grade naapstraktni nacin (implicitno — u vidu stabla). Konkretnom sintaksom moze sezadati nacin na koji se logicki veznici i iskazne formule zapisuju. Uobicajenoje da se logicke konstante tacno i netacno zapisuju kao ⊤ i ⊥ (a citaju kaote i nete), da se negacija zapisuje kao ¬, konjunkcija kao ∧, disjunkcija kao∨, implikacija kao ⇒ i ekvivalencija kao ⇔. U takvom konkretnom zapisu —zapisu u vidu konkretnih nizova simbola, ako su 𝐴 i 𝐵 iskazne formule, ondasu iskazne formule i (¬𝐴), (𝐴 ∧𝐵), (𝐴 ∨𝐵), (𝐴 ⇒ 𝐵) i (𝐴 ⇔ 𝐵). Na primer,zapis (𝐴 ∧ ⊤) citamo „𝐴 i te“. U ovakvom, konkretnom zapisu, neophodno jekoristiti zagrade kako bi se izbegla visesmislenost. Da bi se izbeglo koriscenjevelikog broja zagrada, obicno se izostavljaju spoljne zagrade i podrazumeva sesledeci prioritet veznika (od viseg ka nizem): ¬ , ∧ , ∨ , ⇒ , ⇔.

Elementi skupa 𝑃 obicno se oznacavaju malim latinicnim slovima (eventu-alno sa indeksima). Iskazne formule obicno se oznacavaju velikim latinicnimslovima (eventualno sa indeksima). Skupovi iskaznih formula obicno se ozna-cavaju velikim slovima grckog alfabeta (eventualno sa indeksima).

Primer 7.2. Uslovi iz primera 7.1 mogli bi da se zapisu kao iskazne formulenad skupom iskaznih promenljivih {𝑝𝑎1, 𝑝𝑎2, . . . 𝑝𝑐3}

� 𝑝𝑎1 ∨ 𝑝𝑎2 ∨ 𝑝𝑎3.

� 𝑝𝑏1 ∨ 𝑝𝑏2 ∨ 𝑝𝑏3.

� 𝑝𝑐1 ∨ 𝑝𝑐2 ∨ 𝑝𝑐3.

� 𝑝𝑎1 ⇒ ¬𝑝𝑎2.

� 𝑝𝑎1 ⇒ ¬𝑝𝑎3.

� 𝑝𝑎2 ⇒ ¬𝑝𝑎1.

� . . .

� 𝑝𝑐2 ⇒ ¬𝑝𝑏1.

Iskazne promenljive zovemo i iskazne varijable ili iskazna slova. Elementeskupova 𝑃 i {⊤,⊥} zovemo atomickim iskaznim formulama. Literal je iska-zna formula koja je ili atomicka iskazna formula ili negacija atomicke iskazneformule.

Ako su dve iskazne formule 𝐴 i 𝐵 sintaksicki identicne (tj. ako su jednakekao nizovi simbola), onda to zapisujemo 𝐴 = 𝐵, a inace – pisemo 𝐴 = 𝐵.

Definicija 7.2 (Skup potformula). Skup potformula formule 𝐴 je najma-nji skup formula koje zadovoljavaju sledece uslove:

� svaka iskazna formula 𝐴 je potformula sama sebi;

Elektro

nsko

izdanje(2017)

7.1. Sintaksa iskazne logike 116

� ako je 𝐴 jednako ¬𝐵, onda je svaka potformula formule 𝐵 istovre-meno i potformula formule 𝐴. Ako je 𝐴 jednako 𝐵 ∧ 𝐶, 𝐵 ∨ 𝐶,𝐵 ⇒ 𝐶 ili 𝐵 ⇔ 𝐶, onda je svaka potformula formule 𝐵 i svakapotformula formule 𝐶 istovremeno i potformula formule 𝐴.

Primer 7.3. Skup potformula formule (𝑝 ⇒ 𝑞)∨𝑟 je {𝑝, 𝑞, 𝑟, 𝑝 ⇒ 𝑞, (𝑝 ⇒ 𝑞)∨𝑟}.

Na razlicite nacine se moze definisati preslikavanje koje svakoj formuli do-deljuje slozenost, na primer, dubinu stabla koje joj odgovara.

Definicija 7.3 (Zamena). Rezultat zamene (supstitucije) svih pojavlji-vanja iskazne formule 𝐶 u iskaznoj formuli 𝐴 iskaznom formulom 𝐷oznacavamo sa 𝐴[𝐶 ↦→ 𝐷]. Ta zamena definise se na sledeci nacin:

� ako za iskazne formule 𝐴 i 𝐶 vazi 𝐴 = 𝐶, onda je 𝐴[𝐶 ↦→ 𝐷] jednako𝐷;

� ako za iskazne formule 𝐴 i 𝐶 vazi 𝐴 = 𝐶 i 𝐴 je atomicka iskaznaformula, onda je 𝐴[𝐶 ↦→ 𝐷] jednako 𝐴;

� ako za iskazne formule 𝐴, 𝐵 i 𝐶 vazi 𝐴 = 𝐶 i 𝐴 = (¬𝐵), onda je𝐴[𝐶 ↦→ 𝐷] = ¬(𝐵[𝐶 ↦→ 𝐷]);

� ako za iskazne formule 𝐴, 𝐵1, 𝐵2 i 𝐶 vazi 𝐴 = 𝐶 i 𝐴 = (𝐵1 ∧ 𝐵2)(𝐴 = (𝐵1 ∨𝐵2), 𝐴 = (𝐵1 ⇒ 𝐵2), 𝐴 = (𝐵1 ⇔ 𝐵2)), onda je 𝐴[𝐶 ↦→𝐷] = (𝐵1[𝐶 ↦→ 𝐷]) ∧ (𝐵2[𝐶 ↦→ 𝐷]) ((𝐵1[𝐶 ↦→ 𝐷]) ∨ (𝐵2[𝐶 ↦→ 𝐷]),(𝐵1[𝐶 ↦→ 𝐷]) ⇒ (𝐵2[𝐶 ↦→ 𝐷]), (𝐵1[𝐶 ↦→ 𝐷]) ⇔ (𝐵2[𝐶 ↦→ 𝐷])).

Pitanja i zadaci

Pitanje 7.1. Da li nad konacnim skupom iskaznih promenljivih ima konacnoili prebrojivo ili neprebrojivo mnogo (sintaksicki) razlicitih iskaznih formula?

Pitanje 7.2. Da li nad prebrojivim skupom iskaznih promenljivih ima konacnoili prebrojivo ili neprebrojivo mnogo (sintaksicki) razlicitih iskaznih formula?

Pitanje 7.3. Sta je literal u iskaznoj logici?

Pitanje 7.4. Ako za iskazne formule 𝐴 i 𝐶 vazi 𝐴 = 𝐶, cemu je jednako𝐴[𝐶 ↦→ 𝐷]?

Pitanje 7.5. Ako za iskazne formule 𝐴 i 𝐶 vazi 𝐴 = 𝐶 i 𝐴 je atomickaformula, cemu je jednako 𝐴[𝐶 ↦→ 𝐷]?

Pitanje 7.6. Cemu je jednako (𝑝 ∧ (¬𝑞 ∨ 𝑟))[¬𝑞 ∨ 𝑟 ↦→ 𝑞 ⇒ 𝑟]?

Elektro

nsko

izdanje(2017)

117 7. Iskazna logika

7.2 Semantika iskazne logike

Semanticki aspekt iskazne logike govori o istinitosnoj vrednosti formula.U nastavku ce biti uvedena semantika iskazne logike u stilu Tarskog (koji jeprvi precizno uveo pojam semantike 1933. godine). Osnovna ideja semantikeTarskog je da istinitosne vrednosti formula iskazne logike definise u skladu sauobicajenim, svakodnevnim rasudivanjem. Na primer, iskaz 𝐴 i 𝐵 je tacanako su tacni i iskaz 𝐴 i iskaz 𝐵. Zbog toga, definicija Tarskog moze da delujecak i suvisno. Ipak, ona je naravno potrebna jer je potrebno na strogi nacindefinisati istinitosnu vrednost iskaznih formula.

Istinitosna vrednost iskazne formule moze biti 0 ili 1 (sto odgovara konstan-tim iskazima tacno i netacno). Istinitosna vrednost slozenih (neatomickih) for-mula zavisi samo od istinitosne vrednosti njenih potformula. Dakle, u krajnjojinstanci, istinitosna vrednost formule zavisi (samo) od istinitosnih vrednostiiskaznih promenljivih koje se u njoj pojavljuju. Da bi se odredila istinitosnavrednost formule nad skupom promenljivih 𝑃 , potrebno je (i dovoljno) da suunapred odredene istinitosne vrednosti elemenata skupa 𝑃 . Funkcije koje pri-druzuju istinitosnu vrednost promenljivim (tj. funkcije 𝑣 iz 𝑃 u {0, 1}) zovemovaluacijama. Funkciju koja na osnovu jedne valuacije pridruzuje istinitosnevrednosti slozenim formulama zovemo interpretacija.

Svaka valuacija 𝑣 odreduje jednu funkciju 𝐼𝑣 koju zovemo interpretacijom zavaluaciju 𝑣 i koja pridruzuje istinitosne vrednosti slozenim formulama (tj. pre-slikava skup iskaznih formula u skup {0, 1}). Interpretaciju 𝐼𝑣 (za valuaciju 𝑣)definisemo na sledeci nacin:

� 𝐼𝑣(𝑝) = 𝑣(𝑝), za svaki element 𝑝 skupa 𝑃 ;

� 𝐼𝑣(⊤) = 1 i 𝐼𝑣(⊥) = 0;

� 𝐼𝑣(¬𝐴) =

{1, ako je 𝐼𝑣(𝐴) = 00, inace

� 𝐼𝑣(𝐴 ∧𝐵) =

{1, ako je 𝐼𝑣(𝐴) = 1 i 𝐼𝑣(𝐵) = 10, inace

� 𝐼𝑣(𝐴 ∨𝐵) =

{0, ako je 𝐼𝑣(𝐴) = 0 i 𝐼𝑣(𝐵) = 01, inace

� 𝐼𝑣(𝐴 ⇒ 𝐵) =

{0, ako je 𝐼𝑣(𝐴) = 1 i 𝐼𝑣(𝐵) = 01, inace

� 𝐼𝑣(𝐴 ⇔ 𝐵) =

{1, ako je 𝐼𝑣(𝐴) = 𝐼𝑣(𝐵)0, inace

Funkcijom 𝐼𝑣, definisanom na navedeni nacin, svakoj formuli pridruzujese (jedinstvena) istinitosna vrednost. Vrednost 𝐼𝑣(𝐴) zovemo istinitosnomvrednoscu iskazne formule 𝐴 u interpretaciji 𝐼𝑣. Ako za valuaciju 𝑣 vazi𝐼𝑣(𝐴) = 1, onda se kaze da je iskazna formula 𝐴 tacna u interpretaciji 𝐼𝑣 i

Elektro

nsko

izdanje(2017)

7.2. Semantika iskazne logike 118

da je iskazna formula 𝐴 tacna u valuaciji 𝑣. Ako za valuaciju 𝑣 vazi 𝐼𝑣(𝐴) = 0,onda se kaze da je iskazna formula 𝐴 netacna u interpretaciji 𝐼𝑣.

Naglasimo da 𝐼𝑣(𝐴) = 0 nije formula iskazne logike, nego je to formula kojagovori o iskaznoj formuli, pa je zato zovemo meta formula.

Primer 7.4. U primeru 7.2 (koji je nastavak) primera 7.1, ako je 𝑣(𝑝𝑎1) = 1i 𝑣(𝑝𝑎2) = 1, onda je 𝐼𝑣(𝑝𝑎1 ⇒ ¬𝑝𝑎2) = 0. Ovo, drugim recima, govori da ni ujednom resenju ne mogu dame da budu i na polju 𝑎1 i na polju 𝑎2.

Definicija 7.4 (Zadovoljivost, valjanost, kontradiktornost, porecivost).� Iskazna formula 𝐴 je zadovoljiva ako postoji valuacija 𝑣 u kojoj je

𝐴 tacna. Tada se kaze da je 𝑣 model za 𝐴 i pisemo 𝑣 |= 𝐴.

� Formula 𝐴 je valjana ili tautologijaa ako je tacna u svakoj valuaciji,tj. ako za svaku valuaciju 𝑣 vazi 𝑣 |= 𝐴 i to zapisujemo |= 𝐴.

� Iskazna formula je nezadovoljiva ili kontradikcija ako ne postoji va-luacija u kojoj je tacna.

� Formula je poreciva ako postoji valuacija u kojoj nije tacna.

aRec tautologija grckog je porekla i sacinjena je od reci tauto (grcki isto) i logos(grcki rec, reci). U bukvalnom prevodu, „tautologija“ znaci „reci isto“. U lingivstickomsmislu, kao i u svakodnevnom jeziku, oznacava ponavljanje istog, reci istu stvar dru-gim recima, redudantnost (slicno, ali ne isto sto i pleonazam — pleonazam oznacavakoriscenje suvisnih reci prilikom ukazivanja na neki pojam). Opisani pojam tautolo-gije razlikuje se od pojma tautologije u logici. U savremenim evropskim jezicima rectautologija prvi put se javlja u sesnaestom veku.

Primer 7.5. Iskazne formule 𝑝 ⇒ 𝑝 i 𝑝 ∨ ¬𝑝 su tautologije, iskazna formula𝑝 ⇒ 𝑞 je zadovoljiva i poreciva, a iskazna formula 𝑝 ∧ ¬𝑝 je kontradikcija.

Definicija 7.5 (Zadovoljivost i kontradiktornost skupa formula). Skupiskaznih formula Γ je zadovoljiv ako postoji valuacija u kojoj je svakaformula iz Γ tacna. Za valuaciju 𝑣 u kojoj su sve formule iz Γ tacne,kaze se da je model za Γ. Skup iskaznih formula Γ je nezadovoljiv ilikontradiktoran ako ne postoji valuacija u kojoj je svaka formula iz Γ tacna.

Primer 7.6. Skup iskaznih formula {𝑝 ⇒ 𝑞, 𝑝,¬𝑞} je kontradiktoran (ali nije-dan njegov pravi podskup nije kontradiktoran).

Primer 7.7. U primeru 7.1, uslov koji resenje mora da zadovolji moze dase razmatra ne samo kao konjunkcija svih pojedinacnih uslova, vec i kao skupformula koje odgovaraju pojedinacnim uslovima. Na osnovu svojstava seman-tike Tarskog, svaka valuacija koja je model takve konjunkcije je i model skupaformula koje odgovaraju pojedinacnim uslovima i obratno.

Elektro

nsko

izdanje(2017)

119 7. Iskazna logika

Primer 7.8. Ako su iskazne formule 𝐴 i 𝐴 ⇒ 𝐵 tautologije, onda je i 𝐵tautologija. Zaista, pretpostavimo da su 𝐴 i 𝐴 ⇒ 𝐵 tautologije i da postojivaluacija 𝑣 u kojoj formula 𝐵 nije tacna. Formula 𝐴 je tautologija, pa je tacnai u valuaciji 𝑣. Kako je u toj valuaciji, formula 𝐴 tacna, a formula 𝐵 netacna,formula 𝐴 ⇒ 𝐵 u njoj nije tacna, sto protivreci pretpostavci da je 𝐴 ⇒ 𝐵tautologija. Dakle, formula 𝐵 je tacna u svakoj valuaciji, pa je ona tautologija.

Pitanja i zadaci

Pitanje 7.7. Navesti primer iskazne formule koja je:

� zadovoljiva;

� valjana;

� poreciva;

� kontradikcija;

� zadovoljiva i valjana;

� zadovoljiva i nije valjana;

� zadovoljiva i poreciva;

� zadovoljiva i nije poreciva;

� zadovoljiva i nije kontradikcija;

� valjana i nije poreciva;

� valjana i nije kontradikcija;

� poreciva i nije zadovoljiva;

� poreciva i nije valjana;

� poreciva i kontradikcija;

� poreciva i nije kontradikcija;

� kontradikcija i nije zadovoljiva;

� kontradikcija i nije valjana.

Pitanje 7.8. Da li je formula (¬𝑝 ∨ 𝑞) ⇒ (¬𝑞 ∨ 𝑝) tautologija, zadovoljiva,poreciva ili nezadovoljiva?

Pitanje 7.9. Da li je formula (¬𝑝∧𝑝∧¬𝑟) ⇒ (¬𝑞∨𝑟) tautologija, zadovoljiva,poreciva ili nezadovoljiva?

Elektro

nsko

izdanje(2017)

7.2. Semantika iskazne logike 120

Pitanje 7.10. Ako iskazna formula ima barem jedan model, kakva je ondaona?

Pitanje 7.11. Ako iskazna formula nema nijedan model, kakva je onda ona?

Pitanje 7.12. Ako iskazna formula nije poreciva, kakva je onda ona?

Pitanje 7.13. Ako iskazna formula nije zadovoljiva, kakva je onda ona?

Pitanje 7.14. Ako iskazna formula nije kontradikcija, kakva je onda ona?

Pitanje 7.15. Ako je formula ¬𝐹 zadovoljiva, kakva je onda formula 𝐹?

Pitanje 7.16. Ako su iskazne formule 𝐴 i 𝐴 ⇒ 𝐵 tautologije, da li je ondaformula 𝐵 tautologija, zadovoljiva, poreciva ili kontradikcija?

Pitanje 7.17. Ako su iskazne formule 𝐴 i 𝐴 ⇒ 𝐵 zadovoljive, onda formula𝐵 nije nuzno zadovoljiva. Napraviti jedan takav primer (u kojem 𝐵 nijezadovoljiva, a 𝐴 i 𝐴 ⇒ 𝐵 jesu).

Pitanje 7.18. Kada je iskazna formula 𝐴 ⇒ 𝐵 tacna u valuaciji 𝑣?

Pitanje 7.19. Kada je 𝐼𝑣(𝐴 ⇒ 𝐵) = 0?

Pitanje 7.20. U iskaznoj logici, za neku valuaciju 𝑣, cemu je jednaka vred-nost 𝐼𝑣(𝐴 ⇔ 𝐵)?

Pitanje 7.21. Kako se definise interpretacija u iskaznoj logici?

Zadatak 7.1.√

Neka su 𝐴, 𝐵, 𝐶, 𝐷 iskazne formule takve da su formule𝐴 ⇒ (𝐵 ⇒ 𝐶) i (𝐴∧𝐶) ⇒ ¬𝐷 tautologije. Dokazati da je i formula (𝐷∧𝐴) ⇒¬𝐵 tautologija.

Zadatak 7.2. Dokazati sledeca tvrdenja:(a) Ako su formule 𝐴∨𝐵 i ¬𝐴∨𝐶 tautologije, onda je i 𝐵∨𝐶 tautologija.(b) Ako su formule 𝐴 ∨ 𝐵, 𝐴 ⇒ 𝐶, 𝐵 ⇒ 𝐷 tautologije, onda je i 𝐶 ∨𝐷

tautologija.(c) Ako su formule ¬𝐴 ∨ 𝐵 i ¬𝐶 ∨ ¬𝐵 tautologije, onda je i 𝐴 ⇒ ¬𝐶

tautologija.

Zadatak 7.3. Dokazati sledeca tvrdenja:(a) Ako je iskazna formula valjana, onda je ona zadovoljiva.(b) Ako je iskazna formula kontradikcija, onda je ona poreciva.(c) Ako iskazna formula nije zadovoljiva, onda je ona kontradikcija i

obratno.(d) Ako iskazna formula nije tautologija, onda je ona poreciva i obratno.

Zadatak 7.4. Dokazati sledeca tvrdenja:(a) Iskazna formula 𝐴 je valjana ako i samo ako je ¬𝐴 kontradikcija.(b) Iskazna formula 𝐴 je zadovoljiva ako i samo ako je ¬𝐴 poreciva.

Elektro

nsko

izdanje(2017)

121 7. Iskazna logika

Zadatak 7.5. Pokazati da iskazne formule 𝑝 ⇒ (𝑞 ⇒ 𝑟) i (𝑝 ⇒ 𝑞) ⇒ 𝑟 nisulogicki ekvivalentne.

Zadatak 7.6. Dokazati sledeca tvrdenja (Γ i Δ su skupovi iskaznih formula,𝐴 je iskazna formula):

(a) Ako je Γ zadovoljiv i Δ ⊂ Γ, onda je Δ zadovoljiv.(b) Ako je Γ zadovoljiv i 𝐴 valjana, onda je Γ ∪ {𝐴} zadovoljiv.(c) Ako je Γ kontradiktoran i Γ ⊂ Δ, onda je Δ kontradiktoran.(d) Ako je Γ kontradiktoran i 𝐴 valjana, onda je Γ ∖ {𝐴} kontradiktoran.

7.3 Istinitosne tablice i odlucivost problema zadovoljivosti

Pravila za odredivanje vrednosti iskazne formule u zadatoj valuaciji (nave-dena u prethodnom poglavlju) mogu biti predstavljena osnovnim istinitosnimtablicama:

𝐴 ¬𝐴0 11 0

𝐴 𝐵 𝐴 ∧𝐵 𝐴 ∨𝐵 𝐴 ⇒ 𝐵 𝐴 ⇔ 𝐵0 0 0 0 1 10 1 0 1 1 01 0 0 1 0 01 1 1 1 1 1

Na osnovu navedenih tablica (tj. na osnovu pravila za odredivanje vrednostiformule), moze se kontruisati istinitosna tablica za proizvoljnu iskaznu formulu.U istinitosnoj tablici za neku formulu svakoj vrsti odgovara jedna valuacija is-kaznih slova koja se pojavljuju u toj formuli. Svakoj koloni odgovara jednapotformula te formule. Istinitosne tablice su pogodne i za ispitivanje valja-nosti, zadovoljivosti, nezadovoljivosti i porecivosti. Ukoliko iskazna formula 𝐴sadrzi iskazne promenljive 𝑝1, 𝑝2, . . ., 𝑝𝑛, istinitosna tablica treba da sadrzisve moguce valuacije za ovaj skup promenljivih (valuacije za druge promenljivenisu relevantne). Takvih valuacija ima 2𝑛. U zavisnosti od vrednosti iska-znih promenljivih, izracunavaju se vrednosti slozenijih iskaznih formula, sve dosame iskazne formule koja se ispituje. Ako su u koloni koja odgovara samojiskaznoj formuli sve vrednosti jednake 1, formula je tautologija. Ako je barjedna vrednost jednaka 1, formula je zadovoljiva. Ako je bar jedna vrednostjednaka 0, formula je poreciva. Ako su sve vrednosti jednake 0, formula jekontradikcija. Ovo pokazuje da su problemi ispitivanja valjanosti, zadovoljivo-sti, nezadovoljivosti i porecivosti odlucivi problemi, tj. postoje algoritmi kojiih mogu resiti.

Primer 7.9. Iskaznoj formuli (¬𝑞 ⇒ ¬𝑝) ⇒ (𝑝 ⇒ 𝑞) odgovara sledeca istini-tosna tablica:

Elektro

nsko

izdanje(2017)

7.3. Istinitosne tablice i odlucivost problema zadovoljivosti 122

𝑝 𝑞 ¬𝑞 ¬𝑝 ¬𝑞 ⇒ ¬𝑝 𝑝 ⇒ 𝑞 (¬𝑞 ⇒ ¬𝑝) ⇒ (𝑝 ⇒ 𝑞)0 0 1 1 1 1 10 1 0 1 1 1 11 0 1 0 0 0 11 1 0 0 1 1 1

Dakle, data formula je zadovoljiva i valjana. Ona nije poreciva i nije kon-tradikcija.

Primer 7.10. Istinitosna tablica moze biti zapisana u skracenom obliku —zapisivanjem samo zadate iskazne formule i odgovarajucih vrednosti ispod po-jedinacnih iskaznih slova i veznika. Iskaznoj formuli iz prethodnog primeraodgovara sledeca skracena istinitosna tablica (popunjena u nekoliko koraka):

(¬ 𝑞 ⇒ ¬ 𝑝) ⇒ (𝑝 ⇒ 𝑞)0 0 0 01 0 0 10 1 1 01 1 1 1

(¬ 𝑞 ⇒ ¬ 𝑝) ⇒ (𝑝 ⇒ 𝑞)1 0 1 0 0 1 00 1 1 0 0 1 11 0 0 1 1 0 00 1 0 1 1 1 1

(¬ 𝑞 ⇒ ¬ 𝑝) ⇒ (𝑝 ⇒ 𝑞)1 0 1 1 0 0 1 00 1 1 1 0 0 1 11 0 0 0 1 1 0 00 1 1 0 1 1 1 1

(¬ 𝑞 ⇒ ¬ 𝑝) ⇒ (𝑝 ⇒ 𝑞)1 0 1 1 0 1 0 1 00 1 1 1 0 1 0 1 11 0 0 0 1 1 1 0 00 1 1 0 1 1 1 1 1

Primer 7.11. U primeru 7.1, za tablu dimenzije 3 × 3, razmatra se skupformula nad 9 iskaznih promenljivih, te bi odgovarajuca istinitosna tablica imala29 = 512 vrsta.

Pitanja i zadaci

Pitanje 7.22. Da li je u iskaznoj logici odluciv problem proveravanja

Elektro

nsko

izdanje(2017)

123 7. Iskazna logika

� zadovoljivosti?

� valjanosti?

� porecivosti?

� kontradiktornosti?

Zadatak 7.7. Ispitati metodom istinitosnih tablica da li je iskazna formula¬((𝑞 ⇒ 𝑝) ⇒ 𝑝) ⇒ ¬𝑝 zadovoljiva.

Zadatak 7.8. Ispitati metodom tablica da li je iskazna formula (𝑝 ⇒ (𝑞 ⇒𝑟)) ⇒ ((𝑝 ⇒ 𝑞) ⇒ (𝑝 ⇒ 𝑟)) tautologija.

Zadatak 7.9.√

Neka su 𝐴, 𝐵, 𝐶, 𝐷 iskazne formule takve da su formule𝐴 ⇒ (𝐵 ⇒ 𝐶) i (𝐴∧𝐶) ⇒ ¬𝐷 tautologije. Dokazati, koriscenjem istinitosnihtablica, da je i formula (𝐷 ∧𝐴) ⇒ ¬𝐵 tautologija.

Zadatak 7.10.√

Odrediti formulu 𝐴 takvu da je formula ((𝐴∧ 𝑞) ⇒ ¬𝑝) ⇒((𝑝 ⇒ ¬𝑞) ⇒ 𝐴) tautologija.

Zadatak 7.11. Odrediti, koriscenjem istinitosnih tablica, (ako postoji) for-mulu 𝐴 takvu da je formula ((𝑝 ⇒ (¬𝑞 ∧ 𝑟)) ⇒ 𝐴) ⇒ (𝐴 ∧ ((𝑟 ⇒ 𝑞) ∧ 𝑝))tautologija.

Zadatak 7.12. Odrediti (ako postoji) formulu 𝐴 takvu da je formula ((𝑝 ⇒(¬𝑞 ∧ 𝑟)) ⇒ 𝐴) ⇒ (𝐴 ∧ ((𝑟 ⇒ 𝑞) ∧ 𝑝)) tautologija.

7.4 Logicke posledice i logicki ekvivalentne formule

Cesto je veoma vazno pitanje da li je neki iskaz posledica nekih drugihiskaza. Ovo pitanje se moze opisati u terminima pojma logicke posledice.

Definicija 7.6 (Logicka posledica). Kaze se da je iskazna formula 𝐴logicka posledica skupa iskaznih formula Γ i pisemo Γ |= 𝐴 ako je svakimodel za skup Γ istovremeno i model za formulu 𝐴.

Kada je skup Γ konacan, tada {𝐴1, ..., 𝐴𝑛} |= 𝐵 (tj. Γ |= 𝐵) pisemo krace𝐴1, ..., 𝐴𝑛 |= 𝐵. Ako je formula 𝐴 logicka posledica praznog skupa formula(tj. ako je svaki model model za 𝐴), onda to zapisujemo |= 𝐴. Ako ne vaziΓ |= 𝐴, onda to zapisujemo Γ |= 𝐴.

Teorema 7.1.

(a) Formula je valjana ako i samo ako je logicka posledica praznog skupaformula.

(b) Ako je skup Γ kontradiktoran, onda je svaka formula njegova logicka

Elektro

nsko

izdanje(2017)

7.4. Logicke posledice i logicki ekvivalentne formule 124

posledica. Specijalno, svaka formula je logicka posledica skupa {⊥}.

(c) Ako za skupove formula Γ i Δ vazi Γ ⊂ Δ i Γ |= 𝐴, onda je Δ |= 𝐴.a

aOvo svojstvo govori da je iskazna logika monotona — da prosirivanjem skupapretpostavki ne moze da se izgubi neka posledica.

Dokaz:

(a) Ako je formula valjana, onda je ona tacna u svakoj valuaciji pa i usvakom modelu praznog skupa formula, te je ona logicka posledicapraznog skupa formula. Svaka valuacija je model za prazan skupformula, pa ako je formula logicka posledica praznog skupa formula,onda je ona tacna u svakoj valuaciji, te je valjana.

(b) Ako je skup Γ kontradiktoran, onda on nema nijedan model. Vazi daje svaki model iz tog (praznog!) skupa modela model za proizvoljnuformulu, pa je proizvoljna formula logicka posledica skupa Γ.

(c) Pretpostavimo da vazi Γ ⊂ Δ i Γ |= 𝐴. Iz Γ |= 𝐴 sledi da jeproizvoljan model za Γ model i za 𝐴. Kako je Γ ⊂ Δ, proizvoljanmodel za Δ je model za Γ, pa i za 𝐴. Dakle, vazi Δ |= 𝐴.

Primetimo da se simbol |= koristi i za zapisivanje da je valuacija 𝑣 modelformule 𝐴 i za oznacavanje relacije logicke posledice. Primetimo i da u obaslucaja zapis |= 𝐴 ima isto sustinsko znacenje — da je formula 𝐴 valjana.

Definicija 7.7 (Logicka ekvivalencija). Kaze se da su dve iskazne formule𝐴 i 𝐵 logicki ekvivalentne i pisemo 𝐴 ≡ 𝐵 ako je svaki model formule 𝐴model i za 𝐵 i obratno (tj. ako vazi 𝐴 |= 𝐵 i 𝐵 |= 𝐴).

Ako je svaki model za 𝐴 istovremeno i model za 𝐵 i obratno, onda u bilokojoj valuaciji formule 𝐴 i 𝐵 imaju jednake vrednosti. Tvrdenja oblika 𝐴 ≡ 𝐵zovemo logickim ekvivalencijama. Relacija ≡ je, ocigledno, relacija ekviva-lencije nad skupom iskaznih formula. Naredna teorema govori o tome kakoproblem ispitivanja da li su neke dve formule logicki ekvivalentne moze da sesvede na problem ispitivanja da li je neka formula tautologija. Tvrdenje oblika𝐴 ≡ 𝐵 nije iskazna formula vec meta formula (formula o formulama iskaznelogike), a 𝐴 ⇔ 𝐵 jeste, te naredna teorema povezuje meta nivo iskazne logikesa objektnim nivoom (koji cine same iskazne formule).

Teorema 7.2. Vazi 𝐴 ≡ 𝐵 ako i samo ako je iskazna formula 𝐴 ⇔ 𝐵tautologija.

Elektro

nsko

izdanje(2017)

125 7. Iskazna logika

Dokaz: Pretpostavimo da vazi 𝐴 ≡ 𝐵. U proizvoljnoj valuaciji 𝑣 formule 𝐴 i𝐵 imaju istu vrednost, pa je formula 𝐴 ⇔ 𝐵 tacna u 𝑣. Odatle sledi daje 𝐴 ⇔ 𝐵 tautologija. Pretpostavimo da je 𝐴 ⇔ 𝐵 tautologija. Ako je uproizvoljnoj valuaciji 𝑣 formula 𝐴 tacna, onda mora da je i 𝐵 tacna u 𝑣(jer je formula 𝐴 ⇔ 𝐵 tacna u 𝑣). Dakle, svaki model za 𝐴 je model i za𝐵. Analogno vazi obratno — svaki model za 𝐵 je model i za 𝐴, te sledi𝐴 ≡ 𝐵, sto je i trebalo dokazati. �

Primer 7.12. Za formule 𝑝𝑎1 ⇒ ¬𝑝𝑎3 i 𝑝𝑎3 ⇒ ¬𝑝𝑎1 iz primera 7.1, moze sepokazati da vazi: 𝑝𝑎1 ⇒ ¬𝑝𝑎3 ≡ 𝑝𝑎3 ⇒ ¬𝑝𝑎1. To govori da nije potrebno dau skupu uslova postoje obe formule, dovoljno je zadrzati jednu od njih. Istovazi i za druge analogne parove formula, te je dovoljno razmatrati sledeci skupformula:

𝑝𝑎1 ∨ 𝑝𝑎2 ∨ 𝑝𝑎3, 𝑝𝑏1 ∨ 𝑝𝑏2 ∨ 𝑝𝑏3, 𝑝𝑐1 ∨ 𝑝𝑐2 ∨ 𝑝𝑐3,

𝑝𝑎1 ⇒ ¬𝑝𝑎2, 𝑝𝑎1 ⇒ ¬𝑝𝑎3, 𝑝𝑎2 ⇒ ¬𝑝𝑎3,

𝑝𝑏1 ⇒ ¬𝑝𝑏2, 𝑝𝑏1 ⇒ ¬𝑝𝑏3, 𝑝𝑏2 ⇒ ¬𝑝𝑏3,

𝑝𝑐1 ⇒ ¬𝑝𝑐2, 𝑝𝑐1 ⇒ ¬𝑝𝑐3, 𝑝𝑐2 ⇒ ¬𝑝𝑐3,

𝑝𝑎1 ⇒ ¬𝑝𝑏1, 𝑝𝑎1 ⇒ ¬𝑝𝑐1, 𝑝𝑏1 ⇒ ¬𝑝𝑐1,

𝑝𝑎2 ⇒ ¬𝑝𝑏2, 𝑝𝑎2 ⇒ ¬𝑝𝑐2, 𝑝𝑏2 ⇒ ¬𝑝𝑐2,

𝑝𝑎3 ⇒ ¬𝑝𝑏3, 𝑝𝑎3 ⇒ ¬𝑝𝑐3, 𝑝𝑏3 ⇒ ¬𝑝𝑐3,

𝑝𝑎3 ⇒ ¬𝑝𝑏2, 𝑝𝑎3 ⇒ ¬𝑝𝑐1, 𝑝𝑏2 ⇒ ¬𝑝𝑐1,

𝑝𝑎2 ⇒ ¬𝑝𝑏1, 𝑝𝑏3 ⇒ ¬𝑝𝑐2,

𝑝𝑎1 ⇒ ¬𝑝𝑏2, 𝑝𝑎1 ⇒ ¬𝑝𝑐3, 𝑝𝑏2 ⇒ ¬𝑝𝑐3,

𝑝𝑎2 ⇒ ¬𝑝𝑏3, 𝑝𝑏1 ⇒ ¬𝑝𝑐2.

Primer 7.13. Neke od logickih ekvivalencija (ili, preciznije, neke od shema

Elektro

nsko

izdanje(2017)

7.4. Logicke posledice i logicki ekvivalentne formule 126

logickih ekvivalencija) su:

¬¬𝐴 ≡ 𝐴 zakon dvojne negacije𝐴 ∨ ¬𝐴 ≡ ⊤ zakon iskljucenja treceg𝐴 ∧𝐴 ≡ 𝐴 zakon idempotencije za ∧𝐴 ∨𝐴 ≡ 𝐴 zakon idempotencije za ∨𝐴 ∧𝐵 ≡ 𝐵 ∧𝐴 zakon komutativnosti za ∧𝐴 ∨𝐵 ≡ 𝐵 ∨𝐴 zakon komutativnosti za ∨𝐴 ⇔ 𝐵 ≡ 𝐵 ⇔ 𝐴 zakon komutativnosti za ⇔

𝐴 ∧ (𝐵 ∧ 𝐶) ≡ (𝐴 ∧𝐵) ∧ 𝐶 zakon asocijativnosti za ∧𝐴 ∨ (𝐵 ∨ 𝐶) ≡ (𝐴 ∨𝐵) ∨ 𝐶 zakon asocijativnosti za ∨

𝐴 ⇔ (𝐵 ⇔ 𝐶) ≡ (𝐴 ⇔ 𝐵) ⇔ 𝐶 zakon asocijativnosti za ⇔𝐴 ∧ (𝐴 ∨𝐵) ≡ 𝐴 zakon apsorpcije𝐴 ∨ (𝐴 ∧𝐵) ≡ 𝐴 zakon apsorpcije𝐴 ∧ (𝐵 ∨ 𝐶) ≡ (𝐴 ∧𝐵) ∨ (𝐴 ∧ 𝐶) zakon distributivnosti ∧ u odnosu na ∨(𝐵 ∨ 𝐶) ∧𝐴 ≡ (𝐵 ∧𝐴) ∨ (𝐶 ∧𝐴) zakon distributivnosti ∧ u odnosu na ∨𝐴 ∨ (𝐵 ∧ 𝐶) ≡ (𝐴 ∨𝐵) ∧ (𝐴 ∨ 𝐶) zakon distributivnosti ∨ u odnosu na ∧(𝐵 ∧ 𝐶) ∨𝐴 ≡ (𝐵 ∨𝐴) ∧ (𝐶 ∨𝐴) zakon distributivnosti ∨ u odnosu na ∧

¬(𝐴 ∧𝐵) ≡ ¬𝐴 ∨ ¬𝐵 De Morganov zakon¬(𝐴 ∨𝐵) ≡ ¬𝐴 ∧ ¬𝐵 De Morganov zakon

𝐴 ∧ ⊤ ≡ 𝐴 zakon konjunkcije sa tautologijom𝐴 ∨ ⊤ ≡ ⊤ zakon disjunkcije sa tautologijom𝐴 ∧ ⊥ ≡ ⊥ zakon konjunkcije sa kontradikcijom𝐴 ∨ ⊥ ≡ 𝐴 zakon disjunkcije sa kontradikcijom

Logicke ekvivalencije navedene u primeru 7.13, izmedu ostalog, pokazuju dasu konjunkcija i disjunkcija komutativni i asocijativni veznici. Zato mozemo(uslovno) smatrati da konjunkcija (i disjunkcija) mogu da povezuju vise od dveformule, pri cemu ne moramo da vodimo racuna o njihovom poretku. Svakiclan uopstene konjunkcije zovemo konjunkt, a svaki clan uopstene disjunkcijezovemo disjunkt. Disjunkciju vise literala (pri cemu njihov poredak nije bitan)zovemo klauza. Klauza je jedinicna ako sadrzi samo jedan literal.

Naredna teorema kaze da ako se u formuli 𝐴 zameni neka njena potformulalogicki ekvivalentnom formulom, dobice se formula koja je logicki ekvivalentnaformuli 𝐴.

Teorema 7.3 (Teorema o zameni). Ako je 𝐶 ≡ 𝐷, onda je 𝐴[𝐶 ↦→ 𝐷] ≡𝐴.

Pitanja i zadaci

Pitanje 7.23. Kada za iskaznu formulu 𝐴 kazemo da je logicka posledicaskupa formula Γ?

Elektro

nsko

izdanje(2017)

127 7. Iskazna logika

Pitanje 7.24. Da li nad konacnim skupom iskaznih promenljivih ima konacnoili prebrojivo ili neprebrojivo (zaokruziti ispravan odgovor) mnogo iskaznihformula od kojih nikoje dve nisu logicki ekvivalentne?

Pitanje 7.25. Sta sem Γ |= 𝐴 mora da vazi da bi vazilo Δ |= 𝐴?

Pitanje 7.26. Kada kazemo da su iskazne formule 𝒜 ≡ ℬ logicki ekviva-lentne?

Pitanje 7.27. Ako su formule 𝐴 i 𝐵 logicki ekvivalentne, kako to zapisujemo?

Pitanje 7.28. Da li je 𝐴 ≡ 𝐵 formula ili meta-formula? Da li je 𝐴 ⇔ 𝐵formula ili meta-formula? Kakva je veza izmedu 𝐴 ≡ 𝐵 i 𝐴 ⇔ 𝐵?

Pitanje 7.29. Koliko ima klauza duzine 𝑘 nad skupom od 𝑛 iskaznih promen-ljivih

(a) ako je dozvoljeno da se u klauzi pojavljuje i literal i njegova negacija?(b) ako nije dozvoljeno da se u klauzi pojavljuje i literal i njegova negacija?(Podrazumeva se da nije dozvoljeno da se u klauzi pojavljuju logicke kon-

stante niti da se ponavlja isti literal, klauze se smatraju istim ako se razlikujusamo u poretku literala koje sadrze).

Pitanje 7.30. Koliko ima klauza nad skupom od 𝑛 iskaznih promenljivih:(a) ako je dozvoljeno da se u klauzi pojavljuje i literal i njegova negacija?(b) ako nije dozvoljeno da se u klauzi pojavljuje i literal i njegova negacija?(Podrazumeva se da nije dozvoljeno da se u klauzi pojavljuju logicke kon-

stante niti da se ponavlja isti literal. klauze se smatraju istim ako se razlikujusamo u poretku literala koje sadrze).

Pitanje 7.31. Navesti teoremu o zameni za iskaznu logiku.

Zadatak 7.13. Dokazati da iz 𝐴 ≡ 𝐴[𝐶 ↦→ 𝐷] ne sledi 𝐶 ≡ 𝐷.

Zadatak 7.14.√

𝐴1, 𝐴2, . . . , 𝐴𝑛 |= 𝐵 ako i samo ako |= (𝐴1 ∧ 𝐴2 ∧ . . . ∧𝐴𝑛) ⇒ 𝐵.

Zadatak 7.15.√

Γ, 𝐴 |= 𝐵 ako i samo ako Γ |= 𝐴 ⇒ 𝐵.

Zadatak 7.16.√

Ako je 𝐴1 ≡ 𝐴2 i 𝐵1 ≡ 𝐵2, onda je:

(a) ¬𝐴1 ≡ ¬𝐴2

(b) 𝐴1 ∧𝐵1 ≡ 𝐴2 ∧𝐵2

(c) 𝐴1 ∨𝐵1 ≡ 𝐴2 ∨𝐵2

(d) 𝐴1 ⇒ 𝐵1 ≡ 𝐴2 ⇒ 𝐵2

(e) 𝐴1 ⇔ 𝐵1 ≡ 𝐴2 ⇔ 𝐵2.

Elektro

nsko

izdanje(2017)

7.5. Normalne forme i potpuni skupovi veznika 128

Zadatak 7.17.√

Ako je iskazna formula 𝐴 tautologija koja sadrzi iskaznaslova 𝑝1, 𝑝2, . . . , 𝑝𝑛 i ako su 𝐴1, 𝐴2, . . . , 𝐴𝑛 proizvoljne iskazne formule,onda je iskazna formula 𝐵 = 𝐴[𝑝1 ↦→ 𝐴1, 𝑝2 ↦→ 𝐴2, . . . , 𝑝𝑛 ↦→ 𝐴𝑛] takodetautologija.

7.5 Normalne forme i potpuni skupovi veznika

Pitanja valjanosti i zadovoljivosti imaju veliki prakticni znacaj – skoro sveprimene iskazne logike svode se na ispitivanje valjanosti ili zadovoljivosti nekeformule. Ispitivanje valjanosti ili zadovoljivosti primenom istinitosnih tablicanije efikasno i оbicno je prakticno potpuno neupotrebljivo. Zato se definisunaprednije procedure za ispitivanje valjanosti ili zadovoljivosti, ali zbog jedno-stavnosti i vece efikasnosti one se obicno definisu samo za neke specificne vrsteiskaznih formula, za formule koje su u nekoj specificnoj formi.

Definicija 7.8 (Konjunktivna normalna forma). Iskazna formula je ukonjunktivnoj normalnoj formi (knf) ako je oblika

𝐴1 ∧𝐴2 ∧ . . . ∧𝐴𝑛

pri cemu je svaka od formula 𝐴𝑖 (1 ≤ 𝑖 ≤ 𝑛) klauza (tj. disjunkcija lite-rala).

Definicija 7.9 (Disjunktivna normalna forma). Iskazna formula je u dis-junktivnoj normalnoj formi (dnf) ako je oblika

𝐴1 ∨𝐴2 ∨ . . . ∨𝐴𝑛

pri cemu je svaka od formula 𝐴𝑖 (1 ≤ 𝑖 ≤ 𝑛) konjunkcija literala.

Ako je iskazna formula 𝐴 logicki ekvivalentna iskaznoj formuli 𝐵 i iskaznaformula 𝐵 je u konjunktivnoj (disjunktivnoj) normalnoj formi, onda se kaze daje formula 𝐵 konjunktivna (disjunktivna) normalna forma formule 𝐴. Jednaiskazna formula moze da ima vise razlicitih konjunktivnih (disjunktivnih) nor-malnih formi (na primer, i formula (𝑝∨ 𝑟)∧ (𝑞 ∨ 𝑟)∧ (𝑝∨ 𝑠)∧ (𝑞 ∨ 𝑠) i formula(𝑠∨ 𝑞)∧ (𝑝∨ 𝑟)∧ (𝑞∨ 𝑟)∧ (𝑝∨𝑠)∧ (𝑝∨¬𝑝) su konjunktivne normalne forme for-mule (𝑝∧𝑞)∨ (𝑟∧𝑠)). Slicno, jedna formula koja je u konjunktivnoj normalnojformi moze biti konjunktivna normalna forma za vise iskaznih formula.

Koriscenjem pogodnih ekvivalencija, svaka iskazna formula moze biti trans-formisana u svoju konjunktivnu (disjunktivnu) normalnu formu. Transformi-sanje iskazne formule u konjunktivnu normalnu formu moze biti opisano al-goritmom prikazanim na slici 7.2. Kada se govori o „primeni neke logickeekvivalencije“ misli se na koriscenje logicke ekvivalencije na osnovu teoreme ozameni (teorema 7.3).

Elektro

nsko

izdanje(2017)

129 7. Iskazna logika

Algoritam: KNF

Ulaz: Iskazna formula 𝐹Izlaz: Konjunktivna normalna forma formule 𝐹

1. Eliminisati veznik ⇔ koristeci logicku ekvivalenciju

𝐴 ⇔ 𝐵 ≡ (𝐴 ⇒ 𝐵) ∧ (𝐵 ⇒ 𝐴).

2. Eliminisati veznik ⇒ koristeci logicku ekvivalenciju

𝐴 ⇒ 𝐵 ≡ ¬𝐴 ∨𝐵.

3. Dok god je to moguce, primenjivati logicke ekvivalencije

¬(𝐴 ∧𝐵) ≡ ¬𝐴 ∨ ¬𝐵 i ¬(𝐴 ∨𝐵) ≡ ¬𝐴 ∧ ¬𝐵.

4. Eliminisati visestruke veznike ¬ koristeci logicku ekvivalenciju

¬¬𝐴 ≡ 𝐴.

5. Dok god je to moguce, primenjivati logicke ekvivalencije

(𝐴 ∨ (𝐵 ∧ 𝐶)) ≡ ((𝐴 ∨𝐵) ∧ (𝐴 ∨ 𝐶)) i

((𝐵 ∧ 𝐶) ∨𝐴) ≡ ((𝐵 ∨𝐴) ∧ (𝐶 ∨𝐴)).

Slika 7.2: Algoritam KNF

Zaustavljanje algoritma KNF moze se dokazati koriscenjem pogodno oda-brane mere formula.1 Za neke pojedinacne korake, moze se dokazati da sezaustavljaju koriscenjem jednostavnih mera — na primer, za prvi korak algo-ritma, kao mera se moze koristiti broj veznika ⇔ u formuli. Tvrdenje 𝐹 ≡ 𝐹 ′

sledi na osnovu teoreme 7.3 i cinjenice da se u algoritmu koriste samo logickeekvivalencije.

1 U cilju dokazivanja zaustavljanja postupka transformisanja formule u konjunktivnunormalnu formu definise se preslikavanje 𝜏 iz skupa iskaznih formula u skup prirodnih brojeva:

𝜏(𝐴) = 2 (gde je 𝐴 atomicka formula)

𝜏(¬𝐴) = 2𝜏(𝐴)

𝜏(𝐴 ∧𝐵) = 𝜏(𝐴) · 𝜏(𝐵)

𝜏(𝐴 ∨𝐵) = 𝜏(𝐴) + 𝜏(𝐵) + 1

Moze se jednostavno dokazati da je vrednost 𝜏(𝐴′) uvek manja od 𝜏(𝐴) ako je formula𝐴′ dobijena primenom nekog pravila prezapisivanja na formulu 𝐴 (jer, na primer, vazi daje 𝜏(¬𝐴 ∧ ¬𝐵) = 2𝜏(𝐴)+𝜏(𝐵) manje od 𝜏(¬(𝐴 ∨ 𝐵)) = 2𝜏(𝐴)+𝜏(𝐵)+1). Odatle sledi dase postupak transformisanja proizvoljne formule u konjunktivnu normalnu formu zaustavljaza proizvoljnu ulaznu formulu 𝐴 (jer ne postoji beskonacan strogo opadajuci niz prirodnihbrojeva ciji je prvi element 𝜏(𝐴)).

Elektro

nsko

izdanje(2017)

7.5. Normalne forme i potpuni skupovi veznika 130

Teorema 7.4 (Korektnost algoritma KNF). Algoritam KNF se zaustavljai zadovoljava sledece svojstvo: ako je 𝐹 ulazna formula, onda je izlaznaformula 𝐹 ′ u konjunktivnoj normalnoj formi i logicki je ekvivalentna sa𝐹 .

Transformisanje formule u njenu konjunktivnu normalnu formu moze dada formulu cija je slozenost eksponencijalna u odnosu na slozenost polazneformule. Na primer, transformisanjem formule

(𝐴1 ∧𝐵1) ∨ (𝐴2 ∧𝐵2) ∨ . . . ∨ (𝐴𝑛 ∧𝐵𝑛)

(koja ima 𝑛 disjunkata) u njenu konjunktivnu normalnu formu, dobija se for-mula koja ima 2𝑛 konjunkta.

Zbog potencijalno ogromne izlazne formule, umesto algoritma KNF, u praksise najcesce koristi Cejtinovo kodiranje – koje je linearno i u smislu vremena i usmislu prostora, ali uvodi dodatne promenljive, te zato rezultujuca formula nijelogicki ekvivalentna polaznoj vec samo slabo ekvivalentna: pocetna formula jezadovoljiva ako i samo ako je zadovoljiva rezultujuca formula. To je za primeneobicno dovoljno dobro i, stavise, iz modela za rezultujucu formulu (ukoliko onipostoje) mogu se rekonstruisati modeli za polaznu formulu. Cejtinova trans-formacija moze se opisati na sledeci nacin: Neka 𝑆𝑢𝑏(𝐹 ) oznacava skup svihpotformula formule 𝐹 . Za svaku formulu 𝐴 iz 𝑆𝑢𝑏(𝐹 ) koja nije iskazna pro-menljiva, uvodi se nova iskazna promenljiva (definiciona promenljiva) 𝑝𝐴. Akoje 𝐴 iskazna promenljiva, onda 𝑝𝐴 oznacava samu formulu 𝐴 (i tada se 𝐴 nazivaosnovna promenljiva). Formula 𝐹 se prvo transformise u sledecu formulu (gde⋆ oznacava binarni iskazni veznik iz skupa binarnih veznika koji se pojavljujuu 𝐹 ):

𝑝𝐹 ∧⋀

𝐴∈𝑆𝑢𝑏(𝐹 )𝐴=𝐵⋆𝐶

(𝑝𝐴 ⇔ (𝑝𝐵 ⋆ 𝑝𝐶)) ∧⋀

𝐴∈𝑆𝑢𝑏(𝐹 )𝐴=¬𝐵

(𝑝𝐴 ⇔ ¬𝑝𝐵)

Lako se moze dokazati da je navedena formula slabo ekvivalentna sa for-mulom 𝐹 . Na kraju, navedena formula se trivijalno transformise u knf oblikprimenom pravila iz tabele 7.1. Svaki konjunkt se transformise u knf sa najvisecetiri klauze, od kojih svaka ima najvise tri literala. Dakle, ova transformacijadaje formulu cija velicina je linearna u odnosu na velicinu ulazne formule.

Primer 7.14. Za zadatu formulu (𝑝 ∧ (𝑞 ∧ 𝑟)) ∨ ((𝑞 ∧ 𝑟) ∧ ¬𝑝), meduoblik zaCejtinovu formu je (iskazne promenljive 𝑝4, 𝑝5, 𝑝6, 𝑝7, 𝑝8 su uvedene, definicionepromenljive):

𝑝8∧(𝑝8 ⇔ (𝑝6∨𝑝7))∧(𝑝6 ⇔ (𝑝∧𝑝4))∧(𝑝7 ⇔ (𝑝4∧𝑝5))∧(𝑝4 ⇔ (𝑞∧𝑟))∧(𝑝5 ⇔ ¬𝑝))

Konacno, izlazna knf formula je:𝑝8 ∧(¬𝑝8 ∨ 𝑝6 ∨ 𝑝7) ∧ (𝑝8 ∨ ¬𝑝6) ∧ (𝑝8 ∨ ¬𝑝7) ∧

Elektro

nsko

izdanje(2017)

131 7. Iskazna logika

vrsta formule rezultujuce klauze

𝐴 = (¬𝐵) (𝑝𝐴 ∨ 𝑝𝐵) ∧ (¬𝑝𝐴 ∨ ¬𝑝𝐵)𝐴 = (𝐵 ∧ 𝐶) (𝑝𝐴 ∨ ¬𝑝𝐵 ∨ ¬𝑝𝐶) ∧ (¬𝑝𝐴 ∨ 𝑝𝐵) ∧ (¬𝑝𝐴 ∨ 𝑝𝐶)𝐴 = (𝐵 ∨ 𝐶) (¬𝑝𝐴 ∨ 𝑝𝐵 ∨ 𝑝𝐶) ∧ (𝑝𝐴 ∨ ¬𝑝𝐵) ∧ (𝑝𝐴 ∨ ¬𝑝𝐶)𝐴 = (𝐵 ⇒ 𝐶) (¬𝑝𝐴 ∨ ¬𝑝𝐵 ∨ 𝑝𝐶) ∧ (𝑝𝐴 ∨ 𝑝𝐵) ∧ (𝑝𝐴 ∨ ¬𝑝𝐶)𝐴 = (𝐵 ⇔ 𝐶) (¬𝑝𝐴 ∨ ¬𝑝𝐵 ∨ 𝑝𝐶) ∧ (¬𝑝𝐴 ∨ 𝑝𝐵 ∨ ¬𝑝𝐶)∧

(𝑝𝐴 ∨ 𝑝𝐵 ∨ 𝑝𝐶) ∧ (𝑝𝐴 ∨ ¬𝑝𝐵 ∨ ¬𝑝𝐶)

Tabela 7.1: Pravila za Cejtinovu transformaciju

(𝑝6 ∨ ¬𝑝 ∨ ¬𝑝4) ∧ (¬𝑝6 ∨ 𝑝) ∧ (¬𝑝6 ∨ 𝑝4) ∧(𝑝7 ∨ ¬𝑝4 ∨ ¬𝑝5) ∧ (¬𝑝7 ∨ 𝑝4) ∧ (¬𝑝7 ∨ 𝑝5) ∧(𝑝4 ∨ ¬𝑞 ∨ ¬𝑟) ∧ (¬𝑝4 ∨ 𝑞) ∧ (¬𝑝4 ∨ 𝑟) ∧(𝑝5 ∨ 𝑝) ∧ (¬𝑝5 ∨ ¬𝑝)

Problem sa Cejtinovom transformacijom je u tome sto ona uvodi mnogonovih promenljivih. Postoje raznovrsne tehnike za smanjivanje broja promen-ljivih i broja klauza.

Primer 7.15. Formula 𝑝𝑎1 ⇒ ¬𝑝𝑎2 iz primera 7.12 moze se zameniti logickiekvivalentnom formulom ¬𝑝𝑎1∨¬𝑝𝑎2. Zahvaljujuci tome, nije ni potrebno uvo-diti nove Cejtinove promenljive i zadati uslov moze da se zapise u knf oblikukao konjunkcija sledecih formula:

𝑝𝑎1 ∨ 𝑝𝑎2 ∨ 𝑝𝑎3, 𝑝𝑏1 ∨ 𝑝𝑏2 ∨ 𝑝𝑏3, 𝑝𝑐1 ∨ 𝑝𝑐2 ∨ 𝑝𝑐3,

¬𝑝𝑎1 ∨ ¬𝑝𝑎2, ¬𝑝𝑎1 ∨ ¬𝑝𝑎3, ¬𝑝𝑎2 ∨ ¬𝑝𝑎3,¬𝑝𝑏1 ∨ ¬𝑝𝑏2, ¬𝑝𝑏1 ∨ ¬𝑝𝑏3, ¬𝑝𝑏2 ∨ ¬𝑝𝑏3,¬𝑝𝑐1 ∨ ¬𝑝𝑐2, ¬𝑝𝑐1 ∨ ¬𝑝𝑐3, ¬𝑝𝑐2 ∨ ¬𝑝𝑐3,¬𝑝𝑎1 ∨ ¬𝑝𝑏1, ¬𝑝𝑎1 ∨ ¬𝑝𝑐1, ¬𝑝𝑏1 ∨ ¬𝑝𝑐1,¬𝑝𝑎2 ∨ ¬𝑝𝑏2, ¬𝑝𝑎2 ∨ ¬𝑝𝑐2, ¬𝑝𝑏2 ∨ ¬𝑝𝑐2,¬𝑝𝑎3 ∨ ¬𝑝𝑏3, ¬𝑝𝑎3 ∨ ¬𝑝𝑐3, ¬𝑝𝑏3 ∨ ¬𝑝𝑐3,¬𝑝𝑎3 ∨ ¬𝑝𝑏2, ¬𝑝𝑎3 ∨ ¬𝑝𝑐1, ¬𝑝𝑏2 ∨ ¬𝑝𝑐1,¬𝑝𝑎2 ∨ ¬𝑝𝑏1, ¬𝑝𝑏3 ∨ ¬𝑝𝑐2,¬𝑝𝑎1 ∨ ¬𝑝𝑏2, ¬𝑝𝑎1 ∨ ¬𝑝𝑐3, ¬𝑝𝑏2 ∨ ¬𝑝𝑐3,¬𝑝𝑎2 ∨ ¬𝑝𝑏3, ¬𝑝𝑏1 ∨ ¬𝑝𝑐2.

Transformisanje formule u disjunktivnu normalnu formu opisuje se algorit-mom analognim algoritmu KNF.

Algoritmom KNF proizvoljna iskazna formula moze se transformisati u for-mulu koja ne sadrzi veznike ⇔ i ⇒. Dobijena formula sadrzace, dakle, samoveznike ¬, ∧ i ∨. Kaze se da je skup veznika {¬,∧,∨} potpun, jer je svakaiskazna formula logicki ekvivalentna nekoj iskaznoj formuli nad samo ova tri

Elektro

nsko

izdanje(2017)

7.5. Normalne forme i potpuni skupovi veznika 132

veznika i bez logickih konstanti ⊤ i ⊥. Stavise, zahvaljujuci logickoj ekvivalen-ciji 𝐴 ∨𝐵 ≡ ¬(¬𝐴 ∧ ¬𝐵), moze se dokazati i da je skup {¬,∧} potpun.

Postoje i jednoclani potpuni skupovi vezinka: {↓} i {↑}, pri cemu su veznici↓ (nili ili Lukasijeviceva funkcija) i ↑ (ni ili Seferova funkcija) definisani nasledeci nacin: 𝐴 ↓ 𝐵 je jednako ¬(𝐴 ∨𝐵), a 𝐴 ↑ 𝐵 je jednako ¬(𝐴 ∧𝐵). Lakose pokazuje da je ¬𝐴 ≡ (𝐴 ↓ 𝐴) i 𝐴 ∧ 𝐵 ≡ ((𝐴 ↓ 𝐴) ↓ (𝐵 ↓ 𝐵)). Kako jeskup veznika {¬,∧} potpun, sledi da je potpun i skup {↓}. Analogno vazi i zaskup {↑}. Moze se dokazati da su veznici ↓ i ↑ jedina dva binarna veznika koja(pojedinacno) cine potpun sistem.

Pitanja i zadaci

Pitanje 7.32. Da li je za iskaznu formulu jednoznacno odredena njena ko-njunktivna normalna forma?

Pitanje 7.33. Navesti jedan algoritam za transformiranje iskazne formule uknf.

Pitanje 7.34. Sta tokom primene algoritma za transformiranje iskazne for-mule u knf vazi nakon primene logicke ekvivalencije ¬¬𝐴 ≡ 𝐴?

Pitanje 7.35. Da li se moze konstruisati iskazna formula za koju se algoritamKNF ne zaustavlja?

Pitanje 7.36. Zasto se zaustavlja prvi korak algoritma KNF?

Pitanje 7.37. Zasto se zaustavlja cetvrti korak algoritma KNF?

Pitanje 7.38. Navesti teoremu o korektnosti algoritma KNF za iskaznu lo-giku.

Pitanje 7.39. Navesti primer skupa formula 𝐴 velicine 𝑛 za koje se algorit-mom KNF dobijaju formule velicine 𝑝(𝑛) (𝑝(𝑛) je polinom po 𝑛)?

Pitanje 7.40. Navesti primer skupa formula 𝐴 velicine 𝑛 za koje se algorit-mom KNF dobijaju formule velicine 𝑝(2𝑛) (𝑝(2𝑛) je polinom po 2𝑛)?

Pitanje 7.41. Kako se definisu binarni veznici ↑ i ↓?

Pitanje 7.42. Koliko ima binarnih veznika koji pojedinacno cine potpunskup veznika za iskaznu logiku? Predstaviti te veznike u terminima osnov-nih logickih veznika.

Zadatak 7.18. Odrediti konjunktivnu normalnu formu i disjunktivnu nor-malnu formu za formule:

(a) (𝐴 ⇒ 𝐵) ∨ (¬𝐴 ∧ 𝐶)(b) 𝐴 ⇔ (𝐵 ∧ ¬𝐴)(c) ((𝐴 ⇒ 𝐵) ⇒ (𝐶 ⇒ ¬𝐴)) ⇒ (¬𝐵 ⇒ ¬𝐶)(d) ((((𝐴 ⇒ 𝐵) ⇒ ¬𝐴) ⇒ ¬𝐵) ⇒ ¬𝐶) ⇒ 𝐶(e) (𝐴 ⇒ (𝐵 ⇒ 𝐶)) ⇒ ((𝐴 ⇒ ¬𝐶) ⇒ (𝐴 ⇒ ¬𝐵))

Elektro

nsko

izdanje(2017)

133 7. Iskazna logika

Zadatak 7.19. U racunarstvu se cesto koristi logicki veznik ∨ (iskljucivo ili,iskljuciva disjunkcija, ekskluzivno ili, ekskluzivna disjunkcija) koji moze bitidefinisan na sledeci nacin: 𝐴∨𝐵 je jednako (tj. to je kraci zapis za) ¬(𝐴 ⇔ 𝐵)ili (𝐴 ∧ ¬𝐵) ∨ (¬𝐴 ∧𝐵). Ispitati da li je skup {∧,∨} potpun skup veznika.

Zadatak 7.20. Dokazati da {⇒,∨} i {¬,⇔} nisu potpuni skupovi veznika.

7.6 Problem SAT i algoritam DPLL

Za svaku iskaznu formulu postoji njena konjunktivna normalna forma ivecina primena iskazne logike svodi se na ispitivanje zadovoljivosti neke formulekoja je u tom, specificnom, knf obliku. Ovaj specifican problem ima ogromani teorijski i prakticni znacaj.

Problem ispitivanja zadovoljivosti date iskazne formule u knf obliku oznacavase sa sat (od engleskog satisfiability problem — problem zadovoljivosti). satproblem je np-kompletan. Problem ispitivanja nezadovoljivosti date iskazneformule u knf obliku je co-np-kompletan.2

S obzirom na to da se jos uvek ne zna da li su klase p i np problema jednake,to znaci da se jos uvek ne zna da li postoji algoritam za ispitivanje zadovoljivostikoji je polinomijalne slozenosti. Kako je opste uverenje da su klase problema pi np razlicite, veruje se i da ne postoji polinomijalni algoritam za resavanje satproblema. I najefikasniji danas poznati algoritmi za resavanje ovog problemasu eksponencijalne slozenosti. Programi koji resavaju instance sat problemazovu se sat resavaci.

Problem ispitivanja zadovoljivosti formula u dnf obliku je sustinski drugacijiod ispitivanja zadovoljivosti formula u knf obliku. Drugi je co-np-kompletan(jer se lako svodi na problem ispitivanja nezadovoljivosti i obratno), a prvi jetrivijalan i pripada klasi p. Ipak, svodenje drugog na prvi je eksponencijalnoi nije razuman put za resavanje problema sat. Analogno, problem ispitivanjatautologicnosti formule u knf obliku pripada klasi p, a problem ispitivanjatautologicnosti formule u dnf obliku je np-kompletan.

Dejvis–Patnam–Logman–Lavlendova ili dpll procedura3 (DPLL procedura)je procedura za ispitivanje zadovoljivosti iskaznih formula u knf obliku, to jest,procedura za resavanje instanci sat problema. Ulazna formula je konjunkcijaklauza. Pri tome (kako su konjunkcija i disjunkcija komutativne i asocija-tivne) nije bitan poredak tih klauza niti je u bilo kojoj od tih klauza bitan

2Problem odlucivanja 𝒳 je komplementan problemu odlucivanja 𝒴 ako za svaku instancuza koju problem 𝒴 daje odgovor „da“, problem 𝒳 daje odgovor „ne“. Problem odlucivanja 𝒳pripada klasi co-np ako njemu komplementan problemu pripada klasi np. Na primer, problemzadovoljivosti za iskazne formule u knf obliku pripada klasi np, pa problem nezadovoljivostiza iskazne formule u knf obliku pripada klasi co-np. Nije poznato da li su klase np i co-npjednake. Problem koji pripada klasi co-np je co-np-kompletan ako se svaki problem iz klaseco-np moze svesti na njega u polinomijalnom vremenu.

3Prva verzija procedure ciji su autori Dejvisa i Patnama, unapredena je dve godine kasnijeu radu Dejvisa, Logmana i Lovelanda, pa otuda naziv DPLL.

Elektro

nsko

izdanje(2017)

7.6. Problem SAT i algoritam DPLL 134

poredak literala, te se ulazna formula moze smatrati skupom (ili, preciznije,multiskupom4) klauza, od kojih se svaka moze smatrati skupom (ili, preciznije,multiskupom) literala. Ipak, radi odredenosti rada algoritma, smatracemo daje skup (odnosno multiskup) klauza ureden.

U proceduri se podrazumevaju sledece konvencije:

� prazan skup klauza (zvacemo ga praznom formulom) je zadovoljiv;

� klauza koja ne sadrzi nijedan literal (zvacemo je prazna klauza) je neza-dovoljiva i formula koja sadrzi praznu klauzu je nezadovoljiva.

DPLL data je na slici 7.3, a njena svojstva daje teorema 7.5.

Teorema 7.5 (Korektnost DPLL procedure). Za svaku iskaznu formuluDPLL procedura se zaustavlja i vraca odgovor DA ako i samo ako je polaznaformula zadovoljiva.

DPLL procedura je u najgorem slucaju eksponencijalne slozenosti po brojuiskaznih promenljivih u formuli, usled rekurzivne primene split pravila. Ek-sponencijalne slozenosti su i svi drugi do sada poznati algoritmi za ispitivanjezadovoljivosti. Ipak, svi ti algoritmi su znatno efikasniji od metode istinitosnihtablica.

Izbor iskaznog slova u pravilu split veoma je vazan. Neke varijante ovogpravila su da se bira iskazno slovo sa najvise pojavljivanja u tekucoj formuli,da se bira neko od iskaznih slova iz najkrace klauze itd. Posto se ispituje dali postoji valuacija u kojoj su sve klauze formule tacne, pohlepni algoritam bimogao da za split promenljivu bira onu koja cini najveci broj klauza tacnimu tekucoj parcijalnoj valuaciji. Ovaj algoritam ne garantuje optimalnost niefikasnost i retko se koristi u praksi.

Primer 7.16. DPLL procedura moze se primeniti na formulu iz primera 7.15.Prvo pravilo koje je primenljivo je split i moze da se primeni, na primer, napromenljivu 𝑝𝑎1. U prvoj grani koja se razmatra 𝑝𝑎1 se zamenjuje sa ⊤ (stoodgovara pridruzivanju vrednosti tacno) i u narednim koracima se, primenompravila unit propagation promenljive 𝑝𝑎2, 𝑝𝑎3, 𝑝𝑏1, 𝑝𝑐1, 𝑝𝑏2, 𝑝𝑐3 zamenjuju sa ⊥.Zatim se promenljive 𝑝𝑏3 i 𝑝𝑐2 zamenjuju sa ⊤, nakon cega klauza ¬𝑝𝑏2 ∨¬𝑝𝑐3postaje prazna. Slicno se desava i u grani u kojoj se 𝑝𝑎1 zamenjuje sa ⊥, teprocedura vraca odgovor 𝑁𝐸, sto znaci da ne postoji resenje problema 𝑛 damaza 𝑛 = 3.

DPLL procedura moze se razmatrati kao algoritam pretrage potpunog stablavaluacija promenljivih koje ucestvuju u formuli. Koraci algoritma omogucavajuda se ne pretrazuje nuzno citavo stablo. Heuristike koje odreduju nacin nakoji se primenjuje pravilo split usmeravaju pretragu i mogu bitno da uticu naefikasnost pretrage.

4 Neformalno, multiskup je skup u kojem se elementi mogu pojavljivati vise puta.

Elektro

nsko

izdanje(2017)

135 7. Iskazna logika

Algoritam: DPLL

Ulaz: Multiskup klauza 𝐷 (𝐷 = {𝐶1, 𝐶2, . . . , 𝐶𝑛})Izlaz: DA, ako je multiskup 𝐷 zadovoljiv;

NE, ako multiskup 𝐷 nije zadovoljiv

1. Ako je 𝐷 prazan, vrati DA.

2. Zameni sve literale ¬⊥ sa ⊤ i zameni sve literale ¬⊤ sa ⊥.

3. Obrisi sve literale jednake ⊥.

4. Ako 𝐷 sadrzi praznu klauzu, vrati NE.

5. (tautology)

Ako neka klauza 𝐶𝑖 sadrzi literal ⊤ ili sadrzi i neki literal i njegovunegaciju, vrati vrednost koju vraca DPLL(𝐷 ∖ 𝐶𝑖).

6. (unit propagation)

Ako je neka klauza jedinicna i jednaka nekom iskaznom slovu 𝑝, ondavrati vrednost koju vraca DPLL(𝐷[𝑝 ↦→ ⊤]);

Ako je neka klauza jedinicna i jednaka ¬𝑝, gde je 𝑝 neko iskazno slovo,onda vrati vrednost koju vraca DPLL(𝐷[𝑝 ↦→ ⊥]).

7. (pure literal)

Ako 𝐷 sadrzi literal 𝑝 (gde je 𝑝 neko iskazno slovo), ali ne i literal ¬𝑝,onda vrati vrednost koju vraca DPLL(𝐷[𝑝 ↦→ ⊤]);

Ako 𝐷 sadrzi literal ¬𝑝 (gde je 𝑝 neko iskazno slovo), ali ne i literal 𝑝,onda vrati vrednost koju vraca DPLL(𝐷[𝑝 ↦→ ⊥]).

8. (split)

Ako DPLL(𝐷[𝑝 ↦→ ⊤]) vraca DA, onda vrati DA; inace vrati vrednostkoju vraca DPLL(𝐷[𝑝 ↦→ ⊥]) (gde je 𝑝 jedno od iskaznih slova koja sejavljaju u 𝐷).

Slika 7.3: DPLL procedura

Primer 7.17. Neka je potrebno ispitati zadovoljivost formule date klauzama:

𝐶1 : ¬𝑎,¬𝑏, 𝑐𝐶2 : 𝑎,¬𝑏𝐶3 : 𝑏, 𝑐𝐶4 : ¬𝑏,¬𝑐

Formula ima dve zadovoljavajuce valuacije. Proverom zadovoljivosti pro-

Elektro

nsko

izdanje(2017)

7.6. Problem SAT i algoritam DPLL 136

cedurom DPLL, pronalazi se jedna od te dve valuacije. Prvo stablo na slici7.4 prikazuje proces pretrage u slucaju datog skupa klauza. Kako obe zadovolja-vajuce valuacije pridruzuju promenljivoj 𝑏 vrednost 0, a promenljivoj 𝑐 vrednost1, nakon dodavanja klauze

𝐶5 : 𝑏,¬𝑐prethodni skup klauza postaje nezadovoljiv. Proces pretrage procedurom DPLLu ovom slucaju, prikazan je na drugom stablu na istoj slici. U ovom primeruupecatljivo je da DPLL procedura ispituje svega tri od osam listova zahvaljujucitome sto osim koraka pretrage olicenih u pravilu split, postoje i koraci za-kljucivanja koje se vrsi primenom pravila unit propagation, pri cemu se neispituju alternative tim pravilom ucinjenih zamena.

𝑣(𝑎)=1 𝑣(𝑎)=1

𝑣(𝑏)=1 𝑣(𝑏)=0 𝑣(𝑏)=1 𝑣(𝑏)=0

𝑣(𝑐)=1 𝑣(𝑐)=0 𝑣(𝑐)=1 𝑣(𝑐)=0 𝑣(𝑐)=1 𝑣(𝑐)=0 𝑣(𝑐)=1 𝑣(𝑐)=0

𝐼𝑣(𝐴)=0 𝐼𝑣(𝐴)=0 𝐼𝑣(𝐴)=1 𝐼𝑣(𝐴)=0 𝐼𝑣(𝐴)=0 𝐼𝑣(𝐴)=0 𝐼𝑣(𝐴)=1 𝐼𝑣(𝐴)=0

𝑠𝑝𝑙𝑖𝑡([𝑎 ↦→ ⊤])

𝑠𝑝𝑙𝑖𝑡([𝑏 ↦→ ⊤])

𝑢𝑝([𝑐 ↦→ ⊤])

𝑠𝑝𝑙𝑖𝑡([𝑏 ↦→ ⊥])

𝑢𝑝([𝑐 ↦→ ⊤])

𝑣(𝑎)=1 𝑣(𝑎)=1

𝑣(𝑏)=1 𝑣(𝑏)=0 𝑣(𝑏)=1 𝑣(𝑏)=0

𝑣(𝑐)=1 𝑣(𝑐)=0 𝑣(𝑐)=1 𝑣(𝑐)=0 𝑣(𝑐)=1 𝑣(𝑐)=0 𝑣(𝑐)=1 𝑣(𝑐)=0

𝐼𝑣(𝐴)=0 𝐼𝑣(𝐴)=0 𝐼𝑣(𝐴)=0 𝐼𝑣(𝐴)=0 𝐼𝑣(𝐴)=0 𝐼𝑣(𝐴)=0 𝐼𝑣(𝐴)=0 𝐼𝑣(𝐴)=0

𝑠𝑝𝑙𝑖𝑡([𝑎 ↦→ ⊤])

𝑠𝑝𝑙𝑖𝑡([𝑏 ↦→ ⊤])

𝑢𝑝([𝑐 ↦→ ⊤])

𝑠𝑝𝑙𝑖𝑡([𝑏 ↦→ ⊥])

𝑢𝑝([𝑐 ↦→ ⊤])

𝑠𝑝𝑙𝑖𝑡([𝑎 ↦→ ⊥])

𝑢𝑝([𝑏 ↦→ ⊥])

𝑢𝑝([𝑐 ↦→ ⊤])

Slika 7.4: Proces provere zadovoljivosti procedurom DPLL prikazan u vidupretrage u potpunom stablu valuacija za dva skupa klauza. Pretraga se vrsiobilaskom stabla u dubinu sleva nadesno.

DPLL procedura proverava da li je formula zadovoljiva, ali ona se mozekoristiti i za ispitivanje da li je neka formula valjana, poreciva ili kontradikcija.Na primer, formula 𝐴 je valjana ako i samo ako je formula ¬𝐴 nezadovoljiva,sto se moze proveriti DPLL procedurom (pri cemu je, naravno, formulu ¬𝐴potrebno najpre transformisati u konjunktivnu normalnu formu).

Elektro

nsko

izdanje(2017)

137 7. Iskazna logika

Pitanja i zadaci

Pitanje 7.43. Kako se zove problem ispitivanja zadovoljivosti iskazne for-mule u knf obliku? Da li je ovaj problem odluciv?

Pitanje 7.44. Da li problem sat pripada klasi p?Da li problem sat pripada klasi np?Da li je problem sat np-kompletan?Da li je problem sat np-tezak?

Pitanje 7.45. U kom obliku mora da bude formula na koju se primenjujeDPLL procedura?

Pitanje 7.46. Koji odgovor vraca DPLL procedura ako ulazna formula nesadrzi nijednu klauzu?

Pitanje 7.47. Kako glasi pravilo tautology procedure DPLL?

Pitanje 7.48. Kako glasi pravilo split DPLL procedure?

Pitanje 7.49. Koja su pravila DPLL procedure primenljiva na formulu: (¬𝑎∨𝑏 ∨ 𝑐) ∧ (𝑎 ∨ 𝑏 ∨ ¬𝑐) ∧ (¬𝑎 ∨ 𝑏 ∨ ¬𝑐)?

Pitanje 7.50. Da li se moze konstruisati iskazna formula u knf formi zakoju se algoritam DPLL ne zaustavlja?

Pitanje 7.51. Koja je slozenost DPLL procedure u najgorem slucaju?

Pitanje 7.52. Da li postoje iskazne formule za koje je vreme izvrsavanjaprocedure DPLL polinomijalno u odnosu na velicinu formule?

Pitanje 7.53. Ako zelimo da DPLL procedurom ispitamo da li je iskaznaformula 𝐴 tautologija, sta treba da bude ulaz za DPLL proceduru? U kom jeonda slucaju, formula 𝐴 valjana?

Zadatak 7.21. Data je iskazna formula

((𝑎 ⇒ 𝑏) ⇒ 𝑐) ∨ (𝑏 ∧ 𝑐)

Odrediti knf date formule i ispitati njenu zadovoljivost koristeci DPLL algo-ritam.

Zadatak 7.22. Pomocu DPLL algoritma proveriti da li je sledeca formulazadovoljiva:

(𝑐 ⇒ (𝑎 ∧ 𝑏))) ⇒ (𝑎 ∧ 𝑐)

Zadatak 7.23. Pomocu DPLL algoritma proveriti da li je sledeca formulatautologija:

((𝑎 ∨ ¬𝑏) ⇒ ¬𝑐) ⇒ (¬𝑎 ∧ 𝑏 ∧ ¬𝑐)

Elektro

nsko

izdanje(2017)

7.7. Resavanje problema svodenjem na sat 138

Zadatak 7.24. Data je iskazna formula

((𝑎 ⇒ 𝑏) ⇒ 𝑐) ∨ (𝑏 ∧ 𝑐)

Ispitati njenu zadovoljivost koristeci DPLL algoritam.

Zadatak 7.25. Data je iskazna formula (𝑝 ∨ (𝑞 ∧ 𝑟)) ⇒ (𝑞 ∨ 𝑝 ∨ 𝑟). Odreditiknf date formule i ispitati njenu zadovoljivost koristeci algoritam DPLL.

Zadatak 7.26. Proveriti DPLL procedurom da li je sledeca iskazna formulavaljana.

((𝑎 ⇒ 𝑏) ⇒ (𝑏 ⇒ 𝑐)) ∧ 𝑎 ∧ ¬𝑐

Zadatak 7.27. Primenom DPLL algoritma ispitati da li su sledece formulezadovoljive:

(a) (𝑝 ⇒ 𝑟) ⇒ ((𝑞 ⇒ 𝑟) ⇒ (𝑝 ∨ 𝑞 ⇒ 𝑟))(b) ¬((𝑝 ⇒ 𝑟) ⇒ ((𝑞 ⇒ 𝑟) ⇒ (𝑝 ∨ 𝑞 ⇒ 𝑟)))

Zadatak 7.28. Primenom DPLL algoritma ispitati da li je formula (𝑝∨¬𝑞∨¬𝑟)∧(¬𝑝∨𝑞∨¬𝑟)∧(𝑝∨¬𝑞∨𝑟) zadovoljiva, tautologija, poreciva, kontradikcija.

7.7 Resavanje problema svodenjem na sat

Mnogi prakticni problemi mogu se resiti koriscenjem iskazne logike. Obicnoje postupak resavanja ovakav:

� elementarni iskazi (tvrdnje) koji figurisu u opisu problema, predstavljajuse iskaznim promenljivim (u duhu nekog kodiranja);

� uslovi problema se predstavljaju iskaznim formulama nad tim iskaznimpromenljivim;

� konjunkcija tih iskaznih formula transformise se u konjunktivnu normalnuformu;

� zadovoljivost formule u konjunktivnoj normalnoj formi se ispituje sat

resavacem;

� ukoliko je formula zadovoljiva, svaki njen model daje jedno resenje pola-znog problema.

Svodenjem na sat mogu se pogodno opisati mnogi problemi nad konacnimdomenima. U nastavku ce biti pokazano kako sabiranje prirodnih brojeva, a iresavanje jednacina koje ukljucuju takvo sabiranje mogu biti svedeni na sat.

Primer 7.18. Neka su 𝑢 i 𝑣 prirodni brojevi manji od 4. Onda, ako je broj𝑢 predstavljen parom iskaznih slova (𝑝, 𝑞) (koja odgovaraju njegovim ciframau binarnom zapisu) a broj 𝑣 predstavljen parom (𝑟, 𝑠), onda je broj 𝑣 + 𝑢 (po

Elektro

nsko

izdanje(2017)

139 7. Iskazna logika

modulu 22) predstavljen parom ((𝑝∨𝑟)∨(𝑞∧𝑠), 𝑞∨𝑠) (gde ∨ oznacava ekskluzivnudisjunkciju).

Neka je zadat problem odredivanja vrednosti 𝑢, ako je poznato da je 𝑣 =2 i 𝑣 = 𝑢 + 1 (po modulu 4). Broj 1 moze se predstaviti parom (⊥,⊤) ikako je poznato da vazi 𝑣 = 2 i 𝑣 = 𝑢 + 1, onda se 𝑣 moze predstaviti i nanacin (⊤,⊥) i na nacin ((𝑝∨⊥)∨(𝑞 ∧ ⊤), 𝑞∨⊤), i, nakon pojednostavljivanja,sa (𝑝∨𝑞,¬𝑞). Da bi se dobila formula koja odgovara zadatim uslovima i izkoje se moze dobiti vrednost broja 𝑢, formule na obe pozicije moraju da buduekvivalentne i sledeca formula mora biti zadovoljiva: ((𝑝∨𝑞) ⇔ ⊤)∧ (¬𝑞 ⇔ ⊥).Ona je zadovoljiva i ima samo jedan model. U tom modelu promenljiva 𝑝 imavrednost 0 a promenljiva 𝑞 ima vrednost 1. Dakle, nepoznata vrednost 𝑢 imabinarni zapis 01, pa je ona jednaka 1.

Resavanje problema svodenjem na sat bice ilustrovano kroz nekoliko kon-kretnih primera i nekoliko razlicitih vrsta svodenja na sat.

7.7.1 Primeri kodiranja

Retka kodiranja. U prakticnim problemima koji se resavaju svodenjem nasat, ne figurisu samo iskazne promenljive, vec cesto i celobrojne promenljive 𝑣𝑖koje mogu imati vrednosti iz nekog ogranicenog skupa. U takvim situacijimacesto se koristi retko kodiranje (eng. sparse encoding) u kojem se uvode iskaznepromeljive 𝑝𝑣,𝑖 koje su tacne ako i samo ako promenljiva 𝑣 ima vrednost 𝑖.Time se uslov da promeljiva 𝑣 ima jednu vrednost iz zadatog domena 𝐼 zadajeuslovom („uslov barem-jedna“): ⋁

𝑖∈𝐼

𝑝𝑣,𝑖

Promenljiva 𝑣 ne moze imati dve vrednosti istovremeno, sto se opisuje formulom(„uslov najvise-jedna“): ⋀

𝑖,𝑗∈𝐼,��=𝑗

¬𝑝𝑣,𝑖 ∨ ¬𝑝𝑣,𝑗

Pored uslova koji su potrebni kako bi se iskazalo da promenljiva ima (tacnojednu) vrednost iz nekog konacnog skupa, potrebno je kodirati i razne drugeuslove. Za neke uslove koji se cesto koriste, su poznati ustaljeni nacini ko-diranja koji daju specificne varijante retkog kodiranja. Direktno kodiranje(eng. direct encoding) je varijanta retkog kodiranja namenjena ogranicenjimakoja izrazavaju da se kombinacije vrednosti nekih promenljivih medusobno is-kljucuju. U toj varijanti, sve nedozvoljene kombinacije vrednosti, se opisujuformulama (tzv. „klauzama konflikta”):

¬𝑝𝑣,𝑖 ∨ ¬𝑝𝑤,𝑗

Potporno kodiranje (eng. support encoding) je varijanta retkog kodiranja na-menjena ogranicenjima oblika: ako 𝑥 ima vrednost 𝑖, onda 𝑤 mora imati neku

Elektro

nsko

izdanje(2017)

7.7. Resavanje problema svodenjem na sat 140

od vrednosti iz skupa 𝐴. Ta ogranicenja se opisuju formulama (klauzama kon-flikta) sledeceg oblika:

¬𝑝𝑣,𝑖 ∨⋁𝑗∈𝐴

𝑝𝑤,𝑗

Log kodiranje. U log kodiranju svakom bitu vrednosti numerickih prome-njivih (zapisanih u binarnoj reprezentaciji) pridruzuje se jedna iskazna pro-menljiva. U ovoj reprezentaciji ne postoji potreba za uslovima „barem-jedna“i „najvise-jedna“, jer svaka kombinacija vrednosti uvedenih iskaznih promen-ljivih daje tacno jednu vrednost odgovarajuce promenljive. Naravno, kada jebroj mogucih vrednosti numericke promenjive manji od broja mogucih vred-nosti iskaznih promenljivih koji se koriste za njeno kodiranje, neke kombinacijevrednosti iskaznih probemljivih potrebno je zabraniti dodatnim klauzama (naprimer, ako promenljiva 𝑛 moze da ima vrednosti od 0 do 6, za njeno kodiranjese koriste tri iskazne promenjive, ali se zabranjuje njihova kombinacija kojadaje vrednost 7).

I u log kodiranju, moguce je izraziti uslove koje u slucaju retkih kodira-nja izrazavaju direktno i potporno kodiranje, ali zbog prirode log kodiranja,te uslove potrebno je zadati nad binarnim kombinacijama koje predstavljajuvrednosti numerickih promenljivih. Na primer, neka promenljive 𝑣 i 𝑤 uzi-maju celobrojne vrednosti od 0 do 7 i neka su kodirane iskaznim promenljivim𝑝𝑣,1, 𝑝𝑣,2, 𝑝𝑣,3, 𝑝𝑤,1, 𝑝𝑤,2 i 𝑝𝑤,3, pri cemu visi indeksi oznacavaju bitove vecetezine. Ukoliko se vrednost 3 promenljive 𝑣 uzajamno iskljucuje sa vrednoscu6 promenljive 𝑤, taj uslov se moze kodirati u terminima bitova, klauzom

¬𝑝𝑣,1 ∨ ¬𝑝𝑣,2 ∨ 𝑝𝑣,3 ∨ 𝑝𝑤,1 ∨ ¬𝑝𝑤,2 ∨ ¬𝑝𝑤,3.

Primer 7.19. Zadatak je obojiti dve kuce (neka su oznacene sa 𝑣 i 𝑤) pojednom od tri raspolozive boje (neka su oznacene brojevima 1, 2, 3), ali takoda su obojene razlicito.

U retkim kodiranjima problema, bice potrebni „barem jedna“ uslovi𝑝𝑣,1 ∨ 𝑝𝑣,2 ∨ 𝑝𝑣,3𝑝𝑤,1 ∨ 𝑝𝑤,2 ∨ 𝑝𝑤,3

i „najvise jedna“ uslovi:¬𝑝𝑣,1 ∨ ¬𝑝𝑣,2¬𝑝𝑣,1 ∨ ¬𝑝𝑣,3¬𝑝𝑣,2 ∨ ¬𝑝𝑣,3¬𝑝𝑤,1 ∨ ¬𝑝𝑤,2

¬𝑝𝑤,1 ∨ ¬𝑝𝑤,3

¬𝑝𝑤,2 ∨ ¬𝑝𝑤,3

Dodatno, u direktnom kodiranju bice opisan i uslov da nisu obe kuce obojeneistom bojom (klauze konflikta):

¬𝑝𝑣,1 ∨ ¬𝑝𝑤,1

¬𝑝𝑣,2 ∨ ¬𝑝𝑤,2

¬𝑝𝑣,3 ∨ ¬𝑝𝑤,3

Elektro

nsko

izdanje(2017)

141 7. Iskazna logika

U potpornom kodiranju, klauze konflikta se zadaju na sledeci nacin:¬𝑝𝑣,1 ∨ (𝑝𝑤,2 ∨ 𝑝𝑤,3)¬𝑝𝑣,2 ∨ (𝑝𝑤,1 ∨ 𝑝𝑤,3)¬𝑝𝑣,3 ∨ (𝑝𝑤,1 ∨ 𝑝𝑤,2)¬𝑝𝑤,1 ∨ (𝑝𝑣,2 ∨ 𝑝𝑣,3)¬𝑝𝑤,2 ∨ (𝑝𝑣,1 ∨ 𝑝𝑣,3)¬𝑝𝑤,3 ∨ (𝑝𝑣,1 ∨ 𝑝𝑣,2)Pazljivom analizom moze se pokazati na poslednje tri navedene klauze nisu

potrebne.U log kodiranju, promenljive 𝑝𝑣,1, 𝑝𝑣,2 oznacavaju cifre binarnog zapisa boje

koja odgovara kuci 𝑣, a 𝑝𝑤,1, 𝑝𝑤,2 oznacavaju cifre binarnog zapisa boje kojaodgovara kuci 𝑤 (cifri 0 neka odgovara vrednost netacno, a cifri 1 neka odgovaravrednost tacno). Najveci indeks boje je 3, pa zato postoje uslovi:

¬𝑝𝑣,1 ∨ ¬𝑝𝑣,2¬𝑝𝑤,1 ∨ ¬𝑝𝑤,2

Klauze konflikta su sledece klauze:𝑝𝑣,1 ∨ 𝑝𝑤,1 ∨ 𝑝𝑣,2 ∨ 𝑝𝑤,2

¬𝑝𝑣,1 ∨ 𝑝𝑤,1 ∨ ¬𝑝𝑣,2 ∨ 𝑝𝑤,2

𝑝𝑣,1 ∨ ¬𝑝𝑤,1 ∨ 𝑝𝑣,2 ∨ ¬𝑝𝑤,2

7.7.2 Problem 𝑛 dama

Za svako konkretno 𝑛, analogno kao u slucaju 𝑛 = 3, problem 𝑛 damamoze se resiti koriscenjem iskazne logike. Primenimo kodiranje u stilu retkogkodiranja: neka svakom (𝑖, 𝑗) polju sahovske table odgovara jedna iskazna pro-menljiva 𝑝𝑖𝑗 (1 ≤ 𝑖, 𝑗 ≤ 8). Neka promenljiva 𝑝𝑖𝑗 ima vrednost 1 ako je napolju (𝑖, 𝑗) neka dama, a 0 inace.

8 0ZQZ0Z0Z7 Z0Z0ZQZ06 0Z0L0Z0Z5 ZQZ0Z0Z04 0Z0Z0Z0L3 Z0Z0L0Z02 0Z0Z0ZQZ1 L0Z0Z0Z0

a b c d e f g h

Zadata ogranicenja moguce je zapisati kao iskazne formule i ispitivanjemzadovoljivosti njihove konjunkcije ispituje se da li je moguce dame rasporeditina opisani nacin. Ogranicenja se mogu, koriscenjem direktnog kodiranja opisatina sledeci nacin:

Elektro

nsko

izdanje(2017)

7.7. Resavanje problema svodenjem na sat 142

1. u svakoj koloni mora da bude barem jedna dama:⋁𝑖=1,...,𝑛 𝑝𝑗𝑖, za 1 ≤ 𝑗 ≤ 𝑛;

2. u svakoj koloni mora da bude najvise jedna dama:⋀𝑖=1,...,𝑛−1;𝑗=𝑖+1,...,𝑛 ¬𝑝𝑘𝑖 ∨ ¬𝑝𝑘𝑗 , za 1 ≤ 𝑘 ≤ 𝑛;

3. u svakoj vrsti mora da bude najvise jedna dama:⋀𝑖=1,...,𝑛−1;𝑗=𝑖+1,...,𝑛 ¬𝑝𝑖𝑘 ∨ ¬𝑝𝑗𝑘, za 1 ≤ 𝑘 ≤ 𝑛;

4. nema dama koje se napadaju dijagonalno:⋀𝑖=1,...,𝑛;𝑗=1,...,𝑛;𝑘=1,...,𝑛;𝑙=1,...,𝑛; ¬𝑝𝑖𝑗 ∨ ¬𝑝𝑘𝑙, za |𝑘 − 𝑖| = |𝑙 − 𝑗|;

Kako prva dva skupa uslova obezbeduju da ima ukupno 𝑛 dama, a trecida u svakoj vrsti ima najvise jedna dama, nije potrebno zadavati uslov da usvakoj vrsti mora da bude barem jedna dama.

Konjunkcija navedenih uslova daje formulu koja opisuje zadati problem.Ona je vec u konjunktivnoj normalnoj formi i njena zadovoljivost moze bitiispitana nekim sat resavacem. Na primer, za 𝑛 = 8, formula ima 92 modela isvaki od njih daje po jedno rasporedivanje dama koje ispunjava date uslove.

7.7.3 Rasporedivanje sportskih utakmica

Iskazna logika cesto se koristi u problemima rasporedivanja. Jedan od ta-kvih problema je rasporedivanje sportskih utakmica. Pretpostavicemo da sekoristi kruzni sistem takmicenja po principu „igra svako sa svakim“ koji sekarakterise sledecim uslovima:

1. Postoji 𝑛 timova (𝑛 je paran broj) i svaka dva tima jednom igraju jedanprotiv drugog.

2. Sezona traje 𝑛− 1 nedelja.

3. Svaki tim u svakoj nedelji igra jednu utakmicu.

4. Postoji 𝑛/2 terena i svake nedelje na svakom terenu igra se jedna utak-mica.

5. Nijedan tim ne igra vise od dva puta na istom terenu.

Neka su timovi oznaceni brojevima od 1 do 10. Primer ispravnog rasporedaje dat u tabeli 7.2.

Tvrdenje relevatno za sastavljanje rasporeda je da „tim 𝑘1 igra protiv tima𝑘2 na terenu 𝑖 u nedelji 𝑗“. Kako je u nekim ogranicenjima potrebno izrazavatise o pojedinacnim timovima, a ne samo o parovima, ovo tvrdenje nece bitipredstavljeno jednom promenljivom, nego dvema. Promenljiva 𝑝1𝑘𝑖𝑗 oznacava daim 𝑘 igra (protiv nekog tima) na terenu 𝑖 u nedelji 𝑗 i analogno za promenljivu𝑝2𝑘𝑖𝑗 . Stoga, skup promenljivih je:

Elektro

nsko

izdanje(2017)

143 7. Iskazna logika

Teren/nedelja 1 2 3 4 5 6 7 8 9

1 6-9 4-6 1-8 4-10 2-8 7-9 5-7 1-2 3-52 2-3 1-5 2-4 1-7 9-10 8-10 3-6 4-9 6-83 5-10 2-7 3-9 5-9 1-3 1-6 4-8 6-10 4-74 1-4 8-9 5-6 3-8 6-7 2-5 1-10 3-7 2-105 7-8 3-10 7-10 2-6 4-5 3-4 2-9 5-8 1-9

Tabela 7.2: Primer ispravnog rasporeda za 10 timova.

{𝑝1𝑘𝑖𝑗 | 1 ≤ 𝑖 ≤ 𝑛/2, 1 ≤ 𝑗 ≤ 𝑛− 1, 1 ≤ 𝑘 ≤ 𝑛− 1}∪{𝑝2𝑘𝑖𝑗 | 1 ≤ 𝑖 ≤ 𝑛/2, 1 ≤ 𝑗 ≤ 𝑛− 1, 2 ≤ 𝑘 ≤ 𝑛}

Ukupno se koristi 𝑛(𝑛 − 1)2 promenljivih. Raspored cini skup parova(𝑝1𝑘1

𝑖𝑗 , 𝑝2𝑘2𝑖𝑗 ) koji izrazava prethodno navedeno tvrdenje. Nije bitan poredak

timova u parovima koji igraju utakmice, pa se uvodi dogovor da za svaki odovih parova vazi 𝑘1 < 𝑘2. Ogranicenja se izrazavaju formulom koja predsta-vlja konjunkciju sledecih klauza (razvrstanih po ulogama). U svakoj grupiogranicenja podrazumeva se da indeksi uzimaju sve vrednosti dozvoljene nave-denim uslovima, a za koje postoje odgovarajuce promenljive.

1. Svake nedelje na svakom terenu se odrzava utakmica.

𝑝11𝑖𝑗 ∨ . . . ∨ 𝑝1𝑛−1𝑖𝑗

𝑝22𝑖𝑗 ∨ . . . ∨ 𝑝2𝑛𝑖𝑗

2. Za svaku utakmicu vazi 𝑘1 < 𝑘2.

¬𝑝1𝑘1𝑖𝑗 ∨ ¬𝑝2𝑘2

𝑖𝑗

za sve 𝑘1 ≥ 𝑘2.

3. Bilo koje nedelje nijedan tim ne igra vise od jedne utakmice.

¬𝑝𝑟1𝑘𝑖1𝑗∨ ¬𝑝𝑟2𝑘𝑖2𝑗

pod uslovom da ne vazi 𝑟1 = 𝑟2 i 𝑖1 = 𝑖2.

4. Dva razlicita tima se sastaju najvise jednom.

¬𝑝1𝑘1𝑖1𝑗1

∨ ¬𝑝2𝑘2𝑖1𝑗1

∨ ¬𝑝1𝑘1𝑖2𝑗2

∨ ¬𝑝2𝑘2𝑖2𝑗2

pod uslovima 𝑗1 = 𝑗2 i 𝑘1 < 𝑘2.

5. Nijedan tim ne igra vise od dva puta na istom terenu.

¬𝑝𝑟1𝑘𝑖𝑗1∨ ¬𝑝𝑟2𝑘𝑖𝑗2

∨ ¬𝑝𝑟3𝑘𝑖𝑗3

pod uslovima 𝑗1 = 𝑗2, 𝑗1 = 𝑗3 i 𝑗2 = 𝑗3.

Ukupan broj klauza u formuli je reda 𝑂(𝑛6).

Elektro

nsko

izdanje(2017)

7.7. Resavanje problema svodenjem na sat 144

7.7.4 Provera ekvivalentnosti kombinatornih kola

Iskazna logika ima primene u automatizaciji dizajna elektronskih kola, kojeukljucuju simulaciju, minimizaciju i verifikaciju dizajna kola. Vrsta elektron-skih kola koja je najpogodnija za primenu metoda iskazne logike su kombina-torna kola — mreze povezanih logickih elemenata kod kojih vrednosti izlazazavise iskljucivo od vrednosti ulaza. Logicki elementi predstavljaju elektronskeimplementacije logickih veznika. Takode, navedeno svojstvo vazi i za istini-tosne vrednosti iskaznih formula — za datu formulu, one zavise iskljucivo odvrednosti koje valuacija dodeljuje iskaznim promenljivim u toj formuli.

Jedan problem verifikacije hardvera koji je u vezi sa prethodno uocenomanalogijom je provera ekvivalentnosti kombinatornih kola. Dva logicka kola suekvivalentna ukoliko za sve kombinacije vrednosti na svojim ulazima, daju isteizlaze.

Ova vrsta verifikacije je korisna u sledecem kontekstu. Kombinatorna kolamogu biti vrlo slozena i dizajniraju se u alatima koji podrzavaju neki od jezikaza opis hardvera kao sto su Verilog ili VHDL. Pre nego sto se na osnovu krei-ranog dizajna pristupi fizickoj implementaciji logickog kola, taj dizajn prolazikroz niz transformacija kojima se vrse optimizacije kola kako bi se ustedelo nanjegovoj povrsini, brzini i slicno. Svaki od koraka ovog postupka moze biti vrloslozen i iako alogoritmi na kojima pomenute transformacije pocivaju garantujuodrzanje korektnosti, usled slozenosti softvera u kojem su ti algoritmi imple-mentirani, uvek postoji mogucnost da je u nekom koraku napravljena greskai da finalni, optimizovani, dizajn kola vise nije ekvivalentan polaznom. Zbogtoga je pre fizicke izrade logickog kola potrebno proveriti ekvivalentnost pola-znog i finalnog dizajna kola. Treba primetiti da ustanovljena ekvivalentnostne garantuje funkcionalnu korektnost kola — to da ono zaista radi ono sto bitrebalo. Medutim, i to je moguce ustanoviti proverom ekvivalentosti sa kolomza koje je poznato da je funkcionalno korektno, ukoliko takvo kolo postoji.

Provera ekvivalentnosti kombinatornih kola se vrsi tako sto se svakom kolupridruzi iskazna formula koja odgovara njegovom dizajnu. Neka su to formule 𝐴i 𝐵. Ukoliko su kola ekvivalentna, za sve kombinacije vrednosti ulaza, vredno-sti izlaza su iste. U terminima iskaznih formula, za svaku valuaciju 𝑣, mora davazi vazi 𝐼𝑣(𝐴) = 𝐼𝑣(𝐵). Odnosno, formula 𝐴 ⇔ 𝐵 mora biti tautologija, a for-mula ¬(𝐴 ⇔ 𝐵) nezadovoljiva. Zadovoljivost iskazne formule se moze proveritipomocu sat-resavaca. Ukoliko resavac ustanovi da je formula nezadovoljiva,kola su ekvivalentna, a ukoliko ustanovi da postoji zadovoljavajuca valuacija,ta valuacija predstavlja vrednosti ulaza za koje se izlazi kola razlikuju, sto mozeposluziti kao polazna tacka u otklanjanju greske.

Postupak provere ekvivalentnosti cemo prikazati na primeru sabiraca. Re-cimo da je optimizovanjem prvog kola na slici 7.5, dobijeno drugo. Na osnovudizajna, za svaki od izlaza moze se formirati iskazna formula koja mu odgovara:

𝑍 = (¬𝐴∧𝐵∧¬𝑃 )∨(𝐴∧¬𝐵∧¬𝑃 )∨(¬𝐴∧¬𝐵∧𝑃 )∨(¬𝐴∧¬𝐵∧𝑃 )∨(𝐴∧𝐵∧𝐶)

𝑄 = (𝐴 ∧𝐵) ∨ (𝐵 ∧ 𝑃 ) ∨ (𝐴 ∧ 𝑃 )

Elektro

nsko

izdanje(2017)

145 7. Iskazna logika

𝐴 𝐵 𝑃

𝑄

𝑍

𝐴𝐵

𝑃

𝑄′

𝑍′

Slika 7.5: Osnovni i optimizovani dizajn sabiraca

𝑍 ′ = (𝐴∨𝐵)∨𝑃

𝑄′ = (𝐴 ∧𝐵) ∨ (𝐴∨𝐵) ∧ 𝑃

Kola su ekvivalentna ukoliko je formula ¬((𝑍 ⇔ 𝑍 ′)∧ (𝑄 ⇔ 𝑄′)) nezadovo-ljiva. Treba imati u vidu da formule koje se dobijaju iz ovakvih primena moguimati i desetine hiljada pa i stotine hiljada promenljivih, ali da sat-resavaciipak uspevaju da provere njihovu zadovoljivost zahvaljujuci pravilnostima kojesu prisutne u tim formulama, a koje sat-resavaci u toku rada mogu mogu danauce i iskoriste.

7.7.5 Ogranicena provera modela

Jedna od najkoriscenijih tehnika u verifikaciji hardvera i softvera je ogranicenaprovera modela. Funkcionisanje hardvera ili softvera se moze apstraktno opi-sati konacnim automatima cija stanja opisuju stanja sistema koji se izucava,a grane moguce prelaske sistema iz stanja u stanje. Ovaj konacni automatsmatra se modelom sistema koji se analizira. Jedan od ciljeva verifikacije jedokazivanje da sistem zadovoljava odredena svojstva, na primer, da nikad necedoci u stanje koje predstavlja gresku ili bezbednosni rizik. Primer takvog svoj-stva je za sistem koji treba da pruzi neki odgovor na zadati zahtev, nakonstanja u kojem je primljen zahtev, sistem ce sigurno doci neko stanje u kojemtaj ce trazeni odgovor biti dat. Dokazivanje tvrdnji poput ovih, koje se na-

Elektro

nsko

izdanje(2017)

7.7. Resavanje problema svodenjem na sat 146

𝐶𝐿𝑂𝐶𝐾

𝐷

𝐷

𝑝1

𝑝0

Slika 7.6: Dizajn brojaca koji broji od 0 do 2

𝑝𝑖1 𝑝𝑖0 𝑝𝑖+11 𝑝𝑖+1

0

0 0 0 10 1 1 01 0 0 01 1 1 0

Tabela 7.3: Tablica prelaska brojaca koji broji od 0 do 2

ziva proverom modela, moze predstavljati problem koji nije odluciv. Stoga seu praksi obicno koristi ogranicena provera modela koja se svodi na dokazivanjeda neko svojstvo vazi u svim stanjima u koja se iz polaznog stanja moze dospetiu najvise 𝑘 prelaza.

Kako bi se sprovela tehnika ogranicene provere modela, potrebno je uocitikako se stanja mogu modelovati iskaznim promenljivim, a potom iskaznim for-mulama nad tim promenljivim zapisati zeljeno svojstvo, polazne pretpostavkei nacin na koji se promenljive menjaju prilikom prelaska iz stanja u stanje.

Ogranicenu proveru modela cemo ilustrovati na primeru dvobitnog brojacakoji broji u krug od 0 do 2, kao sto je brojac na slici 7.6. Njegova tablicaprelaska je data tabelom 7.3.

Cilj je dokazati da ako brojac zapocne brojanje od bilo kog broja koji nije3, onda nikada nece doci do broja 3. Stanje u trenutku 𝑖 se opisuje pomocudva bita 𝑝𝑖0 i 𝑝𝑖1. Zeljeno svojstvo se opisuje formulm ¬𝑝𝑖0 ∨ ¬𝑝𝑖1. Uslov kojivazi u polaznom stanju je ¬𝑝00 ∨ ¬𝑝01. Iz tablice prelaska se vidi da za svakadva susedna stanja vaze metaformule 𝑝𝑖+1

0 = ¬𝑝𝑖0 ∧ ¬𝑝𝑖1 i 𝑝𝑖+11 = 𝑝𝑖0. Da bi

se pokazalo da stanje 𝑘 ne odgovara broju 3, treba ustanoviti da je sledecaformula nezadovoljiva:

(¬𝑝00 ∨ ¬𝑝01)∧ (𝑝10 ⇔ ¬𝑝00∧ ¬𝑝01) ∧ (𝑝11 ⇔ 𝑝00)∧ . . . ∧ (𝑝𝑘0 ⇔ ¬𝑝𝑘−10 ∧ ¬𝑝𝑘−1

1 )∧(𝑝𝑘1 ⇔ 𝑝𝑘−1

0 )∧ (¬𝑝𝑘0 ∨ ¬𝑝𝑘1)

Prvi konjunkt u gornjoj konjunkciji predstavlja polazni uslov, potom sledepo dva konjunkta koji opisuju prelaske izmedu susednih stanja, a poslednji

Elektro

nsko

izdanje(2017)

147 7. Iskazna logika

konjunkt izrazava zeljeno svojstvo u poslednjem stanju. Zeljeno svojstvo jemoglo biti formulisano i za sva prethodna stanja, a odgovarajuce formule bibile dodate u konjunkciju. Ukoliko je formula zadovoljiva za neko 𝑘, to znacida postoji putanja od polaznog stanja kojom se moze doci do stanja koje nezadovoljava trazeno svojstvo. U opstem slucaju dobijena valuacija odredujestanja preko kojih se moze doci do problematicnog stanja, sto moze pomoci upronalazenju greske u analiziranom sistemu.

7.7.6 SAT-resavaci i dimacs-cnf format

Programe koji resavaju instance sat problema zovemo sat-resavaci (eng. sat-solvers). Vecina savremenih sat-resavaca zasnovana je na DPLL proceduri, alije obogacena mnogim tehnikama i heuristikama. Neki od popularnih sat-resavaca su MiniSAT, PicoSAT i zChaff.

sat-resavaci obicno ocekuju ulaz u dimacs-cnf formatu. U ovom formatu,prvi red sadrzi informaciju o broju iskaznih promenljivih i broju klauza, anaredni redovi sadrze zapis po jedne klauze. Promenljive su oznacene rednimbrojevima, negirane promenljive odgovarajucim negativnim brojevima i svakired zavrsava se brojem 0. Na primer,

p cnf 3 2

1 -3 0

-1 2 3 0

reprezentuje formulu (sa tri promenljive i dve klauze): (𝑝1∨¬𝑝3)(¬𝑝2∨𝑝2∨𝑝3).

Pitanja i zadaci

Zadatak 7.29. Dva 2-bitna broja se sabiraju i daju rezultat 3. PrimenomDPLL procedure naci dva takva broja.

Zadatak 7.30. Zapisati formulu koja opisuje uslov da se u svakoj vrsti tableza igru oblika 2 × 2 polja moze postaviti tacno jedan zeton i proveriti njenuzadovoljivost DPLL procedurom.

Zadatak 7.31. Robot treba da rasporedi dva objekta u dve kutije. Pri tomene sme oba objekta da stavi u istu kutiju. U vidu iskazne formule zapisatiuslove koji definisu dopustive rasporede. Objasniti sta znaci koje iskazno slovo.Pomocu DPLL procedure naci neki dopustiv raspored.

Zadatak 7.32. Na tabli 2 × 2 postavljaju se zetoni. U iskaznoj logici zapi-sati uslov da na bar jednoj dijagonali moraju biti postavljena bar dva zetona.Pomocu DPLL algoritma ispitati zadovoljivost ove formule i navesti neki mo-del koji ovaj algoritam daje. Sta daje dobijeni model?

Zadatak 7.33. U iskaznoj logici

Elektro

nsko

izdanje(2017)

7.7. Resavanje problema svodenjem na sat 148

1. zapisati uslov da bitovi 3-bitnog broja moraju biti jednaki i

2. DPLL procedurom proveriti da li takav broj postoji i ako postoji, naciprimer.

Zadatak 7.34. U iskaznoj logici zapisati uslov da je 4-bitna reprezentacijabroja palindrom, ali da nisu svi bitovi isti. DPLL procedurom proveriti da lipostoji takav broj i ako postoji dati primer.

Zadatak 7.35. Tri polja se boje crvenom ili plavom bojom. Ukoliko je prvopolje crveno, druga dva moraju biti iste boje. Ukoliko je drugo polje crveno,trece mora biti plavo. Zapisati date uslove u iskaznoj logici i DPLL proceduromproveriti da li je moguce polja obojiti u skladu sa ovim pravilima. Ukoliko jestenaci primer takvog bojenja.

Zadatak 7.36. Temena trougla se boje pomocu dve boje. Pri tom, ni jedanpar temena ne moze imati istu boju. Zapisati date uslove u iskaznoj logici iDPLL procedurom proveriti da li je moguce temena obojiti u skaldu sa datimpravilima. Ukoliko jeste, naci primer takvog bojenja na osnovu rada DPLLprocedure.

Zadatak 7.37. Za kolo dato na slici, DPLL procedurom proveriti da li mozeda da izlaz 1 i ukoliko je to moguce, naci kombinaciju vrednosti na ulazimaza koju je to slucaj.

Zadatak 7.38. Koristeci direct encoding zapisati sledece uslove:𝐴,𝐵,𝐶 ∈ 4, 5𝐴 i 𝐵 ne smeju biti jednaki𝐶 mora biti vece od 𝐵

Zadatak 7.39. Tabela 2× 2 se boji crvenom ili plavom bojom. Ako je polje(1,1) ofarbano crvenom bojom onda barem jedno od ostalih polja mora bitiplavo. Ako je polje (2,2) ofarbano plavom bojom onda barem dva ostala poljamoraju biti crvena. Ne smeju sva polja biti ofarbana istom bojom. Zapisatidate uslove u iskaznoj logici i DPLL procedurom proveriti da li je moguce poljaobojiti u skladu sa ovim pravilima. Ukoliko jeste naci primer takvog bojenja.(polja oznacavamo sa (1,1) (1,2) (2,1) i (2,2)).

Zadatak 7.40. Tabela 2× 2 se boji crvenom ili plavom bojom. Ako je poljeB plave boje, polje C je crvene boje. A i D su razlicite boje. Ako je B crveneboje, A je isto crvene boje. DPLL procedurom naci jedan primer bojenja.

A BC D

Elektro

nsko

izdanje(2017)

149 7. Iskazna logika

Zadatak 7.41.√

Svaki stanovnik jedne drzave ili uvek laze ili uvek govoriistinu i na svako pitanje odgovara uvek samo sa da ili ne. Neki turista dolazina raskrsnicu u toj drzavi i zna da samo jedan od dva puta vodi do glavnoggrada. Ne postoji znak koji pokazuje koji je to put, ali postoji mestanin 𝑅koji stoji na raskrsnici. Koje da-ili-ne pitanje treba turista da postavi da biodredio kojim putem da krene?

Zadatak 7.42.√

Modelovanja jednog problema bice prikazano na primerujednostavne igre - Vumpus. Igra se igra na tabli od 4×4 polja koja predstavljaunutrasnjost pecine. U pecini zivi cudoviste Vumpus i nalazi se na jednom odpolja. Na nekima od polja mogu se nalaziti provalije, a na jednom je zlato.U pecini je mrak pa igrac unapred ne zna sadrzaj nijednog polja. Igrac se napocetku nalazi na jednom polju i njegov zadatak je da otkrije na kojem poljuje zlato. Na poljima oko provalija se oseca povetarac. Kako se Vumpus nekupa, na poljima oko njega oseca se smrad. Ako igrac stane na polje na komese nalazi provalija ili Vumpus, on strada i igra je zavrsena. Igrac ima jednustrelu koju moze odapeti na susedno polje kako bi ubio Vumpusa. Igrac je napocetnom polju (1,1). Primer table je prikazan na narednoj slici.

Elektro

nsko

izdanje(2017)

Elektro

nsko

izdanje(2017)

Glava 8

Logika prvog reda

Logika prvog reda, predikatska logika, znatno je izrazajnija od iskazne lo-gike. Osnovna novina u odnosu na iskaznu logiku je uvodenje kvantifikovanja,univerzalnog i egzistencijalnog. Zahvaljujuci kvantifikatorima, u logici prvogreda mogu se formulisati tvrdenja koja nije moguce formulisati na jeziku iskaznelogike. U logici prvog reda dozvoljeno je samo kvantifikovanje promenljivih.1

U okviru logike prvog reda mogu se opisati mnoge matematicke teorije.

Kao i iskazna logika, logika prvog reda ima tri aspekta: svoju sintaksu (ilijezik), svoju semantiku (ili znacenje iskaza) i svoje deduktivne sisteme (sistemeza dokazivanje teorema). I semantika i deduktivni sistemi grade se nad istodefinisanom sintaksom, tj. nad istim skupom formula.

Kao i u iskaznoj logici, centralni problemi u predikatskoj logici su ispitivanjeda li je data formula valjana i da li je data formula zadovoljiva. Za razliku odiskazne logike, ovi problemi nisu odlucivi, te ne postoje efektivni algoritmi zanjihovo resavanje. No, problem ispitivanja valjanosti za predikatsku logiku jepoluodluciv, pa postoje metode koje za svaku valjanu formulu mogu da dokazuda je ona valjana (a ne mogu za bilo koju formulu koja nije valjana da utvrdeda nije valjana).

Postoji vise metoda i pristupa za ispitivanje i dokazivanje valjanosti i za-dovoljivosti. Neki od njih su semanticke, a neki deduktivne (tj. sintaksicko-deduktivne) prirode. Kljucna veza izmedu ova dva koncepta je tvrdenje da jeformula valjana (sto je semanticka kategorija) ako i samo ako je ona teorema(sto je deduktivna kategorija). Zahvaljujuci ovoj vezi, sintaksa predikatske lo-gike (jezik predikatske logike), njena semantika (konvencije o znacenju formula)i njena deduktivna svojstva cine kompaktnu celinu.

1U logici viseg reda predikati i funkcije kao argumente mogu imati druge predikate ifunkcije i dozvoljeno je njihovo kvantifikovanje. Na primer, u logici drugog reda predikati ifunkcije mogu za argumente imati predikate i funkcije prvog reda i mogu biti kvantifikovani.Predikati i funkcije reda 𝑛 mogu za argumente imati predikate i funkcije 𝑛− 1 reda i mogubiti kvantifikovani.

151

Elektro

nsko

izdanje(2017)

152

Logika prvog reda je izrazajnija od iskazne logike i njenim sredstvima mozese opisati jos vise prakticnih problema. Za neke probleme (nad konacnim dome-nima) pogodnije je resavanje koriscenjem iskazne logike, ali za neke je opisivanjei resavanje znatno lakse koriscenjem predikatske logike.

Primer 8.1. Razmotrimo jednu (jednostavnu varijantu) problema slaganja blo-kova: blokovi (oznaceni slovima) poredani su jedan na drugi. Za neke se znada li su ispod ili iznad nekog drugog bloka, ali nije zadata potpuna informacijao poretku svih blokova (ovaj problem moze se razmatrati i kao problem muzickihkompakt diskova poredanih na jednom stapu).

𝐶

𝐴

𝐵

Slika 8.1: Ilustracija za problem uredenja tri bloka

Pretpostavimo da su nekako naslagana tri bloka 𝐴, 𝐵 i 𝐶 i da je poznato daje 𝐵 iznad 𝐴, a da je 𝐶 ispod 𝐴. Pitanje je da li je 𝐵 iznad ili ispod 𝐶. Opisaniproblem mozemo opisati u terminima iskazne logike: iskazna promenljiva 𝑎𝐴𝐵

moze da oznacava da je 𝐴 iznad 𝐵, 𝑎𝐴𝐶 da je 𝐴 iznad 𝐶, 𝑎𝐵𝐴 da je 𝐵 iznad 𝐴,𝑏𝐵𝐶 da je 𝐵 ispod 𝐶, itd. Potrebno je za svaka dva bloka obezbediti da vazi daako je prvi iznad drugog, onda drugi nije iznad prvog, odnosno: 𝑎𝐴𝐵 ⇒ ¬𝑎𝐵𝐴.Potrebno je za svaka dva bloka obezbediti da vazi da ako je prvi iznad drugog,onda je drugi ispod prvog i obratno, odnosno: 𝑎𝐴𝐵 ⇔ 𝑏𝐵𝐴. Potrebno je zasvaka tri bloka obezbediti da vazi: ako je prvi iznad drugog i drugi iznad treceg,onda je prvi iznad treceg, odnosno: 𝑎𝐴𝐵 ∧ 𝑎𝐵𝐶 ⇒ 𝑎𝐴𝐶 . Ako postoje tri bloka,onda ovakvih uslova ima 3! = 6, a ako ih ima 𝑛, onda tih uslova ima 6

(𝑛3

).

Dakle, iako jeste moguce, kodiranje u terminima iskazne logike moze da buderogobatno i prostorno veoma zahtevno. Bilo bi dobro ako bismo umesto 6

(𝑛3

)uslova mogli da koristimo samo jedan: „za svaka tri bloka 𝑋, 𝑌 , 𝑍 vazi: akoje 𝑎𝑋𝑌 i 𝑎𝑌 𝑍 onda je 𝑎𝑋𝑍 .“ Logika prvog reda daje takvu mogucnost i zadatiproblem mogao bi da se elegantno opise sledecim uslovima, pri cemu se nekoriste iskazne promenljive poput 𝑎𝐴𝐵 nego atomicke formule sa argumentimapoput 𝑎(𝐴,𝐵) i 𝑏(𝐴,𝐵), pri cemu 𝑎(𝐴,𝐵) oznacava da je 𝐴 iznad 𝐵, a 𝑏(𝐴,𝐵)oznacava da je 𝐴 ispod 𝐵:

� „za svaka dva bloka 𝑥, 𝑦 vazi: ako je 𝑎(𝑥, 𝑦) onda nije 𝑎(𝑦, 𝑥).“

� „za svaka dva bloka 𝑥, 𝑦 vazi: 𝑎(𝑥, 𝑦) ako i samo ako 𝑏(𝑦, 𝑥).“

Elektro

nsko

izdanje(2017)

153 8. Logika prvog reda

� „za svaka tri bloka 𝑥, 𝑦, 𝑧 vazi: ako je 𝑎(𝑥, 𝑦) i 𝑎(𝑦, 𝑧) onda je 𝑎(𝑥, 𝑧).“

Za sve navedene, a i druge slicne formule, potrebno je definisati nacin nakoji im se pridruzuje vrednost tacno ili netacno. Iz navedenih uslova potrebnoje za proizvoljna tri bloka 𝑥, 𝑦, 𝑧, iz pretpostavke da vazi 𝑎(𝑦, 𝑥) i 𝑏(𝑧, 𝑥) izvestizakljucak 𝑎(𝑦, 𝑧) ili 𝑎(𝑧, 𝑦).

8.1 Sintaksa logike prvog reda

Sintaksicki aspekt logike prvog reda govori o njenom jeziku— o skupu njenihispravnih formula i ne razmatra njihovo (moguce) znacenje.

Definicija 8.1 (Jezik i signatura prvog reda). Jezik prvog reda definisese za

� Logicki (ili opsti) deo jezika prvog reda koji cine skupovi: fiksi-ran, prebrojiv skup promenljivih 𝑉 , dve logicke konstante — tacno inetacno, konacan skup osnovnih logickih veznika: unarnog — nega-cija i binarnih — konjunkcija, disjunkcija, implikacija, ekvivalencijai dva kvantifikatora — univezalni i egzistencijalni.

� Nelogicki deo jezika prvog reda koji cine skupovi: (najvise prebro-jiv) skup funkcijskih simbola (sa fiksiranim nenegativnim arnostima),(najvise prebrojiv) skup predikatskih (relacijskih) simbola (sa fiksira-nim nenegativnim arnostima).

Skupovi funkcijskih i predikatskih simbola sa svojim fiksiranim arno-stima (odredenim funkcijom 𝑎𝑟) cine signaturu.

Funkcijske simbole arnosti 0 zovemo simbolima konstanti.

Skup formula logike prvog reda ili dobro zasnovanih formula, u daljem tekstusamo skup formula nad nekom signaturom ℒ definise se na sledeci nacin.

Definicija 8.2 (Skup formula logike prvog reda). Skup formula logikeprvog reda nad signaturom ℒ ispunjava sledece uslove:

� promenljive i funkcijski simboli arnosti 0 su termovi; term je i obje-kat dobijen primenom funkcijskog simbola 𝑓 arnosti 𝑛 na termove𝑡1, . . . , 𝑡𝑛;

� atomicka formula je objekat dobijen primenom predikatskog simbola𝑝 arnosti 𝑛 na termove 𝑡1, . . . , 𝑡𝑛;

� atomicke formule su formule;

Elektro

nsko

izdanje(2017)

8.1. Sintaksa logike prvog reda 154

� ako su 𝒜 i ℬ formule, onda su formule i objekti dobijeni kombino-vanjem ovih formula logickim veznicima i kvantifikatorima (sa pro-menljivim).

Literal je atomicka formula ili negacija atomicke formule. Klauza je dis-junkcija vise literala.

U navedenoj definiciji (u duhu apstraktne sintakse) ne govori se o tomekako se zapisuju ili citaju formule logike prvog reda, vec samo o tome kako segrade na apstraktni nacin (implicitno — u vidu stabla). Konkretnom sintaksommoze se zadati nacin na koji se formule zapisuju. Analogno iskaznom slucaju,uobicajeno je da se logicke konstante tacno i netacno zapisuju kao ⊤ i ⊥ (acitaju kao te i nete), da se negacija zapisuje kao ¬, konjunkcija kao ∧, disjunk-cija kao ∨, implikacija kao ⇒, ekvivalencija kao ⇔, univerzalni kvantor kao∀, egzistencijalni kao ∃. Primenu funkcijskog simbola 𝑓 na termove 𝑡1, . . . , 𝑡𝑛zapisujemo kao 𝑓(𝑡1, . . . , 𝑡𝑛) (i analogno za predikatske simbole). U ovakvomkonkretnom zapisu (koji ce se koristiti u nastavku), analogno iskaznom slucaju,ako su 𝒜 i ℬ formule i 𝑥 element skupa 𝑉 , onda su formule i (¬𝒜), (𝒜 ∧ ℬ),(𝒜∨ℬ), ∀𝑥𝒜, ∃𝑥𝒜 i slicno. Na primer, zapis ∀𝑥𝒜 citamo „za svako 𝑥 𝒜“, zapis∃𝑥𝒜 citamo „postoji 𝑥 takvo da je 𝒜“, U ovakvom, konkretnom zapisu, neop-hodno je koristiti zagrade kako bi se izbegla visesmislenost. Da bi se izbeglokoriscenje velikog broja zagrada obicno se izostavljaju spoljne zagrade i pod-razumeva prioritet veznika kao u iskaznoj logici, uz dodatak da kvantifikatoriimaju visi prioritet od svih logickih veznika.

Termove, atomicke formule i formule nad signaturom ℒ ponekad cemo kracezvati i ℒ-termovi, ℒ-atomicke formule i ℒ-formule. Ako je signatura jasnoodredena kontekstom ili ako nije relevantna, govoricemo cesto samo termovi,atomicke formule i formule.

Uz indeks ili bez indeksa, simbole konstanti obicno (mada ne iskljucivo)oznacavamo simbolima 𝑎, 𝑏, 𝑐, . . ., funkcijske simbole arnosti vece od 0 sim-bolima 𝑓, 𝑔, ℎ, . . ., predikatske simbole simbolima 𝑝, 𝑞, 𝑟, . . ., promenljive sim-bolima 𝑥, 𝑦, 𝑧, . . ., formule simbolima 𝒜,ℬ, 𝒞, . . ., skupove formula simbolimaΓ,Δ, . . ..

Ako su dve formule 𝒜 i ℬ sintaksicki identicne (tj. ako su zapisane u kon-kretnoj sintaksi jednake kao nizovi simbola), onda to oznacavamo 𝒜 = ℬ. Usuprotnom, pisemo 𝒜 = ℬ.

Primer 8.2. Signatura za problem iz primera 8.1 je ℒ = ({}, {𝑎, 𝑏}, 𝑎𝑟), gdeje 𝑎𝑟(𝑎) = 𝑎𝑟(𝑏) = 2.

Primer 8.3. Jedan skup (aritmetickih) formula moze se opisati signaturomℒ = ({0𝑎,+𝑎, ·𝑎}, {<𝑎,=𝑎}, 𝑎𝑟), gde je 𝑎𝑟(0𝑎) = 0, 𝑎𝑟(+𝑎) = 2, 𝑎𝑟(·𝑎) = 2,𝑎𝑟(<𝑎) = 2, 𝑎𝑟(=𝑎) = 2. Neki od termova nad ovom signaturom i sku-pom promenljivih 𝑉 = {𝑥, 𝑦, 𝑧, . . .} su: 0𝑎, +𝑎(𝑥, 𝑦), a neke od formula su<𝑎 (+𝑎(𝑥, 𝑦), 𝑧), <𝑎 (𝑥, 0𝑎), ∀𝑥¬(<𝑎 (𝑥, 𝑥)), ∀𝑥(=𝑎 (𝑥,+𝑎(𝑥, 0𝑎))). Ukolikose funkcijski i predikatski simboli zapisu infiksno (umesto prefiksno), onda se

Elektro

nsko

izdanje(2017)

155 8. Logika prvog reda

navedeni termovi i formule zapisuju na sledeci nacin: 0𝑎, 𝑥+𝑎 𝑦, 𝑥+𝑎 𝑦 <𝑎 𝑧,𝑥 <𝑎 0𝑎, ∀𝑥¬(𝑥 <𝑎 𝑥), ∀𝑥(𝑥 =𝑎 (𝑥+𝑎 0𝑎)).

Predikatski simbol =𝑎 iz navedene signature ne treba mesati sa simbolom= koji se koristi za oznacavanje sintaksicki jednakosti izmedu formula (ili zajednakost celih brojeva). Slicno, funkcijski simbol 0𝑎 ne treba mesati sa brojem0 niti funkcijski simbol +𝑎 sa operacijom sabiranja, koja se obicno oznacavasimbolom +. Bas da bi se naglasila ta razlika, ovi simboli su oznaceni sa =𝑎, 0𝑎i +𝑎 umesto sa =, 0 i +. Kada bude definisano znacenje formula ovog jezika,simbolu 0𝑎 moze da bude pridruzen broj 0, ali i neki drugi element nekog drugogskupa (videti poglavlje 8.3).

Primer 8.4. Razmotrimo signaturu ℒ = ({𝑎}, {𝑝, 𝑞}, 𝑎𝑟), gde je 𝑎𝑟(𝑎) = 0,𝑎𝑟(𝑝) = 1, 𝑎𝑟(𝑞) = 1.

Neki od termova nad ovom signaturom i skupom promenljivih 𝑉 = {𝑥, 𝑦, 𝑧, . . .}su 𝑥, 𝑦, 𝑎, neke od atomickih formula su 𝑝(𝑥), 𝑞(𝑦), 𝑞(𝑎), a neke od formula(∀𝑥)(𝑝(𝑥) ⇒ 𝑞), ((∀𝑥)𝑝(𝑥)) ⇒ 𝑞).

Primer 8.5. Razmotrimo signaturu ℒ = ({𝑠𝑜𝑘𝑟𝑎𝑡}, {𝑚𝑎𝑛,𝑚𝑜𝑟𝑡𝑎𝑙}, 𝑎𝑟), gdeje 𝑎𝑟(𝑠𝑜𝑘𝑟𝑎𝑡) = 0, 𝑎𝑟(𝑚𝑎𝑛) = 1, 𝑎𝑟(𝑚𝑜𝑟𝑡𝑎𝑙) = 1. Neki od termova nad ovomsignaturom i skupom promenljivih 𝑉 = {𝑥, 𝑦, 𝑧, . . .} su: 𝑥, 𝑦, 𝑠𝑜𝑘𝑟𝑎𝑡, neke odatomickih formula su 𝑚𝑎𝑛(𝑥), 𝑚𝑜𝑟𝑡𝑎𝑙(𝑦), 𝑚𝑜𝑟𝑡𝑎𝑙(𝑠𝑜𝑘𝑟𝑎𝑡), a neke od formulasu (∀𝑥)𝑚𝑎𝑛(𝑥), (∀𝑥)(𝑚𝑎𝑛(𝑥) ⇒ 𝑚𝑜𝑟𝑡𝑎𝑙(𝑥)),

Definicija 8.3 (Slobodno i vezano pojavljivanje promenljive). U formu-lama ∀𝑥𝒜 i ∃𝑥𝒜, formula 𝒜 je doseg kvantifikatora.

Pojavljivanje promenljive 𝑥 je vezano u ∀𝑥 i ∃𝑥, kao i ako je u dosegukvantifikatora ∀𝑥 ili ∃𝑥 a inace je slobodno.

Promenljiva je vezana (slobodna) u formuli ako i samo ako ima vezano(slobodno) pojavljivanje u toj formuli.

Primetimo da promenljiva moze biti i slobodna i vezana u jednoj formuli.

Primer 8.6. U formuli 𝑝(𝑥, 𝑦), pojavljivanje promenljive 𝑥 je slobodno i onaje slobodna u ovoj formuli.

U formuli 𝑝(𝑥, 𝑦) ⇒ (∀𝑥)𝑞(𝑥) prvo pojavljivanje promenljive 𝑥 je slobodno,a drugo i trece pojavljivanje je vezano. U ovoj formuli, promenljiva 𝑥 je islobodna i vezana.

U formuli (∀𝑥)𝑝(𝑥, 𝑦) ⇒ (∀𝑥)𝑞(𝑥), sva pojavljivanja promenljive 𝑥 su vezanai promenljiva je vezana u ovoj formuli.

U sva tri primera, pojavljivanja promenljive 𝑦 su slobodna.

Cesto se naglasava da formula 𝒜 ima slobodne promenljive 𝑥1, 𝑥2, . . .,𝑥𝑛 zapisom 𝒜(𝑥1, 𝑥2, . . . , 𝑥𝑛). Ovaj zapis, medutim, ne znaci da formula 𝒜 nesadrzi jos neke slobodne promenljive, niti da promenljive 𝑥1, 𝑥2, . . ., 𝑥𝑛 nemajui neka vezana pojavljivanja u formuli 𝒜.

Elektro

nsko

izdanje(2017)

8.2. Zamena 156

Formule bez promenljivih zovu se bazne formule, a formule bez slobodnihpromenljivih zovu se zatvorene formule ili recenice. Za formulu 𝒜 kazemo da jeuniverzalno zatvorena ako je oblika (∀𝑥1)(∀𝑥2) . . . (∀𝑥𝑘)𝒜′, pri cemu 𝒜′ nemaslobodnih promenljivih osim (eventualno) promenljivih 𝑥1, 𝑥2, . . . , 𝑥𝑘. Formula𝒜 je egzistencijalno zatvorena ako je oblika (∃𝑥1)(∃𝑥2) . . . (∃𝑥𝑘)𝒜′ pri cemu𝒜′ nema slobodnih promenljivih osim (eventualno) promenljivih 𝑥1, 𝑥2, . . . , 𝑥𝑘.Ako formula 𝒜 ima kao slobodne samo promenljive 𝑥1, 𝑥2, . . . , 𝑥𝑘 onda formulu(∀𝑥1)(∀𝑥2) . . . (∀𝑥𝑘)𝒜 nazivamo univerzalnim zatvorenjem formule 𝒜. Akoformula 𝒜 ima kao slobodne samo promenljive 𝑥1, 𝑥2, . . . , 𝑥𝑘, onda formulu(∃𝑥1)(∃𝑥2) . . . (∃𝑥𝑘)𝒜 nazivamo egzistencijalnim zatvorenjem formule 𝒜.

Pitanja i zadaci

Pitanje 8.1. Kako se jos nazivaju funkcijski simboli arnosti 0?

Pitanje 8.2. Koliko ima formula logike prvog reda nad konacnim skupompredikatskih i funkcijskih simbola, a koliko nad prebrojivim skupom iskaznihpromenljivih?

Pitanje 8.3. Sta je literal u logici prvog reda?

Pitanje 8.4. Sta je klauza u logici prvog reda?

Pitanje 8.5. Sta je term u logici prvog reda?

Pitanje 8.6. Da li je u formuli ∀𝑥(𝑝(𝑥, 𝑦)∧𝑞(𝑦, 𝑧)∧𝑟(𝑧)), promenljiva 𝑥 slo-bodna ili vezana, da li je promenljiva 𝑦 slobodna ili vezana, da li je promenljiva𝑧 slobodna ili vezana?

Zadatak 8.1. Zapisati narednu recenicu u vidu formule logike prvog reda:(a) Svako voli nekoga i niko ne voli svakoga ili neko voli svakoga i neko

ne voli nikoga.(b) Mozete lagati neke ljude sve vreme i mozete lagati sve ljude neko vreme,

ali ne mozete lagati sve ljude sve vreme.

8.2 Zamena

Zamena promenljive termom definise se u logici prvog reda u istom duhu kaou iskaznoj logici, uz dva pravila koja obezbeduju, na primer, da ((∀𝑦)𝑝(𝑥, 𝑦))[𝑥 ↦→𝑦] ne bude (∀𝑦)𝑝(𝑦, 𝑦) vec (∀𝑧)𝑝(𝑦, 𝑧):

� ako je 𝑥 = 𝑦, neka je 𝑧 promenljiva koja se ne pojavljuje ni u (∀𝑦)𝒜 ni u𝑡𝑥; tada je (∀𝑦𝒜)[𝑥 ↦→ 𝑡𝑥] = (∀𝑧)𝒜[𝑦 ↦→ 𝑧][𝑥 ↦→ 𝑡𝑥];

� ako je 𝑥 = 𝑦, neka je 𝑧 promenljiva koja se ne pojavljuje ni u (∃𝑦)𝒜 ni u𝑡𝑥; tada je (∃𝑦𝒜)[𝑥 ↦→ 𝑡𝑥] = (∃𝑧)𝒜[𝑦 ↦→ 𝑧][𝑥 ↦→ 𝑡𝑥].

Elektro

nsko

izdanje(2017)

157 8. Logika prvog reda

U daljem tekstu cemo pod terminom izraz podrazumevati i termove i for-mule.

Definicija 8.4 (Zamena). Uopstena zamena (supstitucija) 𝜎 je skup za-mena [𝑥1 ↦→ 𝑡1], [𝑥2 ↦→ 𝑡2], . . ., [𝑥𝑛 ↦→ 𝑡𝑛] gde su 𝑥𝑖 promenljive i 𝑡𝑖 suproizvoljni termovi i gde je 𝑥𝑖 = 𝑥𝑗 za 𝑖 = 𝑗. Takvu zamenu zapisujemokrace [𝑥1 ↦→ 𝑡1, 𝑥2 ↦→ 𝑡2, . . . , 𝑥𝑛 ↦→ 𝑡𝑛].

Uopstena zamena primenjuje se simultano na sva pojavljivanjapromenljivih 𝑥1, 𝑥2, . . ., 𝑥𝑛 u polaznom izrazu i samo na njih (tj. neprimenjuje se na podtermove dobijene zamenama).

U daljem tekstu cemo pod terminom zamena podrazumevati i uopstenuzamenu.

Izraz koji je rezultat primene zamene 𝜎 nad izrazom 𝐸, oznacavamo sa 𝐸𝜎.Ocigledno, iz zamene [𝑥1 ↦→ 𝑡1, 𝑥2 ↦→ 𝑡2, . . . , 𝑥𝑛 ↦→ 𝑡𝑛] se mogu (ali ne

moraju) izostaviti sve pojedinacne zamene oblika 𝑥𝑖 ↦→ 𝑥𝑖.

Primer 8.7. Za 𝜎 = [𝑥 ↦→ 𝑓(𝑦)] i 𝑠 = 𝑔(𝑎, 𝑥) vazi 𝑠𝜎 = 𝑔(𝑎, 𝑓(𝑦)).Za 𝜎 = [𝑥 ↦→ 𝑓(𝑥)] i 𝑠 = 𝑔(𝑎, 𝑥) vazi 𝑠𝜎 = 𝑔(𝑎, 𝑓(𝑥)).Za 𝜎 = [𝑥 ↦→ 𝑓(𝑦), 𝑦 ↦→ 𝑎], 𝑠 = 𝑔(𝑎, 𝑥) i 𝑡 = 𝑔(𝑦, 𝑔(𝑥, 𝑦)) vazi 𝑠𝜎 = 𝑔(𝑎, 𝑓(𝑦))

i 𝑡𝜎 = 𝑔(𝑎, 𝑔(𝑓(𝑦), 𝑎)).

Ukoliko u zameni 𝜎 = [𝑥1 ↦→ 𝑡1, 𝑥2 ↦→ 𝑡2, . . . , 𝑥𝑛 ↦→ 𝑡𝑛] nijedan od termova 𝑡𝑖ne sadrzi nijednu od promenljivih 𝑥𝑗 (sem, eventualno, ako je 𝑡𝑖 = 𝑥𝑖 za neko 𝑖),onda je efekat te zamene jednak efektu sukcesivno primenjenih pojedinacnihzamena. Supstitucija 𝜎 je idempotentna (tj. za bilo koji izraz 𝐸 vazi 𝐸𝜎 =(𝐸𝜎)𝜎) ako i samo ako vazi taj uslov — da nijedan od termova 𝑡𝑖 ne sadrzinijednu od promenljivih 𝑥𝑗 (sem, eventualno, ako je 𝑡𝑖 = 𝑥𝑖 za neko 𝑖).

Definicija 8.5 (Kompozicija zamena). Za supstitucije 𝜑 = [𝑥1 ↦→ 𝑡1, 𝑥2 ↦→𝑡2, . . . , 𝑥𝑛 ↦→ 𝑡𝑛] i 𝜆 = [𝑦1 ↦→ 𝑠1, 𝑦2 ↦→ 𝑠2, . . . , 𝑦𝑚 ↦→ 𝑠𝑚], kompozicijasupstitucija 𝜑𝜆 je supstitucija [𝑥1 ↦→ 𝑡1𝜆, 𝑥2 ↦→ 𝑡2𝜆, . . . , 𝑥𝑛 ↦→ 𝑡𝑛𝜆, 𝑦1 ↦→𝑠1, 𝑦2 ↦→ 𝑠2, . . . , 𝑦𝑚 ↦→ 𝑠𝑚] iz koje su izbrisane zamene oblika 𝑥𝑖 ↦→ 𝑥𝑖, kaoi zamene oblika 𝑦𝑖 ↦→ 𝑠𝑖, gde je 𝑦𝑖 = 𝑥𝑗 za neko 𝑗.

Primer 8.8. Za 𝜑 = [𝑥 ↦→ 𝑓(𝑦)] i 𝜆 = [𝑦 ↦→ 𝑔(𝑧)], vazi 𝜑𝜆 = [𝑥 ↦→ 𝑓(𝑔(𝑧)), 𝑦 ↦→𝑔(𝑧)].

Za 𝜑 = [𝑥 ↦→ 𝑓(𝑦)] i 𝜆 = [𝑦 ↦→ 𝑔(𝑥)], vazi 𝜑𝜆 = [𝑥 ↦→ 𝑓(𝑔(𝑥)), 𝑦 ↦→ 𝑔(𝑥)].Za 𝜑 = [𝑥 ↦→ 𝑦] i 𝜆 = [𝑦 ↦→ 𝑥], vazi 𝜑𝜆 = [𝑦 ↦→ 𝑥].Za 𝜑 = [𝑥 ↦→ 𝑓(𝑦)] i 𝜆 = [𝑥 ↦→ 𝑔(𝑧)], vazi 𝜑𝜆 = [𝑥 ↦→ 𝑓(𝑦)].Za 𝜑 = [𝑥 ↦→ 𝑓(𝑥)] i 𝜆 = [𝑥 ↦→ 𝑎], vazi 𝜑𝜆 = [𝑥 ↦→ 𝑓(𝑎)].

Moze se dokazati da je kompozicija supstitucija asocijativna, kao i da vazi𝐸(𝜑𝜆) = (𝐸𝜑)𝜆.

Elektro

nsko

izdanje(2017)

8.3. Semantika logike prvog reda 158

Definicija 8.6 (Instanca izraza). Ako je 𝐸 izraz (term ili formula) i akoje 𝜑 supstitucija, onda kazemo da je 𝐸𝜑 instanca (ili primerak) izraza 𝐸.

Definicija 8.7 (Zamena). Neka su formule ℬ1 i ℬ2 takve da formulaℬ2 nema nijednu slobodnu promenljivu koju nema formula ℬ1. Formuludobijenu zamenom (supstitucijom) formule ℬ1 formulom ℬ2 u formuli 𝒜,oznacavamo sa 𝒜[ℬ1 ↦→ ℬ2] i definisemo na sledeci nacin:

� ako je formula 𝒜 instanca formule ℬ1, tj. ako je 𝒜 = ℬ1𝜎 za nekusupstituciju 𝜎, onda je 𝒜[ℬ1 ↦→ ℬ2] = ℬ2𝜎;

� ako je formula 𝒜 atomicka formula i nije instanca formule ℬ1, ondaje 𝒜[ℬ1 ↦→ ℬ2] = 𝒜;

� (¬𝒜)[ℬ1 ↦→ ℬ2] = ¬(𝒜[ℬ1 ↦→ ℬ2]);

� (𝒜 ∧ ℬ)[ℬ1 ↦→ ℬ2] = (𝒜[ℬ1 ↦→ ℬ2] ∧ ℬ[ℬ1 ↦→ ℬ2]);

� (𝒜 ∨ ℬ)[ℬ1 ↦→ ℬ2] = (𝒜[ℬ1 ↦→ ℬ2] ∨ ℬ[ℬ1 ↦→ ℬ2]);

� (𝒜 ⇒ ℬ)[ℬ1 ↦→ ℬ2] = (𝒜[ℬ1 ↦→ ℬ2] ⇒ ℬ[ℬ1 ↦→ ℬ2]);

� (𝒜 ⇔ ℬ)[ℬ1 ↦→ ℬ2] = (𝒜[ℬ1 ↦→ ℬ2] ⇔ ℬ[ℬ1 ↦→ ℬ2]);

� (∀𝑥𝒜)[ℬ1 ↦→ ℬ2] = (∀𝑥)(𝒜[ℬ1 ↦→ ℬ2]);

� (∃𝑥𝒜)[ℬ1 ↦→ ℬ2] = (∃𝑥)(𝒜[ℬ1 ↦→ ℬ2]).

8.3 Semantika logike prvog reda

Semanticki aspekt logike prvog reda govori o znacenju formula. U nastavkuce biti uvedena semantika logike prvog reda u stilu Tarskog (koji je prvi pre-cizno uveo pojam semantike 1933. godine). Tako uvedenu semantiku zovemoi semantika Tarskog. Kao i u jednostavnijem slucaju iskazne logike, osnovnaideja semantike Tarskog je da istinitosne vrednosti formula definise u skladu sauobicajenim, svakodnevnim rasudivanjem. U odnosu na iskazni slucaj, stvarikomplikuju kvantifikatori, kao i potpuno drugacija priroda promenljivih. In-terpretaciju, dodatno, ne odreduje samo nacin na koji su promenljivim pri-druzene vrednosti, nego i sta odgovara funkcijskim i predikatskim simbolima –neke konkretne funkcije i relacije nad izabranim domenom. Zbog toga, istini-tosna vrednost formule zavisi od vise izbora i za razlicite izbore moze da budedrugacija. Ako je formula tacna za svaki od ovih izbora, onda se kaze da jevaljana.

U nastavku cemo smatrati da se podrazumeva (i kada to nije eksplicitnoreceno) da se, kada se govori o formulama, govori o ℒ-formulama za nekufiksiranu signaturu ℒ i fiksan skup promenljivih 𝑉 .

Elektro

nsko

izdanje(2017)

159 8. Logika prvog reda

Definicija 8.8 (ℒ-struktura). Za datu signaturu ℒ, ℒ-struktura D je par(𝐷, 𝐼ℒ), gde je 𝐷 skup, a 𝐼ℒ funkcija pri cemu vazi sledece:

� 𝐷 je neprazan skup i zovemo ga domen ili univerzum;

� svakom simbolu konstante 𝑐 iz ℒ (tj. svakom funkcijskom simboluarnosti 0), funkcija 𝐼ℒ pridruzuje jedan element 𝑐𝐼 iz 𝐷;

� svakom funkcijskom simbolu 𝑓 iz ℒ za koji je 𝑎𝑟(𝑓) = 𝑛 i 𝑛 > 0,funkcija 𝐼ℒ pridruzuje jednu totalnu funkciju 𝑓𝐼 iz 𝐷𝑛 u 𝐷;a

� svakom predikatskom simbolu 𝑝 iz ℒ za koji je 𝑎𝑟(𝑝) = 𝑛 (i 𝑛 > 0)funkcija 𝐼ℒ pridruzuje jednu totalnu funkciju 𝑝𝐼 iz 𝐷𝑛 u {0, 1} .

aFunkcija 𝑓 : 𝐴 ↦→ 𝐵 je totalna ako je definisana za svaki element skupa 𝐴.

Primer 8.9. Za signaturu iz primera 8.2, jedna moguca ℒ-struktura je (B, 𝐼ℒ),gde je B skup konkretnih blokova prikazanih na slici 8.1. Funkcija 𝐼ℒ preslikavapredikatske simbole 𝑎 i 𝑏 u relacije „jeste iznad“ i „jeste ispod“ nad konkretnimblokovima, u konkretnom odnosu koji imaju.

Druga moguca ℒ-struktura za ovu signaturu je (Z, 𝐼ℒ), gde je Z skup celihbrojeva, a 𝐼ℒ je funkcija koja predikatske simbole 𝑎 i 𝑏 preslikava u relacije >i < nad celim brojevima.

Primer 8.10. Za signaturu ℒ iz primera 8.3, jedna ℒ-struktura je par (Z, 𝐼ℒ),gde je Z skup celih brojeva, a 𝐼ℒ funkcija koja simbol 0𝑎 preslikava u ceo broj 0,funkcijske simbole +𝑎 i ·𝑎 u operacije sabiranja i mnozenja nad celim brojevima,a predikatske simbole <𝑎 i =𝑎 u relacije < i = nad celim brojevima.

Za istu signaturu jedna ℒ-struktura je i par (N, 𝐼ℒ), gde jeN skup prirodnihbrojeva, a 𝐼ℒ funkcija koja simbol 0𝑎 preslikava u prirodni broj 0, funkcijskesimbole +𝑎 i ·𝑎 u operacije sabiranja i mnozenja nad prirodnim brojevima, apredikatske simbole <𝑎 i =𝑎 u relacije < i = nad prirodnim brojevima.

Za istu signaturu jedna ℒ-struktura je i par (D, 𝐼ℒ), gde je D skup dana unedelji — {𝑝𝑜𝑛𝑒𝑑𝑒𝑙𝑗𝑎𝑘, 𝑢𝑡𝑜𝑟𝑎𝑘, 𝑠𝑟𝑒𝑑𝑎, 𝑐𝑒𝑡𝑣𝑟𝑡𝑎𝑘, 𝑝𝑒𝑡𝑎𝑘, 𝑠𝑢𝑏𝑜𝑡𝑎, 𝑛𝑒𝑑𝑒𝑙𝑗𝑎}, a 𝐼ℒ

funkcija koja simbol 0𝑎 preslikava (na primer) u element 𝑛𝑒𝑑𝑒𝑙𝑗𝑎, predikatskisimbol <𝑎 u relaciju prethodni dan, itd.

Primer 8.11. Za signaturu iz primera 8.5 jedna ℒ-struktura je par (D, 𝐼ℒ),gde je D skup svih zivih bica, a 𝐼ℒ funkcija koja simbol 𝑠𝑜𝑘𝑟𝑎𝑡 preslikava(na primer) u osobu 𝑆𝑜𝑘𝑟𝑎𝑡, predikatski simbol 𝑚𝑎𝑛 u relaciju „biti covek”,predikatski simbol 𝑚𝑜𝑟𝑡𝑎𝑙 u relaciju „biti smrtan”.

Za istu signaturu jedna ℒ-struktura je i par (N, 𝐼ℒ), gde je N skup prirod-nih brojeva, a 𝐼ℒ funkcija koja simbol 𝑠𝑜𝑘𝑟𝑎𝑡 preslikava (na primer) u broj 0,predikatski simbol 𝑚𝑎𝑛 u unarnu relaciju „biti slozen broj”, predikatski simbol𝑚𝑜𝑟𝑡𝑎𝑙 u unarnu relaciju „biti paran broj”.

Elektro

nsko

izdanje(2017)

8.3. Semantika logike prvog reda 160

Valuacija 𝑣 za skup promenljivih 𝑉 u odnosu na domen 𝐷 je preslikavanjekoje svakom elementu iz 𝑉 dodeljuje jedan element iz 𝐷. Ako je 𝑣(𝑥𝑖) = 𝑑𝑗 ,onda kazemo da je 𝑑𝑗 vrednost promenljive 𝑥𝑖 u valuaciji 𝑣. Ako su 𝑣 i 𝑤valuacije za isti skup promenljivih i u odnosu na isti domen, onda sa 𝑣 ∼𝑥 𝑤oznacavamo da je 𝑣(𝑦) = 𝑤(𝑦) za svaku promenljivu 𝑦 razlicitu od 𝑥, pri cemuvrednosti 𝑣(𝑥) i 𝑤(𝑥) mogu a ne moraju biti iste.

Ako je D = (𝐷, 𝐼ℒ) ℒ-struktura za neku signaturu ℒ i 𝑣 valuacija za skuppromenljivih 𝑉 i za domen 𝐷, onda par (D, 𝑣) odreduje interpretaciju, tj. funk-ciju 𝐼𝑣 koja preslikava skup ℒ-termova nad skupom promenljivih 𝑉 u skup 𝐷,a skup ℒ-formula nad skupom promenljivih 𝑉 u skup {0, 1}. Funkcija 𝐼𝑣 uvodise narednim dvema definicijama.

Definicija 8.9 (Interpretacija). Vrednost (ili krace vrednost ili znacenje)terma 𝑡 u interpretaciji 𝐼𝑣, odredenoj ℒ-strukturom D i valuacijom 𝑣,oznacavamo sa 𝐼𝑣(𝑡) i definisemo na sledeci nacin:

ako je 𝑡 simbol promenljive 𝑥, onda je 𝐼𝑣(𝑡) = 𝑣(𝑥);

�� ako je 𝑡 simbol konstante 𝑐, onda je 𝐼𝑣(𝑡) = 𝑐𝐼 ;

� ako je 𝑡 jednako 𝑓(𝑡1, 𝑡2, . . . , 𝑡𝑛) (pri cemu je 𝑎𝑟(𝑓) = 𝑛) i ako je𝐼𝑣(𝑡𝑖) = 𝑑𝑖 za 𝑖 = 1, 2, . . . , 𝑛 (pri cemu je 𝑑𝑖 ∈ 𝐷), onda je 𝐼𝑣(𝑡) =𝑓𝐼(𝑑1, 𝑑2, . . . , 𝑑𝑛).

Istinitosna vrednost (ili krace vrednost ili znacenje) formule u interpre-taciji 𝐼𝑣 odredenoj ℒ-strukturom D i valuacijom 𝑣, definisemo na sledecinacin:

𝐼𝑣(⊤) = 1 i 𝐼𝑣(⊥) = 0;

�� 𝐼𝑣(𝑝(𝑡1, 𝑡2, . . . , 𝑡𝑛)) = 𝑝𝐼(𝑑1, 𝑑2, . . . , 𝑑𝑛), gde je 𝐼𝑣(𝑡𝑖) = 𝑑𝑖 za 𝑖 =1, 2, . . . , 𝑛 (pri cemu je 𝑑𝑖 ∈ 𝐷 i 𝑎𝑟(𝑝) = 𝑛)

� 𝐼𝑣(¬𝒜) =

{1, ako je 𝐼𝑣(𝒜) = 00, inace

� 𝐼𝑣(𝒜 ∧ ℬ) ={

1, ako je 𝐼𝑣(𝒜) = 1 i 𝐼𝑣(ℬ) = 10, inace

� 𝐼𝑣(𝒜 ∨ ℬ) ={

0, ako je 𝐼𝑣(𝒜) = 0 i 𝐼𝑣(ℬ) = 01, inace

� 𝐼𝑣(𝒜 ⇒ ℬ) ={

0, ako je 𝐼𝑣(𝒜) = 1 i 𝐼𝑣(ℬ) = 01, inace

� 𝐼𝑣(𝒜 ⇔ ℬ) ={

1, ako je 𝐼𝑣(𝒜) = 𝐼𝑣(ℬ)0, inace

Elektro

nsko

izdanje(2017)

161 8. Logika prvog reda

� 𝐼𝑣((∃𝑥)𝒜) =

⎧⎨⎩ 1, ako postoji valuacija 𝑤 sa domenom 𝐷takva da je 𝑤 ∼𝑥 𝑣 i 𝐼𝑤(𝒜) = 1

0, inace

� 𝐼𝑣((∀𝑥)𝒜) =

⎧⎨⎩ 0, ako postoji valuacija 𝑤 sa domenom 𝐷takva da je 𝑤 ∼𝑥 𝑣 i 𝐼𝑤(𝒜) = 0

1, inace

Moze se dokazati da je na opisani nacin svakoj formuli 𝒜 nad signaturomℒ i skupom 𝑉 pridruzena (jedinstvena) vrednost 𝐼𝑣(𝒜). Primetimo da 𝐼𝑣(𝒜)zavisi od 𝑣(𝑥) samo ako promenljiva 𝑥 ima slobodna pojavljivanja u formuli𝒜. Vrednost 𝐼𝑣(𝒜), dakle, zavisi samo od slobodnih promenljivih u formuli 𝒜.Specijalno, ako je 𝒜 recenica, vrednost 𝐼𝑣(𝒜) uopste ne zavisi od 𝑣.

Definicija 8.10 (Zadovoljivost). Ako je interpretacija 𝐼𝑣 odredena ℒ-strukturom D i valuacijom 𝑣 i ako za ℒ-formulu 𝒜 vazi 𝐼𝑣(𝒜) = 1, ondakazemo da je formula 𝒜 tacna u interpretaciji 𝐼𝑣 i da je ℒ-struktura D savaluacijom 𝑣 model formule 𝒜 i pisemo (D, 𝑣) |= 𝒜.

Formula 𝒜 je zadovoljiva u ℒ-strukturi D ako postoji valuacija 𝑣 takvada je (D, 𝑣) |= 𝒜. ℒ-formula 𝒜 je zadovoljiva ako postoje ℒ-struktura Di valuacija 𝑣 takve da je (D, 𝑣) |= 𝒜.

Ako formula nije zadovoljiva, onda kazemo da je ona kontradiktorna.

Definicija 8.11 (Valjanost). Ako je za neku ℒ-strukturu D formula 𝒜tacna za svaku valuaciju 𝑣, tj. u svakoj interpretaciji 𝐼𝑣, onda kazemo daje ℒ-struktura D model formule 𝒜, kazemo da je formula 𝒜 valjana uℒ-strukturi D i pisemo D |= 𝒜.

Ako je formula nad signaturom ℒ valjana u svakoj ℒ-strukturi, ondaza tu formulu kazemo da je valjana i to zapisujemo |= 𝒜.

Ako formula nije valjana, onda kazemo da je ona poreciva.Ako nije D |= 𝒜, onda pisemo D |= 𝒜 i kazemo da je D kontramodel

za 𝒜.

Analogne definicije uvodimo za skupove formula.

Primer 8.12. Formula ∃𝑥(𝑥 <𝑎 0𝑎) tacna je u prvoj interpretaciji iz primera8.10, a nije tacna u drugoj interpretaciji. Dakle, ona nije valjana.

Primer 8.13. Formula ∀𝑥(𝑚𝑎𝑛(𝑥) ⇒ 𝑚𝑜𝑟𝑡𝑎𝑙(𝑥)) je tacna u prvoj interpre-taciji iz primera 8.11, a nije tacna u drugoj interpretaciji. Dakle, ona nijevaljana.

Primer 8.14. Razmotrimo formule nad signaturom opisanom u primeru 8.4.Formule ∀𝑥(𝑝(𝑥) ⇒ 𝑞) i (∀𝑥𝑝(𝑥)) ⇒ 𝑞 koje se razlikuju po dosegu kvantifikatora∀𝑥 mogu imati razlicito znacenje.

Jedna moguca interpretacija ovih formula odredena je domenom koji cinesvi studenti koji pohadaju neki kurs, 𝑝(𝑥) se interpretira kao „student 𝑥 ce

Elektro

nsko

izdanje(2017)

8.3. Semantika logike prvog reda 162

poloziti ispit, a 𝑞 se interpretira kao „profesor ce biti iznenaden”. Prva formulase, onda, interpretira kao „za bilo kojeg studenta 𝑥 vazi, ako 𝑥 polozi ispit,profesor ce biti iznenaden“ (tj. „ako bilo koji student polozi ispit profesor cebiti iznenaden“, sto odgovara i formuli (∃𝑥𝑝(𝑥)) ⇒ 𝑞), a druga kao „ako svakistudent polozi ispit, profesor ce biti iznenaden“.

Definicija 8.12 (Zadovoljivost skupa formula). Skup recenica Γ je kon-zinstentan (ili zadovoljiv) ako ima bar jedan model. Inace, kazemo da jeskup Γ nekonzistentan, (ili nezadovoljiv, protivrecan, kontradiktoran).

Relativno lako moze se dokazati naredno tvrdenje.

Teorema 8.1. Formula 𝒜 je valjana ako i samo ako je njeno univerzalnozatvorenje valjana formula. Formula 𝒜 je zadovoljiva ako i samo ako jenjeno egzistencijalno zatvorenje zadovoljiva formula.

Pitanja i zadaci

Pitanje 8.7. Za datu signaturu ℒ, sta je to ℒ-struktura D?

Pitanje 8.8. U sta se, u svakoj interpretaciji jezika logike prvog reda, presli-kava funkcijski simbol 𝑓?

Pitanje 8.9. U sta se, u svakoj interpretaciji jezika logike prvog reda, presli-kava predikatski simbol 𝑝?

Pitanje 8.10. U standardnoj semantici logike prvog reda, ako je 𝑥 promen-ljiva, cemu je jednako 𝐼𝑣(𝑥) =

Pitanje 8.11. Kada u interpretaciji 𝐼𝑣 formula ∃𝑥𝒞 ima vrednost 0?

Pitanje 8.12. Kada u interpretaciji 𝐼𝑣 formula 𝐼𝑣(∀𝑥𝒜) ima vrednost 0?

Pitanje 8.13. U logici prvog reda, cemu je, za neku valuaciju 𝑣, jednakavrednost 𝐼𝑣(∀𝑥𝒜)?

Pitanje 8.14. U logici prvog reda, cemu je, za neku valuaciju 𝑣, jednakavrednost 𝐼𝑣(∃𝑥𝒜)?

Pitanje 8.15. Ako, u logici prvog reda, za dve valuacije 𝑣 i 𝑤 vazi 𝑣(𝑥) = 1,𝑣(𝑦) = 2, 𝑤(𝑥) = 3 i 𝑣 ∼𝑥 𝑤, sta vazi za 𝑤(𝑦)?

Pitanje 8.16. Da li je problem zadovoljivosti u logici prvog reda odluciv ilipoluodluciv ili neodluciv?

Pitanje 8.17. Da li je problem valjanosti u logici prvog reda odluciv ili po-luodluciv ili neodluciv?

Elektro

nsko

izdanje(2017)

163 8. Logika prvog reda

Zadatak 8.2.√

Odrediti bar jedan model formule (∀𝑥)(𝑝(𝑥) ⇒ 𝑝(𝑓(𝑥))).

Zadatak 8.3.√

Ispitati da li je ℒ-struktura data sa 𝐷 = {𝑎, 𝑏, 𝑐} i

𝑓𝐼𝑎 𝑏𝑏 𝑎𝑐 𝑎

𝑝𝐼 𝑎 𝑏 𝑐𝑎 1 1 0𝑏 1 0 1𝑐 0 0 1

model formule (∀𝑥)(𝑝(𝑥, 𝑓(𝑥)) ⇒ 𝑝(𝑓(𝑥), 𝑥)).

Zadatak 8.4.√

Odrediti sve dvoclane modele formule (∀𝑥)(∃𝑦)(𝑝(𝑥, 𝑦)⇒¬𝑝(𝑦, 𝑥)).

Zadatak 8.5.√

Odrediti jedan model i jedan kontramodel za formulu(∀𝑥)(∃𝑦)(𝑝(𝑓(𝑥, 𝑦), 𝑎)).

Zadatak 8.6.√

Data je formula𝒜 = (∀𝑥)(𝑝(𝑥, 𝑓(𝑥))∧¬𝑝(𝑥, 𝑥)) ∧(∀𝑥)(∀𝑦)(∀𝑧)(𝑝(𝑥, 𝑦)∧𝑝(𝑦, 𝑧) ⇒ 𝑝(𝑥, 𝑧)).(a) Odrediti bar jedan model za formulu 𝒜.(b) Odrediti bar jedan kontramodel za formulu 𝒜.(c) Dokazati da svaki model formule 𝒜 ima beskonacan domen.

Zadatak 8.7.√

Dokazati da je formula (∀𝑥)(∀𝑦)(∃𝑧)(𝑝(𝑥) ∧ 𝑝(𝑦) ⇔ 𝑝(𝑧))valjana.

Zadatak 8.8. Dokazati da su naredne formule valjane:(a) (∃𝑥)(∀𝑦)𝒜 ⇒ (∀𝑦)(∃𝑥)𝒜(b) ((∃𝑥)(𝒜⇒ℬ))⇔ (𝒜⇒(∃𝑥)ℬ), pri cemu promenljiva 𝑥 nije slobodna u

𝒜.

Zadatak 8.9. Dokazati da naredne formule nisu valjane:(a) (∃𝑥)𝒜1 ∧ (∃𝑥)𝒜2 ⇔ (∃𝑥)(𝒜1 ∧ 𝒜2)(b) (∀𝑥)𝒜1 ∨ (∀𝑥)𝒜2 ⇔ (∀𝑥)(𝒜1 ∨ 𝒜2)

Zadatak 8.10. Dokazati da formula (∀𝑥)(∃𝑦)𝑝(𝑥, 𝑦) ⇔ (∃𝑦)(∀𝑥)𝑝(𝑥, 𝑦) nijevaljana.

Zadatak 8.11. Dokazati da je sledeca formula valjana:

((∀𝑥)𝒜) ∧ ℬ ⇔ (∀𝑥)(𝒜 ∧ ℬ)

pri cemu formula ℬ nema slobodnih pojavljivanja promenljive 𝑥. Dokazati dadata formula nije valjana ako se izostavi navedeni dodatni uslov.

8.4 Logicke posledice, logicki ekvivalentne formule, zamena

Elektro

nsko

izdanje(2017)

8.4. Logicke posledice, logicki ekvivalentne formule, zamena 164

Definicija 8.13 (Logicka posledica). Neka je Γ skup formula i neka je𝒜 formula nad signaturom ℒ. Kazemo da je formula 𝒜 logicka posledicaskupa formula Γ i pisemo Γ |= 𝒜 ako je svaki model za Γ istovremeno imodel za 𝒜.

Ako je skup Γ konacan, tj. ako je Γ = {ℬ1,ℬ2, . . . ,ℬ𝑘}, onda pisemo ℬ1,ℬ2, . . . , ℬ𝑘 |= 𝒜. Ako je Γ prazan skup, onda pisemo |= 𝒜. Ako je |= 𝒜, ondaje formula 𝒜 tacna u svakoj interpretaciji i tada je formula 𝒜 valjana. Ako nevazi Γ |= 𝒜, onda to zapisujemo Γ |= 𝒜.

Primer 8.15. Ako sa Γ oznacimo skup formula (iz primera 8.2): {∀𝑥, 𝑦(𝑎(𝑥, 𝑦) ⇒¬𝑎(𝑦, 𝑥)),∀𝑥, 𝑦(𝑎(𝑥, 𝑦) ⇔ 𝑏(𝑦, 𝑥)),∀𝑥, 𝑦, 𝑧(𝑎(𝑥, 𝑦)∧ 𝑎(𝑦, 𝑧) ⇒ 𝑎(𝑥, 𝑧))}, onda semoze pokazati da vazi: Γ |= ∀𝑥, 𝑦, 𝑧(𝑎(𝑦, 𝑥) ∧ 𝑏(𝑧, 𝑥) ⇒ 𝑎(𝑦, 𝑧).

Na osnovu definicije logicke posledice, jednostavno se dokazuje narednotvrdenje (analogno teoremi 7.1).

Teorema 8.2.

(a) Svaka valjana formula je logicka posledica praznog skupa formula.

(b) Ako je skup Γ kontradiktoran, onda je svaka formula njegova logickaposledica. Specijalno, svaka formula je logicka posledica skupa {⊥}.

(c) Ako za skupove formula Γ i Δ vazi Γ ⊂ Δ i Γ |= 𝒜, onda je Δ |= 𝒜.

Definicija 8.14 (Logicka ekvivalencija). Kazemo da su formule 𝒜 i ℬlogicki ekvivalentne i pisemo 𝒜 ≡ ℬ ako je 𝒜 logicka posledica formule ℬi ℬ je logicka posledica formule 𝒜.

Ako je svaki model za 𝒜 istovremeno i model za ℬ i obratno, onda u bilokojoj valuaciji formule 𝒜 i ℬ imaju jednake vrednosti. Tvrdenja oblika 𝒜 ≡ ℬzovemo logickim ekvivalencijama (ili krace ekvivalencijama). Relacija ≡ je,ocigledno, relacija ekvivalencije nad skupom formula.

Teorema 8.3. Ako za ℒ-formule 𝒜1, 𝒜2, ℬ1 i ℬ2 vazi 𝒜1 ≡ 𝒜2 i ℬ1 ≡ ℬ2,onda je:

(a) ¬𝒜1 ≡ ¬𝒜2

(b) 𝒜1 ∧ ℬ1 ≡ 𝒜2 ∧ ℬ2

(c) 𝒜1 ∨ ℬ1 ≡ 𝒜2 ∨ ℬ2

(d) 𝒜1 ⇒ ℬ1 ≡ 𝒜2 ⇒ ℬ2

(e) 𝒜1 ⇔ ℬ1 ≡ 𝒜2 ⇔ ℬ2

Elektro

nsko

izdanje(2017)

165 8. Logika prvog reda

(f) (∀𝑥)𝒜1 ≡ (∀𝑥)𝒜2

(g) (∃𝑥)𝒜1 ≡ (∃𝑥)𝒜2

Teorema 8.4. Za datu signaturu ℒ, dve ℒ-formule 𝒜 i ℬ su logicki ekvi-valentne ako i samo ako je formula 𝒜 ⇔ ℬ valjana.

Primer 8.16. Moze se dokazati da za proizvoljnu ℒ-formulu 𝒜 vazi ¬(∃𝑥)𝒜 ≡(∀𝑥)¬𝒜. Neka je D proizvoljna ℒ-struktura. Pretpostavimo da vazi 𝐼𝑣(¬(∃𝑥)𝒜)= 1 i dokazimo da onda vazi i 𝐼𝑣((∀𝑥)¬𝒜) = 1. Iz 𝐼𝑣(¬(∃𝑥)𝒜) = 1 sledi𝐼𝑣((∃𝑥)𝒜) = 0, pa u svakoj valuaciji 𝑣′, takvoj da je 𝑣′ ∼𝑥 𝑣, vazi 𝐼𝑣′(𝒜) = 0.To znaci da u svakoj valuaciji 𝑣′, takvoj da je 𝑣′ ∼𝑥 𝑣, vazi 𝐼𝑣′(¬𝒜) = 1, aodatle sledi da u svakoj valuaciji 𝑣′′, takvoj da je 𝑣′′ ∼𝑥 𝑣′, vazi 𝐼𝑣′′((∀𝑥)¬𝒜) =1, pa i u valuaciji 𝑣, tj. 𝐼𝑣((∀𝑥)¬𝒜) = 1, sto je i trebalo dokazati. Drugi smertvrdenja (da iz 𝐼𝑣((∀𝑥)¬𝒜) = 1 sledi 𝐼𝑣(¬(∃𝑥)𝒜) = 1) dokazuje se analogno.

Primer 8.17. Neke od logickih ekvivalencija logike prvog reda (ili, preciznije,neke od shema logickih ekvivalencija logike prvog reda) su:

¬¬𝒜 ≡ 𝒜 zakon dvojne negacije𝒜 ∨ ¬𝒜 ≡ ⊤ zakon iskljucenja treceg(𝒜 ∧ ℬ) ≡ (ℬ ∧ 𝒜) zakon komutativnosti za ∧¬(∃𝑥)𝒜 ≡ (∀𝑥)¬𝒜 De Morganov zakon¬(∀𝑥)𝒜 ≡ (∃𝑥)¬𝒜 De Morganov zakon

(∃𝑥)(𝒜 ∨ ℬ) ≡ (∃𝑥)𝒜 ∨ (∃𝑥)ℬ zakon distributivnosti ∃ prema ∨(∀𝑥)(𝒜 ∧ ℬ) ≡ (∀𝑥)𝒜 ∧ (∀𝑥)ℬ zakon distributivnosti ∀ prema ∧(∃𝑥)(𝒜 ∧ ℬ) ≡ (∃𝑥)𝒜 ∧ ℬ zakon distributivnosti ∃ prema ∧

(pri cemu ℬ ne sadrzi slobodnapojavljivanja promenljive 𝑥)

(∀𝑥)(𝒜 ∨ ℬ) ≡ (∀𝑥)𝒜 ∨ ℬ zakon distributivnosti ∀ prema ∨(pri cemu ℬ ne sadrzi slobodnapojavljivanja promenljive 𝑥)

(∀𝑥)𝒜 ≡ (∀𝑦)(𝒜[𝑥 ↦→ 𝑦]) zakon o preimenovanju vezanepromenljive (pri cemu 𝒜 ne sadrzislobodna pojavljivanja promenljive 𝑦)

(∃𝑥)𝒜 ≡ (∃𝑦)(𝒜[𝑥 ↦→ 𝑦]) zakon o preimenovanju vezanepromenljive (pri cemu 𝒜 ne sadrzislobodna pojavljivanja promenljive 𝑦)

Koriscenjem navedenih logickih ekvivalencija, moze se dokazati logicka ekvi-valencija (∀𝑥𝒜) ∧ ℬ ≡ ∀𝑢(𝒜[𝑥 ↦→ 𝑢] ∧ ℬ) i slicne, a koje govore o tome da sevezane promenljive mogu preimenovati bez uticaja na istinitosnu vrednost for-mule.

Naredna teorema kaze da ako se u formuli 𝐴 zameni neka njena potformulalogicki ekvivalentnom formulom, dobice se formula koja je logicki ekvivalentnaformuli 𝐴.

Elektro

nsko

izdanje(2017)

8.4. Logicke posledice, logicki ekvivalentne formule, zamena 166

Teorema 8.5 (Teorema o zameni). Ako vazi ℬ1 ≡ ℬ2, onda je 𝒜 ≡𝒜[ℬ1 ↦→ ℬ2].

Primer 8.18. Vazi ¬(∃𝑥)(𝒜 ∧ ¬ℬ) ≡ (∀𝑥)¬(𝒜 ∧ ¬ℬ) ≡ (∀𝑥)(¬𝒜 ∨ ¬¬ℬ) ≡(∀𝑥)(¬𝒜 ∨ ℬ) ≡ (∀𝑥)(𝒜 ⇒ ℬ). Iz ¬(∃𝑥)(𝒜 ∧ ¬ℬ) ≡ (∀𝑥)(𝒜 ⇒ ℬ), na osnovuteoreme 8.4 sledi da je formula ¬(∃𝑥)(𝒜 ∧ ¬ℬ) ⇔ (∀𝑥)(𝒜 ⇒ ℬ) valjana.

Naglasimo da univerzalni i egzistencijalni kvantifikator ne mogu, u opstemslucaju, da menjaju mesta, tj. formule (∀𝑥)(∃𝑦)𝒜 i (∃𝑦)(∀𝑥)𝒜 nisu u opstemslucaju logicki ekvivalentne. S druge strane, dva univerzalna kvantifikatoramogu da zamene mesta, tj. formule (∀𝑥)(∀𝑦)𝒜 i (∀𝑦)(∀𝑥)𝒜 su logicki ekvi-valentne. Slicno, dva egzistencijalna kvantifikatora mogu da zamene mesta,tj. formule (∃𝑥)(∃𝑦)𝒜 i (∃𝑦)(∃𝑥)𝒜 su logicki ekvivalentne. To sustinski znacida u bloku kvantifikatora istog tipa, poredak tih kvantifikatora nije bitan.

Pitanja i zadaci

Pitanje 8.18. Ako je formula prvog reda 𝒜 logicka posledica skupa formulaΓ, a skup Γ je podskup skupa Δ, sta onda vazi?

Pitanje 8.19. Kada kazemo da su formule logike prvog reda 𝒜 i ℬ logickiekvivalentne?

Pitanje 8.20. Da li je formula (∀𝑥)(𝒜∧ℬ) je logicki ekvivalentna nekim odformula:

(∀𝑥)𝒜 ∧ (∀𝑥)ℬ,(∀𝑥)𝒜 ∧ ℬ(∀𝑥)𝒜 ∨ (∀𝑥)ℬ(∀𝑥)𝒜 ∨ ℬ

Pitanje 8.21. Da li su formule (∀𝑥𝒜) ∧ ℬ i (∀𝑥𝒜∧ℬ) logicki ekvivalentne?

Pitanje 8.22. Da li su formule (∀𝑥𝒜)∧∀𝑥ℬ i (∀𝑥𝒜∧ℬ) logicki ekvivalentne?

Pitanje 8.23. Sta treba da vazi za promenljivu 𝑥 da formule ∀𝑥(𝒜 ∧ ℬ) i∀𝑥𝒜 ∧ ℬ nisu nuzno logicki ekvivalentne?

Pitanje 8.24. Navesti teoremu o zameni za logiku prvog reda? Gde se onakoristi?

Zadatak 8.12.√

Navesti primer formule koja je valjana a nije izvod tauto-logije.

Zadatak 8.13.√

Dokazati da je formula (∃𝑥)(𝒜 ⇒ ℬ) ⇔ ((∀𝑥)𝒜 ⇒ (∃𝑥)ℬ)valjana.

Zadatak 8.14. Dokazati da za svaku supstituciju 𝜎 iz 𝒜 ≡ ℬ sledi 𝒜𝜎 ≡ ℬ𝜎.

Elektro

nsko

izdanje(2017)

167 8. Logika prvog reda

Zadatak 8.15. Dokazati da je formula (∀𝑥)(∃𝑦)𝒜 ⇒ (∃𝑦)(𝒜[𝑥 ↦→ 𝑦]) valjana.

Zadatak 8.16. Dokazati sledecu logicku ekvivalenciju:

∃𝑥𝒜 ≡ ∃𝑦(𝒜[𝑥 ↦→ 𝑦])

pri cemu formula 𝒜 nema slobodnih pojavljivanja promenljive 𝑦. Dokazati dadata logicka ekvivalencija ne vazi ako se izostavi navedeni dodatni uslov.

Zadatak 8.17. Dokazati da je supstitucija 𝜎 = [𝑥1 ↦→ 𝑡1, 𝑥2 ↦→ 𝑡2, . . . , 𝑥𝑛 ↦→𝑡𝑛] idempotentna (tj. da za bilo koji izraz 𝐸 vazi 𝐸𝜎 = (𝐸𝜎)𝜎) ako i samo akonijedan od termova 𝑡𝑖 ne sadrzi nijednu od promenljivih 𝑥𝑗 (sem, eventualno,ako je 𝑡𝑖 = 𝑥𝑖 za neko 𝑖).

8.5 Normalne forme

Centralna pitanja u logici prvog reda su ispitivanje zadovoljivosti i valjano-sti. Iako je ova pitanja moguce razmatrati nad formulama proizvoljnog oblika,daleko je jednostavnije algoritme ispitivanja formulisati za formule nekog po-sebnog oblika. Zbog toga se definisu normalne forme i algoritmi kojima se nekaformula transformise u te normalne forme. Pod transformacijom se podrazu-meva konstruisanje formule koja je, na primer, logicki ekvivalentna polaznojformuli i zadovoljava neka sintaksicka ogranicenja.

Definicija 8.15 (Preneks normalna forma). Kazemo da je formula u pre-neks normalnoj formi ako je ona oblika

𝑄1𝑥1𝑄2𝑥2 . . . 𝑄𝑛𝑥𝑛𝒜

pri cemu je 𝑄𝑖 ili ∀ ili ∃ i 𝒜 ne sadrzi kvantifikatore, kao ni slobodnepromenljive osim (eventualno) promenljivih 𝑥1, 𝑥2, . . . , 𝑥𝑛.

Ako je recenica (zatvorena formula) 𝒜 logicki ekvivalentna formuli ℬ i for-mula ℬ je u preneks normalnoj formi, onda kazemo da je formula ℬ preneksnormalna forma formule 𝒜. Koriscenjem pogodnih logickih ekvivalencija, svakazatvorena formula moze biti transformisana u svoju preneks normalnu formu.Radi jednostavnosti procedure i rezultujuce formule, obicno se u okviru trans-formisanja formule u preneks formu najpre eliminisu veznici ⇔ i ⇒. Nagla-simo da jedna formula moze da ima vise preneks normalnih formi (na primer,i formula (∀𝑥)(∀𝑦)(𝒜(𝑥) ∧ ℬ(𝑦)) i formula (∀𝑦)(∀𝑥)(ℬ(𝑦) ∧ 𝒜(𝑥)) su preneksnormalne forme formule (∀𝑥)𝒜(𝑥)∧ (∀𝑦)ℬ(𝑦)). Slicno, jedna formula koja je upreneks normalnoj formi moze biti preneks normalna forma za vise formula.

Transformisanje formule u preneks normalnu formu moze biti opisano pro-cedurom prikazanom na slici 8.2 (kada govorimo o „primeni neke logicke ekviva-lencije“ mislimo na koriscenje ekvivalencije na osnovu teoreme o zameni (8.5)).

Elektro

nsko

izdanje(2017)

8.5. Normalne forme 168

Algoritam: PRENEX

Ulaz: Zatvorena formula logike prvog redaIzlaz: Preneks normalna forma zadate formule

1. Dok god je to moguce, primenjivati logicke ekvivalencije

𝒜 ⇔ ℬ ≡ (𝒜 ⇒ ℬ) ∧ (ℬ ⇒ 𝒜) i

𝒜 ⇒ ℬ ≡ ¬𝒜 ∨ ℬ.

2. Dok god je to moguce, primenjivati sledece logicke ekvivalencije:

¬(𝒜 ∧ ℬ) ≡ ¬𝒜 ∨ ¬ℬ,¬(𝒜 ∨ ℬ) ≡ ¬𝒜 ∧ ¬ℬ,¬(∀𝑥)𝒜 ≡ (∃𝑥)¬𝒜,

¬(∃𝑥)𝒜 ≡ (∀𝑥)¬𝒜.

3. Eliminisati visestruke veznike ¬ koristeci zakon dvojne negacije:

¬¬𝒜 ≡ 𝒜.

4. Dok god je to moguce, primenjivati sledece logicke ekvivalencije:

(∀𝑥𝒜) ∧ ℬ ≡ (∀𝑥)(𝒜 ∧ ℬ),(∀𝑥𝒜) ∨ ℬ ≡ (∀𝑥)(𝒜 ∨ ℬ),ℬ ∧ (∀𝑥)𝒜 ≡ (∀𝑥)(ℬ ∧ 𝒜),

ℬ ∨ (∀𝑥)𝒜 ≡ (∀𝑥)(ℬ ∨ 𝒜),

(∃𝑥𝒜) ∧ ℬ ≡ (∃𝑥)(𝒜 ∧ ℬ),(∃𝑥𝒜) ∨ ℬ ≡ (∃𝑥)(𝒜 ∨ ℬ),ℬ ∧ (∃𝑥)𝒜 ≡ (∃𝑥)(ℬ ∧ 𝒜),

ℬ ∨ (∃𝑥)𝒜 ≡ (∃𝑥)(ℬ ∨ 𝒜),

pri cemu 𝑥 nema slobodna pojavljivanja u formuli ℬ. Ako 𝑥 ima slo-bodna pojavljivanja u ℬ, onda treba najpre preimenovati promenljivu 𝑥u formuli (∀𝑥)𝒜 (odnosno u formuli (∃𝑥)𝒜).

Slika 8.2: Algoritam PRENEX

Elektro

nsko

izdanje(2017)

169 8. Logika prvog reda

Korektnost navedenog algoritma moze se dokazati slicno kao korektnostprocedure za transformisanje formule u konjunktivnu normalnu formu (teorema7.4).

Teorema 8.6 (Korektnost algoritma PRENEX). Algoritam PRENEX sezaustavlja i zadovoljava sledece svojstvo: ako je 𝒜 ulazna formula, ondaje izlazna formula 𝒜′ u preneks normalnoj formi i logicki je ekvivalentnasa 𝒜.

U nekim situacijama moguce je primeniti neki korak navedenog algoritmana vise od jednog nacina. Na primer, formulu (∀𝑥)𝑝(𝑥) ∧ (∃𝑦)𝑞(𝑦) moguce jetransformisati i u (∀𝑥)(𝑝(𝑥) ∧ (∃𝑦)𝑞(𝑦)) i u (∃𝑦)((∀𝑥)𝑝(𝑥) ∧ 𝑞(𝑦)). Obe oveformule su, naravno, logicki ekvivalentne sa polaznom formulom. Ipak, u situ-acijama kada je moguce „pomeriti“ i univerzalni i egzistencijalni kvantifikator,uvek cemo radije „pomeriti“ najpre egzistencijalni, a onda univerzalni. Takavprioritet uvodimo zarad jednostavnijeg koraka skolemizacije (o kojem ce bitireci u nastavku).

Primer 8.19. Razmotrimo formulu

∀𝑥 𝑝(𝑥) ∧ ∀𝑥∃𝑦∀𝑧(𝑞(𝑦, 𝑧) ⇒ 𝑟(𝑔(𝑥), 𝑦)) .

Primenom algoritma PRENEX najpre (u okviru koraka 1) se dobija formula

∀𝑥 𝑝(𝑥) ∧ ∀𝑥∃𝑦∀𝑧(¬𝑞(𝑦, 𝑧) ∨ 𝑟(𝑔(𝑥), 𝑦)) .

Nakon koraka

∀𝑥(𝑝(𝑥) ∧ ∀𝑥∃𝑦∀𝑧(¬𝑞(𝑦, 𝑧) ∨ 𝑟(𝑔(𝑥), 𝑦))) ,

kako je promenljiva 𝑥 slobodna u 𝑝(𝑥), najpre cemo preimenovati vezanu pro-menljivu 𝑥 u 𝑢 (u okviru formule ∀𝑥∃𝑦∀𝑧(¬𝑞(𝑦, 𝑧) ∨ 𝑟(𝑔(𝑥), 𝑦))):

∀𝑥(𝑝(𝑥) ∧ ∀𝑢∃𝑦∀𝑧(¬𝑞(𝑦, 𝑧) ∨ 𝑟(𝑔(𝑢), 𝑦))) .

Nakon toga kvantifikatori ∀𝑢, ∃𝑦, ∀𝑧 mogu, jedan po jedan, biti pomereni napocetak formule:

∀𝑥∀𝑢∃𝑦∀𝑧(𝑝(𝑥) ∧ (¬𝑞(𝑦, 𝑧) ∨ 𝑟(𝑔(𝑢), 𝑦))) .

Definicija 8.16 (Konjunktivna normalna forma). Formula bez kvantifi-katora je u konjunktivnoj normalnoj formi ako je oblika

𝒜1 ∧ 𝒜2 ∧ . . . ∧ 𝒜𝑛

pri cemu je svaka od formula 𝒜𝑖 (1 ≤ 𝑖 ≤ 𝑛) disjunkcija literala.

Elektro

nsko

izdanje(2017)

8.5. Normalne forme 170

Konjunktivna normalna forma formule predikatske logike moze se dobiti naisti nacin kao i u slucaju iskazne logike (videti poglavlje 7.5).

Primer 8.20. Konjunktivna normalna forma formule

𝑝(𝑥) ∧ (𝑞(𝑦, 𝑧) ⇒ 𝑟(𝑔(𝑢), 𝑦))

je formula

𝑝(𝑥) ∧ (¬𝑞(𝑦, 𝑧) ∨ 𝑟(𝑔(𝑢), 𝑦)) .

Definicija 8.17 (Klauzalna forma). Formula je u klauzalnoj formi akoje oblika

∀𝑥1∀𝑥2 . . . ∀𝑥𝑛𝒜

gde je 𝒜 formula bez kvantifikatora koja je u konjunktivnoj normalnojformi i 𝒜 nema slobodnih promenljivih osim, eventualno, promenljivih𝑥1, 𝑥2, . . . , 𝑥𝑛.

Ako je formula ∀𝑥1∀𝑥2 . . . ∀𝑥𝑛𝒜 u klauzalnoj formi, onda se cesto u za-pisu izostavljaju kvantifikatori i pise samo 𝒜, podrazumevajuci da se misli nauniverzalno zatvorenje formule 𝒜.

Ne postoji za svaku recenicu formula koja je u klauzalnoj formi i koja jojje logicki ekvivalentna. Na primer, za recenicu (∃𝑥)𝑝(𝑥) ne postoji formulakoja je u klauzalnoj formi i koja joj je logicki ekvivalentna. Medutim, mozese dokazati da za svaku recenicu 𝒜 postoji formula ℬ u klauzalnoj formi takvada je 𝒜 zadovoljiva ako i samo ako je ℬ zadovoljiva. To je dovoljno i pogodnoza ispitivanje zadovoljivosti formula — ako se ispituje zadovoljivost recenice 𝒜,dovoljno je ispitati zadovoljivost formule ℬ koja je u klauzalnoj formi (pogodnojza neke metode) i zadovoljiva je ako i samo ako je zadovoljiva formula 𝒜.Uslov da je formula 𝒜 zadovoljiva ako i samo ako je ℬ zadovoljiva zove se slabaekvivalencija.

Transformisanje recenice 𝒜 u formulu ℬ koja je u klauzalnoj formi i koja jezadovoljiva ako i samo ako je 𝒜 zadovoljiva ukljucuje eliminisanje egzistenci-jalnih kvantifikatora. Ono se zasniva na izmeni polazne signature dodavanjemnovih funkcijskih simbola. Te dodatne funkcijske simbole zovemo Skolemo-vim konstantama (za funkcijske simbole arnosti 0) i Skolemovim funkcijama, aproces eliminisanja egzistencijalnih kvantifikatora zovemo skolemizacijom (pomatematicaru Skolemu koji ih je prvi koristio). Prvi korak je transformisanjeformule u preneks normalnu formu. Drugi korak je transformisanje dela formulebez kvantifikatora u konjunktivnu normalnu formu. Nakon toga, postupkomskolemizacije eliminisu se egzistencijalni kvantifikatori, jedan po jedan, slevanadesno.

Pretpostavimo da recenica pocinje egzistencijalnim kvantifikatorom: ∃𝑦𝒜.Treba izabrati novi simbol konstante 𝑑 koji se ne pojavljuje u signaturi, obrisatikvantifikator i zameniti promenljivu 𝑦 simbolom 𝑑. Na taj nacin formula ∃𝑦𝒜

Elektro

nsko

izdanje(2017)

171 8. Logika prvog reda

transformise se u formulu 𝒜[𝑦 ↦→ 𝑑]. Moze se dokazati da je formula ∃𝑦𝒜zadovoljiva ako i samo ako je formula 𝒜[𝑦 ↦→ 𝑑] zadovoljiva.

Ako recenica pocinje nizom univerzalnih kvantifikatora: ∀𝑥1∀𝑥2 . . . ∀𝑥𝑛∃𝑦𝒜,onda uvodimo novi funkcijski simbol 𝑓 arnosti 𝑛 koji do tada nije postojao usignaturi. Polazna formula bice onda transformisana u formulu ∀𝑥1∀𝑥2 . . . ∀𝑥𝑛

𝒜[𝑦 ↦→ 𝑓(𝑥1, 𝑥2, . . . , 𝑥𝑛)]. Moze se dokazati da je formula ∀𝑥1∀𝑥2 . . . ∀𝑥𝑛∃𝑦𝒜zadovoljiva ako i samo ako je formula ∀𝑥1∀𝑥2 . . . ∀𝑥𝑛𝒜[𝑦 ↦→ 𝑓(𝑥1, 𝑥2, . . . , 𝑥𝑛)]zadovoljiva. (Primetimo da je uvodenje nove konstante samo specijalni slucajuvodenja novog funkcijskog simbola.)

Teorema 8.7 (Teorema o skolemizaciji). Ako je formula ℬ nad signatu-rom ℒ′ dobijena skolemizacijom od recenice 𝒜 nad signaturom ℒ koja jeu preneks normalnoj formi, onda je 𝒜 zadovoljiva ako i samo ako je ℬzadovoljiva.

Primer 8.21. Skolemizacijom se formula

∀𝑥∀𝑢∃𝑦∀𝑧(𝑝(𝑥) ∧ (¬𝑞(𝑦, 𝑧) ∨ 𝑟(𝑔(𝑢), 𝑦)))

transformise u formulu

𝑝(𝑥) ∧ (¬𝑞(ℎ(𝑥, 𝑢), 𝑧) ∨ 𝑟(𝑔(𝑢), ℎ(𝑥, 𝑢))) .

Teorema 8.8. Neka je formula ℬ (u klauzalnoj formi) dobijena odrecenice 𝒜 uzastopnom primenom sledecih postupaka:

� transformisanje formule u preneks normalnu formu;

� transformisanje dela formule bez kvantifikatora u konjunktivnunormalnu formu;

� skolemizacija.

Tada je formula 𝒜 zadovoljiva ako i samo ako je ℬ zadovoljiva.

Dokaz: Transformacija formule u preneks normalnu formu i transformacijadela formule bez kvantifikatora u konjunktivnu normalnu formu zasno-vane su na logickim ekvivalencijama, pa ako je formula ℬ dobijena od for-mule 𝒜 uzastopnom primenom navedene dve transformacije, vazi 𝒜 ≡ ℬ,sto je jaci uslov nego uslov da je 𝒜 zadovoljiva ako i samo ako je ℬzadovoljiva. Na osnovu teoreme 8.7 sledi da skolemizacija cuva zadovo-ljivost i nezadovoljivost, pa je formula ℬ zadovoljiva ako i samo ako je 𝒜zadovoljiva. �

Elektro

nsko

izdanje(2017)

8.5. Normalne forme 172

Klauzalna forma je pogodna za dokazivanje pobijanjem. Da bi se dokazaloda je formula 𝒜 valjana, dovoljno je dokazati da je formula ¬𝒜 nezadovoljiva,pa je dovoljno i dokazati da je klauzalna forma formule ¬𝒜 nezadovoljiva.

Primer 8.22. Formula 𝒜 = (∀𝑥)𝑝(𝑥, 𝑥) ⇒ (∀𝑦)𝑝(𝑦, 𝑦) nad signaturom ℒ jevaljana. To se moze dokazati na sledeci nacin.

Formula ¬𝒜 je jednaka ¬((∀𝑥)𝑝(𝑥, 𝑥) ⇒ (∀𝑦)𝑝(𝑦, 𝑦)) i njena preneks nor-malna forma je (∃𝑦)(∀𝑥)(𝑝(𝑥, 𝑥) ∧ ¬𝑝(𝑦, 𝑦)). Skolemizacijom dobijamo for-mulu 𝑝(𝑥, 𝑥) ∧ ¬𝑝(𝑐, 𝑐), gde je 𝑐 novi simbol konstante. Neka je ℒ′ signa-tura dobijena prosirivanjem signature ℒ simbolom 𝑐. Pokazimo da je formula𝑝(𝑥, 𝑥) ∧ ¬𝑝(𝑐, 𝑐) nezadovoljiva. Pretpostavimo suprotno — pretpostavimo danavedena formula ima model. Neka je to ℒ′-struktura D = (𝐷, 𝐼ℒ

′) sa valu-

acijom 𝑣. Neka je 𝐼ℒ′(𝑝) = 𝑝𝐼 i 𝐼ℒ

′(𝑐) = 𝑐𝐼 . Vazi 𝐼𝑣(𝑝(𝑥, 𝑥) ∧ ¬𝑝(𝑐, 𝑐)) = 1

tj. 𝐼𝑣((∀𝑥)(𝑝(𝑥, 𝑥)∧¬𝑝(𝑐, 𝑐))) = 1, pa za svaku valuaciju 𝑤 takvu da je 𝑤 ∼𝑥 𝑣vazi 𝐼𝑤(𝑝(𝑥, 𝑥) ∧ ¬𝑝(𝑐, 𝑐)) = 1. To, dakle, vazi i za valuaciju 𝑤 u kojoj je𝑤(𝑥) = 𝑐𝐼 . Iz 𝐼𝑤(𝑝(𝑥, 𝑥) ∧ ¬𝑝(𝑐, 𝑐)) = 1 sledi 𝐼𝑤(𝑝(𝑥, 𝑥)) = 1 i 𝐼𝑤(𝑝(𝑐, 𝑐)) = 0.Iz 𝐼𝑤(𝑝(𝑥, 𝑥)) = 1 sledi 𝑝𝐼(𝑐𝐼 , 𝑐𝐼) = 1, a iz 𝐼𝑤(𝑝(𝑐, 𝑐)) = 0 sledi 𝑝𝐼(𝑐𝐼 , 𝑐𝐼) = 0,sto je kontradikcija. Dakle, formula 𝑝(𝑥, 𝑥) ∧ ¬𝑝(𝑐, 𝑐) je nezadovoljiva, pa jepolazna formula 𝒜 valjana.

Pitanja i zadaci

Pitanje 8.25. Navesti algoritam PRENEX.

Pitanje 8.26. Dokazati da je formula dobijena algoritmom PRENEX logickiekvivalentna ulaznoj formuli.

Pitanje 8.27. Kako se zove postupak kojim se formula prvog reda trans-formise u formulu bez kvantifikatora?

Pitanje 8.28. Navesti teoremu o skolemizaciji.

Pitanje 8.29. Ako je formula ℬ dobijena od formule 𝒜 skolemizacijom, kakavodnos vazi za ove dve formule?

Pitanje 8.30. Zasto formula 𝒜 i formula dobijena od nje skolemizacijomnisu logicki ekvivalentne?

Pitanje 8.31. Kada za dve formule 𝐴 i 𝐵 logike prvog reda kazemo da suslabo ekvivalentne?

Pitanje 8.32. Primenom koja tri koraka se dobija klauzalna forma formule𝒜?

Pitanje 8.33. U kakvom su odnosu formula 𝒜 i njena klauzalna forma?

Elektro

nsko

izdanje(2017)

173 8. Logika prvog reda

Zadatak 8.18. Odrediti klauzalne forme za formule:(a) (∃𝑥)𝒜1 ∧ (∃𝑥)𝒜2 ⇒ (∃𝑥)(𝒜1 ∧ 𝒜2)(b) (∀𝑥)𝒜1 ∨ (∀𝑥)𝒜2 ⇒ (∀𝑥)(𝒜1 ∨ 𝒜2)(c) (∀𝑥)(∃𝑦)𝒜 ⇒ (∃𝑦)𝒜(𝑓(𝑦), 𝑦)

8.6 Unifikacija

Problem unifikacije je problem ispitivanja da li postoji supstitucija koja cinidva izraza (dva terma ili dve formule) jednakim.

Definicija 8.18 (Unifikabilnost i unifikator). Ako su 𝑒1 i 𝑒2 izrazi i akopostoji supstitucija 𝜎 takva da vazi 𝑒1𝜎 = 𝑒2𝜎, onda kazemo da su izrazi𝑒1 i 𝑒2 unifikabilni i da je supstitucija 𝜎 unifikator za ta dva izraza.

Primer 8.23. Neka je term 𝑡1 jednak 𝑔(𝑥, 𝑧), neka je term 𝑡2 jednak 𝑔(𝑦, 𝑓(𝑦))i neka je 𝜎 supstitucija [𝑦 ↦→ 𝑥, 𝑧 ↦→ 𝑓(𝑥)]. Tada je i 𝑡1𝜎 i 𝑡2𝜎 jednako𝑔(𝑥, 𝑓(𝑥)), pa su termovi 𝑡1 i 𝑡2 unifikabilni, a 𝜎 je (jedan) njihov unifika-tor. Unifikator termova 𝑡1 i 𝑡2 je npr. i [𝑥 ↦→ 𝑎, 𝑦 ↦→ 𝑎, 𝑧 ↦→ 𝑓(𝑎)]. Termovi𝑔(𝑥, 𝑥) i 𝑔(𝑦, 𝑓(𝑦)) nisu unifikabilni.

Dva unifikabilna izraza mogu da imaju vise unifikatora. Za dva unifikatora𝜎1 i 𝜎2 kazemo da su jednaka do na preimenovanje promenljivih ako postojisupstitucija 𝜆 koja je oblika [𝑣′1 ↦→ 𝑣′′1 , 𝑣

′2 ↦→ 𝑣′′2 , . . . , 𝑣

′𝑛 ↦→ 𝑣′′𝑛], pri cemu su 𝑣′𝑖 i

𝑣′′𝑖 simboli promenljivih i vazi 𝜎1𝜆 = 𝜎2.

Definicija 8.19 (Najopstiji unifikator). Supstitucija 𝜎 je najopstiji uni-fikator za izraze 𝑒1 i 𝑒2 ako svaki unifikator 𝜏 izraza 𝑒1 i 𝑒2 moze bitipredstavljen u obliku 𝜏 = 𝜎𝜇 za neku supstituciju 𝜇.

Na osnovu definicije, svaki unifikator izraza 𝑒1 i 𝑒2 moze biti dobijen odnajopstijeg unifikatora primenom neke supstitucije. Svaka dva unifikabilnaizraza imaju najopstiji unifikator. Moze se dokazati da za dva izraza postojinajvise jedan najopstiji unifikator (do na preimenovanje promenljivih).

Na slici 8.3 dat je opis opsteg algoritma za odredivanje najopstijeg unifika-tora za niz parova izraza. Algoritam unifikacije ili vraca trazenu supstitucijuili se zaustavlja sa uspehom, ukazujuci na to da trazena supstitucija ne postoji.

Primetimo da je korak 6 algoritma moguce u opstem slucaju primeniti navise nacina. Bilo koji od tih nacina vodi istom rezultatu — neuspehu (ako nepostoji trazeni unifikator) ili jednom od unifikatora koji se mogu razlikovatisamo do na preimenovanje promenljivih.

Primer 8.24. Ilustrujmo rad algoritma za odredivanje na primeru sledeca dvapara:

(𝑔(𝑦), 𝑥)

Elektro

nsko

izdanje(2017)

8.6. Unifikacija 174

Algoritam: Najopstiji unifikator

Ulaz: Niz parova izraza (𝑠1, 𝑡1), (𝑠2, 𝑡2), . . . , (𝑠𝑛, 𝑡𝑛)Izlaz: Najopstiji unifikator (ako on postoji) 𝜎 takav da vazi 𝑠1𝜎 = 𝑡1𝜎, 𝑠2𝜎 =𝑡2𝜎, . . . , 𝑠𝑛𝜎 = 𝑡𝑛𝜎 .

Primenjuj, dok je to moguce, sledece korake:

1. Ako postoje parovi koji imaju vise od jednog pojavljivanja, obrisi zasvaki od njih sva pojavljivanja osim jednog (factoring).

2. Obrisi sve parove oblika (𝑡, 𝑡) (tautology).

3. Ako je 𝑥 promenljiva i 𝑡 term koji nije promenljiva i ako se (𝑡, 𝑥) poja-vljuje u nizu parova, zameni par (𝑡, 𝑥) parom (𝑥, 𝑡). Ovo uraditi za sveparove tog oblika (orientation).

4. Pretpostavimo da je par (𝑠, 𝑡) element niza parova i da ni 𝑠 ni 𝑡 nisupromenljive. Razmotri sledece slucajeve:

(a) Ako je 𝑠 jednako 𝜙(𝑢1, 𝑢2, . . . , 𝑢𝑘) i 𝑡 je jednako 𝜙(𝑣1, 𝑣2, . . . , 𝑣𝑘)(gde je 𝜙 funkcijski ili predikatski simbol), onda dodaj parove(𝑢1, 𝑣1), (𝑢2, 𝑣2), . . ., (𝑢𝑘, 𝑣𝑘) i zatim obrisi par (𝑠, 𝑡) (decom-position).

(b) Ako su 𝑠 i 𝑡 bilo koje druge forme, zaustavi rad i kao rezultat vratineuspeh (ovo se odnosi na slucajeve kada je jedan od termovasimbol konstante, a drugi nije; kada se u 𝑠 i 𝑡 razlikuju vodecifunkcijski (odnosno predikatski) simboli i kada su vodeci funkcijski(odnosno predikatski) simboli 𝑠 i 𝑡 razlicite arnosti) (collision).

5. Ako je 𝑥 promenljiva i 𝑡 term koji sadrzi 𝑥 i par (𝑥, 𝑡) se pojavljuje utekucem nizu parova, zaustavi rad i kao rezultat vrati neuspeh (cycle).

6. Ako je 𝑥 promenljiva i 𝑡 term koji ne sadrzi 𝑥, 𝑥 se pojavljuje i unekim drugim parovima i (𝑥, 𝑡) se pojavljuje u nizu parova, onda primenisupstituciju [𝑥 ↦→ 𝑡] na sve druge parove (application).

Ako nije moguce primeniti nijedan od navedenih koraka vrati tekuci skupparova kao najopstiji unifikator.

Slika 8.3: Algoritam Najopstiji unifikator

Elektro

nsko

izdanje(2017)

175 8. Logika prvog reda

(𝑓(𝑥, ℎ(𝑥), 𝑦), 𝑓(𝑔(𝑧), 𝑤, 𝑧))

Polazni niz parova je(𝑔(𝑦), 𝑥), (𝑓(𝑥, ℎ(𝑥), 𝑦), 𝑓(𝑔(𝑧), 𝑤, 𝑧)).Primenom koraka 3 dobijamo(𝑥, 𝑔(𝑦)), (𝑓(𝑥, ℎ(𝑥), 𝑦), 𝑓(𝑔(𝑧), 𝑤, 𝑧)).Primenom koraka 4(𝑎) dobijamo(𝑥, 𝑔(𝑦)), (𝑥, 𝑔(𝑧)), (ℎ(𝑥), 𝑤), (𝑦, 𝑧).Korak 6 je moguce primeniti na vise nacina. Primenom koraka 6 za 𝑦 = 𝑧

dobijamo(𝑥, 𝑔(𝑧)), (𝑥, 𝑔(𝑧)), (ℎ(𝑥), 𝑤), (𝑦, 𝑧).Primenom koraka 1 dobijamo(𝑥, 𝑔(𝑧)), (ℎ(𝑥), 𝑤), (𝑦, 𝑧).Primenom koraka 3 dobijamo(𝑥, 𝑔(𝑧)), (𝑤, ℎ(𝑥)), (𝑦, 𝑧).Primenom koraka 6 dobijamo(𝑥, 𝑔(𝑧)), (𝑤, ℎ(𝑔(𝑧))), (𝑦, 𝑧).Ovaj niz parova odreduje trazeni najopstiji unifikator 𝜎. Za

𝜎 = [𝑥 ↦→ 𝑔(𝑧), 𝑤 ↦→ ℎ(𝑔(𝑧)), 𝑦 ↦→ 𝑧]

vazi𝑔(𝑦)𝜎 = 𝑥𝜎

𝑓(𝑥, ℎ(𝑥), 𝑦)𝜎 = 𝑓(𝑔(𝑧), 𝑤, 𝑧)𝜎

tj. vazi𝑔(𝑧) = 𝑔(𝑧)

𝑓(𝑔(𝑧), ℎ(𝑔(𝑧)), 𝑧) = 𝑓(𝑔(𝑧), ℎ(𝑔(𝑧)), 𝑧) .

Primer 8.25. Razmotrimo sledeci par:

(𝑔(𝑥, 𝑥), 𝑔(𝑦, 𝑓(𝑦))) .

Primenom koraka 4(𝑎) dobijamo(𝑥, 𝑦), (𝑥, 𝑓(𝑦)).Korak 6 moze se primeniti samo na dva nacina:

� primenom koraka za par (𝑥, 𝑦); tada se dobija (𝑥, 𝑦), (𝑦, 𝑓(𝑦)), odakle se,primenom koraka 5 dolazi do neuspeha.

� primenom koraka za par 𝑥 = 𝑓(𝑦)); tada se dobija (𝑓(𝑦), 𝑦), (𝑥, 𝑓(𝑦)),odakle se, primenom koraka 3 i koraka 5 dolazi do neuspeha.

Bez dokaza navodimo teoremu o korektnosti navedenog algoritma za odre-divanje najopstijeg unifikatora.

Elektro

nsko

izdanje(2017)

8.6. Unifikacija 176

Teorema 8.9 (Korektnost algoritma Najopstiji unifikator). AlgoritamNajopstiji unifikator zadovoljava sledece uslove:

� zaustavlja se;

� ako vrati supstituciju, onda je ona najopstiji unifikator za dati nizparova izraza;

� ako se algoritam zaustavi sa neuspehom, onda ne postoji unifikatorza dati niz parova izraza.

Navedeni algoritam nije efikasan. Postoje znatno efikasniji algoritmi za uni-fikaciju. Mnogi od njih zasnovani su na koriscenju pogodnih struktura podatakai implicitnom primenjivanju supstitucije (iz koraka 6). Neki od tih algoritamaimaju linearnu slozenost (po broju polaznih parova), ali, u opstem slucaju,najopstiji unifikator moze imati i eksponencijalnu duzinu (po broju polaznihparova), te ga nije moguce eksplicitno predstaviti u linearnom vremenu. Toilustruje sledeci primer.

Primer 8.26. Za skup parova

(𝑥1, 𝑓(𝑥0, 𝑥0))

(𝑥2, 𝑓(𝑥1, 𝑥1))

. . .

(𝑥𝑛, 𝑓(𝑥𝑛−1, 𝑥𝑛−1))

Najopstiji unifikator sadrzi zamenu 𝑥𝑛 ↦→ 𝑡, gde je 𝑡 term koji sadrzi samosimbole 𝑥0 i 𝑓 , pri cemu ima 2𝑛 − 1 pojavljivanja simbola 𝑓 .

Unifikacija ima mnoge primene. Jedna od najznacajnijih je u metodu rezo-lucije.

Pitanja i zadaci

Pitanje 8.34. Navesti primer izraza koji pokazaju da relacija unifikabilnostinije tranzitivna.

Pitanje 8.35. Ako je za neka dva izraza 𝜎 neki unifikator, a 𝜆 najopstijiunifikator, kakav onda postoji unifikator 𝜇?

Pitanje 8.36. Do na sta dva izraza imaju jedinstven najopstiji unifikator?

Pitanje 8.37. Kako glasi pravilo cycle algoritma Najopstiji unifikator?

Pitanje 8.38. U kom slucaju je primenljivo pravilo decomposition u algo-ritmu Najopstiji unifikator?

Elektro

nsko

izdanje(2017)

177 8. Logika prvog reda

Pitanje 8.39. U kojim koracima algoritam Najopstiji unifikator moze da vratineuspeh?

Pitanje 8.40. Navesti algoritam Najopstiji unifikator.

Pitanje 8.41. Ako dva izraza nisu unifikabilna, da li je moguce da se algo-ritam Najopstiji unifikator zaustavi sa uspehom?

Pitanje 8.42. Ako dva izraza nisu unifikabilna, da li je moguce da se algo-ritam Najopstiji unifikator zaustavi sa neuspehom?

Pitanje 8.43. Ako dva izraza nisu unifikabilna, da li je moguce da se algo-ritam Najopstiji unifikator ne zaustavi?

Pitanje 8.44. Da li algoritam Najopstiji unifikator pripada klasi p? Zasto?

Pitanje 8.45. Sta je najopstiji unifikator za termove 𝑓(𝑥, 𝑔(𝑎, 𝑦)) i 𝑓(𝑧, 𝑔(𝑥, 𝑧))(𝑥, 𝑦 i 𝑧 su simboli promenljivih, 𝑎 je simbol konstante)?

Pitanje 8.46. Sta je najopstiji unifikator za termove 𝑓(𝑥, 𝑔(𝑎, 𝑧)) i 𝑓(𝑏, 𝑔(𝑦, 𝑥))(𝑥, 𝑦 i 𝑧 su simboli promenljivih, 𝑎 i 𝑏 su simboli konstanti)?

Pitanje 8.47. Sta je najopstiji unifikator za termove 𝑓(𝑎, 𝑔(𝑥, 𝑦)) i 𝑓(𝑧, 𝑔(𝑎, 𝑧))(𝑥, 𝑦 i 𝑧 su simboli promenljivih, 𝑎 je simbol konstante)?

Zadatak 8.19. Odrediti najopstiji unifikator za sledeci skup parova termova:

{(𝑔(𝑥, ℎ(𝑦, 𝑧)), 𝑔(𝑢, 𝑥)), (𝑓(𝑥), 𝑓(ℎ(𝑐, 𝑣))), (𝑔(𝑧, 𝑢), 𝑔(𝑦, 𝑢))} .

Zadatak 8.20. Ispitati da li je relacija unifikabilnosti tranzitivna.

Zadatak 8.21.√

Dokazati da za dva izraza postoji najvise jedan najopstijiunifikator (do na preimenovanje promenljivih).

8.7 Metod rezolucije

Metod rezolucije formulisao je Alan Robinson 1965. godine, sledeci mno-gobrojne prethodne rezultate. Metod rezolucije je postupak za ispitivanje(ne)zadovoljivosti formule logike prvog reda u klauzalnoj formi, tj. za ispiti-vanje (ne)zadovoljivosti skupa klauza logike prvog reda. Metod se moze pojed-nostaviti tako da je primenjljiv za ispitivanje (ne)zadovoljivosti skupa klauzaiskazne logike.

Formula koja je u konjunktivnoj normalnoj formi moze da ima konjunktekoji se ponavljaju, a njeni konjunkti mogu da imaju literale koji se ponavljaju.Medutim, na osnovu asocijativnosti i komutativnosti konjunkcije i disjunkci-je, kao i na osnovu logickih ekvivalencija 𝒜 ∧ 𝒜 ≡ 𝒜 i 𝒜 ∨ 𝒜 ≡ 𝒜, takvaponavljanja mogu da se eliminisu i formula koja je u konjunktivnoj normalnojformi moze da se zameni (logicki ekvivalentnom) formulom koja je konjunkcija

Elektro

nsko

izdanje(2017)

8.7. Metod rezolucije 178

razlicitih klauza od kojih je svaka disjunkcija razlicitih literala. Dakle, formulase moze reprezentovati skupom klauza i, dalje, skupom skupova literala. Takvaformula je zadovoljiva ako i samo ako postoji interpretacija u kojoj su sve njeneklauze tacne. Klauza je zadovoljiva ako postoji interpretacija u kojoj je barjedan literal iz te klauze tacan, pa se smatra da prazna klauza, u oznaci �, nijezadovoljiva.

Sve klauze koje sadrze logicke konstante ⊤ ili ⊥ mogu biti eliminisane ilizamenjene tako da se ne promeni zadovoljivost polaznog skupa klauza i dase ove konstante ne pojavljuju u skupu klauza. Zaista, klauza koja sadrziliteral ⊤ je u svakoj valuaciji tacna, pa moze biti eliminisana (jer ne utice nazadovoljivost polaznog skupa klauza). Ako klauza 𝐶 sadrzi literal ⊥, onda tajliteral moze biti obrisan, dajuci novu klauzu 𝐶 ′ (jer je u svakoj valuaciji klauza𝐶 tacna ako i samo ako je tacna klauza 𝐶 ′).

U slucaju iskazne logike, ako je literal 𝑙 jednak iskaznom slovu 𝑝, ondasa 𝑙 oznacavamo literal ¬𝑝; ako je literal 𝑙 jednak negaciji iskaznog slova 𝑝(tj. literalu ¬𝑝), onda sa 𝑙 oznacavamo literal 𝑝. Za literale 𝑙 i 𝑙 kazemo da sumedusobno komplementni. U slucaju logike prvog reda, ako je literal 𝑙 jednak𝑝(𝑡1, 𝑡2, . . . , 𝑡𝑛), onda sa 𝑙 oznacavamo literal ¬𝑝(𝑡1, 𝑡2, . . . , 𝑡𝑛); ako je literal𝑙 jednak ¬𝑝(𝑡1, 𝑡2, . . . , 𝑡𝑛), onda sa 𝑙 oznacavamo literal 𝑝(𝑡1, 𝑡2, . . . , 𝑡𝑛). Zaliterale 𝑙 i 𝑙 kazemo da su (medusobno) komplementni.

U svom osnovnom obliku, metod rezolucije (i za iskaznu i za logiku prvogreda) proverava da li je dati skup klauza (ne)zadovoljiv. Medutim, metod semoze koristiti i za ispitivanje valjanosti. Naime, ako je potrebno ispitati da li jeformula Φ valjana, dovoljno je metodom rezolucije utvrditi da li je formula ¬Φnezadovoljiva (pri cemu je potrebno najpre formulu ¬Φ transformisati u skupklauza). Ovaj vid dokazivanja da je formula Φ valjana zovemo dokazivanjepobijanjem. Za metod rezolucije primenjen na ovaj nacin, saglasnost govorida nije moguce rezolucijom pogresno utvrditi (pobijanjem) da je neka formulavaljana, a potpunost govori da je za svaku valjanu formulu metodom rezolucijemoguce dokazati (pobijanjem) da je valjana.

Ako se izvede prazna klauza, onda to znaci da je formula ¬𝒜 nezadovoljiva,pa je 𝒜 valjana; ako u nekom koraku ne moze da se izvede nijedna nova klauza,onda to znaci da je formula ¬𝒜 zadovoljiva, pa 𝒜 nije valjana. Za razliku odiskaznog slucaja, moguc je i ishod da nove klauze mogu da se izvode beskonacno,a da se pri tome ne izvede prazna klauza.

8.7.1 Metod rezolucije za iskaznu logiku

U metodu rezolucije za iskaznu logiku primenjuje se pravilo rezolucije sle-deceg oblika:

𝐶 ′ ∨ 𝑙 𝐶 ′′ ∨ 𝑙𝐶 ′ ∨ 𝐶 ′′

Klauzu 𝐶 ′ ∨ 𝐶 ′′ zovemo rezolventom klauza 𝐶 ′ ∨ 𝑙 i 𝐶 ′′ ∨ 𝑙, a klauze 𝐶 ′ ∨ 𝑙i 𝐶 ′′ ∨ 𝑙 roditeljima rezolvente. Kazemo da klauze 𝐶 ′ ∨ 𝑙 i 𝐶 ′′ ∨ 𝑙 rezolviramo

Elektro

nsko

izdanje(2017)

179 8. Logika prvog reda

Algoritam: Metod rezolucije

Ulaz: Skup klauza 𝑆Izlaz: odgovor zadovoljiv/nezadovoljiv

1. Ako je to moguce (tj. ako se tako moze izvesti neka nova klauza), pri-meniti pravilo rezolucije (pri tome, roditelji rezolvente se ne zamenjujurezolventom, vec se rezolventa dodaje u skup tekuci skup klauza). Akoto nije moguce, vrati odgovor da je skup klauza 𝑆 zadovoljiv.

2. Ako u tekucem skupu klauza postoji prazna klauza (�), onda vratiodgovor da je skup klauza 𝑆 nezadovoljiv;

3. Idi na prvi korak.

Slika 8.4: Algoritam Metod rezolucije

pravilom rezolucije.

Metod rezolucije je postupak za ispitivanje zadovoljivosti skupa klauza kojise sastoji od uzastopnog primenjivanja pravila rezolucije (slika 8.4).

U primeni metoda rezolucije, niz klauza (polaznih i izvedenih) oznacavacemocesto sa 𝐶𝑖 (𝑖 = 1, 2, . . .). Iza izvedene klauze zapisivacemo oznake klauza izkojih je ona izvedena, kao i redne brojeve literala nad kojim je primenjeno pra-vilo rezolucije. Literale u klauzama razdvajacemo obicno simbolom ’,’ (umestosimbolom ’∨’).

Primer 8.27. Metodom rezolucije se iz skupa {{¬𝑝,¬𝑞, 𝑟}, {¬𝑝, 𝑞}, {𝑝}, {¬𝑟}}moze izvesti prazna klauza:

𝐶1 : ¬𝑝,¬𝑞, 𝑟𝐶2 : ¬𝑝, 𝑞𝐶3 : 𝑝𝐶4 : ¬𝑟𝐶5 : ¬𝑝, 𝑟 (𝐶1, 2;𝐶2, 2)𝐶6 : ¬𝑝 (𝐶4, 1;𝐶5, 2)𝐶7 : � (𝐶3, 1;𝐶6, 1)

Skup klauza {{¬𝑝,¬𝑞, 𝑟}, {¬𝑝, 𝑞}, {𝑝}, {¬𝑟}} je, dakle, nezadovoljiv.

Primer 8.28. Metodom rezolucije se iz skupa {{¬𝑝,¬𝑞, 𝑟}, {¬𝑝, 𝑞}, {𝑝}} nemoze izvesti prazna klauza. Ovaj skup klauza je, dakle, zadovoljiv.

Nad konacnim skupom promenljivih koje se pojavljuju u zadatom skupuklauza postoji konacno mnogo klauza, pa samim tim i mogucih rezolventi tokomprimene metoda rezolucije. Zbog toga se metod rezolucije zaustavlja za svakuulaznu formulu (tj. za svaki ulazni skup klauza). Moze se dokazati i vise, da je

Elektro

nsko

izdanje(2017)

8.7. Metod rezolucije 180

metod rezolucije procedura odlucivanja za zadovoljivost skupova klauza iskaznelogike.

Teorema 8.10 (Teorema o algoritmu Metod rezolucije). Metod rezolucijese zaustavlja za svaku iskaznu formulu i u zavrsnom skupu klauza postojiprazna klauza ako i samo ako je polazna formula nezadovoljiva.

Metod rezolucije moze na razne nacine biti modifikovan tako da bude efika-sniji.

8.7.2 Metod rezolucije za logiku prvog reda

U logici prvog reda, pravilo rezolucije je opstije nego u iskaznom slucaju, iumesto da zahteva da u dve klauze postoje komplementni literali, zahteva dau dve klauze postoje literali 𝒜′ i ¬𝒜′′ takvi da su atomicke formule 𝒜′ i 𝒜′′

unifikabilne. Pravilo rezolucije za logiku prvog reda (u njegovom osnovnomobliku, tzv. binarna rezolucija) moze se prikazati na sledeci nacin:

Γ′ ∨ 𝒜′ Γ′′ ∨ ¬𝒜′′

(Γ′ ∨ Γ′′)𝜎

gde su Γ′ i Γ′′ klauze, a 𝜎 je najopstiji unifikator za 𝒜′ i 𝒜′′.

Opste pravilo rezolucije omogucava rezolviranje vise literala odjednom. Onomoze biti reprezentovano na sledeci nacin:

Γ′ ∨ 𝒜′1 ∨ 𝒜′

2 ∨ . . . ∨ 𝒜′𝑚 Γ′′ ∨ ¬𝒜′′

1 ∨ ¬𝒜′′2 ∨ . . . ∨ ¬𝒜′′

𝑛

(Γ′ ∨ Γ′′)𝜎

gde je 𝜎 najopstiji unifikator za formule 𝒜′1, 𝒜′

2, . . ., 𝒜′𝑚, 𝒜′′

1 , 𝒜′′2 , . . ., 𝒜′′

𝑛.

Obe klauze na koje se primenjuje pravilo rezolucije su (implicitno) univer-zalno kvantifikovane. Zbog toga se svaka od njihovih varijabli moze preimeno-vati (jer su formule ∀𝑥𝒜(𝑥) i ∀𝑥′𝒜(𝑥′) logicki ekvivalentne). Stavise, to jeneophodno uraditi za sve deljene varijable, jer bi, inace, neke primene pravilarezolucije bile (pogresno) onemogucene (jer odgovarajuci literali ne bi bili unifi-kabilni). Preimenovanje varijabli moze se primeniti pre primene pojedinacnogpravila rezolucije ili unapred, pre primene samog metoda rezolucije. Ako sepreimenovanje varijabli primenjuje unapred, pre primene metoda rezolucije,onda ono treba da obezbedi da nikoje dve klauze nemaju zajednicku promen-ljivu. Dodatno, u svakoj novoizvedenoj klauzi treba preimenovati promenljivetako da se novi simboli promenljivih ne pojavljuju ni u jednoj drugoj klauzi.

Primer 8.29. Nad klauzama

¬𝑝(𝑥, 𝑦) ∨ ¬𝑝(𝑧, 𝑦) ∨ 𝑝(𝑥, 𝑧)

i

¬𝑝(𝑏, 𝑎)

Elektro

nsko

izdanje(2017)

181 8. Logika prvog reda

se moze primeniti pravilo rezolucije, jer su literali 𝑝(𝑥, 𝑧) i 𝑝(𝑏, 𝑎) unifikabilni(uz najopstiji unifikator 𝜎 = [𝑥 ↦→ 𝑏, 𝑧 ↦→ 𝑎]). Rezolventa ove dve klauze jeklauza

¬𝑝(𝑏, 𝑦) ∨ ¬𝑝(𝑎, 𝑦).Ako se pravilo rezolucije primenjuje dalje, onda u dobijenoj klauzi sve promen-

ljive treba da budu preimenovane (treba da dobiju imena koja do tada nisukoriscena):

¬𝑝(𝑏, 𝑦′) ∨ ¬𝑝(𝑎, 𝑦′).

Metod rezolucije za logiku prvog reda ima isti opsti oblik kao metod rezolu-cije za iskaznu logiku (slika 8.4), s tim sto se koristi opste pravilo rezolucije zalogiku prvog reda.

Primer 8.30. Dokazati da je formula 𝑝(𝑎) ⇒ (∃𝑥)𝑝(𝑥) valjana. Negacija dateformule je logicki ekvivavalentna formuli 𝑝(𝑎)∧(∀𝑥)¬𝑝(𝑥). Metod rezolucije pri-menjuje se na skup klauza {𝑝(𝑎),¬𝑝(𝑥)}. Pravilo rezolucije moguce je primenitisamo na jedan nacin — literali 𝑝(𝑎) i ¬𝑝(𝑥) se unifikuju supstitucijom [𝑥 ↦→ 𝑎]i njime se dobija prazna klauza. Odatle sledi da je formula 𝑝(𝑎) ⇒ (∃𝑥)𝑝(𝑥)valjana.

Primer 8.31. Formula (∀𝑥)(∃𝑦)𝑝(𝑥, 𝑦) ⇒ (∃𝑦)(∀𝑥)𝑝(𝑥, 𝑦) nije valjana. Nega-cija date formule je logicki ekvivalentna sa formulom (∀𝑥)(∃𝑦)(𝑝(𝑥, 𝑦)∧(∀𝑦)(∃𝑥)¬𝑝(𝑥, 𝑦)) i sa formulom (∀𝑥)(∃𝑦)(∀𝑢)(∃𝑣)(𝑝(𝑥, 𝑦) ∧ ¬𝑝(𝑣, 𝑢)). Skolemizacijomse dobija skup od dve klauze: {𝑝(𝑥, 𝑓(𝑥)),¬𝑝(𝑔(𝑥, 𝑢), 𝑢)}. Pravilo rezolucijenije moguce primeniti na ove dve klauze, odakle sledi da je formula (∀𝑥)(∃𝑦)(𝑝(𝑥, 𝑦) ∧ (∀𝑦)(∃𝑥)¬𝑝(𝑥, 𝑦)) zadovoljiva, tj. polazna formula nije valjana.

Da bi se dokazalo da je neka formula 𝒜 logicka posledica formula ℬ1, ℬ2,. . ., ℬ𝑛 potrebno je dokazati da je formula ℬ1 ∧ ℬ2 ∧ . . . ∧ ℬ𝑛 ⇒ 𝒜 valjana,tj. dokazati da formula ¬(ℬ1 ∧ℬ2 ∧ . . .∧ℬ𝑛 ⇒ 𝒜) nije zadovoljiva, tj. dokazatida formula ℬ1 ∧ ℬ2 ∧ . . . ∧ ℬ𝑛 ∧ ¬𝒜 nije zadovoljiva.

U primenama metoda rezolucije, niz klauza (polaznih i izvedenih) oznacava-cemo cesto sa 𝐶𝑖 (𝑖 = 1, 2, . . .). Iza izvedene klauze zapisivacemo oznake klauzaiz kojih je ona izvedena, redne brojeve literala u tim klauzama, iskorisceninajopstiji unifikator, kao i supstituciju kojom se preimenuju promenljive.

Primer 8.32. Dokazimo da je formula

(∀𝑥)(∃𝑦)𝑞(𝑥, 𝑦)

logicka posledica skupa formula

{(∀𝑥)(∃𝑦)𝑝(𝑥, 𝑦), (∀𝑥)(∀𝑦)(𝑝(𝑥, 𝑦) ⇒ 𝑞(𝑥, 𝑦))} .

Dovoljno je dokazati da je formula

𝒜 = ((∀𝑥)(∃𝑦)𝑝(𝑥, 𝑦) ∧ (∀𝑥)(∀𝑦)(𝑝(𝑥, 𝑦) ⇒ 𝑞(𝑥, 𝑦))) ⇒ (∀𝑥)(∃𝑦)𝑞(𝑥, 𝑦)

Elektro

nsko

izdanje(2017)

8.7. Metod rezolucije 182

valjana. Preneks normalna forma negacije ove formule je

(∃𝑤)(∀𝑥)(∃𝑦)(∀𝑢)(∀𝑣)(∀𝑧)(𝑝(𝑥, 𝑦) ∧ (¬𝑝(𝑢, 𝑣) ∨ 𝑞(𝑢, 𝑣)) ∧ ¬𝑞(𝑤, 𝑧)) .

Nakon skolemizacije, ova formula dobija oblik:

(∀𝑥)(∀𝑢)(∀𝑣)(∀𝑧)(𝑝(𝑥, 𝑔(𝑥)) ∧ (¬𝑝(𝑢, 𝑣) ∨ 𝑞(𝑢, 𝑣)) ∧ ¬𝑞(𝑐, 𝑧)) ,

pri cemu je 𝑐 nova Skolemova konstanta, a 𝑔 nova Skolemova funkcija. Ko-njunktivna normalna forma formule

𝑝(𝑥, 𝑔(𝑥)) ∧ (¬𝑝(𝑢, 𝑣) ∨ 𝑞(𝑢, 𝑣)) ∧ ¬𝑞(𝑐, 𝑧)

je𝑝(𝑥, 𝑔(𝑥)) ∧ (¬𝑝(𝑢, 𝑣) ∨ 𝑞(𝑢, 𝑣)) ∧ ¬𝑞(𝑐, 𝑧) .

Elementi pocetnog skupa klauza su:𝐶1 : 𝑝(𝑥, 𝑔(𝑥)) (prvi deo hipoteze)𝐶2 : ¬𝑝(𝑢, 𝑣), 𝑞(𝑢, 𝑣) (drugi deo hipoteze)𝐶3 : ¬𝑞(𝑐, 𝑧) (zakljucak)

Prazna klauza se izvodi na sledeci nacin.𝐶4 : 𝑞(𝑥′, 𝑔(𝑥′)) (𝐶1, 1;𝐶2, 1), [𝑣 ↦→ 𝑔(𝑥), 𝑢 ↦→ 𝑥];

preimenovanje: [𝑥 ↦→ 𝑥′]𝐶5 : � (𝐶3, 1;𝐶4, 1), [𝑥

′ ↦→ 𝑐, 𝑧 ↦→ 𝑔(𝑐)]

Primer 8.33. Dokazimo da je formula

∀𝑥, 𝑦, 𝑧(𝑎(𝑦, 𝑥) ∧ 𝑏(𝑧, 𝑥) ⇒ 𝑎(𝑦, 𝑧)

logicka posledica skupa formula {∀𝑥, 𝑦(𝑎(𝑥, 𝑦) ⇒ ¬𝑎(𝑦, 𝑥)), ∀𝑥, 𝑦(𝑎(𝑥, 𝑦) ⇔𝑏(𝑦, 𝑥)), ∀𝑥, 𝑦, 𝑧(𝑎(𝑥, 𝑦) ∧ 𝑎(𝑦, 𝑧) ⇒ 𝑎(𝑥, 𝑧))} (videti primere 8.1 i 8.15). Do-voljno je dokazati da je formula

(∀𝑥, 𝑦(𝑎(𝑥, 𝑦) ⇒ ¬𝑎(𝑦, 𝑥)))∧(∀𝑥, 𝑦(𝑎(𝑥, 𝑦) ⇔ 𝑏(𝑦, 𝑥)))∧(∀𝑥, 𝑦, 𝑧(𝑎(𝑥, 𝑦) ∧ 𝑎(𝑦, 𝑧) ⇒ 𝑎(𝑥, 𝑧)))⇒∀𝑥, 𝑦, 𝑧(𝑎(𝑦, 𝑥) ∧ 𝑏(𝑧, 𝑥) ⇒ 𝑎(𝑦, 𝑧))

valjana. Odgovarajuci skup klauza je:𝐶1 : ¬𝑎(𝑥1, 𝑦1) ∨ ¬𝑎(𝑦1, 𝑥1) (prvi deo hipoteze)𝐶2 : ¬𝑎(𝑥2, 𝑦2) ∨ 𝑏(𝑦2, 𝑥2) (drugi deo hipoteze)𝐶3 : ¬𝑏(𝑥3, 𝑦3) ∨ 𝑎(𝑦3, 𝑥3) (drugi deo hipoteze)𝐶4 : ¬𝑎(𝑥4, 𝑦4) ∨ ¬𝑎(𝑦4, 𝑧4) ∨ 𝑎(𝑥4, 𝑧4) (treci deo hipoteze)𝐶5 : 𝑎(𝑐𝑦, 𝑐𝑥) (prvi deo zakljucka)𝐶6 : 𝑏(𝑐𝑧, 𝑐𝑥) (drugi deo zakljucka)𝐶7 : ¬𝑎(𝑐𝑦, 𝑐𝑧) (treci deo zakljucka)

Prazna klauza se izvodi na sledeci nacin.𝐶8 : ¬𝑎(𝑐𝑦, 𝑦5) ∨ ¬𝑎(𝑦5, 𝑐𝑧) (𝐶7, 1;𝐶4, 3), [𝑥4 ↦→ 𝑐𝑦, 𝑧4 ↦→ 𝑐𝑧];

preimenovanje: [𝑦4 ↦→ 𝑦5]𝐶9 : ¬𝑎(𝑐𝑥, 𝑐𝑧) (𝐶8, 1;𝐶5, 1), [𝑦5 ↦→ 𝑐𝑥];𝐶10 : ¬𝑏(𝑐𝑧, 𝑐𝑥) (𝐶3, 1;𝐶9, 1), [𝑦3 ↦→ 𝑐𝑥, 𝑥3 ↦→ 𝑐𝑧];𝐶11 : � (𝐶6, 1;𝐶10, 1), []

Elektro

nsko

izdanje(2017)

183 8. Logika prvog reda

Primer 8.34. Formula ∀𝑥∀𝑦 (𝑝(𝑥, 𝑦) ⇒ 𝑝(𝑦, 𝑥)) je logicka posledica formula∀𝑥 𝑝(𝑥, 𝑥) i ∀𝑢∀𝑣∀𝑤 (𝑝(𝑢, 𝑣) ∧ 𝑝(𝑤, 𝑣) ⇒ 𝑝(𝑢,𝑤)), pa je formula

𝒜 = (∀𝑥 𝑝(𝑥, 𝑥)) ∧ (∀𝑢∀𝑣∀𝑤 (𝑝(𝑢, 𝑣) ∧ 𝑝(𝑤, 𝑣) ⇒ 𝑝(𝑢,𝑤))) ⇒

(∀𝑥∀𝑦 (𝑝(𝑥, 𝑦) ⇒ 𝑝(𝑦, 𝑥)))

valjana.𝐶1 : 𝑝(𝑥, 𝑥)𝐶2 : ¬𝑝(𝑢, 𝑣),¬𝑝(𝑤, 𝑣), 𝑝(𝑢,𝑤)𝐶3 : 𝑝(𝑎, 𝑏)𝐶4 : ¬𝑝(𝑏, 𝑎)𝐶5 : ¬𝑝(𝑢′, 𝑏), 𝑝(𝑢′, 𝑎) (𝐶2, 2;𝐶3, 1) [𝑤 ↦→ 𝑎, 𝑣 ↦→ 𝑏];

preimenovanje: [𝑢 ↦→ 𝑢′]𝐶6 : ¬𝑝(𝑏, 𝑏) (𝐶4, 1;𝐶5, 2) [𝑢

′ ↦→ 𝑏]𝐶7 : � (𝐶1, 1;𝐶6, 1) [𝑥 ↦→ 𝑏]

Da bi se pokazalo da je neka formula nezadovoljiva, dovoljno je, primenommetoda rezolucije, iz njenog skupa klauza izvesti praznu klauzu. Dodatno,metod rezolucije ima svojstvo da iz zadovoljivog skupa klauza ne moze daizvede nezadovoljiv skup klauza. Ova dva svojstva obezbeduju potpunost isaglasnost metoda rezolucije.

Teorema 8.11 (Saglasnost i potpunost metoda rezolucije). Metod rezo-lucije je saglasan: ako je primenom metoda dobijena prazna klauza, ondaje i polazni skup klauza nezadovoljiv (ili, drugim recima, iz zadovoljivogskupa klauza moze se dobiti samo zadovoljiv skup klauza);

Metod rezolucije je potpun za pobijanje: iz svakog nezadovoljivog skupaklauza moguce je izvesti praznu klauzu.

Logika prvog reda nije odluciva, pa najvise sto moze metod rezolucije dabude je procedura poluodlucivanja (za problem ispitivanja valjanosti). Dakle,metodom rezolucije se iz svakog nezadovoljivog skupa klauza Γ moze izvestiprazna klauza, cime je dokazano da je nezadovoljiv, ali ne moze se za svakizadovoljiv skup klauza Γ dokazati da je zadovoljiv (naime, moguce je izve-sti beskonacno mnogo rezolventi). Dualno, pobijanjem se metodom rezolucijemoze za svaku valjanu formulu dokazati da je valjana, ali se ne moze za svakuformulu koja nije valjana utvrditi da nije valjana.

Primetimo da u opisu metoda rezolucije nije specifikovan nacin na koji sebiraju klauze nad kojim se primenjuje pravilo rezolucije. Takode, teorema opotpunosti za pobijanje (teorema 8.11) tvrdi da se iz svakog nezadovoljivogskupa klauza moze izvesti prazna klauza, a ne tvrdi da se iz svakog nezado-voljivog skupa klauza mora izvesti prazna klauza bez obzira na izbor klauzaza rezolviranje. Naime, u zavisnosti od izbora klauza na koje se primenjujepravilo rezolucije moguce je da se i za nezadovoljiv skup klauza metod rezolu-cije ne zaustavlja. Nacin na koji se biraju klauze na koje se primenjuje pravilorezolucije cini strategiju za upravljanje metoda rezolucije.

Elektro

nsko

izdanje(2017)

8.7. Metod rezolucije 184

Jedna od mogucnosti za obezbedivanje potpunosti metoda rezolucije u stro-zijem smislu (da postoji strategija za upravljanje metoda rezolucije takva da seiz svakog nezadovoljivog skupa klauza nuzno izvodi prazna klauza u konacnomnogo koraka) je sistematsko izvodenje svih rezolventi iz skupa klauza koji sesiri tokom primene metoda. Sistematski metod rezolucije moze se definisati nasledeci nacin: metod se primenjuje u stupnjevima; prvi stupanj cini kreiranjepocetnog skupa klauza; neka pre 𝑖-tog stupnja tekuci skup klauza cine klauze𝐶1, 𝐶2, . . ., 𝐶𝑛, 𝑖-ti stupanj sastoji se od izvodenja (i dodavanja tekucem skupuklauza) svih mogucih rezolventi iz po svake dve klauze iz skupa 𝐶1, 𝐶2, . . .,𝐶𝑛 (broj tih klauza je konacan); metod se zaustavlja ako se u nekom korakuizvede prazna klauza ili ako se u nekom stupnju ne moze izvesti nijedna novaklauza.

Teorema 8.12 (Potpunost sistematskog metoda rezolucije). Ako je Γnezadovoljiv skup klauza, onda se iz njega sistematskim metodom rezolucijemora izvesti prazna klauza.

Dokaz: Ako je skup klauza Γ nezadovoljiv, onda se, na osnovu teoreme opotpunosti metoda rezolucije (teorema 8.11) iz njega metodom rezolucijemoze izvesti prazna klauza, tj. postoji niz rezolventi 𝑅1, 𝑅2, . . ., 𝑅𝑛

(koje se izvode iz pocetnih i izvedenih klauza) od kojih je poslednja unizu prazna klauza. Ako se na skup klauza Γ primeni sistematski metodrezolucije, u nekom stupnju bice (ako vec pre toga nije izvedena praznaklauza) izvedene sve klauze iz skupa 𝑅1, 𝑅2, . . ., 𝑅𝑛, pa i prazna klauza.

Ocigledno je da je sistematski metod rezolucije izuzetno neefikasan. Postojivise strategija koje obezbeduju nuzno izvodenje prazne klauze iz nezadovoljivogskupa klauza (tj. sprecavaju beskonacne petlje), ali na efikasniji nacin. Smanji-vanje izvodenja nepotrebnih klauza jedan je od najvaznijih problema metodarezolucije.

Jedna od strategija za upravljanje metodom rezolucije zove se linearna ula-zna rezolucija — linearna, jer se u svakoj primeni pravila rezolucije koristiposlednja klauza u nizu; ulazna, jer se u svakoj primeni pravila rezolucije kori-sti jedna od pocetnih klauza. S obzirom na to da ona iskljucuje mnoge puteveizvodenja novih klauza, linearna ulazna rezolucija je obicno znatno efikasnijanego opsti metod rezolucije. Medutim, iz istog razloga, linearna ulazna rezolu-cija nema svojstvo potpunosti (kao sto ga ima opsti metod rezolucije). Linearnaulazna rezolucija ima svojstvo potpunosti za pobijanje za neke klase formula.Na primer, linearna ulazna rezolucija ima svojstvo potpunosti za pobijanje sku-pova Hornovih klauza — klauza u kojima postoji najvise jedan literal koji nijepod negacijom (tj. linearna ulazna rezolucija moze dovesti do prazne klauze zasvaki kontradiktoran skup Hornovih klauza). Linearna ulazna rezolucija nadHornovim klauzama se koristi u prolog-u.

Elektro

nsko

izdanje(2017)

185 8. Logika prvog reda

Pitanja i zadaci

Pitanje 8.48. Sta je rezolventa klauza Γ′ ∨𝒜′ i Γ′′ ∨¬𝒜′′ je (𝜎 je najopstijiunifikator za 𝒜′ i 𝒜′′)?

Pitanje 8.49. Navesti pravilo rezolucije za logiku prvog reda.

Pitanje 8.50. Da bi se primenio metod rezolucije u kakvoj formi formulacija se nezadovoljivost ispituje mora da bude?

Pitanje 8.51. Navesti teoremu o potpunosti metode rezolucije za iskaznu ipredikatsku logiku.

Pitanje 8.52. Koje korake je potrebno primeniti da bi se metodom rezolucijeispitalo da li je formula logike prvog reda 𝒜 valjana?

Pitanje 8.53. Da li se metodom rezolucije za svaku formulu logike prvog redakoja je valjana moze dokazati da je valjana?

Pitanje 8.54. Da li se metodom rezolucije za svaku formulu logike prvog redakoja nije valjana moze dokazati da nije valjana?

Pitanje 8.55. Koji su moguci ishodi primene metoda rezolucije za iskaznulogiku, a koji za logiku prvog reda?

Pitanje 8.56. Da li se metod rezolucije za iskaznu logiku uvek zaustavlja?

Pitanje 8.57. U iskaznoj logici, da li ce kako god se primenjivalo pravilorezolucije u konacnom broju koraka bice izvedena prazna klauza?

� ako je pocetni skup klauza zadovoljiv?

� ako je pocetni skup klauza nezadovoljiv?

Pitanje 8.58. U logici prvog reda, da li ce kako god se primenjivalo pravilorezolucije u konacnom broju koraka bice izvedena prazna klauza?

� ako je pocetni skup klauza zadovoljiv?

� ako je pocetni skup klauza nezadovoljiv?

Pitanje 8.59. Ukoliko je skup klauza logike prvog reda nezadovoljiv, ondase iz njega metodom rezolucije (a) uvek mora izvesti prazna klauza; (b) uvekmoze izvesti prazna klauza; (c) ne moze izvesti prazna klauza; (d) nikad nemoze izvesti prazna klauza.

Pitanje 8.60. Za koje klauze linearno-ulazna rezolucija ima svojstvo potpu-nosti?

Pitanje 8.61. Sta su to Hornove klauze i gde se koriste?

Elektro

nsko

izdanje(2017)

8.7. Metod rezolucije 186

Zadatak 8.22. Dati su skup 𝑃 od 𝑛 (𝑛 ≥ 1) iskaznih slova, skup 𝒞 svihklauza nad 𝑃 i dva podskupa, 𝑆1 i 𝑆2, skupa 𝒞.

(a) Koliko elemenata ima skup 𝒞?(b) Da li je skup 𝒞 zadovoljiv?(c) Ako su skupovi 𝑆1 i 𝑆2 zadovoljivi, da li je i skup 𝑆1 ∪ 𝑆2 zadovoljiv?(d) Ako su skupovi 𝑆1 i 𝑆2 zadovoljivi, da li je i skup 𝑆1 ∩ 𝑆2 zadovoljiv?(e) Ako su skupovi 𝑆1 i 𝑆2 kontradiktorni, da li skup 𝑆1∪𝑆2 moze da bude

kontradiktoran?(f) Ako su skupovi 𝑆1 i 𝑆2 kontradiktorni, da li skup 𝑆1∪𝑆2 mora da bude

kontradiktoran?(g) Ako su skupovi 𝑆1 i 𝑆2 kontradiktorni, da li skup 𝑆1∩𝑆2 moze da bude

kontradiktoran?(h) Ako su skupovi 𝑆1 i 𝑆2 kontradiktorni, da li skup 𝑆1∩𝑆2 mora da bude

kontradiktoran?(i) Ako je skup 𝑆1 zadovoljiv, da li skup 𝒞 ∖ 𝑆1 moze da bude zadovoljiv?(j) Ako je skup 𝑆1 zadovoljiv, da li skup 𝒞 ∖ 𝑆1 mora da bude zadovoljiv?

Zadatak 8.23. Dokazati metodom rezolucije za iskaznu logiku da su naredneformule tautologije:

(a) 𝑞 ⇒ (𝑝 ⇒ 𝑞)(b) ((𝑝 ⇒ 𝑞) ∧ (𝑞 ⇒ 𝑟)) ⇒ (𝑝 ⇒ 𝑟)(c) ((𝑝 ⇒ 𝑞) ∧ (𝑝 ⇒ 𝑟)) ⇒ (𝑝 ⇒ (𝑞 ∧ 𝑟))(d) (((𝑝 ⇒ 𝑟) ∧ (𝑞 ⇒ 𝑟)) ∧ (𝑝 ∨ 𝑞)) ⇒ 𝑟(e) ¬(𝑝 ∧ 𝑞) ⇒ (¬𝑝 ∨ ¬𝑞)(f) ¬(𝑝 ∨ 𝑞) ⇒ (¬𝑝 ∧ ¬𝑞)(g) (¬𝑝 ∨ ¬𝑞) ⇒ ¬(𝑝 ∧ 𝑞)(h) (𝑝 ∨ (𝑞 ∧ 𝑟)) ⇒ ((𝑝 ∨ 𝑞) ∧ (𝑝 ∨ 𝑟))

Zadatak 8.24. Koristeci metod rezolucije za logiku prvog reda dokazati davazi:

(∀𝑥)(𝑝(𝑥) ⇒ 𝑞(𝑥)), 𝑝(𝑐) |= 𝑞(𝑐) .

Zadatak 8.25. Metodom rezolucije za logiku prvog reda dokazati da je na-redna formula valjana:

(∃𝑥)(∀𝑦)𝑝(𝑥, 𝑦) ⇒ (∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦) .

Zadatak 8.26. Metodom rezolucije za logiku prvog reda dokazati da je na-redna formula valjana:

(a) (∀𝑦)((∀𝑥)𝑝(𝑥) ⇒ 𝑝(𝑦))(b) (∀𝑥)𝑝(𝑥) ⇒ (∃𝑥)𝑝(𝑥)(c) ¬(∃𝑦)𝑝(𝑦) ⇒ (∀𝑦)((∃𝑥)𝑝(𝑥) ⇒ 𝑝(𝑦))(d) (∃𝑥)𝑝(𝑥) ⇒ (∃𝑦)𝑝(𝑦)(e) (∀𝑥)(𝑝(𝑥) ∧ 𝑞(𝑥)) ⇔ (∀𝑥)𝑝(𝑥) ∧ (∀𝑥)𝑞(𝑥)(f) (∀𝑥)𝑝(𝑥) ∨ (∀𝑥)𝑞(𝑥) ⇒ (∀𝑥)(𝑝(𝑥) ∨ 𝑞(𝑥))(g) (∃𝑥)(𝑝(𝑥) ∨ 𝑞(𝑥)) ⇔ (∃𝑥)𝑝(𝑥) ∨ (∃𝑥)𝑞(𝑥)(h) (∃𝑥)(𝑝(𝑥) ∧ 𝑞(𝑥)) ⇒ (∃𝑥)𝑝(𝑥) ∧ (∃𝑥)𝑞(𝑥)

Elektro

nsko

izdanje(2017)

187 8. Logika prvog reda

Zadatak 8.27. Metodom rezolucije za logiku prvog reda dokazati da je for-mula (𝐻 ∧𝐾) ⇒ 𝐿 valjana, gde je

𝐻 = (∀𝑥)(∀𝑦)(𝑝(𝑥, 𝑦) ⇒ 𝑝(𝑦, 𝑥))𝐾 = (∀𝑥)(∀𝑦)(∀𝑧)((𝑝(𝑥, 𝑦) ∧ 𝑝(𝑦, 𝑧)) ⇒ 𝑝(𝑥, 𝑧))𝐿 = (∀𝑥)(∀𝑦)(𝑝(𝑥, 𝑦) ⇒ 𝑝(𝑥, 𝑥)).

Zadatak 8.28. Metodom rezolucije za logiku prvog reda dokazati da je for-mula (∀𝑥)𝑠(𝑥) logicka posledica skupa formula {∀𝑥(𝑝(𝑥) ⇒ 𝑞(𝑥)), ∀𝑥(𝑞(𝑥) ⇒𝑠(𝑥)), ∀𝑥(𝑟(𝑥) ⇒ 𝑠(𝑥)), ∀𝑥(𝑝(𝑥) ∨ 𝑟(𝑥))}.

Zadatak 8.29. Metodom rezolucije za logiku prvog reda dokazati da je for-mula ∀𝑥∀𝑦 (𝑥 = 𝑦 ⇒ 𝑦 = 𝑥) logicka posledica formula ∀𝑥 (𝑥 = 𝑥) i∀𝑢∀𝑣∀𝑤 (𝑢 = 𝑣 ∧ 𝑤 = 𝑣 ⇒ 𝑢 = 𝑤).

Zadatak 8.30. Za narednu formulu metodom rezolucije za logiku prvog redadokazati da je valjana:

(∀𝑥)(𝒜(𝑥) ⇒ 𝐶) ⇔ ((∃𝑥)𝒜(𝑥) ⇒ 𝐶)

pri cemu je 𝐶 recenica. (Ovaj zadatak ilustruje kako metod rezolucije mozebiti oslabljen tako da se primenjuje i na formule koje nisu u klauzalnoj formi.)

Zadatak 8.31.√

Vazi sledece:Janko ima psa.Svaki vlasnik psa voli zivotinje.Nijedna osoba koja voli zivotinje ne moze da udari zivotinju.Janko ili Marko su udarili macku cije je ime Tuna.Svaka macka je zivotinja.Metodom rezolucije za logiku prvog reda dokazati da je Marko udario Tunu.

Zadatak 8.32. Prevesti na jezik logike prvog reda i dokazati metodom rezo-lucije za logiku prvog reda sledece tvrdenje: Ako su svi politicari lukavi i akosu samo pokvareni ljudi politicari, onda, ako postoji bar jedan politicar, ondaje neki pokvaren covek lukav.

8.8 Prirodna dedukcija

Pojam valjanosti je semanticke prirode, a koncept dokazivanja i sistemaza dedukciju vodi do pojma teoreme koji je sintaksicki-deduktivne prirode.Pojam teoreme je deduktivni pandan pojma valjane formule, koji je semantickeprirode. Izmedu ova dva pojma postoji veza i deduktivni sistemi obicno imajusvojstvo potpunosti i saglasnosti: ako je neka formula valjana, onda ona mozebiti dokazana u okviru deduktivnog sistema, a ako za neku formulu postojidokaz u okviru deduktivnog sistema, onda je ona sigurno valjana.

Sistemi za dedukciju su cisto sintaksicke prirode — primenjuju se kroz kom-binovanje simbola, ne razmatrajuci semantiku formula. Sisteme za dedukciju

Elektro

nsko

izdanje(2017)

8.8. Prirodna dedukcija 188

zovemo i racun – (iskazni racun u slucaju iskazne logike i predikatski racunu slucaju logike prvog reda). Postoji vise razlicitih deduktivnih sistema, a unastavku ce biti opisan samo jedan — prirodna dedukcija.

Sistem prirodne dedukcije (racun prirodne dedukcije) uveo je, 1935. godine,Gerhard Gencen sa namerom da prirodnije opise uobicajeno zakljucivanje ma-tematicara.

U prirodnoj dedukciji koriste se logicki veznici ¬, ∧, ∨, ⇒, kao i logickakonstanta ⊥. Formula 𝒜 ⇔ ℬ je kraci zapis za (𝒜 ⇒ ℬ)∧ (ℬ ⇒ 𝒜), a formula⊤ kraci zapis za 𝒜 ⇒ 𝒜. Skup formula definise se na uobicajeni nacin.

Pravila izvodenja sistema prirodne dedukcije data su na slici 8.5. Primetimoda za svaki logicki veznik i svaki kvantifikator postoje pravila koja ga uvode(pravila 𝐼-tipa) i pravila koja ga eliminisu (pravila 𝐸-tipa). Pravilo 𝑒𝑓𝑞 (Exfalso quodlibet) je jedino pravilo koje ne uvodi niti eliminise neki logicki veznik.Skup pravila sistema prirodne dedukcije za iskaznu logiku cine sva pravila saslike 8.5 izuzev onih koja ukljucuju kvantifikatore.

U pravilima izvodenja prikazanim u tabeli 8.5 simbol 𝑡 oznacava proizvo-ljan term. Simbol 𝑦 oznacava tzv. eigenvariable (pravu promenljivu) — simbolpromenljive za koju vazi tzv. eigenvariable uslov. Ovaj uslov za pravilo ∀𝐼 jeda vazi da je 𝑥 = 𝑦 ili da promenljiva 𝑦 nije slobodna u 𝒜, kao i da vazi da𝑦 nije slobodna ni u jednoj neoslobodenoj pretpostavci u izvodenju formule𝒜[𝑥 ↦→ 𝑦]. Eigenvariable uslov za pravilo ∃𝐸 je da vazi da je 𝑥 = 𝑦 ili dapromenljiva 𝑦 nije slobodna u 𝒜, kao i da vazi da 𝑦 nije slobodna u ℬ niti ubilo kojoj neoslobodenoj pretpostavci u izvodenju formule ℬ osim, eventualno,u formuli 𝒜[𝑥 ↦→ 𝑦].

Postoji sistem prirodne dedukcije za klasicnu logiku (koji zovemo sistemNK) i sistem prirodne dedukcije za intuicionisticku logiku (koji zovemo sistemNJ). U sistemu prirodne dedukcije za klasicnu logiku postoji jedna aksiomskashema: 𝒜 ∨ ¬𝒜 (tertium non datur). Sistem za intuicionisticku logiku nemaaksioma.

Tokom izvodenja dokaza u sistemu prirodne dedukcije mogu se koristiti(nedokazane) pretpostavke, ali one moraju biti eliminisane („oslobodene“) prekraja izvodenja. U zapisu pravila, [𝐹 ] oznacava da se nekoliko (mozda i nula)pojavljivanja pretpostavke 𝐹 oslobada, brise (kao nedokazane, neraspolozivepretpostavke) neposredno nakon primene pravila. Pri tome, moze ostati i ne-koliko neoslobodenih pojavljivanja pretpostavke 𝐹 . Pretpostavkama su pri-druzene oznake (obicno prirodni brojevi), koje se zapisuju i u okviru zapisaprimenjenog pravila (kako bi se znalo koja pretpostavka je oslododena u komkoraku).

U sistemu prirodne dedukcije dokaz (dedukcija, izvod) je stablo cijem jesvakom cvoru pridruzena formula, a svakom listu ili pretpostavka ili aksioma.Formula 𝐴 je teorema prirodne dedukcije ako postoji dokaz u cijem je korenu 𝐴 ikoji nema neoslobodenih pretpostavki i tada pisemo ⊢ 𝐴 i kazemo da je formula𝐴 dokaziva u sistemu prirodne dedukcije. Ako postoji dokaz, u cijem je korenuformula 𝐴 i koji ima neoslobodene pretpostavke koje pripadaju nekom skupuΓ, onda kazemo da je formula 𝐴 deduktivna posledica skupa Γ i tada pisemo

Elektro

nsko

izdanje(2017)

189 8. Logika prvog reda

[𝒜]𝑢....⊥¬𝒜 ¬𝐼, 𝑢 𝒜 ¬𝒜

⊥ ¬𝐸

𝒜 ℬ𝒜 ∧ ℬ ∧𝐼 𝒜 ∧ ℬ

𝒜 ∧𝐸 𝒜 ∧ ℬℬ ∧𝐸

𝒜𝒜 ∨ ℬ ∨𝐼 ℬ

𝒜 ∨ ℬ ∨𝐼 𝒜 ∨ ℬ

[𝒜]𝑢....𝐶

[ℬ]𝑣....𝐶

𝐶∨𝐸, 𝑢, 𝑣

[𝒜]𝑢....ℬ

𝒜 ⇒ ℬ ⇒ 𝐼, 𝑢 𝒜 𝒜 ⇒ ℬℬ ⇒ 𝐸

𝒜[𝑥 ↦→ 𝑦]

(∀𝑥)𝒜 ∀𝐼(∀𝑥)𝒜

𝒜[𝑥 ↦→ 𝑡]∀𝐸

uz dodatni uslov

𝒜[𝑥 ↦→ 𝑡]

(∃𝑥)𝒜 ∃𝐼(∃𝑥)𝒜

[𝒜[𝑥 ↦→ 𝑦]]𝑢....ℬ

ℬ ∃𝐸, 𝑢

uz dodatni uslov

⊥𝐷

𝑒𝑓𝑞

Slika 8.5: Pravila izvodenja sistema prirodne dedukcije

Γ ⊢ 𝐴. Elemente skupa Γ tada zovemo i premisama ili hipotezama dokaza. Akoje skup Γ jednak {𝐵1, 𝐵2, . . . , 𝐵𝑛}, onda pisemo 𝐵1, 𝐵2, . . . , 𝐵𝑛 ⊢ 𝐴.

Dokaz u sistemu prirodne dedukcije se obicno prikazuje u vidu stabla cijisu listovi na vrhu, a koren na dnu. To stablo se prikazuje pojednostavljeno,stilizovano (videti sliku 8.6).

Naredni primeri ilustruju primenu prirodne dedukcije za dokazivanje u is-kaznoj logici.

Primer 8.35. Formula (𝐴 ∨ 𝐵) ⇒ (𝐵 ∨ 𝐴) je teorema sistema prirodne de-

Elektro

nsko

izdanje(2017)

8.8. Prirodna dedukcija 190

𝐴

...

𝐵

...

𝐶

𝐷...

....𝐴

....𝐵

𝐶𝐷....

Slika 8.6: Deo dokaza i njegov pojednostavljeni prikaz

dukcije, tj. vazi ⊢ (𝐴 ∨𝐵) ⇒ (𝐵 ∨𝐴):

[𝐴 ∨𝐵]1[𝐴]2

𝐵 ∨𝐴∨𝐼

[𝐵]3

𝐵 ∨𝐴∨𝐼

𝐵 ∨𝐴∨𝐸, 2, 3

(𝐴 ∨𝐵) ⇒ (𝐵 ∨𝐴)⇒ 𝐼, 1

Primer 8.36. U sistemu prirodne dedukcije vazi: 𝐴 ⇒ 𝐵,𝐵 ⇒ 𝐶 ⊢ 𝐴 ⇒ 𝐶:

[𝐴]1 𝐴 ⇒ 𝐵

𝐵⇒ 𝐸

𝐵 ⇒ 𝐶𝐶

⇒ 𝐸

𝐴 ⇒ 𝐶⇒ 𝐼, 1

Primer 8.37. U sistemu prirodne dedukcije vazi ⊢ 𝐴 ⇒ (𝐴 ∨𝐵) ∧ (𝐴 ∨ 𝐶):

[𝐴]1

𝐴 ∨𝐵∨𝐼

[𝐴]1

𝐴 ∨ 𝐶∨𝐼

(𝐴 ∨𝐵) ∧ (𝐴 ∨ 𝐶)∧𝐼

𝐴 ⇒ (𝐴 ∨𝐵) ∧ (𝐴 ∨ 𝐶)⇒ 𝐼, 1

U prethodnom dokazu, primenom pravila ⇒ 𝐼 nisu morala da budu oslobodenasva pojavljivanja pretpostavke 𝐴. Na primer:

[𝐴]1

𝐴 ∨𝐵∨𝐼 𝐴

𝐴 ∨ 𝐶∨𝐼

(𝐴 ∨𝐵) ∧ (𝐴 ∨ 𝐶)∧𝐼

𝐴 ⇒ (𝐴 ∨𝐵) ∧ (𝐴 ∨ 𝐶)⇒ 𝐼, 1

Ovaj dokaz je dokaz tvrdenja 𝐴 ⊢ 𝐴 ⇒ (𝐴∨𝐵)∧(𝐴∨𝐶) (sto je slabije tvrdenjeod tvrdenja ⊢ 𝐴 ⇒ (𝐴 ∨𝐵) ∧ (𝐴 ∨ 𝐶)).

Naredni primeri ilustruju primenu prirodne dedukcije za dokazivanje u logiciprvog reda.

Elektro

nsko

izdanje(2017)

191 8. Logika prvog reda

Primer 8.38. Formula (∃𝑥)(∀𝑦)𝑝(𝑥, 𝑦) ⇒ (∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦) je teorema sistemaprirodne dedukcije (i za klasicnu i za intuicionisticku logiku). Neki matematicarbi ovu formulu (neformalno) dokazao na sledeci nacin:

1. Pretpostavimo da vazi (∃𝑥)(∀𝑦)𝑝(𝑥, 𝑦).

2. Pretpostavimo da vazi (∀𝑦)𝑝(𝑥′, 𝑦) za neko 𝑥′.

3. Neka je 𝑦′ proizvoljni objekat. Tada vazi 𝑝(𝑥′, 𝑦′).

4. Iz 𝑝(𝑥′, 𝑦′) sledi da vazi (∃𝑥)𝑝(𝑥, 𝑦′).

5. Objekat 𝑦′ je proizvoljan, pa vazi (∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦).

6. Iz (∃𝑥)(∀𝑦)𝑝(𝑥, 𝑦) i iz toga sto pretpostavka (∀𝑦)𝑝(𝑥′, 𝑦) ima za posledicu(∀𝑦)(∃𝑥) 𝑝(𝑥, 𝑦), sledi (∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦).

7. Iz pretpostavke (∃𝑥)(∀𝑦)𝑝(𝑥, 𝑦) sledi (∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦), pa vazi (∃𝑥)(∀𝑦)𝑝(𝑥, 𝑦) ⇒ (∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦).

Ovaj dokaz moze se precizno opisati u vidu dokaza u sistemu prirodne de-dukcije (i za klasicnu i za intuicionisticku logiku):

[(∃𝑥)(∀𝑦)𝑝(𝑥, 𝑦)]2

[(∀𝑦)𝑝(𝑥′, 𝑦)]1

𝑝(𝑥′, 𝑦′)∀𝐸

(∃𝑥)𝑝(𝑥, 𝑦′) ∃𝐼

(∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦) ∀𝐼

(∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦)∃𝐸, 1

(∃𝑥)(∀𝑦)𝑝(𝑥, 𝑦) ⇒ (∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦)⇒ 𝐼, 2

Primer 8.39. Formula ¬(∃𝑥)𝑝(𝑥) ⇒ (∀𝑦)¬𝑝(𝑦) je teorema sistema prirodnededukcije (i za klasicnu i za intuicionisticku logiku):

[𝑝(𝑧)]1

(∃𝑥)𝑝(𝑥) ∃𝐼[¬(∃𝑥)𝑝(𝑥)]2

⊥ ¬𝐸

¬𝑝(𝑧)¬𝐼, 1

(∀𝑦)¬𝑝(𝑦) ∀𝐼

¬(∃𝑥)𝑝(𝑥) ⇒ (∀𝑦)¬𝑝(𝑦)⇒ 𝐼, 2

Primer 8.40. U sistemu prirodne dedukcije vazi ∀𝑥𝒜,∀𝑥(𝒜 ⇒ ℬ) ⊢ ∀𝑥ℬ:

∀𝑥𝒜𝒜 ∀𝐸

∀𝑥(𝒜 ⇒ ℬ)𝒜 ⇒ ℬ ∀𝐸

ℬ ⇒ 𝐸

∀𝑥ℬ ∀𝐼

Elektro

nsko

izdanje(2017)

8.8. Prirodna dedukcija 192

Naredna teorema povezuje semanticka i deduktivna svojstva klasicne logike(ona vazi i za iskaznu i za predikatsku logiku).

Teorema 8.13. Formula je teorema sistema prirodne dedukcije zaklasicnu logiku ako i samo ako je valjana.

Pitanja i zadaci

Pitanje 8.62. Navesti bar tri pravila sistema prirodne dedukcije.

Pitanje 8.63. Koliko u sistemu prirodne dedukcije ima pravila koja uvodeveznik ∧?

Pitanje 8.64. Koliko u sistemu prirodne dedukcije ima pravila koja eliminisuveznik ∧?

Pitanje 8.65. Kako glasi pravilo prirodne dedukcije koje elimise negaciju?

Pitanje 8.66. Kako glasi pravilo eliminasanja implikacije u sistemu prirodnededukcije?

Pitanje 8.67. Kako glasi pravilo za eliminisanje univerzalnog kvantora usistemu prirodne dedukcije?

Pitanje 8.68. Navesti bar jedno pravilo prirodne dedukcije koje se koristi ulogici prvog reda (a ne i u iskaznoj logici).

Pitanje 8.69. Sta razlikuje sistem prirodne dedukcije za klasicnu i intuicio-nisticku logiku?

Pitanje 8.70. U dokazima prirodnom dedukcijom, sta znaci oznaka [𝒜]?

Pitanje 8.71. U sistemu prirodne dedukcije dokazati da vazi 𝒜∨ℬ ⊢ ℬ ∨𝒜.

Pitanje 8.72. U sistemu prirodne dedukcije dokazati da vazi 𝒜,ℬ∧𝒞 ⊢ 𝒜∧ℬ.

Pitanje 8.73. U sistemu prirodne dedukcije dokazati da vazi 𝒜∧ℬ, 𝒞 ⊢ 𝒜∧𝒞.

Pitanje 8.74. Sta povezuje pojam valjane formule i pojam formule dokaziveu prirodnoj dedukciji za klasicnu logiku?

Zadatak 8.33.√

Dokazati da u prirodnoj dedukciji vazi 𝐴 ∨𝐵,¬𝐴 ⊢ 𝐵.

Zadatak 8.34.√

Dokazati da je formula (𝐴 ⇒ 𝐵) ⇒ (¬𝐵 ⇒ ¬𝐴) teoremasistema prirodne dedukcije za klasicnu logiku.

Zadatak 8.35.√

Dokazati da je formula (𝐴∨(𝐵∧𝐶)) ⇒ ((𝐴∨𝐵)∧(𝐴∨𝐶))teorema sistema prirodne dedukcije za klasicnu logiku.

Zadatak 8.36.√

Dokazati da je formula ¬(𝐴 ∧ 𝐵) ⇒ (¬𝐴 ∨ ¬𝐵) teoremasistema prirodne dedukcije za klasicnu logiku.

Elektro

nsko

izdanje(2017)

193 8. Logika prvog reda

8.9 Resavanje problema svodenjem na problem valjanosti

Ukoliko je potrebno dokazati da je neko tvrdenje ℬ logicka posledica skupatvrdenja𝒜1, 𝒜2, . . ., 𝒜𝑛, onda je dovoljno dokazati da je formula𝒜1∧𝒜2𝑤𝑒𝑑𝑔𝑒 . . .∧𝒜𝑛 ⇒ ℬ. Dokazivanje valjanosti formule moze se sprovesti namenskim pro-gramima za to. Tipicna situacija za ovakvu primenu je dokazivanje teoremaodredene teorije, pri cemu su 𝒜1, 𝒜2, . . ., 𝒜𝑛, aksiome te teorije, a ℬ teoremakoju treba dokazati. Medutim, za mnoge teorije, krajnje je neprakticno teo-reme dokazivati na ovaj opsti nacin. Za mnoge teorije logike prvog reda postojei specijalizovani dokazivaci zasnovani na specificnostima tih teorija.

8.9.1 FOL dokazivaci i TPTP format

Programe koji resavaju instance problema valjanosti ili zadovoljivosti u lo-gici prvog reda zovemo obicno FOL dokazivaci (eng. FOL-provers, od first-

order logic). Vecina savremenih FOL dokazivaca zasnovana je na metodirezolucije, obogacenoj mnogim dodatnim tehnikama i heuristikama. Neki oddanas popularnih FOL dokazivaca su Vampire, E i Spass.

FOL dokazivaca obicno ocekuju ulaz u nekom od tptp2 formata. Jedanod tih formata je FOF format. U ovom formatu, formule se navode jedna pojedna sa oznakom o tome da li se radi o aksiomi ili tvrdenju koje dokazivactreba da dokaze. U slucaju primera 8.33, zapis problema bi bio sledeci.

fof(a1, axiom, (![X,Y] : (a(X,Y) => ~a(Y,X)))).

fof(a2, axiom, (![X,Y] : (a(X,Y) <=> b(Y,X)))).

fof(a3, axiom, (![X,Y,Z] : ((a(X,Y) & a(Y,Z)) => a(X,Z)))).

fof(cn, conjecture, (![X,Y,Z] : ((a(Y,X) & b(Z,X)) => a(Y,Z)))).

Pitanja i zadaci

Zadatak 8.37. Zapisati sledecu recenicu u logici prvog reda: „Ako onaj kolaze taj i krade i ako bar neko laze, onda neko i krade.“ Potom je dokazatimetodom rezolucije.

Zadatak 8.38. Zapisati sledece tvrdenje u logici prvog reda: Ako „ko radi tajima ili trosi“ i „ko ima taj peva“ i „ko trosi taj peva“, onda „ko radi taj peva“.Potom ga dokazati metodom rezolucije.

Zadatak 8.39. Dokazati metodom rezolucije da je sledeca formula valjana:(∀𝑥)(𝑝(𝑥) ⇒ 𝑞(𝑥)) ⇒ (∀𝑥)(𝑝(𝑥) ⇒ (𝑞(𝑥) ∧ 𝑝(𝑥))).

Zadatak 8.40. Zapisati konjunkciju sledecih recenica kao formulu logike pr-vog reda i dokazati da je ona nezadovoljiva:

2tptp (Thousands of Problems for Theorem Provers) je biblioteka problema za automat-

ske dokazivace teorema. U okviru nje definisano je i nekoliko formata za zapis formula logikeprvog reda.

Elektro

nsko

izdanje(2017)

8.9. Resavanje problema svodenjem na problem valjanosti 194

� Ako je X prijatelji osobe Y, onda je i Y prijatelj osobe X i

� ako je X prijatelj osobe Y, onda X voli Y i

� ne postoji neko ko je povredio osobu koju voli i

� osoba Y je povredila svog prijatelja X.

Zadatak 8.41. Zapisati u logici prvog reda recenicu: Ako “sta leti to imakrila i lagano je” i “sta pliva, to nema krila”, onda “sta pliva, to ne leti”.Potom dokazati ovu recenicu metodom rezolucije.

Zadatak 8.42. Na jeziku logike prvog reda zapisati i dokazati metodom re-zolucije da je sledeca recenica valjana: „Ako postoji cipela koja u svakomtrenutku odgovara svakoj nozi, onda za svaku nogu postoji cipela koja joj unekom trenutku odgovara i za svaku nogu postoji trenutak takav da postojicipela koja joj u tom trenutku odgovara“.

Zadatak 8.43. U logici prvog reda

1. zapisati recenicu “svaka dva coveka se vole ili ne vole” i

2. dokazati da je dobijena formula valjana.

Zadatak 8.44. U logici prvog reda pokazati da je recenica “ko rano rani, ceodan je pospan” logicka posledica recenica “ko rano rani ceo dan je pospan ilidve srece grabi” i “ko dve srece grabi, ceo dan je pospan”.

Zadatak 8.45. Metodom rezolucije pokazati da iz tvrdenja„dve nemimoilazne prave se seku ili su paralelne“,„prave koje se seku pripadaju istoj ravni“i„prave koje su paralelne pripadaju istoj ravni“sledi tvrdenje„dve nemimoilazne prave pripadaju istoj ravni“.

Zadatak 8.46. Metodom rezolucije dokazati da je recenica„Janko ruca kod kuce ili pere sudove u restoranu“logicka posledica recenica„Svako ruca kod kuce ili u restoranu“,„ko ruca u restoranu i nema novca, taj pere sudove u restoranu“i„Janko nema novca“.

Zadatak 8.47. Na jeziku logike prvog reda zapisati sledece recenice i meto-dom rezolucije dokazati da zajedno cine nezadovoljiv skup:

� Svaka dva brata imaju zajednickog roditelja.

Elektro

nsko

izdanje(2017)

195 8. Logika prvog reda

� Roditelj je stariji od deteta.

� Postoje braca.

� Ni jedna osoba nije starija od druge.

Zadatak 8.48. Zapisati sledece recenice u logici prvog reda:„Svako zadovoljstvo se placa.“„Svaki posao se placa.“„Neki posao je zadovoljstvo.“„Nijedno zadovoljstvo nije posao.“

Zadatak 8.49. Metodom rezolucije pokazati da je recenica„Svako dete voli da se igra.“logicka posledica recenica„Svaki decak voli da se igra“,„Svaka devojcica voli da se igra.“„Dete je decak ii je devojcica.“

Zadatak 8.50. Zapisati sledece recenice u logici prvog reda i pokazati rezo-lucijom da su zajedno kontradiktorne:

� Ko se vozi avionom, dosta zaraduje.

� Ko dosta zaraduje, puno radi.

� Janko se vozi avionom.

� Janko ne radi puno.

Zadatak 8.51. Metodom rezolucije dokazati da je recenica„Pera voli da plese“logicka posledica recenica„Svako ko je srecan voli da peva“,„Svako ko voli da peva, voli da plese“i„Pera je srecan“.

Zadatak 8.52. Pokazati da ako vaze sledece recenice:„svako ima rodaka na moru ili u na planini“,„ko ima rodaka na moru, bio je na moru“i„ko ima rodaka na planini, bio je na planini“ne moze vaziti recenica„neko nije bio ni na moru ni na planini“.

Zadatak 8.53. Na jeziku logike prvog reda zapisati sledece recenice i rezolu-cijom dokazati da su skupa nezadovoljive:

Elektro

nsko

izdanje(2017)

8.9. Resavanje problema svodenjem na problem valjanosti 196

� Svaka dva brata imaju zajednickog roditelja.

� Roditelj je stariji od deteta.

� Postoje braca.

� Ni jedna osoba nije starija od druge.

Zadatak 8.54. U sistemu prirodne dedukcije dokazati 𝐴 ⇒ 𝐶,𝐵 ⇒ 𝐶 ⊢(𝐴 ∨𝐵) ⇒ 𝐶.

Elektro

nsko

izdanje(2017)

Glava 9

PROLOG

U logickom programiranju, logika se koristi kao deklaritivni jezik za opisi-vanje problema, a dokazivac teorema kao mehanizam za resavanje problema.Resavanje problema je podeljeno izmedu programera koji opisuje (tj. modeluje)problem i dokazivaca teorema koji problem resava.

Jezik PROLOG najznacajniji je predstavnik jezika deskriptivnog i logickogprogramiranja. Veoma je pogodan za mnoge primene tehnika vestacke inte-ligencije. Pogodan je za obrade prirodnog jezika, ali i za brz razvoj proto-tipova drugih inteligentnih programa, jer se obrada ulaza i izlaza, parsiranjei druge slicne operacije jednostavno implementiraju. Ime PROLOG-a dolaziod engleskih reci PROgramming in LOGic. Mehanizam izvodenja zakljucakau PROLOG-a zasniva se na metodu rezolucije koji je opisao Alan Robinson1965. godine.

Jezik PROLOG i prvi interpretator za njega razvijeni su na Univerzitetuu Marseju 1972. godine, kao plod saradnje istrazivaca Alain Colmerauer-a izMarseja i Roberta Kowalskog iz Edinburga. Oni su primetili da se klauzalnaforma moze koristiti za opisivanje formalnih gramatika i da se dokazivaci zasno-vani na rezoluciji mogu koristiti za parsiranje. Efikasan PROLOG mehanizamomogucen je otkricem LUSH ili SLD rezolucije koju je opisao Kowalski 1973. go-dine. Prakticna upotreba PROLOG-a kao programskog jezika omogucena je ra-zvojem efikasnog kompilatora Davida Warrena, u Edinburgu 1977. godine. Taverzija jezika, Edinburski PROLOG, detaljno opisana 1980. u knjizi Clocksin-a i Mellish-a nametnula se vremenom kao standardna verzija jezika i najjaceuticala na ISO standard za PROLOG.

PROLOG sistemi obicno sadrze interaktivni interpretator (sa debagerom).Pored toga, neki sistemi omogucavaju i kompiliranje koda (na masinski jezik ilina neki drugi jezik niskog nivoa) koje daje izvrsne verzije koje mogu samostalnoda se izvrsavaju. Izvrsni kod cesto je veoma efikasan i uporediv sa izvrsnimkodom dobijenim od programa na nekom proceduralnom jeziku.

Komunikacija sa PROLOG interpretatorom odvija se kroz komandni pro-zor. Prompt interpretatora obicno izgleda ovako:

197

Elektro

nsko

izdanje(2017)

9.1. Metod rezolucije i PROLOG 198

?-

Vecina PROLOG sistema sadrzi uputstva o koriscenju jezika a i samoginterpretatora. Ovo uputstvo se obicno moze dobiti sa ?- help(help). Ko-manda halt prekida izvrsavanje interpretatora (ili kompiliranog programa) ivraca kontrolu operativnom sistemu. Neki od najpopularnijih PROLOG inter-pretatora su Quintus, Sixtus, SWI PROLOG itd.

9.1 Metod rezolucije i PROLOG

Programski jezik prolog zasnovan je na metodu rezolucije i na koriscenjuHornovih klauza — klauza u kojima postoji najvise jedan literal koji nije podnegacijom. U prolog-u se, za ispitivanje zadovoljivosti klauza, zahvaljujucinjihovoj specificnoj formi, koristi algoritam koji je efikasan (polinomijalan) ipotpun. Cetiri tipa Hornovih klauza i odgovarajuce formule logike prvog redaprikazani su u narednoj tabeli (formule 𝒜𝑖 su atomicke).

Tip prolog logika prvog redaimplikaciona klauza 𝒜 : −𝒜1, . . . ,𝒜𝑛. ¬𝒜1 ∨ . . . ∨ ¬𝒜𝑛 ∨ 𝒜ciljna klauza ?−𝒜1, . . . ,𝒜𝑛. ¬𝒜1 ∨ . . . ∨ ¬𝒜𝑛

cinjenica 𝒜. 𝒜prazna klauza false �

Svaki nezadovoljiv skup Hornovih klauza mora da sadrzi bar jednu cinjenicui bar jednu ciljnu klauzu.

prolog konvencija je da se konstante zapisuju malim pocetnim slovom, apromenljive velikim pocetnim slovom.

Primer 9.1. Pretpostavimo da je zadata cinjenica

man(sokrat).

(nova cinjenica moze se ucitati iz datoteke, kao deo programa a moze se zadati iinteraktivno, na sledeci nacin: ?- assert(man(sokrat)).) Nakon ovoga, upit

?- man(sokrat).

uspeva, tj. daje rezultat Yes. Naime, da bi ovaj upit bio zadovoljen, cinjenicaman(sokrat) rezolvira se sa klauzom ¬ man(sokrat) (dobijenom iz upita) idaje praznu klauzu, kao sto je i trebalo. Time je, prakticno, dokazano da jeman(sokrat) ⇒ man(sokrat) valjana formula.

Pretpostavimo da je (na primer, sa ?- assert(mortal(X) :- man(X)).)zadato i pravilo:

mortal(X) :- man(X).

Elektro

nsko

izdanje(2017)

199 9. PROLOG

U ovom pravilu, predikat mortal(X) je glava pravila a (jednoclani) niz predikataman(X) je rep pravila. Upit:

?- mortal(sokrat).

uspeva (daje odgovor Yes). Da bi ovaj upit bio zadovoljen, klauza ¬ man(X) ∨mortal(X) (dobijena iz zadatog pravila) rezolvira se klauzom ¬ mortal(sokrat)

(dobijenom iz upita) i daje rezolventu, tj. novi cilj ¬ man(sokrat). On uspevajer sa klauzom man(sokrat) (dobijenom iz zadate cinjenice) daje praznu kla-uzu. Time je, prakticno, dokazano da je

(man(sokrat) ∧ ∀ x (man(x) ⇒ mortal(x))) ⇒ man(sokrat)

valjana formula.

Ako se zada upit:

? - mortal(X).

onda se metodom rezolucije pokusava dokazivanje nezadovoljivosti skupa klauza:

man(sokrat)

¬ man(X) ∨ mortal(X)

¬ mortal(Y)

Primetimo da je u trecoj klauzi promenljiva preimenovana u Y, da ne bidoslo do preklapanja imena u dve klauze. Ciljna (treca) klauza moze da serezolvira sa drugom klauzom, koriscenjem unifikatora [ Y ↦→ X ] dajuci novi cilj

¬ man(X)

tj. nakon preimenovanja promenljive X:

¬ man(X’)

Rezolviranjem ove klauze sa prvom klauzom iz pocetnog skupa, koriscenjemunifikatora [ X’ ↦→ sokrat ] dobija se prazna klauza, pa je dokazana nezadovo-ljivost datog skupa klauza i prolog vraca rezultat:

Yes

i daje odgovor

X = sokrat

To je jedino moguce resenje i ako ukucamo simbol ; dobicemo odgovor No.

Naravno, upiti

?- man(platon).

i

? - mortal(platon).

ne uspevaju i daje odgovor No (sem ako nije zadata i cinjenica man(platon)).

Elektro

nsko

izdanje(2017)

9.1. Metod rezolucije i PROLOG 200

Komandom listing mozemo da dobijemo spisak svih postojecih cinjenicai pravila:

?- listing.

man(sokrat).

mortal(A) :-

man(A).

Primer 9.2. Jednostavan i ilustrativan primer definisanja odnosa u PROLOG-u moze se dati na primeru porodicnih relacija kao sto su otac, majka, brat, tetkai slicno.

zensko(reja).

zensko(demetra).

zensko(leto).

zensko(artemida).

zensko(amfitrita).

musko(kron).

musko(zevs).

musko(posejdon).

musko(apolon).

musko(triton).

musko(jasion).

musko(pluto).

roditelj(kron,zevs).

roditelj(reja,zevs).

roditelj(kron,posejdon).

roditelj(reja,posejdon).

roditelj(kron,demetra).

roditelj(reja,demetra).

roditelj(zevs,apolon).

roditelj(leto,apolon).

roditelj(zevs,artemida).

roditelj(leto,artemida).

roditelj(posejdon,triton).

roditelj(amfitrita,triton).

roditelj(demetra,pluto).

roditelj(jasion,pluto).

predak(X,Y) :- roditelj(X,Y).

predak(X,Y) :- roditelj(X,Z), predak(Z,Y).

Elektro

nsko

izdanje(2017)

201 9. PROLOG

majka(X,Y) :- zensko(X), roditelj(X,Y).

otac(X,Y) :- musko(X), roditelj(X,Y).

brat(X,Y) :- musko(X), roditelj(Z,X), roditelj(Z,Y), X\==Y.

sestra(X,Y) :- zensko(X), roditelj(Z,X), roditelj(Z,Y), X\==Y.

tetka(X,Y) :- sestra(X,Z), roditelj(Z,Y).

stric(X,Y) :- brat(X,Z), otac(Z,Y).

ujak(X,Y) :- brat(X,Z), majka(Z,Y).

bratodstrica(X,Y) :- musko(X), otac(Z,X), stric(Z,Y).

sestraodstrica(X,Y) :- zensko(X), otac(Z,X), stric(Z,Y).

bratodujaka(X,Y) :- musko(X), otac(Z,X), ujak(Z,Y).

sestraodujaka(X,Y) :- zensko(X), otac(Z,X), ujak(Z,Y).

bratodtetke(X,Y) :- musko(X), majka(Z,X), tetka(Z,Y).

sestraodtetke(X,Y) :- zensko(X), majka(Z,X), tetka(Z,Y).

U relacijama brat i sestra predikat X\==Y ima vrednost tacno ako je X

razlicito od Y. U suprotnom, ima vrednost netacno. U natavku navodimo neko-liko primera upita i rezultata koje sistem daje.

?- stric(posejdon,apolon).

Yes

?- ujak(X,Y).

X = zevs,

Y = pluto

X = zevs,

Y = pluto

X = posejdon,

Y = pluto

X = posejdon,

Y = pluto

?- sestraodstrica(X,Y).

X=artemida,

Y=triton

X=artemida,

Y=triton

U navedenim primerima, mogu se primetiti ponavljanja istih resenja. Uslucaju upita ujak(X,Y), razlog za to je sto zadovoljavanje ovog cilja, za-visi od zadovoljavanja podcilja brat(X,Z), koji zavisi od zadovoljavanja pod-ciljeva roditelj(W,X) i roditelj(W,Z). U slucaju da vazi X=zevs, Y=pluto i

Elektro

nsko

izdanje(2017)

9.2. Sintaksa i semantika u PROLOG-U 202

Z=demetra, onda postoje dve mogucnosti za W, sto su kron i reja. Kako sistemdva puta nalazi nacin da zadovolji sve potciljeve u kojima figurisu dodele vred-nosti X=zevs i Y=pluto, dva puta navodi tu kombinaciju kao resenje. Slucakupita sestraodstrica(X,Y) je analogan.

Pitanja i zadaci

Pitanje 9.1. Na kom metodu je zasnovan mehanizam izvodenja zakljucakau PROLOG-u?

Pitanje 9.2. Kakve klauze logike prvog reda odgovaraju PROLOG cinjeni-cama, pravilima i upitima?

Pitanje 9.3. Koliko literala bez negacije se moze javiti u klauzama koje sekoriste u PROLOG-u?

Pitanje 9.4. Koja klauza prvog reda odgovara PROLOG pravilup(x1,x2,...,xn) :- q(y1,y2,...,ym),...,r(z1,z2,...,zk) ?

Pitanje 9.5. Da li se algoritam mergesort moze implementirati u PRO-LOGU? Da li se algoritam quicksort moze implementirati u PROLOGU?

9.2 Sintaksa i semantika u PROLOG-U

Jezik PROLOG-a ima slicnosti sa jezikom logike prvog reda, ali ima i punorazlika.

Simbole jezika PROLOG-a cine: mala i velika slova engleskog alfabeta, cifrei specijalni simboli (_, +, *, (, ), [, ], . . ..

Skup termova definise se na sledeci nacin:

� promenljive su termovi; promenljive se zapisuju pocetnim velikim slovomili simbolom _ (simbolom _ pocinju imena anonimnih promenljivih cijevrednosti nisu bitne).

� konstante su termovi; konstante su zapisi brojevnih konstanti (celobroj-nih i realnih, npr. -123, 3.14) ili atomi. Atom je:

– niz slova, cifara i simbola _ koji pocinje malim slovom (npr. sokrat).

– slovna niska u jednostrukim znacima navoda (npr. ’sokrat’).

– niz specijalnih simbola (npr. :-).

Ako je f atom, a A1, . . ., An termovi, onda je f(A1,...,An) term viseg reda(na primer, man(sokrat) ili ucitelj(sokrat,X)). Ovakve termove viseg redau PROLOG-u zovemo i predikati.

Semantika, interpretacija termova odredena je tekucim stanjem baze zna-nja. Domen interpretacije cine sami PROLOG termovi. Baza znanja, koju

Elektro

nsko

izdanje(2017)

203 9. PROLOG

PROLOG odrzava, sastoji se od cinjenica i pravila. Cinjenice su predikatioblika:

p(x1,x2,...,xn)

Ukoliko baza znanja sadrzi cinjenicu man(sokrat), onda se u pratecoj in-terpretaciji atomickoj formuli man(sokrat) pridruzuje vrednost 1, tj. ona jetacna.

Pravila u bazi znanja su oblika:

p(x1,x2,...,xn) :- q(y1,y2,...,ym),...,r(z1,z2,...,zk)

U navedenom pravilu, predikat p(x1,x2,...,xn) zovemo glava pravila (eng.head of the rule) a niz predikata q(y1,y2,...,ym),...r(z1,z2,...zk) zo-vemo rep pravila (eng. tail of the rule) ili telo pravila (eng. body of the rule).Navedeno pravilo interpretira se kao implicitno univerzalno kvantifikovana im-plikacija:

q(y1,y2,...,ym)∧ . . .∧ r(z1,z2,...,zk) ⇒ p(x1,x2,...,xn)

Ukoliko baza znanja sadrzi pravilo mortal(sokrat) :- man(sokrat) i cinjenicuman(sokrat), onda iz nje sledi da mortal(sokrat) ima semanticku vrednost1.

Upiti ili ciljevi (eng. goals) su oblika

q(y1,y2,...,ym),...,r(z1,z2,...,zk)

Postaviti cilj znaci traziti proveru da li je zadati skup atomickih formulaza neku valuaciju promenljivih koje sadrzi tacan (tj. ima semanicku vrednost1) u odnosu na tekuce stanje baze. Ako je taj uslov ispunjen, kazemo da jecilj zadovoljen ili da cilj uspeva (eng. succeed). Valuaciju za koju je zadati ciljzadovoljen zovemo odgovorom na zadati cilj ili resenjem zadatog cilja.

Na primer, ukoliko baza znanja sadrzi cinjenicu man(sokrat), i pravilomortal(X) :- man(X), onda cilj mortal(Y) moze biti zadovoljen i to za valu-aciju kojom se promenljiva Y preslikava u vrednost sokrat. Jedini odgovor naovaj cilj bice, dakle, Y = sokrat.

Nove cinjenice i pravila se u interaktivnom okruzenju zadaju kao argumentipredikata assert(...) i svaki zadati cilj se mora zavrsavati tackom.

Cinjenice, pravila i ciljevi, pored navedene, deklarativne semantike, imajui odgovarajucu proceduralnu semantiku koja omogucava koriscenje PROLOG-a kao programskog jezika. Proceduralna semantika cinjenice man(sokrat) je daje zadatak man(sokrat) izvrsen. Proceduralna semantika pravila mortal(X) :- man(X)

je: da bi se izvrsio zadatak mortal(X) potrebno je da se izvrsi zadatak man(X).Proceduralna semantika cilja mortal(X) je: odredi valuaciju takvu da je mortal(X)tacno. Proceduralna semantika za slozeni cilj, koji se sastoji od vise poje-dinacnih ciljeva, je analogna, s tim sto se podciljevi obraduju sleva na desno.

PROLOG interpretator kao odgovor na neki cilj koji je zadovoljen, ispisujejednu valuaciju (zbog specificnog domena, valuaciju cemo zvati i instanciranje)

Elektro

nsko

izdanje(2017)

9.3. Stablo izvodenja 204

promenljivih za koju je cilj tacan i rec Yes (ukoliko ime neke promenljive pocinjesimbolom _, onda se njena vrednost ne ispisuje). Ukoliko cilj ne moze bitizadovoljen, interpretator ispisuje rec No. Ukoliko jedan cilj ima vise odgovora(tj. zadovoljavajucih valuacija), PROLOG ih navodi jedan po jedan, nakon stokorisnik ukuca znak ;. Ukoliko korisnik pritisne Enter, interpretator prestajesa daljim navodenjem resenja. Kada su sva resenja navedena, interpretatorispisuje rec No.

9.3 Stablo izvodenja

PROLOG sistem (interpretator ili kompilator) pokusava da zadovolji zadaticilj sistematicnim ispitivanjem svih mogucnosti. Sve mogucnosti cine stabloizvodenja (eng. derivation tree) ili stablo pretrage (eng. search tree) cijim listo-vima odgovaraju odgovori za zadati cilj. Ukoliko svakom od listova odgovaraneuspeh, zadati cilj je nezadovoljen. Ukoliko bar jednom listu odgovara uspeh,cilj je zadovoljen i unifikacija koja vodi do tog lista predstavlja jedno resenjeza zadati cilj.

Stablo izvodenja PROLOG-a ilustrovacemo primerom. Pretpostavimo daje ucitana PROLOG datoteka koja sadrzi kod dat na slici 9.1 (na kraju svakogreda, pod komentarom je oznaka klauze). Grane stabla su oznacene oznakamaklauza koje se koriste u izvodenju. Direktni potomci jednog cvora odgovarajusvim mogucim izvodenjima odgovarajuceg podcilja. PROLOG mehanizam ihsve ispituje sistematicno. Poredak potomaka direktno odgovara poretku klauzau postojecem programu i on diktira nacin izvrsavanja upita.

Na slici je prikazano kompletno stablo izvodenja za cilj ?-p(X).Svaki cvor stabla je u nekom trenutku tekuci cilj koji moze da cini nekoliko

podciljeva. Ukoliko se krajnji levi podcilj unifikuje sa glavom neke klauze, ondase taj podcilj zamenjuje telom klauze instanciranim tom istom unifikacijom.Ako je telo klauze prazno, onda se podcilj samo izostavlja. Ako se svi podciljevimogu obrisati tokom izvodenja, onda je polazni cilj zadovoljen, a instanciranjepromenljivih odredeno usput daje odgovor.

PROLOG stablo izvodenja obilazi u dubinu, sto znaci da ce alternativniizbori da budu ispitani onda kada se pretraga vrati do tacke u kojoj ti izboripostoje. Ovaj postupak pretrage zove se bektreking (eng. backtracking).

U skladu sa prikazanim stablom izvodenja, upit p(X) dace sledece odgovore:

?- p(X).

X = a ;

X = a ;

X = b ;

X = d ;

Elektro

nsko

izdanje(2017)

205 9. PROLOG

p(a). /* C1 */

p(X) :- q(X), r(X). /* C2 */

p(X) :- u(X). /* C3 */

q(X) :- s(X). /* C4 */

r(a). /* C5 */

r(b). /* C6 */

s(a). /* C7 */

s(b). /* C8 */

s(c). /* C9 */

u(d). /* C10 */

p(X)

trueX=a

q(X),r(X) u(X)

s(X),r(X)

r(a) r(b) r(c)

trueX=a

fail fail trueX=b

fail fail

u(X)

trueX=d

C1 (X=a) C2

C4

C7(X=a) C8(X=b) C9(X=c)

C5 C6 C5 C6 C5 C6

C3

C10(X=d)

Slika 9.1: Primer stabla izvodenja

No

Elektro

nsko

izdanje(2017)

9.4. Operator secenja 206

Pitanja i zadaci

Pitanje 9.6. Da li se u PROLOG-u stablo izvodenja obilazi u dubinu ili usirinu?

Pitanje 9.7. U Prologu, ako listu stabla pretrage ne odgovara unifikacija kojadaje jedno resenje, sta onda odgovara tom listu?

Pitanje 9.8. Ako neki PROLOG cilj moze da bude zadovoljen, koliko ondau odgovarajucemu stablu izvodenja postoji listova koji ne prestavaljaju praznuklauzu.

Pitanje 9.9. U PROLOG bazi postoji skup cinjenica:

p(a).

p(b).

q(a).

q(b).

q(c).

Nacrtati stablo izvodenja za upit p(X),q(X)., za upit p(X),q(Y)., za upitp(X),!,q(X). i za upit p(X),!,q(Y).

9.4 Operator secenja

Operator secenja (eng. cut operator), koji se zapisuje !, odseca delove stablapretrage. Ovaj operator, uspeva kada je on tekuci cilj i stablu izvodenja seodsecaju svi drugi izvori na putu unzad do tacke stabla izvodenja (ukljucujucii nju) gde se nalazi operator.

Za program naveden u poglavlju 9.3, za cilj p(X),!. dobija se samo jedanodgovor (a odgovarajuce stablo izvodenja je prikazano na slici 9.2 — sivombojom oznaceni su cvorovi koji se ne obilaze):

?- p(X),!.

X = a ;

No

Za isti program, upit r(X),s(Y) daje odgovore (stablo izvodenja je prika-zano na slici 9.3):

?- r(X),s(Y).

X = a

Elektro

nsko

izdanje(2017)

207 9. PROLOG

p(X)

trueX=a

q(X),r(X) u(X)

s(X),r(X)

r(a) r(b) r(c)

trueX=a

fail fail trueX=b

fail fail

u(X)

trueX=d

C1 (X=a) C2

C4

C7(X=a) C8(X=b) C9(X=c)

C5 C6 C5 C6 C5 C6

C3

C10(X=d)

Slika 9.2: Primer rada operatora secenja

Y = a ;

X = a

Y = b ;

X = a

Y = c ;

X = b

Y = a ;

X = b

Y = b ;

X = b

Y = c ;

No

Upit r(X),!,s(Y), zbog operatora secenja daje samo odgovore (stabloizvodenja je prikazano na slici 9.4):

?- r(X),!,s(Y).

X = a

Y = a ;

Elektro

nsko

izdanje(2017)

9.4. Operator secenja 208

r(X),s(Y)

s(Y)

trueX=a,Y=a

trueX=a,Y=b

trueX=a,Y=c

s(Y)

trueX=b,Y=a

trueX=b,Y=b

trueX=b,Y=c

C5(X=a)

C7(Y=a) C7(Y=b) C7(Y=c)

C5(X=b)

C7(Y=a) C7(Y=b) C7(Y=c)

Slika 9.3: Stablo izvodenja

X = a

Y = b ;

X = a

Y = c ;

No

r(X),!,s(Y)

s(Y)

trueX=a,Y=a

trueX=a,Y=b

trueX=a,Y=c

s(Y)

trueX=b,Y=a

trueX=b,Y=b

trueX=b,Y=c

C5(X=a)

C7(Y=a) C7(Y=b) C7(Y=c)

C5(X=b)

C7(Y=a) C7(Y=b) C7(Y=c)

Slika 9.4: Stablo izvodenja sa operatorom secenja

Konacno, upit r(X),s(Y),!, zbog operatora secenja daje samo jedan od-govore (stablo izvodenja je prikazano na slici 9.5):

?- r(X),s(Y),!.

X = a

Y = a ;

Elektro

nsko

izdanje(2017)

209 9. PROLOG

No

r(X),s(Y),!

s(Y)

trueX=a,Y=a

trueX=a,Y=b

trueX=a,Y=c

s(Y)

trueX=b,Y=a

trueX=b,Y=b

trueX=b,Y=c

C5(X=a)

C7(Y=a) C7(Y=b) C7(Y=c)

C5(X=b)

C7(Y=a) C7(Y=b) C7(Y=c)

Slika 9.5: Stablo izvodenja sa operatorom secenja

Operator secenja ne koristi se samo u ciljevima, vec moze da se koristi iu pravilima/klauzama koje cine program. On sprecava koriscenje klauza kojepostoje iza klauze koja ga sadrzi.

Razmotrimo primer predikata koji opisuje maksimum dva broja:

max(X,Y,Y) :- X =< Y.

max(X,Y,X) :- X>Y.

Naravno, ovako implementiran predikat je sasvim ispravan. No, on nijedovoljno efikasan. Ukoliko je cilj max(3,4,Y) pozvan u okviru izvrsavajnanekog veceg programa, bice dobijen (ispravan) odgovor Y=4. Medutim, ukolikodode do bektrektinga program ce pokusati da zadovolji max(3,4,Y) na nekidrugi nacin, sto je u ovom slucaju potpuno nepotrebno: maximum brojeva3 i 4 je 4 i nema drugog moguceg rezultata. U gore navedenoj definiciji, dveklauze se medusobno iskljucuju (ako prva uspeva, onda druga sigurno ne uspevai obratno), pa je svaki pokusaj da cilj bude zadovoljen na dva nacina gubljenjevremena.

Opisani problem moze se prevazici koriscenjem operatora secenja. Ako jeprva klauza zadovoljena, potrebno je obezbediti da se nikad ne ispituje druga:

max(X,Y,Y) :- X =< Y,!.

max(X,Y,X) :- X>Y.

Navedena implementacija funkcionise na sledeci nacin: ukoliko je pozvancilj max(X,Y,Y) i ukoliko X =< Y uspeva, onda je drugi argument maksimum ioperator secenja onemogucava ispitivanje drugih mogucnosti. S druge strane,(samo) ako X =< Y ne uspeva, prelazi se na sledecu klauzu.

Primetimo da upotrebljeni operator secenja ne menja znacenje programa iskup odgovora (u odnosu na prethodnu verziju). Obe verzije programa su iste,

Elektro

nsko

izdanje(2017)

9.4. Operator secenja 210

do na operator secenja i to sugerise da je njegova upotreba opravdana i prihva-ljiva. Takav operator secenja (koji ne menja znacenje programa) zovemo zelenioperator secenja. Operator secenja tog tipa ima za cilj izbegavanje nepotrebnihizracunavanja popravljanje efikasnosti.

Postoji i druga vrsta operatora secenja — crveni operator secenja. Crvenimzovemo operator secenja koji menja znacenje programa. U principu dobro jeizbegavati takve operatore, sem ako za njihovu upotebu ne postoji dobar razlog.Razmotrimo sledeci primer:

max(X,Y,Y) :- X =< Y,!.

max(X,Y,X).

Ovaj predikat je slican prethodnom, uz razliku da je u drugoj klauzi izo-stavljen uslov X>Y. Navedni program sa opetorom secenja nije isti ukoliko seizostavi operator secenja. To sugerise da njegova upotreba zahteva posebnupaznju (jer on menja znacenje programa). Za neke upite navedena implemen-tacija je ispravna. Na primer, ona ispravno odgovara na upite u kojima je(samo) treci argument promenljiva:

?- max(100,101,X).

X = 101

Yes

?- max(3,2,X).

X = 3

Yes

Ipak, situacija nije ista kao sa zelenim operatorom secenja i znacenje predi-kata max je promenjeno. Na primer, ukoliko su sva tri argumenta instancirana,cilj moze da bude da se zadovolji max(2,3,2). Ovaj upit ne bi trebalo da uspe,ali u navednoj verziji sa crvenim operatorom secenja on (neocekivano?) uspeva.Naime, ne uspeva unifikovanje sa prvom klauzom, te se prelazi na drugu. Cilj seuspesno unifikuje sa drugom klauzom i biva zadovoljen. Ovaj primer pokazujekako neoprezna upotreba operatora secenja moze da dovede do neocekivanogponasanja programa. On je tipican primer za crveni operator secenja. Nave-dena implementacija zapravo ne definise maksimum, vec neki drugi predikat iponasa se ocekivano (kao maksimum) samo u nekim slucajevima.

Dobra praksa je da se najpre implementira jasan program bez operatorasecenja i da se tek onda njegova efikasnost popravi koriscenjem operatorasecenja.

Elektro

nsko

izdanje(2017)

211 9. PROLOG

Pitanja i zadaci

Pitanje 9.10. Kako se naziva operator secenja cijim se dodavanjem ne menjaskup resenja, ali se povecava efikasnost izracunavanja?

Pitanje 9.11. U cemu se razlikuju zeleni i crveni operator secenja u PROLOG-u?

Pitanje 9.12. Da li zeleni operator secenja moze da odseca deo stabla pre-trage u PROLOG-u?

Da li crveni operator secenja moze da odseca deo stabla pretrage u PROLOG-u?

Pitanje 9.13. Da li operator secenja u PROLOG-u nuzno menja rezultatprograma? Da li operator secenja u PROLOG-u moze da promeni rezultatprograma?

Pitanje 9.14. Kako treba modifikovati Prolog upit ?- r(X),s(Y). da onpronalazi samo jednu vrednost za X?

9.5 Negacija kao neuspeh

Termin negacija kao neuspeh se koristi za nacin na koji se pretpostavkazatvorenog sveta (eng. closed world assumption) implementira kao vrsta nega-cije u PROLOG-u. Grubo receno, pretpostavka zatvorenog sveta govori da jenetacno sve sto nije eksplicitno navedeno kao tacno. Operator \+ daje efekatnegacije kao neuspeha, isto kao predikat not definisan na sledeci nacin (u nekimimplementacijama PROLOG-a raspoloziv je i ovakav predikat not):

not(Q) :- call(Q), !, fail.

not(Q).

Dakle, cilj not(Q) uspeva ako i samo ako cilj Q ne uspeva.

Razmotrimo sledeci primer u kojem se defise pojam woman preko pojmaman:

man(sokrat).

man(platon).

woman(X):- \+( man(X) ).

Za tako definisan predikat dobija se:

?- woman(sokrat).

no

Elektro

nsko

izdanje(2017)

9.5. Negacija kao neuspeh 212

Naime, da bi bio zadovoljen cilj woman(sokrat) ispituje se cilj man(sokrat).Ovaj cilj uspeva i zato cilj woman(sokrat) ne uspeva (i nema mogucnosti bek-trekinga). S druge strane, cilj woman(ksantipa) uspeva (iako takva cinjenicane postoji u bazi). Ipak, cilj

?- woman(X).

ne uspeva. Zaista, ovaj cilj moze da uspe samo ako cilj man(X) ne uspeva.Ali cilj man(X) moze da uspe (za X koje se instancira na sokrat). Dakle, ciljwoman(X) ne uspeva i X ne postaje vezana.

Upit ?- woman(X) mozemo da smatramo istim kao pitanje da li postoji Xtakvo da je woman(X). Ovaj upit ne uspeva a znamo da upit woman(ksantipa)uspeva. Dakle, ovaj oblik negacije (negacija kao neuspeh) se bitno razlikuje odobicne logicke negacije.

Razmotrimo jos jedan primer za ilustraciju razlike izmedu negacije kao ne-uspeha i klasicne logicke negacije:

a(1).

a(2).

p(X,Y) :- a(X),a(Y),\+(X=Y).

q(X,Y) :- \+(X=Y),a(X),a(Y).

Od upita p(X,Y) i q(X,Y) bismo ocekivali isto ponasanje, medutim dobi-jamo:

?- p(X,Y).

X=1

Y=2;

X=2

Y=1;

No.

?- q(X,Y).

No.

Prvi upit se ponasa u skladu sa nasim ocekivanjem, ali drugi od njegaodstupa. Prvi podcilj cilja q(X,Y) je not(X=Y). Posto se neinstancirane pro-menljive X i Y uvek mogu unifikovati, cilj X=Y uvek uspeva. Stoga cilj not(X=Y)ne uspeva, pa ni upit q(X,Y).

Generalno, ocekivani rezultat (ocekivani u smislu klasicne logike prvog reda)dobija se samo ako nema slobodnih promenljivih u upitu, tj. ako je argumentoperatora \+ vezan u trenutku kada je ovaj operator pozvan.

Elektro

nsko

izdanje(2017)

213 9. PROLOG

Primetimo i da se cilj \+(\+(man(X))) razlikuje od cilja man(X) jer akoje prvi zadovoljen, onda ce promenljiva X ostati slobodna, za razliku od ciljaman(X) koji ce biti zadovoljen a promenljiva X ce biti instancirana na sokrat.Ovo svojstvo moze da posluzi i kao pogodan test da li su dva terma unifikabilnabez njihovog unifikovanja u bilo kom slucaju. Na primer, cilj \+(\+(X=2))uspeva, a pri tome se X ne instancira na 2.

Pitanja i zadaci

Pitanje 9.15. Kako se u PROLOG-u obicno definise operator not?

Pitanje 9.16. Navesti PROLOG cilj koji uspeva ako i samo ako su termovi𝐴 i 𝐵 unifikabilni ali ih pri tom ne unifikuje.

9.6 Liste

Liste su jedan od kljucnih tipova podataka koji se koriste u logickom progra-miranju. Lista je prazna lista ili element za kojim sledi lista. Liste se rekurzivnodefinisu, pa se rekurzija prirodno javlja u resenjima problema u kojima se onekoriste.

Lista moze da se zapise kao niz njenih elemenata, razdvojenih zarezima iizmedu zagrada ’[’ i ’]’. Lista kao svoj element moze da sadrzi i drugu listu.Navedimo nekoliko primera listi:

[1,2,3]

[a,b,c,d]

[a,3,4,jovan,f(x,y)]

[[1,2,3],a,1,[],[x]]

Praznu listu oznacavamo sa []. Ukoliko je lista neprazna, njen prvi elementzovemo glava liste, a nastavak rep liste, takvu listu oznacavamo sa [GlavaListe|RepListe].

Sledeca tabela pokazuje na primerima da li se i kako mogu unifikovatirazlicite liste.

Elektro

nsko

izdanje(2017)

9.6. Liste 214

Term 1 Term 2 unifikabilni unifikator

[1,2,3] [5,6,7] ne[a,b,c] [a,b] ne[X,1,2] [Y,Y,2] da X=1, Y=1[a,b,c] [H|T] da H=a, T=[b,c][a,b,c] [X,Y|T] da X=a, Y=b, T=[c][] X da X=[][] [] da[] [H|T] ne[[]] [H|T] da H=[], T=[][a,b,c] [X|[Y|Z]] da X=a,Y=b,Z=[c][a,b,c] [X|[Y|[Z]]] da X=a,Y=b,Z=c[a] [H|T] da H=a,T=[][[],[]] [H|T] da H=[],T=[[]][a,b|X] [a,b,c] da X=[c][a,X,Y|T] [a,b,c] da X=b,Y=c, T=[][a,b|X] [a,b] da X=[]

Predikat koji odreduje prvi element liste se moze definisati na sledeci nacin:

glava([H|_],H).

a prva tri elementa na sledeci nacin:

prvatri([X,Y,Z|_],X,Y,Z).

Rep liste se moze odrediti na sledeci nacin:

rep([_|T],T).

Predikat koji dodaje element na pocetak liste moze se definisati na sledecinacin:

dodajnapocetak(Lista,X,[X|Lista]).

Proveru da li je element X clan liste definisacemo na dva nacina:

clan1([X|_],X):- !.

clan1([_|R],X):- clan1(R,X).

clan2([X|_],X).

clan2([_|R],X):- clan2(R,X).

Prva definicija je efikasnija, posto operator secenja sprecava bektreking posleuspesnog nalazenja trazenog clana (dok se u drugoj verziji pretraga do kraja

Elektro

nsko

izdanje(2017)

215 9. PROLOG

liste i kad je trazeni elemente vec pronaden). Medutim, druga verzija se mozekoristiti i za nabrajanje clanova liste. Upit clan1([1,2,3],X) daje odgovor:

?- clan1([1,2,3],X).

X=1;

No.

U slucaju upita clan2([1,2,3],X) dobijamo:

?- clan2([1,2,3],X).

X=1;

X=2;

X=3;

No.

Jos jedna razlika izmedu ovih predikata se ilustruje sledecim primerima:

?- clan1([1,2,3],X), X>2.

No.

?- clan2([1,2,3],X), X>2.

X=3;

No.

U slucaju prvog predikata, promenljiva X se pomocu prvog pravila za clan1

unifikuje sa prvim elementom liste, a operator secenja onemogucava bektre-king. Stoga ne uspeva cilj X>2 i sistem odgovara No. U drugom slucaju, posleneuspeha cilja X>2, bektrekingom se dolazi do unifikacije promenljive X sa po-slednjim elementom liste, kada i cilj X>2 uspeva.

Duzina liste se moze izracunati sledecim predikatom:

duzina([],0).

duzina([_|R],M):-duzina(R,M1), M is M1+1.

Predikat brisi_jedno izbacuje jedno pojavljivanje datog elementa iz dateliste:

Elektro

nsko

izdanje(2017)

9.6. Liste 216

brisi_jedno(X,[X|R],R).

brisi_jedno(X,[F|R],[F|S]) :- brisi_jedno(X,R,S).

Ovo je primer upotrebe navedenog predikata:

?- brisi_jedno(X,[1,2,3],L).

X=1 L=[2,3] ;

X=2 L=[1,3] ;

X=3 L=[1,2] ;

No

Sledeci upit:

?- brisi_jedno(3,L,[a,b,c]).

L = [3,a,b,c] ;

L = [a,3,b,c] ;

L = [a,b,3,c] ;

L = [a,b,c,3] ;

No

pokazuje da predikat brisi_jedno(X,L,R) moze da se interpretira i kao„ubaci element X u listu L koja tako daje listu R“. Dakle, predikat ubaci mogaobi da se jednostavno implementira:

ubaci(X,L,R) :- brisi_jedno(X,R,L).

Navedimo definiciju predikata za dopisivanje dve liste jednu na drugu:

append([X|Y],Z,[X|W]) :- append(Y,Z,W).

append([],X,X).

Predikat append moguce je koristiti na nekoliko nacina, za izracunavanjerazlicitih argumenta:

?- append([1,2,3],[4,5],[1,2,3,4,5]).

Yes

?- append([1,2,3],[4,5],A).

A = [1,2,3,4,5]

?- append([1,2,3],A,[1,2,3,4,5]).

A = [4,5]

?- append(A,[4,5],[1,2,3,4,5]).

A = [1,2,3]

Elektro

nsko

izdanje(2017)

217 9. PROLOG

Ilustrujmo primene listi i kroz dva algoritma za sortiranje.Primetimo da u narednoj implementaciji algoritma mergesort nema po-

trebe za primenom operatora secenja, za bilo koje argumente navedeni predikatimogu biti zadovoljeni samo na po jedan nacin.

mergesort([],[]).

mergesort([A],[A]).

mergesort([A,B|R],S) :-

split([A,B|R],L1,L2),

mergesort(L1,S1),

mergesort(L2,S2),

merge(S1,S2,S).

split([],[],[]).

split([A],[A],[]).

split([A,B|R],[A|Ra],[B|Rb]) :- split(R,Ra,Rb).

merge(A,[],A).

merge([],B,B).

merge([A|Ra],[B|Rb],[A|M]) :- A =< B, merge(Ra,[B|Rb],M).

merge([A|Ra],[B|Rb],[B|M]) :- A > B, merge([A|Ra],Rb,M).

Ovaj predikat je definisan tako da se koristi za izracunavanje drugog ar-gumenta ako je dat prvi. Nije ga moguce koristiti za izracunavanje prvogargumenta ako je dat drugi. Naime, na primer, upit mergesort(A,[1,2,3])bi prilikom poziva predikata merge doveo do nedovoljno instanciranih promen-ljivih i do greske.

Algoritam bubble sort moze se implementirati na sledeci nacin:

bubblesort(List, Sorted) :-

swap(List, List1), !,

bubblesort(List1, Sorted).

bubblesort(Sorted, Sorted).

swap([X,Y|R], [Y,X|R]) :- X > Y.

swap([Z|R], [Z|R1]) :- swap(R, R1).

Druga varijanta ukljucuje prolog operator implikacije -> (a naravno po-stoji i varijanta i bez njega):

bubblesort2(List, Sorted) :-

append(P, [A, B|T], List),

B < A ->

append(P, [B, A|T], R),

bubblesort2(R, Sorted)

Elektro

nsko

izdanje(2017)

9.7. Ugradeni predikati 218

; Sorted = List.

Pitanja i zadaci

Pitanje 9.17. Da li su PROLOG termovi [[],[]] i [H|T] unifikabilni i akojesu - sa kojim unifikatorom:

Pitanje 9.18. Da li su PROLOG termovi [[]] i [H|T] unifikabilni i akojesu - sa kojim unifikatorom:

9.7 Ugradeni predikati

Logicke konstante

Predikat true uvek uspeva kao cilj, predikat false nikad ne uspeva kaocilj.

Provera promenljive

Predikat var(X) proverava da li je X promenljiva koja nije vezana.

Predikat ground(G) proverava da li G ne sadrzi promenljive koje nisuvezane.

Provera tipa

Predikat atom(X) uspeva ako je X vezana za simbolicki atom. Na primer,atom(foot) i atom(’foot’) uspevaju, a atom("foot") i atom(3) neuspevaju.

Predikat integer(X) proverava da li je X vezana za ceo broj.

Predikat real(X) proverava da li je X vezana za realan broj.

Predikat string(X) proverava da li je X vezana za karaktersku nisku.

Unifikabilnost i jednakost

Upit X = Y proverava da li su X i Y unifikabilni, upit X \= Y proveravada li X i Y nisu unifikabilni,

Upit X == Y proverava da li su X i Y imaju jednake vrednosti upit X \== Y

proverava da li X i Y imaju razlicite vrednosti.

Vezivanje promenljive za numericku vrednost

Cilj V is E vezuje promenljivu V za numericku vrednost E. Vrednost Emora biti numericka konstanta ili izraz cija je vrednost odredena.

Aritmetici operatori

Za brojeve N i M, dozvoljeni su sledeci aritmeticki operatori: N > M, N < M,N =< M, N >= M.

Elektro

nsko

izdanje(2017)

219 9. PROLOG

Pomocni predikati

Cilj help(S) uvek uspeva i daje objasnjenje (ako ono postoji) za pojamS (S treba da bude simbolicki atom, na primer, help(var)).

Cilj halt uvek uspeva, zaustavlja PROLOG i vraca kontrolu operativnomsistemu.

Cilj trace uvek uspeva i ukljucuje pracenje izvrsavanja izracunavanja.Cilj notrace uvek uspeva i iskljucuje pracenje izvrsavanja izracunavanja.

Dodavanje u PROLOG bazu i brisanje iz PROLOG baze

Cilj asserta(C) dodaje klauzu C u bazu pre klauza koje imaju isti kljucnipredikat (kljucni predikat klauze je prvi predikat sleva nadesno).

Cilj assertz(C) (kao i cilj assert(C)) dodaje klauzu C u bazu iza klauzakoje imaju isti kljucni predikat.

Cilj retract(C) brise klauzu C iz baze. Klauza C treba da bude instan-cirana tako da moze da se odredi kljucni predikat.

listing prikazuje sadrzaj baze.

Ucitavanje PROLOG programa

Cilj consult(F) ucitava program iz datoteke F.

Cilj reconsult(F) ucitava program iz datoteke F, s tim sto se definicijompredikata koji se ucitava zamenjuje (eventualna) postojeca definicija.

Cilj [F1,F2,...] oznacava ucitavanje datoteke F1, zatim datoteke F2,itd.

U PROLOG programima komentari se pisu izmedu znakova /* i */. Jed-nolinijski komentar pocinje simbolom %.

Ulaz i izlaz

seeing(X) uspeva ako je X vezana za tekuci ulazni tok (tzv. port). Naprimer, seeing(user) uspeva ako je tekuci ulazni tok tastatura.

see(X) otvara kao ulazni port datoteku X. Naredni ulazi za predikat readbice citan sa tog porta.

seen zatvara sve ulazne portove i naredni ulazi za predikat read bicecitani sa porta user.

read(X) cita izraz sa tekuceg porta i smesta ga u X.

telling(X) uspeva ako X moze biti vezana za tekuci izlazni port. Naprimer, telling(user) uspeva ako je tekuci izlazni tok ekran.

tell(X) otvara kao izlazni port datoteku X. Naredni ulazi predikatawrite bice slati na taj port.

told zatvara sve izlazne portove i naredni ulazi za predikat bice bice slatna porta user.

Elektro

nsko

izdanje(2017)

9.7. Ugradeni predikati 220

write(E) ispisuje izraz vezan za E na tekuci izlazni port.

nl omogucava prelazak u novi red.

tab(N) ispisuje N razmaka na tekuci izlazni port.

Kontrola toka

call(P) poziva predikat P, uspeva ako i samo ako uspeva P.

! operator secenja.

Negacija kao neuspeh

not(Q), \+Q daje efekat negacije kao neuspeha (kao sto je objasnjeno upoglavlju 9.5.

Obrada PROLOG termova

clause(H,B) vraca klauze iz baze cija glava se uparuje sa H, a telo sa B.Vrednost H mora biti dovoljno instancirana da odreduje glavni predikatglave.

functor(E,F,N) uspeva ako je vrednost E vezana za funkcijski izrazoblika f(...). F ce biti vezano za f a N za broj argumenat u f(...).

arg(N,E,A) uspeva ako je vrednost E vezana za funkcijski izraz oblikaf(...) i ako N moze biti vezano za neki redni broj argumenta u f(...).Ukoliko cilj uspe, A ce biti vezano za N-ti argument u f(...).

name(A,L) vrsi konvertovanje izmedu atoma i liste. Na primer, odgovorna upit ?- name(’.pl’,L). je L = [46,112,108].

=.. vrsi konvertovanje izmedu terma i liste. Na primer, ?- parent(a,X) = .. L.

daje odgovorL = [parent, a, _X001].

Operator :- op(P,T,O). uvodi simbol operatora.

P odreduje prioritet operatora, vecoj vrednosti odgovara nizi prioritet(prioriteti za ugradene operatore zavise od konkretnog sistema).

T je tip operatora:

xfx za infiksni neasocijativni;

xfy za infiksni desno asocijativni;

yfx za infiksni levo asocijativni;

fx za prefiksni neasocijativni;

fy za prefiksni desno asocijativni;

xf za postfiksni neasocijativni;

yf za postfiksni levo asocijativni;

O je ime operatora.

Elektro

nsko

izdanje(2017)

221 9. PROLOG

Tip operatora se definise pomocu jednostavnih, gore datih, niski karak-tera. Karakter f oznacava poziciju operatora, a x i y pozicije argumenata.Pri tome x znaci da se radi o argumentu sa glavnim operatorom strogomanjeg prioriteta od operatora koji definisemo. y znaci da prioritet glav-nog operatora argumenta moze biti manji ili jednak prioritetu operatorakoji definisemo. Pri tome se smatra da atomi i izrazi u zagradama imajuprioritet 0.

Smisao ovakvog definisanja tipa operatora se najbolje ilustruje pomocustabla operatora. Neka je operator + tipa yfx i neka je dat izraz a+b+c.Postoje dva stabla izraza koja mu potencijalno mogu odgovarati. Datasu na slici 9.6.

+

+

𝑎 𝑏

𝑐

+

𝑎 +

𝑏 𝑐

Slika 9.6: Dva stabla koja mogu odgovarati izrazu a+b+c

Ako posmatramo desno drvo, primecujemo da njegovo desno poddrvo imaoperator + u korenu koji nije strogo manjeg prioriteta od operatora + ukorenu celog stabla. Medutim, njegov tip yfx to zahteva, pa stoga desnodrvo moramo odbaciti. Odnosno, operator je levo asocijativan i izraz setumaci kao ((a+b)+c). Da je tip operatora bio xfx ni jedno od ova dvastabla ne bi bilo prihvatljivo, posto se bar u jednom poddrvetu javljaoperator + istog prioriteta. Ovo se moze resiti pomocu zagrada, posto jeprioritet izraza u njima 0. Stoga tip xfx namece koriscenje zagrada, stoznaci da operator nije asocijativan.

Ugradeni operatori, poredani po prioritetima:

:- xfx, fx?- fx; xfy, xfynot fyis, =.., <, itd. xfx+, - yfx, fx*, / yfx^ xfy

Elektro

nsko

izdanje(2017)

9.8. Primeri resavanja problema primenom PROLOG-a 222

Pronalazenje svih resenja findall(Things,GoalExpression,Bag) prona-lazi sve vrednosti za Things koje zadovoljavaju uslov GoalExpression ismesta ih u listu Bag. Ako cilj GoalExpression ne uspeva, list Bag cebiti prazna. Sve promenljive u GoalExpression se smatraju egzistenci-jalno kvantifikovanim.

bagof(Things,GoalExpression,Bag) pronalazi sve vrednosti za Thingskoje zadovoljavaju uslov GoalExpression i smesta ih u listu Bag. Neuspeva ako ne uspeva cilj GoalExpression. Slobodne promenljive uGoalExpression mogu da se vezu.

setof(Things,GoalExpression,Bag) funkionise isto kao bagof uz ra-zliku da ce lista Bag biti sortirana i da nece sadrzati duplikate.

Pitanja i zadaci

Pitanje 9.19. Kako se u PROLOG-u, u interaktivnom radu, dodaje novacinjenica?

Pitanje 9.20. Koji predikat prekida izvrsavanje Prolog interpretarora?

Pitanje 9.21. Kojim izrazom se u PROLOG-u promenljiva 𝑋 veze za nu-mericku vrednost, npr. 5?

Pitanje 9.22. Kako se PROLOG program ucitava iz datoteke datoteka?

Pitanje 9.23. Koji upit u PROLOG-u uspeva ako i samo ako je X neinstan-cirana promenljiva?

9.8 Primeri resavanja problema primenom PROLOG-a

PROLOG je veoma pogodan za resavanje problema vestacke inteligencije.Ilustrovacemo to kroz nekoliko primera.

9.8.1 Implementacija KNF algoritma

Kao prvi veci primer PROLOG programa koji ilustruje razne koncepte je-zika, navodimo implementaciju KNF algorima. Kasnije cemo na to nadove-zati implementaciju algoritma DPLL. Radi preglednijeg zapisa, prvo uvodimologicke veznike kao nove operatore.

:- op(10,fx,non).

:- op(20,yfy,and).

:- op(30,yfy,or).

:- op(40,xfx,imp).

:- op(50,xfx,eq).

Elektro

nsko

izdanje(2017)

223 9. PROLOG

Operatori and i or su definisani kao asocijativni (yfy), sto dovodi do ispustanjanepotrebnih zagrada u zapisu i lakse citljivosti.

Predikat knf implementira KNF algoritam iz tri koraka. Prvo se eliminisuveznici ekvivalencije i implikacije, zatim se vrsi primena de Morganovih zakonauz eliminisanje dvostrukih negacija, a na kraju primena zakona distributivnostidisjunkcije i konjunkcije.

knf(X,Y) :- elim(X,Z),dem(Z,T),dist(T,Y).

elim(X eq Y,R) :- elim((X imp Y) and (Y imp X),R).

elim(X imp Y,non X1 or Y1) :- elim(X,X1),elim(Y,Y1).

elim(X or Y,X1 or Y1) :- elim(X,X1),elim(Y,Y1).

elim(X and Y,X1 and Y1) :- elim(X,X1),elim(Y,Y1).

elim(non X,non X1) :- elim(X,X1).

elim(X,X) :- atom(X).

Primetimo da je pri svakom pozivu primenljivo samo jedno pravilo za eli-minaciju, tako da PROLOG nece traziti vise od jednog resenja. Osim toga,treba primetiti da je prvo pravilo specificno zato sto eliminisuci jedan veznikuvodi novi koji je potrebno eliminisati.

dem(non (X and Y),X1 or Y1) :- dem(non X,X1),dem(non Y,Y1).

dem(non (X or Y),X1 and Y1) :- dem(non X,X1),dem(non Y,Y1).

dem(non non X,X1) :- dem(X,X1).

dem(X or Y,X1 or Y1) :- dem(X,X1),dem(Y,Y1).

dem(X and Y,X1 and Y1) :- dem(X,X1),dem(Y,Y1).

dem(non X,non X) :- atom(X).

dem(X,X) :- atom(X).

Primetimo da je jednostavnosti radi ucinjeno malo odstupanje od KNFalgoritma kako je dat na slici 7.2. Naime, dozvoljena je eliminacija dvostrukenegacije i pre nego sto se do kraja primene de Morganovi zakoni.

dist(X and Y, X1 and Y1) :- dist(X,X1),dist(Y,Y1).

dist(X or Y, R) :- dist(X,X1),dist(Y,Y1),dist(X1,Y1,R).

dist(non X, non X).

dist(X,X) :- atom(X).

dist(X and Y, Z, XZ and YZ) :- dist(X,Z,XZ),dist(Y,Z,YZ),!.

dist(X, Y and Z, XY and XZ) :- dist(X,Y,XY),dist(X,Z,XZ),!.

dist(X,Y,X or Y).

Kada mu je argument neka konjunkcija, predikat dist omogucava rekur-zivnu primenu na konjunkte, a slucaju disjunkcije primenjuje zakone distribu-tivnosti. Pri tome se uzima u obzir i to da primena ovog zakona moze dovesti

Elektro

nsko

izdanje(2017)

9.8. Primeri resavanja problema primenom PROLOG-a 224

do stvaranja novih uslova za njegovu primenu u okviru podformula dobijenogizraza.

9.8.2 Implementacija DPLL algoritma

Posle transformacije formule u konjunktivnu normalnu formu, u cilju pri-mene DPLL algoritma, potrebno ju je konvertovati u listu listi literala gde jespoljna lista konjunkcija unutrasnjih listi koje predstavljaju klauze. Kako bi-smo ovo implementirali, prvo nam je potreban pomocni predikat koji spaja dveliste. Za to cemo koristiti predikat append definisan u sekciji 9.6.

Konverzija se vrsti tako sto se prolazi kroz konjunkcije spajajuci liste koje sedobijaju rekurzivnom primenom predikata knf_u_listu_listi na konjunkte(koji su ponovo u konjunktivnoj normalnoj formi) sve dok se ne dode do dis-junkcije. U tom trenutku se prelazi na novi predikat disjunkcija_u_listu

koji od disjunkcije formira listu literala analogno nacinu na koji knf_u_listu_listigradi listu listi.

knf_u_listu_listi(X,[[X]]) :- atom(X).

knf_u_listu_listi(non X, [[non X]]) :- atom(X).

knf_u_listu_listi(X and Y,R) :- knf_u_listu_listi(X,R1),

knf_u_listu_listi(Y,R2),

append(R1,R2,R).

knf_u_listu_listi(X or Y,[R]) :- disjunkcija_u_listu(X or Y, R).

disjunkcija_u_listu(X,[X]) :- atom(X).

disjunkcija_u_listu(non X,[non X]).

disjunkcija_u_listu(X or Y,R) :- disjunkcija_u_listu(X,R1),

disjunkcija_u_listu(Y,R2),

append(R1,R2,R).

U cilju implementacije DPLL algoritma, prvo su nam potrebni pomocnipredikati koji implementiraju rad sa listama i listama listi.

Predikat koji proverava da li se element nalazi u listi je poznat od ranije:

sadrzi([X|R],X).

sadrzi([Y|R],X) :- sadrzi(R,X).

Da bismo proverili da li lista listi sadrzi neki element koristicemo dvostrukuprimenu predikata sadrzi, s tim sto cemo u nastavku predikatima davati naziveu skladu sa njihovim smislom u implementaciji DPLL algoritma.

formula_sadrzi_literal(X,Y) :- sadrzi(X,Z),sadrzi(Z,Y).

Kako se u DPLL algoritmu koriste i zamene literala ili iskaznih slova, kori-sticemo i sledeci predikat:

Elektro

nsko

izdanje(2017)

225 9. PROLOG

zameni_u_disj(X,Y,[X|R],[Y|T]) :- zameni_u_disj(X,Y,R,T),!.

zameni_u_disj(X,Y,[Z|R],[Z|T]) :- zameni_u_disj(X,Y,R,T).

zameni_u_disj(X,Y,[],[]).

Pri tome se podrazumeva da su disjunkcije unutrasnje liste. Zamena ele-menta liste listi (literala u celoj formuli) se sad lako vrsi:

zameni_literal(X,Y,[P|R],[Q|T]) :- zameni_u_dsij(X,Y,P,Q),

zameni_literal(X,Y,R,T).

zameni_literal(X,Y,[],[]).

Zamena iskaznog slova p u formuli se moze uraditi tako sto se zamene obaliterala - p i non p odgovarajucim simbolima u celoj formuli.

zameni_slovo(X,Y,P,Q) :- zameni_literal(X,Y,P,R),

zameni_literal(non X, non Y,R,Q).

Brisanje svih pojavljivanja elementa liste vrsimo na sledeci nacin:

brisi_sve(X,[X|R],R1) :- brisi_sve(X,R,R1),!.

brisi_sve(X,[Y|R],[Y|R1]) :- brisi_sve(X,R,R1).

brisi_sve(X,[],[]).

DPLL algoritam prvo proverava da li operise sa praznom listom klauza iako je tako vraca yes, a u suprotnom, vrsi zamene ¬⊤ sa ⊥ i ¬⊥ sa ⊤, brisepojavljivanja literala ⊥ koji je u nasoj implementaciji predstavljen atomom f

(dok je ⊤ predstavljen atomom t) i proverava da li se prazna klauza nalazi uskupu klauza. Posle toga se pokusava sa koracima tautology, unit propagation,pure literal i split.

% Provera da li je argument prazna klauza

dpll([]) :- !.

% Zamene literala non t sa f i non f sa t

dpll(X) :- formula_sadrzi_literal(X,non t),!,

zameni_negacije_literala(X,Y),dpll(Y).

dpll(X) :- formula_sadrzi_literal(X,non f),!,

zameni_negacije_literala(X,Y),dpll(Y).

% Brisanje literala f

dpll(X) :- formula_sadrzi_literal(X,f),!,brisi_f(X,Y),dpll(Y).

% Ako formula sadrzi praznu klauzu, onda je

% polazna formula nezadovoljiva

dpll(X) :- sadrzi_praznu_klauzu(X),!,fail.

Elektro

nsko

izdanje(2017)

9.8. Primeri resavanja problema primenom PROLOG-a 226

% Korak tautology

dpll(X) :- sadrzi(X,Y),sadrzi(Y,t),!,brisi_sve(Y,X,Z),dpll(Z).

dpll(X) :- sadrzi(X,Y),sadrzi(Y,L),atom(L),sadrzi(Y, non L),!,

brisi_sve(Y,X,Z),dpll(Z).

% Korak unit propagation

dpll(X) :- sadrzi(X,[Y]),atom(Y),!,zameni_slovo(Y,t,X,Z),dpll(Z).

dpll(X) :- sadrzi(X,[non Y]),!,zameni_slovo(Y,f,X,Z),dpll(Z).

% Korak pure literal

dpll(X) :- formula_sadrzi_literal(X,Y),atom(Y),

not(formula_sadrzi_literal(X,non Y)),!,

zameni_slovo(Y,t,X,Z),dpll(Z).

dpll(X) :- formula_sadrzi_literal(X,non Y),

not(formula_sadrzi_literal(X,Y)),!,

zameni_slovo(Y,f,X,Z),dpll(Z).

% Korak split

dpll([[X|R1]|R2]) :- atom(X),zameni_slovo(X,t,[[X|R1]|R2],Y),

dpll(Y),!.

dpll([[X|R1]|R2]) :- atom(X),zameni_slovo(X,f,[[X|R1]|R2],Y),

dpll(Y).

dpll([[non X|R1]|R2]) :- zameni_slovo(X,t,[[non X|R1]|R2],Y),

dpll(Y),!.

dpll([[non X|R1]|R2]) :- zameni_slovo(X,f,[[non X|R1]|R2],Y),

dpll(Y).

Primetimo da je recimo u koraku tautology moguce da postoji vise klauzakoje sadrze literal t. U tom slucaju PROLOG bi prirodno vrsio bektrekingu potrazi za svim resenjima. Kako to u nasoj implementaciji nema svrhe,ubacen je predikat reza koji sprecava ovakvo ponasanje. Slicna opaska vazi i upravilima unit propagation i pure literal.

Zamene negiranih literala se vrse jednostavno kad imamo implementiranepomocne predikate.

zameni_negacije_literala(X,Y) :- zameni_literal(non t,f,X,Z),

zameni_literal(non f,t,Z,Y).

Brisanje literala f:

brisi_f([X|R],[Y|R1]) :- brisi_sve(f,X,Y),brisi_f(R,R1).

brisi_f([],[]).

Predikat sadrzi_praznu_klauzu se trivijalno implementira.

Elektro

nsko

izdanje(2017)

227 9. PROLOG

sadrzi_praznu_klauzu(X) :- sadrzi(X,[]).

Sada mozemo dodati jos jedan predikat koji proverava da li je formulazadovoljiva:

zadovoljiva(X) :- knf(X,Y),knf_u_listu_listi(Y,Z),dpll(Z).

9.8.3 Pretraga grafa

Kako grafovi predstavljaju binarne relacije nad nekim domenom, PROLOGomogucava vrlo jednostavno opisivanje i pretragu grafova. Graf se zadaje listomsvojih grana.

edge(1, 5).

edge(1, 7).

edge(2, 1).

edge(2, 7).

edge(3, 1).

edge(3, 6).

edge(4, 3).

edge(4, 5).

edge(5, 8).

edge(6, 4).

edge(6, 5).

edge(7, 5).

edge(8, 6).

edge(8, 7).

Nalazenje putanje se realizuje rekurzivno. Postoji put od cvora 𝐴 do cvora𝐵 ako je 𝐴 = 𝐵 ili ako postoji grana od cvora 𝐴 do cvora 𝑋 i postoji putod 𝑋 do 𝐵. Kako grafovi mogu u opstem slucaju sadrzati cikluse, potrebnoje pamtiti i listu posecenih cvorova kako ne bi doslo do prekoracenja steka prirekurzivnim pozivima.

% path(Start, Finish, Visited, Path)

path(Node, Node, _, [Node]).

path(Start, Finish, Visited, [Start|Path]):-

edge(Start, X), not(sadrzi(Visited,X)),

path(X,Finish,[X|Visited],Path).

Elektro

nsko

izdanje(2017)

9.8. Primeri resavanja problema primenom PROLOG-a 228

9.8.4 Problem misionara i ljudozdera

Na levoj obali reke nalaze se tri misionara i tri ljudozdera (eng. missionariesand cannibals). Pomocu camca koji prima dve osobe, svi treba da se prevezupreko reke. Pri tome, ne sme se desiti da na nekoj obali broj ljudozdera budeveci od broja misionara jer ce ih ovi pojesti. Potrebno je naci neki rasporedprevozenja tako da svi predu reku.

Resavanje ovog problema cemo svesti na pretragu grafa. Izmedu svakadva poteza, igra se nalazi u odredenom stanju. To stanje se karakterise bro-jem misionara i ljudozdera na obalama i polozajem camca. Broj misionara iljudozdera je dovoljno precizirati za levu stranu, jer je tad broj na desnoj stranijednoznacno odreden. Primer stanja je

state(3, 1, left)

Potezi predstavljaju prevozenje jedne ili dve osobe na drugu stranu reke.Potpuno su odredeni brojem misionara i ljudozdera koji se prevoze i stranomna koju se camac krece. Primer poteza je

move(1, 1, right)

Stanja igre mozemo smatrati cvorovima grafa cije su grane potezi pomocukojih se prelazi iz jednog stanja u drugo. Na ovaj nacin se resavanje problemasvodi na nalazenje putanje kroz graf od polaznog stanja state(3,3,left) dozavrsnog state(0,0,right). Samo resenje je lista poteza koji odgovarajugranama koje spajaju medustanja u toku resavanja.

[move(0,2,left), move(0,1,right)|...]

Osnovni predikat za resavanje ovog problema ima formu vec prikazanogpredikata za pretragu grafa.

mandc(state(0, 0, right), _, []).

mandc(CurrentState, Visited, [Move | RestOfMoves]) :-

newstate(CurrentState, NextState),

not(sadrzi(NextState, Visited)),

make(CurrentState, NextState, Move),

mandc(NextState, [NextState | Visited], RestOfMoves).

Za uoceno stanje koje nasleduje trenutno, potez koji realizuje prelaz se lakoizracunava.

make(state(M1,C1,left), state(M2,C2,right), move(M,C,right)) :-

M is M1 - M2,

C is C1 - C2.

make(state(M1,C1,right), state(M2,C2,left), move(M,C,left)) :-

M is M2 - M1,

Elektro

nsko

izdanje(2017)

229 9. PROLOG

C is C2 - C1.

Da bismo konstruisali sledece stanje, potrebno je definisati legalne prelazecamcem

carry(2, 0).

carry(1, 0).

carry(1, 1).

carry(0, 1).

carry(0, 2).

kao i legalna stanja. Pozicija camca je nebitna, ali broj ljudozdera ni na jednojobali ne sme prelaziti broj misionara. Stoga, legalna su samo stanja kod kojihje broj misionara na levoj strani jednak broju ljudozdera, stanja koj kojih susva tri misionara na levoj obali i stanja kod kojih su svi misionari na desnojobali.

legal(X, X).

legal(3, X).

legal(0, X).

Prilikom konstrukcije novog stanja, moramo paziti i da pre prelaska na desnuobalu, na levoj strani mora biti dovoljno osoba koje su planirane za prelazak,i da posle prelaska na levu obalu na njoj ne moze biti vise od tri misionara,odnosno ljudozdera.

newstate(state(M1, C1, left), state(M2, C2, right)) :-

carry(M, C),

M =< M1,

C =< C1,

M2 is M1 - M,

C2 is C1 - C,

legal(M2, C2).

newstate(state(M1, C1, right), state(M2, C2, left)) :-

carry(M, C),

M2 is M1 + M,

C2 is C1 + C,

M2 =< 3,

C2 =< 3,

legal(M2, C2).

Pitanja i zadaci

Zadatak 9.1. Napisati u PROLOG-u:

Elektro

nsko

izdanje(2017)

9.8. Primeri resavanja problema primenom PROLOG-a 230

1. Predikat koji iz iskazne formule eliminise veznik disjunkcije zamenjujuciga pomocu veznika konjunkcije i negacije. Pri tome smatrati da sudefinisani sledeci veznici:

:- op(10,fx,non).

:- op(20,yfy,and).

:- op(30,yfy,or).

2. Predikat koji od date liste pravi novu, koja od elemenata polazne listesadrzi samo one koji su i sami liste i to sa neparnim brojem elemenata.

Primer: Za listu [1,2,[1,2,3],[3,4],4,[a],[1,2],5] rezultat trebada bude [[1,2,3],[a]]. Za listu [1,2,[1,2,3,4]], rezultat je [].

Zadatak 9.2. Data su pravila i cinjenice:Ko laze taj krade.Ko krade i uhvacen je u kradi taj ide u zatvor.Al Kapone laze.Al Kapone je uhvacen u kradi.Laki Luciano laze.Napisati PROLOG program koji opisuje navedene cinjenice i pravila. Koje

odgovore PROLOG daje na upite da li Al Kapone ide u zatvor"i da li LakiLuciano ide u zatvor". Nacrtati odgovarajuca dva stabla izvodenja i navestisve primene pravila rezolucije (u terminima logike prvog reda) koja se pritome koriste.

Zadatak 9.3. Napisati u PROLOG-u predikat koji izracunava vrednost bi-narnog zapisa broja. Broj je dat u obliku liste nula i jedinica. Na primer zaulaz [1, 0, 1, 0], izlaz treba da bude 10.

Zadatak 9.4. Napisati u PROLOG-u predikat koji generise sve liste dateduzine koje se sastoje od elemenata 0 i 1.

Zadatak 9.5. Napisati u PROLOG-u predikat koji od date liste pravi novu,koja od elemenata polazne liste sadrzi samo one koji su i sami liste i to saneparnim brojem elemenata.

Primer: Za listu [1,2,[1,2,3],[3,4],4,[a],[1,2],5] rezultat treba dabude [[1,2,3],[a]]. Za listu [1,2,[1,2,3,4]], rezultat je [].

Zadatak 9.6. Dvostruki faktorijel se definise na sledeci nacin: 𝑛!! = 𝑛 · (𝑛−2) · . . . · 1

Specijalno, 1!! = 1 i 0!! = 1. Napisati PROLOG program koji izracunavaovu funkciju.

Zadatak 9.7. Napisati PROLOG predikat koji za datu listu brojeva izracunavakoliko se parnih brojeva u njoj javlja.

Elektro

nsko

izdanje(2017)

231 9. PROLOG

Zadatak 9.8. Napisati PROLOG predikat koji za zadati broj 𝑛 i datu listucelih brojeva racuna sumu brojeva liste manjih od 𝑛 i sumu brojeva liste vecihod 𝑛. Na primer:

deljenje([1, 6, 3, 7, 8],6,X,Y).

X=4

Y=15

Zadatak 9.9. Napisati PROLOG predikat koji spaja dve sortirane liste bro-jeva u jednu listu, ali u obrnutom poretku. Na primer:

spajanje([1,4,7,9],[2,3,8,20],A).

A=[20,9,8,7,4,3,2,1].

Zadatak 9.10. Napisati predikat ubaci koji izlistava sve moguce nacine uba-civanja elementa u datu listu.

ubaci(5,[1,2,3],X).

X=[5,1,2,3]

X=[1,5,2,3]

X=[1,2,5,3]

X=[1,2,3,5]

Zadatak 9.11. Koje vrednosti imaju promenljive X, Y i R nakon unifikacije[1,2,[1,2,3]]=[X,Y|R] ?

Zadatak 9.12. Pretpostavimo da su definisani predikatiparan(2).

paran(4).

dvaparna(X,Y) :- not(X=Y),paran(X),paran(Y).

Sta ce vratiti upit ?-dvaparna(X,Y)?

Zadatak 9.13. U PROLOG-u napisati predikat cifre koji prevodi dati broju listu njegovih cifara u bilo kom redosledu.

Zadatak 9.14. U PROLOG-u napisati predikat minmax koji racuna mini-mum maksimuma elemanata liste listi. Na primer upit

?- minmax([[1,2,3],[3,4,5],[2,3,4]],X)

treba da da rezultat X=3. Ukoliko je potrebno, mogu se pisati i pomocnipredikati.

Zadatak 9.15. U PROLOG-u napisati predikat prebroj koji za datu listulisti proizvodi listu duzina tih listi. Na primer, upit

?-prebroj([[1,2,3],[1,2],[1]],X).

treba da da odgovor X=[3,2,1].

Zadatak 9.16. Napisati PROLOG predikat koji iz liste brojeva izdvaja ele-mente ciji su indeksi stepeni dvojke. Pretpostaviti da indeksi pocinju od 1.Na primer

?-izdvoj([5,3,4,1,6,8,9,10,2],X).

X=[5,3,1,10]

Elektro

nsko

izdanje(2017)

9.8. Primeri resavanja problema primenom PROLOG-a 232

Zadatak 9.17. Napisati predikat u PROLOG-u koji kao argument uzimalistu brojeva L, i izracunava novu listu R. Elementi liste R su brojevi iz L kojisu deljivi sa 4 i kvadrati brojeva iz L koji su parni a nisu deljivi sa 4.

Zadatak 9.18. Napisati u PROLOG-u predikat razdvoj koji kao argumentuzima listu brojeva L, i broj X. Predikat izracunava dve liste, pri cemu se prvasastoji od elemenata iz L ciji su kvadrati manji od X, a druga od elemenata izL ciji su kvadrati veci od X. Na primer

?-razdvoj([1,2,3,4,5,6,7,8],9,X,Y).

X=[1,2], Y=[4,5,6,7,8]

Zadatak 9.19. U sistemu prirodne dedukcije za logiku prvog reda pokazati¬𝑆(𝑎), 𝑃 (𝑎) ⇒ 𝑅(𝑎) ∨ 𝑆(𝑎) ⊢ 𝑃 (𝑎) ⇒ ∃𝑥𝑅(𝑥).

U PROLOG-u napisati predikat koji proverava da li su sve cifre datog brojaparne. Na primer

?-parne(123).

false.

Zadatak 9.20. U PROLOG-u napisati predikat selectionsort(X,Y) kojiza polaznu listu X gradi sortiranu listu Y algoritmom selection sort"(izboromminimalnog elementa). Preporucuje se uvodenje dodatnih predikata kad jepotrebno.

Zadatak 9.21. U PROLOG-u napisati predikat ciji su argumenti lista bro-jeva i tri broja 𝑎, 𝑏 i 𝑐 koji proverava da li se u listi pojavljuje broj 𝑏 izmedubrojeva 𝑎 i 𝑐.

Zadatak 9.22. U PROLOG-u napisati predikat koji u listi L pronalazi poja-vljivanja liste A i zamenjuje ih listom B. Na primer

?-zamena([1,2,3,1,2],[1,2],[4]).

[4,3,4]

Zadatak 9.23. Napisati predikat rotiraj koji ciklicno pomera elemente listeulevo za N mesta. Pretpostaviti da N nije vece od duzine liste.

?-rotiraj([1,2,3,4,5],3,X).

X=[4,5,1,2,3].

Zadatak 9.24. Napisati predikat palindrom koji proverava da li je data listapalindrom.

?-palindrom([1,2,3,2,1]).

Yes.

Zadatak 9.25. Napisati program koji za dati broj formira listu njegovih pro-stih delilaca. Na primer:

?-delioci(350,X).

X=[2,5,7].

Elektro

nsko

izdanje(2017)

233 9. PROLOG

Zadatak 9.26. Napisati PROLOG predikat koji iz liste brojeva izdvaja ele-mente ciji su indeksi stepeni dvojke. Pretpostaviti da indeksi pocinju od 1.Na primer

?-izdvoj([5,3,4,1,6,8,9,10,2],X).

X=[5,3,1,10]

Zadatak 9.27. U PROLOG-u napisati predikat koji u listi L pronalazi poja-vljivanja liste A i zamenjuje ih listom B. Na primer

?-zamena([1,2,3,1,2],[1,2],[4]).

[4,3,4]

Zadatak 9.28. Napisati predikat parni koji za datu listu brojeva izdvaja sveone brojeve ciji je zbir cifara paran.

?-parni([461, 422, 6, 27, 890, 71, 9, 11, 83], X).

X = [422, 6, 71, 11]

Zadatak 9.29. Napisati predikat parne_niske koji za datu listu brojevaodreduje listu podniski konstantne parnosti.

?-parni([1, 4, 6, 2, 2, 7, 9, 11, 8], X).

X = [[1], [4, 6, 2, 2], [7, 9, 11], [8]]

Zadatak 9.30. Da bi se napravio LED televizor potrebno je napraviti pri-premiti razlicite delove. U bazi podataka nalaze se podaci sta od cega zavisi,tj. koji delovi su potrebni da bi se napravio neki drugi deo. Recimo:

zavisi(LCD_panel, ekran).

zavisi(osvetljenje, ekran).

zavisi(prikljucak_za_struju, napajanje).

...

Napisati prolog predikat listaPreduslova(Deo) koji za dati deo formira listusvih potrebnih delova.

Napisati PROLOG predikat redosled(ListaDelova, Redosled) koji is-pituje da li postoji i pronalazi ako postoji ispravne redoslede za delova da bise kompletirao ceo televizor.

Zadatak 9.31. U bazi podataka date su cinjenice oblikapredmet(ime_predmeta, kategorija)

gde je sa kategorija oznaceno da li predmet pripada grupi programerskih ilimatematickih predmeta. Na primer:

Elektro

nsko

izdanje(2017)

9.8. Primeri resavanja problema primenom PROLOG-a 234

predmet(programiranje2, prog).

predmet(analiza1, mat).

predmet(linAlgebra, mat).

...

Napisati predikat grupa(G, L) koji za datu kategoriju G pravi listu L svihpredmeta koji toj grupi pripadaju.

Zadatak 9.32. Napisati predikat izbaci(L1, L2, L) koja iz liste L1 izba-cuje sve elemente koji se pojavljuju u listi L2 i rezultat smesta u L.

Zadatak 9.33. Napisati predikat pozneg koji za datu listu brojeva izracunavakoliko se podniski kontstantnog znaka javlja u toj nisci.

?-pozneg([1,2,-2,-6,-3,5,-2,-3],X).

X=4.

?-pozneg([1,2,2,-6,3,-5,4],X).

X=5.

Zadatak 9.34.√

Vazi sledece:Janko ima psa.Svaki vlasnik psa voli zivotinje.Nijedna osoba koja voli zivotinje ne moze da udari zivotinju.Janko ili Marko su udarili macku cije je ime Tuna.Svaka macka je zivotinja.U PROLOG-u zapisati cinjenice i predikate pomocu kojih se moze utvrditi

ko je udario Tunu.

Zadatak 9.35.√

Definisati predikat koji izracunava sumu prvih N prirodnihbrojeva.

Zadatak 9.36.√

Definisati predikat koji izracunava sumu cifara datog broja.

Zadatak 9.37.√

Definisati predikat koji izracunava N-ti stepen zadatogbroja.

Zadatak 9.38.√

Definisati predikat koji obrce cifre broja.

Zadatak 9.39.√

Definisati predikat koji izracunava najveci zajednicki deli-lac dva broja.

Zadatak 9.40.√

Definisati predikat koji proverava da li je broj prost.

Zadatak 9.41.√

Definisati predikat koji izracunava sumu elemenata liste.

Zadatak 9.42.√

Definisati predikat koji obrce listu.

Elektro

nsko

izdanje(2017)

235 9. PROLOG

Zadatak 9.43.√

Definisati predikat koji dodaje element na kraj liste.

Zadatak 9.44.√

Definisati predikat koji proverava da li se tri zadata ele-menta nalaze na uzastopnim pozicijama u listi.

Zadatak 9.45.√

Definisati predikat koji konstruise listu koja se sastoji odprvih 𝑛 elemenata zadate liste.

Zadatak 9.46.√

Definisati predikat koji deli datu listu brojeva na listunegativnih i nenegativnih elemenata.

Zadatak 9.47.√

Definisati predikat koji deli datu listu na dve na sve mogucenacine.

Zadatak 9.48.√

Definisati predikat koji ispisuje sve podliste date liste.

Zadatak 9.49.√

Definisati predikat koji iz date liste brise sva ponavljanjaelemenata.

Zadatak 9.50.√

Definisati predikat koji nalazi uniju dve liste.

Zadatak 9.51.√

Definisati predikat koji nalazi presek dve liste.

Zadatak 9.52.√

Definisati predikat koji nalazi razliku dve liste.

Zadatak 9.53.√

Definisati predikat koji nalazi simetricnu razliku dve liste.

Zadatak 9.54. Napisati predikat u PROLOG-u koji kao argument uzimalistu listi L i proverava da li liste iz L cine grejov kod.

?-grejovkod([[0,0],[0,1],[1,1],[1,0]]).

true.

?-grejovkod([[0,0]]).

false.

Elektro

nsko

izdanje(2017)

Elektro

nsko

izdanje(2017)

Deo III

Masinsko ucenje i induktivno

zakljucivanje

Elektro

nsko

izdanje(2017)

Elektro

nsko

izdanje(2017)

Glava 10

Uvod u masinsko ucenje

Masinsko ucenje je oblast vestacke inteligencije koja se moze definisati narazlicite nacine. Jedna definicija kaze da je to disciplina koja se bavi izgrad-njom prilagodljivih racunarskih sistema koji su sposobni da poboljsavaju svojeperformanse koristeci informacije iz iskustva. Masinsko ucenje moze se defini-sati i kao disciplina koja se bavi proucavanjem generalizacije i konstrukcijom ianalizom algoritama koji generalizuju. Prva definicija bliza je inzenjerskom iprakticnom racunarskom nacinu razmisljanja sa akcentom na resavanju kon-kretnih problema i implementaciji resenja. Druga definicija bliza je mate-matickom razmisljanju i statistici. Mi se necemo ograniciti na samo jedanod njih. Masinsko ucenje tezi da se priblizi ljudskom ucenju po efikasnosti,kao i da ga objasni, to jest, pruzi teorijski model za njega. Naravno, oba ci-lja su za sada daleko od ostvarenja u punom smislu, ali su uspesi u resavanjupojedinacnih prakticnih problema u mnogim slucajevima impresivni.

Neka od najvaznijih pitanja kojima se bavi masinsko ucenje su:

� Sta se moze nauciti i pod kojim uslovima?

� Kako se povecava efikasnost ucenja u zavisnosti od obima iskustva?

� Koji su algoritmi pogodni za koje vrste problema?

Odgovore na ova pitanja treba traziti kako kroz teorijske modele ucenja uokviru kojih se u ovom pogledu vec doslo do znacajnih rezultata, tako i krozeksperimentalnu evaluaciju algoritama na podacima iz realnih problema.

10.1 Primeri primena masinskog ucenja

Masinsko ucenje uspesno se primenjuje u mnostvu prakticnih problema.Jedan od najstarijih, a jos uvek zanimljivih prakticnih rezultata postignut jeod strane sistema ALVINN zasnovanog na neuronskoj mrezi, krajem osamde-setih godina dvadesetog veka, koji je naucen da vozi javnim putem u prisustvu

239

Elektro

nsko

izdanje(2017)

10.1. Primeri primena masinskog ucenja 240

drugih vozila bez ljudske pomoci brzinom od oko 110km/h. Uspesno je voziona putu duzine oko 140km. Sa razvojem dubokih neuronskih mreza, sredinomprve decenije ovog veka, projekat razvoja autonomnog vozila je dobio novi za-mah. Pod okriljem kompanije Gugl X, u toku je razvoj vozila koje treba dabude u stanju da samostalno ucestvuje u gradskoj voznji, koja je znacajnokomplikovanija od voznje na auto putu. Izazovi za tehnike masinskog ucenjau ovom problemu ukljucuju kako prepoznavanje puta i ucesnika u saobracaju,tako i donosenje odluka. Slicne metode se u istoj kompaniji uspesno koristei za ucenje upravljanja kvadrotorima (malim letilicama sa cetiri propelera) ucilju prenosenja predmeta ili posiljki. Kompanija Amazon razmatra mogucnostovakvog nacina dostavljanja svojih posiljki u gradskim sredinama.

Jedan od najpoznatijih ranih primera primene masinskog ucenja je i si-stem TD-Gammon za igranje igre Backgammon konstruisan devedesetih go-dina. Igrajuci protiv sebe vise od milion partija i nastavljajuci da uci u igri saljudskim igracima, dostigao je nivo igre u rangu svetskog sampiona. Na slicnimprincipima, ali koristeci modernije algoritme ucenja konstruisan je sistem Al-faGo koji je 2015. i 2016. ubedljivo pobedio evropskog, a zatim i svetskogsampiona u igri go. Ova igra je poznata kao jedan od, do sada, najozbiljnijihizazova vestackoj inteligenciji u domenu igranja igara, posto po broju mogucihstanja daleko prevazilazi i sah, sto drasticno otezava primenu tradicionalnihtehnika vestacke inteligencije poput algoritma minimaks sa alfa-beta odseca-njem.

Kompanije poput Amazona, koje se bave prodajom razlicitih artikala, odavnokoriste sisteme koji na osnovu primera kupovnih transakcija korisnika uce kakoda buducim korisnicima preporucuju proizvode koji bi ih mogli zanimati. Ova-kvi sistemi, i odgovarajuci algoritmi ucenja, nazivaju se sistemima za pre-porucivanje (eng. recommender system).

Sistemi za prepoznavanje govora takode koriste masinsko ucenje u nekojformi. Sistem Sphinx, takode iz kraja osamdesetih, bio je u stanju da prepoznaizgovorene reci uz prilagodavanje izgovoru razlicitih ljudi, razlicitim karakteri-stikama mikrofona, pozadinskoj buci i slicno. Na Univerzitetu u Kembridzu jeposlednjih godina razvijen dijaloski sistem koji je u stanju da preko telefonavodi razgovor sa korisnicima u cilju preporuke restorana i drugih objekata uskladu sa preferencama korisnika.

Masinsko ucenje ima velike primene u obradi slika. Jedna od njih je pre-poznavanje objekata na slikama ili cak u video zapisu. Trenutno se razvijajusistemi koji uce da prepoznaju predmete u realnom vremenu na osnovu in-strukcija korisnika.

Sveprisutnost drustvenih mreza dala je veliki impuls razvoju metoda masinskogucenja nad grafovima. Drustvena mreza moze se razmatrati kao graf ciji cvorovipredstavljaju ucesnike mreze, a grane postoje izmedu ucesnika koji su povezaniu mrezi (poput prijateljstva na mrezi Fejsbuk). Pojam drustvene mreze nijeogranicen na mreze na internetu, vec se odnosi i na bilo kakav vid povezanostiljudi u relanom zivotu. Metode masinskog ucenja se u ovom kontekstu koristeza predvidanje buducih veza medu ucesnicima, recimo prilikom preporucivanja

Elektro

nsko

izdanje(2017)

241 10. Uvod u masinsko ucenje

ucesnicima mreze sa kime se mogu povezati. Takode, razvijene su i metodeza otkrivanje postojecih, ali neopazenih veza u drustvenim mrezama. Osnovnamotivacija za razvoj ovih metoda je otkrivanje povezanosti u teroristickim ikriminalnim mrezama.

10.2 Pojam generalizacije

Deduktivno zakljucivanje, vodeno zakonima logike, moze se smatrati osnov-nom karakteristikom inteligentnog ponasanja. Ovakvo zakljucivanje jedan jeod osnovnih nacina zakljucivanja kod ljudi. Druga karakteristika inteligentnogponasanja koja se moze primetiti i kod zivotinja je prilagodavanje ponasanjajedinke okolini u kojoj se ona nalazi. Kroz evolutivne procese, prilagodlji-vost se postize i kod nizih organizama, ali je ova sposobnost sa tacke gledistavestacke inteligencije posebno zanimljiva kod zivotinja i ljudi kod kojih se ma-nifestuje u toku zivota jedinke. Kod njih se prilagodavanje postize ucenjem naosnovu primera iz iskustva i primenom naucenog znanja u slicnim situacijamau buducnosti. Primera radi, za zivi organizam je znacajno da uoci kljucne ka-rakteristike neke situacije ili skupa situacija u kojima preduzimanje neke akcijedovodi do pozeljnih odnosno nepozeljnih posledica po organizam. Prepozna-vanje slicnih situacija u buducnosti omogucava organizmu da preduzimanjemadekvatne akcije u situaciji u kojoj se nalazi predupredi ishode nepovoljne ponjega ili dovede do ishoda koji su za njega povoljni. Apstraktnije razmatrano,moguce je govoriti o donosenju zakljucaka o nepoznatim slucajevima, na osnovuznanja o nekim drugim, poznatim, slucajevima. Proces u kojem se znanje kojevazi za neki skup slucajeva prenosi na neki njegov nadskup, naziva se genera-lizacijom ili induktivnim zakljucivanjem. Generalizacija predstavlja jedan odosnovnih koncepata masinskog ucenja.

Da bi generalizacija bila uspesna, odredeni aspekti entiteta o kojima se re-zonuje moraju biti zanemareni ukoliko nisu od sustinskog znacaja za generali-zaciju. Primera radi, ukoliko je potrebno nauciti vestacki sistem da prepoznajerukom pisani tekst i da ga prevodi u elektronski tekstualni zapis, potrebno jeda sistem zanemari specificnosti rukopisa razlicitih ljudi. Proces generalizacije,medutim, ne pruza garancije da su dobijeni zakljucci uvek ispravni. Sistemkoji prepoznaje rukom pisani tekst bi na osnovu nekoliko zadatih primera mo-gao da zakljuci da se cifra 1 zapisuje podvuceno crticom, ali takav, induktivnizakljucak ne bi bio korektan i sistem ne bi bio u stanju da prepozna cifru 1zapisanu bez takve crtice.

Za razliku od deduktivnog zakljucivanja, zakljucci dobijeni induktivnimzakljucivanjem i generalizacijom, kao sto je receno, ne moraju biti uvek tacni.I pored toga, induktivno zakljucivanje je i dalje veoma znacajno, a nekad ijedino moguce. To je jedan od osnovnih nacina za formiranje predstava ookruzenju, situacijama ili uzrocno posledicnim odnosima ili formalnije receno— za pravljenje modela zakonitosti u podacima iz iskustva. Ukoliko su u nekomdomenu greske u zakljucivanju prihvatljive, algoritmi induktivnog zakljucivanja

Elektro

nsko

izdanje(2017)

10.3. Primer problema ucenja 242

omogucavaju zakljucivanje i bez temeljnog poznavanja i kompletnog formalnogopisivanja domena na koji se primenjuju.

10.3 Primer problema ucenja

Pretpostavimo da je potrebno napraviti specijalizovani pretrazivac inter-neta koji omogucuje korisnicima da pretrazuje samo racunarske clanke. Da-kle, sistem treba da bude u stanju da razlikuje clanke iz oblasti racunarstvaod svih ostalih clanaka, sto predstavlja problem klasifikacije. Kako bi sistemnaucio ispravno da klasifikuje, najpre mu je potreban odredeni skup primerakoji sadrzi kako racunarske, tako i clanke iz drugih oblasti. Neka je unapredsakupljeno 3000 clanaka — po 1500 iz obe klase. Iz obe klase je izdvojeno po500 clanaka kako bi se nakon ucenja mogao proceniti kvalitet sistema.

Da bi bilo sprovedeno ucenje, potrebno je raspolozive clanke predstavitiu nekom obliku koji je pogodan za algoritam ucenja i koji bi mogao na nekinacin da reprezentuje osnovne karakteristike na osnovu kojih se clanci iz ovedve kategorije mogu razlikovati. Ocekivano je da ce u clancima iz racunarstvabiti cesce pominjani racunarski pojmovi nego u ostalim clancima. To svoj-stvo bi se moglo iskoristiti za razlikovanje clanaka. U skladu sa ovim, moguse nabrojati sve reci iz nekog recnika racunarske terminologije. Svaki clanakmoze biti predstavljen vektorom frekvencija ovih reci (frekvencija neke reci uclanku se racuna tako sto se broj pojavljivanja te reci podeli ukupnim brojempojavljivanja svih reci u clanku). Ako je 𝑥 vektor koji odgovara nekom clanku,onda ce 𝑥𝑖 oznacavati frekvencije izabranih reci.

Opisani vektori frekvencija se mogu razmatrati geometrijski, kao da su tackeu euklidskom prostoru. Jednostavnosti radi, neka se u recniku nalaze samo dvereci — „racunar“ i „datoteka“. Ukoliko su u clancima iz jedne kategorije oviracunarski termini visokofrekventni, a u drugim niskofrekventni, tacke koje od-govaraju racunarskim clancima ce se grupisati dalje od koordinatnog pocetka,dok ce se ostale grupisati blize njemu. Pojednostavljena ilustracija data je naslici 10.1 (levo).

Izmedu crvenih i plavih tacaka mozda postoji prava koja ih razdvaja, kaona slici 10.1 (desno). Ako je ova prava poznata, onda neki nov, nepoznat clanakmoze biti prepoznat kao clanak iz oblasti racunarstva ukoliko se vektor koji muodgovara nalazi sa iste strane prave kao i vektori racunarskih clanaka koji sunam poznati. U suprotnom, smatra se da clanak nije iz oblasti racunarstva.

Neka je 𝑦 promenljiva za koju vazi 𝑦 = 1 za clanak iz oblasti racunarstva, a𝑦 = −1, inace. Neka je prava koja razdvaja tacke koje odgovaraju racunarskimclancima od onih koje odgovaraju ostalim clancima data jednacinom:

𝑤1𝑥1 + 𝑤2𝑥2 + 𝑤3 = 0

gde 𝑥1 oznacava frekvenciju reci „racunar“, a 𝑥2 frekvenciju reci „datoteka“.Ocigledno, znak funkcije 𝑤1𝑥1 + 𝑤2𝑥2 + 𝑤3 pruza informaciju sa koje straneprave se nalazi tacka (𝑥1, 𝑥2).

Elektro

nsko

izdanje(2017)

243 10. Uvod u masinsko ucenje

0 0

Slika 10.1: Plavi krugovi predstavljaju racunarske clanke, a crveni ostale. Xkoordinata predstavlja frekvenciju reci „racunar“, a koordinata Y predstavljafrekvenciju reci „datoteka“. Na slici desno, osim krugova koji predstavljajuclanke, prikazana je i prava koja ih razdvaja

Pronalazenje zeljene prave moze se izvesti kroz pomeranje neke polazneprave dok ona ne bude pozicionirana izmedu tacaka koje treba da razdvaja.Da bi se odredila takva razdvajajuca prava, potrebno je odrediti koeficijente𝑤1, 𝑤2 i 𝑤3 takve da znak promenljive 𝑦 i znak vrednosti 𝑤1𝑥1+𝑤2𝑥2+𝑤3 budujednaki ili, makar, jednaki u vecini slucajeva. Potrebno formulisati algoritamucenja koji ce na osnovu raspolozivih podataka doci do tih koeficijenata. Jedantakav algoritam dat je na slici 10.2.

Ne mora biti ocigledno da azuriranje koeficijenata u predlozenom algoritmuvodi poboljsanju naucene funkcije. Pre svega, vrednost 𝜂 mora biti mala kakobi korekcije bile male i postepene. Vrednosti 𝑥1 i 𝑥2 su uvek nenegativne i stogaznak korekcije zavisi od razlike izmedu vrednosti 𝑦 i 𝑤1𝑥1+𝑤2𝑥2+𝑤3. Ukolikoje vrednost 𝑦 veca, povecavaju se koeficijenti, cime se i vrednost 𝑤1𝑥1+𝑤2𝑥2+𝑤3 povecava. Analogno u slucaju da je vrednost 𝑦 manja. Kad razlike nema,vrednost korekcije je 0. Stoga, ovim se vrednosti 𝑤1𝑥1+𝑤2𝑥2+𝑤3 priblizavajuvrednostima 𝑦. Te korekcije proporcionalne su vrednostima 𝑥1 i 𝑥2, odnosnovece su za koeficijente cija promena moze vise doprineti promeni vrednosti𝑤1𝑥1 + 𝑤2𝑥2 + 𝑤3 za dati primer. Ovaj postupak lici na gradijentni spustkojim se minimizuje srednjekvadratno odstupanje vrednosti 𝑤1𝑥1 +𝑤2𝑥2 +𝑤3

od vrednosti 𝑦 za sve instance.1

1U pitanju je stohasticki gradijentni spust, koji se od pravog gradijentnog spusta razli-kuje po tome sto se gradijent racuna na jednoj instanci, a ne na celom trening skupu, apredlozena metoda je varijanta linearne diskriminantne analize, koja je uopstenje metodakoji je predlozio Ronald Fiser, jedan od otaca moderne statistike, evolutivni biolog i geneticar.

Elektro

nsko

izdanje(2017)

10.4. Nadgledano i nenadgledano ucenje 244

Ulaz: Trening skup 𝑇 , brzina ucenja 𝜂 i preciznost 𝜀Izlaz: Koeficijenti (𝑤1, 𝑤2, 𝑤3)

1. Postaviti 𝑤 na (0, 0, 0).

2. Ponavljati

� Postaviti 𝑤′ na 𝑤

� Za svaku instancu (𝑥1, 𝑥2, 𝑦) ∈ 𝑇

– Uvecati 𝑤1 za 𝜂(𝑤1𝑥1 + 𝑤2𝑥2 + 𝑤3 − 𝑦)𝑥1

– Uvecati 𝑤2 za 𝜂(𝑤1𝑥1 + 𝑤2𝑥2 + 𝑤3 − 𝑦)𝑥2

– Uvecati 𝑤3 za 𝜂(𝑤1𝑥1 + 𝑤2𝑥2 + 𝑤3 − 𝑦)

dok vazi |𝑤 − 𝑤′| > 𝜀

3. Vratiti 𝑤 kao resenje.

Slika 10.2: Algoritam za klasifikaciju clanaka.

Kada su koeficijenti 𝑤1,𝑤2 i 𝑤3 odredeni, za novi, nepoznat clanak dovoljnoje proveriti sa koje strane prave se nalazi njegov vektor frekvencija reci, odnosnoda li je znak vrednosti 𝑤1𝑥1 + 𝑤2𝑥2 + 𝑤3 jednak znaku promenljive 𝑦.

Kada je ucenje zavrseno, pozeljno je proceniti koliko se sistem dobro ponasa.Na pocetku je bilo izdvojeno 1000 clanaka koji sad mogu biti klasifikovani. Kadsu clanci klasifikovani, kao mera kvaliteta ucenja moze se izracunati udeo dobroklasifikovanih clanaka u ukupnom broju clanaka. Pozeljno je da je on sto veci.

10.4 Nadgledano i nenadgledano ucenje

Koliko god primene masinskog ucenja bile raznovrsne, postoje odredenezajednicke karakteristike zadataka i procesa ucenja koje se cesto srecu. Postojedva glavna vida problema ucenja: nadgledano ucenje (eng. supervised learning)i nenadgledano ucenje (eng. unsupervised learning)) (koja se ne odnose na istevrste zadataka).

Nadgledano ucenje odnosi se na situacije u kojima se algoritmu, zajedno sapodacima iz kojih uci, daju i zeljeni izlazi, to jest vrednosti takozvane ciljnepromenljive. Algoritam treba da nauci da za date podatke pruzi odgovarajuceizlaze. Ocekuje se i da izlazi dati za podatke na kojima nije vrseno ucenje,takode budu dobri. Primer problema sa nadgledanim ucenjem je problem kla-sifikacije, verovatno u praksi najcesci zadatak ucenja. Problem klasifikacijepredstavlja problem prepoznavanja vrste objekata. Na primer, da li je clanakracunarski ili nije, da li odredeno elektronsko pismo predstavlja nezeljenu postu(eng. spam) ili ne. Drugi primer nadgledanog ucenja je problem regresije, za-datak ucenja u kojem objektima treba pridruziti vrednosti iz skupa realnih

Elektro

nsko

izdanje(2017)

245 10. Uvod u masinsko ucenje

brojeva. Na primer, predvidanje duzine zivota osobe u zavisnosti od njenihzivotnih navika (bavljenjem sportom, pusenje i slicno).

Nenadgledano ucenje odnosi se na situacije u kojima se algoritmu koji ucipruzaju samo podaci bez izlaza. Od algoritma koji uci ocekuje se da sam uocineke zakonitosti u podacima koji su mu dati. Primer nenadgledanog ucenja jetakozvano klasterovanje – uocavanje grupa na neki nacin slicnih objekata kadane postoji prethodno znanje o tome koliko grupa postoji ili koje su njihovekarakteristike. Jedan primer primene klasterovanja je redukcija skupa bojaslike. Pikseli slike se mogu grupisati klasterovanjem po njihovoj blizini u RGBprostoru boja, a potom se iz svakog klastera moze izabrati po jedna boja koja biga predstavljala i kojom bi bili obojeni svi pikseli koji pripadaju tom klasteru.

10.5 Modeli zakonitosti u podacima

Proces ucenja moze se razmatrati kao proces pronalazenja zakonitosti u po-dacima ili, preciznije, zavisnosti medu promenljivim. Kako bi se ucenje mogloautomatizovati, potrebno je da forma tih zavisnosti bude matematicki defini-sana. Matematicke reprezenzacije zavisnosti medu promenljivim nazivamo mo-delima. Ovaj pojam je vrlo blizak pojmu modela u empirijskim naukama, kojitakode ustanovljava zavisnosti izmedu velicina koje su relevantne za proucavanifenomen (na primer, izmedu brzine, puta i vremena).

U slucaju prepoznavanja racunarskih clanaka, model je bila funkcija 𝑤1𝑥1+𝑤2𝑥2 + 𝑤3 koja je pridruzivala 1 svim tackama sa jedne strane prave, a −1tackama sa druge. Ova funkcija izrazava zavisnosti izmedu promenljivih 𝑥1,𝑥2 i 𝑦. U primeru klasterovanja piksela, model ce iztrazavati zavisnost izmeduhromatskih komponenti piksela i grupe, odnosno klastera, kojem piksel pri-pada.

Obicno modeli koji se razmatraju imaju odredenu unapred definisanu formui moguce je uociti skup dopustivih modela. Na primer, u primeru prepoznavanjaracunarskih clanaka, koristi se skup {𝑤1𝑥1+𝑤2𝑥2+𝑤3 | 𝑤1, 𝑤2, 𝑤3 ∈ R}. Formemodela mogu biti raznovrsne. Mogu predstavljati pravila oblika IF...THEN,linearne funkcije atributa, linearne funkcije instanci iz trening skupa i takodalje.

U slucaju nadgledanog ucenja, pronalazenje modela koji najbolje aproksi-mira ciljnu promenljivu mozemo razumeti kao pretragu skupa dopustivih mo-dela koja je vodena podacima, a koju realizuje algoritam ucenja. Slicno je uslucaju nenadgledanog ucenja. U tom slucaju ne postoji ciljna promenljiva,vec je potrebno naci model koji je najbolji u odnosu na neki unapred zadatikriterijum, recimo da objekti iz istog klastera budu medusobno blizu, a dalekood objekata koji pripadaju drugim klasterima. Stoga se algoritmi ucenja mogusmatrati algoritmima pretrage, ali u skupu dopustivih modela, pri cemu jeuloga podataka iz iskustva nov element koji nije bio prisutan u ranije izlozenimopstim pristupima pretrazi.

Izbor skupa dopustivih modela je od fundamentalnog znacaja za kvalitetucenja. Ukoliko ovaj skup nije dovoljno bogat, onda ucenje moze biti samo

Elektro

nsko

izdanje(2017)

10.6. Podaci 246

priblizno. To je u praksi najcesci slucaj i cesto je dovoljno dobro. Naizgledparadoksalno, preterano bogatstvo skupa dopustivih modela po pravilu dovodido losijih rezultata. Ovaj fenomen bice diskutovan u delu 11.1.

10.6 Podaci

Jedna od definicija masinskog ucenja koje su navedene kaze da se masinskoucenje bavi generalizacijom, odnosno zakljucivanjem o nepoznatim objektima,na osnovu poznatih objekata. Umesto termina objekat, cesce se koristi termininstanca ili primerak. U slucaju prepoznavanja racunarskih clanaka, instanca jejedan clanak. Instance ce biti u racunaru predstavljene pomocu nekih podatakakoji ih opisuju.

10.6.1 Reprezentacija podataka

Instance treba da budu reprezentovane u obliku koji je pogodan za pri-menu algoritama ucenja. Najpogodniji i najcesce korisceni nacin koji se koristiu algoritmima masinskog ucenja je predstavljanje instanci pomocu nekih njiho-vih svojstava, odnosno atributa (eng. feature, attribute). Svojstva ili atributipredstavljaju karakteristike instanci kao sto su boja, velicina, tezina i slicno.Svaki od izabranih atributa moze imati vrednost koja pripada nekom unapredzadatom skupu. Te vrednosti su cesto numericke, kao u slucaju tezine koja jeskalarna velicina i koja se najbolje opisuje brojem. Primer numericke vrednostimoze biti i frekvencija reci u nekom clanku, kao sto je to bio slucaj u primeru saklasifikacijom clanaka. Atributi takode mogu biti i kategoricki, odnosno mogupredstavljati imena nekih kategorija kojima se ne mogu jednoznacno dodelitismislene numericke vrednosti ili uredenje. Primer kategorickog atributa mozebiti grad u kome osoba zivi, pol, nacionalnost i slicno. U slucaju prepoznava-nja racunarskih clanaka, oznaka klase koju treba pogoditi — 1 za racunarskeclanke i −1 za ostale je takode kategoricka vrednost, iako je predstavljena bro-jem, posto se radi o dve kategorije za koje su ovi brojevi proizvoljno izabrani.

Skup atributa koji ce se koristiti u zapisu instance generalno nije unapredzadat, vec ga je potrebno odabrati u skladu sa time koje su karakteristikeinstanci bitne za dati problem ucenja. Primera radi, ako je potrebno razlikovaticlanke o operativnim sistemima od clanaka o bazama podataka, poznavanjefrekvencija reci „racunar“ i „datoteka“ ne nosi korisnu informaciju posto suove reci zastupljene u obe kategorije. Stoga te atribute nema svrhe koristitiu ovom problemu ucenja. S druge strane, reci „proces“ i „indeks“ nose viseinformacije posto su uze specificne za pomenuta polja. Ukoliko je potrebnorazlikovati racunarske clanke od drugih vrsta clanaka, izbor atributa bi mogaoda bude upravo suprotan posto reci „proces“ i „indeks“ mogu imati i drugacijaznacenja od onih koja im se pridruzuju u racunarskoj terminologiji. Postojei metode za automatski izbor podskupa atributa iz nekog sireg skupa koje sunajrelevantnije za dati problem ucenja, ali one nece biti opisane. Vec iz ovogpojednostavljenog razmatranja moze se nazreti vazan zakljucak — dobar izbor

Elektro

nsko

izdanje(2017)

247 10. Uvod u masinsko ucenje

atributa od presudnog je znacaja za kvalitet ucenja. Ako su atributi dobroizabrani, cesto i jednostavni algorimi ucenja mogu postici dobre rezultate. Sdruge strane, ako su atributi neinformativni, ni od najnaprednijih algoritamaucenja ne moze se ocekivati mnogo.

Kada su izabrani atributi pomocu kojih se instance opisuju, svaka instancamoze se predstaviti vektorom vrednosti atributa koje joj odgovaraju.

10.6.2 Podaci za trening i podaci za testiranje

Ucenje uvek polazi od nekih podataka. Podaci na osnovu kojih se vrsigeneralizacija, nazivaju se podacima za trening, a njihov skup trening skup.Testiranje naucenog znanja na podacima na osnovu kojih je uceno obicno do-vodi do znacajno boljih rezultata od onih koji se mogu kasnije dobiti u pri-menama. Stoga je pre upotrebe potrebno proceniti kvalitet naucenog znanja.To se obicno radi tako sto se razmatra koliko je nauceno znanje kvalitetno uodnosu na neke unapred date podatke za testiranje. Podaci za testiranje cinetest skup. Test skup treba da bude disjunktan sa trening skupom.

Cesto se prilikom konstrukcije sistema koji ukljucuje ucenje raspolaze ogra-nicenom kolicinom podataka koja se mora upotrebiti u obe svrhe. Jedan odstandardnih nacina je da se jedna trecina, ili neki blizak procenat, izdvojiunapred za testiranje, a da se trening vrsi na ostatku. Takva podela je bilakoriscena i u primeru prepoznavanja racunarskih clanaka. Obicno se ova podelavrsi slucajnim izborom skupa za testiranje. Naravno, kako razlicite podelena trening i test skup mogu uroditi razlicitim rezultatima, slucajno deljenjenije najbolji nacin formiranja trening i test skupa, osim u slucaju ogromnekolicine podataka. U drugim slucajevima se koristi tehnika unakrsne validacije(eng. cross-validation) o kojoj ce biti reci kasnije.

10.7 Izbori u dizajnu sistema koji uci

Zahvaljujuci svom brzom razvoju, oblast masinskog ucenja znacajno se raz-granala, ali i dalje postoje odredene karakteristike resavanja problema ucenjakoje su zajednicke za vecinu pristupa. Jedna od bitnih zajednickih odlika jenacin dizajniranja sistema koji uci. Elementi dizajna su vec pomenuti u pret-hodnim poglavljima, a sumirani su u nastavku:

� Prepoznavanje formulacija problema ucenja (nadgledano ili nenadgledanoucenje);

� Izbor atributa;

� Izbor forme modela zakonitosti u podacima, odnosno skupa dopustivihmodela;

� Izbor postojeceg ili razvoj novog algoritma ucenja koji odgovara datomproblemu;

Elektro

nsko

izdanje(2017)

10.7. Izbori u dizajnu sistema koji uci 248

� Izbor mera kvaliteta ucenja.

Sada je moguce sumirati kako su navedeni elementi bili izabrani u slucajuprepoznavanja racunarskih clanaka.

Primer 10.1.

� 3000 clanaka je razvrstano u dve unapred fiksirane kategorije (racunarski iostali), tako da je zadatak ucenja bio formulisan kao zadatak nadgledanogucenja.

� Svaki clanak je predstavljen vektorom frekvencija reci iz nekog recnikaracunarske terminologije i vrednoscu ciljne promenljive (1 ili −1 u zavi-snosti od toga da li je clanak iz oblasti racunarstva).

� Modeli su funkcije koje odgovaraju pravim u dvodimenzionalnom prostorui pridruzuju 1 tackama sa jedne strane prave, a −1 tackama sa drugestrane. Imaju linearnu formu sa koeficijentima 𝑎, 𝑏 i 𝑐.

� Algoritam ucenja je formulisan nalik gradijentnom spustu za minimiza-ciju odstupanja izmedu vrednosti ciljne promenljive i prednosti predvidenihmodelom na datim primerima.

� Za meru kvaliteta ucenja uzet je udeo tacno klasifikovanih clanaka.

U daljem tekstu bice diskutovano nadgledano i nenadgledano masinskoucenje. Za obe vrste bice izlozene neke metode masinskog ucenja kojima seresavaju neki tipicni problemi koji odgovaraju tim vrstama ucenja. Takode, uzizlaganje metoda, bice diskutovani i razni bitni koncepti masinskog ucenja.

Elektro

nsko

izdanje(2017)

Glava 11

Nadgledano masinsko ucenje

Nadgledano masinsko ucenje karakterise se time da su za sve podatke po-znate vrednosti ciljne promenljive. Vecina problema koji odgovaraju ovoj for-mulaciji moze se svrstati u jednu od dve grupe — probleme regresije i problemeklasifikacije. O obe grupe ce biti vise reci u nastavku. Uprkos velikoj raznovr-snosti problema i algoritama za njihovo resavanje, vremenom je uocena jednaopsta shema dizajna algoritama nadgledanog ucenja koja pruza kako smerniceza dizajn novih algoritama, tako i mogucnost objedinjenog razmatranja mno-gih postojecih metoda kao instanci te sheme. Stoga ce u nastavku prvo bitireci o dizajnu algoritama nadgledanog ucenja uopste.

11.1 Dizajn algoritama nadgledanog ucenja

Prilikom dizajna algoritama nadgledanog ucenja moguce je osloniti se najednu shemu dizajna koja se sastoji u preciziranju niza detalja formulacije pro-blema i algoritma ucenja. Treba imati u vidu da nisu svi algoritmi nadgledanogucenja instance ove sheme (ti koji nisu su cesto stariji algoritmi, ali mnogi sui dalje u aktivnoj upotrebi). S druge strane, mnogi od najvaznijih algoritamanadgledanog ucenja jesu instance ove sheme. Neki od tih vaznih algoritama sulinearna i logisticka regresija (eng. linear regression, logistic regression), neu-ronske mreze (eng. neural networks), metoda potpornih vektora (eng. supportvector machines) i uslovna slucajna polja (eng. conditional random fields).

Kljucni korak prilikom dizajna algoritma nadgledanog ucenja (u nastavkusamo ucenja) je izbor forme modela. Formu modela potrebno je odabrati takoda odgovara strukturi fenomena koji se tim modelom opisuje. Primera radi,model oblika

𝑓(𝑥,𝑤) =

𝑚∑𝑖=1

𝑤𝑖𝑥𝑖

gde je 𝑚 broj atributa, izrazava linearnu zavisnost vrednosti ciljne promen-ljive od atributa 𝑥𝑖 pri kojoj jedinicno uvecanje vrednosti atributa 𝑥𝑖 uvecava

249

Elektro

nsko

izdanje(2017)

11.1. Dizajn algoritama nadgledanog ucenja 250

vrednost ciljne promenljive za 𝑤𝑖 (pri tome, 𝑤𝑖 moze biti i negativno). Ukolikotakve zavisnosti priblizno vaze u razmatranom fenomenu, takav model je ade-kvatan. U suprotnom, moze biti upotrebljiv, ali verovatno vredi uloziti trudu formulisanje boljeg modela. Primetimo da je model obicno u potpunostiodreden nekim skupom koeficijenata, koje cemo oznacavati 𝑤.

Primer 11.1. U primeru klasifikacije clanaka, forma modela je

𝑓(𝑥,𝑤) = 𝑤1𝑥1 + 𝑤2𝑥2 + 𝑤3

Nakon sto je izabrana forma modela, potrebno je izabrati funkciju gubitkacija je uloga da kvantifikuje razmere greske koju model pravi u odnosu natacnu vrednost ciljne promenljive. Za datu instancu (𝑥, 𝑦), funkcija gubitkazavisi od 𝑥, 𝑦 i 𝑤. Na primer, kvadrat razlike predvidene vrednosti 𝑓(𝑥,𝑤) iciljne vrednosti 𝑦

ℓ(𝑥, 𝑦, 𝑤) = (𝑓(𝑥,𝑤)− 𝑦)2

predstavlja cest izbor za fukciju gubitka. Naravno, za njenu primenu potrebnoje da su nad vrednostima ciljne promenljive definisane aritmeticke operacije, stone mora da vazi u opstem slucaju. Ipak, tamo gde je primenljiva, ova funkcijaponasa se intuitivno — velike razlike izmedu predvidene i stvarne vrednostiproizvode veliku vrednost gubitka, a takode je i matematicki pogodna zbogsvoje diferencijabilnosti. Zato predstavlja cest izbor funkcije gubitka, iako i usituacijama u kojima je primenljiva ne predstavlja uvek najbolji izbor.

Primer 11.2. U primeru klasifikacije clanaka, za funkciju gubitka, izabranaje funkcija:

ℓ(𝑥, 𝑦, 𝑤) = (𝑤1𝑥1 + 𝑤2𝑥2 + 𝑤3 − 𝑦)2

Kada su definisani forma modela i funkcija gubitka, nije tesko formuli-sati kriterijume za izbor najboljeg modela — to je model koji pravi najmanjugresku, to jest, pravi najmanji ocekivani gubitak na podacima na kojima cebiti koriscen. Dakle, potrebno je resiti sledeci problem minimizacije:

min𝑤

𝐸(𝑥,𝑦)ℓ(𝑥, 𝑦, 𝑤)

gde je 𝐸(𝑥,𝑦) matematicko ocekivanje po atributima i ciljnoj promenljivoj. Ovoocekivanje obicno se naziva rizikom ili stvarnim rizikom i oznacava 𝑅(𝑤). Trebaprimetiti da je za racunanje ocekivanja potrebno poznavati raspodelu promen-ljivih po kojima se ocekivanje racuna. U ovom slucaju, radi se o zajednickojraspodeli promenljivih 𝑥 i 𝑦, koja u praksi nije poznata. Zato ovaj kriterijumnije lako upotrebiti. Medutim, ono sto u praksi jeste poznato jеste uzorak po-dataka iz trening skupa. Zbog toga se ocekivanje funkcije gubitka aproksimiranjenim uzorackim prosekom koji se naziva empirijskim rizikom

𝑅𝑒𝑚𝑝(𝑤) =1

𝑛

𝑛∑𝑖=1

ℓ(𝑥𝑖, 𝑦𝑖, 𝑤)

gde je 𝑛 broj instanci.

Elektro

nsko

izdanje(2017)

251 11. Nadgledano masinsko ucenje

Primer 11.3. U primeru klasifikacije clanaka, empirijski rizik dat je funkci-jom:

𝑅𝑒𝑚𝑝(𝑤) =1

𝑛

𝑛∑𝑖=1

(𝑤1𝑥𝑖1 + 𝑤2𝑥𝑖2 + 𝑤3 − 𝑦𝑖)2

Moze se dokazati da pod odredenim uslovima vrednosti parametara 𝑤 do-bijene minimizacijom empirijskog rizika dobro aproksimiraju vrednosti para-metara koje bi bile dobijene minimizacijom stvarnog rizika. Stoga se vredno-sti parametara 𝑤 biraju tako da vrednost empirijskog rizika bude minimalna.Empirijski rizik predstavlja prosek funkcije gubitka na datim podacima. Kakoprosek i suma imaju isti minimum, obicno se prilikom minimizacije ne vodiracuna o tome da li je izvrseno deljenje brojem instanci. To ce biti vidljivo iu minimizacionim problemima u nastavku. Ocigledno, sto je empirijski rizikmanji, to je prilagodenost modela podacima veca i obratno. Stoga, vrednostrizika igra ulogu mere prilagodenosti modela podacima.

Na zalost, uslovi pod kojima se minimizacijom empirijskog rizika dobroaproksimira polazni problem nisu uvek ispunjeni, sto znaci da princip minimi-zacije empirijskog rizika ne vodi nuzno dobrim rezultatima ucenja. Diskusijaovog problema predstavlja najplodniji aspekt teorije ucenja i pruza najdubljeuvide u prirodu procesa generalizacije, ali prevazilazi okvire ove knjige. Ipak,osnovni zakljucak se moze kratko formulisati — osnovna prepreka aproksimacijioptimalnih vrednosti parametara, a time i uspesnoj generalizaciji, je preteranobogatstvo skupa dopustivih modela. Ukoliko je taj skup toliko bogat da unjemu za svaki zamislivi trening skup postoji model koji je sa njime saglasan,ne postoje garancije za uspesno ucenje. I uopste, sto je skup dopustivih modelabogatiji, to je potrebno vise podataka za uspesno ucenje. Kako bi ovaj uvidbio jasniji, razmotricemo dva ilustrativna primera.

Primer 11.4. Neka je dat trening skup instanci koje predstavljaju clanke, odkojih su neki racunarski, a neki ne. Taj skup je prikazan na slici 11.1. Utom skupu postoje i neki racunarski clanci sa niskom frekvencijom reci iz spe-cificno racunarske terminologije, ali i neki clanci koji nisu racunarski, a ipakimaju visoku frekvenciju racunarskih termina. Ovakvih primera ima malo. Upraksi je cesta situacija da iz razlicitih razloga odredeni broj instanci odstupaod ocekivanja.

Pretpostavimo da je forma modela linearna, kao i do sada — 𝑓(𝑥,𝑤) =𝑤1𝑥1 + 𝑤2𝑥2 + 𝑤3 i da su koeficijenti 𝑤 odredeni minimizacijom empirijskogrizika pri cemu je za funkciju gubitka koriscen kvadrat razlike ciljne i predvidenevrednosti. Slika 11.2 ilustruje takvav slucaj. Moze se primetiti da model nijesaglasan sa svim instancama, odnosno da postoje racunarski clanci koji nisuprepoznati i clanci koji su prepoznati kao racunarski, a to nisu. Medutim, tone bi trebalo da bude zabrinjavajuce, posto je za vecinu clanaka klasifikacijaispravna. Clanci koji su pogresno klasifikovani odstupaju od trenda ucestalogkoriscenja reci racunar i datoteka u takvim clancima, ali ih nema dovoljno da

Elektro

nsko

izdanje(2017)

11.1. Dizajn algoritama nadgledanog ucenja 252

Slika 11.1: Trening skup. Plave tacke oznacavaju racunarske, a crvene ostaleclanke.

bi sugerisali da i drugi clanci u kojima se te reci retko koriste treba da buduklasifikovani kao racunarski.

Slika 11.2: Prikaz linearnog modela minimalnog empirijskog rizika. Tacke uravni za koje model daje pozitivnu vrednost oznacene su plavo, a tacke za kojedaje negativnu vrednost, oznacene su crveno.

Slika 11.3 prikazuje klasifikaciju datih podataka koriscenjem modela iz skupasvih polinoma dve promenljive proizvoljnog stepena, odnosno u slucaju da se za

Elektro

nsko

izdanje(2017)

253 11. Nadgledano masinsko ucenje

modele koristi sledeca forma:

𝑓(𝑥,𝑤) =

𝑛∑𝑖=0

𝑖∑𝑗=0

𝑤𝑖𝑗𝑥𝑗1𝑥

𝑖−𝑗2

dok je funkcija gubitka ista. Izabrani model je saglasan sa svim instancama iztrening skupa i stoga je empirijski rizik jednak nuli. Medutim, zakonitost kojuon opisuje ne izgleda uverljivo. Naime, intuitivno je da su racunarski clancikoji ne sadze racunarske termine redak izuzetak, a ne da postoje velike oblastiprostora atributa koje odgovaraju niskim frekvencijama racunarskih termina, aipak se odnose na racunarske clanke i obratno. Vredi primetiti i da se u oblastiza koju bi se ocekivalo da je plava, nalazi veliki potprostor obojen crvenombojom, a u kojem medu trening instancama ne postoji nijedna crvena tacka.Ovakve proizvoljne „zakonitosti“ cine koriscenje ovakvog modela u predikcijipotpuno nepouzdanim i sigurno je da je stvarni rizik daleko veci od nule.

Slika 11.3: Polinomijalni model minimalnog empirijskog rizika. Tacke u ravniza koje model daje pozitivnu vrednost oznacene su plavo, a tacke za koje dajenegativnu vrednost, oznacene su crveno.

Primer 11.5. Pretpostavimo da je dat trening skup od 20 instanci koje sesastoje od jednog atributa i vrednosti ciljne promenljive. Pretpostavimo da jeforma modela linearna — 𝑓(𝑥,𝑤) = 𝑤1𝑥+𝑤2 i da su koeficijenti 𝑤 odreden mi-nimizacijom empirijskog rizika pri cemu je za funkciju gubitka koriscen kvadratrazlike ciljne i predvidene vrednosti. Slika 11.4 ilustruje takvav slucaj. Moze seprimetiti da model nije u potpunosti saglasan ni sa jednom instancom, odnosnoza svaku trening instancu postoji manja ili veca greska u predvidanju. Odno-sno, jednostavan linearni model nije dovoljno fleksibilan da se moze potpuno

Elektro

nsko

izdanje(2017)

11.1. Dizajn algoritama nadgledanog ucenja 254

prilagoditi podacima za trening. S druge strane, ocigledno je da on dobro opi-suje opsti linearni trend koji se u podacima vidi i, posebno vazno, za ocekivatije da je greska na novim podacima iz iste raspodele bude priblizna emprijskomriziku.

●●

●●

5 10 15 20

05

1015

20

Slika 11.4: Linearni model minimalnog empirijskog rizika.

Slika 11.5 prikazuje aproksimaciju datih podataka koriscenjem modela izskupa svih polinoma proizvoljnog stepena, odnosno u slucaju da se za modelekoristi forma 𝑓(𝑥,𝑤) =

∑𝑛𝑖=1 𝑤𝑖𝑥

𝑖. Izabrani model je saglasan sa svim in-stancama iz trening skupa i stoga je empirijski rizik jednak nuli. Medutim,posmatrajuci globalni izgled izabranog modela, vidi se da on ne opisuje nika-kvu zakonitost u podacima. Oscilacije koje pravi izmedu tacaka cine njegovokoriscenje u predikciji potpuno nepouzdanim i sigurno je da je stvarni rizikdaleko veci od nule.

Problem koji se u prethodnim primerima javlja proistice upravo iz toga stoskup svih polinoma cini previse bogat skup mogucih modela. Za svaki treningskup moze se naci model koji ga savrseno opisuje. Medutim, prilagodavajucise trening podacima do krajnosti, gubi se svaka moc generalizacije. Takavzakljucak vazi i za druge previse bogate skupove dopustivih modela, a ne samoza polinome. Ilustrovani fenomen se naziva preprilagodavanje (eng. overfitting)i predstavlja glavnu opasnost u masinskom ucenju.

U svetlu prethodnog zakljucka, tezi se ogranicavanju bogatstva skupa do-pustivih modela, sto se moze postici smanjenjem fleksibilnosti forme modela.

Elektro

nsko

izdanje(2017)

255 11. Nadgledano masinsko ucenje

●●

●●

5 10 15 20

05

1015

20

Slika 11.5: Polinomijalni model minimalnog empirijskog rizika.

Primera radi, linearna forma modela sa ogranicenim brojem koeficijenata semoze smatrati nefleksibilnom. Poznato je iz linearne algebre da ukoliko je brojinstanci podataka jednak broju parametara, postoji najvise jedan model kojiodgovara podacima (resenje sistema 𝑛 linearnih jednacina po 𝑛 nepoznatih,ukoliko to resenje postoji). Ukoliko je skup podataka veci od broja parame-tara, u opstem slucaju, model nece biti saglasan sa podacima.

Zanimljivo je da za smanjenje fleksibilnosti modela nije neophodno unapreddizajnirati skup dopustivih modela tako da bude siromasan, vec je dovoljno mo-difikovati funkciju koja se minimizuje, tako da veliki broj modela ima visokuvrednost te funkcije. Cesto koriscen i sistematican nacin da se to postigne jepostupak regularizacije. Umesto minimizacije empirijskog rizika, vrsi se mini-mizacija regularizovanog rizika, odnosno, resava se problem

min𝑤

𝑅𝑒𝑚𝑝(𝑤) + 𝜆Ω(𝑤)

gde je Ω(𝑤) takozvani regularizacioni izraz i pri cemu vazi 𝜆 ≥ 0. Regulariza-cioni izrazi su obicno zasnovani na normama, pa su uobicajeni izbori poput

Ω(𝑤) = ‖𝑤‖22 =

𝑚∑𝑖=1

𝑤2𝑖

Elektro

nsko

izdanje(2017)

11.1. Dizajn algoritama nadgledanog ucenja 256

ili

Ω(𝑤) = ‖𝑤‖1 =

𝑚∑𝑖=1

|𝑤𝑖|

ali se koriste i mnogi drugi.1 Minimizacija empirijskog rizika, koji meri prilagodenostmodela podacima, zahteva odstupanje koeficijenata 𝑤 od nule. Medutim, doda-vanjem regularizacionog izraza, takvo odstupanje se kaznjava utoliko vise sto jeodstupanje vece. Time se otezava prilagodavanje modela podacima, odnosno,fleksibilnost modela se smanjuje. Mera u kojoj regularizacioni izraz umanjujefleksibilnost modela se kontrolise izborom parametra 𝜆. Treba naglasiti da nivisoke vrednosti ovog parametra nisu pozeljne jer se nefleksibilni modeli kojise time dobijaju ne mogu dovoljno prilagoditi podacima, pa je kvalitet ucenjau tom slucaju los.

Primer 11.6. Neka se u primeru klasifikacije clanaka koristi forma modelakoja odgovara polinomu dve promenljive, kao funkcija gubitka koristi se kvadratrazlike ciljne i predvidene vrednosti i neka se koristi regularizacija. Tada jepotrebno resiti sledeci problem minimizacije:

min𝑤

𝑁∑𝑖=1

𝑛∑𝑗=0

𝑗∑𝑘=0

𝑤𝑗𝑘𝑥𝑘𝑖1𝑥

𝑗−𝑘𝑖2 + 𝜆‖𝑤‖2

Za vrednosti regularizacionog parametra 𝜆 = 10−9, 10−6, 10−3, 1, 10, 100, do-bijaju se modeli prikazani na slici 11.6. Ocigledno je da povecavanje regula-rizacionog parametra smanjuje mogucnost preprilagodavanja modela, ali i danjegovo preterano povecavanje vodi njegovoj potpunoj neprilagodljivosti, usledcega, za vrednost 100 regularizacionog parametra, svi clanci bivaju klasifikovanikao racunarski samo zato sto ih u trening skupu ima vise.

Na slici 11.7 prikazane su tri krive koje ilustruju uobicajeno ponasanje mo-dela prilikom izbora vrednosti parametra 𝜆. Jedna, rastuca, predstavlja em-pirijski rizik na trening skupu u zavisnosti od vrednosti parametra 𝜆. Kakoempirijski rizik predstavlja ocenu stvarnog rizika, stvarnom riziku se moze pri-druziti interval poverenja2 u odnosu na tu ocenu. Sirina intervala poverenjaje predstavljena drugom, opadajucom, krivom. U slucaju visokog empirijskogrizika, na osnovu uskog intervala poverenja, mozemo biti relativno sigurni dace i stvarni rizik biti visok. U slucaju vrlo niske vrednosti empirijskog rizika, naosnovu sirokog intervala poverenja, nemamo nikakve garancije da ce i stvarnirizik biti nizak. Treca kriva je zbir prethodne dve i predstavlja gornju granicustvarnog rizika. Ocigledno, kao sto je receno, i premale i prevelike vrednostiparametra 𝜆, koji kontrolise fleksibilnost modela, vode losim rezultatima. Prveusled nefleksibilnosti, a druge zbog preprilagodavanja. Vise o nacinu na koji sevrednost ovog parametra moze birati u praksi bice reci kasnije.

1Razlicit izbor regularizacionog izraza moze voditi razlicitim svojstvima algoritma i zamnoge regularizacione izraze je poznato kakva svojstva indukuju.

2Za ovu diskusiju nije bitna konkretna verovatnoca pridruzena intervalu poverenja (npr.95% ili 90%).

Elektro

nsko

izdanje(2017)

257 11. Nadgledano masinsko ucenje

Slika 11.6: Polinomijalni modeli dobijeni za razlicite vrednosti regularizacionogparametra.

U slucaju kad model koji dobro aproksimira ciljnu promenljivu na instan-cama raspolozivim za trening, takode dobro aproksimira ciljnu promenljivu i naostalim instancama, kaze se da model dobro generalizuje iz prikazanih primera.

Iako izraz regularizacija u strogom smislu predstavlja opisanu tehniku, ne-kada se upotrebljava i slobodnije, ali uvek cuvajuci osnovni smisao — da seradi o tehnici kojom se kontrolise fleksibilnost modela, cime se omogucava iz-bor modela koji nije preprilagoden i dobro generalizuje.

Do sada nije bilo diskusije o tome kako se sprovodi postupak minimiza-

Elektro

nsko

izdanje(2017)

11.1. Dizajn algoritama nadgledanog ucenja 258

0 𝜆

𝐶

𝑅𝑔

𝑅𝑒𝑚𝑝

Slika 11.7: Ponasanje empirijskog rizika 𝑅𝑒𝑚𝑝, sirine intervala poverenja 𝐶 igornje granice rizika 𝑅𝑔 u zavisnosti od vrednosti regularizacionog parametra𝜆

cije empirijskog ili regularizovanog empirijskog rizika. Za to se koriste metodematematicke optimizacije. Jedna od klasicnih metoda koriscenih u ovom kon-tekstu je gradijentni spust, ali je on primenjljiv samo u slucaju diferencijabilnihfunkcija bez dodatnih ogranicenja u optimizacionom problemu. Postoje mnogedruge optimizacione metode koje mogu biti pogodnije za optimizacioni problemkoji se razmatra. Vrlo je cesta praksa da se za nov problem takode formulise ispecificna metoda optimizacije koja je posebno pogodna za njega. Temeljnijeupucivanje u optimizacione metode izlazi iz okvira ove knjige.

Primer 11.7. U slucaju problema

min𝑤

𝑁∑𝑖=1

(𝑤1𝑥𝑖1 + 𝑤2𝑥𝑖2 + 𝑤3 − 𝑦𝑖)2 + 𝜆‖𝑤‖2

za optimizacioni metod moze se uzeti gradijentni spust. Za primenu gradijent-nog spusta, potrebno je izvesti gradijent regularizovanog empirijskog rizika, cijesu koordinate u ovom slucaju:

𝜕

𝜕𝑤1(

𝑁∑𝑖=1

(𝑤1𝑥𝑖1+𝑤2𝑥𝑖2+23−𝑦𝑖)2+𝜆‖𝑤‖2) = 2

𝑁∑𝑖=1

(𝑤1𝑥𝑖1+𝑤2𝑥𝑖2+𝑤3−𝑦𝑖)𝑥1+2𝜆𝑤1

𝜕

𝜕𝑤2(

𝑁∑𝑖=1

(𝑤1𝑥𝑖1+𝑤2𝑥𝑖2+23−𝑦𝑖)2+𝜆‖𝑤‖2) = 2

𝑁∑𝑖=1

(𝑤1𝑥𝑖1+𝑤2𝑥𝑖2+𝑤3−𝑦𝑖)𝑥2+2𝜆𝑤2

𝜕

𝜕𝑤3(

𝑁∑𝑖=1

(𝑤1𝑥𝑖1+𝑤2𝑥𝑖2+23−𝑦𝑖)2+𝜆‖𝑤‖2) = 2

𝑁∑𝑖=1

(𝑤1𝑥𝑖1+𝑤2𝑥𝑖2+𝑤3−𝑦𝑖)+2𝜆𝑤3

Kada je poznat gradijent, moguce je primeniti metod gradijentnog spusta saArmiho-Goldstajnovom pretragom.

Elektro

nsko

izdanje(2017)

259 11. Nadgledano masinsko ucenje

Ako se umesto gradijenta greske na celom trening skupu, koristi gradijentgreske samo na jednoj instanci, pri cemu se u svakom koraku bira druga in-stanca, dobija se takozvani stohasticki gradijentni spust. Ranije predlozeni algo-ritam za prepoznavanje racunarskih clanaka predstavlja stohasticki gradijentnispust sa fiksiranom brzinom ucenja i vrednoscu regularizacionog parametra 0.

Posto je shema dizajna izlozena, vredi je koncizno sumirati, kao i osvrnutise na njen znacaj. Elementi dizajna algoritma nadgledanog ucenja su:

� forma modela,

� funkcija gubitka,

� regularizacioni izraz i

� algoritam optimizacije.

Ovi elementi se cesto mogu birati nezavisno, ali je moguce i da izbor za neku odstavki ogranici izbore za neku drugu stavku. Na primer, u slucaju da je funkcijagubitka nediferencijalbilna, obican gradijentni spust ne moze biti upotrebljenkao algoritam optimizacije. Znacaj ovakve dekompozicije algoritma je kako utome sto pruza smernice prilikom dizajna novih algoritama, tako i u tome stoolaksava razumevanje postojecih algoritama. Naime, svojstva mnogih izboraza svaki od navedenih elemenata dizajna su vec u velikoj meri analizirana ipoznato je kakvim ishodima koji izbor vodi. Primera radi poznato je da izborregularizacionog izraza Ω(𝑤) = ‖𝑤‖1 vodi modelima sa velikim brojem koefi-cijenata koji imaju vrednost 0, sto olaksava uocavanje nebitnih atributa, dokizbor Ω(𝑤) = ‖𝑤‖22 cesto vodi nesto vecoj preciznosti predikcije od prethodnogizbora.

11.2 Regresija

Problem regresije predstavlja problem predvidanja numericke vrednosti ve-zane za neku instancu na osnovu vrednosti njenih drugih atributa. Stavise,regresija se moze videti kao aproksimacija neke realne ciljne promenljive kojanajcesce moze da uzme proizvoljne vrednosti iz nekog ne nuzno poznatog inter-vala. Formalno, regresiona funkcija koja povezuje zavisnu, ciljnu, promenljivu𝑌 i nezavisne promenljive 𝑋1, 𝑋2, . . . , 𝑋𝑛 je definisana izrazom

𝑟(𝑥1, 𝑥2, . . . , 𝑥𝑛) = 𝐸(𝑌 |𝑋1 = 𝑥1, 𝑋2 = 𝑥2, . . . , 𝑋𝑛 = 𝑥𝑛)

gde 𝐸 oznacava matematicko ocekivanje. Problem regresije se svodi na problemaproksimacije regresione funkcije 𝑟. Ovo se moze raditi razlicitim metodamakoje uvode razlicite pretpostavke o regresionoj funkciji. Najjednostavnije sumetode linearne regresije.

Primene regresije su mnogobrojne vec u najjednostavnijoj, linearnoj, vari-janti. One ukljucuju procenu rizika u ulaganjima, procenu uticaja prerade rudena ekosistem, procenu smrtnosti u zavisnosti od zivotnih navika i slicno.

Elektro

nsko

izdanje(2017)

11.2. Regresija 260

11.2.1 Linearna regresija

Linearna regresija predstavlja problem regresije u kome se pretpostavljalinearna veza izmedu vrednosti ciljne promenljive i atributa. Preciznije, modelje oblika:

𝑓(𝑥,𝑤) = 𝑤 · 𝑥 =

𝑚∑𝑖=1

𝑤𝑖𝑥𝑖 (11.1)

Zadatak linearne regresije je odredivanje vrednosti parametara 𝑤 koji najboljeodgovaraju opazanjima iz iskustva, odnosno trening podacima. Bitno je na-glasiti da se izraz „linearna“ u nazivu linearne regresije odnosi na linearnostrelacije po parametrima 𝑤, a da atributi mogu biti nelinearno transformisani.

Primer 11.8. Neki primeri linearnih modela su:

� 𝑓(𝑥,𝑤) = 𝑤0 + 𝑤1𝑥1 + 𝑤2𝑥2

� 𝑓(𝑥,𝑤) = 𝑤0 + 𝑤1 cos(𝑥1) + 𝑤2𝑥22 + 𝑤3𝑒

𝑥3

� 𝑓(𝑥,𝑤) = 𝑤0 + 𝑤1𝑥1 + 𝑤2𝑥2 + 𝑤3𝑥1𝑥2

Sledeci primeri ne predstavljaju linearne modele:

� 𝑓(𝑥,𝑤) = 𝑤1𝑥1

𝑤2+𝑥2

� 𝑓(𝑥,𝑤) = cos(𝑤1𝑥1)𝑤2𝑥2

𝑒𝑤3𝑥3

Pored osnovnog zadatka pronalazenja prediktivnog modela, linearna regre-sija je korisna i za ustanovljavanje jacine uticaja nekog atributa na vrednostciljne promenljive. Naime, vece apsolutne vrednosti koeficijenata 𝑤 oznacavajujaci uticaj atributa uz koji stoje. Znak koeficijenta odreduje smer uticaja atri-buta. Takode se moze meriti statisticka znacajnost ovog uticaja, ali se radijednostavnosti u nastavku fokusiramo samo na osnovni problem odredivanjaoptimalnih vrednosti koeficijenata 𝑤 i proveru kvaliteta naucenog modela.

Najjednostavniji slucaj linearne regresije je predvidanje vrednosti 𝑦 na osnovusamo jednog atributa 𝑥. Primera radi, mozemo govoriti o predvidanju telesnetezine u zavisnosti od visine. Primetna je zakonitost da su visoki ljudi uglavnomtezi od niskih ljudi. Tu zavisnost je potrebno modelirati. Medutim, postoje iodstupanja. Kako su odstupanja od prosecne tezine utoliko reda sto su veca,ova odstupanja cemo smatrati sumom i necemo ih modelirati. Linearni modelje u ovom slucaju oblika

𝑦 = 𝑤0 + 𝑤1𝑥

sto je standardna jednacina linearne funkcije.Na slici 11.8 je prikazano 100 tacaka pri cemu svaka odgovara jednom ispi-

taniku. Koordinata 𝑥 predstavlja visinu, a 𝑦 telesnu tezinu. Na slici se mozeprimetiti opsti trend linearnog povecanja telesne tezine u zavisnosti od visinekoji je prikazan pravom. Takode, primetno je i da mali broj tacaka znacajnoodstupa. Ovakve tacke nazivamo izuzecima (eng. outliers). Prikazana prava

Elektro

nsko

izdanje(2017)

261 11. Nadgledano masinsko ucenje

●●

● ●

●●

● ●

●●

●●

● ●

●●

● ●

●●

● ●

150 160 170 180 190 200

4060

8010

012

0

x

y

Slika 11.8: Primer jednostavne regresije kojom se predvida telesna tezina naosnovu visine.

predstavlja linearni model datih podataka. Metod kojim se do njega dolazibice prikazan u nastavku.

U slucaju koriscenja opste jednacine linearnog modela 11.1, moguce jeukljuciti veci broj atributa pri predvidanju vrednosti ciljne promenljive. Izprimetne varijabilnosti telesne tezine u odnosu na regresioni model, shvata seda visina nije dovoljna da u potpunosti objasni variranje telesne tezine. Noviatributi koji bi vodili ka poboljsavanju predvidanja mogu da se odnose na nacinzivota pojedinaca — koliko vremena dnevno provode u sedecem polozaju, ko-liko se bave sportom, koliko kalorija unose dnevno i slicno. Umesto prave, uovakvom slucaju regresioni model bi odredivao jednu hiperravan.

Osnovni kriterijum izbora vrednosti koeficijenata linearnog modela je sma-njivanje odstupanja izmedu vrednosti koje model predvida i vrednosti kojeciljna promenljiva ima u podacima. Ovaj problem se formulise kao problem mi-nimizacije srednjekvadratne greske. Funkcija gubitka je ℓ(𝑥, 𝑦, 𝑤) = (𝑥·𝑤−𝑦)2,pa je minimizacioni problem

min𝑤

𝑛∑𝑖=1

(𝑤 · 𝑥𝑖 − 𝑦𝑖)2 + 𝜆Ω(𝑤)

pri tome je 𝑛 broj instanci u trening skupu. Alternativno, u matricnoj notaciji,

Elektro

nsko

izdanje(2017)

11.2. Regresija 262

isti problem moze se zapisati kao

min𝑤

‖𝑋𝑤 − 𝑌 ‖22 + 𝜆Ω(𝑤)

U slucaju da je Ω(𝑤) = ‖𝑤‖22, ispostavlja se da za postavljeni problem postojijednostavno resenje koje ne zahteva koriscenje optimizacionih metoda:

𝑤 = (𝑋⊤𝑋 + 𝜆𝐼)−1𝑋⊤𝑌

pri cemu je 𝐼 jedinicna matrica i vazi

𝑋 =

⎡⎢⎢⎢⎣1 𝑥11 𝑥12 · · · 𝑥1𝑚

1 𝑥21 𝑥22 · · · 𝑥2𝑚

......

. . ....

1 𝑥𝑛1 𝑥𝑛2 · · · 𝑥𝑛𝑚

⎤⎥⎥⎥⎦ 𝑌 =

⎡⎢⎢⎢⎣𝑦1𝑦2...𝑦𝑛

⎤⎥⎥⎥⎦Osnovni problem pri odredivanju optimalnih vrednosti koeficijenata 𝑤 je

potencijalna losa uslovljenost matrice 𝑋. Naime, moguce je da su neki atributilinearno zavisni ili da su jako korelirani. U tom slucaju matrica 𝑋, pa i 𝑋⊤𝑋 jeneinvertibilna ili lose uslovljena (za male promene elemenata polazne matrice,moguce su ogromne promene elemenata inverzne matrice), odnosno, u slucajuda je 𝜆 = 0, optimalne vrednosti koeficijenata 𝑤 se ne mogu izracunati ilisu previse nestabilne. Stoga se preporucuje da se regularizacija uvek koristiprilikom linearne regresije. Cesto se pod osnovnim oblikom linearne regresijepodrazumeva slucaj za 𝜆 = 0, dok je regularizovani slucaj slucaj u kojem sekoristi kvadrat euklidske norme (on se na engleskom naziva ridge regression).Moguce je koristiti i druge norme kako u regularizacionom izrazu, tako i ufunkciji gubitka, sto dovodi do varijanti metode sa razlicitim ponasanjem.

Ukoliko je dimenzija matrice 𝑋⊤𝑋 + 𝜆𝐼 velika, njeno invertovanje mozebiti racunski previse zahtevno. U takvim situacijama se minimizacija vrsi me-todama optimizacije, poput gradijentnog spusta.

11.2.2 Pretpostavke linearne regresije

Osnovna i ocigledna pretpostavka linearne regresije je da linearni modeladekvatno izrazava vezu izmedu atributa i ciljne promenljive. Pritom, ne mozese ocekivati da vrednosti ciljne promenljive budu jednake vrednostima modelazbog postojanja suma, odnosno slucajne greske u podacima. Poreklo sumamoze biti nesavrsenost opreme kojom se vrsi merenje, slucajna priroda samogfenomena ili to sto izbor linearne zavisnosti predstavlja svesnu odluku da seinace kompleksna zavisnost donekle pojednostavi radi lakse analize. Stoga,pretpostavlja se da ciljna promenljiva ima oblik

𝑦 = 𝑤 · 𝑥+ 𝜀

gde je 𝜀 ∼ 𝒩 (0, 𝜎2) normalno raspodeljena slucajna promenljiva koja oznacavasum, pri cemu je standardna devijacija 𝜎 konstantna. Neformalno, ovo znaci

Elektro

nsko

izdanje(2017)

263 11. Nadgledano masinsko ucenje

da se pretpostavlja da se greske „ponistavaju“, odnosno da se prebacivanja ipodbacivanja javljaju jednako cesto, da su pritom velike greske vrlo malo vero-vatne, kao i da velicina greske ne zavisi od vrednosti 𝑦 (posto 𝜎 je konstantno).Vise o ispitivanju ovih poretpostavki bice receno u nastavku.

Imajuci u vidu da se smatra da vazi 𝑦 = 𝑤·𝑥+𝜀 i pretpostavku 𝜀 ∼ 𝒩 (0, 𝜎2),vazi 𝑦 ∼ 𝒩 (𝑤 · 𝑥, 𝜎2) za svaki vektor vrednosti atributa 𝑥. Ova konstatacijapruza drugi pogled na linearnu regresiju — da se zapravo radi o izboru normalneraspodele sa promenljivim prosekom koja najbolje opisuje raspodelu podataka.

11.2.3 Ispitivanje kvaliteta linearne regresije

Ispitivanje kvaliteta linearne regresije ukljucuje skup tehnika i mera kvali-teta kojima se proverava zadovoljenost uslova primenljivosti tehnike linearneregresije, kao i kvalitet samog naucenog modela. Ovaj postupak se cesto nazivai dijagnostikom modela.

Ispitivanje zadovoljenosti uslova za primenu linearne regresije bi formalnotrebalo raditi koriscenjem statistickih testova. Medutim, kako je sama teh-nika dosta robusna, odnosno cesto daje zadovoljavajuce rezultate i kad su tepretpostavke donekle narusene, ove provere se cesto vrse neformalno — inspek-cijom podataka pomocu dijagrama. Normalnost raspodele suma se potvrdujeinspekcijom histograma gresaka 𝑟𝑖 = 𝑦𝑖 − 𝑤 · 𝑥𝑖 koje nazivamo rezidualima.Pretpostavka da velicina greske ne zavisi od stvarne velicine promenljive 𝑦 seobicno potvrduje inspekcijom grafika koji prikazuje reziduale 𝑟𝑖 u zavisnosti odpredvidenih vrednosti 𝑤 · 𝑥. Ukoliko se na ovom grafiku ne uocava zavisnostizmedu te dve velicine, smatra se da je pretpostavka ispunjena. S druge strane,ukoliko se moze uociti zavisnost, smatra se da pretpostavka nije ispunjena i dase model moze popraviti dodavanjem novih atributa ili primenom drugacijihmetoda.

Osnovna mera kvaliteta linearne regresije je srednjekvadratna greska, kojameri odstupanje predvidenih vrednosti na nekom test skupu od stvarnih

𝐸(𝑌,𝑋𝑤) =

𝑛∑𝑖=1

(𝑦𝑖 − 𝑤 · 𝑥𝑖)2

Pozeljno je da srednjekvadratna greska bude sto manja, medutim ukoliko ne-mamo konkretan zahtev za postizanjem odredene srednjekvadratne greske,tesko je reci da li je ucenje uspesno ili ne. Zbog toga se cesto koriste i drugemere. Cesta je upotreba koeficijenta determinacije.

Koeficijent determinacije 𝑟2 izmedu predvidenih i stvarnih vrednosti na testskupu, se racuna po formuli

𝑟2(𝑌,𝑋𝑤) = 1−∑𝑛

𝑖=1(𝑦𝑖 − 𝑤 · 𝑥𝑖)2∑𝑛

𝑖=1(𝑦𝑖 − 𝑦)2

gde nadvucena linija oznacava prosek uzorka. Vrednost 1 koeficijenta determi-nacije oznacava potpuno podudaranje stvarnih i predvidenih vrednosti. Sto je

Elektro

nsko

izdanje(2017)

11.2. Regresija 264

Slika 11.9: Grafik reziduala u zavisnosti od predvidenih vrednosti telesne tezine.

vrednost koeficijenta manja, to je poklapanje losije. Cesto se kaze da 𝑟2(𝑌,𝑋𝑤)predstavlja udeo varijanse vrednosti ciljne promenljive 𝑌 koji prediktivni modelobjasnjava. Smisao ovog tvrdenja je sledeci. Ukoliko se odreknemo koriscenjabilo kakvih metoda predikcije pri predvidanju vrednosti 𝑌 , najmanju srednje-kvadratnu gresku ocekujemo ukoliko uvek predvidamo vrednost 𝑦. Odnosno,ako kao prediktivni model za vrednosti 𝑌 koristimo prosek opazenih vrednosti𝑦𝑖. Pri tome je srednjekvadratna greska

𝐸(𝑌, 𝑦) =1

𝑛

𝑛∑𝑖=1

(𝑦𝑖 − 𝑦)2

odnosno uzoracka varijansa za 𝑌 . Rastojanja koja ulaze u ovu gresku su pri-kazana na slici 11.9. U slucaju koriscenja linearnog regresionog modela, sred-njekvadratna greska, ili varijansa vrednosti 𝑌 u odnosu na model, je

𝐸(𝑌,𝑋𝑤) =1

𝑛

𝑛∑𝑖=1

(𝑦𝑖 − 𝑤 · 𝑥)2

Rastojanja koja ulaze u ovu gresku su prikazana na slici 11.10. Ova, preostala,varijansa se ne moze objasniti zavisnoscu od koriscenih atributa, odnosno tupreostalu varijansu mozemo smatrati neobjasnjenom. Njen kolicnik sa 𝐸(𝑌, 𝑦)se onda moze smatrati udelom neobjasnjene varijanse, a koeficijent determina-cije, onda ocigledno, udelom objasnjene varijanse.

Primer 11.9. U slucaju primera sa predikcijom telesne tezine u zavisnosti odvisine na slici 11.11 prikazan je histogram reziduala. Prikazana raspodela je bli-

Elektro

nsko

izdanje(2017)

265 11. Nadgledano masinsko ucenje

Slika 11.10: Grafik reziduala u zavisnosti od predvidenih vrednosti telesnetezine.

ska normalnoj (sto je potvrdeno i statistickim testom). Na slici 11.12 prikazanje grafik zavisnosti reziduala od predivdenih vrednosti. Kako raspodela ne odajezavisnost izmedu reziduala i predvidenih vrednosti (sto je takode potvrdeno istatistickim testom), zaklucuje se da su u tom problemu pretpostavke linearneregresije ispunjene.

Koeficijent determinacije iznosi 0.51 sto znaci da promenljiva 𝑋 objasnjavaoko pola varijanse promenljive 𝑌 , i da postoji prostor da se predikcija daljepopravi dodavanjem novih atributa.

U primeru preprilagodavanja podacima, koji je dat u poglavlju 11.1, koe-ficijenti polinomijalnog modela su izabrani upravo linearnom regresijom. Iakosu polinomi nelinearne funkcije, oni su ipak linearni u odnosu na koeficijente istoga predstavljaju linearne modele, pa je zato bila moguca primena linearneregresije.

11.3 Klasifikacija

Problem klasifikacije je problem razvrstavanja nepoznate instance u jednuod unapred ponudenih kategorija — klasa. Neki od primera klasifikacije su raz-vrstavanje bankovnih transakcija u rizicne koje mogu predstavljati prevaru inerizicne koje predstavljaju uobicajene transakcije, odredivanje autorstva tek-stova pri cemu se tekstu nepoznatog autora pridruzuje jedan od nekoliko una-

Elektro

nsko

izdanje(2017)

11.3. Klasifikacija 266

−30 −20 −10 0 10 20 30

05

1015

20

Slika 11.11: Histogram reziduala u predvidanju telesne tezine.

pred ponudenih autora, razvrstavanje elektronske poste u zeljenu i nezeljenu(eng. spam) i slicno.

U navedenim primerima svaka instanca (bankovna transakcija, tekst, elek-tronska poruka) se moze predstaviti nekim izabranim skupom njenih atributa.Takode, svakoj instanci se kao atribut moze dodati i oznaka klase kojoj instancapripada. Problem klasifikacije se sastoji u odredivanju vrednosti atributa klasena osnovu preostalih atributa instance. Formalnije, problem klasifikacije semoze razmatrati kao aproksimacija ciljne promenljive cija je vrednost za svakuinstancu oznaka klase kojoj ta instanca pripada. Kljucno zapazanje je da jeciljna promenljiva u ovom problemu diskretna. Pritom, u opstem slucaju, ozna-kama klasa se ne mogu smisleno dodeliti numericke vrednosti niti uredenje.Dakle, atribut klase, ciju je vrednost potrebno odrediti, je kategoricki atribut.

Postoji veliki broj metoda kojima se ovaj problem resava. Neke od njih sulogisticka regresija (eng. logistic regression), metode zasnovane na instancama(eng. instance based classification), ucenje stabla odlucivanja (eng. decisiontree induction) i metoda potpornih vektora (eng. support vector machines). Udaljem tekstu opisacemo prve tri pomenute metode.

Elektro

nsko

izdanje(2017)

267 11. Nadgledano masinsko ucenje

●●

●●

●●

● ●

● ●

50 60 70 80 90 100

−20

−10

010

20

Slika 11.12: Grafik reziduala u zavisnosti od predvidenih vrednosti telesnetezine.

11.3.1 Logisticka regresija

Logisticka regresija predstavlja jednu od nakoriscenijih metoda klasifikacije.Glavni razlozi za to su jednostavnost, efikasno treniranje i postojanje verovat-nosne interpretacije rezultata. Ogranicenje ove metode je da je primenljivasamo na binarnu klasifikaciju. U slucaju binarne klasifikacije, svaka instancamoze priadati jednoj od dve klase koje se mogu oznaciti brojevima 1 i −1.Pritom, ovaj izbor brojeva je samo tehnicka pogodnost i za njega ne postojinikakav sustinski razlog, posto su oznake klasa zapravo kategoricke vredno-sti. Osnovna ideja logisticke regresije je da se vrsi predvidanje verovatnoce𝑃 (𝑦 = 1|𝑥) = 𝑓(𝑥,𝑤) da instanca pripada klasi 1. Tada je verovatnoca pripad-nosti drugoj klasi 𝑃 (𝑦 = −1|𝑥) = 1− 𝑃 (𝑦 = 1|𝑥). Kao sto je konstatovano dalinearna regresija predstavlja izbor normalne raspodele sa promenljivim prose-kom koja najbolje opisuje podatke, tako se, na osnovu navedenog, moze konsta-tovati da logisticka regresija predstavlja izbor bernulijeve raspodele ℬ(𝑓(𝑥,𝑤)),takve da vazi 𝑦 ∼ ℬ(𝑓(𝑥,𝑤)).

Postavlja se pitanje sta bi bila pogodna forma modela logisticke regresije.Da bi se modelirala verovatnoca, potrebno je da model bude funkcija kojauzima sve vrednosti u intervalu [0, 1]. Ta funkcija mora zavisiti od vredno-sti atributa 𝑥. Zbog svoje jednostavnosti, linearni modeli predstavljaju cestupolaznu tacku u dizajnu metoda masinskog ucenja. Medutim, linearni model

Elektro

nsko

izdanje(2017)

11.3. Klasifikacija 268

0 1 2 3 4 5 6−1−2−3−4−5−6

1

0.5

Slika 11.13: Grafik sigmoidne funkcije.

𝑤 · 𝑥 uzima vrednosti u intervalu [−∞,∞], pa je za njegovu primenu potrebnonaci monotono rastuce i neprekidno preslikavanje tog intervala u interval [0, 1].Jedno takvo preslikavanje predstavlja sigmoidna funkcija 𝜎(𝑥) = 1/(1 + 𝑒−𝑥).Ovo nije jedina funkcija koja zadovoljava pomenuti zahtev, ali je pogodna i iztehnickih razloga, poput jednostavnosti izvoda (𝜎′(𝑥) = 𝜎(𝑥)(1−𝜎(𝑥)), i cestose koristi u masinskom ucenju. Grafik sigmoidne funkcije je prikazan na slici11.13. Logisticki model se dobija komponovanjem prethodne dve funkcije i imaformu:

𝑓(𝑥,𝑤) =1

1 + 𝑒−𝑤·𝑥

Primer sa kategorizacijom clanaka na racunarske i ostale je tipican primersituacije u kojoj je prirodno primeniti logisticku regresiju. Posto logistickimodel kada vazi 𝑤 · 𝑥 > 0 predvida verovatnocu vecu od 0.5 da instanca 𝑥pripada klasi 1, a kada vazi 𝑤 · 𝑥 < 0, verovatnocu manju od 0.5 (tada jeverovatnoca da pripada klasi −1 veca od 0.5), moze se zakljuciti da se, kaoi algoritam naveden u primeru, i logisticka regresija moze interpretirati kaometoda koja trazi razdvajajucu hiperravan izmedu instanci dve klase. Pritom,sto je neka tacka dalja od razdvajajuce hiperravni, to je vrednost 𝑤 · 𝑥 vecapo apsolutnoj vrednosti, a samim tim je i vrednost 𝜎(𝑤 · 𝑥) bliza vrednosti 0ili 1 u zavisnosti od znaka vrednosti 𝑤 · 𝑥. Odnosno, sto je instanca dublje uoblasti prostora koja pripada nekoj klasi, to model izrazava vecu sigurnost daona pripada toj klasi. Ovo ponasanje je potpuno u skladu sa intuicijom.

Kao sto je navedeno u motivaciji logisticke regresije, verovatnoca 𝑃𝑤(𝑦 =1|𝑥) se predvida formulom

𝑃𝑤(𝑦 = 1|𝑥) = 𝑓(𝑥,𝑤) =1

1 + 𝑒−𝑤·𝑥

Takode, vazi

𝑃𝑤(𝑦 = −1|𝑥) = 1− 𝑃𝑤(𝑦 = 1|𝑥) = 𝑒−𝑤·𝑥

1 + 𝑒−𝑤·𝑥 =1

𝑒𝑤·𝑥 + 1=

1

1 + 𝑒𝑤·𝑥

Elektro

nsko

izdanje(2017)

269 11. Nadgledano masinsko ucenje

Odavde se moze izvesti opsti zakljucak:

𝑃𝑤(𝑦|𝑥) =1

1 + 𝑒−𝑦𝑤·𝑥

S obzirom da postoji verovatnosna interpretacija, intuitivno je vrednostiparametara izabrati tako da verovatnoca raspolozivog trening skupa bude mak-simalna pri izabranim vrednostima parametara. Pod standardno koriscenompretpostavkom da instance predstavljaju nezavisne uzorke, ta verovatnoca jejednaka proizvodu

𝑛∏𝑖=1

𝑃𝑤(𝑦𝑖|𝑥𝑖)

koji se naziva funkcijom verodostojnosti parametra (eng. likelihood function).Kako je koriscenje proizvoda iz tehnickih razloga3 nepreporucljivo, umestofunkcije verodostojnosti se koristi njen logaritam. Kako je logaritam mono-tono rastuca funkcija, maksimumi funkcije verodostojnosti i njenog logaritmakoincidiraju. Kako je logaritam broja koji je izmedu 0 i 1 negativan, umestomaksimizacije logaritma verodostojnosti, moze se minimizovati njegova nega-tivna vrednost

− log

𝑛∏𝑖=1

𝑃𝑤(𝑦𝑖|𝑥𝑖) = −𝑛∑

𝑖=1

log𝑃𝑤(𝑦𝑖|𝑥𝑖) =

−𝑛∑

𝑖=1

log1

1 + 𝑒−𝑦𝑖𝑤·𝑥𝑖=

𝑛∑𝑖=1

log(1 + 𝑒−𝑦𝑖𝑤·𝑥𝑖)

Ova velicina (podeljena brojem instanci) je empirijski rizik koji odgovara logi-stickoj funkciji gubitka ℓ(𝑥, 𝑦, 𝑤) = log(1 + 𝑒−𝑦𝑤·𝑥). Po dodavanju regulariza-cije, minimizacioni problem koji se resava postaje:

min𝑤

𝑛∑𝑖=1

log(1 + 𝑒−𝑦𝑖𝑤·𝑥𝑖) + 𝜆Ω(𝑤)

Ovaj problem nema jednostavno resenje kao u slucaju linearne regresije, vecse mora sprovesti postupak optimizacije. U tu svrhu je moguce koristiti gradi-jenti spust, ali postoje i efikasnije metode. Posebna pogodnost za optimizacijuu slucaju logisticke regresije je sto se minimizuje konveksna funkcija koja imajedan globalni minimum i ne postoji mogucnost da proces optimizacije zavrsiu nekom neoptimalnom lokalnom minimumu, sto je problem sa nekim drugimmetodama ucenja, poput neuronskih mreza.

Treba imati u vidu da za primenu logisticke regresije nije neophodno daklase budu linearno razdvojive. Trening logisticke regresije sigurno konvergirazahvaljujuci tome sto ce gradijentne metode optimizacije sigurno naci mini-mum konveksne funkcije. Naravno, preciznost dobijenog modela ne moze bitisavrsena ako se radi o linearno nerazdvojivom problemu.

3Proizvod velikog broja vrednosti izmedu 0 i 1 lako moze postati 0 usled potkoracenja.

Elektro

nsko

izdanje(2017)

11.3. Klasifikacija 270

11.3.2 Metode klasifikacije zasnovane na instancama

Osnovna karakteristika metoda zasnovanih na instancama je da ne gradeeksplicitan model podataka u vidu neke funkcije kao sto to radi vecina metodamasinskog ucenja. Stoga se klasifikacija ne vrsi na osnovu vec formulisanogmodela, nego na osnovu skupa instanci za trening. Umesto izgradnje mo-dela, instance predvidene za treniranje se cuvaju i bivaju upotrebljene tek kadje potrebno klasifikovati nepoznatu instancu. Time se vecina izracunavanjapremesta iz faze ucenja u fazu primene. Najpoznatija metoda ove vrste jemetoda 𝑛 najblizih suseda.

Metoda 𝑛 najblizih suseda (eng. 𝑛 nearest neighbours) se zasniva na vrlojednostavnom principu — nepoznatu instancu treba klasifikovati u klasu cije suinstance najslicnije nepoznatoj. Koncept slicnosti se najjednostavnije formali-zuje preko funkcija rastojanja.

Definicija 11.1 (Rastojanje). Neka je 𝑋 skup instanci. Funkcija 𝑑 :𝑋×𝑋 → R predstavlja rastojanje na skupu 𝑋 ukoliko zadovoljava sledeceuslove:

1. 𝑑(𝑥, 𝑦) ≥ 0, pritom 𝑑(𝑥, 𝑦) = 0 ⇔ 𝑥 = 𝑦 (pozitivna definitnost)

2. 𝑑(𝑥, 𝑦) = 𝑑(𝑦, 𝑥) (simetricnost)

3. 𝑑(𝑥, 𝑧) ≤ 𝑑(𝑥, 𝑦) + 𝑑(𝑦, 𝑧) (nejednakost trougla)

Primer 11.10. Neki primeri rastojanja su:

� 𝑑(𝑥, 𝑦) = 𝑛√∑

𝑖(𝑥𝑖 − 𝑦𝑖)𝑛

� 𝑑(𝑥, 𝑦) =

{0, 𝑥 = 𝑦1, 𝑥 = 𝑦

Intuitivno, sto je rastojanje izmedu dva objekta vece, to je slicnost izmedunjih manja i obratno.4 Drugim recima, distanca izmedu objekata predstavljameru njihove razlicitosti. Naravno, posto je moguce birati razlicite funkcije ra-stojanja, pretpostavka je da izabrana funkcija rastojanja, u smislu relevantnomza posmatrani domen, stvarno oslikava razlicitost izmedu dva objekta.

Kada je funkcija rastojanja izabrana, najjednostavniji nacin klasifikacije jeklasifikovanje nepoznate instance u klasu iz koje potice instanca trening skupanajbliza nepoznatoj instanci. Ovo je primer metode 𝑛 najblizih suseda za 𝑛 =1. U opstem slucaju metoda 𝑛 najblizih suseda se sastoji u nalazenju 𝑛 instanciiz trening skupa koje su najblize nepoznatoj instanci i njenom klasifikovanju uklasu ciji se elementi najcesce javljaju medu pronadenih 𝑛 najblizih suseda.

4Kao mere slicnosti, ponekad se koriste i funkcije koje nisu zasnovane na distancama kao,na primer, funkcija cos(∠(𝑥, 𝑦)) = 𝑥·𝑦√

𝑥·𝑥√𝑦·𝑦 .

Elektro

nsko

izdanje(2017)

271 11. Nadgledano masinsko ucenje

0

𝐴

𝐵

Slika 11.14: Stabilnost klasifikacije pomocu algoritma 𝑛 najblizih suseda

U slucaju izjednacenog ishoda izmedu vise klasa, nije moguce doneti odluku,ali se u praksi ovaj osnovni algoritam moze modifikovati kako bi se ovakvislucajevi razresili.

Analizirajmo detaljnije metodu 𝑛 najblizih suseda. Posmatrajmo nepo-znate instance A i B prikazane na slici 11.14. Metodom 𝑛 najblizih suseda uzkoriscenje euklidskog rastojanja instanca A biva klasifikovana u crvenu klasuza sve vrednosti 𝑛 od 1 do 5. Klasifikacija instance A je postojana zato stose ona nalazi blizu crvenih instanci, a udaljeno od plavih instanci. S drugestrane, klasa instance B moze da varira u zavisnosti od broja 𝑛. Za 𝑛 = 1instanca B se klasifikuje u crvenu klasu. Za 𝑛 = 2 ne moze se odluciti. Za𝑛 = 3 instanca 𝐵 se klasifikuje u plavu klasu. Za 𝑛 = 4 ponovo nije moguceodluciti, a za 𝑛 = 5, ona se ponovo klasifikuje u crvenu klasu. Klasifikacijainstance 𝐵 nije postojana jer se ona nalazi blizu instanci iz obe klase. Znaci,metoda 𝑛 najblizih suseda je postojana u unutrasnjosti oblasti koju zauzimajuinstance jedne klase, ali je nepostojana na obodu te oblasti. Ovo ponasanje bise moglo uociti i kod drugih metoda klasifikacije.

Pored toga sto se nepostojanost klasifikacije moze demonstrirati menjanjemparametra 𝑛, ona se takode moze analizirati i za fiksiranu vrednost parametra𝑛. Moze se primetiti da je za manje vrednosti parametra 𝑛 nepostojanost privariranju vrednosti atributa instance veca nego za vece vrednosti parametra 𝑛.

Kao sto se moze videti u slucaju metode najblizih suseda, jos jedno bitnosvojstvo metoda zasnovanih na instancama je njihova lokalnost. Nepoznatainstanca se klasifikuje iskljucivo ili uglavnom na osnovu poznatih instanci kojese nalaze u njenoj blizini. Ovo svojstvo doprinosi fleksibilnosti modela kojeove metode (implicitno) grade. Samim tim, za manje vrednosti parametra 𝑛

Elektro

nsko

izdanje(2017)

11.3. Klasifikacija 272

dobijaju se fleksibilniji modeli, koji su stoga skloniji preprilagodavanju, dok seza vece vrednosti parametra 𝑛 dobijaju manje fleksibilni modeli manje sklonipreprilagodavanju. Naravno, premala fleksibilnost vodi modelima koji se nemogu dovoljno prilagoditi podacima i stoga lose uce, tako da ni premala niprevelika vrednost parametra 𝑛 nije dobra. Ocigledno, parametar 𝑛 ima uloguslicnu ulozi regularizacionog parametra 𝜆. Odredivanje njihovih vrednosti cebiti zajednicki diskutovano kasnije.

N-grami

Metode masinskog ucenja su cesto formulisane tako da se jednostavno pri-menjuju na numericke podatke, ali tesko na podatke u nekom drugom obliku.Stoga se traze nacini da se i drugi podaci predstave u numerickom obliku.To cesto podrazumeva i odredeni gubitak informacije. U slucaju problemaklasifikacije tekstova, proteinskih sekvenci i slicnih podataka cesto se u svrhupredstavljanja podataka u numerickom obliku koriste 𝑛-gramski profili.

Ako je data niska 𝑆 = 𝑠1𝑠2 . . . 𝑠𝑁 nad azbukom Σ, gde je 𝑁 pozitivan ceobroj, 𝑛-gram niske 𝑆, za 𝑛 ≥ 𝑁 , je bilo koja podniska susednih simbolja duzine𝑛. Na primer, za nisku sad_ili_nikad, 1-grami su: s, a, d, _, i, l, i, _, n, i,k, a, d. 2-grami su: sa, ad, d_, _i, il, li, i_, _n, ni, ik, ka, ad. 3-grami bibili: sad, ad_, d_i, _il, ili, li_, i_n, _ni, nik, ika, kad, itd.

N-gramski profil niske je lista uredenh parova (𝑛-gram, frekvencija) gde jefrekvencija izracunata u odnosu na sve 𝑛-grame niske. Ovakvi profili predsta-vljaju reprezentaciju pogodnu za metode klasifikacije i cesto se koriste zajednosa metodom 𝑛 najblizih suseda.

Osnovne prednosti koriscenja 𝑛-grama su robusnost (na primer, nisu mnogoosetljivi na greske u kucanju ili na pojavljivanje reci u razlicitim gramatickimoblicima), nezavisnost od domena koji se analizira, efikasnost (dovoljan je jedanprolaz kroz tekst) i jednostavnost. Problem je eksponencijalna zavisnost brojamogucih 𝑛-grama u odnosu na duzinu 𝑛-grama.

N-gramski profili su uspesno korisceni u razlicitim primenama koje ukljucujuprepoznavanje autorstva tekstova, prepoznavanje jezika kojim je tekst pisan,prepoznavanje govora i odredene probleme iz oblasti bioinformatike.

Primer 11.11. U ovom primeru razmotricemo klasifikaciju tekstova premajeziku. Srpski i engleski jezik bice predstavljenim po jednim kracim tekstomoznacenim sa S1 i E1. Posto se izracunaju frekvencije n-grama za ta dvateksta, njihovi n-gramski profili cine trening skup. Test skup ce biti dobijen naosnovu cetiri kratka teksta od kojih su dva na srpskom oznacena sa S2 i S3,a dva na engleskom jeziku oznacena sa E2 i E3. Klasifikacija ce biti izvrsenapomocu algoritma jednog najblizeg suseda. U tekstovima na srpskom jeziku nisukoriscena srpska slova kako bi se izbegla laka identifikacija na osnovu pisma.

S1: U prethodnom delu prikazani su teorijski okviri i algoritmi pomocu kojihje moguce sprovoditi logicko zakljucivanje. Iako zakljucci moraju nuzno slediti iz

Elektro

nsko

izdanje(2017)

273 11. Nadgledano masinsko ucenje

zadatih pretpostavki, proces njihovog dokazaivanja nije pravolinijski vec uklju-cuje odredene odluke o pravcu u kome ce se postupak sprovoditi. Drugim recima,uocljivo je traganje za dokazom nekog tvrdenja. Primera radi, u primeni proce-dure DPLL moguce je uociti i korake zakljucivanja i korake pretrage. Kada seuoci jedinicna klauza u nekoj formuli, njeno zadovoljenje je nuzno i predstavljakorak zakljucivanja. S druge strane kada je nemoguce direktno zakljucivanje,potrebno je pretpostaviti vrednost iskazne promenljive. U daljem toku dokazi-vanja, ta akcija ce se pokazati kao opravdana ili neopravdana. U slucaju da sepokaze kao neopravdana, preduzima se alternativna akcija. Znaci, situacija ukojoj nije moguce izvrsiti direktno zakljucivanje zahteva primenu pretrage.

Manje apstraktan primer je upravljanje robotskom rukom. Pretpostavimoda robotska ruka ima nekoliko mehanickih zglobova cije se kretanje kontroliseelektricnim impulsima. Pritom, neki zglobovi omogucavaju rotacije samo okojedne ose (kao ljudski lakat ili zglobovi na pristima), a drugi rotaciju oko vecegbroja osa (kao ljudsko rame ili zglobovi u korenu prstiju). Pokret hvatanjacase ovakvom robotskom rukom je netrivijalan zadatak, ali se moze razbiti nasekvencu atomicnih koraka — pokreta pojedinacnih zglobova oko razlicitih osaza odreden ugao. Mozemo zamisliti da se ovi koraci izvrsavaju strogo jedan pojedan u kom bi slucaju kretanje ruke bilo znacajno razlicito od ljudskog i sporo,ali bi problem bio laksi jer ne bi bila potrebna sinhronizacija razlicitih zglobovai svaki bi se pojedinacno dovodio u zeljeni polozaj. Druga mogucnost je da sekretanja zglobova izvode simultano, kao kod coveka, pri tom povecavajuci brojmogucih kombinacija u svakom trenutku.

Dati primeri motivisu razmisljanje o pretrazi kao o nalazenju niza akcijakojima se ostvaruje cilj kada to ne moze biti ostvareno pojedinacnim akcijama.Iako u opstem slucaju ovakva definicija ne mora delovati adekvatno, u kontekstuvestacke inteligencije u kome obicno pretpostavljamo postojanje nekog entitetakoji deluje preduzimanjem nekih akcija (agenta), ona je prirodna.

E1: There are two paths to achieving an AGI, says Peter Voss, a softwaredeveloper and founder of the firm Adaptive A.I. Inc. One way, he says, is tocontinue developing narrow AI, and the systems will become generally compe-tent. It will become obvious how to do that. When that will happen or how it willcome about, whether through simbots or some DARPA challenge or something,I dont know. It would be a combination of those kinds of things. The otherapproach is to specifically engineer a system that can learn and think. Thats theapproach that [my firm] is taking. Absolutely I think thats possible, and I thinkits closer than most people think five to 10 years, tops. The two approachesoutlined by Vosseither tinkering with mundane programs to make them morecapable and effective or designing a single comprehensive AGI system speak tothe long-standing philosophical feud that lies at the heart of AI research: thewar between the neats and the scruffies. J. Storrs Hall, author of Beyond AI:Creating the Conscience of the Machine (Prometheus Books, 2007), reduces thisdichotomy to a scientific approach vs. an engineering mind-set. The neats areafter a single, elegant solution to the answer of human intelligence, Hall says.

Elektro

nsko

izdanje(2017)

11.3. Klasifikacija 274

Theyre trying to explain the human mind by turning it into a math problem.The scruffies just want to build something, write narrow AI codes, make littlemachines, little advancements, use whatever is available, and hammer awayuntil something happens. The neat approach descends from computer sciencein its purest form, particularly the war game studies of Von Neumann and hiscolleagues in the 1930s and 1940s. The 1997 defeat of world chess championGarry Kasparov by IBMs Deep Blue computer is considered by many the semi-nal neat success. Up until that moment, the mainstream scientific communitygenerally accepted the premise that AIs could be written to perform specifictasks reasonably well, but largely resisted the notion of superhuman computingability. Deep Blue proved that an AI entity could outperform a human at a sup-posedly human task, perceiving a chess board (Deep Blue could see 200 millionboard positions per second) and plotting a strategy (74 moves ahead as opposedto 10, the human record).

S2: Precizni postupci za resavanje matematickih problema postojali su u vremestarogrckih matematicara (npr. Euklidov algoritam za odredivanje najveceg za-jednickog delioca dva broja), a i pre toga. Ipak, sve do pocetka dvadesetog vekanije se uvidala potreba za preciznim definisanjem pojma algoritma. Tada je, ujeku reforme i novog utemeljivanja matematike, postavljeno pitanje da li postojialgoritam kojim se (pojednostavljeno receno) mogu dokazati sve matematicketeoreme. Da bi se ovaj problem uopste razmatrao, bilo je neophodno najpredefinisati (matematicki precizno) sta je to precizan postupak, odnosno sta je toalgoritam.

S3: Dositej Obradovic (svetovno ime Dimitrije) (Cakovo, 1744 — Beograd,1811) je bio srpski prosvetitelj i reformator revolucionarnog perioda nacional-nog budjenja i preporoda. Rodjen je u rumunskom delu Banata tadasnje Au-strije. Skolovao se za kaludjera, ali je napustio taj poziv i krenuo na putovanjapo celoj Evropi, gde je primio ideje evropskog prosvetiteljstva i racionalizma.Ponesen takvim idejama radio je na prosvecivanju svog naroda, prevodio je ra-zna dela medju kojima su najpoznatije Ezopove basne, a potom je i sam pisaodela, prvenstveno programskog tipa, medju kojima je najpoznatije „Zivot i pri-kljucenija“. Dositej je bio prvi popecitelj (ministar) prosvete u Sovjetu i tvoracsvecane pesme „Vostani Serbie“. Njegovi ostaci pocivaju u Beogradu, na ulazuu Sabornu crkvu.

E2: The planet Mars, I scarcely need remind the reader, revolves about thesun at a mean distance of 140,000,000 miles, and the light and heat it receivesfrom the sun is barely half of that received by this world. It must be, if thenebular hypothesis has any truth, older than our world; and long before thisearth ceased to be molten, life upon its surface must have begun its course.The fact that it is scarcely one seventh of the volume of the earth must have

Elektro

nsko

izdanje(2017)

275 11. Nadgledano masinsko ucenje

accelerated its cooling to the temperature at which life could begin. It has airand water and all that is necessary for the support of animated existence.

E3: Principia Mathematica, the landmark work in formal logic written byAlfred North Whitehead and Bertrand Russell, was first published in three vo-lumes in 1910, 1912 and 1913. Written as a defense of logicism (the view thatmathematics is in some significant sense reducible to logic) the book was in-strumental in developing and popularizing modern mathematical logic. It alsoserved as a major impetus for research in the foundations of mathematics thro-ughout the twentieth century. Along with the Organon written by Aristotle andthe Grundgesetze der Arithmetik written by Gottlob Frege, it remains one ofthe most influential books on logic ever written.

Prilikom izdvajanja 𝑛-grama koriscena je vrednost 𝑛 = 3. Pritom je iz tek-stova S1 i E1 izdvojeno po 10 najfrekventnijih 𝑛-grama. Oni ce ciniti atributeinstanci na osnovu kojih ce biti vrseno treniranje i testiranje. Trening i testskup su dati u tabeli 11.1.

N-gram Trening skup Test skup

S1 E1 S2 S3 E2 E3JE_ 0.0129 0 0.0131 0.0201 0 0_PR 0.0125 0.0023 0.0098 0.0148 0 0ANJ 0.0076 0 0.0082 0.0027 0 0_KO 0.0076 0 0.0016 0.0027 0 0JA_ 0.0076 0 0.0033 0.0040 0 0_JE 0.0067 0 0.0082 0.0121 0 0_PO 0.0067 0.0009 0.0147 0.0080 0 0.0016_SE 0.0062 0.0018 0.0049 0.0027 0.0016 0.0032NJE 0.0058 0 0.0065 0.0027 0 0_U_ 0.0058 0 0.0033 0.0067 0 0_TH 0 0.0212 0 0 0.0270 0.0175THE 0 0.0148 0 0 0.0202 0.0191HE_ 0 0.0120 0 0 0.0185 0.0127ING 0 0.0088 0 0 0.0017 0.0032NG_ 0 0.0078 0 0 0.0034 0.0048_CO 0.0004 0.0074 0 0 0.0051 0ER_ 0.0009 0.0069 0 0 0.0051 0.0032ND_ 0 0.0065 0 0 0.0101 0.0079_TO 0.0018 0.0065 0.0049 0 0.0034 0.0016TO_ 0.0009 0.0065 0.0033 0 0.0034 0.0016

Tabela 11.1: Trening i test skup za klasifikaciju tekstova prema jeziku. Zasvaki 3-gram prikazana je njegova frekvencija u tekstu S1 i E1.

Elektro

nsko

izdanje(2017)

11.3. Klasifikacija 276

Prilikom klasifikacije bice korisceno Euklidsko rastojanje

𝑑(𝑥, 𝑦) =

⎯⎸⎸⎷ 𝑚∑𝑖=1

(𝑥𝑖 − 𝑦𝑖)2

Potrebno je ispitati rastojanja od instanci test skupa do instanci trening skupa.

𝑑(𝑆2, 𝑆1) = 0.0124𝑑(𝑆2, 𝐸1) = 0.0417

𝑑(𝑆3, 𝑆1) = 0.0133𝑑(𝑆3, 𝐸1) = 0.0450

𝑑(𝐸2, 𝑆1) = 0.0482𝑑(𝐸2, 𝐸1) = 0.0149

𝑑(𝐸3, 𝑆1) = 0.0397𝑑(𝐸3, 𝐸1) = 0.0141

Posto je rastojanje od instance S2 do S1 manje nego od S2 do E1, zakljucujese da je S1 najblizi sused instance S2. Zbog toga se instanca S2 prepoznajekao tekst na sprskom jeziku. Slicno se ispravno zakljucuje i da je S3 tekstna srpskom, E2 tekst na engleskom i E3 takode, tekst na engleskom jeziku.Posebno je zanimljivo da tekstovi S3 i E2 po svom sadrzaju nemaju dodira sainstancama za trening S1 i E1 sto ne ometa postupak klasifikacije.

11.3.3 Ucenje stabala odlucivanja

Razmotrimo igru 20 pitanja. Jedan igrac zamislja neki predmet, a drugitreba da pogodi o kom je predmetu rec. Kako bi pogodio o kom predmetu seradi igrac koji pogada ima pravo da postavi 20 pitanja na koje odgovor mozebiti da ili ne. Kada misli da je postavio dovoljno pitanja, igrac moze dati svojsud o kom predmetu se radi i igra se zavrsava. Ocito, proces ispitivanja semoze predstaviti u vidu stabla koje u svakom cvoru ima po jedno pitanje, osimu listovima u kojima se nalazi sud igraca o nepoznatom predmetu. Svaki cvorosim listova ima dve grane oznacene sa da ili ne koje vode u podstablo kojeodgovara nastavku ispitivanja posle razmatranog pitanja. Ovo je primer stablaodlucivanja.

Ovakva stabla se mogu uopstiti zanemarivanjem ogranicenja na 20 pitanja itako sto bi se dozvolilo da odgovori ne moraju biti samo da ili ne, vec da mogupripadati odredenom unapred definisanom skupu za dato pitanje. Ovakva sta-bla se mogu automatski nauciti iz primera koji za svaku instancu ukljucujuvrednosti njenih atributa i vrednost ciljne promenljive za tu instancu.

Ucenje stabala odlucivanja je metod aproksimacije diskretnih ciljnih pro-menljivih pri kome se model predstavlja u vidu stabla. Slicno igri 20 pitanja,

Elektro

nsko

izdanje(2017)

277 11. Nadgledano masinsko ucenje

svakom cvoru stabla odgovara test nekog atributa instance, a grane koje izlazeiz cvora razlicitim vrednostima tog atributa. Listovima odgovaraju predvidenevrednosti ciljne promenljive. Instance su opisane vrednostima svojih atributa.Klasifikuju se polazeci od korena, spustajuci se niz granu koja odgovara vredno-sti testiranog atributa instance koju klasifikujemo. Klasa se dodeljuje instancikad se dode do lista.

Ucenje stabala odlucivanja je vec primenjeno u razlicitim problemima. Je-dan primer se odnosi na predvidanje buduce potraznje za knjigama u biblio-tekama, na osnovu nekih njihovih atributa (npr. jezik, datum objavljivanja,datum poslednjeg iznajmljivanja itd.). Knjige za koje se predvida da nece bitiskoro trazene se mogu smestiti u magacin. Istrazivanje je radeno u biblioteciuniverziteta Harvard. Sredinom devedesetih stabla odlucivanja su primenjenau klasifikaciji tumora i prognozi njihovog ponasanja. Svaka instanca je opi-sivana pomocu 31 atributa, a klasifikacije su date nezavisno od strane visestrucnjaka. U astronomiji stabla odlucivanja su primenjena u cilju razlikova-nja zvezda i tragova kosmickih zraka na snimcima teleskopa Habl. Na osnovu20 numerickih karakteristika, sa stablima dubine do 9 cvorova, postignuta jepreciznost klasifikacije od 95%. Takode postoje primene i u ekonomiji i drugimoblastima.

Koriscenje stabla odlucivanja nije podjednako pogodno za sve problemeucenja. Skup vrednosti atributa bi trebalo da bude diskretan i mali, madase na kontinualne atribute moze primeniti diskretizacija tako sto bi se skuppodelio u podintervale. Svakom podintervalu se pridruzuje oznaka koja zame-njuje vrednosti atributa iz tog intervala u zapisima instanci. Stabla odlucivanjase pokazuju posebno primenljiva u slucaju kada je neophodno predstavljanjedisjunkcija uslova.

Ukoliko stablo odlucivanja instanci dodeljuje neku klasu, to znaci da in-stanca ispunjava sve uslove koji su definisani putanjom od korena do odgova-rajuceg lista kroz stablo i oblika su atribut=vrednost. Stoga putanje kroz stablopredstavljaju konjunkcije ovakvih uslova. Za svaku klasu moguce je uociti pu-tanje koje se zavrsavaju listovima koji odgovaraju toj klasi. Disjunkcija svihtakvih konjunkcija definise instance koje pripadaju datoj klasi prema datomstablu.

Jedan od najpoznatijih algoritama za ucenje stabla odlucivanja je ID3 nakoji cemo se skoncentrisati. Ovaj algoritam konstruise stablo od korena, nanize,pitajuci se u svakom cvoru koji je najbolji atribut koji se u datom cvoru mozetestirati. Ovo se odreduje statistickim kriterijumom koji meri koliko dobro nekiatribut sam klasifikuje podatke. Atribut ne moze biti dva puta koriscen u jed-noj putanji od korena do lista. Za sve vrednosti odabranog atributa kreiraju segrane do cvorova naslednika, a podaci za treniranje se dele izmedu ovih cvorovatako da svaki od njih nasleduje primere koji imaju odgovarajucu vrednost pret-hodno testiranog atributa. Za svaki od cvorova naslednika ovaj postupak serekurzivno primenjuje sve dok nije ispunjen bar jedan od sledeca dva uslova:(1) u putanji od korena do trenutnog cvora iskorisceni su svi atributi, ili (2)sve instance za trening koje su pridruzene trenutnom cvoru imaju istu vrednost

Elektro

nsko

izdanje(2017)

11.3. Klasifikacija 278

ciljnog atributa. Svakom listu se pridruzuje najcesca oznaka instanci za treningkoje su mu pridruzene. Algoritam je preciznije dat na slici 11.15.

Algoritam: ID3(𝑃𝑟𝑖𝑚𝑒𝑟𝑖, 𝐴𝑡𝑟𝑖𝑏𝑢𝑡𝑖)

Ulaz: 𝑃𝑟𝑖𝑚𝑒𝑟𝑖 je skup instanci za trening, a 𝐴𝑡𝑟𝑖𝑏𝑢𝑡𝑖 je lista atributa koji semogu testirati u cvorovima stabla.Izlaz: Stablo odlucivanja koje odgovara datim instancama

1. Napraviti koreni cvor stabla 𝑅.

2. Ako sve instance iz 𝑃𝑟𝑖𝑚𝑒𝑟𝑖 pripadaju istoj klasi, vratiti cvor 𝑅 saoznakom te klase.

3. Ako je 𝐴𝑡𝑟𝑖𝑏𝑢𝑡𝑖 prazna lista, vrati cvor 𝑅 oznacen oznakom najcesceklase koja se javlja u 𝑃𝑟𝑖𝑚𝑒𝑟𝑖.

4. U suprotnom

– Neka je 𝐴 ∈ 𝐴𝑡𝑟𝑖𝑏𝑢𝑡𝑖 najbolji* atribut za testiranje u odnosu na𝑃𝑟𝑖𝑚𝑒𝑟𝑖

– Oznaci cvor 𝑅 atributom 𝐴

– Za svaku mogucu vrednost 𝑣𝑖 atributa 𝐴

* Dodaj granu iz 𝑅 koja odgovara testu 𝐴 = 𝑣𝑖

* Neka je 𝑃𝑟𝑖𝑚𝑒𝑟𝑖𝑣𝑖 podskup od 𝑃𝑟𝑖𝑚𝑒𝑟𝑖 takav da svi njegovielementi imaju vrednost 𝑣𝑖 atributa 𝐴

* Ako je 𝑃𝑟𝑖𝑚𝑒𝑟𝑖𝑣𝑖 prazan, onda na dodatu granu iz 𝑅 dodatilist sa oznakom najcesce klase u 𝑃𝑟𝑖𝑚𝑒𝑟𝑖

* U suprotnom na dodatu granu nadovezati podstabloID3(𝑃𝑟𝑖𝑚𝑒𝑟𝑖𝑣𝑖 ,𝐴𝑡𝑟𝑖𝑏𝑢𝑡𝑖 ∖ {𝐴})

3. Vratiti 𝑅.* Atribut je najbolji prema nekom statistickom kriterijumu.

Slika 11.15: Algoritam ID3

Bitno je pitanje statistickog kriterijuma koji ce biti koriscen za izbor naj-boljeg atributa za testiranje u nekom cvoru. ID3 bira atribut koji maksimizujetakozvani dobitak informacije na skupu instanci koje su pridruzene posmatra-nom cvoru. Dobitak informacije predstavlja razliku entropije u odnosu na ciljniatribut skupa instanci za trening 𝑆 pre deljenja i prosecne entropije posle delje-nja prema nekom atributu 𝐴. Entropija predstavlja meru neuredenosti nekogsistema. Ako sa 𝑝𝑖 oznacimo verovatnocu da instanca pripada 𝑖-toj klasi, ondase entropija moze definisati sledecim izrazom:

Elektro

nsko

izdanje(2017)

279 11. Nadgledano masinsko ucenje

𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆) = −𝑐∑

𝑖=1

𝑝𝑖 𝑙𝑜𝑔2𝑝𝑖

Po definiciji vazi 0 · log2 0 = 0. Entropija se moze interpretirati i kao minimalniocekivani broj bitova potrebnih za kodiranje klasifikacije proizvoljne instanceiz 𝑆. Primera radi, neka je potrebno poslati informaciju o klasi instance uda-ljenom primaocu. Neka je broj klasa 𝑐 i neka je 𝑝0 = 1 (tada je 𝑝𝑖 = 0 za1 ≤ 𝑖 ≤ 𝑐). U tom slucaju je sigurno da ce instanca imati klasifikaciju 0 i nijepotrebno nikakvo kodiranje informacije. U slucaju da je 𝑝𝑖 = 1/𝑐 za 0 ≤ 𝑖 ≤ 𝑐,svi ishodi su jednako verovatni i za kodiranje je potrebno iskoristiti 𝑙𝑜𝑔2𝑐 bitova.U slucaju raspodele koja nije uniformna, dodeljujuci krace kodove klasamakoje se cesce javljaju, a duze onima koje se rede javljaju, moze se dobiti manjaprosecna duzina kodiranja. Notacija 𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆|𝑎) oznacava entropiju skupainstanci iz 𝑆 koje imaju 𝑎 kao vrednost nekog atributa. Pritom, iz kontekstace biti jasno o kom atributu je rec. Dobitak informacije stoga poredstavljasmanjenje u potrebnom broju bitova za kodiranje klase proizvoljne instance,kada je poznata vrednost koju na njoj ima atribut 𝐴. Dobitak informacije seformalno definise na sledeci nacin:

𝐷𝑜𝑏𝑖𝑡𝑎𝑘(𝑆,𝐴) = 𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆)−∑

𝑣∈𝑉 𝑟𝑒𝑑(𝐴)

|𝑆𝑣||𝑆|

𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆𝑣) (11.2)

gde je 𝑐 broj klasa, odnosno vrednosti ciljnog atributa, 𝑝𝑖 udeo instanci izskupa 𝑆 koje pripadaju klasi 𝑖 u celom skupu 𝑆, 𝑉 𝑟𝑒𝑑(𝐴) predstavlja skup svihmogucih vrednosti atributa 𝐴, a 𝑆𝑣 = {𝑠 ∈ 𝑆|𝐴(𝑠) = 𝑣}, gde 𝐴(𝑠) oznacavavrednost atributa 𝐴 za instancu 𝑠.

Pored entropije, postoje i druge mere koje se mogu koristiti za merenjeneuredenosti nekog skupa. Jedna jednostavna mera je greska klasifikacije. Onapredstavlja gresku koja se cini ukoliko se sve instance nekog skupa klasifikujuu najbrojniju klasu u tom skupu. Stoga, ako je 𝑝𝑖 verovatnoca da instancapripada 𝑖-toj klasi, greska klasifikacije se definise izrazom

𝐸𝑟𝑟(𝑆) = 1−max𝑖

𝑝𝑖

Za ovu meru se moze definisati dobitak analogan opisanom dobitku informacijeukoliko se u izrazu 11.2 entropija zameni greskom klasifikacije.

Primer 11.12. U tabeli 11.2 su date instance koje opisuju razlicite zivotinje,sa datom klasifikacijom koja oznacava da li je zivotinja opasna po coveka. Iz-dvojeno je nekoliko karakteristika koje bi mogle biti relevantne u odredivanjuvrednosti ciljnog atributa, ali su namerno dodata dva atributa koji nisu rele-vantna — broj nogu i da li zivotinja zivi u Evropi.

0.971-2/5(0)-1/5(log27/4)Da bi se izgradilo stablo odlucivanja, za svaki od atributa je potrebno izracunati

dobitak informacije pri deljenju skupa podataka prema tom atributu. U prvom

Elektro

nsko

izdanje(2017)

11.3. Klasifikacija 280

Zivotinja Velicina Ishrana Otrovna Noge Evropa Opasna

Lav Velika Meso Ne 4 Ne DaMacka Mala Meso Ne 4 Da NeKoala Mala Biljke Ne 4 Ne NeZec Mala Biljke Ne 4 Da Ne

Komodo zmaj Velika Meso Da 4 Ne Da

Tabela 11.2: Skup primera za trening

koraku, vazi:

𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆) = −2

5log2

2

5− 3

5log2

3

5= 0.971

Ukoliko se izvrsi podela instanci po vrednosti prvog atributa, dobijamo

𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆|𝑀𝑎𝑙𝑎) = −1 · log2 1− 0 · log2 0 = 0

𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆|𝑉 𝑒𝑙𝑖𝑘𝑎) = −0 · log2 0− 1 · log2 1 = 0

𝐷𝑜𝑏𝑖𝑡𝑎𝑘(𝑆, 𝑉 𝑒𝑙𝑖𝑐𝑖𝑛𝑎) = 0.971− 2

5· 0− 3

5· 0 = 0.971

Slicno se dobija:

𝐷𝑜𝑏𝑖𝑡𝑎𝑘(𝑆, 𝐼𝑠ℎ𝑟𝑎𝑛𝑎) = 0.42

𝐷𝑜𝑏𝑖𝑡𝑎𝑘(𝑆,𝑂𝑡𝑟𝑜𝑣𝑛𝑎) = 0.322

𝐷𝑜𝑏𝑖𝑡𝑎𝑘(𝑆,𝑁𝑜𝑔𝑒) = 0

𝐷𝑜𝑏𝑖𝑡𝑎𝑘(𝑆,𝐸𝑣𝑟𝑜𝑝𝑎) = 0.42

Odavde se vidi da je najbolji atribut za testiranje u prvom cvoru atributVelicina. Stablo koje se u ovom slucaju dobija primenom algoritma ID3 jedato na slici 11.16. U slucaju datih primera za ucenje, dobijeno stablo je biloocigledan uzbor i bez primene bilo kakve metodologije.

Nesto komplikovanije stablo odlucivanja moze se dobiti dodavanjem primeraiz tabele 11.3.

Zivotinja Velicina Ishrana Otrovna Noge Evropa Opasna

Zmija Mala Meso Da 0 Da DaPcela ubica Mala Biljke Da 6 Ne DaMorska krava Velika Biljke Ne 0 Ne Ne

Tabela 11.3: Dodatni primeri za trening

Elektro

nsko

izdanje(2017)

281 11. Nadgledano masinsko ucenje

VELICINA

NE

mala

DA

velika

Slika 11.16: Jednostavno stablo odlucivanja

Jedno rucno konstruisano stablo koje je saglasno sa podacima za treningje dato na slici 11.17. Izbor loseg atributa za testiranje u korenom cvoru jenamerno ucinjen. To dovodi do potrebe za ponavljanjem istih testova u levomi desnom podstablu, posto informacija dobijena testiranjem u korenu nije re-levantna za odredivanje klase instance. Takode, u slucaju zivotinja koje ziveu Evropi, prisutan je nepotreban test vezan za njenu ishranu. U oba slucajaklasa je ista, pa se taj test moze zameniti listom sa klasom 𝐷𝐴. Upotreba ID3algoritma daje bolje stablo odlucivanja.

EVROPA

OTROVNOST

ne

OTROVNA

da

VELICINA

ne

ISHRANA

da

DA

velika

NE

mala

DA

biljke

DA

meso

DA

da

VELICINA

ne

NE

mala

DA

velika

Slika 11.17: Rucno konstruisano stablo odlucivanja

Vrednosti entropije i dobitka informacije se sada razlikuju:

Elektro

nsko

izdanje(2017)

11.3. Klasifikacija 282

𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆) = −1

2log2

1

2− 1

2log2

1

2= 1

Ukoliko se izvrsi podela instanci po vrednosti prvog atributa, dobijamo

𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆|𝑀𝑎𝑙𝑎) = −3

5log2

3

5− 2

5log2

2

5= 0.971

𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆|𝑉 𝑒𝑙𝑖𝑘𝑎) = −1

3log2

1

3− 2

3log2

2

3= 0.918

𝐷𝑜𝑏𝑖𝑡𝑎𝑘(𝑆, 𝑉 𝑒𝑙𝑖𝑐𝑖𝑛𝑎) = 1− 5

8· 0.971− 3

8· 0.918 = 0.049

Slicno se dobija:

𝐷𝑜𝑏𝑖𝑡𝑎𝑘(𝑆, 𝐼𝑠ℎ𝑟𝑎𝑛𝑎) = 0.189

𝐷𝑜𝑏𝑖𝑡𝑎𝑘(𝑆,𝑂𝑡𝑟𝑜𝑣𝑛𝑎) = 0.549

𝐷𝑜𝑏𝑖𝑡𝑎𝑘(𝑆,𝑁𝑜𝑔𝑒) = 0

𝐷𝑜𝑏𝑖𝑡𝑎𝑘(𝑆,𝐸𝑣𝑟𝑜𝑝𝑠𝑘𝑎) = 0.02

Posle dodavanja novih instanci, najbolji atributi za testiranje su Otrovnost iIshrana. Rekurzivnom primenom ovog postupka dobija se stablo na slici 11.18.Ono je ocigledno manje od rucno konstruisanog i ima relevantnije atribute privrhu stabla, dok se dva nebitna atributa uopste ne testiraju.

OTROVNA

VELICINA

ne

DA

da

NE

mala

ISHRANA

velika

NE

biljke

DA

meso

Slika 11.18: Stablo odlucivanja konstruisano pomocu ID3 algoritma

Elektro

nsko

izdanje(2017)

283 11. Nadgledano masinsko ucenje

Ucenje stabala odlucivanja nije formulisano u skladu sa osnovnom shemomdizajna algoritama nadgledanog ucenja. Kao i drugi metodi ucenja, ID3 se mozeshvatiti kao pretraga skupa dopustivih modela za onim koji „najbolje“ odgovarapodacima za trening, ali nije lako formulisati tacan kriterijum u odnosu nakoji je dobijeno stablo najbolje. Odnosno, nije ocigledno koja se tacno velicinaoptimizuje metodama ucenja koje grade stabla odlucivanja. Cak i kad dajudobre rezultate u primenama, ovo nije pozeljno jer znaci da ne razumemosasvim na koji nacin rade. Ipak, moze se konstatovati nekoliko stvari kojerazumemo. Prostor pretrage je potpun prostor svih stabala odlucivanja. Svakadiskretna funkcija se moze predstaviti nekim stablom odlucivanja, tako da seucenjem stabala odlucivanja za empirijski rizik moze postici vrednost 0 ukolikopodaci nisu protivrecni. ID3 u svakom trenutku cuva samo jedan tekuci model,pa je nemoguce znati koliko ima drugih modela koji su saglasni sa podacima zatrening. Posto nema vracanja u pretrazi (backtracking), vec se stablo gradi odjednostavnijeg ka slozenijem, postoji opasnost od dostizanja lokalnih optimumakoji nisu globalni.

Treba primetiti da ID3 preferira stabla sa manjom dubinom, kao i stablau kojima se atributi koji nose veci dobitak informacije nalaze blize korenu.Ovo je posledica toga sto izgradnja stabla pocinje od praznog stabla pri cemuse dodaje nivo po nivo i nacina na koji se biraju atributi koji se pridruzujucvorovima. Afinitet prema kracim stablima je zanimljiva pretpostavka jer je uskladu sa odavno poznatim filozofskim principom kojim se cesto vode i naucnici- Okamovom ostricom: entitete ne treba umnozavati preko potrebe, odnosnonajjednostavnije objasnjenje je verovatno i najbolje. Stabla odlucivanja samanjom dubinom imaju manji broj listova. Svakoj putanji od korena do nekogod listova odgovara po jedno pravilo oblika

𝐼𝐹 𝐴1 = 𝑣1 ∧ 𝐴2 = 𝑣2 ∧ ... ∧ 𝐴𝑛 = 𝑣𝑛 𝑇𝐻𝐸𝑁𝐾𝑙𝑎𝑠𝑎 = 𝑘𝑙𝑎𝑠𝑎 𝑘𝑜𝑗𝑎 𝑜𝑑𝑔𝑜𝑣𝑎𝑟𝑎 𝑙𝑖𝑠𝑡𝑢

gde su 𝐴𝑖 0 ≤ 𝑖 ≤ 𝑛 atributi koji se testiraju na putanji od korena do odgova-rajuceg cvora, a 𝑣𝑖 njihove vrednosti za datu instancu. Kako stabla sa manjomdubinom, predstaljaju manje skupove ovakvih pravila, mozemo ih smatratijednostavnijim.

Kako formulacija ucenja stabala odlucivanja nije u okvirima ranije diskuto-vane sheme dizajna algoritama nadgledanog ucenja, vredi osvrnuti se na pro-blem preprilagodavanja. Sa povecanjem dozvoljene dubine stabla, povecava semoc ucenja, odnosno verovatnoca da ce u skupu dopustivih modela biti nadenonaj koji dobro opisuje podatke. Zato se sa povecanjem dozvoljene dubinestabala, smanjuje empirijski rizik. Medutim, ako nema ogranicenja na dubitnustabla, takav skup modela je ocigledno vrlo bogat i stoga postoji opasnost odpreprilagodavanja. Jedan pristup resavanju ovog problema je ogranicavanjemaksimalna dubina stabla nakon koje algoritam ucenja nece dalje razgranavatistablo. O nacinu na koji se vrsi izbor dubine bice reci kasnije, posto se birana slican nacin kao vrednost regularizacionog parametra 𝜆. Zapravo, kako se

Elektro

nsko

izdanje(2017)

11.3. Klasifikacija 284

ovom tеhnikom smanjuje fleksibilnost modela u vreme ucenja, ona se upravomoze smatrati vidom regularizacije.

11.3.4 Mere kvaliteta klasifikacije

Kada se govori o trazenju modela koji najbolje aproksimira ciljnu promen-ljivu, potrebno je dati i mere kvaliteta modela, odnosno ucenja. Mogu se kori-stiti razlicite mere u zavisnosti od vrste problema, ali za neke vrste problemavec postoje neke opste prihvacene mere. U slucaju problema klasifikacije seobicno koristi preciznost, odnosno broj tacno klasifikovanih instanci podeljenukupnim brojem instanci. U primeru sa prepoznavanjem racunarskih clanaka,smo upravo koristili preciznost kao meru kvaliteta. Ako je 𝑛 ukupan brojclanaka i ako sa 𝑟 oznacimo broj racunarskih clanaka koji su klasifikovani kaoracunarski clanci i sa 𝑜 broj ostalih clanaka koji su klasifikovani kao da nisuracunarski, tada je preciznost u tom primeru

𝑝 =𝑟 + 𝑜

𝑛

U nekim slucajevima preciznost nije adekvatna mera. Ukoliko postoje dveklase i jedna je znacajno manja od druge, moguce je dobiti visoku preciznosttako sto ce se sve instance klasifikovati u vecu grupu. Takav je slucaj sa testo-vima koji ustanovljavaju da li je pacijent oboleo od neke bolesti. Neka bolestima samo 1% ljudi u populaciji. Test koji bi uvek prijavljivao da pacijentnema bolest bi imao preciznost od 99%, ali je neupotrebljiv. Stoga je u takvimslucajevima bitna mera osetljivost klasifikatora, odnosno njegova mogucnostda primeti instance koje se traze (npr. bolesne pacijente). Opstije, neka sudate dve klase 𝐶+ i 𝐶− koje smatramo pozitivnim i negativnim primerimaneke kategorije. Na primer pacijenti koji imaju i pacijenti koji nemaju nekubolest. Tada pod stvarno pozitivnim instancama podrazumevamo pozitivneinstance kojie su prepoznate kao pozitivne. Pod stvarno negativnim, instancekoje su negativne i prepoznate kao negativne. Pod lazno pozitivnim podrazu-mevamo instance koje su negativne, ali su greskom u klasifikaciji proglasenepozitivnim i pod lazno negativnim podrazumevamo instance koje su pozitivne,ali su greskom klasifikovane kao negativne. Brojeve ovih instanci oznacavamoredom 𝑆𝑃 , 𝑆𝑁 , 𝐿𝑃 i 𝐿𝑁 . Ove brojeve obicno zapisujemo u takozvanoj ma-trici konfuzije koja po vrstama prikazuje kako su instance klasifikovane, a pokolonama prikazuje koje su stvarne klase instanci. Ova matrica je prikazanatabelom 11.4.

Kada su poznati ovi brojevi, udeo stvarno pozitivnih instanci, odnosnoosetljivost je definisana kao:

𝑈𝑆𝑃 =𝑆𝑃

𝑆𝑃 + 𝐿𝑁

odnosno broj stvarno pozitivnih podeljen brojem svih pozitivnih (i onih koji suklasifikovani kao pozitivni i onih koji su greskom klasifikovani kao negativni).

Elektro

nsko

izdanje(2017)

285 11. Nadgledano masinsko ucenje

P N

KP 𝑆𝑃 𝐿𝑃KN 𝐿𝑁 𝑆𝑁

Tabela 11.4: Vrste matrice konfuzije u zbiru daju broj instanci koje su klasi-fikovane pozitivno (KP) i broj instanci koje su klasifikovane negativno (KN).Kolone u zbiru daju broj instanci koje su stvarno pozitivne (P) ili negativne(N).

Udeo stvarno negativnih se analogno definise

𝑈𝑆𝑁 =𝑆𝑁

𝑆𝑁 + 𝐿𝑃

Udeo lazno pozitivnih i lazno negativnih se definisu slicno:

𝑈𝐿𝑃 =𝐿𝑃

𝐿𝑃 + 𝑆𝑁𝑈𝐿𝑁 =

𝐿𝑁

𝐿𝑁 + 𝑆𝑃

Preciznost se moze izracunati kao

𝑃𝑟𝑒𝑐 =𝑆𝑃 + 𝑆𝑁

𝑆𝑃 + 𝐿𝑃 + 𝑆𝑁 + 𝐿𝑁

Primer 11.13. Neka je testirano 400 ispitanika. Od toga 4 imaju bolest zbogkoje se testiraju, a ostali ne. Neka je test dao pozitivnu klasifikaciju u slucaju2 osobe koje obe imaju bolest. Matrica konfuzije data je tabelom 11.13

P N

KP 2 0KN 2 396

Tabela 11.5: Matrica konfuzije vezana za klasifikaciju obolelih.

Odavde se mogu izracunati mere kvaliteta:

𝑃𝑟𝑒𝑐 =398

400= 0.995

𝑈𝑆𝑃 =2

4= 0.5

𝑈𝑆𝑁 =396

396= 1

𝑈𝐿𝑃 =0

396= 0

𝑈𝐿𝑁 =2

4= 0.5

Preciznost je izuzetno visoka i sugerise odlicno ponasanje klasifikatora. Sdruge strane poznavanje udela stvarno pozitivnih otkriva da je ovaj utisak lazanzato sto je identifikovan mali broj elemenata pozitivne klase.

Elektro

nsko

izdanje(2017)

11.4. Tehnike evaluacije i kofigurisanja algoritma ucenja 286

11.4 Tehnike evaluacije i kofigurisanja algoritma ucenja

Do sada je prikazano nekoliko mera kvaliteta koje sluze za evaluaciju regresi-onih i klasifikacionih modela. Pored izbora same mere, bitno je izabrati i nacinna koji se ta mera ocenjuje. Cesta praksa je da se model trenira na jednomskupu podataka, a da se evaluira na odvojenom skupu podataka za testira-nje. Pritom se podela raspolozivih podataka na podatke za trening i podatkeza testiranje vrsi slucajnim izborom podataka za testiranje. Medutim, ovakavnacin evaluacije moze dovesti do znacajnih oscilacija u vrednostima mera kva-liteta u zavisnosti od toga koji je podskup izabran. Pouzdaniji nacin evaluacijenaucenog znanja je takozvana unakrsna validacija (eng. cross-validation). Ceoskup podataka kojim se raspolaze se deli na 𝑛 priblizno jednakih podskupova.Jedan podskup se izdvaja i trening se vrsi na ostalih 𝑛 − 1 podskupova. Po-sle treninga, kvalitet naucenog znanja se ocenjuje na izdvojenom podskupu.Ovaj postupak se ponavlja za sve ostale izdvojene podskupove i kao finalnaocena kvaliteta se uzima prosek dobijenih ocena za svaki od podskupova. Zavrednost 𝑛 se obicno uzima broj 5 ili 10 i ne preporucuju se mnogo manje ilivece vrednosti. Ovakav postupak daje stabilniju ocenu kvaliteta. Pored toga,prednost ovog metoda je da se u svakom od 𝑛 koraka unakrsne validacije koristivelika kolicina podataka pri treniranju, a da sve raspolozive instance u jednomtrenutku budu iskoriscene za testiranje.

Iako nije ocigledno da je u vezi sa tehnikama evaluacije, u nastavku ce bitirazmotreno dugo odlagano pitanje izbora vrednosti regularizacionog parame-tra 𝜆, kao i broja suseda 𝑛 i maksimalne dubine stabla za koje smo najavili dacemo ih razmatrati skupa. Izbor vrednosti ovih parametera predstavlja samoprimer opstijeg problema konfigurisanja algoritama ucenja. U opstem slucaju,algoritmi ucenja se mogu podesavati na razlicite nacine, pri cemu razlicite kon-figuracije daju razlicite modele za iste ulazne podatke. U nastavku ce biti recisamo o izboru parametra 𝜆, ali se diskusija odnosi i na probleme konfigurisanjaalgoritama ucenja u opstijem smislu.

Za dati skup podataka, svakoj vrednosti parametra 𝜆 odgovara neka vred-nost optimalnih koeficijenata 𝑤𝜆 i samim tim neki model 𝑓(𝑥,𝑤𝜆). Postavljase pitanje koji od ovih modela je najbolji. Osim ako nije raspoloziva velikakolicina podataka, male vrednosti parametra 𝜆 uzrokuju lose rezultate zbogpreprilagodavanja, a velike vrednosti uzrokuju lose rezultate zbog premalefleksibilnosti modela. Pozeljne vrednosti parametra se obicno nalaze negdeizmedu dva ekstrema. Stoga je prvi korak u pronalazenju pogodne vrednostiodredivanje granica intervala u kojem ce se vrednost traziti, sto se moze ura-diti eksperimentalno. Recimo interval [10−10, 105] je verovatno dovoljno siroku vecini slucajeva, ali to je ipak potrebno detaljnije razmotriti u konkrentomslucaju. Potom se formira niz vrednosti parametra koje se ispituju. Na primer,cesto se koristi geometrijska progresija 𝜆1 = 10−10, 𝜆2 = 10−9, . . . , 𝜆11 = 105.Potom se, ugrubo receno, model za svaku od tih vrednosti evaluira i bira senajbolji. Ipak, postavlja se pitanje kako se vrsi evaluacija.

Prva ideja bi bila da se za svaku od izabranih vrednosti parametra izvrsi

Elektro

nsko

izdanje(2017)

287 11. Nadgledano masinsko ucenje

treniranje na trening skupu i da se dobijeni model evaluira na test skupu nekommerom kvaliteta i da se izabere najbolji od njih. Pazljivijim razmatranjem seuvida da je ovaj postupak pogresan. Naime, na ovaj nacin se podaci iz testskupa koriste pri izboru modela, sto je sve deo treninga i samim tim i onipredstavljaju deo trening skupa. Medutim, disjunktnost trening i test skupaje osnovno pravilo evaluacije modela u masinskom ucenju. Korektan postupakbi bio da se umesto podele ukupnog skupa podataka na trening i test skupizvrsi njegova podela na trening skup, validacioni skup i test skup. Tada se natrening skupu vrsi treniranje svakog od modela (dobijenih za razlicite vrednosti𝜆𝑖), na validacionom skupu se vrsi evaluacija na osnovu koje se bira najboljimodel i potom se taj model evaluira na test skupu i njegov kvalitet predstavljafinalnu meru kvaliteta ucenja.

Prethodni postupak je korektan, ali ponovo se konstatuje da usled slucajnogdeljenja podataka na trening i test skup, moze doci do razlicitih ishoda evalua-cije. Prethodno je ovaj problem resen pomocu unakrsne validacije i ta tehnikase moze primeniti i u ovom slucaju. Medutim, pristup je komplikovaniji. Prvose, kao kod standardne unakrsne validacije, ceo skup podataka kojim se ras-polaze deli na 𝑛 priblizno jednakih podskupova. Jedan podskup se izdvaja ipotom se za svaku vrednost 𝜆𝑖 vrsi evaluacija odgovarajuceg modela unakr-snom validacijom na skupu formiranom od preostalih 𝑛−1 delova. Najbolji odtih modela se primenjuje na izdvojeni podskup cime se dobijaju predvidanjaza instance iz tog podskupa. Ovaj posupak se ponavlja za sve ostale izdvojenepodskupove, cime se dobijaju predvidanja za sve instance. Na kraju se naosnovu stvarnih i predvidenih vrednosti ciljne promenljive racuna ocena kvali-teta. Opisana tehnika se naziva ugnezdenom unakrsnom validacijom posto se usvakom od 𝑛 koraka unakrsne validacije vrsi puna nova unakrsna validacija. Na-glasimo da je koriscenje obicne unakrsne validacije u kontekstu izbora vrednostiregularizacionog parametra podjednako pogresno kao i koriscenje standardnepodele na trening i test skup.

Pitanja i zadaci

Pitanje 11.1. Da li se masinsko ucenje bavi proucavanjem:(a) dedukcije;(b) pretrage;(c) generalizacije;(d) optimizacije.

Pitanje 11.2. Kako se naziva proces u kojem se znanje koje vazi za nekiskup instanci prenosi na neki njegov nadskup?

Pitanje 11.3. U cemu se razlikuju nadgledano i nenadgledano ucenje?

Pitanje 11.4. Kako se zove ucenje kod kojeg se algoritmu zajedno sa poda-cima iz kojih uci daju i zeljeni izlazi?

Elektro

nsko

izdanje(2017)

11.4. Tehnike evaluacije i kofigurisanja algoritma ucenja 288

Pitanje 11.5. Kako se u masinskom ucenju zovu atributi instanci cije vred-nosti se ne mogu prirodno numericki opisati?

Pitanje 11.6. Kakve su promenljive koje predvidaju u slucaju klasifikacije,a kakve u slucaju regresije?

Pitanje 11.7. Koji od narednih modela su linearni?

� 𝑦 = 𝛽1𝑥+ 𝛽2𝑧

� 𝑦 = 𝛽0 + 𝛽1𝑥2 + 𝛽2𝑥

3

� 𝑦 = 𝛽0 + 𝛽1 log(𝑥) + 𝛽1 log(𝑥)

� 𝑦 = 𝛽0 + 𝛽1 log(𝑥) + 𝛽1 log(sin(𝑥))

Pitanje 11.8. Ako se ucenje vrsi sa siromasnim skupom dopustivih modela,da li to moze dovesti do losih rezultata?

Pitanje 11.9. Ako se ucenje vrsi sa bogatim skupom dopustivih modela, dali to moze dovesti do losih rezultata?

Pitanje 11.10. Sta je cest uzrok loseg ponasnja modela koji ima dobre merekvaliteta na trening podacima?

Pitanje 11.11. Koju raspodelu se pretpostavlja da ima sum pri koriscenjulinearne regresije?

Pitanje 11.12. Sta je osnovna mera kvaliteta linearne regresije?

Pitanje 11.13. Navesti definiciju srednjekvadratne greske.

Zadatak 11.1. Za kolicine katalizatora od 0,1 i 2 grama, izmerene su brzinehemijske reakcije od 5, 6 i 1 sekunde. Pomocu koeficijenta korelacije oce-niti kvalitet linearnog modela t=6-2m dobijenog linearnom regresijom iz datihpodataka. Kog znaka je koeficijent korelacije i sta to znaci?

Zadatak 11.2. Vrednost evra 3. juna je 100 dinara, 4. juna je 101 dinar,a 5. juna je 105 dinara. Pomocu linearne regresije predvideti vrednost evra6., 7. i 8. juna. Stvarne vrednosti tih dana su bile 105, 106 i 107. Kolika jesrednjekvadratna greska tih predvia. nja?

Zadatak 11.3. U eksperimentu sa daljinskim upravljanjem elektricnim he-likopterom, povecanje napona na elektromotoru za 10, 20 i 30 V rezultovaloje povecanjem brzine za 1, 2 i 6 𝑚/𝑠. Posto se pretpostavlja da su promenepravca vetra uticale na postignutu brzinu, potrebno je modelovati zavisnostizmeu. povecanja napona i dobitka u brzini linearnim modelom koji najboljeodgovara podacima. Na osnovu tog modela, predvideti povecanje brzine pripovecanju napona za 15, 25 i 35 V.

Elektro

nsko

izdanje(2017)

289 11. Nadgledano masinsko ucenje

Zadatak 11.4. Instrument meri brzinu tela u padu. Izmerena brzina je 2m/su polaznom trenutku, 4 dve desetinke kasnije, a 6.9 pola sekunde kasnije (uodnosu na polazni trenutak). Linearnom regresijom odrediti model koji predvi-dja brzinu tela u buducnosti i proceniti brzinu posle jedne i posle dve sekunde.Na osnovu modela proceniti ubrzanje sa koje Zemljina teza uzrokuje u kretanjutela.

Zadatak 11.5. Jedne nedelje januara, u ponedeljak, utorak i petak u podneizmerene su temperature -2, 0 i 1 stepen. Linearnom regresijom procenititemperaturu u sredu i cetvrtak u podne. Koliki je koeficijent korelacije zadobijeni linearni model?

Zadatak 11.6. U toku dana pracena je temperatura vazduha. U 8:00 ujutruje bilo 15 stepeni, a u 10:00 je bilo 18 stepeni. Linearnom regresijom odreditimodel koji predvidja temperaturu u buducnosti i proceniti temperaturu u 12:00i 14:00.

Zadatak 11.7. Telo se krece po putu konstanantnom brzinom. Nakon jednesekunde telo je preslo 6m od starta, nakon 2s 8m, a nakon 3s 10m. Koritecilineranu regresiju odrediti brzinu tela i na kojoj razdaljini od starta je bilo telou pocetnom trenutku.

Pitanje 11.14. Navesti barem dva algoritma klasifikacije.

Pitanje 11.15. Da li su modeli koje grade metode zasnovane na instancamaimplicitni ili eksplicitni?

Pitanje 11.16. Kako se zove metod klasifikacije koji koristi 𝑛 instanci zakoje je rastojanje do instance koja se klasifikuje najmanje?

Pitanje 11.17. Navesti primer funkcije rastojanja koja se moze koristiti umetodi 𝑛 najblizih suseda.

Pitanje 11.18. Da li su u metodu 𝑛 najblizih suseda rezultati bolji za vecevrednosti 𝑛?

Da li u metodu 𝑛 najblizih suseda kvalitet rezultata zavisi od 𝑛?

Da li u metodu 𝑛 najblizih suseda postoji opste gornje ogranicenje za 𝑛?

Pitanje 11.19. Instanca (1, 0) pripada klasi 𝐴, instanca (9, 1) pripada klasi𝐵, a instanca (15, 19) pripada klasi 𝐶. Kojoj od ovih klasa bi algoritam 𝑛-najblizih suseda pridruzio instancu (2, 2) za 𝑛 = 1?

Zadatak 11.8. Date su instance (1,1,A),(1,2,A),(2,1,A),(2,2,B),(3,3,B),(4,4,B),(4,2,C) i (5,2,C), pri cemu poslednja koordinata predstavlja oznaku klase. Al-goritmom 3 najbliza suseda odrediti kojoj klasi pripada instanca (2,4)?

Elektro

nsko

izdanje(2017)

11.4. Tehnike evaluacije i kofigurisanja algoritma ucenja 290

Zadatak 11.9. Algoritmom 3 najbliza suseda klasifikovati instance iz treningskupa. Pri tom, koristiti Menhetn rastojanje. Izracunati preciznost, i udeletacno i lazno pozitivnih i tacno i lazno negativnih.

Trening skup𝑋1 𝑋2 𝑋3 Klasa

1 1 0 A1 0 2 A2 2 3 A3 2 4 B1 4 3 B4 3 3 B

Test skup𝑋1 𝑋2 𝑋3 Klasa

0 0 0 A3 3 3 A1 3 4 B4 5 3 B

Zadatak 11.10. Date su instance (0,0,A), (1,1,A), (1,2,A), (0,2,A), (1,5,B),(4,5, B), (5, 6, B), (5, 2, C), (4, 0, C), pri cemu prve dve koordinate pred-stavljaju koordinate tacke, a poslednja koordinata predstavlja oznaku klase.Algoritmom 3 najbliza suseda odrediti kojoj klasi pripadaju instance (0, 1,A), (4, 3, B), (3, 1, C)? Kao meru rastojanja koristiti Euklidovo rastojanjeu ravni. Odrediti preciznost i udele tacno i lazno pozitivnih.

Pitanje 11.20. Koliko ima 2-grama u reci matematika i koje su njihovefrekvencije u ovoj reci?

Pitanje 11.21. Da li, za konacnu azbuku, 𝑛-grama za fiksno 𝑛 ima: konacnomnogo, prebrojivo mnogo ili neprebrojivo mnogo?

Pitanje 11.22. Sta cini 𝑛-gramski profil instance?

Pitanje 11.23. Navesti barem dve funkcije rastojanja koje se mogu koristitiza klasifikaciju 𝑛-gramskih profila metodom 𝑛 najblizih suseda.

Pitanje 11.24. Navesti ime barem jednog algoritma za konstrukciju stablaodlucivanja na osnovu skupa instanci za trening.

Pitanje 11.25. Navesti algoritam ID3.

Pitanje 11.26. Sta vraca algoritam ID3 u slucaju da je lista atributa prazna?

Pitanje 11.27. Sta vraca algoritam ID3 u slucaju da sve ulazne instancepripadaju istoj klasi?

Pitanje 11.28. Da li algoritam ID3 ima tendenciju da konstruise plica ilidublja stabla odlucivanja?

Pitanje 11.29. Koje se mere obicno koriste za izbor najpogodnijeg atributaprilikom izgradnje stabla odlucivanja?

Pitanje 11.30. Navesti definiciju velicine 𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆).

Elektro

nsko

izdanje(2017)

291 11. Nadgledano masinsko ucenje

Pitanje 11.31. Ako se razmatra entropija kuglica rasporedenih u dve cinije,kada ona najveca, a kada najmanja?

Pitanje 11.32. Ako skup sadrzi podjednako instanci iz dve klase, kolika jevrednost entropije za taj skup?

Pitanje 11.33. Kako se definise entropija skupa 𝑆 podeljenog na podskupovevelicina 𝑝1, 𝑝2, . . ., 𝑝𝑐?

Pitanje 11.34. U jednom skupu instanci, verovatnoca da proizvoljna in-stanca pripada klasi 𝐶1 jednaka je 1/4, verovatnoca da pripada klasi 𝐶2 jed-naka je 1/4, a verovatnoca da pripada klasi 𝐶3 jednaka je 1/2. Kolika jeentropija ovog skupa?

Pitanje 11.35. Kakva su pravila koja se lako mogu izvesti iz stabla odlucivanja?

Zadatak 11.11. Na osnovu datih primera, konstruisati stablo odlucivanja zaciljnu promenljiu koja odreduje da li je jagoda zrela.

Boja Velicina Zrela

Zelena Mala NeCrvena Mala DaZelena Velika NeCrvena Velika Da

Zadatak 11.12. Konstruisati stablo odlucivanja za sledece instance koje go-vore o zivotinjama. Odgovor detaljno obrazloziti.

Otrovnost Boja Opasna

Otrovna Zelena DaNeotrovna Zelena NeOtrovna Crvena DaNeotrovna Crvena Ne

Zadatak 11.13. Na osnovu sledecih podataka, konstruisati stablo odlucivanjadubine 1 koriscenjem mere „greska klasifikacije“.

A 2 1 2 1 2 1 2 1B 1 1 2 3 3 3 1 2C 2 2 1 2 1 3 3 3

Klasa + - + + - + - +

Izracunati preciznost dobijenog stabla odlucivanja na sledecem test skupu.

A 1 1 1 3B 1 2 2 3C 1 1 3 1

Klasa - + - +

Elektro

nsko

izdanje(2017)

11.4. Tehnike evaluacije i kofigurisanja algoritma ucenja 292

Zadatak 11.14. Konstruisati stablo odlucivanja potrebne dubine koje pre-poznaje parnost 4-bitnih brojeva na osnovu njihovih binarnih reprezentacija.Neka se trening skup sastoji od brojeva 1, 3, 6, 9, 12 i 14. Kolika je preciznostovog stabla na brojevima 2,4,5 i 7?

Zadatak 11.15. Na osnovu mere „greska klasifikacije“ i datih podataka, oda-brati najbolji atribut za izgradnju stabla odlucivanja.

𝑋1 𝑋2 𝑋3 Klasa

T T T AF T T AF T T AF F T AF F F AF F F BT F F BT F F BT T F BT T F B

Zadatak 11.16. Na osnovu mere „greska klasifikacije“ i datih podataka iz-graditi stablo odlucivanja dubine 1.

𝑋1 𝑋2 𝑋3 Klasa

T T T BF T T BF T T AF F T AF F F AT F F BT T F BT T F BT F F AT F F A

Zadatak 11.17. Na osnovu atributa „ima krila“, „leze jaja“, „leti“ konstru-isati stablo odlucivanja koje prepoznaje ptice. Za trening koristiti sledecezivotinje: roda, krava, vrabac, slepi mis, noj, zebra, gavran. Kolika je preci-znost predvia. nja tog stabla na sledecem skupu: kokoska, kornjaca, konj, lav?

Zadatak 11.18. Na osnovu sledecih podataka, konstruisati stablo odlucivanjakoriscenjem mere „greska klasifikacije“.

Elektro

nsko

izdanje(2017)

293 11. Nadgledano masinsko ucenje

𝑋1 𝑋2 𝑋3 Klasa

A M F 𝐶0

A D F 𝐶0

L M F 𝐶0

L D F 𝐶1

L M G 𝐶0

L D G 𝐶1

A D G 𝐶1

Pitanje 11.36. Koja je osnovna mera kvaliteta klasifikatora?

Pitanje 11.37. Stablo odlucivanja je za 5 instanci ponudilo klase 𝐴,𝐴,𝐵,𝐵,𝐴,dok su ispravne klase bile 𝐴,𝐴,𝐴,𝐵,𝐵. Kolika je preciznost ovog stablaodlucivanja?

Pitanje 11.38. Koji procenat podataka se u masinskom ucenju obicno uzimaza trening podatke, a koji za test podatke?

Pitanje 11.39. Sta se, radi pouzdanije evaluacije klasifikatora, cesto koristiumesto jednog deljenja na trening i test podatke?

Pitanje 11.40. Kako se zove postupak evaluacije modela masinskog ucenjau kojem se skup raspolozivih podataka deli na 𝑛 delova, a zatim trenira izo-stavljajuci po jedan od njih?

Pitanje 11.41. Kako se sprovodi unakrsna validacija?

Pitanje 11.42. U problemu klasifikacije, za koje instance kazemo da su laznopozitivne?

Pitanje 11.43. Kako se definise velicina USP (udeo stvarno pozitivnih)?

Elektro

nsko

izdanje(2017)

Elektro

nsko

izdanje(2017)

Glava 12

Nenadgledano ucenje

295

Elektro

nsko

izdanje(2017)

Elektro

nsko

izdanje(2017)

Deo IV

Resenja zadataka

Elektro

nsko

izdanje(2017)

Elektro

nsko

izdanje(2017)

Glava 13

Resenja zadataka

7.1. Pretpostavimo suprotno — pretpostavimo da formula (𝐷 ∧𝐴) ⇒ ¬𝐵 nijetautologija, tj. pretpostavimo da postoji valuacija 𝑣 takva da je 𝐼𝑣((𝐷 ∧𝐴) ⇒¬𝐵) = 0. Iz 𝐼𝑣((𝐷 ∧ 𝐴) ⇒ ¬𝐵) = 0 sledi 𝐼𝑣(𝐷 ∧ 𝐴) = 1 i 𝐼𝑣(¬𝐵) = 0,a odatle 𝐼𝑣(𝐷) = 1, 𝐼𝑣(𝐴) = 1 i 𝐼𝑣(𝐵) = 1. Formula (𝐴 ∧ 𝐶) ⇒ ¬𝐷 jetautologija, pa vazi 𝐼𝑣((𝐴∧𝐶) ⇒ ¬𝐷) = 1. Kako je 𝐼𝑣(¬𝐷) = 0, mora da vazi𝐼𝑣(𝐴∧𝐶) = 0, odakle sledi da je 𝐼𝑣(𝐶) = 0 (jer je 𝐼𝑣(𝐴) = 1). S druge strane,formula 𝐴 ⇒ (𝐵 ⇒ 𝐶) je tautologija, pa vazi 𝐼𝑣(𝐴 ⇒ (𝐵 ⇒ 𝐶)) = 1. Kako je𝐼𝑣(𝐴) = 1, mora da vazi 𝐼𝑣(𝐵 ⇒ 𝐶) = 1. Vazi 𝐼𝑣(𝐵) = 1, pa mora da vazi i𝐼𝑣(𝐶) = 1, sto je u kontradikciji sa 𝐼𝑣(𝐶) = 0. Dakle, polazna pretpostavka jebila pogresna, odakle sledi da je formula (𝐷 ∧𝐴) ⇒ ¬𝐵 tautologija.

7.9. Dokazimo najpre, metodom istinitosnih tablica, da je formula

(𝐴 ⇒ (𝐵 ⇒ 𝐶)) ⇒ (((𝐴 ∧ 𝐶) ⇒ ¬𝐷) ⇒ ((𝐷 ∧𝐴) ⇒ ¬𝐵))

tautologija:

(𝐴 ⇒ (𝐵 ⇒ 𝐶)) ⇒ (((𝐴 ∧ 𝐶) ⇒ ¬ 𝐷) ⇒ ((𝐷 ∧ 𝐴) ⇒ ¬ 𝐵))0 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 00 1 0 1 0 1 0 0 0 1 0 1 1 1 0 0 1 1 00 1 0 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 00 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 00 1 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 10 1 1 0 0 1 0 0 0 1 0 1 1 1 0 0 1 0 10 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 1 0 10 1 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 0 11 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 01 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 01 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 01 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 01 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 11 0 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 11 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 11 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1

Formula (𝐴 ⇒ (𝐵 ⇒ 𝐶)) ⇒ (((𝐴 ∧ 𝐶) ⇒ ¬𝐷) ⇒ ((𝐷 ∧ 𝐴) ⇒ ¬𝐵)) je, dakle,tautologija i, na osnovu pretpostavke, formula 𝐴 ⇒ (𝐵 ⇒ 𝐶) je tautologija,pa, na osnovu tvrdenja iz primera 7.8, sledi da je i formula ((𝐴∧𝐶) ⇒ ¬𝐷) ⇒

299

Elektro

nsko

izdanje(2017)

300

((𝐷 ∧𝐴) ⇒ ¬𝐵) tautologija. Formula ((𝐴 ∧𝐶) ⇒ ¬𝐷) ⇒ ((𝐷 ∧𝐴) ⇒ ¬𝐵) jetautologija i, na osnovu pretpostavke, formula (𝐴 ∧ 𝐶) ⇒ ¬𝐷 je tautologija,pa na osnovu tvrdenja iz primera 7.8, sledi da je i formula (𝐷 ∧ 𝐴) ⇒ ¬𝐵tautologija.

7.10. Ako je 𝑣(𝑝) = 0 i 𝑣(𝑞) = 0, onda je 𝐼𝑣(𝐴∧ 𝑞) = 0 i 𝐼𝑣((𝐴∧ 𝑞) ⇒ ¬𝑝) = 1.Slicno, ako je 𝑣(𝑝) = 1 i 𝑣(𝑞) = 1, onda je 𝐼𝑣(𝐴∧ 𝑞) = 𝐼𝑣(𝐴) i 𝐼𝑣(¬𝑝) = 0, pa je𝐼𝑣((𝐴 ∧ 𝑞) ⇒ ¬𝑝) = 1− 𝐼𝑣(𝐴). Analogno odre.ujemo istinitosnu vrednost dateformule za svaku kombinaciju vrednosti 𝑣(𝑝) i 𝑣(𝑞). Te vrednosti prikazane suu narednoj tablici:

((𝐴 ∧ 𝑞) ⇒ ¬ 𝑝) ⇒ ((𝑝 ⇒ ¬ 𝑞) ⇒ 𝐴)0 0 1 1 0 𝐼𝑣(𝐴) 0 1 1 0 𝐼𝑣(𝐴)

𝐼𝑣(𝐴) 1 1 1 0 𝐼𝑣(𝐴) 0 1 0 1 𝐼𝑣(𝐴)0 0 1 0 1 𝐼𝑣(𝐴) 1 1 1 0 𝐼𝑣(𝐴)

𝐼𝑣(𝐴) 1 1− 𝐼𝑣(𝐴) 0 1 1 1 0 0 1 1

Dakle, da bi data formula bila tautologija mora da vazi 𝐼𝑣(𝐴) = 1 u sluca-jevima 𝑣(𝑝) = 𝑣(𝑞) = 0, 𝑣(𝑝) = 0, 𝑣(𝑞) = 1, 𝑣(𝑝) = 1, 𝑣(𝑞) = 0, dok u slucaju𝑣(𝑝) = 𝑣(𝑞) = 1, formula 𝐴 moze da ima proizvoljnu vrednost. Dakle, formula𝐴 za koju u svakoj valuaciji vazi 𝐼𝑣(𝐴) = 1 ispunjava uslov zadatka, pa 𝐴 mozebiti formula ⊤.

7.14 Pretpostavimo da vazi 𝐴1, 𝐴2, . . . , 𝐴𝑛 |= 𝐵. Pretpostavimo da formula(𝐴1 ∧ 𝐴2 ∧ . . . ∧ 𝐴𝑛) ⇒ 𝐵 nije tautologija. Tada postoji valuacija u kojoj jeformula 𝐵 netacna, a formula (𝐴1∧𝐴2∧ . . .∧𝐴𝑛) tacna. Ako je u toj valuacijiformula (𝐴1∧𝐴2∧ . . .∧𝐴𝑛) tacna, onda je tacna i svaka od formula 𝐴1, 𝐴2, . . .,𝐴𝑛. S druge strane, kako vazi 𝐴1, 𝐴2, . . . , 𝐴𝑛 |= 𝐵, sledi da je u toj valuacijitacna i formula 𝐵, sto protivreci prethodnom zakljucku da formula 𝐵 nije tacnau toj valuaciji. Dakle, pogresna je pretpostavka da (𝐴1 ∧ 𝐴2 ∧ . . . ∧ 𝐴𝑛) ⇒ 𝐵nije tautologija, tj. vazi |= (𝐴1 ∧𝐴2 ∧ . . . ∧𝐴𝑛) ⇒ 𝐵.

Pretpostavimo da vazi |= (𝐴1 ∧ 𝐴2 ∧ . . . ∧ 𝐴𝑛) ⇒ 𝐵. Pretpostavimo dane vazi 𝐴1, 𝐴2, . . . , 𝐴𝑛 |= 𝐵. To znaci da postoji valuacija u kojoj je svaka odformula 𝐴1, 𝐴2, . . ., 𝐴𝑛 tacna, a formula 𝐵 nije. U toj valuaciji je tacna iformula (𝐴1 ∧𝐴2 ∧ . . . ∧𝐴𝑛), a netacna je formula (𝐴1 ∧𝐴2 ∧ . . . ∧𝐴𝑛) ⇒ 𝐵.Odatle sledi da formula (𝐴1∧𝐴2∧. . .∧𝐴𝑛) ⇒ 𝐵 nije tautologija, sto je suprotnopretpostavci. Dakle, mora da vazi 𝐴1, 𝐴2, . . . , 𝐴𝑛 |= 𝐵, sto je i trebalo dokazati.

7.15 Pretpostavimo da vazi Γ, 𝐴 |= 𝐵 i dokazimo Γ |= 𝐴 ⇒ 𝐵. Pretpostavimoda su sve formule iz skupa Γ tacne u nekoj valuaciji 𝑣 i dokazimo da je u tojvaluaciji tacna i formula 𝐴 ⇒ 𝐵. Pretpostavimo suprotno, da vazi 𝐼𝑣(𝐴 ⇒𝐵) = 0. Odatle sledi 𝐼𝑣(𝐴) = 1 i 𝐼𝑣(𝐵) = 0. Dakle, valuacija 𝑣 je model zaskup formula Γ∪{𝐴}, pa iz Γ, 𝐴 |= 𝐵 sledi da je valuacija 𝑣 model i za formulu𝐵, sto je u suprotnosti sa 𝐼𝑣(𝐵) = 0. Dakle, pretpostavka je bila pogresna, pasledi 𝐼𝑣(𝐴 ⇒ 𝐵) = 1, tj. Γ |= 𝐴 ⇒ 𝐵, sto je i trebalo dokazati.

Elektro

nsko

izdanje(2017)

301 13. Resenja zadataka

Pretpostavimo da vazi Γ |= 𝐴 ⇒ 𝐵 i dokazimo Γ, 𝐴 |= 𝐵. Pretpostavimoda su sve formule iz skupa Γ ∪ {𝐴} tacne u nekoj valuaciji 𝑣 i dokazimo da jeu toj valuaciji tacna i formula 𝐵. U valuaciji 𝑣 su tacne sve formule iz skupaΓ, pa iz Γ |= 𝐴 ⇒ 𝐵 sledi 𝐼𝑣(𝐴 ⇒ 𝐵) = 1. Iz 𝐼𝑣(𝐴) = 1 i 𝐼𝑣(𝐴 ⇒ 𝐵) = 1sledi 𝐼𝑣(𝐵) = 1 (ako bi vazilo 𝐼𝑣(𝐵) = 0, iz 𝐼𝑣(𝐴) = 1 i 𝐼𝑣(𝐵) = 0 bi sledilo𝐼𝑣(𝐴 ⇒ 𝐵) = 0). Dakle, valuacija 𝑣 je model za formulu 𝐵, tj. Γ, 𝐴 |= 𝐵, stoje i trebalo dokazati.

7.16 Neka je 𝑣 proizvoljna valuacija. Tada je 𝐼𝑣(𝐴1) = 𝐼𝑣(𝐴2) i 𝐼𝑣(𝐵1) =𝐼𝑣(𝐵2).

(a)

𝐼𝑣(¬𝐴1) =

{1, 𝐼𝑣(𝐴1) = 00, inace

=

{1, 𝐼𝑣(𝐴2) = 00, inace

= 𝐼𝑣(¬𝐴2) .

(b)

𝐼𝑣(𝐴1 ∧𝐵1) =

{1, 𝐼𝑣(𝐴1) = 1 i 𝐼𝑣(𝐵1) = 10, inace

=

{1, 𝐼𝑣(𝐴2) = 1 i 𝐼𝑣(𝐵2) = 10, inace

= 𝐼𝑣(𝐴2 ∧𝐵2) .

(c)

𝐼𝑣(𝐴1 ∨𝐵1) =

{1, 𝐼𝑣(𝐴1) = 1 ili 𝐼𝑣(𝐵1) = 10, inace

=

{1, 𝐼𝑣(𝐴2) = 1 ili 𝐼𝑣(𝐵2) = 10, inace

= 𝐼𝑣(𝐴2 ∨𝐵2) .

(d)

𝐼𝑣(𝐴1 ⇒ 𝐵1) =

{0, 𝐼𝑣(𝐴1) = 1 i 𝐼𝑣(𝐵1) = 01, inace

=

{0, 𝐼𝑣(𝐴2) = 1 i 𝐼𝑣(𝐵2) = 01, inace

= 𝐼𝑣(𝐴2 ⇒ 𝐵2) .

Elektro

nsko

izdanje(2017)

302

(e)

𝐼𝑣(𝐴1 ⇔ 𝐵1) =

{1, 𝐼𝑣(𝐴1) = 𝐼𝑣(𝐵1)0, inace

=

{1, 𝐼𝑣(𝐴2) = 𝐼𝑣(𝐵2)0, inace

= 𝐼𝑣(𝐴2 ⇔ 𝐵2) .

7.17 Pretpostavimo da je 𝐴 tautologija. Neka je 𝑣 proizvoljna valuacija. Nekaje 𝑤 valuacija u kojoj su iskaznim slovima 𝑝1, 𝑝2, . . ., 𝑝𝑛 dodeljene redomvrednosti 𝐼𝑣(𝐴1), 𝐼𝑣(𝐴2), . . ., 𝐼𝑣(𝐴𝑛) i u kojoj je svakom iskaznom slovu 𝑝 kojese pojavljuje u 𝐴, a razlicito je od 𝑝1, 𝑝2, . . ., 𝑝𝑛 dodeljuje vrednost 𝐼𝑣(𝑝).Indukcijom nad skupom iskaznih formula moze se dokazati da vazi 𝐼𝑣(𝐵) =𝐼𝑤(𝐴). Iskazna formula 𝐴 je tautologija, pa je ona tacna u svakoj valuaciji.Dakle, 𝐼𝑤(𝐴) = 1, odakle je 𝐼𝑣(𝐵) = 1. Kako je 𝑣 proizvoljna valuacija, sledida je formula 𝐵 tacna u svakoj valuaciji, tj. sledi da je formula 𝐵 tautologija,sto je i trebalo dokazati.

7.41. Neka 𝑝 oznacava tvr.enje „𝑅 uvek govori istinu“ i neka 𝑞 oznacava tvr.enje„Levi put vodi u glavni grad“. Mestaninu 𝑅 treba postaviti pitanje „Da li jetacno 𝑃?“ (gde je 𝑃 iskaz izrazen u funkciji 𝑝 i 𝑞). Oznacimo sa 𝑅(𝐴) odgovormestanina na pitanje „Da li je tacno 𝐴?“ — 0 ako je njegov odgovor ne i 1 akoje njegov odgovor da. Postavljeno pitanje treba da bude takvo da je 𝑅(𝑃 ) usvakom slucaju jednak vrednosti iskaza 𝑞. Odredimo tvr.enje 𝑃 .

Ako je u nekoj valuaciji 𝐼𝑣(𝑝) = 0 (tj. 𝑅 uvek govori laz) i ako je 𝑅(𝐴)jednako 0, onda u toj valuaciji mora da vazi 𝐼𝑣(𝐴) = 1. Ako je u nekojvaluaciji 𝐼𝑣(𝑝) = 0 (tj. 𝑅 uvek govori laz) i ako je 𝑅(𝐴) jednako 1, onda u tojvaluaciji mora da vazi 𝐼𝑣(𝐴) = 0. Ako je u nekoj valuaciji 𝐼𝑣(𝑝) = 1 (tj. 𝑅uvek govori istinu) i ako je 𝑅(𝐴) jednako 0, onda u toj valuaciji mora da vazi𝐼𝑣(𝐴) = 0. Ako je u nekoj valuaciji 𝐼𝑣(𝑝) = 1 (tj. 𝑅 uvek govori istinu) i akoje 𝑅(𝐴) jednako 1, onda u toj valuaciji mora da vazi 𝐼𝑣(𝐴) = 1. Dobijenizakljucci mogu biti prikazani u vidu sledece istinitosne tablice:

𝑝 𝑅(𝐴) 𝐴0 0 10 1 01 0 01 1 1

Iskaz 𝑃 moze da ima formu 𝑅(𝐵) i onda je potrebno da je u svakoj valuacijivrednost 𝑅(𝑅(𝐵)) jednaka 𝑞. Odredimo tvr.enje 𝐵. Vrednosti za iskaze 𝑅(𝐵) i𝐵 dobijaju se na osnovu prethodne istinitosne tablice. Te vrednosti prikazanesu u sledecoj istinitosnoj tablici:

Elektro

nsko

izdanje(2017)

303 13. Resenja zadataka

𝑝 𝑞 𝑅(𝑅(𝐵)) 𝑅(𝐵) 𝐵0 0 0 1 00 1 1 0 11 0 0 0 01 1 1 1 1

Ocigledno, u svakoj valuaciji je 𝐼𝑣(𝐵) = 𝐼𝑣(𝑞), pa zakljucujemo da trazenopitanje moze da bude „Da li je tacno 𝑅(𝑞)?“ ili „Da li je tacno da bi mi tiodgovorio potvrdno ako bih te pitao da li levi put vodi u glavni grad?“.

7.42. Svakom polju moze se pridruziti jedna iskazna promenljiva — neka jepolju (𝑖, 𝑗) pridruzena promenljiva 𝑉𝑖𝑗 . Za jednu konkretnu pecinu, promenljiva𝑉𝑖𝑗 ima vrednost 1 ako i samo ako je Vumpus na polju (𝑖, 𝑗). Dakle, nepoznatostanje table odgovara jednoj valuaciji. Pravila na osnovu kojih zakljucuje igracamogu se opisati iskaznim formulama. Znanje o okolini u kojoj se igrac nalazi,moze se modelovati sledecim pravilima:

� Pravila za slucaj kada na tekucem polju nema smrada:

𝑅1 : ¬𝑆11 ⇒ ¬𝑉11 ∧ ¬𝑉12 ∧ ¬𝑉21

𝑅2 : ¬𝑆21 ⇒ ¬𝑉11 ∧ ¬𝑉21 ∧ ¬𝑉31 ∧ ¬𝑉22

𝑅3 : ¬𝑆12 ⇒ ¬𝑉11 ∧ ¬𝑉12 ∧ ¬𝑉13 ∧ ¬𝑉22

...

� Pravila za slucaj kada na tekucem polju ima smrada:

𝑅4 : 𝑆12 ⇒ 𝑉11 ∨ 𝑉12 ∨ 𝑉13 ∨ 𝑉22

...

Na pocetnom polju igrac ne oseca ni smrad ni povetarac, pa zna da su polja(2, 1) i (1, 2) bezbedna. Pretpostavimo da igrac prvo ide na polje (2, 1). Tuoseca povetarac i zna da se na polju (3, 1) ili (2, 2) nalazi provalija, pa se vracana polje (1, 1). Posto je na polju (2, 1) upravo bio, istrazuje polje (1, 2). Tu seoseca smrad. Dosadasnja igraceva znanja se mogu se opisati na sledeci nacin(tj. naredne formule su tacne u trazenoj valuaciji):

¬𝑆11,¬𝑆21, 𝑆12

¬𝑃11, 𝑃21,¬𝑃12

Lociranje Vumpusa je sada jednostavno:

1. Na osnovu 𝑅4 i 𝑆12, dobija se (naredna formula je tacna u trazenoj va-luaciji):

𝑉11 ∨ 𝑉12 ∨ 𝑉13 ∨ 𝑉22

Elektro

nsko

izdanje(2017)

304

2. Na osnovu 𝑅1 i ¬𝑆11, dobija se

¬𝑉11 ∧ ¬𝑉12 ∧ ¬𝑉21

3. Odatle sledi da su u trazenoj valuaciji tacne formule:

¬𝑉11, ¬𝑉12, ¬𝑉21

4. Na osnovu 𝑉11 ∨ 𝑉12 ∨ 𝑉13 ∨ 𝑉22 i ¬𝑉11, dobija se

𝑉12 ∨ 𝑉13 ∨ 𝑉22

5. Na osnovu 𝑉12 ∨ 𝑉13 ∨ 𝑉22 i ¬𝑉12, dobija se

𝑉13 ∨ 𝑉22

6. Na osnovu 𝑅2 i ¬𝑆21, dobija se

¬𝑉11 ∧ ¬𝑉21 ∧ ¬𝑉31 ∧ ¬𝑉22

7. Odatle sledi¬𝑉11 ¬𝑉21 ¬𝑉31 ¬𝑉22

8. Na osnovu 𝑉13 ∨ 𝑉22 i ¬𝑉22, dobija se

𝑉13

Dakle, Vumpus se nalazi na polju (1, 3).Zarad primera zapisivanja akcije koju igrac moze da preduzme, bice uvedena

i orijentaciju igraca. Neka cetiri promenljive 𝑂𝑖 oznacavaju orijentaciju igracaka cetiri strane sveta. Na primer, 𝑂1 znaci da je igrac orijentisan prema istoku,𝑂2 prema zapadu, 𝑂3 prema severu i 𝑂4 prema jugu. Kako bi opis orijentacijebio konzistentan, potrebno je zadovoljiti uslov da igrac ne bude orijentisan navise strana odjednom

¬(𝑂1 ∧𝑂2) ∧ ¬(𝑂1 ∧𝑂3) ∧ ¬(𝑂1 ∧𝑂4) ∧ ¬(𝑂2 ∧𝑂3)¬(𝑂2 ∧𝑂4)¬(𝑂3 ∧𝑂4).

S druge strane, potrebno je da igrac bude orijentisan na neku stranu sto seizrazava uslovom

𝑂1 ∨𝑂2 ∨𝑂3 ∨𝑂4.

Sada se akcija odapinjanja strele na susedno polje na kome se nalazi Vumpusmoze zapisati kao:

𝐴11 ∧𝑂1 ∧ 𝑉21 ⇒ 𝑃𝑢𝑐𝑎𝑗

8.2. Neka je ℒ = (Σ,Π, 𝑎𝑟), gde je Σ = {𝑓}, Π = {𝑝} i 𝑎𝑟(𝑓) = 1 i 𝑎𝑟(𝑝) = 1.Odredimo ℒ-strukturu D = (𝐷, 𝐼ℒ) takvu da je ona model date formule, pricemu je 𝐼ℒ(𝑓) = 𝑓𝐼 i 𝐼ℒ(𝑝) = 𝑝𝐼 .

Elektro

nsko

izdanje(2017)

305 13. Resenja zadataka

Neka je 𝐷 = N, 𝑓𝐼(𝑛) = 𝑛 + 2 (gde je 𝑛 ∈ N) i 𝑝𝐼(𝑛) = 1 ako i samo akoje 𝑛 paran broj. Dokazimo da je D = (𝐷, 𝐼ℒ) model formule 𝒜 = (∀𝑥)(𝑝(𝑥) ⇒𝑝(𝑓(𝑥)).

Dokazimo da je 𝐼𝑣(𝒜) = 1 za svaku valuaciju 𝑣. Pretpostavimo suprotno– pretpostavimo da postoji valuacija 𝑣 takva da je 𝐼𝑣(𝒜) = 0. Na osnovudefinicije 8.9, iz 𝐼𝑣(𝒜) = 0 sledi da postoji valuacija 𝑤 takva da je 𝑣 ∼𝑥 𝑤 i𝐼𝑤(𝑝(𝑥) ⇒ 𝑝(𝑓(𝑥))) = 0. Na osnovu iste definicije, odatle sledi da je 𝐼𝑤(𝑝(𝑥)) =1 i 𝐼𝑤(𝑝(𝑓(𝑥))) = 0. Neka je 𝑤(𝑥) = 𝑛, gde je 𝑛 element skupa N. Tada je1 = 𝐼𝑤(𝑝(𝑥)) = 𝑝𝐼(𝑛) i 0 = 𝐼𝑤(𝑝(𝑓(𝑥))) = 𝑝𝐼(𝑓𝐼(𝑛)) = 𝑝𝐼(𝑛 + 2), odakle sledida je 𝑛 paran broj, a 𝑛 + 2 neparan, sto je netacno za svaki prirodan broj 𝑛.Dakle, 𝐼𝑣(𝒜) = 1 za svaku valuaciju 𝑣, tj. ℒ-struktura D = (N, 𝐼ℒ) je modeldate formule 𝒜.

8.3. Neka je 𝑣 proizvoljna valuacija. ℒ-struktura D je model date formule akoje 𝐼𝑣((∀𝑥)(𝑝(𝑥, 𝑓(𝑥)) ⇒ 𝑝(𝑓(𝑥), 𝑥)) = 1, tj. ako za svaku valuaciju 𝑤 takvu daje 𝑣 ∼𝑥 𝑤 vazi 𝐼𝑤(𝑝(𝑥, 𝑓(𝑥)) ⇒ 𝑝(𝑓(𝑥), 𝑥)) = 1.

Dovoljno je razmatrati mogucnosti 𝑤(𝑥) = 𝑎, 𝑤(𝑥) = 𝑏 i 𝑤(𝑥) = 𝑐. Vredno-sti 𝐼𝑤(𝑝(𝑥, 𝑓(𝑥)) ⇒ 𝑝(𝑓(𝑥), 𝑥)) = 1 mogu tada biti prikazane i u vidu tablice:

𝑤(𝑥) 𝑓𝐼(𝑤(𝑥)) 𝑝𝐼(𝑤(𝑥), 𝑓𝐼(𝑤(𝑥))) 𝑝𝐼(𝑓𝐼(𝑤(𝑥)), 𝑤(𝑥)) 𝐼𝑤(𝑝(𝑥, 𝑓(𝑥)) ⇒ 𝑝(𝑓(𝑥), 𝑥))𝑎 𝑏 1 1 1𝑏 𝑎 1 1 1𝑐 𝑎 0 0 1

Dakle, za proizvoljnu valuaciju 𝑣 je 𝐼𝑣(∀𝑥)(𝑝(𝑥, 𝑓(𝑥)) ⇒ 𝑝(𝑓(𝑥), 𝑥)) = 1, paje D model formule (∀𝑥)(𝑝(𝑥, 𝑓(𝑥)) ⇒ 𝑝(𝑓(𝑥), 𝑥)).

8.4. Neka je ℒ = (Σ,Π, 𝑎𝑟), Σ = {}, Π = {𝑝} i 𝑎𝑟(𝑝) = 2, 𝐷 = {𝑎, 𝑏} i neka je𝐼ℒ(𝑝) = 𝑝𝐼 . Da bi D = (𝐷, 𝐼ℒ) bio model formule 𝒜 treba da za proizvoljnuvaluaciju 𝑣 vazi 𝐼𝑣((∀𝑥)(∃𝑦)(𝑝(𝑥, 𝑦) ⇒ ¬𝑝(𝑦, 𝑥))) = 1, tj. za svaku valuaciju𝑤 takvu da je 𝑣 ∼𝑥 𝑤 vazi 𝐼𝑤((∃𝑦)(𝑝(𝑥, 𝑦) ⇒ ¬𝑝(𝑦, 𝑥))) = 1. Postoje dvemogucnosti: 𝑤(𝑥) = 𝑎 i 𝑤(𝑥) = 𝑏 i za obe treba da vazi 𝐼𝑤((∃𝑦)(𝑝(𝑥, 𝑦) ⇒¬𝑝(𝑦, 𝑥))) = 1. Vazi 𝐼𝑤((∃𝑦)(𝑝(𝑥, 𝑦) ⇒ ¬𝑝(𝑦, 𝑥))) = 1 ako postoji valuacija𝑤′ takva da je 𝑤 ∼𝑦 𝑤′ i 𝐼𝑤′(𝑝(𝑥, 𝑦) ⇒ ¬𝑝(𝑦, 𝑥)) = 1. Za svaku valuaciju 𝑤postoje dve takve valuacije 𝑤’ — jedna, za koju vazi 𝑤′(𝑦) = 𝑎 i druga, za kojuvazi 𝑤′(𝑦) = 𝑏 (pri tome vazi i 𝑤′(𝑥) = 𝑤(𝑥)). Vazi 𝐼𝑤′(𝑝(𝑥, 𝑦) ⇒ ¬𝑝(𝑦, 𝑥)) = 1ako je 𝐼𝑤′(𝑝(𝑥, 𝑦)) = 0 ili 𝐼𝑤′(¬𝑝(𝑦, 𝑥)) = 1, tj. ako je 𝐼𝑤′(𝑝(𝑥, 𝑦)) = 0 ili𝐼𝑤′(𝑝(𝑦, 𝑥)) = 0. Dakle, vazi:

(𝑤(𝑥) = 𝑎 i 𝐼𝑤((∃𝑦)(𝑝(𝑥, 𝑦) ⇒ ¬𝑝(𝑦, 𝑥))) = 1) i (𝑤(𝑥) = 𝑏 i 𝐼𝑤((∃𝑦)(𝑝(𝑥, 𝑦) ⇒¬𝑝(𝑦, 𝑥))) = 1)

odakle sledi

(𝑤(𝑥) = 𝑎 i ((𝑤′(𝑦) = 𝑎 i 𝐼𝑤′(𝑝(𝑥, 𝑦) ⇒ ¬𝑝(𝑦, 𝑥)) = 1) ili (𝑤′(𝑦) = 𝑏i 𝐼𝑤′(𝑝(𝑥, 𝑦) ⇒ ¬𝑝(𝑦, 𝑥)) = 1))) i (𝑤(𝑥) = 𝑏 i ((𝑤′(𝑦) = 𝑎 i 𝐼𝑤′(𝑝(𝑥, 𝑦) ⇒¬𝑝(𝑦, 𝑥)) = 1) ili (𝑤′(𝑦) = 𝑏 i 𝐼𝑤′(𝑝(𝑥, 𝑦) ⇒ ¬𝑝(𝑦, 𝑥)) = 1)))

odakle sledi

Elektro

nsko

izdanje(2017)

306

((𝑤(𝑥) = 𝑎 i 𝑤′(𝑦) = 𝑎 i 𝐼𝑤′(𝑝(𝑥, 𝑦) ⇒ ¬𝑝(𝑦, 𝑥)) = 1) ili (𝑤(𝑥) = 𝑎 i 𝑤′(𝑦) =𝑏 i 𝐼𝑤′(𝑝(𝑥, 𝑦) ⇒ ¬𝑝(𝑦, 𝑥)) = 1)) i ((𝑤(𝑥) = 𝑏 i 𝑤′(𝑦) = 𝑎 i 𝐼𝑤′(𝑝(𝑥, 𝑦) ⇒¬𝑝(𝑦, 𝑥)) = 1) ili (𝑤(𝑥) = 𝑏 i 𝑤′(𝑦) = 𝑏 i 𝐼𝑤′(𝑝(𝑥, 𝑦) ⇒ ¬𝑝(𝑦, 𝑥)) = 1))odakle sledi

((𝑤′(𝑥) = 𝑎 i 𝑤′(𝑦) = 𝑎 i 𝐼𝑤′(𝑝(𝑥, 𝑦) ⇒ ¬𝑝(𝑦, 𝑥)) = 1) ili (𝑤′(𝑥) = 𝑎i 𝑤′(𝑦) = 𝑏 i 𝐼𝑤′(𝑝(𝑥, 𝑦) ⇒ ¬𝑝(𝑦, 𝑥)) = 1)) i ((𝑤′(𝑥) = 𝑏 i 𝑤′(𝑦) = 𝑎i 𝐼𝑤′(𝑝(𝑥, 𝑦) ⇒ ¬𝑝(𝑦, 𝑥)) = 1) ili (𝑤′(𝑥) = 𝑏 i 𝑤′(𝑦) = 𝑏 i 𝐼𝑤′(𝑝(𝑥, 𝑦) ⇒¬𝑝(𝑦, 𝑥)) = 1))odakle sledi

((𝑤′(𝑥) = 𝑎 i 𝑤′(𝑦) = 𝑎 i (𝐼𝑤′(𝑝(𝑥, 𝑦)) = 0 ili 𝐼𝑤′(𝑝(𝑦, 𝑥)) = 0)) ili (𝑤′(𝑥) = 𝑎i 𝑤′(𝑦) = 𝑏 i (𝐼𝑤′(𝑝(𝑥, 𝑦)) = 0 ili 𝐼𝑤′(𝑝(𝑦, 𝑥)) = 0))) i ((𝑤′(𝑥) = 𝑏 i 𝑤′(𝑦) = 𝑎 i(𝐼𝑤′(𝑝(𝑥, 𝑦)) = 0 ili 𝐼𝑤′(𝑝(𝑦, 𝑥)) = 0)) ili (𝑤′(𝑥) = 𝑏 i 𝑤′(𝑦) = 𝑏 i (𝐼𝑤′(𝑝(𝑥, 𝑦)) =0 ili 𝐼𝑤′(𝑝(𝑦, 𝑥)) = 0)))odakle sledi

((𝑝𝐼(𝑎, 𝑎)) = 0 ili 𝑝𝐼(𝑎, 𝑎)) = 0) ili (𝑝𝐼(𝑎, 𝑏) = 0 ili 𝑝𝐼(𝑏, 𝑎) = 0)) i ((𝑝𝐼(𝑏, 𝑎)) =0 ili 𝑝𝐼(𝑎, 𝑏) = 0) ili (𝑝𝐼(𝑏, 𝑏) = 0 ili 𝑝𝐼(𝑏, 𝑏) = 0))odakle sledi

(𝑝𝐼(𝑎, 𝑎)) = 0 ili 𝑝𝐼(𝑎, 𝑏) = 0 ili 𝑝𝐼(𝑏, 𝑎) = 0) i (𝑝𝐼(𝑏, 𝑎)) = 0 ili 𝑝𝐼(𝑎, 𝑏) = 0ili 𝑝𝐼(𝑏, 𝑏) = 0)

Da bi ℒ-struktura D bila model za datu formulu mora da vazi (𝑝𝐼(𝑎, 𝑎)) = 0ili 𝑝𝐼(𝑎, 𝑏) = 0 ili 𝑝𝐼(𝑏, 𝑎) = 0) i (𝑝𝐼(𝑏, 𝑎)) = 0 ili 𝑝𝐼(𝑎, 𝑏) = 0 ili 𝑝𝐼(𝑏, 𝑏) = 0).Neposredno se moze proveriti da ima 13 (od ukupno 16) funkcija 𝑝𝐼 : 𝐷2 ↦→{0, 1} koje zadovoljavaju taj uslov. Svakoj od tih funkcija odgovara po jedantrazeni model (do na izomorfizam).

8.5. Neka je ℒ = (Σ,Π, 𝑎𝑟), pri cemu je Σ = {𝑓, 𝑎}, Π = {𝑝}, 𝑎𝑟(𝑓) = 2,𝑎𝑟(𝑎) = 0 i 𝑎𝑟(𝑝) = 2.

Neka je 𝐷 = Z, 𝐼ℒ(𝑓) = 𝑓𝐼 , 𝐼ℒ(𝑎) = 𝑎𝐼 i 𝐼ℒ(𝑝) = 𝑝𝐼 , pri cemu je𝑓𝐼(𝑧1, 𝑧2) = 𝑧1 + 𝑧2 (𝑧1, 𝑧2 ∈ Z), 𝑎𝐼 = 0 i 𝑝𝐼(𝑧1, 𝑧2) = 1 ako i samo akoje 𝑧1 = 𝑧2 (𝑧1, 𝑧2 ∈ Z). Dokazimo da je D = (𝐷, 𝐼ℒ) model date formule.Dokazimo da za proizvoljnu valuaciju 𝑣 vazi 𝐼𝑣((∀𝑥)(∃𝑦)𝑝(𝑓(𝑥, 𝑦), 𝑎)) = 1.Pretpostavimo suprotno — pretpostavimo da postoji valuacija 𝑣 za koju vazi𝐼𝑣((∀𝑥)(∃𝑦)𝑝(𝑓(𝑥, 𝑦), 𝑎)) = 0. Tada, na osnovu definicije 8.9, sledi da postojivaluacija 𝑤 takva da je 𝑤 ∼𝑥 𝑣 i 𝐼𝑤((∃𝑦)𝑝(𝑓(𝑥, 𝑦), 𝑎)) = 0 (neka je u toj va-luaciji 𝑤(𝑥) = 𝑧, 𝑧 ∈ Z). To dalje znaci da za svaku valuaciju 𝑤′ takvu daje 𝑤′ ∼𝑦 𝑤 (dakle, vazi 𝑤′(𝑥) = 𝑧) i vazi 𝐼𝑤′(𝑝(𝑓(𝑥, 𝑦), 𝑎)) = 0. Me.utim,u valuaciji u kojoj je 𝑤′(𝑦) = −𝑧 vazi 𝐼𝑤′(𝑝(𝑓(𝑥, 𝑦), 𝑎)) = 𝑝𝐼(𝑓𝐼(𝑧,−𝑧), 0) =𝑝𝐼(𝑧 + (−𝑧), 0) = 𝑝𝐼(0, 0) = 1, sto je u kontradikciji sa 𝐼𝑤′(𝑝(𝑓(𝑥, 𝑦), 𝑎)) = 0.Dakle, polazna pretpostavka je bila pogresna, te sledi da za proizvoljnu va-luaciju 𝑣 vazi 𝐼𝑣((∀𝑥)(∃𝑦)𝑝(𝑓(𝑥, 𝑦), 𝑎)) = 1, tj. ℒ-struktura D je model dateformule.

Neka je 𝐷 = N, 𝐼ℒ(𝑓) = 𝑓𝐼 , 𝐼ℒ(𝑎) = 𝑎𝐼 i 𝐼ℒ(𝑝) = 𝑝𝐼 , pri cemu je𝑓𝐼(𝑛1, 𝑛2) = 𝑛1 + 𝑛2 (𝑛1, 𝑛2 ∈ N), 𝑎𝐼 = 0 i 𝑝𝐼(𝑛1, 𝑛2) = 1 ako i samo ako je𝑛1 = 𝑛2 (𝑛1, 𝑛2 ∈ N). Dokazimo da je D = (𝐷, 𝐼ℒ) kontramodel date formule.Dokazimo da postoji valuacija 𝑣 za koju vazi 𝐼𝑣((∀𝑥)(∃𝑦)𝑝(𝑓(𝑥, 𝑦), 𝑎)) = 0.

Elektro

nsko

izdanje(2017)

307 13. Resenja zadataka

Pretpostavimo suprotno — da za proizvoljnu valuaciju 𝑣 vazi 𝐼𝑣((∀𝑥)(∃𝑦)𝑝(𝑓(𝑥, 𝑦), 𝑎)) =1. Tada, na osnovu definicije 8.9, sledi da za svaku valuaciju 𝑤 takvu daje 𝑤 ∼𝑥 𝑣 vazi 𝐼𝑤((∃𝑦)𝑝(𝑓(𝑥, 𝑦), 𝑎)) = 1. Neka je 𝑤 proizvoljna valuacija ineka je 𝑤(𝑥) = 𝑛, gde je 𝑛 ∈ N i 𝑛 > 0. Iz 𝐼𝑤((∃𝑦)𝑝(𝑓(𝑥, 𝑦), 𝑎)) = 1 sledida postoji valuacija 𝑤′ takva da je 𝑤′ ∼𝑦 𝑤 (dakle, vazi 𝑤′(𝑥) = 𝑛) i vazi𝐼𝑤′(𝑝(𝑓(𝑥, 𝑦), 𝑎)) = 1. Pretpostavimo da je 𝑤′(𝑦) = 𝑚, 𝑚 ∈ N. Tada vazi𝐼𝑤′(𝑝(𝑓(𝑥, 𝑦), 𝑎)) = 𝑝𝐼(𝑓𝐼(𝑛,𝑚), 0) = 𝑝𝐼(𝑛 + 𝑚, 0). Me.utim, 𝑝𝐼(𝑛 + 𝑚, 0) jejednako 1 samo ako je 𝑛+𝑚 = 0, sto nije tacno ni za koju vrednost 𝑚, 𝑚 ∈ N(jer je 𝑛 > 0). Dakle, polazna pretpostavka je bila pogresna, te sledi da po-stoji valuacija 𝑣 za koju vazi 𝐼𝑣((∀𝑥)(∃𝑦)𝑝(𝑓(𝑥, 𝑦), 𝑎)) = 0, tj. ℒ-struktura Dje kontramodel date formule.

8.6. Neka je ℒ = (Σ,Π, 𝑎𝑟), pri cemu je Σ = {𝑓}, Π = {𝑝}, 𝑎𝑟(𝑓) = 1,𝑎𝑟(𝑝) = 2.

(a) Neka je D = (N, 𝐼ℒ) i 𝐼ℒ(𝑓) = 𝑓𝐼 , 𝐼ℒ(𝑝) = 𝑝𝐼 , pri cemu je 𝑓𝐼(𝑛) =

𝑛 + 1 i 𝑝𝐼(𝑛1, 𝑛2) = 1 ako i samo ako je 𝑛1 < 𝑛2. Dokazimo da je ℒ-struktura D model date formule 𝒜, tj. dokazimo da za svaku valuaciju𝑣 vazi 𝐼𝑣(𝒜) = 1. Pretpostavimo suprotno — pretpostavimo da postojivaluacija 𝑣 takva da je 𝐼𝑣(𝒜) = 0. Na osnovu definicije 8.9, sledi da𝐼𝑣((∀𝑥)(𝑝(𝑥, 𝑓(𝑥))∧¬𝑝(𝑥, 𝑥))) = 0 ili 𝐼𝑣((∀𝑥)(∀𝑦)(∀𝑧)(𝑝(𝑥, 𝑦)∧ 𝑝(𝑦, 𝑧) ⇒𝑝(𝑥, 𝑧))) = 0.

– Pretpostavimo da je 𝐼𝑣(∀𝑥)(𝑝(𝑥, 𝑓(𝑥)) ∧ ¬𝑝(𝑥, 𝑥)) = 0. Odatle sledida postoji valuacija 𝑤 takva da je 𝑤 ∼𝑥 𝑣 takva da je 𝐼𝑤((𝑝(𝑥, 𝑓(𝑥))∧¬𝑝(𝑥, 𝑥))) = 0. Pretpostavimo da je u toj valuaciji 𝑤(𝑥) = 𝑛, gde je𝑛 ∈ N. Iz 𝐼𝑤((𝑝(𝑥, 𝑓(𝑥))∧¬𝑝(𝑥, 𝑥))) = 0 sledi da je 𝐼𝑤(𝑝(𝑥, 𝑓(𝑥))) =0 ili 𝐼𝑤(¬𝑝(𝑥, 𝑥)) = 0, tj. da je 𝑝𝐼(𝑤(𝑥), 𝑓𝐼(𝑤(𝑥))) = 0 ili 𝑝𝐼(𝑤(𝑥), 𝑤(𝑥))= 1, tj. da nije 𝑛 < 𝑛 + 1 ili da je 𝑛 < 𝑛, sto nije ispunjeno ni zajedan broj 𝑛, 𝑛 ∈ N.

– Pretpostavimo da je 𝐼𝑣((∀𝑥)(∀𝑦)(∀𝑧)(𝑝(𝑥, 𝑦) ∧ 𝑝(𝑦, 𝑧) ⇒ 𝑝(𝑥, 𝑧))) =0. Odatle sledi da postoji valuacija 𝑤 takva da je 𝑤 ∼𝑥 𝑣 takva daje 𝐼𝑤((∀𝑦)(∀𝑧)(𝑝(𝑥, 𝑦) ∧ 𝑝(𝑦, 𝑧) ⇒ 𝑝(𝑥, 𝑧))) = 0. Neka je 𝑤(𝑥) = 𝑛1.Iz 𝐼𝑤((∀𝑦)(∀𝑧)(𝑝(𝑥, 𝑦)∧𝑝(𝑦, 𝑧) ⇒ 𝑝(𝑥, 𝑧))) = 0 sledi da postoji valu-acija 𝑤′ takva da je 𝑤′ ∼𝑦 𝑤 (dakle, vazi 𝑤′(𝑥) = 𝑤(𝑥) = 𝑛1) takvada je 𝐼𝑤′((∀𝑧)(𝑝(𝑥, 𝑦) ∧ 𝑝(𝑦, 𝑧) ⇒ 𝑝(𝑥, 𝑧))) = 0. Neka je 𝑤′(𝑦) = 𝑛2.Iz 𝐼𝑤′((∀𝑧)(𝑝(𝑥, 𝑦) ∧ 𝑝(𝑦, 𝑧) ⇒ 𝑝(𝑥, 𝑧))) = 0 sledi da postoji valua-cija 𝑤′′ takva da je 𝑤′′ ∼𝑧 𝑤′ (dakle, vazi 𝑤′′(𝑥) = 𝑤′(𝑥) = 𝑤(𝑥) =𝑛1 i 𝑤′′(𝑦) = 𝑤′(𝑦) = 𝑛2) takva da je 𝐼𝑤′′((𝑝(𝑥, 𝑦) ∧ 𝑝(𝑦, 𝑧) ⇒𝑝(𝑥, 𝑧))) = 0. Neka je 𝑤′′(𝑧) = 𝑛3. Iz 𝐼𝑤′′((𝑝(𝑥, 𝑦) ∧ 𝑝(𝑦, 𝑧) ⇒𝑝(𝑥, 𝑧))) = 0 sledi da je 𝐼𝑤′′(𝑝(𝑥, 𝑦) ∧ 𝑝(𝑦, 𝑧)) = 1 i 𝐼𝑤′′(𝑝(𝑥, 𝑧)) = 0i, dalje, 𝐼𝑤′′(𝑝(𝑥, 𝑦)) = 1, 𝐼𝑤′′(𝑝(𝑦, 𝑧)) = 1 i 𝐼𝑤′′(𝑝(𝑥, 𝑧)) = 0,tj. 𝑝𝐼(𝑤

′′(𝑥), 𝑤′′(𝑦)) = 1, 𝑝𝐼(𝑤′′(𝑦), 𝑤′′(𝑧)) = 1 i 𝑝𝐼(𝑤

′′(𝑥), 𝑤′′(𝑧)) =0. Odatle sledi 𝑝𝐼(𝑛1, 𝑛2) = 1, 𝑝𝐼(𝑛2, 𝑛3) = 1 i 𝑝𝐼(𝑛1, 𝑛3) = 0 i,

Elektro

nsko

izdanje(2017)

308

dalje, sledi da je tacno 𝑛1 < 𝑛2, 𝑛2 < 𝑛3 i da nije tacno 𝑛1 < 𝑛3.Me.utim, to nije ispunjeno ni za koja tri prirodna broja 𝑛1, 𝑛2, 𝑛3.

Dakle, pretpostavka je bila pogresna, te sledi da za svaku valuaciju 𝑣 vazi𝐼𝑣(𝒜) = 1, tj. ℒ-struktura D je model formule 𝒜.

(b) Neka je D = ({𝑎}, 𝐼ℒ) i 𝐼ℒ(𝑓) = 𝑓𝐼 , 𝐼ℒ(𝑝) = 𝑝𝐼 , pri cemu je 𝑓𝐼(𝑎) = 𝑎

i 𝑝𝐼(𝑎, 𝑎) = 1. Dokazimo da je D kontramodel za formulu 𝒜. Pret-postavimo suprotno — pretpostavimo da za proizvoljnu valuaciju 𝑣 vazida je 𝐼𝑣(𝒜) = 1. Tada je, na osnovu definicije 8.9, 𝐼𝑣((∀𝑥)(𝑝(𝑥, 𝑓(𝑥)) ∧¬𝑝(𝑥, 𝑥))) = 1 i 𝐼𝑣((∀𝑥)(∀𝑦)(∀𝑧)(𝑝(𝑥, 𝑦) ∧ 𝑝(𝑦, 𝑧) ⇒ 𝑝(𝑥, 𝑧))) = 1. Iz𝐼𝑣((∀𝑥)(𝑝(𝑥, 𝑓(𝑥)) ∧ ¬𝑝(𝑥, 𝑥))) = 1 sledi da za proizvoljnu valuaciju 𝑤takvu da je 𝑤 ∼𝑥 𝑣 vazi 𝐼𝑤((𝑝(𝑥, 𝑓(𝑥)) ∧ ¬𝑝(𝑥, 𝑥))) = 1. Mora da je𝑤(𝑥) = 𝑎 (jer je 𝐷 = {𝑎}), pa je 𝐼𝑤(𝑝(𝑥, 𝑓(𝑥))) = 1 i 𝐼𝑤(¬𝑝(𝑥, 𝑥)) =1. Iz 𝐼𝑤(¬𝑝(𝑥, 𝑥)) = 1 sledi 𝐼𝑤(𝑝(𝑥, 𝑥)) = 0, tj. 𝑝𝐼(𝑤(𝑥), 𝑤(𝑥)) = 0,tj. 𝑝𝐼(𝑎, 𝑎) = 0, sto je netacno, pa sledi da je pretpostavka bila pogresna,odakle dalje sledi da postoji valuacija 𝑣 takva da je 𝐼𝑣(𝒜) = 0, tj. sledida je D kontramodel za datu formulu 𝒜.

(c) Pretpostavimo da je ℒ-struktura D = (𝐷, 𝐼ℒ) model date formule 𝒜 ipretpostavimo da je skup 𝐷 konacan, tj. pretpostavimo da je 𝐷 = {𝑑1,𝑑2, . . . , 𝑑𝑚}.Neka je 𝐼ℒ(𝑓) = 𝑓𝐼 i 𝐼ℒ(𝑝) = 𝑝𝐼 . Neka je 𝑑′𝑖 odre.en na sledeci nacin:

– neka je 𝑑′0 proizvoljan element skupa 𝐷;

– neka je 𝑑′𝑖+1 = 𝑓𝐼(𝑑′𝑖) za 𝑖 ≥ 0.

Skup 𝐷 je konacan, pa u nizu 𝑑′𝑖, 𝑖 = 0, 1, 2, . . ., mora da postoji barjedan element koji se ponavlja, tj. postoje vrednosti 𝑗 i 𝑘 (𝑗 < 𝑘) takveda je 𝑑′𝑗 = 𝑑′𝑘.

Na osnovu pretpostavke, D je model za formulu 𝒜, pa za proizvoljnuvaluaciju 𝑣 vazi 𝐼𝑣(𝒜) = 1. Odatle, na osnovu definicije 8.9, sledi da vazi𝐼𝑣((∀𝑥)(𝑝(𝑥, 𝑓(𝑥)) ∧ ¬𝑝(𝑥, 𝑥))) = 1 i 𝐼𝑣((∀𝑥)(∀𝑦)(∀𝑧)(𝑝(𝑥, 𝑦) ∧ 𝑝(𝑦, 𝑧) ⇒𝑝(𝑥, 𝑧))) = 1.

Iz 𝐼𝑣((∀𝑥)(𝑝(𝑥, 𝑓(𝑥)) ∧ ¬𝑝(𝑥, 𝑥))) = 1 sledi da za proizvoljnu valuaciju 𝑤takvu da je 𝑤 ∼𝑥 𝑣 vazi 𝐼𝑤(𝑝(𝑥, 𝑓(𝑥)) ∧ ¬𝑝(𝑥, 𝑥)) = 1. Odatle dalje sledi𝑝𝐼(𝑤(𝑥), 𝑓𝐼(𝑤(𝑥))) = 1 i 𝑝𝐼(𝑤(𝑥), 𝑤(𝑥)) = 0. Valuacija 𝑤 je proizvoljna,pa je mozemo odabrati tako da vazi 𝑤(𝑥) = 𝑑′𝑖. Tada vazi 𝑝𝐼(𝑑

′𝑖, 𝑓𝐼(𝑑

′𝑖)) =

1 i 𝑝𝐼(𝑑′𝑖, 𝑑

′𝑖) = 0, tj. za svako 𝑖 (𝑖 = 0, 1, 2, . . .) vazi 𝑝𝐼(𝑑

′𝑖, 𝑑

′𝑖+1) = 1 i

𝑝𝐼(𝑑′𝑖, 𝑑

′𝑖) = 0.

S druge strane, iz 𝐼𝑣((∀𝑥)(∀𝑦)(∀𝑧)(𝑝(𝑥, 𝑦)∧𝑝(𝑦, 𝑧) ⇒ 𝑝(𝑥, 𝑧))) = 1 sledi daza proizvoljnu valuaciju 𝑤 takvu da je 𝑤 ∼𝑥 𝑣 vazi 𝐼𝑤((∀𝑦)(∀𝑧)(𝑝(𝑥, 𝑦)∧𝑝(𝑦, 𝑧) ⇒ 𝑝(𝑥, 𝑧))) = 1. Kako je 𝑤 proizvoljna valuacija, mozemo je oda-brati tako da vazi 𝑤(𝑥) = 𝑑′. Iz 𝐼𝑤((∀𝑦)(∀𝑧)(𝑝(𝑥, 𝑦) ∧ 𝑝(𝑦, 𝑧) ⇒ 𝑝(𝑥, 𝑧)))= 1 sledi da za proizvoljnu valuaciju 𝑤′ takvu da je 𝑤′ ∼𝑦 𝑤 (dakle,

Elektro

nsko

izdanje(2017)

309 13. Resenja zadataka

vazi 𝑤′(𝑥) = 𝑤(𝑥) = 𝑑′) vazi 𝐼𝑤′((∀𝑧)(𝑝(𝑥, 𝑦) ∧ 𝑝(𝑦, 𝑧) ⇒ 𝑝(𝑥, 𝑧))) =1. Kako je 𝑤′ proizvoljna valuacija za koju vazi 𝑤′ ∼𝑦 𝑤, mozemoje odabrati tako da vazi 𝑤′(𝑦) = 𝑑′′. Iz 𝐼𝑤′((∀𝑧)(𝑝(𝑥, 𝑦) ∧ 𝑝(𝑦, 𝑧) ⇒𝑝(𝑥, 𝑧))) = 1 sledi da za proizvoljnu valuaciju 𝑤′′ takvu da je 𝑤′′ ∼𝑧 𝑤′

(dakle, vazi 𝑤′′(𝑥) = 𝑤′(𝑥) = 𝑤(𝑥) = 𝑑′ i 𝑤′′(𝑦) = 𝑤′(𝑦) = 𝑑′′) vazi𝐼𝑤′′(𝑝(𝑥, 𝑦) ∧ 𝑝(𝑦, 𝑧) ⇒ 𝑝(𝑥, 𝑧)) = 1. Kako je 𝑤′′ proizvoljna valuacija zakoju vazi 𝑤′′ ∼𝑧 𝑤′, mozemo je odabrati tako da vazi 𝑤′′(𝑧) = 𝑑′′′. Iz𝐼𝑤′′(𝑝(𝑥, 𝑦) ∧ 𝑝(𝑦, 𝑧) ⇒ 𝑝(𝑥, 𝑧)) = 1 sledi da je 𝐼𝑤′′(𝑝(𝑥, 𝑦) ∧ 𝑝(𝑦, 𝑧)) = 0ili 𝐼𝑤′′(𝑝(𝑥, 𝑧)) = 1, tj. da vazi 𝐼𝑤′′(𝑝(𝑥, 𝑦)) = 0 ili 𝐼𝑤′′(𝑝(𝑦, 𝑧)) = 0 ili𝐼𝑤′′(𝑝(𝑥, 𝑧)) = 1, tj. da vazi 𝑝𝐼(𝑤

′′(𝑥), 𝑤′′(𝑦)) = 0 ili 𝑝𝐼(𝑤′′(𝑦), 𝑤′′(𝑧)) = 0

ili 𝑝𝐼(𝑤′′(𝑥), 𝑤′′(𝑧)) = 1. Dakle, za svaka tri elementa 𝑑′, 𝑑′′, 𝑑′′′ skupa 𝐷

vazi 𝑝𝐼(𝑑′, 𝑑′′) = 0 ili 𝑝𝐼(𝑑

′′, 𝑑′′′) = 0 ili 𝑝𝐼(𝑑′, 𝑑′′′) = 1. Vec smo dokazali

da za svako 𝑖 (𝑖 = 0, 1, 2, . . .) vazi 𝑝𝐼(𝑑′𝑖, 𝑑

′𝑖+1) = 1, odakle sledi da za

𝑑′ = 𝑑′𝑖, 𝑑′′ = 𝑑𝑖+1, 𝑑

′′′ = 𝑑𝑖+2 (za proizvoljno 𝑖, 𝑖 = 0, 1, 2, . . .) mora davazi 𝑝𝐼(𝑑

′, 𝑑′′′) = 1, tj. 𝑝𝐼(𝑑′𝑖, 𝑑

′𝑖+2) = 1. Analogno, jednostavno se poka-

zuje matematickom indukcijom da vazi 𝑝𝐼(𝑑′𝑖, 𝑑

′𝑖+𝑙) = 1 za proizvoljno 𝑖,

𝑖 = 0, 1, 2, . . . i proizvoljno 𝑙, 𝑙 = 1, 2, . . .. Dakle, vazice i 𝑝𝐼(𝑑′𝑗 , 𝑑

′𝑘) = 1,

tj. 𝑝𝐼(𝑑′𝑗 , 𝑑

′𝑗) = 1 (jer je 𝑑′𝑗 = 𝑑′𝑘). Me.utim, vec smo pokazali da za svako 𝑖

(𝑖 = 0, 1, 2, . . .) vazi 𝑝𝐼(𝑑′𝑖, 𝑑

′𝑖) = 0, sto je u kontradikciji sa 𝑝𝐼(𝑑

′𝑗 , 𝑑

′𝑗) = 1.

Dakle, polazna pretpostavka je bila pogresna, odakle sledi da za datuformulu 𝒜 ne postoji model koji ima konacan domen.

8.7. Neka je D proizvoljna ℒ-struktura, pri cemu za signaturu ℒ = (Σ,Π, 𝑎𝑟)vazi 𝑝 ∈ Π i 𝑎𝑟(𝑝) = 1 i neka je 𝑉 proizvoljan skup promenljivih takav da je𝑥, 𝑦, 𝑧 ∈ 𝑉 . Neka je 𝐼ℒ(𝑝) = 𝑝𝐼 (gde je 𝑝𝐼 funkcija iz 𝐷 u skup {0, 1}) i nekaje 𝑣 proizvoljna valuacija. Dokazimo da vazi 𝐼𝑣((∀𝑥)(∀𝑦)(∃𝑧)(𝑝(𝑥) ∧ 𝑝(𝑦) ⇔𝑝(𝑧))) = 1. Pretpostavimo suprotno — da vazi 𝐼𝑣((∀𝑥)(∀𝑦)(∃𝑧)(𝑝(𝑥) ∧ 𝑝(𝑦) ⇔𝑝(𝑧))) = 0. To znaci da postoji valuacija 𝑣𝑥 takva da je 𝑣𝑥 ∼𝑥 𝑣 (neka je𝑣𝑥(𝑥) = 𝑑𝑥) i 𝐼𝑣𝑥((∀𝑦)(∃𝑧)(𝑝(𝑥) ∧ 𝑝(𝑦) ⇔ 𝑝(𝑧))) = 0. To znaci da postojivaluacija 𝑣𝑦 takva da je 𝑣𝑦 ∼𝑦 𝑣𝑥 (vazi 𝑣𝑦(𝑥) = 𝑣𝑥(𝑥) = 𝑑𝑥; neka je 𝑣𝑦(𝑦) = 𝑑𝑦)i 𝐼𝑣𝑦 ((∃𝑧)(𝑝(𝑥) ∧ 𝑝(𝑦) ⇔ 𝑝(𝑧))) = 0. To znaci da za svaku valuaciju 𝑣𝑧 takvuda je 𝑣𝑧 ∼𝑧 𝑣𝑦 vazi 𝐼𝑣𝑧 (𝑝(𝑥)∧ 𝑝(𝑦) ⇔ 𝑝(𝑧)) = 0. Odaberimo valuaciju 𝑣𝑧 takvuda je 𝑣𝑧 ∼𝑧 𝑣𝑦 (vazi 𝑣𝑧(𝑥) = 𝑣𝑦(𝑥) = 𝑑𝑥 i 𝑣𝑧(𝑦) = 𝑣𝑦(𝑦) = 𝑑𝑦) na sledeci nacin:

(a) ako je 𝑝𝐼(𝑑𝑥) = 1 i 𝑝𝐼(𝑑𝑦) = 1, neka je 𝑣𝑧(𝑧) = 𝑑𝑥;

(b) ako je 𝑝𝐼(𝑑𝑥) = 0, neka je 𝑣𝑧(𝑧) = 𝑑𝑥;

(c) ako je 𝑝𝐼(𝑑𝑦) = 0, neka je 𝑣𝑧(𝑧) = 𝑑𝑦.

U slucaju (a), vazi 𝐼𝑣𝑧 (𝑝(𝑥)) = 1, 𝐼𝑣𝑧 (𝑝(𝑦)) = 1, 𝐼𝑣𝑧 (𝑝(𝑧)) = 1, odakle sledi𝐼𝑣𝑧 (𝑝(𝑥) ∧ 𝑝(𝑦)) = 1 i 𝐼𝑣𝑧 (𝑝(𝑥) ∧ 𝑝(𝑦) ⇔ 𝑝(𝑧)) = 1, sto je u suprotnosti sa𝐼𝑣𝑧 (𝑝(𝑥) ∧ 𝑝(𝑦) ⇔ 𝑝(𝑧)) = 0. U slucaju (b), vazi 𝐼𝑣𝑧 (𝑝(𝑥)) = 0, 𝐼𝑣𝑧 (𝑝(𝑧)) = 0,odakle sledi 𝐼𝑣𝑧 (𝑝(𝑥)∧𝑝(𝑦)) = 0 i 𝐼𝑣𝑧 (𝑝(𝑥)∧𝑝(𝑦) ⇔ 𝑝(𝑧)) = 1, sto je nemoguce.U slucaju (c), vazi 𝐼𝑣𝑧

(𝑝(𝑦)) = 0 i 𝐼𝑣𝑧 (𝑝(𝑧)) = 0, odakle sledi 𝐼𝑣𝑧 (𝑝(𝑥)∧𝑝(𝑦)) = 0

Elektro

nsko

izdanje(2017)

310

i 𝐼𝑣𝑧 (𝑝(𝑥) ∧ 𝑝(𝑦) ⇔ 𝑝(𝑧)) = 1, sto je nemoguce. Dakle, u svakom slucaju dola-zimo do kontradikcije, sto znaci da polazna pretpostavka nije bila ispravna.Dakle, mora da vazi 𝐼𝑣((∀𝑥)(∀𝑦)(∃𝑧)(𝑝(𝑥) ∧ 𝑝(𝑦) ⇔ 𝑝(𝑧))) = 1. Kako je 𝐼𝑣proizvoljna valuacija, sledi da je data formula valjana.

8.12. Na primer, ¬(∃𝑥)𝒜 ⇔ (∀𝑥)¬𝒜.

8.13. Vazi (∃𝑥)(𝒜 ⇒ ℬ) ≡ (∃𝑥)(¬𝒜 ∨ ℬ) ≡ (∃𝑥)(¬𝒜) ∨ (∃𝑥)ℬ ≡ ¬(∀𝑥)𝒜 ∨(∃𝑥)ℬ ≡ (∀𝑥)𝒜 ⇒ (∃𝑥)ℬ. Iz (∃𝑥)(𝒜 ⇒ ℬ) ≡ (∀𝑥)𝒜 ⇒ (∃𝑥)ℬ, sledi da je dataformula valjana.

8.21. Tvr.enje je moguce dokazati indukcijom po slozenosti izraza ili na sledecinacin: pretpostavimo da za date izraze 𝑒1 i 𝑒2 postoje dva najopstija unifikatora𝜎1 i 𝜎2. Tada postoje supstitucije 𝜆1 i 𝜆2 takve da vazi 𝜎1 = 𝜎2𝜆2 i 𝜎2 = 𝜎1𝜆1

odakle sledi 𝜎2 = (𝜎2𝜆2)𝜆1 i 𝜎2 = 𝜎2(𝜆2𝜆1). Dakle, 𝜆2𝜆1 je trivijalna supstitu-cija [ ], pa, na osnovu definicije kompozicije supstitucija sledi da 𝜆1 i 𝜆2 moguda sadrze samo zamene oblika 𝑣′ ↦→ 𝑣′′ (gde su 𝑣′ i 𝑣′′ simboli promenljivih),pa su unifikatori 𝜎1 i 𝜎2 jednaki do na preimenovanje promenljivih.

8.31. Dati uslovi mogu se reprezentovati na sledeci nacin:C1: 𝑣𝑙𝑎𝑠𝑛𝑖𝑘𝑝𝑠𝑎(𝐽𝑎𝑛𝑘𝑜)C2: ∀𝑥(𝑣𝑙𝑎𝑠𝑛𝑖𝑘𝑝𝑠𝑎(𝑥) ⇒ 𝑣𝑜𝑙𝑖𝑧𝑖𝑣𝑜𝑡𝑖𝑛𝑗𝑒(𝑥))C3: ∀𝑥(𝑣𝑜𝑙𝑖𝑧𝑖𝑣𝑜𝑡𝑖𝑛𝑗𝑒(𝑥) ⇒ (∀𝑦(𝑧𝑖𝑣𝑜𝑡𝑖𝑛𝑗𝑎(𝑦) ⇒ ¬𝑢𝑑𝑎𝑟𝑖𝑜(𝑥, 𝑦))))C4: 𝑢𝑑𝑎𝑟𝑖𝑜(𝐽𝑎𝑛𝑘𝑜, 𝑇𝑢𝑛𝑎) ∨ 𝑢𝑑𝑎𝑟𝑖𝑜(𝑀𝑎𝑟𝑘𝑜, 𝑇𝑢𝑛𝑎)C5: 𝑚𝑎𝑐𝑘𝑎(𝑇𝑢𝑛𝑎)C6: ∀𝑥(𝑚𝑎𝑐𝑘𝑎(𝑥) ⇒ 𝑧𝑖𝑣𝑜𝑡𝑖𝑛𝑗𝑎(𝑥))Metodom rezolucije moze se dokazati da iz navedenih formula sledi formula

𝑢𝑑𝑎𝑟𝑖𝑜(𝑀𝑎𝑟𝑘𝑜, 𝑇𝑢𝑛𝑎).

8.33.

𝐴 ∨𝐵

¬𝐴 [𝐴]1

⊥ ¬𝐸𝐵

𝑒𝑓𝑞[𝐵]2

𝐵∨𝐸, 1, 2

8.34.

[¬𝐵]1[𝐴]2 [𝐴 ⇒ 𝐵]3

𝐵⇒ 𝐸

⊥ ¬𝐸¬𝐴 ¬𝐼, 2

¬𝐵 ⇒ ¬𝐴 ⇒ 𝐼, 1

(𝐴 ⇒ 𝐵) ⇒ (¬𝐵 ⇒ ¬𝐴)⇒ 𝐼, 3

Elektro

nsko

izdanje(2017)

311 13. Resenja zadataka

8.35.

[𝐴 ∨ (𝐵 ∧ 𝐶)]1

[𝐴]2

𝐴 ∨𝐵∨𝐼

[𝐴]2

𝐴 ∨ 𝐶∨𝐼

(𝐴 ∨𝐵) ∧ (𝐴 ∨ 𝐶)∧𝐼

[𝐵 ∧ 𝐶]3

𝐵∧𝐸

𝐴 ∨𝐵∨𝐼

[𝐵 ∧ 𝐶]3

𝐶∧𝐸

𝐴 ∨ 𝐶∨𝐼

(𝐴 ∨𝐵) ∧ (𝐴 ∨ 𝐶)∧𝐼

(𝐴 ∨𝐵) ∧ (𝐴 ∨ 𝐶)∨𝐸, 2, 3

(𝐴 ∨ (𝐵 ∧ 𝐶)) ⇒ ((𝐴 ∨𝐵) ∧ (𝐴 ∨ 𝐶))⇒ 𝐼, 1

8.36

𝐴 ∨ ¬𝐴

[¬(𝐴 ∧𝐵)]4[𝐴]2 [𝐵]1

𝐴 ∧𝐵∧𝐼

⊥ ¬𝐸¬𝐵 ¬𝐼, 1

¬𝐴 ∨ ¬𝐵 ∨𝐼[¬𝐴]3

¬𝐴 ∨ ¬𝐵 ∨𝐼¬𝐴 ∨ ¬𝐵 ∨𝐸, 2, 3

¬(𝐴 ∧𝐵) ⇒ (¬𝐴 ∨ ¬𝐵)⇒ 𝐼, 4

9.34.

vlasnikpsa(janko).

macka(tuna).

mozda_udario(janko,tuna).

mozda_udario(marko,tuna).

volizivotinje(X):-vlasnikpsa(X).

zivotinja(X):-macka(X).

ne_bi_udario(X,Y):-volizivotinje(X), zivotinja(Y).

udario(X,Y):-mozda_udario(X,Y), not ne_bi_udario(X,Y).

9.35.

suma(N,S):-N>0, N1 is N-1, suma(N1,S1), S is S1+N.

suma(0,0).

9.36.

sumacifara(N,S):-N>=10, N1 is (N // 10), sumacifara(N1,S1), S is S1 + (N mod 10).

sumacifara(N,N):-N<10.

9.37.

stepen(M,N,S):-N>0, N1 is N-1, stepen(M,N1,S1), S is S1*M.

stepen(M,0,1).

Elektro

nsko

izdanje(2017)

312

9.38.

obrni(M,N):-obrni(M,0,N).

obrni(M,I,N):-M>0, M1 is M//10, I1 is 10*I+(M mod 10), obrni(M1,I1,N).

obrni(0,I,I).

9.39.

nzd(M,N,R):-N>0, T is M mod N, nzd(N,T,R).

nzd(M,0,M).

9.40.

prost(N):-T is N//2, nedeljivsvim(N,T).

nedeljivsvim(N,T):-T>1, T1 is T-1, N mod T=\=0, nedeljivsvim(N,T1).

nedeljivsvim(N,1).

9.41.

suma([],0).

suma([X|R],M):-suma(R,M1), M is M1+X.

9.42.

obrni(X,Y):-obrni(X,[],Y).

obrni([X|R],L,T):-obrni(R,[X|L],T).

obrni([],X,X).

9.43.

dodajnakraj([H|R],X,[H|R1]):-dodajnakraj(R,X,R1).

dodajnakraj([],X,[X]).

9.44.

uzastopni(X,Y,Z,[X,Y,Z|R]):-!.

uzastopni(X,Y,Z,[_|R]):-uzastopni(X,Y,Z,R).

9.45.

Elektro

nsko

izdanje(2017)

313 13. Resenja zadataka

prvih_n(L,N,_):-broj_elemenata(L,B),B<N,!,fail.

prvih_n(L,0,[]):-!.

prvih_n([G|R],N,[G|R1]):-N1 is N-1, prvih_n(R,N1,R1).

9.46.

dvadela([],[],[]).

dvadela([G|R],[G|R1],R2):-G>=0, dvadela(R,R1,R2),!.

dvadela([G|R],R1,[G|R2]):-dvadela(R,R1,R2).

9.47.

podeli([],[],[]).

podeli([G|R],[G|R1],R2):-podeli(R,R1,R2).

podeli([G|R],R1,[G|R2]):-podeli(R,R1,R2).

9.48.

podliste(L,P):-podeli(L,P,_).

9.49.

razliciti([],[]).

razliciti([X|R],[X|R1]):-not(sadrzi(R,X)),razliciti(R,R1),!.

razliciti([X|R],R1):-razliciti(R,R1).

9.50.

unija(X,Y,U):-append(X,Y,W),razliciti(W,U).

9.51.

presek([],L,[]).

presek([G|R],L,[G|P]):-sadrzi(L,G),presek(R,L,P),!.

presek([G|R],L,P):-presek(R,L,P).

9.52.

razlika([],L,[]).

razlika([G|R],L,R1):-sadrzi(L,G),razlika(R,L,R1),!.

razlika([G|R],L,[G|R1]):-razlika(R,L,R1).

Elektro

nsko

izdanje(2017)

314

9.53.

sim_razlika(X,Y,Z):-unija(X,Y,T),presek(X,Y,P),razlika(T,P,Z).