213
Predrag Janiˇ ci´ c Mladen Nikoli´ c Veˇ staˇ cka inteligencija c Februar 2009

Vestacka-inteligencija

Embed Size (px)

DESCRIPTION

Vestacka inteligencija

Citation preview

Page 1: Vestacka-inteligencija

Predrag Janicic Mladen Nikolic

Vestacka inteligencija

c©Februar 2009

Page 2: Vestacka-inteligencija

2

Autori:dr Predrag Janicic, docent Matematickog fakulteta u Beograduemail: [email protected]: www.matf.bg.ac.yu/~janicic

Mladen Nikolic, saradnik Matematickog fakulteta u Beograduemail: [email protected]: www.matf.bg.ac.yu/~nikolic

VESTACKA INTELIGENCIJA

Sva prava zadrzana. Nijedan deo ovog materijala ne moze biti reprodukovan niti smestenu sistem za pretrazivanje ili transmitovanje u bilo kom obliku, elektronski, mehanicki,fotokopiranjem, smanjenjem ili na drugi nacin, bez prethodne pismene dozvole autora.

Page 3: Vestacka-inteligencija

Sadrzaj

1 Uvod 91.1 Uska i opsta vestacka inteligencija . . . . . . . . . . . . . . . . . 11

I Logika i logicko programiranje 15

2 Iskazna logika 172.1 Sintaksa iskazne logike . . . . . . . . . . . . . . . . . . . . . . . . 172.2 Semantika iskazne logike . . . . . . . . . . . . . . . . . . . . . . . 19

2.2.1 Valuacija, interpretacija, model; zadovoljive, valjane,porecive i kontradiktorne formule . . . . . . . . . . . . . 19

2.2.2 Istinitosne tablice . . . . . . . . . . . . . . . . . . . . . . . 212.2.3 Logicke posledice, logicki ekvivalentne formule,

supstitucija . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2.4 Potpuni skupovi veznika . . . . . . . . . . . . . . . . . . 262.2.5 Normalne forme . . . . . . . . . . . . . . . . . . . . . . . 282.2.6 Dejvis–Patnam–Logman–Lovelandova procedura . . . . 302.2.7 Primer modelovanja problema u iskaznoj logici . . . . . 31

3 Logika prvog reda 353.1 Sintaksa logike prvog reda . . . . . . . . . . . . . . . . . . . . . . 363.2 Semantika logike prvog reda . . . . . . . . . . . . . . . . . . . . 39

3.2.1 Valuacija, interpretacija, model; zadovoljive, valjane,porecive i kontradiktorne formule . . . . . . . . . . . . . 39

3.2.2 Logicke posledice, logicki ekvivalentne formule,supstitucija . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.2.3 Normalne forme . . . . . . . . . . . . . . . . . . . . . . . 483.2.4 Unifikacija . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.2.5 Metod rezolucije . . . . . . . . . . . . . . . . . . . . . . . 57

3.3 Prirodna dedukcija . . . . . . . . . . . . . . . . . . . . . . . . . . 673.4 Sazetak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

4 PROLOG 734.1 Interpretatori i kompilatori . . . . . . . . . . . . . . . . . . . . . 734.2 Sintaksa i semantika u PROLOG-U . . . . . . . . . . . . . . . . . 744.3 Pocetni primeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754.4 PROLOG i metod rezolucije . . . . . . . . . . . . . . . . . . . . . 774.5 Stablo izvodjenja . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3

Page 4: Vestacka-inteligencija

4 SADRZAJ

4.6 Operator secenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794.7 Negacija kao neuspeh . . . . . . . . . . . . . . . . . . . . . . . . . 834.8 Liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854.9 Ugradjeni predikati . . . . . . . . . . . . . . . . . . . . . . . . . . 894.10 Implementacija KNF algoritma . . . . . . . . . . . . . . . . . . . 924.11 Implementacija DPLL algoritma . . . . . . . . . . . . . . . . . . 944.12 Pretraga grafa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.13 Primer resavanje jednostavnog problema . . . . . . . . . . . . . 97

II Pretraga 101

5 Resavanje problema kao pretraga 1035.1 Kvalitet algoritama pretrage . . . . . . . . . . . . . . . . . . . . . 1055.2 Neinformisana i informisana pretraga . . . . . . . . . . . . . . . 106

6 Pohlepna pretraga 1096.1 Penjanje uzbrdo u slucaju diferencijabilne funkcije cilja . . . . . 110

7 Odredivanje puteva u grafu 1137.1 Obilazak grafa u dubinu i sirinu . . . . . . . . . . . . . . . . . . 1137.2 Dejkstrin algoritam . . . . . . . . . . . . . . . . . . . . . . . . . . 1147.3 A* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

7.3.1 Primer upotrebe algoritma A* . . . . . . . . . . . . . . . . 1177.3.2 Specijalni slucajevi . . . . . . . . . . . . . . . . . . . . . . 1197.3.3 Primer upotrebe algoritma A* na uniformnoj mrezi . . . 1207.3.4 Svojstva algoritma A* . . . . . . . . . . . . . . . . . . . . 1247.3.5 Implementaciona pitanja . . . . . . . . . . . . . . . . . . 124

8 Programiranje logickih igara 1278.1 Razvoj automatskog igranja logickih igara i osnovni koncepti . 1278.2 Legalni potezi i stablo igre . . . . . . . . . . . . . . . . . . . . . . 1298.3 Otvaranje i biblioteka partija . . . . . . . . . . . . . . . . . . . . . 1318.4 Sredisnjica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

8.4.1 Staticka ocena pozicije i funkcija evaluacije . . . . . . . . 1328.4.2 Pretrazivanje stabla igre . . . . . . . . . . . . . . . . . . . 1338.4.3 Algoritam minimaks . . . . . . . . . . . . . . . . . . . . . 1338.4.4 Algoritam alfa-beta . . . . . . . . . . . . . . . . . . . . . . 1348.4.5 Heuristika killer . . . . . . . . . . . . . . . . . . . . . . . . 1378.4.6 Iterativni alfa-beta/killer algoritam . . . . . . . . . . . . 1388.4.7 Stabilno pretrazivanje . . . . . . . . . . . . . . . . . . . . 1398.4.8 Prekidi i vremenska ogranicenja . . . . . . . . . . . . . . 1398.4.9 Slozenost algoritama za pretrazivanje stabla igre . . . . . 140

8.5 Zavrsnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1418.5.1 Skupovi pozicija kao klase ekvivalencija . . . . . . . . . . 1428.5.2 Tekstovi saveta . . . . . . . . . . . . . . . . . . . . . . . . 142

8.6 Implementaciona pitanja . . . . . . . . . . . . . . . . . . . . . . . 143

Page 5: Vestacka-inteligencija

SADRZAJ 5

9 Genetski algoritmi 1479.1 Motivacija za genetske algoritme . . . . . . . . . . . . . . . . . . 1479.2 Osnovni genetski algoritam . . . . . . . . . . . . . . . . . . . . . 1489.3 Reprezentacija jedinki . . . . . . . . . . . . . . . . . . . . . . . . 149

9.3.1 Binarna reprezentacija . . . . . . . . . . . . . . . . . . . . 1499.4 Funkcija prilagodenosti . . . . . . . . . . . . . . . . . . . . . . . 1509.5 Inicijalizacija i zaustavljanje . . . . . . . . . . . . . . . . . . . . . 1519.6 Selekcija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

9.6.1 Ruletska selekcija . . . . . . . . . . . . . . . . . . . . . . . 1529.6.2 Turnirska selekcija . . . . . . . . . . . . . . . . . . . . . . 153

9.7 Reprodukcija i genetski operatori . . . . . . . . . . . . . . . . . . 1539.7.1 Ukrstanje . . . . . . . . . . . . . . . . . . . . . . . . . . . 1539.7.2 Mutacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

9.8 Zaustavljanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1549.9 Parametri algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . 1559.10 Svojstva genetskih algoritama . . . . . . . . . . . . . . . . . . . . 1559.11 Primer primene genetskih algoritama — evolucija agenta . . . . 156

9.11.1 Implementaciona pitanja . . . . . . . . . . . . . . . . . . 157

III Masinsko ucenje 159

10 Uvod 16110.1 Generalizacija i apstrakcija . . . . . . . . . . . . . . . . . . . . . . 16210.2 Primer problema ucenja . . . . . . . . . . . . . . . . . . . . . . . 16310.3 Nadgledano i nenadgledano ucenje . . . . . . . . . . . . . . . . . 16610.4 Ciljna funkcija i modeli podataka . . . . . . . . . . . . . . . . . . 16610.5 Podaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

10.5.1 Zapis podataka . . . . . . . . . . . . . . . . . . . . . . . . 16710.5.2 Podaci za trening i podaci za testiranje . . . . . . . . . . 168

10.6 Dizajn sistema koji uci . . . . . . . . . . . . . . . . . . . . . . . . 168

11 Klasifikacija 17111.1 Metode klasifikacije zasnovane na instancama . . . . . . . . . . 171

11.1.1 Metoda n-najblizih suseda . . . . . . . . . . . . . . . . . . 17211.1.2 N-grami . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

11.2 Ucenje stabala odlucivanja . . . . . . . . . . . . . . . . . . . . . . 17711.3 Mere kvaliteta i tehnike evaluacije klasifikacije . . . . . . . . . . 18411.4 Preterano prilagodavanje modela podacima za trening . . . . . 186

12 Regresija 18912.1 Linearna regresija . . . . . . . . . . . . . . . . . . . . . . . . . . . 18912.2 Pretpostavke linearne regresije . . . . . . . . . . . . . . . . . . . 19212.3 Ispitivanje kvaliteta linearne regresije . . . . . . . . . . . . . . . 19212.4 Preterano prilagodavanje modela podacima za trening . . . . . 196

IV Resenja zadataka 199

13 Resenja zadataka 201

Page 6: Vestacka-inteligencija

6 SADRZAJ

Page 7: Vestacka-inteligencija

Predgovor

Ovo su beleske koji prate predavanja i vezbe iz predmeta Vestaca inteligen-cija koji drzimo akademske godina 2007/08. Funkcija beleski je da olaksajupracenje predavanja i da sluze kao podsetnik tokom pripremanja ispita. Onine mogu da zamene pohadanje nastave i koriscenje druge literature.

Predrag Janicic i Mladen Nikolic

Beograd, februar 2008.

7

Page 8: Vestacka-inteligencija

8 SADRZAJ

Page 9: Vestacka-inteligencija

Glava 1

Uvod

Smatra se da je vestacka inteligencija kao informaticka disciplina ustanovljenana znamenitoj konferenciji The Dartmouth Summer Research Conference on Arti-ficial Intelligence u Darmutu (Sjedinjene Americke Drzave), 1956. godine. Tomprilikom predlozeno je, od strane Dzona Makartija, i samo ime discipline, nesasvim srecno, jer je to ime cesto izazivalo nedumice i podozrenje. Konferencijaje trajala mesec dana i bila je pre svega usmerena ka profilisanju nove oblastikoja je nastajala. Konferenciju su organizovali Dzona Makartija, Marvin Min-ski, Natanijel Rocester i Klod Senon.

Vestacka inteligencija je jedna od oblasti racunarstva koja se poslednjih decenijanajbrze razvija. Paralelno sa tim burnim razvojem rastu i ocekivanja od ovediscipline. Dok se za neke oblasti racunarstva vec smatra da su zaokruzene i dase u njima ne ocekuju novi znacajni prodori, od vestacke inteligencije se rezul-tati tek ocekuju, uprkos tome sto su vec razvijeni mnogi ”inteligentni” sistemikoji funkcionisu izuzetno dobro. Ovo mozda mozemo da objasnimo time sto ti”inteligentni” sistemi, i pored varljivih spoljnih manifestacija, funkcionisu naprincipima koje, najcesce ne mozemo smatrati zaista inteligentnim. Time, nar-avno, vestacka inteligencija samo dovbija na atraktivnosti, a novi eksperimentii teorijska istrazivanja predstavljaju put ka novim primenama u najrazlicitijimoblastima. Kako je razvoj vestacke inteligencije oduvek bio zasnovan na kom-plementarnom povezivanju teorije i eksperimenata, tako i buduci razvoj za-hteva prosirivanje i ucvrscivanje teorijskih znanja, pre svega matematickih,ali i znanja o specificnim oblastima primene, kao i njihovu adekvatnu formal-izaciju.

U uvodnom delu pokusajmo da odgovorimo i na osnovna pitanja sta je tointeligencija i sta je to vestacka inteligencija. Uobicajeno pod inteligencijompodrazumevamo sposobnost usvajanja, pamcenja i obrade odredjenjih znanja.Ipak, nijedna definicija vestacke inteligencije nije opste prihvacena (bar ne nekakoja bi odgovarala uobicajenom, svakodnevnom smislu i istovremeno preciznoi formalno opisivala pojam). U svakom slucaju mozemo smatrati da inteligen-cija podrazumeva bar dve sposobnosti: sposobnost pamcenja, skladistenja znanjai mogucnost njegove obrade. Osoba (ili masina) bez ikakvog znanja ne mozebiti smatrana inteligentnom. Takodje, inteligentnom ne moze biti smatranani osoba (ili masina) sa ogromnom kolicinom ”statickog” znanja odnosno po-dataka, ali bez sposobnosti da to znanje obradjuje i da resava probleme u vezisa njim. Postoje i drugi aspekti inteligencije. Jedan od njih je brzina obrade

Page 10: Vestacka-inteligencija

10 1 Uvod

znanja, koja je, kada su u pitanju racunari, zavisna ne samo od procedura zazakljucivanje, vec, naravno, i od tehnickih karakteristika pojedinog racunara.Sposobnost ucenja - usvajanja novih znanja takodje je jedan od aspekata in-teligencije, iako je mozemo uvrstiti u sposobnost resavanja problema. As-pektom inteligencije mozemo smatrati i sposobnost komunikacije sa drugiminteligentnim bicima (masinama), koju takodje mozemo uvrstiti u resavanjeproblema. Smatracemo, dakle, da bice ili masina imaju atribute intelignetnog,ako imaju navedena svojstva. Ako se radi o masini odnosno uredjaju bilo kojevrste sa navedenim svojstvima, govoricemo o vestackoj inteligenciji. Podse-timo se i jedne ”klasicne” definicije vestacke inteligencije: ako su u odvojenedve prostorije smestene jedna ljudska osoba i neka naprava i ako na identicneprobleme one pruzaju odgovore na osnovu kojih se ne moze pogoditi u ko-joj sobi je covek, a u kojoj naprava, onda mozemo smatrati da ta napravaima atribute vestacke inteligencije. Bez obzira na sve manjkavosti ovih opisa,necemo pokusavati da pronadjemo bolje opise pojmova o kojima je rec. Nakonsvega, dobro je navesti i jednu rigorozniju i mozda suvoparniju, ali verovatnonajbolju definiciju vestacke inteligencije — to je disciplina koja se bavi prob-lemima u kojima se javlja kombinatorna eksplozija.

Za pojam inteligencije sustinska su dva pitanja: pitanje znanja i pitanje za-kljucivanja, koja, kada govorimo o racunarima, odgovaraju pojmovima bazeznanja i komponente zakljucivanja. Komponenta zakljucivanja (izvodjenja)predstavlja takodje neku vrstu znanja - to je znanje o procesu izvodjenja novihinformacija iz iz date baze znanja i o pravilima po kojima se to izvodjenje vrsi.Znanje ovog tipa zvacemo meta-znanjem. Sam pojam znanja, takodje ima viseaspekata. Po mnogim filozofskim koncepcijama znanje predstavlja tvrdjenja zakoje je utvrdjeno ili moze biti utvrdjeno da su tacna. Ipak, mi cemo cesto imatipotrebu da radimo i sa informacijama koje ne moraju da budu tacne, pa cemoprihvatiti siri pojam znanja i pod njim podrazumevati i istinite, potvrdjenecinjenice, ali i hipoteze, nepotpune informacije i informacije date sa odredjenimverovatnocama. Izbor reprezentacije znanja je jedan od kljucnih problema i onje u direktnoj vezi i sa prirodom odredjenog znanja, ali i sa prirodom meha-nizama za zakljucivanje. Mehanizmi za zakljucivanje moraju biti prilagodjenireprezentaciji znanja i njegovoj prirodi, pa ce u jednom slucaju biti zasnovanina klasicnoj logici, a u drugom na modalnoj logici, teoriji verovatnoce, fazilogici itd. Zakljucivanjem mocemo smatrati proces po kojem se na osnovu bazeznanja moze izvesti informacija koja u njoj nije eksplicitno sadrzana. Tako, naprimer, ako u bazi znanja imamo cinjenice:

I1 : ...

I2 : ...

na osnovu njih moguce je izvesti cinjenicu:

I3 : ...

koja zaista nije bila eksplicitno sadrzana u polaznoj bazi znanja. Navedeniprimer odgovara uobicajenom zakljucivanju koje odgovara ljudskom iskustvu.Cesto cemo se, medjutim, susretati sa problemima kod kojih je tesko preciznozasnovati proces zakljucivanja koji odgovara covekovom i biti prinudjeni datragamo za sofisticiranijim tehnikama koje odgovaraju tim zahtevima. U vezi

Page 11: Vestacka-inteligencija

1.1 Uska i opsta vestacka inteligencija 11

sa formalizacijom prirodnog toka zakljucivanja su i problemi monotonog i nemonotonogzakljucivanja. Na kraju uvodnog dela jednostavnim primerom ilustrovacemonekoliko razlicitih oblika zakljucivanja. Razmotrimo odnos veze

(i)∀x(P (x)⇒ Q(x))

i cinjenica(ii)P (a)

(iii)Q(a).

Izvodjenje cinjenice Q(a) na osnovu (i) i (ii) je potpuno opravdano i odgo-vara matematickim principima deduktivnog zakljucivanja. Izvodjenje veze(i) na osnovu niza parova (ii), (iii) za razlicite instance argumenta, odgovaranepotpunoj indukciji, nema matematicku egzaktnost, a u prakticnim prime-nama pouzdanost mu se povecava sa brojem instanci koje potvrdjuju hipotezu.Izvodjenje cinjenice (ii) na osnovu (i) i (ii) zovemo abdukcijom. Ono takodjenije egzaktno, a opravdanje ima u odnosu uzroka i posledice. Tako, ako raspolazemonizom veza oblika (i) za razlicita svojstva Qi(i = 1, ..., n) i nizom cinjenicaQi(a)(i = 1, ..., n), mozemo da zakljucimo (sa izvesnom pouzdanoscu), dakao uzrok posledicama Qi(a)(i = 1, ..., n) vazi svojstvo P (a). Ovaj princip za-kljucivanja cesto se primenjuje u medicinskim ekspertnim sistemima za utvrd-jivanje (potencijalnog) uzroka na osnovu poznatih simptoma.

1.1 Uska i opsta vestacka inteligencija

The advent of a human-level artificial intelligencea machine capable of the rich-ness of expression and nuance of thought that we associate with humanitypromises to generate tremendous wealth for the inventors and companies thatdevelop it. According to the Business Communications Company, the marketfor AI software and products reached 21 billion in 2007, an impressive fig-ure that doesnt touch on the wealth that a human-level artificial intelligencecould generate across industries. At present, the worlds programmers havesucceeded in auto mating the delivery of electricity to our homes, the trad-ing of stocks on exchanges, and much of the flow of goods and services tostores and offices across the globe, but, after more than half a century of re-search, they have yet to reach the holy grail of computer sciencean artificialgeneral intelligence (AGI). Is the tide turning? At the second annual Singular-ity Summit in San Francisco last September, I discovered that the thinkers andresearchers at the forefront of the field are pitched in an intellectual battle overhow soon AGI might arrive and what it might mean for the rest of us. The Not-So-Rapid Progress Of AI Research The scientific study of artificial intelligencehas many roots, from IBMs development of the first number-crunching com-puters of the 1940s to the U.S. militarys work in war-game theory in the 1950s.The proud papas of computer science Marvin Minsky, Charles Babbage, AlanTuring, and John Von Neumann were also the founding fathers of the study ofartificial intelligence. During the late 1960s and early 1970s, money for AI workwas as easy as expectations were unrealistic, fueled by Hollywood images ofcocktail -serving robots and a Hal 9000 (a non- homicidal one, presumably)for every home. In an ebullient moment in 1967, Marvin Minsky, proclaimed.

Page 12: Vestacka-inteligencija

12 1 Uvod

Within a generation . . . the problem of creating artificial intelligence willsubstantially be solved, by which he meant a humanistic AI. Public interestdried up when the robot army failed to materialize by the early 1980s, a periodthat researchers refer to as the AI winter. But research, though seemingly dor-mant, continued. The field has experienced a revival of late. Primitive-levelAI is no longer just a Hollywood staple. Its directing traffic in Seattle througha program called SmartPhlow, guiding the actions of hedge-fund managersin New York, executing Internet searches in Stockholm, and routing factoryorders in Beijing over integrated networks like Ciscos. More and more, theworlds banks, governments, militaries, and businesses rely on a variety of ex-tremely sophisticated computer programswhat are sometimes called narrowAIs to run our ever-mechanized civilization. We look to AI to perform taskswe can easily do ourselves but havent the patience for any longer. There are1.5 million robot vacuum cleaners already in use across the globe. Engineersfrom Stanford University have developed a fully autonomous self-driving carnamed Stanley, which they first showcased in 2005 at the Defense AdvancedResearch Projects Agencys (DARPA) Grand Challenge motor cross. Stanleyrepresents an extraordinary improvement over the self-driving machines thatthe Stanford team was showing off in 1979. The original self-driving robotneeded six hours to travel one meter. Stanley drove 200 meters in the sametime. The next big leap will be an autonomous vehicle that can navigate andoperate in traffic, a far more complex challenge for a robotic driver, accordingto DARPA director Tony Tether. In other words, robot taxis are coming to acity near you. The decreasing price and increasing power of computer pro-cessing suggest that, in the decades ahead, narrow AIs like these will becomemore effective, numerous, and cheap. But these trends dont necessarily heraldthe sort of radical intellectual breakthrough necessary to construct an artificialgeneral intelligence. Many of the technical (hardware) obstacles to creatingan AGI have fallen away. The raw computing power may finally existand becheap enoughto run an AGI program. But the core semantic and philosophicalproblems that science has faced for decades are as palpable as ever today. Howexactly do you write a computer program that can think like a human?

The War between the Neats and the ScruffiesThere are two paths to achieving an AGI, says Peter Voss, a software de-

veloper and founder of the firm Adaptive A.I. Inc. One way, he says, is tocontinue developing narrow AI, and the systems will become generally com-petent. It will become obvious how to do that. When that will happen or how itwill come about, whether through simbots or some DARPA challenge or some-thing, I dont know. It would be a combination of those kinds of things. Theother approach is to specifically engineer a system that can learn and think.Thats the approach that [my firm] is taking. Absolutely I think thats possible,and I think its closer than most people thinkfive to 10 years, tops. The twoapproaches outlined by Vosseither tinkering with mundane programs to makethem more capable and effective or designing a single comprehensive AGI sys-tem speak to the long-standing philosophical feud that lies at the heart of AIresearch: the war between the neats and the scruffies. J. Storrs Hall, author ofBeyond AI: Creating the Conscience of the Machine (Prometheus Books, 2007),reduces this dichotomy to a scientific approach vs. an engineering mind-set.The neats are after a single, elegant solution to the answer of human intelli-gence, Hall says. Theyre trying to explain the human mind by turning it into

Page 13: Vestacka-inteligencija

1.1 Uska i opsta vestacka inteligencija 13

a math problem. The scruffies just want to build something, write narrow AIcodes, make little machines, little advancements, use whatever is available,and hammer away until something happens. The neat approach descends fromcomputer science in its purest form, particularly the war game studies of VonNeumann and his colleagues in the 1930s and 1940s. The 1997 defeat of worldchess champion Garry Kasparov by IBMs Deep Blue computer is consideredby many the seminal neat success. Up until that moment, the mainstream sci-entific community generally accepted the premise that AIs could be written toperform specific tasks reasonably well, but largely resisted the notion of super-human computing ability. Deep Blue proved that an AI entity could outper-form a human at a supposedly human task, perceiving a chess board (DeepBlue could see 200 million board positions per second) and plotting a strategy(74 moves ahead as opposed to 10, the human record).

But the success of Deep Blue was limited. While the machine demonstratedtechnical expertise at chess, it didnt show any real comprehension of the gameit was playing, or of itself. As Paris Review editor George Plimpton observedafter the match, The machine isnt going to walk out of the hotel there and startdoing extraordinary things. It cant manage a baseball team, cant tell you whatto do with a bad marriage. The validity of this observation isnt lost on todaysAI community. What we thought was easy turned out to be hard, and what wethought was hard turned out to be easy, says Stephen Omohundro, founderof the firm Self-Aware Systems. Back in the early Sixties, people thought thatsomething like machine vision would be a summer project for a masters stu-dent. Todays machine vision systems are certainly better than they were, butno vision system today can reliably tell the difference between a dog and a cat,something that small children have no problem doing. Meanwhile, beating aworld chess champion turned out to be a snap.

Page 14: Vestacka-inteligencija

14 1 Uvod

Page 15: Vestacka-inteligencija

Deo I

Logika i logickoprogramiranje

Page 16: Vestacka-inteligencija
Page 17: Vestacka-inteligencija

Glava 2

Iskazna logika

U iskaznoj logici promenljive reprezentuju iskaze. Iskazi mogu biti kombino-vani u slozenije iskaze logickim veznicima. Iskazna logika dovoljno je izrazajnaza opisivanje i reprezentovanje mnogih problema, ukljucujuci mnoge prakticneprobleme, kao sto je, na primer, dizajn integrisanih kola.

Iskazna logika ima tri aspekta: svoju sintaksu (ili jezik), svoju semantiku (iliznacenje iskaza) i svoje deduktivne sisteme. I semantika i deduktivni sistemigrade se nad isto definisanom sintaksom, tj. nad istim skupom formula.

Centralni problemi u iskaznoj logici su ispitivanje da li je data iskazna for-mula valjana (tautologija) i da li je data iskazna formula zadovoljiva. Ovajdrugi problem poznat je kao problem SAT i on je tipican predstavnik skupaNP-kompletnih problema.

Postoji vise metoda i pristupa za ispitivanje valjanosti i zadovoljivosti. Nekiod njih su semanticke, a neki deduktivne (tj. sintaksno-deduktivne) prirode.Kljucna veza izmedu ova dva koncepta je tvrdenje da je iskazna formula valja-na (sto je semanticka kategorija) ako i samo ako je ona teorema (sto je deduk-tivna kategorija). Zahvaljujuci ovoj vezi, sintaksa iskazne logike (jezik iskaznelogike), njena semantika (konvencije o znacenju formula) i njena deduktivnasvojstva cine kompaktnu celinu.

2.1 Sintaksa iskazne logike

Sintaksni aspekt iskazne logike govori o njenom jeziku, a o formulama iskljuci-vo kao o nizovima simbola i ne uzima u obzir bilo kakvo njihovo (moguce)znacenje.

Definicija 2.1 Skup iskaznih formula (ili jezik iskazne logike) nad prebrojivimskupom iskaznih slova P je skup za koji vazi:

• iskazna slova (iz skupa P ) i logicke konstante (> i ⊥) su iskazne formule;

• ako su A i B iskazne formule, onda su i (¬A), (A ∧ B), (A ∨ B), (A ⇒ B) i(A⇔ B) iskazne formule.

• iskazne formule mogu se dobiti samo konacnom primenom prethodna dva prav-ila.

Page 18: Vestacka-inteligencija

18 2 Iskazna logika

Umesto termina iskazna formula cesto cemo pisati krace formula ili iskaz.U daljem tekstu smatracemo (ako nije drugacije naglaseno) da je skup P fik-

siran. Elemente skupa P obicno oznacavamo malim latinicnim slovima (even-tualno sa indeksima). Iskazne formule obicno oznacavamo velikim latinicnimslovima (eventualno sa indeksima). Skupove iskaznih formula obicno oznaca-vamo velikim slovima grckog alfabeta (eventualno sa indeksima).

Logicke veznike zovemo i bulovskim veznicima ili, krace, veznicima. Zapis(¬A) citamo negacija A ili ne A. Zapis (A ∧ B) citamo A konjunkcija B ili A iB. Zapis (A ∨ B) citamo A disjunkcija B ili A ili B. Zapis (A ⇒ B) citamoA implikacija B ili iz A sledi B. Zapis (A ⇔ B) citamo A ekvivalencija B ili Aekvivalentno B.

Iskazna slova zovemo i iskazne promenljive ili iskazne varijable. Elementeskupova P i {>,⊥} zovemo atomickim iskaznim formulama. Simbol > citamote, a simbol⊥ citamo nete. Literal je iskazna formula koja je ili atomicka iskaznaformula ili negacija atomicke iskazne formule. Klauza je disjunkcija literala.

Ako su dve iskazne formule A i B sintaksno identicne (tj. ako su jednakekao nizovi simbola), onda to oznacavamo A = B. Ako dve iskazne formule Ai B nisu sintaksno identicne, onda to oznacavamo A 6= B.

Zagrade se koriste kako bi se izbegla visesmislenost. Naime, bez zagrada,iskazna formula a ⇔ b ∧ c ima dva moguca tumacenja: ((a ⇔ b) ∧ c) i (a ⇔(b ∧ c)). Visesmislenost se moze izbeci i koriscenjem prefiksne poljske notacije.U toj notaciji, iskazna formula ((a ⇔ b) ∧ c) se zapisuje ∧ ⇔ a b c, a iskaznaformula (a ⇔ (b ∧ c)) se zapisuje⇔ a ∧ b c. Ipak, zbog citljivosti, koristicemoinfiksni zapis, zapis iskaznih formula koji odgovara prethodnoj definiciji. Dabismo izbegli koriscenje velikog broja zagrada obicno izostavljamo spoljne za-grade i usvajamo konvenciju uz koju u nekim iskaznim formulama neke za-grade mogu biti izostavljene bez straha od visesmislenosti. Ta konvencija za-snovana je na prioritetu veznika i to na sledeci nacin (veznici su poredani poprioritetima — od veceg ka manjem): ¬ ∧ ∨ ⇒ ⇔.

Definicija 2.2 Skup potformula formule A je najmanji skup formula koje zadovol-javaju sledece uslove:

• svaka iskazna formula A je potformula sama sebi;

• Ako je A jednako ¬B, onda je svaka potformula formule B istovremeno i pot-formula formule A. Ako je A jednako B ∧ C, B ∨ C, B ⇒ C ili B ⇔ C,onda je svaka potformula formule B i svaka potformula formule C istovremenoi potformula formule A.

Primer 2.1 Skup potformula formule (p⇒ q) ∨ r je {p, q, r, p⇒ q, (p⇒ q) ∨ r}.

Definicija 2.3 Funkcija c iz skupa iskaznih formula u skup N (skup prirodnih bro-jeva) svakoj iskaznoj formuli pridruzuje slozenost na sledeci nacin:

1. ako je A atomicka iskazna formula, onda je c(A) = 0;

2. c(¬A) = c(A) + 1;

3. c(A ∧B) = c(A) + c(B) + 1;

4. c(A ∨B) = c(A) + c(B) + 1;

Page 19: Vestacka-inteligencija

2.2 Semantika iskazne logike 19

5. c(A⇒ B) = c(A) + c(B) + 1;

6. c(A⇔ B) = c(A) + c(B) + 1.

Funkcijom c svakoj iskaznoj formuli pridruzuje se (jedinstvena) slozenost.

2.2 Semantika iskazne logike

Semanticki aspekt iskazne logike govori o znacenju formula. U nastavku cebiti uvedena semantika iskazne logike u stilu Tarskog (koji je prvi preciznouveo pojam semantike 1933. godine) [?]. Tako uvedenu semantiku zovemo isemantika Tarskog.

2.2.1 Valuacija, interpretacija, model; zadovoljive, valjane,porecive i kontradiktorne formule

Funkcije v iz P u {0, 1} zovemo valuacijama. Skup {0, 1} zovemo domenom iliuniverzumom valuacije. Svaka valuacija v odreduje funkciju Iv koju zovemointerpretacijom za valuaciju v i koja preslikava skup iskaznih formula u skup{0, 1}. Interpretaciju Iv definisemo na sledeci nacin:

• Iv(p) = v(p), za svaki element p skupa P ;

• Iv(>) = 1 i Iv(⊥) = 0;

• Iv(¬A) = 1 ako je Iv(A) = 0 i Iv(¬A) = 0 ako je Iv(A) = 1;

• Iv(A ∧B) = 1 ako je Iv(A) = 1 i Iv(B) = 1; Iv(A ∧B) = 0 inace;

• Iv(A ∨B) = 0 ako je Iv(A) = 0 i Iv(B) = 0 ; Iv(A ∨B) = 1 inace;

• Iv(A⇒ B) = 0 ako je Iv(A) = 1 i Iv(B) = 0 ; Iv(A⇒ B) = 1 inace;

• Iv(A⇔ B) = 1 ako je Iv(A) = Iv(B); Iv(A⇔ B) = 0 inace.

Vrednost Iv(A) zovemo vrednoscu iskazne formule A u interpretaciji Iv . Akoza valuaciju v vazi Iv(A) = 1, onda kazemo da je iskazna formula A tacna uinterpretaciji Iv i da je iskazna formula A tacna u valuaciji v. Ako za valuaciju vvazi Iv(A) = 0, onda kazemo da je iskazna formula A netacna u interpretaciji Iv .Moze se dokazati da se, za odredenu valuaciju v, funkcijom Iv definisanom nanavedeni nacin, svakoj formuli pridruzuje (jedinstvena) vrednost (u toj inter-pretaciji).

Definicija 2.4 Valuacija v je zadovoljavajuca za formuluA ako je Iv(A) = 1. Kazemoi da je zadovoljavajuca valuacija v model za A i pisemo v |= A.

Definicija 2.5 Iskazna formula A je zadovoljiva ako postoji valuacija koja je za njuzadovoljavajuca. Formula A je valjana ili tautologija1 ako je svaka valuacija za nju

1Rec 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 lingivstickom smislu, kao i u svakod-nevnom jeziku, oznacava ponavljanje istog, reci istu stvar drugim recima, redudantnost (slicno,ali ne isto sto i pleonazam — pleonazam oznacava koriscenje suvisnih reci prilikom ukazivanja naneki pojam). Opisani pojam tautologije razlikuje se od pojma tautologije u logici. U savremenimevropskim jezicima rec tautologija prvi put se javlja u sesnaestom veku.

Page 20: Vestacka-inteligencija

20 2 Iskazna logika

zadovoljavajuca, tj. ako za svaku valuaciju v vazi v |= A i to zapisujemo |= A. Iskaznaformula je nezadovoljiva ili kontradikcija ako ne postoji valuacija koja je za njuzadovoljavajuca. Formula je poreciva ako postoji valuacija koja za nju nije zadovolja-vajuca.

Drugim recima, iskazna formula je zadovoljiva ako postoji valuacija u kojojje ta formula tacna. Iskazna formula je valjana ako je tacna u svakoj valuaciji.Iskazna formula je nezadovoljiva ako je netacna u svakoj valuaciji. Iskaznaformula je poreciva ako postoji valuacija u kojoj je ta formula netacna.

Primer 2.2 Iskazne formule p ⇒ p i p ∨ ¬p su tautologije; iskazna formula p ⇒ q jezadovoljiva i poreciva, a iskazna formula p ∧ ¬p je kontradikcija.

Problem ispitivanja da li je data iskazna formula zadovoljiva oznacava se saSAT (od engleskog satisfiability problem — problem zadovoljivosti). SAT prob-lem je NP-kompletan [?]. S obzirom na to da se jos uvek ne zna da li su klaseP i NP problema jednake, to znaci da se jos uvek ne zna da li postoji algori-tam za ispitivanje zadovoljivosti koji je polinomijalne slozenosti. Kako je opsteuverenje da su klase P i NP problema razlicite, veruje se i da ne postoji poli-nomijalni algoritam za resavanje SAT problema. I najefikasniji danas poznatialgoritmi za resavanje ovog problema su eksponencijalne slozenosti.

Definicija 2.6 Skup iskaznih formula Γ je zadovoljiv ako postoji valuacija u kojoj jesvaka formula iz Γ tacna. Za valuaciju v koja je zadovoljavajuca za sve formule iz Γkazemo da je model za Γ. Skup iskaznih formula Γ je nezadovoljiv ili kontradiktoranako ne postoji valuacija u kojoj je svaka formula iz Γ tacna.

Primer 2.3 Skup iskaznih formula {p ⇒ q, p,¬q} je kontradiktoran (ali nijedan nje-gov pravi podskup nije kontradiktoran).

Teorema 2.1 Ako su iskazne formule A i A⇒ B tautologije, onda je i B tautologija.

Dokaz: Pretpostavimo da su A i A ⇒ B tautologije. Pretpostavimo da postojivaluacija v u kojoj formula B nije tacna. Formula A je tautologija, pa jetacna i u valuaciji v. U toj valuaciji, dakle, formula A ⇒ B nije tacna,sto protivreci pretpostavci da je A ⇒ B tautologija. Dakle, formula B jetacna u svakoj valuaciji, pa je ona tautologija, sto je i trebalo dokazati. 2

Zadaci

Zadatak 1√

Neka su A, B, C, D iskazne formule takve da su formule A ⇒ (B ⇒C) i (A∧C)⇒ ¬D tautologije. Dokazati da je i formula (D ∧A)⇒ ¬B tautologija.

Zadatak 2 Dokazati sledeca tvrdenja:(a) Ako su formule A ∨B i ¬A ∨ C tautologije, onda je i B ∨ C tautologija.(b) Ako su formuleA∨B,A⇒ C,B ⇒ D tautologije, onda je iC∨D tautologija.(c) Ako su formule ¬A ∨B i ¬C ∨ ¬B tautologije, onda je i A⇒ ¬C tautologija.

Page 21: Vestacka-inteligencija

2.2 Semantika iskazne logike 21

Zadatak 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 4 Dokazati sledeca tvrdenja:(a) Iskazna formula A je valjana ako i samo ako je ¬A kontradikcija.(b) Iskazna formula A je zadovoljiva ako i samo ako je ¬A poreciva.

Zadatak 5 Navesti primer iskazne formule koja je:(a) zadovoljiva(b) valjana(c) poreciva(d) kontradikcija(e) zadovoljiva i valjana(f) zadovoljiva i nije valjana(g) zadovoljiva i poreciva(h) zadovoljiva i nije poreciva(i) zadovoljiva i nije kontradikcija(j) valjana i nije poreciva(k) valjana i nije kontradikcija(l) poreciva i nije zadovoljiva(m) poreciva i nije valjana(n) poreciva i kontradikcija(o) poreciva i nije kontradikcija(p) kontradikcija i nije zadovoljiva(q) kontradikcija i nije valjana.

Zadatak 6 Dokazati sledeca tvrdenja (Γ i ∆ su skupovi iskaznih formula,A je iskaznaformula):

(a) Ako je Γ zadovoljiv i ∆ ⊂ Γ, onda je ∆ zadovoljiv.(b) Ako je Γ zadovoljiv i A valjana, onda je Γ ∪ {A} zadovoljiv.(c) Ako je Γ kontradiktoran i Γ ⊂ ∆, onda je ∆ kontradiktoran.(d) Ako je Γ kontradiktoran i A valjana, onda je Γ \ {A} kontradiktoran.

Zadatak 7 Odrediti (ako postoji) formulu A takvu da je formula ((p⇒ (¬q ∧ r))⇒A)⇒ (A ∧ ((r ⇒ q) ∧ p)) tautologija.

2.2.2 Istinitosne tablice

Pravila za odredivanje vrednosti iskazne formule u zadatoj valuaciji (navedenau prethodnom poglavlju) mogu biti reprezentovana osnovnim istinitosnim tab-licama:

A ¬A0 11 0

Page 22: Vestacka-inteligencija

22 2 Iskazna logika

A B A ∧B A ∨B A⇒ B A⇔ B0 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 vred-nosti formule), moze se kontruisati istinitosna tablica za proizvoljnu iskaznuformulu. U istinitosnoj tablici za neku formulu svakoj vrsti odgovara jednavaluacija iskaznih slova koje se pojavljuju u toj formuli. Svakoj koloni odgo-vara jedna potformula te formule. Istinitosne tablice su pogodne i za ispiti-vanje valjanosti, zadovoljivosti, nezadovoljivosti i porecivosti. Ukoliko iskaznaformula A sadrzi iskazne varijable p1, p2, . . ., pn, istinitosna tablica treba dasadrzi sve moguce valuacije za ovaj skup varijabli (valuacije za druge varijablenisu relevantne). U zavisnosti od vrednosti iskaznih varijabli, izracunavajuse vrednosti slozenijih iskaznih formula, sve do same iskazne formule kojase ispituje. Ako su u koloni koja odgovara samoj iskaznoj formuli sve vred-nosti jednake 1, formula je tautologija; ako je bar jedna vrednost jednaka 1,formula je zadovoljiva; ako je bar jedna vrednost jednaka 0, formula je pore-civa; ako su sve vrednosti jednake 0, formula je kontradikcija. Ovo pokazujeda su problemi ispitivanja valjanosti, zadovoljivosti, nezadovoljivosti i pore-civosti odlucivi problemi, tj. postoje algoritmi koji ih mogu resiti.

Primer 2.4 Iskaznoj formuli (¬q ⇒ ¬p) ⇒ (p ⇒ q) odgovara sledeca istinitosnatablica:

p q ¬q ¬p ¬q ⇒ ¬p p⇒ q (¬q ⇒ ¬p)⇒ (p⇒ q)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 kontradikcija.

Primer 2.5 Istinitosna tablica moze biti zapisana u skracenom obliku — zapisivanjemsamo zadate iskazne formule i odgovarajucih vrednosti ispod pojedinacnih iskaznihslova i veznika. Iskaznoj formuli iz prethodnog primera odgovara sledeca skracenaistinitosna tablica (popunjena u nekoliko koraka):

(¬ q ⇒ ¬ p) ⇒ (p ⇒ q)0 0 0 01 0 0 10 1 1 01 1 1 1

(¬ q ⇒ ¬ p) ⇒ (p ⇒ q)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

Page 23: Vestacka-inteligencija

2.2 Semantika iskazne logike 23

(¬ q ⇒ ¬ p) ⇒ (p ⇒ q)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

(¬ q ⇒ ¬ p) ⇒ (p ⇒ q)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

Zadaci

Zadatak 8 Ispitati metodom istinitosnih tablica da li je iskazna formula¬((q ⇒ p)⇒p)⇒ ¬p zadovoljiva.

Zadatak 9 Ispitati metodom tablica da li je iskazna formula (p⇒ (q ⇒ r))⇒ ((p⇒q)⇒ (p⇒ r)) tautologija.

Zadatak 10√

Neka su A, B, C, D iskazne formule takve da su formule A⇒ (B ⇒C) i (A ∧ C) ⇒ ¬D tautologije. Dokazati, koriscenjem istinitosnih tablica, da je iformula (D ∧A)⇒ ¬B tautologija.

Zadatak 11√

Odrediti formulu A takvu da je formula ((A ∧ q) ⇒ ¬p) ⇒ ((p ⇒¬q)⇒ A) tautologija.

Zadatak 12 Odrediti, koriscenjem istinitosnih tablica, (ako postoji) formulu A takvuda je formula ((p⇒ (¬q ∧ r))⇒ A)⇒ (A ∧ ((r ⇒ q) ∧ p)) tautologija.

2.2.3 Logicke posledice, logicki ekvivalentne formule,supstitucija

Definicija 2.7 Kazemo da je iskazna formula A logicka posledica skupa iskaznihformula Γ i pisemo Γ |= A ako je svaki model za skup Γ istovremeno i model za formuluA.

Kada je skup Γ konacan, tada {A1, ..., An} |= B (tj. Γ |= B) pisemo kraceA1, ..., An |= B. Ako je formula A logicka posledica praznog skupa formula,onda to zapisujemo |= A. Ako ne vazi Γ |= A, onda to zapisujemo Γ 6|= A.

Teorema 2.2

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

(b) Ako je skup Γ kontradiktoran, onda je svaka formula njegova logicka posledica.Specijalno, svaka formula je logicka posledica skupa {⊥}.

(c) Ako je Γ ⊂ ∆ i Γ |= A, onda je ∆ |= A.

Dokaz:

Page 24: Vestacka-inteligencija

24 2 Iskazna logika

(a) Ako je formula valjana, onda je ona tacna u svakoj valuaciji pa i usvakom modelu praznog skupa formula, te je ona logicka posled-ica praznog skupa formula. Svaka valuacija je model za prazanskup formula, pa ako je formula logicka posledica praznog skupaformula, 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 Γ |= A. Iz Γ |= A sledi da je proizvol-jan model za Γ model i za A. Kako je Γ ⊂ ∆, proizvoljan model za∆ je model za Γ, pa i za A. Dakle, vazi ∆ |= A.

2

Primetimo da se simbol |= koristi i za zapisivanje da je valuacija v modelformule A i za oznacavanje relacije logicke posledice. Primetimo i da u obaokvira zapis |= A ima isto znacenje — da je formula A valjana.

Definicija 2.8 Kazemo da su dve iskazne formule A i B logicki ekvivalentne ipisemo A ≡ B ako je svaki model formule A model i za B i obratno (tj. ako vaziA |= B i B |= A).

Ako je svaki model za A istovremeno i model za B i obratno, onda u bilokojoj valuaciji formule A i B imaju jednake vrednosti. Tvrdenja oblika A ≡ Bzovemo logickim ekvivalencijama (ili krace ekvivalencijama). Relacija ≡ je, oci-gledno, relacija ekvivalencije nad skupom iskaznih formula.

Teorema 2.3 Vazi A ≡ B ako i samo ako je iskazna formula A⇔ B tautologija.

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

Primer 2.6 Neke od logickih ekvivalencija (ili, preciznije, neke od shema logickih ekvi-

Page 25: Vestacka-inteligencija

2.2 Semantika iskazne logike 25

valencija) su:

¬¬A ≡ A zakon dvojne negacijeA ∨ ¬A ≡ > zakon iskljucenja trecegA ∧A ≡ A zakon idempotencije za ∧A ∨A ≡ A zakon idempotencije za ∨A ∧B ≡ B ∧A zakon komutativnosti za ∧A ∨B ≡ B ∨A zakon komutativnosti za ∨A⇔ B ≡ B ⇔ A zakon komutativnosti za⇔

A ∧ (B ∧ C) ≡ (A ∧B) ∧ C zakon asocijativnosti za ∧A ∨ (B ∨ C) ≡ (A ∨B) ∨ C zakon asocijativnosti za ∨

A⇔ (B ⇔ C) ≡ (A⇔ B)⇔ C zakon asocijativnosti za⇔A ∧ (A ∨B) ≡ A zakon apsorpcijeA ∨ (A ∧B) ≡ A zakon apsorpcijeA ∧ (B ∨ C) ≡ (A ∧B) ∨ (A ∧ C) zakon distributivnosti ∧ u odnosu na ∨(B ∨ C) ∧A ≡ (B ∧A) ∨ (C ∧A) zakon distributivnosti ∧ u odnosu na ∨A ∨ (B ∧ C) ≡ (A ∨B) ∧ (A ∨ C) zakon distributivnosti ∨ u odnosu na ∧(B ∧ C) ∨A ≡ (B ∨A) ∧ (C ∨A) zakon distributivnosti ∨ u odnosu na ∧¬(A ∧B) ≡ ¬A ∨ ¬B De Morganov zakon¬(A ∨B) ≡ ¬A ∧ ¬B De Morganov zakon

A ∧ > ≡ A zakon konjunkcije sa tautologijomA ∨ > ≡ > zakon disjunkcije sa tautologijomA ∧ ⊥ ≡ ⊥ zakon konjunkcije sa kontradikcijomA ∨ ⊥ ≡ A zakon disjunkcije sa kontradikcijom

Logicke ekvivalencije navedene u primeru 2.6, izmedu ostalog, pokazujuda su 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.

Definicija 2.9 Rezultat zamene (supstitucije) svih pojavljivanja iskazne formule Cu iskaznoj formuli A iskaznom formulom D oznacavamo sa A[C 7→ D]. Ta zamena(supstitucija) definise se na sledeci nacin:

• ako za iskazne formule A i C vazi A = C, onda je A[C 7→ D] jednako D;

• ako za iskazne formule A i C vazi A 6= C i A je atomicka iskazna formula, ondaje A[C 7→ D] jednako A;

• ako za iskazne formule A, B i C vazi A 6= C i A = (¬B), onda je A[C 7→ D] =¬(B[C 7→ D]);

• ako za iskazne formule A, B1, B2 i C vazi A 6= C i A = (B1 ∧ B2) (A =(B1 ∨ B2), A = (B1 ⇒ B2), A = (B1 ⇔ B2)), onda je A[C 7→ D] =(B1[C 7→ D]) ∧ (B2[C 7→ D]) ((B1[C 7→ D]) ∨ (B2[C 7→ D]), (B1[C 7→D])⇒ (B2[C 7→ D]), (B1[C 7→ D])⇔ (B2[C 7→ D])).

Definicija 2.10 Uopstena zamena (supstitucija) je skup zamena [C1 7→ D1], [C2 7→D2], . . ., [Cn 7→ Dn] gde su Ci i Di proizvoljne iskazne formule. Takvu zamenu za-pisujemo [C1 7→ D1, C2 7→ D2, . . . , Cn 7→ Dn].

Page 26: Vestacka-inteligencija

26 2 Iskazna logika

Uopstena zamena primenjuje se simultano na sva pojavljivanja formula C1, C2,. . ., Cn u polaznoj formuli i samo na njih (tj. ne primenjuje se na potformule dobijenezamenama).

U daljem tekstu cemo umesto termina uopstena zamena (uopstena supstitucija)koristiti termin zamena (supstitucija).

Formulu koja je rezultat primene zamene [C1 7→ D1, C2 7→ D2, . . . , Cn 7→Dn] nad formulom A, oznacavamo sa A[C1 7→ D1, C2 7→ D2, . . . , Cn 7→ Dn].

Primer 2.7((p⇒ q)⇒ r)[p⇒ q 7→ ¬p ∨ q] = (¬p ∨ q)⇒ r((p⇒ q)⇒ (p⇒ r))[p⇒ q 7→ ¬p∨ q, p⇒ r 7→ ¬p∨ r] = (¬p∨ q)⇒ (¬p∨ r)((p⇒ q)⇒ r)[p⇒ q 7→ ¬p ∨ q,¬p ∨ q 7→ q ∨ ¬p] = (¬p ∨ q)⇒ r

Teorema 2.4 (Teorema o zameni) Ako je C ≡ D, onda je A[C 7→ D] ≡ A.

Zadaci

Zadatak 13√A1, A2, . . . , An |= B ako i samo ako |= (A1 ∧A2 ∧ . . . ∧An)⇒ B.

Zadatak 14√

Γ, A |= B ako i samo ako Γ |= A⇒ B.

Zadatak 15√

Ako je A1 ≡ A2 i B1 ≡ B2, onda je:

(a) ¬A1 ≡ ¬A2

(b) A1 ∧B1 ≡ A2 ∧B2

(c) A1 ∨B1 ≡ A2 ∨B2

(d) A1 ⇒ B1 ≡ A2 ⇒ B2

(e) A1 ⇔ B1 ≡ A2 ⇔ B2.

Zadatak 16√

Ako je iskazna formula A tautologija koja sadrzi iskazna slova p1, p2,. . . , pn i ako su A1, A2, . . . , An proizvoljne iskazne formule, onda je iskazna formulaB = A[p1 7→ A1, p2 7→ A2, . . . , pn 7→ An] takode tautologija.

Zadatak 17 Ako C nije potformula iskazne formule A, onda je A[C 7→ D] = A.

Zadatak 18 Dokazati da iz A ≡ A[C 7→ D] ne sledi C ≡ D.

2.2.4 Potpuni skupovi veznika

Istinitosna funkcija nad n argumenata je funkcija koja preslikava skup {0, 1}nu skup {0, 1}. Nad n argumenata ima 22n razlicitih istinitosnih funkcija (jerskup {0, 1}n ima 2n elemenata i svaki od njih se moze preslikati u 0 ili u 1).Svaka iskazna formula koja ima n iskaznih slova generise neku istinitosnufunkciju nad n argumenata. Logicki ekvivalentne iskazne formule (sa istimbrojem iskaznih slova) generisu identicne istinitosne funkcije. Svaka istini-tosna funkcija je generisana nekom iskaznom formulom koja sadrzi samo veznike∧, ∨ i ¬.

Page 27: Vestacka-inteligencija

2.2 Semantika iskazne logike 27

Primer 2.8

x1 x2 f(x1, x2)1 1 00 1 11 0 10 0 1

Iskazna formulaA koja generise istinitosnu funkciju f je (¬p1∧p2)∨(p1∧¬p2)∨(¬p1 ∧ ¬p2).

U bilo kojoj iskaznoj formuli, mogu se, koriscenjem ekvivalencijaA⇔ B ≡ (A⇒ B) ∧ (B ⇒ A)A⇒ B ≡ ¬A ∨BA ∨B ≡ ¬(¬A ∧ ¬B)

eliminisati sva pojavljivanja veznika ⇔, ⇒ i ∨. Dobijena formula sadrzace,dakle, samo veznike ¬ i ∧. Kazemo da je skup veznika {¬,∧} potpun, jer jesvaka iskazna formula logicki ekvivalentna nekoj iskaznoj formuli samo nadova dva veznika i bez logickih konstanti > i ⊥. Kako je skup {¬,∧} potpun,sledi da je svaka istinitosna funkcija generisana nekom iskaznom formulomkoja sadrzi samo veznike ∧ i ¬. Skup {¬,∨} je, takode, potpun.

Veznici ↓ i ↑ definisu se na sledeci nacin: A ↓ B je jednako ¬(A∨B), aA ↑ Bje jednako ¬(A∧B). Naglasimo da su ove definicije cisto sintaksne prirode i dazapis A ↓ B mozemo smatrati samo kracim zapisom formule ¬(A∨B). Veznik↓ zovemo nili ili Lukasijeviceva funkcija, a veznik ↑ zovemo ni ili Seferova funkcija.Na osnovu datih definicija mogu se izvesti istinitosne tablice za ↓ i ↑.

A B A ↓ B A ↑ B0 0 1 10 1 0 11 0 0 11 1 0 0

Lako se pokazuje da je ¬A ≡ (A ↓ A) iA∧B ≡ ((A ↓ A) ↓ (B ↓ B)). Kako jeskup veznika {¬,∧} potpun, sledi da je potpun i skup {↓}. Isto vazi i za skup{↑}.

Teorema 2.5 Veznici ↓ i ↑ su jedina dva binarna veznika koja sama (pojedinacno) cinepotpun sistem.

Teorema 2.5 je specijalni slucaj tvrdenja za veznike proizvoljne arnosti [?].

Zadaci

Zadatak 19 Dokazati da {⇒,∨} i {¬,⇔} nisu potpuni skupovi veznika.

Zadatak 20√

Svaki stanovnik jedne drzave ili uvek laze ili uvek govori istinu i nasvako pitanje odgovara uvek samo sa da ili ne. Neki turista dolazi na raskrsnicu u tojdrzavi i zna da samo jedan od dva puta vodi do glavnog grada. Ne postoji znak kojipokazuje koji je to put, ali postoji mestanin R koji stoji na raskrsnici. Koje da-ili-nepitanje treba turista da postavi da bi odredio kojim putem da krene?

Page 28: Vestacka-inteligencija

28 2 Iskazna logika

Zadatak 21 U racunarstvu se cesto koristi logicki veznik ∨ (iskljucivo ili, iskljuci-va disjunkcija, eksluzivno ili, ekskluzivna disjunkcija) koji moze biti definisan nasledeci nacin: A∨B je jednako (tj. to je kraci zapis za) ¬(A⇔ B) ili (A∧¬B)∨(¬A∧B). Ispitati da li je skup {∧,∨} potpun skup veznika.

2.2.5 Normalne forme

Definicija 2.11 Iskazna formula je u konjunktivnoj normalnoj formi (KNF) ako jeoblika

A1 ∧A2 ∧ . . . ∧Anpri cemu je svaka od formula Ai (1 ≤ i ≤ n) klauza (tj. disjunkcija literala).

Definicija 2.12 Iskazna formula je u disjunktivnoj normalnoj formi (DNF) ako jeoblika

A1 ∨A2 ∨ . . . ∨Anpri cemu je svaka od formula Ai (1 ≤ i ≤ n) konjunkcija literala.

Ako je iskazna formula A logicki ekvivalentna iskaznoj formuli B i iskaznaformula B je u konjunktivnoj (disjunktivnoj) normalnoj formi, onda kazemoda je formula B konjunktivna (disjunktivna) normalna forma formule A.

Koriscenjem pogodnih ekvivalencija, svaka iskazna formula moze biti trans-formisana u svoju konjunktivnu (disjunktivnu) normalnu formu. Naglasimoda jedna iskazna formula moze da ima vise konjunktivnih (disjunktivnih) nor-malnih formi (na primer, i formula (p ∨ r) ∧ (q ∨ r) ∧ (p ∨ s) ∧ (q ∨ s) i formula(s∨ q)∧ (p∨ r)∧ (q∨ r)∧ (p∨s)∧ (p∨¬p) su konjunktivne normalne forme for-mule (p∧ q)∨ (r ∧ s)). Slicno, jedna formula koja je u konjunktivnoj normalnojformi moze biti konjunktivna normalna forma za vise iskaznih formula.

Transformisanje iskazne formule u konjunktivnu normalnu formu mozebiti opisano algoritmom prikazanim na slici 2.1. Kada govorimo o ,,primenineke logicke ekvivalencije“ mislimo na koriscenje logicke ekvivalencije na os-novu teoreme o zameni (teorema 2.4).

Teorema 2.6 (Korektnost algoritma KNF) Algoritam KNF se zaustavlja i zado-voljava sledece svojstvo: ako je F ulazna formula, onda je izlazna formula F ′ u kon-junktivnoj normalnoj formi i logicki je ekvivalentna sa F .

Zaustavljanje algoritma KNF moze se dokazati koriscenjem pogodno odabranemere formula.2 Tvrdenje F ≡ F ′ sledi na osnovu teoreme 2.4 i cinjenice da se ualgoritmu koriste logicke ekvivalencije.

2 U cilju dokazivanja zaustavljanja postupka transformisanja formule u konjunktivnu normalnuformu definise se preslikavanje τ iz skupa iskaznih formula u skup prirodnih brojeva [?]:

τ(A) = 2 (gde je A atomicka formula)

τ(¬A) = 2τ(A)

τ(A ∧B) = τ(A) · τ(B)

τ(A ∨B) = τ(A) + τ(B) + 1

Moze se jednostavno dokazati da je vrednost τ(A′) uvek manja od τ(A) ako je formulaA′ dobijenaprimenom nekog pravila prezapisivanja na formulu A (jer, na primer, vazi da je τ(¬A ∧ ¬B) =

2τ(A)+τ(B) manje od τ(¬(A∨B)) = 2τ(A)+τ(B)+1). Odatle sledi da se postupak transformisanjaproizvoljne formule u konjuktivnu normalnu formu zaustavlja za proizvoljnu ulaznu formulu A(jer ne postoji beskonacan strogo opadajuci niz prirodnih brojeva ciji je prvi element τ(A)).

Page 29: Vestacka-inteligencija

2.2 Semantika iskazne logike 29

Algoritam: KNF

Ulaz: Iskazna formula FIzlaz: Konjunktivna normalna forma formule F

1. Eliminisati veznik ⇔ koristeci logicku ekvivalenciju

A⇔ B ≡ (A⇒ B) ∧ (B ⇒ A).

2. Eliminisati veznik ⇒ koristeci logicku ekvivalenciju

A⇒ B ≡ ¬A ∨B.

3. Dok god je to moguce, primenjivati logicke ekvivalencije

¬(A ∧B) ≡ ¬A ∨ ¬B i ¬(A ∨B) ≡ ¬A ∧ ¬B.

4. Eliminisati visestruke veznike ¬ koristeci logicku ekvivalenciju

¬¬A ≡ A.

5. Dok god je to moguce, primenjivati logicke ekvivalencije

(A ∨ (B ∧ C)) ≡ ((A ∨B) ∧ (A ∨ C)) i

((B ∧ C) ∨A) ≡ ((B ∨A) ∧ (C ∨A)).

Figure 2.1: Algoritam KNF

Naglasimo da transformisanje formule u njenu konjunktivnu normalnu for-mu moze da da formulu cija je duzina eksponencijalna u funkciji duzine po-lazne formule. Na primer, transformisanjem formule

(A1 ∧B1) ∨ (A2 ∧B2) ∨ . . . ∨ (An ∧Bn)

(koja ima n disjunkata) u njenu konjunktivnu normalnu formu, dobija se for-mula koja ima 2n konjunkta.

Transformisanje formule u disjunktivnu normalnu formu opisuje se algo-ritmom analognim algoritmu KNF.

Zadaci

Zadatak 22 Odrediti konjunktivnu normalnu formu i disjunktivnu normalnu formuza formule:

(a) (A⇒ B) ∨ (¬A ∧ C)(b) A⇔ (B ∧ ¬A)(c) ((A⇒ B)⇒ (C ⇒ ¬A))⇒ (¬B ⇒ ¬C)(d) ((((A⇒ B)⇒ ¬A)⇒ ¬B)⇒ ¬C)⇒ C(e) (A⇒ (B ⇒ C))⇒ ((A⇒ ¬C)⇒ (A⇒ ¬B))

Zadatak 23 Odrediti kanonsku disjunktivnu normalnu formu formule(¬A⇒ ¬B)⇒ ((B ∧ C)⇒ (A ∧ C)).

Zadatak 24 Odrediti kanonsku konjunktivnu normalnu formu formule(C ⇒ A)⇒ (¬(B ∨ C)⇒ A).

Page 30: Vestacka-inteligencija

30 2 Iskazna logika

Zadatak 25√

(Teorema o interpolaciji) Neka su A i B iskazne formule takve da Anije kontradikcija i B nije tautologija i neka je A⇒ B tautologija.

(a) Dokazati da A i B imaju bar jedno zajednicko iskazno slovo.(b) Dokazati da postoji iskazna formula C takva da C ima samo iskazna slova koja

su zajednicka za A i B i za koju vazi da su A⇒ C i C ⇒ B tautologije.

2.2.6 Dejvis–Patnam–Logman–Lovelandova procedura

Dejvis–Patnam–Logman–Lovelandova procedura3 (DPLL procedura) vrsi ispi-tivanje zadovoljivosti iskaznih formula [?]. Ona se primenjuje na iskazne for-mule u konjunktivnoj normalnoj formi (a za svaku iskaznu formulu postojinjena konjunktivna normalna forma). Ulazna formula je konjunkcija klauza.Pri tome (kako su konjunkcija i disjunkcija komutativne i asocijativne) nije bi-tan poredak tih klauza niti je u bilo kojoj od tih klauza bitan poredak literala;zato 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 da je skup (odnosnomultiskup) 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 nezado-voljiva; formula koja sadrzi praznu klauzu je nezadovoljiva.

Dejvis–Patnam–Logman–Lovelandova procedura data je na slici 2.2.

Teorema 2.7 (Korektnost DPLL procedure) Za svaku iskaznu formulu DPLL pro-cedura se zaustavlja i vraca odgovor DA ako i samo ako je polazna formula zadovoljiva.

Dejvis–Patnam–Logman–Lovelandova procedura je u najgorem slucaju eks-ponencijalne slozenosti O(2N ), gde je N broj iskaznih slova u formuli, usledrekurzivne primene split pravila (vise o slozenosti izracunavanja videti u do-datku ??). Iste (eksponencijalne) slozenosti su i svi drugi do sada poznati algo-ritmi za ispitivanje zadovoljivosti. Ipak, svi ti algoritmi su znatno efikasniji odmetode istinitosnih tablica.

Izbor iskaznog slova u pravilu split je veoma 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.

Formula je tautologija ako i samo ako njena negacija nije zadovoljiva, for-mula je kontradikcija ako i samo ako ona nije zadovoljiva i formula je porecivaako i samo ako je njena negacija zadovoljiva. Primetimo da odatle sledi daDPLL proceduru mozemo iskoristiti i za ispitavanje da li je data formula tau-tologija, poreciva ili kontradikcija.

3Na ovu proceduru se, zbog dve njene verzije, ponekad ukazuje kao na Dejvis–Patnamovu (DP)proceduru ili kao na Dejvis–Logman–Lovelandovu (DLL) proceduru.

4 Multiskup je, neformalno, skup u kojem se elementi mogu pojavljivati vise puta.

Page 31: Vestacka-inteligencija

2.2 Semantika iskazne logike 31

Algoritam: DPLL

Ulaz: Multiskup klauza D (D = {C1, C2, . . . , Cn})Izlaz: DA, ako je multiskup D zadovoljiv;

NE, ako multiskup D nije zadovoljiv

1. Ako je D prazan, vrati DA.

2. Zameni sve literale ¬⊥ sa > i zameni sve literale ¬> sa ⊥.

3. Obrisi sve literale jednake ⊥.

4. Ako D sadrzi praznu klauzu, vrati NE.

5. Ako neka klauza Ci sadrzi literal > ili sadrzi i neki literal i njegovunegaciju, vrati vrednost koju vraca DPLL(D \ Ci) (tautology).

6. Ako je neka klauza jedinicna i jednaka nekom iskaznom slovu p, ondavrati vrednost koju vraca DPLL(D[p 7→ >]); ako je neka klauza je-dinicna i jednaka ¬p, gde je p neko iskazno slovo, onda vrati vrednostkoju vraca DPLL(D[p 7→ ⊥]) (unit propagation).

7. Ako D sadrzi literal p (gde je p neko iskazno slovo), a ne i literal ¬p,onda vrati vrednost koju vraca DPLL(D[p 7→ >]); ako D sadrzi literal¬p (gde je p neko iskazno slovo), a ne i literal p, onda vrati vrednostkoju vraca DPLL(D[¬p 7→ >]) (pure literal).

8. Ako DPLL(D[p 7→ >]) vraca DA, onda vrati DA; inace vrati vrednostkoju vraca DPLL(D[p 7→ ⊥]) (gde je p jedno od iskaznih slova kojese javljaju u D) (split).

Figure 2.2: DPLL procedura

Zadaci

Zadatak 26 Primenom DPLL algoritma ispitati da li su sledece formule zadovoljive:(a) (p⇒ r)⇒ ((q ⇒ r)⇒ (p ∨ q ⇒ r))(b) ¬((p⇒ r)⇒ ((q ⇒ r)⇒ (p ∨ q ⇒ r)))

Zadatak 27 Primenom DPLL algoritma ispitati da li je formula (p∨¬q∨¬r)∧(¬p∨q ∨ ¬r) ∧ (p ∨ ¬q ∨ r) zadovoljiva, tautologija, poreciva, kontradikcija.

2.2.7 Primer modelovanja problema u iskaznoj logici

Modeliranja jednog problema bice prikazano na primeru jednostavne igre -Vumpus.U pecini u kojoj zivi cudoviste Vumpus nalazi se zlato. Igrac ulazi u pecinui trazi ga. Igra se igra na tabli od 4x4 polja. Vumpus se nalazi na jednom odnjih. Na nekima od njih se mogu nalaziti provalije, a na jednom je zlato. Postoje u pecini mrak igrac ne vidi sta se nalazi na susednim poljima. Na poljimaoko provalija se oseca povetarac. Kako se Vumpus ne kupa, na poljima okonjega, oseca se smrad. Ako igrac stane na polje na kome se nalazi provalija ili

Page 32: Vestacka-inteligencija

32 2 Iskazna logika

Figure 2.3: Tabla za igru Vumpus

Vumpus, on strada i igra je zavrsena. Igrac ima jednu strelu koju moze odapetina susedno polje kako bi ubio Vumpusa. Primer table je prikazan na slici 2.2.7.

Znanje o okolini u kojoj se igrac nalazi, moze se modelirati pravilima oblika

Pravila za slucaj kada nema smrada:

R1 : ¬S11 ⇒ ¬V11 ∧ ¬V12 ∧ ¬V21

R2 : ¬S21 ⇒ ¬V11 ∧ ¬V21 ∧ ¬V31 ∧ ¬V22

R3 : ¬S12 ⇒ ¬V11 ∧ ¬V12 ∧ ¬V13 ∧ ¬V22

...

Pravila za slucaj kada ima smrada:

R4 : S12 ⇒ V11 ∨ V12 ∨ V13 ∨ V22

...

Page 33: Vestacka-inteligencija

2.2 Semantika iskazne logike 33

Na pocetnom polju igrac ne oseca ni smrad ni povetarac, pa zna da su polja(2,1) i (1,2) bezbedna. Recimo da prvo ode na polje (2,1). Tu oseca povetarac izna da se na polju (3,1) ili (2,2) nalazi provalija, pa se vraca na polje (1,1). Postoje na polju (2,1) upravo bio, istrazuje polje (1,2). Tu se oseca smrad. Dosadasnjaigraceva znanja se mogu se opisati na sledeci nacin:

¬S11,¬S21, S12

¬P11, P21,¬P12

Nalazenje Vumpusa je sada lako.

1. Na osnovu R4 i S12, dobija se

V11 ∨ V12 ∨ V13 ∨ V22

2. Na osnovu R1 i ¬S11, dobija se

¬V11 ∧ ¬V12 ∧ ¬V21

3. Odatle¬V11 ¬V12 ¬V21

4. Na osnovu V11 ∨ V12 ∨ V13 ∨ V22 i ¬V11, dobija se

V12 ∨ V13 ∨ V22

5. Na osnovu V12 ∨ V13 ∨ V22 i ¬V12, dobija se

V13 ∨ V22

6. Na osnovu R2 i ¬S21, dobija se

¬V11 ∧ ¬V21 ∧ ¬V31 ∧ ¬V22

7. Odatle¬V11 ¬V21 ¬V31 ¬V22

8. Na osnovu V13 ∨ V22 i ¬V22, dobija se

V13

Znaci Vumpus se nalazi na polju (1,3).Da bismo dali primer zapisivanja akcije koju igrac moze da preduzme uvescemo

i orijentaciju igraca. Neka 4 promenljive Oi oznacavaju orijentaciju igraca ka4 strane sveta. Npr. O1 znaci da je igrac orijentisan prema istoku, O2 premazapadu,O3 prema severu iO4 prema jugu. Kako bi opis orijentacije bio konzis-tentan, potrebno je zadovoljiti uslov da igrac ne bude orijentisan na vise stranaodjednom

¬(O1 ∧O2) ∧ ¬(O1 ∧O3) ∧ ¬(O1 ∧O4) ∧ ¬(O2 ∧O3)¬(O2 ∧O4)¬(O3 ∧O4).

Page 34: Vestacka-inteligencija

34 2 Iskazna logika

S druge strane potrebno je da igrac bude orijentisan na neku stranu sto seizrazava uslovom

O1 ∨O2 ∨O3 ∨O4.

Sada se akcija odapinjanja strele na susedno polje na kome se nalazi Vum-pus moze zapisati kao:

A11 ∧O1 ∧ V21 ⇒ Pucaj

Ocigledan problem je sto za 16 polja za jednu orijentaciju postoji 16 pravilaovog tipa. Pomocu predikatskog racuna bi svih 16 moglo biti zapisana jednimpravilom:

∀i∀j(Aij ∧O1 ∧ Vi+1,j ⇒ Pucaj).

Page 35: Vestacka-inteligencija

Glava 3

Logika prvog reda

Logika prvog reda, predikatska logika, znatno je izrazajnija od iskazne logike.Osnovna novina u odnosu na iskaznu logiku je uvodenje kvantifikovanja, uni-verzalnog i egzistencijalnog. Zahvaljujuci kvantifikatorima, u logici prvog redamogu se formulisati tvrdenja koja nije moguce formulisati na jeziku iskaznelogike kao, na primer, tvrdenje ,,za svaku valuaciju postoji klauza iz S koja nijetacna ako i samo ako ne postoji valuacija takva da je svaka klauza iz S tacna“. Ulogici prvog reda dozvoljeno je samo kvantifikovanje promenljivih.1 U okvirulogike prvog reda mogu se opisati mnoge matematicke teorije.

Kao i iskazna logika, logika prvog reda ima tri aspekta: svoju sintaksu(ili jezik), svoju semantiku (ili znacenje iskaza) i svoje deduktivne sisteme. Isemantika i deduktivni sistemi grade se nad isto definisanom sintaksom, tj. nadistim skupom formula.

Kao i u iskaznoj logici, centralni problemi u predikatskoj logici su ispiti-vanje da li je data formula valjana i da li je data formula zadovoljiva. Za raz-liku od iskazne logike, ovi problemi nisu odlucivi, te ne postoje efektivni algo-ritmi za njihovo resavanje. No, problem ispitivanja valjanosti za predikatskulogiku je poluodluciv, pa postoje metode koje za svaku valjanu formulu moguda dokazu da je ona valjana (a ne mogu za bilo koju formulu koja nije valjanada utvrde da nije valjana).

Postoji vise metoda i pristupa za ispitivanje i dokazivanje valjanosti i zado-voljivosti. Neki od njih su semanticke, a neki deduktivne (tj. sintaksno-deduk-tivne) prirode. Kao i u iskaznoj logici, kljucna veza izmedu ova dva konceptaje tvrdenje da je formula valjana (sto je semanticka kategorija) ako i samo akoje ona teorema (sto je deduktivna kategorija). Zahvaljujuci ovoj vezi, sintaksapredikatske logike (jezik predikatske logike), njena semantika (konvencije oznacenju formula) i njena deduktivna svojstva cine kompaktnu celinu.

1 U logici viseg reda predikati i funkcije kao argumente mogu imati druge predikate i funkcijei dozvoljeno je njihovo kvantifikovanje. Na primer, u logici drugog reda predikati i funkcije moguza argumente imati predikate i funkcije prvog reda i mogu biti kvantifikovani. Predikati i funkcijereda n mogu za argumente imati predikate i funkcije n− 1 reda i mogu biti kvantifikovani.

Page 36: Vestacka-inteligencija

36 3 Logika prvog reda

3.1 Sintaksa logike prvog reda

Sintaksni aspekt logike prvog reda govori o njenom jeziku, a o formulamaiskljucivo kao o nizovima simbola i ne uzima u obzir njihovo moguce znacenje.

Definicija 3.1 Logicki deo jezika prvog reda cine skupovi:

1. prebrojiv skup promenljivih V ;

2. skup logickih veznika {¬,∧,∨,⇒,⇔}, pri cemu je¬ unarni veznik, a∧,∨,⇒i⇔ su binarni veznici;

3. skup kvantifikatora {∀,∃}, pri cemu je ∀ univerzalni kvantifikator, a ∃egzistencijalni kvantifikator;

4. skup logickih konstanti {>,⊥};

5. skup pomocnih simbola {(, ), ,}.

Elemente nabrojanih skupova zovemo logicki simboli.Recnik ili signatura L sastoji se od najvise prebrojivih skupova Σ i Π, koje redom

nazivamo skupom funkcijskih simbola i skupom predikatskih (relacijskih) sim-bola, kao i od funkcije ar koja preslikava skup Σ∪Π u skup nenegativnih celih brojeva.Za k ∈ Σ∪Π, vrednost ar(k) zovemo stepen ili arnost simbola k. Presek svaka dva odskupova Σ, Π, skupa promenljivih, skupa logickih veznika, skupa kvantifikatora, skupalogickih konstanti i skupa pomocnih simbola je prazan. Funkcijske simbole arnosti 0zovemo simbolima konstanti. Skupovi Σ i Π cine nelogicki deo jezika prvog reda,a sve njihove elemente zovemo nelogickim simbolima.

Za datu signaturuL = (Σ,Π, ar)

rec nad L je bilo koji niz simbola iz skupova Σ, Π ili logickog dela jezika.

Uz indeks ili bez indeksa, obicno oznacavamo sa:

• a, b, c, . . . simbole konstanti;

• f, g, h, . . . funkcijske simbole arnosti vece od 0;

• p, q, r, . . . predikatske simbole;

• x, y, z, . . . promenljive.

Definicija 3.2 Skup termova nad signaturomL = (Σ,Π, ar) i skupom promenljivihV je skup za koji vazi:

• svaki simbol konstante (tj. svaki funkcijski simbol arnosti 0) je term;

• svaki simbol promenljive je term;

• ako je f funkcijski simbol za koji je ar(f) = n i t1, t2, . . ., tn su termovi, ondaje i f(t1, t2, . . . , tn) term.

• termovi se mogu dobiti samo konacnom primenom prethodna dva pravila.

Definicija 3.3 Skup atomickih formula nad signaturom L = (Σ,Π, ar) i skupompromenljivih V je skup za koji vazi:

Page 37: Vestacka-inteligencija

3.1 Sintaksa logike prvog reda 37

• logicke konstante > i ⊥ su atomicke formule;

• ako je p predikatski simbol za koji je ar(p) = n i t1, t2, . . ., tn su termovi, ondaje p(t1, t2, . . . , tn) atomicka formula.

• atomicke formule se mogu dobiti samo konacnom primenom prethodna dva prav-ila.

Definicija 3.4 Skup dobro zasnovanih formula nad signaturom L = (Σ,Π, ar) iskupom promenljivih V (ili jezik prvog reda nad L i V ) je skup za koji vazi:

• svaka atomicka formula je dobro zasnovana formula;

• ako je A dobro zasnovana formula, onda je i (¬A) dobro zasnovana formula;

• ako su A i B dobro zasnovane formule, onda su i (A ∧ B), (A ∨ B), (A ⇒ B) i(A ⇔ B) dobro zasnovane formule;

• ako jeA dobro zasnovana formula i x je promenljiva, onda su ((∀x)A) i ((∃x)A)dobro zasnovane formule.

• dobro zasnovane formule se mogu dobiti samo konacnom primenom prethodnihpravila.

Umesto termina dobro zasnovana formula, cesto cemo pisati krace formula.Dobro zasnovane formule obicno oznacavamo velikim pisanim latinicnim

slovima (eventualno sa indeksima). Skupove dobro zasnovanih formula obicnooznacavamo velikim slovima grckog alfabeta (eventualno sa indeksima).

Logicke veznike zovemo i bulovskim veznicima ili, krace, veznicima. Veznik¬ zovemo negacija, veznik ∧ konjunkcija, ∨ disjunkcija, veznik⇒ implikacija i⇔ekvivalencija. Zapis (¬A) citamo negacija A ili ne A. Zapis (A ∧ B) citamo Akonjunkcija B ili A i B. Zapis (A ∨ B) citamo A disjunkcija B ili A ili B. Zapis(A ⇒ B) citamo A implikacija B ili iz A sledi B. Zapis (A ⇔ B) citamo Aekvivalencija B ili A ekvivalentno B. Zapis ((∀x)A) citamo za svako x A. Zapis((∃x)A) citamo postoji x takvo da je A.

Ako su dve dobro zasnovane formule A i B sintaksno identicne (tj. akosu jednake kao nizovi simbola), onda to oznacavamo A = B. Ako dve dobrozasnovane formuleA i B nisu sintaksno identicne, onda to oznacavamoA 6= B.

Termove, atomicke formule i dobro zasnovane formule nad signaturom Lponekad cemo krace zvati i L-termovi, L-atomicke formule i L-formule.

Bazni term je term koji ne sadrzi nijednu promenljivu. Bazna formula je for-mula koja ne sadrzi nijednu promenljivu.

Literal je atomicka formula ili negacija atomicke formule. Klauza je dis-junkcija literala.

Da bismo izbegli koriscenje velikog broja zagrada obicno izostavljamo spolj-ne zagrade i usvajamo konvenciju uz koju u nekim dobro zasnovanim formu-lama neke zagrade mogu biti izostavljene i to na isti nacin kao i za iskazneformule, pri cemu kvantifikatori imaju veci prioritet od svih logickih veznika.

Kazemo da formula A odreduje ili indukuje signaturu L, ako je L signaturakoja sadrzi sve funkcijske i predikatske simbole iz A i nijedan vise.

Definicija 3.5 Funkcija c iz skupa dobro zasnovanih formula u N svakoj dobro zas-novanoj formuli pridruzuje slozenost na sledeci nacin:

Page 38: Vestacka-inteligencija

38 3 Logika prvog reda

1. ako je A atomicka dobro zasnovana formula, onda je c(A) = 0;

2. c(¬A) = c(A) + 1;

3. c(A ∧ B) = c(A) + c(B) + 1;

4. c(A ∨ B) = c(A) + c(B) + 1;

5. c(A ⇒ B) = c(A) + c(B) + 1;

6. c(A ⇔ B) = c(A) + c(B) + 1;

7. c(∀xA) = c(A) + 1;

8. c(∃xA) = c(A) + 1.

Definicija 3.6 Slobodno pojavljivanje i vezano pojavljivanje promenljive u for-muli definise se na sledeci nacin:

• svako pojavljivanje promenljive u atomickoj formuli je slobodno u toj formuli;

• svako pojavljivanje promenljive koje je slobodno u A je slobodno i u ¬A; svakopojavljivanje promenljive koje je vezano u A je vezano i u ¬A;

• svako pojavljivanje promenljive koje je slobodno uA ili u B je slobodno i uA∧B,A ∨ B, A ⇒ B, A ⇔ B; svako pojavljivanje promenljive koje je vezano u A iliu B je vezano i u A ∧ B, A ∨ B, A ⇒ B, A ⇔ B;

• svako slobodno pojavljivanje promenljive razlicite od x u formuli A je takodeslobodno u formuli (∀x)A; svako slobodno pojavljivanje promenljive x u Aje vezano (vodecim kvantifikatorom) u (∀x)A (tada kazemo da je x u doseguvodeceg kvantifikatora); pojavljivanje promenljive x u (∀x) u formuli (∀x)A jevezano; analogno za egzistencijalni kvantifikator.

Definicija 3.7 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 3.1 U formuli p(x, y), pojavljivanje promenljive x je slobodno i ona je slo-bodna u ovoj formuli.

U formuli p(x, y) ⇒ (∀x)q(x) prvo pojavljivanje promenljive x je slobodno, adrugo i trece pojavljivanje je vezano. U ovoj formuli, promenljiva x je i slobodna ivezana.

U formuli (∀x)p(x, y) ⇒ (∀x)q(x), sva pojavljivanja promenljive x su vezana ipromenljiva je vezana u ovoj formuli.

U sva tri primera, pojavljivanja promenljive y su slobodna.

Primer 3.2 U formuli (∃x)(p(x) ∧ (∀x)q(x)) cetvrto pojavljivanje promenljive x jevezano i ono je u dosegu kvantifikatora ∀x, a ne i kvantifikatora ∃x.

Page 39: Vestacka-inteligencija

3.2 Semantika logike prvog reda 39

Cesto cemo pokazivati da formula A ima slobodne promenljive x1, x2, . . .,xn zapisom A(x1, x2, . . . , xn). Ovaj zapis, medutim, ne znaci da formula Ane sadrzi jos neke slobodne promenljive, niti znaci da promenljive x1, x2, . . .,xn nemaju i neka vezana pojavljivanja u formuli A. Zapis A(x1, x2, . . . , xn) jepogodan, jer mozemo da usvojimo konvenciju da kao A(t1, t2, . . . , tn) zapisu-jemo formulu dobijenu zamenjivanjem svih slobodnih pojavljivanja promenlji-vih x1, x2, . . . , xn redom termovima t1, t2, . . . , tn.L-formulu bez slobodnih promenljivih zovemo zatvorena L-formula ili L-

recenica. Za formuluA kazemo da je univerzalno zatvorena ako je oblika (∀x1)(∀x2) . . . (∀xk)A′,gde je xi ∈ V (i = 1, 2, . . . , k) i A′ ne sadrzi kvantifikatore kao ni slobodnepromenljive osim (eventualno) promenljivih x1, x2, . . . , xk. Formula A je egzis-tencijalno zatvorena ako je oblika (∃x1)(∃x2) . . . (∃xk)A′ gde je xi ∈ V (i =1, 2, . . . , k) iA′ ne sadrzi kvantifikatore kao ni slobodne promenljive osim (even-tualno) promenljivih x1, x2, . . . , xk. Ako formula A ima kao slobodne samopromenljive x1, x2, . . . , xk onda formulu (∀x1)(∀x2) . . . (∀xk)A nazivamo uni-verzalnim zatvorenjem formuleA i krace je oznacavamo sa ∀∗A. Ako formulaAima kao slobodne samo promenljive x1, x2, . . . , xk, onda formulu (∃x1)(∃x2) . . .(∃xk)A nazivamo egzistencijalnim zatvorenjem formule A i krace je oznacavamosa ∃∗ A.

Zadaci

Zadatak 28 Zapisati narednu recenicu u vidu dobro zasnovane formule logike prvogreda:

(a) Svako voli nekoga i niko ne voli svakoga ili neko voli svakoga i neko ne volinikoga.

(b) Mozete lagati neke ljude sve vreme i mozete lagati sve ljude neko vreme, ali nemozete lagati sve ljude sve vreme.

3.2 Semantika logike prvog reda

Semanticki aspekt logike prvog reda govori o znacenju formula. U nastavku cebiti uvedena semantika logike prvog reda u stilu Tarskog (koji je prvi preciznouveo pojam semantike 1933. godine) [?]. Tako uvedenu semantiku zovemo isemantika Tarskog.

3.2.1 Valuacija, interpretacija, model; zadovoljive, valjane,porecive i kontradiktorne formule

U nastavku cemo smatrati da se podrazumeva (i kada to nije eksplicitno receno)da se, kada se govori o formulama, govori o L-formulama za neku fiksnusignaturu L i fiksan skup promenljivih V .

Definicija 3.8 Za datu signaturu L, L-struktura D je par (D, IL), gde je D skup, aIL funkcija pri cemu vazi sledece:

• D je neprazan skup i zovemo ga domen, nosac ili univerzum;

• svakom simbolu konstante c iz L (tj. svakom funkcijskom simbolu arnosti 0),funkcija IL pridruzuje jedan element cI iz D;

Page 40: Vestacka-inteligencija

40 3 Logika prvog reda

• svakom funkcijskom simbolu f iz L za koji je ar(f) = n i n > 0, funkcija IL

pridruzuje jednu totalnu funkciju fI iz Dn u D;

• svakom predikatskom simbolu p iz L za koji je ar(p) = n (i n > 0) funkcija IL

pridruzuje jednu totalnu funkciju pI iz Dn u {0, 1} .

Valuacija v za skup promenljivih V u odnosu na domen D je preslikavanjekoje svakom elementu iz V dodeljuje jedan element iz D. Ako je v(xi) = dj ,onda kazemo da je dj vrednost promenljive xi u valuaciji v. Ako su v i w va-luacije za isti skup promenljivih i u odnosu na isti domen, onda sa v ∼x woznacavamo da je v(y) = w(y) za svaku promenljivu y razlicitu od x.

Ako je D = (D, IL) L-struktura za neku signaturu L i v valuacija za skuppromenljivih V i za domen D, onda par (D, v) odreduje interpretaciju, tj. funk-ciju Iv koja preslikava skup L-termova nad skupom promenljivih V u skup D,a skup L-formula nad skupom promenljivih V u skup {0, 1}. Funkcija Iv uvodise narednim dvema definicijama.

Definicija 3.9 Vrednost (ili znacenje) terma t u interpretaciji Iv , odredenojL-strukturomD i valuacijom v, oznacavamo sa Iv(t) i definisemo na sledeci nacin:

• ako je t simbol promenljive x, onda je Iv(t) = v(x);

• ako je t simbol konstante c, onda je Iv(t) = cI ;

• ako je t jednako f(t1, t2, . . . , tn) (pri cemu je ar(f) = n) i ako je Iv(ti) = di zai = 1, 2, . . . , n (pri cemu je di ∈ D), onda je Iv(t) = fI(d1, d2, . . . , dn).

Definicija 3.10 Vrednost (ili znacenje) formule A u interpretaciji Iv , odredenoj L-strukturom D i valuacijom v, oznacavamo sa Iv(A) i definisemo na sledeci nacin:

• ako je A atomicka formula > onda je Iv(A) = 1;

• ako je A atomicka formula ⊥ onda je Iv(A) = 0;

• ako je A atomicka formula p(t1, t2, . . . , tn) (pri cemu je ar(p) = n) i akoje Iv(ti) = di za i = 1, 2, . . . , n (pri cemu je di ∈ D), onda je Iv(A) =pI(d1, d2, . . . , dn);

• ako je A = ¬B, onda je

Iv(A) ={

0, ako je Iv(B) = 11, ako je Iv(B) = 0

• ako je A = B1 ∧ B2, onda je

Iv(A) ={

1, ako je Iv(B1) = 1 i Iv(B2) = 10, inace

• ako je A = B1 ∨ B2, onda je

Iv(A) ={

1, ako je Iv(B1) = 1 ili Iv(B2) = 10, inace

Page 41: Vestacka-inteligencija

3.2 Semantika logike prvog reda 41

• ako je A = B1 ⇒ B2, onda je

Iv(A) ={

0, ako je Iv(B1) = 1 i Iv(B2) = 01, inace

• ako je A = B1 ⇔ B2, onda je

Iv(A) ={

1, ako je Iv(B1) = Iv(B2)0, inace

• ako je A = (∃x)B, onda je Iv(A) = 1 ako postoji valuacija w sa domenom Dtakva da je w ∼x v i Iw(B) = 1; inace je Iv(A) = 0;

• ako je A = (∀x)B, onda je Iv(A) = 0 ako postoji valuacija w sa domenom Dtakva da je w ∼x v i Iw(B) = 0; inace je Iv(A) = 1.

Moze se dokazati da je na opisani nacin svakoj formuli A nad signaturomL i skupom V pridruzena (jedinstvena) vrednost Iv(A). Primetimo da Iv(A)zavisi od v(x) samo ako promenljiva x ima slobodna pojavljivanja u formuliA. Vrednost Iv(A), dakle, zavisi samo od slobodnih promenljivih u formuliA. Specijalno, ako je A recenica, vrednost Iv(A) uopste ne zavisi od v, pa tadaumesto Iv(A) pisemo krace I(A).

Definicija 3.11 Ako je interpretacija Iv odredena L-strukturom D i valuacijom v iako za L-formulu A vazi Iv(A) = 1, onda kazemo da interpretacija Iv zadovol-java formulu A, da je formula A tacna u interpretaciji Iv i da je L-struktura D savaluacijom v model formule A i pisemo (D, v) |= A. Formula A je zadovoljiva uL-strukturi D ako postoji valuacija v takva da je (D, v) |= A. L-formula A je zado-voljiva ako postoje L-struktura D i valuacija v takve da je (D, v) |= A.

Ako formula nije zadovoljiva, onda kazemo da je ona kontradiktorna.

Definicija 3.12 Ako je za neku L-strukturu D formula A tacna za svaku valuacijuv, tj. u svakoj interpretaciji Iv , onda kazemo da je L-struktura D model formule A,kazemo da je formulaA valjana u L-strukturi D i pisemo D |= A. Ako je formula nadsignaturom L valjana u svakoj L-strukturi, onda za tu formulu kazemo da je valjanai to zapisujemo |= A.

Ako formula nije valjana, onda kazemo da je ona poreciva.Ako nije D |= A, onda pisemo D 6|= A i kazemo da je D kontramodel za A.

Analogne definicije uvodimo za skupove formula.

Definicija 3.13 Skup recenica Γ je konzinstentan ili zadovoljiv ako ima bar jedanmodel. Inace, kazemo da je nekonzistentan, nezadovoljiv, protivrecan ili kon-tradiktoran.

Teorema 3.1 Ako su formule A i A ⇒ B (nad nekom signaturom L) valjane, onda jei formula B valjana.

Dokaz: Pretpostavimo da postoje L-struktura D i odgovarajuca interpretacijaIv u kojoj formula B nije tacna. Formula A je valjana, pa je tacna i uinterpretaciji Iv . U toj interpretaciji, onda, formula A ⇒ B nije tacna (jerje Iv(A) = 1 i Iv(B) = 0), sto protivreci pretpostavci da je formulaA ⇒ Bvaljana. Dakle, polazna pretpostavka je pogresna, pa je formula B tacnau svakoj interpretaciji, tj. ona je valjana, sto je i trebalo dokazati. 2

Page 42: Vestacka-inteligencija

42 3 Logika prvog reda

Teorema 3.2 FormulaA nad signaturom L je valjana u L-strukturi D ako i samo akoje formula (∀x)A valjana u D.

Dokaz: Pretpostavimo da je formula A valjana u D. Pretpostavimo da formula(∀x)A nije valjana u D, tj. pretpostavimo da postoji valuacija v takva daje Iv((∀x)A) = 0. Odatle sledi da postoji valuacija w za koju je w ∼x vi vazi Iw(A) = 0, pa formula A nije valjana u D, sto je u suprotnosti sapretpostavkom. Dakle, formula (∀x)A je valjana u D.

Pretpostavimo da je formula (∀x)A valjana u D. To znaci da za svakuvaluaciju v vazi Iv((∀x)A) = 1. Pretpostavimo da formula A nije valjanau D. Tada postoji valuacija w takva da je Iw(A) = 0, pa je Iw((∀x)A) = 0,sto je u suprotnosti sa pretpostavkom. Dakle, formula A je valjana u D.

2

Teorema 3.3 Formula A je valjana ako i samo ako je formula (∀x)A valjana.

Dokaz: Neka je A formula nad signaturom L. Ako je formula A valjana, ondaje ona valjana u svakoj L-strukturi D, pa je onda, na osnovu teoreme 3.2,u svakoj L-strukturi D valjana i formula (∀x)A. Analogno vazi i obratno,pa je formula A valjana ako i samo ako je formula (∀x)A valjana. 2

Na osnovu teorema 3.2 i 3.3 i jednostavnog induktivnog argumenta sledenaredne dve teoreme.

Teorema 3.4 FormulaA nad signaturom L je valjana u L-strukturi D ako i samo akoje formula ∀ ∗ A valjana u D.

Teorema 3.5 Formula A je valjana ako i samo ako je formula ∀ ∗ A valjana.

Naredne dve teoreme analogne su (preciznije dualne) prethodnim teore-mama.

Teorema 3.6 FormulaA nad signaturom L je zadovoljiva u L-strukturi D ako i samoako je formula ∃ ∗ A zadovoljiva u D.

Teorema 3.7 Formula A je zadovoljiva ako i samo ako je formula ∃ ∗ A zadovoljiva.

Zadaci

Zadatak 29√

Odrediti bar jedan model formule (∀x)(p(x)⇒ p(f(x))).

Zadatak 30√

Ispitati da li je L-struktura data sa D = {a, b, c} i

fIa bb ac a

pI a b ca 1 1 0b 1 0 1c 0 0 1

model formule (∀x)(p(x, f(x))⇒ p(f(x), x)).

Page 43: Vestacka-inteligencija

3.2 Semantika logike prvog reda 43

Zadatak 31√

Odrediti sve dvoclane modele formule (∀x)(∃y)(p(x, y)⇒¬p(y, x)).

Zadatak 32√

Odrediti jedan model i jedan kontramodel za formulu(∀x)(∃y)(p(f(x, y), a)).

Zadatak 33√

Data je formulaA = (∀x)(p(x, f(x)) ∧ ¬p(x, x)) ∧(∀x)(∀y)(∀z)(p(x, y) ∧ p(y, z)⇒ p(x, z)).(a) Odrediti bar jedan model za formulu A.(b) Odrediti bar jedan kontramodel za formulu A.(c) Dokazati da svaki model formule A ima beskonacan domen.

Zadatak 34√

Dokazati da je formula (∀x)(∀y)(∃z)(p(x) ∧ p(y)⇔ p(z)) valjana.

Zadatak 35 Dokazati da su naredne formule valjane:(a) (∃x)(∀y)A ⇒ (∀y)(∃x)A(b) ((∃x)(A⇒B))⇔(A⇒(∃x)B), pri cemu promenljiva x nije slobodna u A.

Zadatak 36 Dokazati da naredne formule nisu valjane:(a) (∃x)A1 ∧ (∃x)A2 ⇔ (∃x)(A1 ∧ A2)(b) (∀x)A1 ∨ (∀x)A2 ⇔ (∀x)(A1 ∨ A2)

Zadatak 37 Dokazati da formula (∀x)(∃y)p(x, y)⇔ (∃y)(∀x)p(x, y) nije valjana.

Zadatak 38 Dokazati da je sledeca formula valjana:

((∀x)A) ∧ B ⇔ (∀x)(A ∧ B)

pri cemu formula B nema slobodnih pojavljivanja promenljive x. Dokazati da dataformula nije valjana ako se izostavi navedeni dodatni uslov.

3.2.2 Logicke posledice, logicki ekvivalentne formule,supstitucija

Definicija 3.14 Neka je Γ skup formula i neka je A formula nad signaturom L.Kazemo da je formula A logicka posledica skupa formula Γ i pisemo Γ |= A uko-liko za svaku L-strukturu D i svaku valuaciju v vazi: ako za svaku formulu B iz Γvazi (D, v) |= B, onda vazi (D, v) |= A.

Drugim recima, kazemo da je formula A logicka posledica skupa formulaΓ ako je svaki model za Γ istovremeno i model za A.

Ako je skup Γ konacan, tj. ako je Γ = {B1,B2, . . . ,Bk}, onda pisemo B1, B2,. . . , Bk |= A. Ako je Γ prazan skup, onda pisemo |= A. Ako je |= A, ondaformulu A zadovoljava svaka interpretacija i tada je formula A valjana.

Ako ne vazi Γ |= A, onda to zapisujemo Γ 6|= A.Na osnovu definicije logicke posledice, jednostavno se dokazuje naredno

tvrdenje (analogno teoremi 2.2).

Teorema 3.8

(a) Svaka valjana formula je logicka posledica praznog skupa formula.

(b) Ako je skup Γ kontradiktoran, onda je svaka formula njegova logicka posledica.Specijalno, svaka formula je logicka posledica skupa {⊥}.

Page 44: Vestacka-inteligencija

44 3 Logika prvog reda

(c) Ako je Γ ⊂ ∆ i Γ |= A, onda je ∆ |= A.

Definicija 3.15 Kazemo da su formule A i B logicki ekvivalentne i pisemo A ≡ Bako je A logicka posledica formule B i B je logicka posledica formule A.

Ako je svaki model za A istovremeno i model za B i obratno, onda u bilokojoj valuaciji formule A i B imaju jednake vrednosti. Tvrdenja oblika A ≡ Bzovemo logickim ekvivalencijama (ili krace ekvivalencijama). Relacija≡ je, ocigled-no, relacija ekvivalencije nad skupom formula.

Teorema 3.9 Ako za L-formule A1, A2, B1 i B2 vazi A1 ≡ A2 i B1 ≡ B2, onda je:

(a) ¬A1 ≡ ¬A2

(b) A1 ∧ B1 ≡ A2 ∧ B2

(c) A1 ∨ B1 ≡ A2 ∨ B2

(d) A1 ⇒ B1 ≡ A2 ⇒ B2

(e) A1 ⇔ B1 ≡ A2 ⇔ B2

(f) (∀x)A1 ≡ (∀x)A2

(g) (∃x)A1 ≡ (∃x)A2

Teorema 3.10 Za datu signaturu L, dve L-formule A i B su logicki ekvivalentne akoi samo ako je formula A ⇔ B valjana.

Primer 3.3 Moze se dokazati da za proizvoljnuL-formuluA vazi¬(∃x)A ≡ (∀x)¬A.Neka je D proizvoljnaL-struktura. Pretpostavimo da vazi Iv(¬(∃x)A) = 1 i dokazimoda onda vazi i Iv((∀x)¬A) = 1. Iz Iv(¬(∃x)A) = 1 sledi Iv((∃x)A) = 0, pa u svakojvaluaciji v′, takvoj da je v′ ∼x v, vazi Iv′(A) = 0. To znaci da u svakoj valuaciji v′,takvoj da je v′ ∼x v, vazi Iv′(¬A) = 1, a odatle sledi da u svakoj valuaciji v′′, takvojda je v′′ ∼x v′, vazi Iv′′((∀x)¬A) = 1, pa i u valuaciji v, tj. Iv((∀x)¬A) = 1, sto je itrebalo dokazati. Drugi smer tvrdenja (da iz Iv((∀x)¬A) = 1 sledi Iv(¬(∃x)A) = 1)dokazuje se analogno.

Primer 3.4 Neke od logickih ekvivalencija logike prvog reda (ili, preciznije, neke odshema logickih ekvivalencija logike prvog reda) su:

¬(∃x)A ≡ (∀x)¬A De Morganov zakon¬(∀x)A ≡ (∃x)¬A De Morganov zakon

(∃x)(A ∨ B) ≡ (∃x)A ∨ (∃x)B zakon distributivnosti ∃ prema ∨(∀x)(A ∧ B) ≡ (∀x)A ∧ (∀x)B zakon distributivnosti ∀ prema ∧(∃x)(A ∧ B) ≡ (∃x)A ∧ B zakon distributivnosti ∃ prema ∧

(pri cemu B ne sadrzi slobodnapojavljivanja promenljive x)

(∀x)(A ∨ B) ≡ (∀x)A ∨ B zakon distributivnosti ∀ prema ∨(pri cemu B ne sadrzi slobodnapojavljivanja promenljive x)

Definicija 3.16 Term dobijen zamenom (supstitucijom) promenljive x termom tx utermu t oznacavamo sa t[x 7→ tx] i definisemo na sledeci nacin:

Page 45: Vestacka-inteligencija

3.2 Semantika logike prvog reda 45

• ako je t simbol konstante, onda je t[x 7→ tx] = t;

• ako je t = x, onda je t[x 7→ tx] = tx;

• ako je t = y, gde je y 6= x, onda je t[x 7→ tx] = t;

• ako je t = f(t1, t2, . . . , tn), onda je t[x 7→ tx] = f(t1[x 7→ tx], t2[x 7→tx], . . . , tn[x 7→ tx]).

Definicija 3.17 Formulu dobijenu zamenom (supstitucijom) promenljive x termomtx u formuli A oznacavamo sa A[x 7→ tx] i definisemo na sledeci nacin:

• >[x 7→ tx] = >;

• ⊥[x 7→ tx] = ⊥;

• ako je A = p(t1, t2, . . . , tn), onda je A[x 7→ tx] = p(t1[x 7→ tx], t2[x 7→tx], . . . , tn[x 7→ tx]);

• (¬A)[x 7→ tx] = ¬(A[x 7→ tx]);

• (A ∧ B)[x 7→ tx] = (A[x 7→ tx] ∧ B[x 7→ tx]);

• (A ∨ B)[x 7→ tx] = (A[x 7→ tx] ∨ B[x 7→ tx]);

• (A ⇒ B)[x 7→ tx] = (A[x 7→ tx]⇒ B[x 7→ tx]);

• (A ⇔ B)[x 7→ tx] = (A[x 7→ tx]⇔ B[x 7→ tx]);

• (∀xA)[x 7→ tx] = (∀xA);

• (∃xA)[x 7→ tx] = (∃xA);

• ako je x 6= y, neka je z promenljiva koja se ne pojavljuje ni u (∀y)A ni u tx; tadaje (∀yA)[x 7→ tx] = (∀z)A[y 7→ z][x 7→ tx];

• ako je x 6= y, neka je z promenljiva koja se ne pojavljuje ni u (∃y)A ni u tx; tadaje (∃yA)[x 7→ tx] = (∃z)A[y 7→ z][x 7→ tx].

Primetimo da poslednja dva pravila u prethodnoj definiciji obezbeduju, naprimer, da ((∀y)p(x, y))[x 7→ y] ne bude (∀y)p(y, y) vec (∀z)p(y, z).

Primer 3.5 Vazi:

(∀x)A ≡ (∀y)(A[x 7→ y]) zakon o preimenovanju vezanepromenljive (pri cemu A ne sadrzislobodna pojavljivanja promenljive y)

(∃x)A ≡ (∃y)(A[x 7→ y]) zakon o preimenovanju vezanepromenljive (pri cemu A ne sadrzislobodna pojavljivanja promenljive y)

U daljem tekstu cemo pod terminom izraz podrazumevati i termove i for-mule.

Page 46: Vestacka-inteligencija

46 3 Logika prvog reda

Definicija 3.18 Uopstena zamena (supstitucija) σ je skup zamena [x1 7→ t1], [x2 7→t2], . . ., [xn 7→ tn] gde su xi promenljive i ti su proizvoljni termovi i gde je xi 6= xj zai 6= j. Takvu zamenu zapisujemo krace [x1 7→ t1, x2 7→ t2, . . . , xn 7→ tn].

Uopstena zamena primenjuje se simultano na sva pojavljivanja promenljivih x1,x2, . . ., xn u polaznom izrazu i samo na njih (tj. ne primenjuje se na podtermovedobijene zamenama).

U daljem tekstu cemo umesto termina uopstena zamena (uopstena supstitucija)koristiti termin zamena (supstitucija).

Izraz koji je rezultat primene zamene σ nad izrazom E, oznacavamo sa Eσ.Ocigledno, iz zamene [x1 7→ t1, x2 7→ t2, . . . , xn 7→ tn] se mogu (ali ne

moraju) izostaviti sve pojedinacne zamene oblika xi 7→ xi.

Primer 3.6 Za σ = [x 7→ f(y)] i s = g(a, x) vazi sσ = g(a, f(y)).Za σ = [x 7→ f(x)] i s = g(a, x) vazi sσ = g(a, f(x)).Za σ = [x 7→ f(y), y 7→ a], s = g(a, x) i t = g(y, g(x, y)) vazi sσ = g(a, f(y)) i

tσ = g(a, g(f(y), a)).

Ukoliko u zameni σ = [x1 7→ t1, x2 7→ t2, . . . , xn 7→ tn] nijedan od termovati ne sadrzi nijednu od promenljivih xj (sem, eventualno, ako je ti = xi za nekoi), onda je efekat te zamene jednak efektu sukcesivno primenjenih pojedinacnihzamena. Supstitucija σ je idempotentna (tj. za bilo koji izraz E vazi Eσ =(Eσ)σ) ako i samo ako vazi taj uslov — da nijedan od termova ti ne sadrzinijednu od promenljivih xj (sem, eventualno, ako je ti = xi za neko i).

Definicija 3.19 Za supstitucije φ = [x1 7→ t1, x2 7→ t2, . . . , xn 7→ tn] i λ = [y1 7→s1, y2 7→ s2, . . . , ym 7→ sm], kompozicija supstitucija φλ je supstitucija [x1 7→t1λ, x2 7→ t2λ, . . . , xn 7→ tnλ, y1 7→ s1, y2 7→ s2, . . . , ym 7→ sm] iz koje su izbrisanezamene oblika xi 7→ xi, kao i zamene oblika yi 7→ si, gde je yi = xj za neko j.

Primer 3.7 Za φ = [x 7→ f(y)] i λ = [y 7→ g(z)], vazi φλ = [x 7→ f(g(z)), y 7→g(z)].

Za φ = [x 7→ f(y)] i λ = [y 7→ g(x)], vazi φλ = [x 7→ f(g(x)), y 7→ g(x)].Za φ = [x 7→ y] i λ = [y 7→ x], vazi φλ = [y 7→ x].Za φ = [x 7→ f(y)] i λ = [x 7→ g(z)], vazi φλ = [x 7→ f(y)].Za φ = [x 7→ f(x)] i λ = [x 7→ a], vazi φλ = [x 7→ f(a)].

Moze se dokazati da je kompozicija supstitucija asocijativna, kao i da vaziE(φλ) = (Eφ)λ.

Definicija 3.20 Ako je E izraz (term ili formula) i ako je φ supstitucija, onda kazemoda je Eφ instanca (ili primerak) izraza E. Ako je izraz Eφ bazni, onda kazemo da jeon bazna instanca izraza E.

Definicija 3.21 Neka su formule B1 i B2 takve da formula B2 nema nijednu slobodnupromenljivu koju nema formula B1. Formulu dobijenu zamenom (supstitucijom) for-mule B1 formulom B2 u formuliA, oznacavamo saA[B1 7→ B2] i definisemo na sledecinacin:

• ako je formula A instanca formule B1, tj. ako je A = B1σ za neku supstitucijuσ, onda je A[B1 7→ B2] = B2σ;

Page 47: Vestacka-inteligencija

3.2 Semantika logike prvog reda 47

• ako je formula A atomicka formula i nije instanca formule B1, onda je A[B1 7→B2] = A;

• (¬A)[B1 7→ B2] = ¬(A[B1 7→ B2]);

• (A ∧ B)[B1 7→ B2] = (A[B1 7→ B2] ∧ B[B1 7→ B2]);

• (A ∨ B)[B1 7→ B2] = (A[B1 7→ B2] ∨ B[B1 7→ B2]);

• (A ⇒ B)[B1 7→ B2] = (A[B1 7→ B2]⇒ B[B1 7→ B2]);

• (A ⇔ B)[B1 7→ B2] = (A[B1 7→ B2]⇔ B[B1 7→ B2]);

• (∀xA)[B1 7→ B2] = (∀x)(A[B1 7→ B2]);

• (∃xA)[B1 7→ B2] = (∃x)(A[B1 7→ B2]).

Naglasimo da smo u prethodnoj definiciji datom restrikcijom pojednosta-vili problem slobodnih pojavljivanjima promenljivih u formulama B1 i B2. Os-novna svrha koncepta zamene formule formulom je u zameni formule logickiekvivalentnom formulom i za tu svrhu je data definicija dovoljna.

Teorema 3.11 (Teorema o zameni) Ako vazi B1 ≡ B2, onda je A ≡ A[B1 7→ B2].

Primer 3.8 Neke od logickih ekvivalencija logike prvog reda (koje proizilaze iz iskaznelogike) su (videti i primer 2.6):

¬¬A ≡ A zakon dvojne negacijeA ∨ ¬A ≡ > zakon iskljucenja treceg(A ∧ B) ≡ (B ∧ A) zakon komutativnosti za ∧

Primer 3.9 Vazi¬(∃x)(A∧¬B) ≡ (∀x)¬(A∧¬B) ≡ (∀x)(¬A∨¬¬B) ≡ (∀x)(¬A∨B) ≡ (∀x)(A ⇒ B). Iz ¬(∃x)(A ∧ ¬B) ≡ (∀x)(A ⇒ B), na osnovu teoreme 3.10sledi da je formula ¬(∃x)(A ∧ ¬B)⇔ (∀x)(A ⇒ B) valjana.

Zadaci

Zadatak 39√

Navesti primer formule koja je valjana a nije izvod tautologije.

Zadatak 40√

Dokazati da je formula (∃x)(A ⇒ B)⇔ ((∀x)A ⇒ (∃x)B) valjana.

Zadatak 41 Dokazati da za svaku supstituciju σ iz A ≡ B sledi Aσ ≡ Bσ.

Zadatak 42 Dokazati da je formula (∀x)(∃y)A ⇒ (∃y)(A[x 7→ y]) valjana.

Zadatak 43 Dokazati sledecu logicku ekvivalenciju:

∃xA ≡ ∃y(A[x 7→ y])

pri cemu formula A nema slobodnih pojavljivanja promenljive y. Dokazati da datalogicka ekvivalencija ne vazi ako se izostavi navedeni dodatni uslov.

Zadatak 44 Dokazati da je supstitucija σ = [x1 7→ t1, x2 7→ t2, . . . , xn 7→ tn]idempotentna (tj. da za bilo koji izraz E vazi Eσ = (Eσ)σ) ako i samo ako nijedan odtermova ti ne sadrzi nijednu od promenljivih xj (sem, eventualno, ako je ti = xi zaneko i).

Page 48: Vestacka-inteligencija

48 3 Logika prvog reda

3.2.3 Normalne forme

Definicija 3.22 Kazemo da je formula u preneks formi ili preneks normalnoj formiako je ona oblika

Q1x1Q2x2 . . . QnxnA

pri cemu je Qi ili ∀ ili ∃ i A ne sadrzi kvantifikatore, kao ni slobodne promenljive osim(eventualno) promenljivih x1, x2, . . . , xn.

Ako je recenica (zatvorena formula) A logicki ekvivalentna formuli B i for-mula B je u preneks normalnoj formi, onda kazemo da je formula B preneksnormalna forma formuleA. Koriscenjem pogodnih logickih ekvivalencija, sva-ka zatvorena formula moze biti transformisana u svoju preneks normalnu for-mu. Radi jednostavnosti procedure i rezultujuce formule, obicno se u okvirutransformisanja formule u preneks formu najpre eliminisu veznici⇔ i⇒. Na-glasimo da jedna formula moze da ima vise preneks normalnih formi (na pri-mer, i formula (∀x)(∀y)(A(x)∧B(y)) i formula (∀y)(∀x)(B(y)∧A(x)) su preneksnormalne forme formule (∀x)A(x) ∧ (∀y)B(y)). 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 3.1 (kada govorimo o ,,primeni neke logicke ekvi-valencije“ mislimo na koriscenje ekvivalencije na osnovu teoreme o zameni(3.11)).

Korektnost navedenog algoritma moze se dokazati slicno kao korektnostprocedure za transformisanje formule u konjunktivnu normalnu formu (teo-rema 2.6). Za slucaj kada (prilikom primene koraka 4 algoritma) promenljivax ima slobodna pojavljivanja u formuli B, izborom nove promenljive od, naprimer, formule (∀xA) ∧ B dobija se formula ∀u(A[x 7→ u] ∧ B), pa je potrebnodokazati i:

(∀xA) ∧ B ≡ ∀u(A[x 7→ u] ∧ B)

(kao i preostale analogne logicke ekvivalencije). Bez detalja dokaza, navodimoteoremu o korektnosti algoritma PRENEX.

Teorema 3.12 (Korektnost algoritma PRENEX) Algoritam PRENEX se zausta-vlja i zadovoljava sledece svojstvo: ako je A ulazna formula, onda je izlazna formulaA′ u preneks normalnoj formi i logicki je ekvivalentna sa A.

Za transformisanje formule u njenu preneks normalnu formu mogu se ko-ristiti i logicke ekvivalencije kao sto suB ⇒ (∀xA) ≡ (∀x)(B ⇒ A),(∀x)A ⇒ B ≡ (∃x)(A ⇒ B),

pri cemu x nema slobodna pojavljivanja u formuli B, ali to nije potrebno akosu na pocetku eliminisani veznici⇒ i⇔.

U nekim situacijama moguce je primeniti neki korak navedenog algoritmana vise od jednog nacina. Na primer, formulu (∀x)p(x) ∧ (∃y)q(y) moguce jetransformisati i u (∀x)(p(x) ∧ (∃y)q(y)) i u (∃y)((∀x)p(x) ∧ q(y)). Obe ove for-mule su, naravno, logicki ekvivalentne sa polaznom formulom. Ipak, u situaci-jama 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). Naglasimo da univerzalni i egzistencijalni kvantifikator ne

Page 49: Vestacka-inteligencija

3.2 Semantika logike prvog reda 49

Algoritam: PRENEX

Ulaz: Zatvorena dobro zasnovana formula AIzlaz: Preneks normalna forma formule A

1. Dok god je to moguce, primenjivati logicke ekvivalencije

A ⇔ B ≡ (A ⇒ B) ∧ (B ⇒ A) i

A ⇒ B ≡ ¬A ∨ B.

2. Dok god je to moguce, primenjivati sledece logicke ekvivalencije:

¬(A ∧ B) ≡ ¬A ∨ ¬B,

¬(A ∨ B) ≡ ¬A ∧ ¬B,

¬(∀x)A ≡ (∃x)¬A,

¬(∃x)A ≡ (∀x)¬A.

3. Eliminisati visestruke veznike ¬ koristeci zakon dvojne negacije:

¬¬A ≡ A.

4. Dok god je to moguce, primenjivati sledece logicke ekvivalencije:

(∀xA) ∧ B ≡ (∀x)(A ∧ B),

(∀xA) ∨ B ≡ (∀x)(A ∨ B),

B ∧ (∀x)A ≡ (∀x)(B ∧ A),

B ∨ (∀x)A ≡ (∀x)(B ∨ A),

(∃xA) ∧ B ≡ (∃x)(A ∧ B),

(∃xA) ∨ B ≡ (∃x)(A ∨ B),

B ∧ (∃x)A ≡ (∃x)(B ∧ A),

B ∨ (∃x)A ≡ (∃x)(B ∨ A),

pri cemu x nema slobodna pojavljivanja u formuli B. Ako x ima slo-bodna pojavljivanja u B, onda treba najpre preimenovati promenljivux u formuli (∀x)A (odnosno u formuli (∃x)A).

Figure 3.1: Algoritam PRENEX

Page 50: Vestacka-inteligencija

50 3 Logika prvog reda

mogu, u opstem slucaju, da menjaju mesta, tj. formule (∀x)(∃y)A i (∃y)(∀x)Anisu u opstem slucaju logicki ekvivalentne. S druge strane, dva univerzalnakvantifikatora mogu da zamene mesta, tj. formule (∀x)(∀y)A i (∀y)(∀x)A sulogicki ekvivalentne. Slicno, dva egzistencijalna kvantifikatora mogu da za-mene mesta, tj. formule (∃x)(∃y)A i (∃y)(∃x)A su logicki ekvivalentne. Tosustinski znaci da u bloku kvantifikatora istog tipa, njihov poredak nije bitan.

Primer 3.10 Razmotrimo formulu

∀x p(x) ∧ ∀x∃y∀z(q(y, z)⇒ r(g(x), y)) .

Nakon koraka∀x(p(x) ∧ ∀x∃y∀z(q(y, z)⇒ r(g(x), y))) ,

kako je promenljiva x slobodna u p(x), najpre cemo preimenovati vezanu promenljivux u u (u okviru formule ∀x∃y∀z(q(y, z)⇒ r(g(x), y))):

∀x(p(x) ∧ ∀u∃y∀z(q(y, z)⇒ r(g(u), y))) .

Nakon toga kvantifikatori ∀u, ∃y, ∀z mogu, jedan po jedan, biti pomereni na pocetakformule:

∀x∀u∃y∀z(p(x) ∧ (q(y, z)⇒ r(g(u), y))) .

Definicija 3.23 Formula bez kvantifikatora je u konjunktivnoj normalnoj formi akoje oblika

A1 ∧ A2 ∧ . . . ∧ Anpri cemu je svaka od formula Ai (1 ≤ i ≤ n) disjunkcija literala.

Konjunktivna normalna forma formule predikatske logike moze se dobitina isti nacin kao i u slucaju iskazne logike (videti poglavlje 2.2.5).

Primer 3.11 Konjunktivna normalna forma formule

p(x) ∧ (q(y, z)⇒ r(g(u), y))

je formulap(x) ∧ (¬q(y, z) ∨ r(g(u), y)) .

Definicija 3.24 Formula je u klauzalnoj formi ako je oblika

∀x1∀x2 . . . ∀xnA

gde je A formula bez kvantifikatora koja je u konjunktivnoj normalnoj formi i A nemaslobodnih promenljivih osim, eventualno, promenljivih x1, x2, . . . , xn.

Ako je formula ∀x1∀x2 . . . ∀xnA u klauzalnoj formi, onda se cesto u zapisuizostavljaju kvantifikatori i pise samo A, podrazumevajuci da se misli na uni-verzalno zatvorenje formule A.

Ne postoji za svaku recenicu formula koja je u klauzalnoj formi i koja jojje logicki ekvivalentna. Na primer, za recenicu (∃x)p(x) ne postoji formulakoja je u klauzalnoj formi i koja joj je logicki ekvivalentna. Medutim, moze sedokazati da za svaku recenicu A postoji formula B u klauzalnoj formi takvada je A zadovoljiva ako i samo ako je B zadovoljiva (videti teoremu 3.15). To

Page 51: Vestacka-inteligencija

3.2 Semantika logike prvog reda 51

je dovoljno i pogodno za ispitivanje zadovoljivosti formula — ako se ispitujezadovoljivost recenice A, dovoljno je ispitati zadovoljivost formule B koja je uklauzalnoj formi (pogodnoj za neke metode) i zadovoljiva je ako i samo ako jezadovoljiva formula A. Uslov da je formula A zadovoljiva ako i samo ako je Bzadovoljiva zove se slaba ekvivalencija.

Transformisanje recenice A u formulu B koja je u klauzalnoj formi i kojaje zadovoljiva ako i samo ako je A zadovoljiva ukljucuje eliminisanje egzis-tencijalnih kvantifikatora. Ono se zasniva na izmeni polazne signature doda-vanjem novih funkcijskih simbola. Te dodatne funkcijske simbole zovemoSkolemovim konstantama (za funkcijske simbole arnosti 0) i Skolemovim funkci-jama, a proces eliminisanja egzistencijalnih kvantifikatora zovemo skolemiza-cijom (po matematicaru Skolemu koji ih je prvi koristio). Prvi korak je trans-formisanje formule u preneks normalnu formu. Drugi korak je transformisanjedela formule bez kvantifikatora u konjunktivnu normalnu formu. Nakon toga,postupkom skolemizacije eliminisu se egzistencijalni kvantifikatori, jedan pojedan, sleva nadesno.

Pretpostavimo da recenica pocinje egzistencijalnim kvantifikatorom: ∃yA.Treba izabrati novi simbol konstante d koji se ne pojavljuje u signaturi, obrisatikvantifikator i zameniti promenljivu y simbolom d. Na taj nacin formula ∃yAtransformise se u formulu A[y 7→ d]. Moze se dokazati da je formula ∃yAzadovoljiva ako i samo ako je formula A[y 7→ d] zadovoljiva.

Ako recenica pocinje nizom univerzalnih kvantifikatora: ∀x1∀x2 . . . ∀xn∃yA,onda uvodimo novi funkcijski simbol f arnosti n koji do tada nije postojao usignaturi. Polazna formula bice onda transformisana u formulu ∀x1∀x2 . . . ∀xnA[y 7→ f(x1, x2, . . . , xn)]. Moze se dokazati da je formula ∀x1∀x2 . . . ∀xn∃yAzadovoljiva ako i samo ako je formula ∀x1∀x2 . . . ∀xnA[y 7→ f(x1, x2, . . . , xn)]zadovoljiva. (Primetimo da je uvodenje nove konstante samo specijalni slucajuvodenja novog funkcijskog simbola.)

Teorema 3.13 (Teorema o skolemizaciji) Ako je formula B nad signaturom L′ do-bijena skolemizacijom od recenice A nad signaturom L koja je u preneks normalnojformi, onda je A zadovoljiva ako i samo ako je B zadovoljiva.

Primer 3.12 Skolemizacijom se formula

∀x∀u∃y∀z(p(x) ∧ (¬q(y, z) ∨ r(g(u), y)))

transformise u formulu

p(x) ∧ (¬q(h(x, u), z) ∨ r(g(u), h(x, u))) .

Teorema 3.14 Neka je formula B (u klauzalnoj formi) dobijena od recenice A uza-stopnom primenom sledecih postupaka:

• transformisanje formule u preneks normalnu formu;

• transformisanje dela formule bez kvantifikatora u konjunktivnu normalnu formu;

• skolemizacija.

Tada je formula A zadovoljiva ako i samo ako je B zadovoljiva.

Page 52: Vestacka-inteligencija

52 3 Logika prvog reda

Dokaz: Transformacija formule u preneks normalnu formu i transformacija delaformule bez kvantifikatora u konjunktivnu normalnu formu zasnovanesu na logickim ekvivalencijama, pa ako je formula B dobijena od formuleA uzastopnom primenom navedene dve transformacije, vazi A ≡ B,sto je jaci uslov nego uslov da je A zadovoljiva ako i samo ako je Bzadovoljiva. Na osnovu teoreme 3.13 sledi da skolemizacija cuva zado-voljivost i nezadovoljivost, pa je formula B zadovoljiva ako i samo ako jeA zadovoljiva. 2

Na osnovu prethodne teoreme neposredno sledi naredno tvrdenje.

Teorema 3.15 Za svaku recenicu A postoji formula B u klauzalnoj formi takva da jeA zadovoljiva ako i samo ako je B zadovoljiva.

Klauzalna forma je pogodna za dokazivanje pobijanjem. Da bi se dokazaloda je formula A valjana, dovoljno je dokazati da je formula ¬A nezadovoljiva,pa je dovoljno i dokazati da je klauzalna forma formule ¬A nezadovoljiva.

Primer 3.13 Formula A = (∀x)p(x, x)⇒ (∀y)p(y, y) nad signaturom L je valjana.To se moze dokazati na sledeci nacin.

Formula ¬A je jednaka ¬((∀x)p(x, x) ⇒ (∀y)p(y, y)) i njena preneks normalnaforma je (∃y)(∀x)(p(x, x) ∧ ¬p(y, y)). Skolemizacijom dobijamo formulu p(x, x) ∧¬p(c, c), gde je c novi simbol konstante. Neka je L′ signatura dobijena prosirivanjemsignature L simbolom c. Pokazimo da je formula p(x, x) ∧ ¬p(c, c) nezadovoljiva.Pretpostavimo suprotno — pretpostavimo da navedena formula ima model. Neka jeto L′-struktura D = (D, IL

′) sa valuacijom v. Neka je IL

′(p) = pI i IL

′(c) = cI .

Vazi Iv(p(x, x) ∧ ¬p(c, c)) = 1 tj. Iv((∀x)(p(x, x) ∧ ¬p(c, c))) = 1, pa za svakuvaluaciju w takvu da je w ∼x v vazi Iw(p(x, x) ∧ ¬p(c, c)) = 1. To, dakle, vazi i zavaluaciju w u kojoj je w(x) = cI . Iz Iw(p(x, x) ∧ ¬p(c, c)) = 1 sledi Iw(p(x, x)) = 1i Iw(p(c, c)) = 0. Iz Iw(p(x, x)) = 1 sledi pI(cI , cI) = 1, a iz Iw(p(c, c)) = 0 sledipI(cI , cI) = 0, sto je kontradikcija. Dakle, formula p(x, x)∧¬p(c, c) je nezadovoljiva,pa je polazna formula A valjana.

Zadaci

Zadatak 45 Odrediti klauzalne forme za formule:(a) (∃x)A1 ∧ (∃x)A2 ⇒ (∃x)(A1 ∧ A2)(b) (∀x)A1 ∨ (∀x)A2 ⇒ (∀x)(A1 ∨ A2)(c) (∀x)(∃y)A ⇒ (∃y)A(f(y), y)

3.2.4 Unifikacija

Problem unifikacije je problem ispitivanja da li postoji supstitucija koja cini dvaizraza (dva terma ili dve formule) jednakim. Unifikacija se prvi put pominje uradovima Posta, a zatim i u radovima Erbrana.

Definicija 3.25 Ako su e1 i e2 izrazi i ako postoji supstitucija σ takva da vazi e1σ =e2σ, onda kazemo da su izrazi e1 i e2 unifikabilni i da je supstitucija σ unifikator zata dva izraza.

Page 53: Vestacka-inteligencija

3.2 Semantika logike prvog reda 53

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 [v′1 7→ v′′1 , v

′2 7→ v′′2 , . . . , v

′n 7→ v′′n], pri cemu su v′i i v′′i

simboli promenljivih i vazi σ1λ = σ2.

Primer 3.14 Neka je term t1 jednak g(x, z), neka je term t2 jednak g(y, f(y)) i nekaje σ supstitucija [y 7→ x, z 7→ f(x)]. Tada je i t1σ i t2σ jednako g(x, f(x)), pa sutermovi t1 i t2 unifikabilni, a σ je (jedan) njihov unifikator. Unifikator termova t1 i t2je npr. i [x 7→ a, y 7→ a, z 7→ f(a)]. Termovi g(x, x) i g(y, f(y)) nisu unifikabilni.

Definicija 3.26 Supstitucija σ je najopstiji unifikator za izraze e1 i e2 ako svakiunifikator τ izraza e1 i e2 moze biti predstavljen u obliku τ = σµ za neku supstitucijuµ.

Na osnovu definicije, svaki unifikator izraza e1 i e2 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).

Unifikacija ima mnoge primene. Jedna od najznacajnijih je u metodu re-zolucije.

Na slici 3.2 dat je opis opsteg algoritma za odredivanje najopstijeg unifika-tora. Pretpostavimo da je dat niz parova izraza

(s1, t1), (s2, t2), . . . , (sn, tn)

i da se trazi supstitucija σ takva da vazi

s1σ = t1σ, s2σ = t2σ, . . . , snσ = tnσ .

Algoritam unifikacije ili vraca trazenu supstituciju ili se zaustavlja neuspesno,ukazujuci na to da trazena supstitucija ne postoji. Ukoliko postoji bar jednasupstitucija koja zadovoljava trazeni uslov, algoritam unifikacije vraca najopsti-ji unifikator (za date parove izraza). Ulaz za algoritam unifikacije za parove(s1, t1), (s2, t2), . . . , (sn, tn) se obicno zadaje u vidu niza jednakosti s1 = t1, s2 =t2, . . . , sn = tn.

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.

U koracima 5 i 6 se primenjuje tzv. provera pojavljivanja cime se obezbedujezaustavljanje procedure (tj. sprecava pojavljivanje beskonacnih petlji).

Primer 3.15 Ilustrujmo rad algoritma za odredivanje na primeru sledece dve jed-nakosti:

g(y) = x

f(x, h(x), y) = f(g(z), w, z)

Polazni niz jednakosti jeg(y) = x, f(x, h(x), y) = f(g(z), w, z).Primenom koraka 3 dobijamox = g(y), f(x, h(x), y) = f(g(z), w, z).

Page 54: Vestacka-inteligencija

54 3 Logika prvog reda

Algoritam: Najopstiji unifikator

Ulaz: Niz jednakosti s1 = t1, s2 = t2, . . . , sn = tnIzlaz: Najopstiji unifikator (ako on postoji)

Primenjuj, dok je to moguce, sledece korake:

1. Ako postoje jednakosti koje imaju vise od jednog pojavljivanja, obrisiza svaku od njih sva pojavljivanja osim jednog (factoring).

2. Obrisi sve jednakosti oblika t = t (tautology).

3. Ako je x promenljiva i t term koji nije promenljiva i ako se t = xpojavljuje u nizu jednakosti, zameni jednakost t = x sa x = t. Ovouraditi za sve jednakosti tog oblika (orientation).

4. Pretpostavimo da je jednakost s = t element niza jednakosti i da ni sni t nisu promenljive. Razmotri sledece slucajeve:

(a) Ako je s jednako ϕ(u1, u2, . . . , uk) i t je jednakoϕ(v1, v2, . . . , vk) (gde je ϕ funkcijski ili predikatski sim-bol), onda dodaj jednakosti u1 = v1, u2 = v2, . . ., uk = vk izatim obrisi jednakost s = t (decomposition).

(b) Ako su s i t bilo koje druge forme, zaustavi rad i kao rezultatvrati neuspeh (ovo se odnosi na slucajeve kada je jedan od ter-mova simbol konstante, a drugi nije; kada se u s i t razlikujuvodeci funkcijski (odnosno predikatski) simboli i kada su vodecifunkcijski (odnosno predikatski) simboli s i t razlicite arnosti)(collision).

5. Ako je x promenljiva, t term koji sadrzi x i x = t se pojavljuje u nizujednakosti, zaustavi rad i kao rezultat vrati neuspeh (cycle).

6. Ako je x promenljiva, t term koji ne sadrzi x, x se pojavljuje i u nekimdrugim jednakostima i x = t se pojavljuje u nizu jednakosti, ondaprimeni supstituciju [x 7→ t] na sve druge jednakosti (application).

Ako nije moguce primeniti nijedan od navedenih koraka vrati tekuci skupjednakosti kao najopstiji unifikator.

Figure 3.2: Algoritam Najopstiji unifikator

Page 55: Vestacka-inteligencija

3.2 Semantika logike prvog reda 55

Primenom koraka 4(a) dobijamox = g(y), x = g(z), h(x) = w, y = z.Korak 6 je moguce primeniti na vise nacina. Primenom koraka 6 za y = z dobijamox = g(z), x = g(z), h(x) = w, y = z.Primenom koraka 1 dobijamox = g(z), h(x) = w, y = z.Primenom koraka 3 dobijamox = g(z), w = h(x), y = z.Primenom koraka 6 dobijamox = g(z), w = h(g(z)), y = z.Ovaj niz jednakosti odreduje trazeni najopstiji unifikator σ. Za

σ = [x 7→ g(z), w 7→ h(g(z)), y 7→ z]

vazig(y)σ = xσ

f(x, h(x), y)σ = f(g(z), w, z)σ

tj. vazig(z) = g(z)

f(g(z), h(g(z)), z) = f(g(z), h(g(z)), z) .

Primer 3.16 Razmotrimo sledecu jednakost:

g(x, x) = g(y, f(y)) .

Primenom koraka 4(a) dobijamox = y, x = f(y).Korak 6 moze se primeniti samo na dva nacina:

• primenom koraka za jednakost x = y; tada se dobija x = y, y = f(y), odakle se,primenom koraka 5 dolazi do neuspeha.

• primenom koraka za jednakost x = f(y); tada se dobija f(y) = y, x = f(y),odakle se, primenom koraka 3 i koraka 5 dolazi do neuspeha.

Bez dokaza navodimo teoremu o korektnosti navedenog algoritma za odre-divanje najopstijeg unifikatora (videti, na primer, [?, ?]).

Teorema 3.16 (Korektnost algoritma Najopstiji unifikator) Algoritam Najopsti-ji unifikator zadovoljava sledece uslove:

• zaustavlja se;

• ako vrati supstituciju, onda je ona najopstiji unifikator za dati niz parova izraza;

• ako se algoritam zaustavi sa neuspehom, onda ne postoji unifikator za dati nizparova izraza.

Page 56: Vestacka-inteligencija

56 3 Logika prvog reda

Navedeni algoritam nije efikasan. Postoje znatno efikasniji algoritmi zaunifikaciju. Mnogi od njih zasnovani su na koriscenju pogodnih struktura po-dataka i implicitnom primenjivanju supstitucije (iz koraka 6). Neki od tih algo-ritama imaju linearnu slozenost (po broju polaznih jednakosti), ali, u opstemslucaju, najopstiji unifikator moze imati i eksponencijalnu duzinu (po broju po-laznih jednakosti), te ga nije moguce eksplicitno predstaviti u linearnom vre-menu. To ilustruje sledeci primer.

Primer 3.17 Za skup jednakosti

x1 = f(x0, x0)

x2 = f(x1, x1)

. . .

xn = f(xn−1, xn−1)

Najopstiji unifikator sadrzi zamenu xn 7→ t, gde je t term koji sadrzi samo simbole x0

i f , pri cemu ima 2n − 1 pojavljivanja simbola f .

Primetimo da je problem ispitivanja da li je neka formula instanca nekeaksiomske sheme blizak problemu unifikacije. Navedeni algoritam za odredi-vanje najopstijeg unifikatora moze se koristiti i za unifikovanje dobro zasno-vanih formula. Prilikom ispitivanja da li neka formula cini instancu neke aksi-omske sheme, medutim, vrsi se samo jednosmerno uparivanje i varijable u for-mulama se smatraju konstantama koje nije moguce instancirati. Postoje i drugialgoritmi za jednosmerno uparivanje.

Primer 3.18 Za testiranje da li je p(f(s(a), f(u, v)), s(f(a, f(u, v)))) instanca for-mule p(f(s(x), y), s(f(x, y))) moze se primeniti algoritam za odredivanje najopstijegunifikatora na jednakost

p(f(s(a), f(u, v)), s(f(a, f(u, v)))) = p(f(s(x), y), s(f(x, y)))

uz restrikciju da se koristi samo jednostrano uparivanje tj. da se sve promenljive iz prveformule smatraju konstantama koje nije moguce supstituisati. Time se dobija najopstijiunifikator

σ = [x 7→ a, y 7→ f(u, v)] .

Zbog restrikcije nad varijablama u jednosmernom uparivanju, u testiranju da li jep(f(s(a), f(u, y)), s(f(a, f(u, y)))) instanca formule p(f(s(x), y), s(f(x, y))), sim-boli y u prvoj i drugoj formuli ne smatraju se jednakim, te je najopstiji unifikator zaove dve formule

σ = [x 7→ a, y 7→ f(u, y)] .

Zadaci

Zadatak 46 Odrediti najopstiji unifikator za sledeci skup parova termova:

{(g(x, h(y, z)), g(u, x)), (f(x), f(h(c, v))), (g(z, u), g(y, u))} .

Zadatak 47 Ispitati da li je relacija unifikabilnosti tranzitivna.

Zadatak 48√

Dokazati da za dva izraza postoji najvise jedan najopstiji unifikator(do na preimenovanje promenljivih).

Page 57: Vestacka-inteligencija

3.2 Semantika logike prvog reda 57

3.2.5 Metod rezolucije

Metod rezolucije formulisao je Alan Robinson 1965. godine [?], sledeci mnogo-brojne prethodne rezultate. Metod rezolucije je postupak za ispitivanje (ne)zadovoljivostiskupa klauza logike prvog reda, a moze se pojednostaviti tako da je primenjljivza ispitivanje (ne)zadovoljivosti skupa klauza iskazne logike. Metod rezolucijeza iskaznu logiku primenjuje se na iskazne formule koje su u konjunktivnojnormalnoj formi, a metod za logiku prvog reda primenjuje se na formule kojesu u klauzalnoj formi.

Formula se reprezentuje kao skup klauza od kojih je svaka skup literala.Na osnovu asocijativnosti i komutativnosti konjunkcije i disjunkcije, kao i naosnovu logickih ekvivalencija A ∧ A ≡ A i A ∨ A ≡ A, formula koja je u kon-junktivnoj normalnoj moze da se zameni (logicki ekvivalentnom) formulomkoja je skup (razlicitih) klauza od kojih je svaka skup (razlicitih) literala. Sveklauze koje sadrze logicke konstante > ili ⊥ mogu biti eliminisane ili zamen-jene tako da se ne promeni zadovoljivost polaznog skupa klauza i da se ovekonstante ne pojavljuju u skupu klauza. Zaista, klauza koja sadrzi literal > jeu svakoj valuaciji tacna, pa moze biti eliminisana (jer ne utice na zadovoljivostpolaznog skupa klauza). Ako klauza C sadrzi literal ⊥, onda taj literal mozebiti obrisan, dajuci novu klauzu C ′ (jer je u svakoj valuaciji klauza C tacna akoi samo ako je tacna klauza C ′).

Klauza je zadovoljiva ako postoji interpretacija u kojoj je bar jedan literal izte klauze tacan. Prazna klauza, u oznaci 2, ne sadrzi nijedan literal i nije zado-voljiva. Formula koja je skup klauza je zadovoljiva ako postoji interpretacija ukojoj su sve klauze te formule tacne, a inace je nezadovoljiva.

U slucaju iskazne logike, ako je literal l jednak iskaznom slovu p, ondasa l oznacavamo literal ¬p; ako je literal l jednak negaciji iskaznog slova p(tj. literalu ¬p), onda sa l oznacavamo literal p. Za literale l i l kazemo da sumedusobno komplementni. U slucaju logike prvog reda, ako je literal l jednakp(t1, t2, . . . , tn), onda sa l oznacavamo literal ¬p(t1, t2, . . . , tn); ako je literal ljednak ¬p(t1, t2, . . . , tn), onda sa l oznacavamo literal p(t1, t2, . . . , tn). Za lit-erale l i l kazemo da su (medusobno) komplementni.

Metod rezolucije za iskaznu logiku

U metodu rezolucije za iskaznu logiku primenjuje se pravilo rezolucije slede-ceg oblika:

C ′ ∨ l C ′′ ∨ lC ′ ∨ C ′′

Klauzu C ′ ∨ C ′′ zovemo rezolventom klauza C ′ ∨ l i C ′′ ∨ l, a klauze C ′ ∨ l iC ′′∨l roditeljima rezolvente. Kazemo da klauzeC ′∨l iC ′′∨l rezolviramo pravilomrezolucije.

Metod rezolucije je postupak za ispitivanje zadovoljivosti skupa klauza kojise sastoji od uzastopnog primenjivanja pravila rezolucije. Pravilom rezolu-cije se roditelji rezolvente ne zamenjuju rezolventom, vec se rezolventa dodaje uskup tekuci skup klauza. Neka je S pocetni skup, neka je S0 = S i neka je Si+1

rezultat primene pravila rezolucije na skup Si. Postupak se zaustavlja na jedanod sledeca dva nacina:

Page 58: Vestacka-inteligencija

58 3 Logika prvog reda

• ako u nekom koraku skup Si sadrzi praznu klauzu (2), onda zaustaviprimenu procedure i vrati odgovor da je skup klauza S nezadovoljiv;

• ako ne postoji mogucnost da se primeni pravilo rezolucije tako da seskupovi Si i Si+1 razlikuju, onda zaustavi primenu procedure i vratiodgovor da je skup klauza S zadovoljiv.

Niz klauza (polaznih i izvedenih) oznacavacemo obicno sa Ci (i = 1, 2, . . .).Iza izvedene klauze zapisivacemo oznake klauza iz kojih je ona izvedena, kaoi redne brojeve literala nad kojim je primenjeno pravilo rezolucije. Literale uklauzama razdvajacemo obicno simbolom ’,’ (umesto simbolom ’∨’).

Primer 3.19 Metodom rezolucije se iz skupa {{¬p,¬q, r}, {¬p, q}, {p}, {¬r}} mozeizvesti prazna klauza:

C1 : ¬p,¬q, rC2 : ¬p, qC3 : pC4 : ¬rC5 : ¬p, r (C1, 2;C2, 2)C6 : ¬p (C4, 1;C5, 2)C7 : 2 (C3, 1;C6, 1)

Skup klauza {{¬p,¬q, r}, {¬p, q}, {p}, {¬r}} je, dakle, nezadovoljiv.

Primer 3.20 Metodom rezolucije se iz skupa {{¬p,¬q, r}, {¬p, q}, {p}} ne moze izvestiprazna klauza. Ovaj skup klauza je, dakle, zadovoljiv.

Teorema 3.17 (Teorema o metodu rezolucije) Metod rezolucije se zaustavlja za svakuiskaznu formulu i u zavrsnom skupu klauza postoji prazna klauza ako i samo ako je po-lazna formula nezadovoljiva.

Metod rezolucije moze na razne nacine biti modifikovan tako da bude efikas-niji.

U svom osnovnom obliku, metod rezolucije proverava da li je dati skupklauza (ne)zadovoljiv. Medutim, metod rezolucije moze se koristiti i za ispi-tivanje valjanosti. Naime, ako je potrebno ispitati da li je formula A valjana,dovoljno je metodom rezolucije utvrditi da li je formula ¬A nezadovoljiva (pricemu je potrebno najpre formulu ¬A transformisati u konjuktivnu normalnuformu). Ovaj vid dokazivanja da je formula A valjana zovemo dokazivanje pobi-janjem. Za metod rezolucije primenjen na ovaj nacin, saglasnost govori da nijemoguce rezolucijom pogresno utvrditi (pobijanjem) da je neka formula val-jana, a potpunost govori da je za svaku valjanu formulu metodom rezolucijemoguce dokazati (pobijanjem) da je valjana.

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 A′ i ¬A′′ takvi da su atomicke formule A′ i A′′unifikabilne. Pravilo rezolucije za logiku prvog reda (u njegovom osnovnomobliku, tzv. binarna rezolucija) moze se prikazati na sledeci nacin:

Γ′ ∨ A′ Γ′′ ∨ ¬A′′(Γ′ ∨ Γ′′)σ

Page 59: Vestacka-inteligencija

3.2 Semantika logike prvog reda 59

gde su Γ′ i Γ′′ klauze, a σ je najopstiji unifikator za A′ i A′′.Obe klauze na koje se primenjuje pravilo rezolucije su (implicitno) uni-

verzalno kvantifikovane. Zbog toga se svaka od njihovih varijabli moze pre-imenovati (jer su formule ∀xA(x) i ∀x′A(x′) logicki ekvivalentne). Stavise,to je neophodno uraditi za sve deljene varijable, jer bi, inace, neke primenepravila rezolucije bile (pogresno) onemogucene (jer odgovarajuci literali nebi bili unifikabilni). Preimenovanje varijabli moze se primeniti pre primenepojedinacnog pravila rezolucije ili unapred, pre primene samog metoda re-zolucije. Ako se preimenovanje varijabli primenjuje unapred, pre primenemetoda rezolucije, onda ono treba da obezbedi da nikoje dve klauze nemaju za-jednicku promenljivu. Dodatno, u svakoj novoizvedenoj klauzi treba preime-novati promenljive tako da se novi simboli promenljivih ne pojavljuju ni u jed-noj drugoj klauzi.

Primer 3.21 Nad klauzama¬p(x, y) ∨ ¬p(z, y) ∨ p(x, z)

i¬p(b, a)

se moze primeniti pravilo rezolucije, jer su literali p(x, z) i p(b, a) unifikabilni (uznajopstiji unifikator σ = [x 7→ b, z 7→ a]). Rezolventa ove dve klauze je klauza¬p(b, y) ∨ ¬p(a, y).Ako se pravilo rezolucije primenjuje dalje, onda u dobijenoj klauzi sve promenljive

treba da budu preimenovane (treba da dobiju imena koja do tada nisu koriscena):¬p(b, y′) ∨ ¬p(a, y′).

Definicija 3.27 Forma Kovalskog klauze

¬A1 ∨ ¬A2 ∨ . . . ∨ ¬Am ∨ B1 ∨ B2 ∨ . . . ∨ Bn

je formulaA1 ∧ A2 ∧ . . . ∧ Am ⇒ B1 ∨ B2 ∨ . . . ∨ Bn .

Specijalno, forma Kovalskog klauze

B1 ∨ B2 ∨ . . . ∨ Bn

je formula⇒ B1 ∨ B2 ∨ . . . ∨ Bn ,

a klauze¬A1 ∨ ¬A2 ∨ . . . ∨ ¬Am

formulaA1 ∧ A2 ∧ . . . ∧ Am ⇒ .

Ako je u ¬A1 ∨ ¬A2 ∨ . . . ∨ ¬Am ∨ B1 ∨ B2 ∨ . . . ∨ Bn i m = 0 i n = 0, onda je toprazna klauza, koju oznacavamo⇒ ili 2.

Precizno govoreci, forme Kovalskog⇒ B1∨B2∨. . .∨Bn,A1∧A2∧. . .∧Am ⇒i ⇒ nisu dobro zasnovane formule, ali cine zapis klauza koji je intuitivan iblizak zapisu u PROLOG-u.

Pravilo rezolucije moze da se reprezentuje i koristeci formu Kovalskog:

Γ′ ⇒ B′ ∨ A′ Γ′′ ∧ A′′ ⇒ B′′(Γ′ ∧ Γ′′ ⇒ B′ ∨ B′′)σ

Page 60: Vestacka-inteligencija

60 3 Logika prvog reda

gde je σ najopstiji unifikator za formule A′, A1′′.Zaista, primenom supstitucije σ na prvu formulu (Γ′ ⇒ B′ ∨ A′) dobija se

Γ′σ ∧ ¬B′σ ⇒ A ,

gde jeA = A′σ = A′′σ. Primenom supstitucije σ na drugu formulu (Γ′′∧A′′ ⇒B′′) dobija se

A ⇒ ¬Γ′′σ ∨ B′′σ .

Iz Γ′σ ∧ ¬B′σ ⇒ A i A ⇒ ¬Γ′′σ ∨ B′′σ dobija se

Γ′σ ∧ ¬B′σ ⇒ ¬Γ′′σ ∨ B′′σ ,

sto je logicki ekvivalentnto sa

(Γ′ ∧ Γ′′ ⇒ B′ ∨ B′′)σ .

Primer 3.22 Razmotrimo sledece dve klauze Kovalskog: p(x, y) ∧ p(z, y)⇒ p(x, z) ip(b, u) ⇒. Literali p(x, z) i p(b, u) mogu biti unifikovani supstitucijom [x 7→ b, z 7→a, u 7→ a]. Tada je forma Kovalskog rezolvente date dve klauze: p(b, y) ∧ p(a, y)⇒.

Metod rezolucije sastoji se od uzastopnog primenjivanja pravila rezolucije.Neka je S pocetni skup, neka je S0 = S i neka je Si+1 rezultat primene pravilarezolucije na skup Si.2 Postupak se zaustavlja na jedan od sledeca dva nacina:

• ako u nekom koraku skup Si sadrzi praznu klauzu (2), onda zaustaviprimenu procedure i vrati odgovor da je skup klauza S nezadovoljiv;

• ako ne postoji mogucnost da se primeni pravilo rezolucije tako da seskupovi Si i Si+1 razlikuju, onda zaustavi primenu procedure i vratiodgovor da je skup klauza S zadovoljiv.

Da bi se dokazalo da je neka formula A valjana, njena negacija se trans-formise u klauzalnu formu i onda se na dobijeni skup klauza primenjuje metodrezolucije. Ako se izvede prazna klauza, onda to znaci da je formula ¬Anezadovoljiva, pa je A valjana; ako u nekom koraku ne moze da se izvedenijedna nova klauza, onda to znaci je formula ¬A zadovoljiva, pa A nije val-jana. Moguc je i ishod da nove klauze mogu da se izvode beskonacno, a da sepri tome ne izvede prazna klauza.

Da bi se dokazalo da je neka formula A logicka posledica formula B1, B2,. . ., Bn potrebno je dokazati da je formula B1 ∧ B2 ∧ . . . ∧ Bn ⇒ A valjana,tj. dokazati da formula ¬(B1 ∧ B2 ∧ . . . ∧ Bn ⇒ A) nije zadovoljiva. Potrebnoje, dakle, dokazati da formula B1 ∧ B2 ∧ . . . ∧ Bn ∧ ¬A nije zadovoljiva.

Primer 3.23 Dokazati da je formula p(a)⇒ (∃x)p(x) valjana. Negacija date formuleje logicki ekvivavalentna formuli p(a) ∧ (∀x)¬p(x). Metod rezolucije primenjujemona skup klauza {p(a),¬p(x)}. Pravilo rezolucije moguce je primeniti samo na jedannacin — literali p(a) i ¬p(x) se unifikuju supstitucijom [x 7→ a] i njime se dobijaprazna klauza. Odatle sledi da je formula p(a)⇒ (∃x)p(x) valjana.

2 Primetimo da u opstem metodu nije specifikovano kako se, od svih mogucih, bira par klauzanad kojim se primenjuje pravilo rezolucije.

Page 61: Vestacka-inteligencija

3.2 Semantika logike prvog reda 61

Primer 3.24 Formula (∀x)(∃y)p(x, y) ⇒ (∃y)(∀x)p(x, y) nije valjana. Negacijadate formule je logicki ekvivalentna sa formulom (∀x)(∃y)(p(x, y)∧(∀y)(∃x)¬p(x, y))i sa formulom (∀x)(∃y)(∀u)(∃v)(p(x, y) ∧ ¬p(v, u)). Skolemizacijom se dobija skupod dve klauze: {p(x, f(x)),¬p(g(x, u), u)}. Pravilo rezolucije nije moguce primenitina ove dve klauze, odakle sledi da je formula (∀x)(∃y) (p(x, y) ∧ (∀y)(∃x)¬p(x, y))zadovoljiva, tj. polazna formula nije valjana.

Niz klauza (polaznih i izvedenih) oznacavacemo obicno sa Ci (i = 1, 2, . . .).Izvedene klauze oznacavacemo ponekad i sa Ri (i = 1, 2, . . .). Iza izvedeneklauze zapisivacemo oznake klauza iz kojih je ona izvedena, redne brojeve lit-erala u tim klauzama, iskorisceni najopstiji unifikator, kao i supstituciju kojomse preimenuju promenljive. Literale u klauzama razdvajacemo obicno sim-bolom ’,’ (umesto simbolom ’∨’).

Primer 3.25 Dokazimo da je formula

(∀x)(∃y)q(x, y)

logicka posledica skupa formula

{(∀x)(∃y)p(x, y), (∀x)(∀y)(p(x, y)⇒ q(x, y))} .

Dovoljno je dokazati da je formula

A = ((∀x)(∃y)p(x, y) ∧ (∀x)(∀y)(p(x, y)⇒ q(x, y)))⇒ (∀x)(∃y)q(x, y)

valjana. Preneks normalna forma negacije ove formule je

(∃w)(∀x)(∃y)(∀u)(∀v)(∀z)(p(x, y) ∧ (¬p(u, v) ∨ q(u, v)) ∧ ¬q(w, z)) .

Nakon skolemizacije, ova formula dobija oblik:

(∀x)(∀u)(∀v)(∀z)(p(x, g(x)) ∧ (¬p(u, v) ∨ q(u, v)) ∧ ¬q(c, z)) ,

pri cemu je c nova Skolemova konstanta, a g nova Skolemova funkcija. Konjunktivnanormalna forma formule

p(x, g(x)) ∧ (¬p(u, v) ∨ q(u, v)) ∧ ¬q(c, z)

jep(x, g(x)) ∧ (¬p(u, v) ∨ q(u, v)) ∧ ¬q(c, z) .

Elementi pocetnog skupa klauza su:H1 : p(x, g(x)) (prvi deo hipoteze)H2 : ¬p(u, v), q(u, v) (drugi deo hipoteze)C1 : ¬q(c, z) (zakljucak)

Prazna klauza se izvodi na sledeci nacin.R1 : q(x′, g(x′)) (H1, 1;H2, 1), [v 7→ g(x), u 7→ x];

preimenovanje: [x 7→ x′]R2 : 2 (C1, 1;R1, 1), [x′ 7→ c, z 7→ g(c)]

Page 62: Vestacka-inteligencija

62 3 Logika prvog reda

Primer 3.26 Dokazati da je formula A = ∀x∀y∀z(x ⊆ y ∧ y ⊆ z ⇒ x ⊆ z) logickaposledica formule B = ∀x∀y(x ⊆ y ⇔ ∀w(w ∈ x ⇒ w ∈ y)) (simboli ∈ i ⊆ supredikatski simboli arnosti 2 zapisani infiksno).

Transformisanjem formule ¬(B ⇒ A) ≡ B ∧ ¬A dobija se sledeci skup klauza:H1 : ¬(x1 ⊆ y1),¬(w1 ∈ x1), w1 ∈ y1 (deo⇒ formule B)H2 : x2 ⊆ y2, f(x2, y2) ∈ x2 (dva dela⇐ formule B,H3 : x3 ⊆ y3,¬(f(x3, y3) ∈ y3) f je Skolemova funkcija za w)C1 : a ⊆ b (tri dela negacije formule A,C2 : b ⊆ c a, b, c su Skolemove konstante zaC3 : ¬(a ⊆ c) promenljive x, y, z u formuli A)

Izvedene klauze oznacavacemo sa Ri (i = 1, 2, . . .).R1 : ¬(w2 ∈ a), w2 ∈ b (H1, 1;C1, 1), [x1 7→ a, y1 7→ b];

preimenovanje: [w1 7→ w2]R2 : ¬(w3 ∈ b), w3 ∈ c (H1, 1;C2, 1), [x1 7→ b, y1 7→ c];

preimenovanje: [w1 7→ w3]R3 : a ⊆ y4, f(a, y4) ∈ b (H2, 2;R1, 1), [x2 7→ a,w2 7→ f(a, y2)];

preimenovanje: [y2 7→ y4]R4 : x4 ⊆ c,¬(f(x4, c) ∈ b) (H3, 2;R2, 2), [y3 7→ c, w3 7→ f(x3, c)];

preimenovanje: [x3 7→ x4]R5 : a ⊆ c, a ⊆ c (R3, 2;R4, 2), [x4 7→ a, y4 7→ c];R6 : 2 (R5, 1, 2;C3, 1)

Hornove klauze su klauze u kojima postoji najvise jedan literal koji nije podnegacijom. U PROLOG-u se koriste upravo Hornove klauze. Cetiri tipa Hornovihklauza prikazana su u sledecoj tabeli.

Tip standardna forma forma Kovalskog PROLOG

implikaciona klauza ¬A1 ∨ . . . ∨ ¬An ∨ A A1 ∧ . . . ∧ An ⇒ A A : −A1, . . . ,An.ciljna klauza ¬A1 ∨ . . . ∨ ¬An A1 ∧ . . . ∧ An ⇒ ?−A1, . . . ,An.cinjenica A ⇒ A A.prazna klauza 2 ⇒ false

Moze se dokazati da svaki nezadovoljiv skup Hornovih klauza sadrzi barjednu cinjenicu i bar jednu ciljnu klauzu. Programski jezik PROLOG zasnovanje na metodu rezolucije i na koriscenju Hornovih klauza. Postoji polinomijalnialgoritam za ispitivanje zadovoljivosti skupa iskaznih Hornovih klauza i on sekoristi u PROLOG-u.

Primer 3.27 Pretpostavimo da je u PROLOG-u zadata cinjenica (assertion):man(sokrat).

i pravilo (rule):mortal(X) :- man(X).

(PROLOG konvencija je da se konstante zapisuju malim pocetnim slovom, a promenljivevelikim pocetnim slovom.) Ako se zada upit:

? - mortal(sokrat).onda se metodom rezolucije pokusava izvodenje prazne klauze iz skupa klauza:

{man(sokrat),¬man(X) ∨mortal(X),¬mortal(sokrat)} .

U ovom slucaju, prazna klauza se izvodi jednostavno (koristeci unifikaciju {X 7→sokrat}) i PROLOG vraca rezultat:

Page 63: Vestacka-inteligencija

3.2 Semantika logike prvog reda 63

YesPrimetimo da, na primer, upit? - mortal(platon).

ne moze da uspe (sem ako nije zadata i cinjenica man(platon)).

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 dokazacemo kao teoremuo potpunosti i teoremu o saglasnosti za rezoluciju (teoreme ?? i 3.18). Metodrezolucije, dakle, ima sledece karakteristike:

• metod rezolucije je saglasan: ako je primenom metoda dobijena praznaklauza, onda je i polazni skup klauza nezadovoljiv (ili, drugim recima, izzadovoljivog skupa klauza moze se dobiti samo zadovoljiv skup klauza);

• metod rezolucije nije potpun, ali je potpun za pobijanje: iz svakog nezado-voljivog skupa klauza moguce je izvesti praznu klauzu;

• logika prvog reda nije odluciva, pa najvise sto moze metod rezolucije dabude je procedura poluodlucivanja (za problem ispitivanja valjanosti).

Teorema 3.18 (Potpunost (za pobijanje) metoda rezolucije) Ako je Γ nezadovo-ljiv skup klauza, onda se iz njega metodom rezolucije moze izvesti prazna klauza.

Primer 3.28 Formula ∀x∀y (p(x, y)⇒ p(y, x)) je logicka posledica formula ∀x p(x, x)i ∀u∀v∀w (p(u, v) ∧ p(w, v)⇒ p(u,w)), pa je formula

A = (∀x p(x, x)) ∧ (∀u∀v∀w (p(u, v) ∧ p(w, v)⇒ p(u,w)))⇒

(∀x∀y (p(x, y)⇒ p(y, x)))

valjana.C1 : p(x, x)C2 : ¬p(u, v),¬p(w, v), p(u,w)C3 : p(a, b)C4 : ¬p(b, a)C5 : ¬p(u′, b), p(u′, a) (C2, 2;C3, 1) [w 7→ a, v 7→ b];

preimenovanje: [u 7→ u′]C6 : ¬p(b, b) (C4, 1;C5, 2) [u′ 7→ b]C7 : 2 (C1, 1;C6, 1) [x 7→ b]

Primetimo da u opisu metoda rezolucije nije specifikovan nacin na koji sebiraju klauze nad kojim se primenjuje pravilo rezolucije. Takode, teorema opotpunosti (teorema 3.18) tvrdi da se iz svakog nezadovoljivog skupa klauzamoze izvesti prazna klauza, a ne tvrdi da se iz svakog nezadovoljivog skupaklauza mora izvesti prazna klauza bez obzira na izbor klauza za rezolviranje.Naime, u zavisnosti od izbora klauza na koje se primenjuje pravilo rezolucijemoguce je da se i za nezadovoljiv skup klauza metod rezolucije ne zaustavlja.Nacin na koji se biraju klauze na koje se primenjuje pravilo rezolucije cini strate-giju ili strategiju za upravljanje konkretne verzije metoda rezolucije. Strategijaje od sustinske vaznosti za obezbedivanje nuznog izvodenja prazne klauze iznezadovoljivog skupa, ali i za efikasnost metoda.

Page 64: Vestacka-inteligencija

64 3 Logika prvog reda

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 i-tog stupnja tekuci skup klauza cine klauzeC1, C2, . . ., Cn, i-ti stupanj sastoji se od izvodenja (i dodavanja tekucem skupuklauza) svih mogucih rezolventi iz po svake dve klauze iz skupaC1, C2, . . ., Cn(broj tih klauza je konacan); metod se zaustavlja ako se u nekom koraku izvedeprazna klauza ili ako se u nekom stupnju ne moze izvesti nijedna nova klauza.

Teorema 3.19 (Potpunost sistematskog metoda rezolucije) Ako je Γ nezadovoljivskup klauza, onda se iz njega sistematskim metodom rezolucije mora izvesti praznaklauza.

Dokaz: Ako je skup klauza Γ nezadovoljiv, onda se, na osnovu teoreme o pot-punosti metoda rezolucije (teorema 3.18) iz njega metodom rezolucijemoze izvesti prazna klauza, tj. postoji niz rezolventi R1, R2, . . ., Rn (kojese izvode iz pocetnih i izvedenih klauza) od kojih je poslednja u nizuprazna klauza. Ako se na skup klauza Γ primeni sistematski metod re-zolucije, u nekom stupnju bice (ako vec pre toga nije izvedena praznaklauza) izvedene sve klauze iz skupa R1, R2, . . ., Rn, pa i prazna klauza.

2

Ocigledno je da je sistematski metod rezolucije izuzetno neefikasan. Po-stoji vise strategija koje obezbeduju nuzno izvodenje prazne klauze iz nezado-voljivog skupa klauza (tj. sprecavaju beskonacne petlje), ali na efikasniji nacin.Te strategije su od sustinske vaznosti i za broj klauza koje se izvode i, shodnotome, za efikasnost metoda. Smanjivanje izvodenja nepotrebnih klauza jedanje od najvaznijih problema metoda rezolucije. U daljem tekstu bice ukratkoopisane neke od strategija koje se koriste u razlicitim varijantama metoda re-zolucije.

Razmotrimo sledeci primer: potrebno je dokazati da je formula ∀x∀y(p(x, y)⇒ p(y, x)) logicka posledica formula ∀xp(x, x) i ∀u∀v∀w(p(u, v) ∧ p(w, v) ⇒p(u,w)). Dovoljno je dokazati da formula ∀x p(x, x) ∧(∀u∀v∀w (p(u, v) ∧p(w, v) ⇒ p(u,w))) ∧ ¬(∀x∀y (p(x, y) ⇒ p(y, x))) nije zadovoljiva. Negacijanavedene formule, transformisanjem u klauzalnu formu, dobija oblik: p(x, x)∧(¬p(u, v)∨¬p(w, v)∨ p(u,w))∧ p(a, b)∧¬p(b, a) (gde su a i b nove, Skolemovekonstante). Primenimo metod rezolucije na ovako dobijen skup klauza:C1 : p(x1, x1) (prva hipoteza)C2 : ¬p(u1, v1),¬p(w1, v1), p(u1, w1) (druga hipoteza)C3 : p(a, b) (prvi deo zaljucka)C4 : ¬p(b, a) (drugi deo zakljucka)C5 : ¬p(b, v2),¬p(a, v2) (C4, 1;C2, 3) [u1 7→ b, w1 7→ a];

preimenovanje: [v1 7→ v2]C6 : ¬p(b, b) (C5, 2;C3, 1) [v2 7→ b]C7 : 2 (C6, 1;C1, 1) [x1 7→ b]

Primetimo da se u navedenom primeru u svakoj primeni pravila rezolucijekoristi poslednja klauza u nizu (osim u prvom koraku, to je uvek rezolventa iz

Page 65: Vestacka-inteligencija

3.2 Semantika logike prvog reda 65

prethodno primenjenog pravila rezolucije) i rezolvira sa nekom od originalnihklauza. Ovaj vid pobijanja je veoma prirodan. On, u izvesnom smislu, oponasarezonovanje matematicara koji krece od tvrdenja koje treba dokazati i u dokazukoristi aksiome i date hipoteze. Ova strategija za upravljanje metodom rezolu-cije zove se linearna ulazna rezolucija — linearna, jer se u svakoj primeni pravilarezolucije koristi poslednja klauza u nizu; ulazna, jer se u svakoj primeni prav-ila rezolucije koristi jedna od pocetnih klauza.

Linearna ulazna rezolucija je jedna od varijanti opsteg metoda rezolucije. Sobzirom na to da ona iskljucuje mnoge puteve izvodenja novih klauza, ona jeobicno znatno efikasnija nego opsti metod rezolucije. Medutim, iz istog razlo-ga, linearna ulazna rezolucija nema svojstvo potpunosti (kao sto ga ima opstimetod rezolucije). Nepotpunost linearne ulazne rezolucije ilustruje sledeciprimer:C1 : p(x1), q(x1)C2 : ¬p(x2), q(x2)C3 : ¬q(x3), p(x3)C4 : ¬p(x4),¬q(x4)C5 : ¬p(x5),¬p(x5) (C4, 2;C2, 2) [x4 7→ x2];

preimenovanje: [x2 7→ x5]C6 : q(x6) (C5, 1, 2;C1, 1) [x5 7→ x1];

preimenovanje: [x1 7→ x6]C7 : p(x7) (C6, 1;C3, 1), [x6 7→ x3];

preimenovanje: [x3 7→ x7]Klauza C7 moze se rezolvirati samo sa klauzom C2 ili sa klauzom C4. Re-

zolucija sa C2 daje q(x), sto vodi u beskonacnu petlju. Rezolucija sa C4 daje¬q(x), sto, dalje, daje simetricnu situaciju. Slicno vazi i za sve ostale mogucno-sti, te praznu klauzu nije moguce izvesti ukoliko se koristi linearna ulaznastrategija.

Linearna ulazna rezolucija ima svojstvo potpunosti za pobijanje za nekeklase formula. Na primer, linearna ulazna rezolucija ima svojstvo potpunostiza pobijanje skupova Hornovih klauza, tj. linearna ulazna rezolucija moze do-vesti do prazne klauze za svaki kontradiktoran skup Hornovih klauza (u nave-denom primeru, prva klauza nije Hornova). Linearna ulazna rezolucija nadHornovim klauzama se koristi u PROLOG-u.

Pored opisane ulazne strategije i linearne strategije, neke od najznacajnijihstrategija za upravljanje metodom rezolucije su prednost jedinicnim klauzama,skup potpore, itd. U cilju efikasnijeg primenjivanja metodu, pored pravila re-zolucije, koriste se i dodatna pravila, kao na primer paramodulacija. Sa ciljemda zameni veliki broj (cesto komplikovanih i neprirodnih koraka) u koriscenjuaksioma jednakosti, uvodi se pravilo paramodulacije. Ono povecava efikasnostmetoda rezolucije, ali nije nuzno njegov deo (jer pravilo paramodulacije mozebiti izvedeno pravilom rezolucije). Pravilo paramodulacije moze biti reprezen-tovano na sledeci nacin:

A t = s ∨ B ( ili s = t ∨ B)(A[t′ 7→ s] ∨ B)σ

gde je σ najopstiji unifikator za termove t i t′ i gde jeA formula koja sadrzi termt′. Na primer, iz klauza ¬h(a) = b i c = a moze da se izvede klauza ¬h(c) = b

Page 66: Vestacka-inteligencija

66 3 Logika prvog reda

primenom pravila paramodulacije (u jednom koraku) na sledeci nacin:

¬h(a) = b c = a

((¬h(a) = b)[a 7→ c]) [ ]

Za detaljniji opis ovih i srodnih tehnika videti na primer, [?, ?].

Zadaci

Zadatak 49 Dati su skup P od n (n ≥ 1) iskaznih slova, skup C svih klauza nad P idva podskupa, S1 i S2, skupa C.

(a) Koliko elemenata ima skup C?(b) Da li je skup C zadovoljiv?(c) Ako su skupovi S1 i S2 zadovoljivi, da li je i skup S1 ∪ S2 zadovoljiv?(d) Ako su skupovi S1 i S2 zadovoljivi, da li je i skup S1 ∩ S2 zadovoljiv?(e) Ako je skup S1 zadovoljiv, da li skup C \ S1 moze da bude zadovoljiv?(f) Ako je skup S1 zadovoljiv, da li skup C \ S1 mora da bude zadovoljiv?

Zadatak 50 Dati su skup P od n (n ≥ 1) iskaznih slova, skup C svih klauza nad P idva podskupa, S1 i S2, skupa C.

(a) Da li je skup C kontradiktoran?(b) Ako su skupovi S1 i S2 kontradiktorni, da li skup S1 ∪ S2 moze da bude kon-

tradiktoran?(c) Ako su skupovi S1 i S2 kontradiktorni, da li skup S1 ∪ S2 mora da bude kon-

tradiktoran?(d) Ako su skupovi S1 i S2 kontradiktorni, da li skup S1 ∩ S2 moze da bude kon-

tradiktoran?(e) Ako su skupovi S1 i S2 kontradiktorni, da li skup S1 ∩ S2 mora da bude kon-

tradiktoran?

Zadatak 51 Dokazati metodom rezolucije za iskaznu logiku da su naredne formuletautologije:

(a) q ⇒ (p⇒ q)(b) ((p⇒ q) ∧ (q ⇒ r))⇒ (p⇒ r)(c) ((p⇒ q) ∧ (p⇒ r))⇒ (p⇒ (q ∧ r))(d) (((p⇒ r) ∧ (q ⇒ r)) ∧ (p ∨ q))⇒ r(e) ¬(p ∧ q)⇒ (¬p ∨ ¬q)(f) ¬(p ∨ q)⇒ (¬p ∧ ¬q)(g) (¬p ∨ ¬q)⇒ ¬(p ∧ q)(h) (p ∨ (q ∧ r))⇒ ((p ∨ q) ∧ (p ∨ r))

Zadatak 52 Koristeci metod rezolucije za logiku prvog reda dokazati da vazi:

(∀x)(p(x)⇒ q(x)), p(c) |= q(c) .

Zadatak 53 Metodom rezolucije za logiku prvog reda dokazati da je naredna formulavaljana:

(∃x)(∀y)p(x, y)⇒ (∀y)(∃x)p(x, y) .

Page 67: Vestacka-inteligencija

3.3 Prirodna dedukcija 67

Zadatak 54 Metodom rezolucije za logiku prvog reda dokazati da je naredna formulavaljana:

(a) (∀y)((∀x)p(x)⇒ p(y))(b) (∀x)p(x)⇒ (∃x)p(x)(c) ¬(∃y)p(y)⇒ (∀y)((∃x)p(x)⇒ p(y))(d) (∃x)p(x)⇒ (∃y)p(y)(e) (∀x)(p(x) ∧ q(x))⇔ (∀x)p(x) ∧ (∀x)q(x)(f) (∀x)p(x) ∨ (∀x)q(x)⇒ (∀x)(p(x) ∨ q(x))(g) (∃x)(p(x) ∨ q(x))⇔ (∃x)p(x) ∨ (∃x)q(x)(h) (∃x)(p(x) ∧ q(x))⇒ (∃x)p(x) ∧ (∃x)q(x)

Zadatak 55 Metodom rezolucije za logiku prvog reda dokazati da je formula (H ∧K)⇒ L valjana, gde je

H = (∀x)(∀y)(p(x, y)⇒ p(y, x))K = (∀x)(∀y)(∀z)((p(x, y) ∧ p(y, z))⇒ p(x, z))L = (∀x)(∀y)(p(x, y)⇒ p(x, x)).

Zadatak 56 Metodom rezolucije za logiku prvog reda dokazati da je formula (∀x)s(x)logicka posledica skupa formula {∀x(p(x) ⇒ q(x)), ∀x(q(x) ⇒ s(x)), ∀x(r(x) ⇒s(x)), ∀x(p(x) ∨ r(x))}.

Zadatak 57 Metodom rezolucije za logiku prvog reda dokazati da je formula ∀x∀y (x =y ⇒ y = x) logicka posledica formula ∀x (x = x) i ∀u∀v∀w (u = v ∧ w = v ⇒ u =w).

Zadatak 58√

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 59 Za narednu formulu metodom rezolucije za logiku prvog reda dokazatida je valjana:

(∀x)(A(x)⇒ C)⇔ ((∃x)A(x)⇒ C)

pri cemu jeC recenica. (Ovaj zadatak ilustruje kako metod rezolucije moze biti oslabljentako da se primenjuje i na formule koje nisu u klauzalnoj formi.)

Zadatak 60 Prevesti na jezik logike prvog reda i dokazati metodom rezolucije za logikuprvog reda sledece tvrdenje: Ako su svi politicari lukavi i ako su samo pokvareni ljudipoliticari, onda, ako postoji bar jedan politicar, onda je neki pokvaren covek lukav.

3.3 Prirodna dedukcija

Pojam valjanosti je semanticke prirode, a koncept dokazivanja i sistema za de-dukciju vodi do pojma teoreme koji je sintaksno-deduktivne prirode. Kao sto jeteorija modela vezana za semantiku, tako su deduktivni sistemi i teorija dokazavezani za sintaksu. Pojam teoreme je deduktivni pandan pojma valjane formule,koji je semanticke prirode. Izmedu ova dva pojma postoji veza i deduktivni

Page 68: Vestacka-inteligencija

68 3 Logika prvog reda

sistemi obicno imaju svojstvo potpunosti i saglasnosti: ako je neka formulavaljana, onda ona moze biti dokazana u okviru deduktivnog sistema, a ako zaneku formulu postoji dokaz u okviru deduktivnog sistema, onda je ona sig-urno valjana.

Sistemi za dedukciju su cisto sintaksne prirode — primenjuju se kroz kom-binovanje simbola, ne ulazeci u semantiku formula. Sisteme za dedukciju zaiskaznu logiku zovemo i racun (iskazni racu u slucaju iskazne logike i predikatskiracu u slucaju logike prvog reda). Postoji vise razlicitih deduktivnih sistema, au nastavku 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 veznici3 ¬, ∧, ∨, ⇒, kao i logickakonstanta ⊥. Formula A ⇔ B je kraci zapis za (A ⇒ B) ∧ (B ⇒ A), a formula> kraci zapis za A ⇒ A. Skup formula definise se na uobicajeni nacin.

Pravila izvodenja sistema prirodne dedukcije data su u tabeli 3.1. Prime-timo da za svaki logicki veznik i svaki kvantifikator postoje pravila koja gauvode (pravila I-tipa) i pravila koja ga eliminisu (pravila E-tipa). Pravilo efq(Ex falso quodlibet) je jedino pravilo koje ne uvodi niti eliminise neki logickiveznik. Skup pravila sistema prirodne dedukcije za iskaznu logiku cine svapravila iz tabele 3.1 izuzev onih koja ukljucuju kvantifikatore.

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: A ∨ ¬A (tertium non datur). Sistem za intuicionisticku logiku nemaaksioma.

U pravilima izvodenja prikazanim u tabeli 3.1 simbol t oznacava proizvol-jan term. Simbol y oznacava tzv. eigenvariable (pravu promenljivu) — simbolpromenljive za koju vazi tzv. eigenvariable uslov. Ovaj uslov za pravilo ∀I jeda vazi da je x = y ili da promenljiva y nije slobodna u A, kao i da vazi day nije slobodna ni u jednoj neoslobodenoj pretpostavci u izvodenju formuleA[x 7→ y]. Eigenvariable uslov za pravilo ∃E je da vazi da je x = y ili dapromenljiva y nije slobodna uA, kao i da vazi da y nije slobodna u B niti u bilokojoj neoslobodenoj pretpostavci u izvodenju formule B osim, eventualno, uformuli A[x 7→ y].

Tokom izvodenja dokaza u sistemu prirodne dedukcije mogu se koristiti(nedokazane) pretpostavke, ali one moraju biti eliminisane (,,oslobodene“) prekraja izvodenja. U zapisu pravila, [F ] oznacava da se nekoliko (mozda i nula)pojavljivanja pretpostavke F oslobada, brise (kao nedokazane, neraspolozivepretpostavke) neposredno nakon primene pravila. Pri tome, moze ostati inekoliko neoslobodenih pojavljivanja pretpostavke F . 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 je svakomcvoru pridruzena formula, a svakom listu ili pretpostavka ili aksioma. For-mula A je teorema prirodne dedukcije ako postoji dokaz u cijem je korenu A i

3Iz sistema prirodne dedukcije moguce je eliminisati veznik ¬ smatrajuci formulu ¬Askracenim zapisom zaA ⇒ ⊥.

Page 69: Vestacka-inteligencija

3.3 Prirodna dedukcija 69

[A]u....⊥¬A ¬I, u

A ¬A⊥ ¬E

A BA ∧ B ∧I

A ∧ BA ∧E A ∧ B

B ∧E

AA ∨ B ∨I

BA ∨ B ∨I

A ∨ B

[A]u....C

[B]v....C

C∨E, u, v

[A]u....B

A ⇒ B ⇒ I, u A A ⇒ BB ⇒ E

A[x 7→ y](∀x)A ∀I

(∀x)AA[x 7→ t] ∀E

uz dodatni uslov

A[x 7→ t](∃x)A ∃I

(∃x)A

[A[x 7→ y]]u....B

B ∃E, u

uz dodatni uslov

⊥D

efq

Table 3.1: Pravila izvodenja sistema prirodne dedukcije

koji nema neoslobodenih pretpostavki i tada pisemo ` A i kazemo da je for-mula A dokaziva u sistemu prirodne dedukcije. Ako postoji dokaz, u cijem jekorenu formula A i koji ima neoslobodene pretpostavke koje pripadaju nekomnizu Γ, onda kazemo da je formula A deduktivna posledica niza Γ i tada pisemoΓ ` A. Elemente niza Γ tada zovemo i premisama ili hipotezama dokaza. Ako jeniz Γ jednak B1, B2, . . . , Bn, onda pisemo B1, B2, . . . , Bn ` A.

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 3.3).

Naredni primeri ilustruju primenu prirodne dedukcije za dokazivanje uiskaznoj logici.

Primer 3.29 Formula (A ∨ B) ⇒ (B ∨ A) je teorema sistema prirodne dedukcije,

Page 70: Vestacka-inteligencija

70 3 Logika prvog reda

A

...

B

...

C

D...

....A

....B

CD....

Figure 3.3: Deo dokaza i njegov pojednostavljeni prikaz

tj. vazi ` (A ∨B)⇒ (B ∨A) :

[A ∨B]1[A]2

B ∨A ∨I[B]3

B ∨A ∨I

B ∨A ∨E, 2, 3

(A ∨B)⇒ (B ∨A)⇒ I, 1

Primer 3.30 U sistemu prirodne dedukcije vazi: A⇒ B,B ⇒ C ` A⇒ C:

[A]1 A⇒ B

B⇒ E

B ⇒ CC

⇒ E

A⇒ C⇒ I, 1

Primer 3.31 U sistemu prirodne dedukcije vazi ` A⇒ (A ∨B) ∧ (A ∨ C):

[A]1

A ∨B ∨I[A]1

A ∨ C ∨I

(A ∨B) ∧ (A ∨ C) ∧I

A⇒ (A ∨B) ∧ (A ∨ C)⇒ I, 1

U prethodnom dokazu, primenom pravila ⇒ I nisu morala da budu oslobodena svapojavljivanja pretpostavke A. Na primer:

[A]1

A ∨B ∨IA

A ∨ C ∨I

(A ∨B) ∧ (A ∨ C) ∧I

A⇒ (A ∨B) ∧ (A ∨ C)⇒ I, 1

Ovaj dokaz je dokaz tvrdenja A ` A⇒ (A ∨ B) ∧ (A ∨ C) (sto je slabije tvrdenje odtvrdenja ` A⇒ (A ∨B) ∧ (A ∨ C)).

Naredni primeri ilustruju primenu prirodne dedukcije za dokazivanje ulogici prvog reda.

Primer 3.32 Formula (∃x)(∀y)p(x, y) ⇒ (∀y)(∃x)p(x, y) je teorema sistema pri-rodne dedukcije (i za klasicnu i za intuicionisticku logiku). Neki matematicar bi ovuformulu (neformalno) dokazao na sledeci nacin:

Page 71: Vestacka-inteligencija

3.3 Prirodna dedukcija 71

1. Pretpostavimo da vazi (∃x)(∀y)p(x, y).

2. Pretpostavimo da vazi (∀y)p(x′, y) za neko x′.

3. Neka je y′ proizvoljni objekat. Tada vazi p(x′, y′).

4. Iz p(x′, y′) sledi da vazi (∃x)p(x, y′).

5. Objekat y′ je proizvoljan, pa vazi (∀y)(∃x)p(x, y).

6. Iz (∃x)(∀y)p(x, y) i iz toga sto pretpostavka (∀y)p(x′, y) ima za posledicu (∀y)(∃x)p(x, y), sledi (∀y)(∃x)p(x, y).

7. Iz pretpostavke (∃x)(∀y)p(x, y) sledi (∀y)(∃x)p(x, y), pa vazi (∃x)(∀y) p(x, y)⇒ (∀y)(∃x)p(x, y).

Ovaj dokaz moze se precizno opisati u vidu dokaza u sistemu prirodne dedukcije (iza klasicnu i za intuicionisticku logiku):

[(∃x)(∀y)p(x, y)]2

[(∀y)p(x′, y)]1

p(x′, y′) ∀E

(∃x)p(x, y′) ∃I

(∀y)(∃x)p(x, y) ∀I

(∀y)(∃x)p(x, y)∃E, 1

(∃x)(∀y)p(x, y)⇒ (∀y)(∃x)p(x, y)⇒ I, 2

Primer 3.33 Formula¬(∃x)p(x)⇒ (∀y)¬p(y) je teorema sistema prirodne dedukcije(i za klasicnu i za intuicionisticku logiku):

[p(z)]1

(∃x)p(x) ∃I [¬(∃x)p(x)]2

⊥ ¬E

¬p(z)¬I, 1

(∀y)¬p(y) ∀I

¬(∃x)p(x)⇒ (∀y)¬p(y)⇒ I, 2

Primer 3.34 U sistemu prirodne dedukcije vazi ∀xA,∀x(A ⇒ B) ` ∀xB:

∀xAA ∀E

∀x(A ⇒ B)A ⇒ B ∀E

B ⇒ E

∀xB ∀I

Naredna teorema povezuje semanticka i deduktivna svojstva klasicne logike(ona vazi i za iskaznu i za predikatsku logiku).

Teorema 3.20 Formula je teorema sistema prirodne dedukcije za klasicnu logiku ako isamo ako je valjana.

Page 72: Vestacka-inteligencija

72 3 Logika prvog reda

Zadaci

Zadatak 61√

Dokazati da u prirodnoj dedukciji vazi A ∨B,¬A ` B.

Zadatak 62√

Dokazati da je formula (A ⇒ B) ⇒ (¬B ⇒ ¬A) teorema sistemaprirodne dedukcije za klasicnu logiku.

Zadatak 63√

Dokazati da je formula (A∨(B∧C))⇒ ((A∨B)∧(A∨C)) teoremasistema prirodne dedukcije za klasicnu logiku.

Zadatak 64√

Dokazati da je formula ¬(A ∧ B) ⇒ (¬A ∨ ¬B) teorema sistemaprirodne dedukcije za klasicnu logiku.

3.4 Sazetak

Page 73: Vestacka-inteligencija

Glava 4

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 izmedju programera koji opisuje problem idokazivaca teorema koji problem resava.

Jezik PROLOG je najznacajniji predstavnik jezika deskriptivnog i logickogprogramiranja. Veoma je pogodan za mnoge primene tehnika vestacke in-teligencije. Pogodan je za obrade prirodnog jezika, ali i za brz razvoj pro-totipova 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 izvodjenja 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 za-snovani na rezoluciji mogu koristiti za parsiranje. Efikasan PROLOG meha-nizam omogucen je otkricem LUSH ili SLD rezolucije koju je opisao Kowalski1973. godine.

Prakticna upotreba PROLOG-a kao programskog jezika omogucena je razvo-jem 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.

4.1 Interpretatori i kompilatori

PROLOG sistemi obicno sadrze interaktivni interpretator (sa debagerom). Poredtoga, neki sistemi omoguavaju i kompiliranje koda koje daje izvrsne verzijekoje mogu samostalno da se izvrsavaju. Izvrsni kod cesto je veoma efikasani uporediv sa izvrsnim kodom dobijenim od programa na nekom procedural-nom jeziku.

Komunikacija sa PROLOG interpretatorom odvija se kroz komandni pro-zor. Prompt interpretatora obicno izgleda ovako:

Page 74: Vestacka-inteligencija

74 4 PROLOG

?-Vecina PROLOG sistema sadrzi uputstva o koriscenju jezika a i samog in-

terpretatora. Ovo uputstvo se obicno moze dobiti sa?- help(help).Komanda halt prekida izvrsavanje interpretatora (ili kompiliranog pro-

grama) i vraca kontrolu operativnom sistemu.Neki od najpopularnijih PROLOG interpretatora su Quintus, Sixtus, SWI

PROLOG itd.

4.2 Sintaksa i semantika u PROLOG-U

Jezik PROLOG-a cine: mala i velika slova engleskog alfabeta, cifre i specijalnisimboli (_, +, *, (, ), [, ], . . ..

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 (celobro-jnih 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 odredjena je tekucim stanjem baze znanja.Domen interpretacije cine sami PROLOG termovi. Baza znanja, koju PROLOGodrzava, sastoji se od cinjenica i pravila. Cinjenice su predikati oblika:

p(x1,x2,...,xn)Ukoliko baza znanja sadrzi cinjenicu man(sokrat), onda se u pratecoj inter-

pretaciji atomickoj formuli man(sokrat) pridruzuje vrednost 1, tj. ona je tacna.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) zovemo reppravila (eng. tail of the rule) ili telo pravila (eng. body of the rule). Navedenopravilo interpretira se kao implicitno univerzalno kvantifikovana implikacija:

q(y1,y2,...,ym)∧ . . .∧ r(z1,z2,...,zk)⇒ p(x1,x2,...,xn)Ukoliko baza znanja sadrzi pravilo mortal(sokrat) :- man(sokrat) i cinjenicu

man(sokrat), onda iz nje sledi da mortal(sokrat) ima semanticku vrednost1.

Upiti ili ciljevi (eng. goals) su oblikaq(y1,y2,...,ym),...,r(z1,z2,...,zk)Postaviti cilj znaci traziti proveru da li je zadati skup atomickih formula

za neku valuaciju promenljivih koje sadrzi tacan (tj. ima semanicku vrednost1) u odnosu na tekuce stanje baze. Ako je taj uslov ispunjen, kazemo da je

Page 75: Vestacka-inteligencija

4.3 Pocetni primeri 75

cilj 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 val-uaciju kojom se promenljiva Y preslikava u vrednost sokrat. Jedini odgovorna ovaj cilj bice, dakle, Y = sokrat.

U interaktivnom okruzenju, nove cinjenice i pravila se zadaju iza prompta,kao argumenti predikata assert(...) i svaki zadati cilj se mora zavrsavatitackom.

Cinjenice, pravila i ciljevi, pored navedene, deklarativne semantike, imaju iodgovarajucu proceduralnu semantiku koja omogucava koriscenje PROLOG-akao 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 pojed-inacnih ciljeva, je analogna, s tim sto se podciljevi obradjuju sleva na desno.

PROLOG interpretator kao odgovor na neki cilj koji je zadovoljen, ispisujejednu valuaciju (zbog specificnog domena, valuaciju cemo zvati i instanciranje)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 navodjenjem resenja. Kada su sva resenja navedena, interpretatorispisuje rec No.

4.3 Pocetni primeri

Nova cinjenica se moze zadati kao u sledecem primeru:?- assert(man(sokrat)).

Nakon ovoga, upit?- man(sokrat).

uspeva, tj. daje rezultat Yes.Naravno, upit?- man(plato).

ne uspeva, tj. daje odgovor No.Novo pravilo se zadaje na slican nacin, na primer:?- assert(mortal(X) :- man(X)).U pravilu mortal(X) :- man(X), predikat mortal(X) je glava pravila a (jednoclani)

niz predikata man(X) je rep pravila.Komandom listing mozemo da dobijemo spisak svih postojecih cinjenica

i pravila:

?- listing.

man(sokrat).

mortal(A) :-

Page 76: Vestacka-inteligencija

76 4 PROLOG

man(A).

Upit?- mortal(sokrat).

uspeva (daje odgovor Yes). Da bi ovaj upit bio zadovoljen, u pravilu mortal(X) :- man(X)je promenljiva X bila unifikovana sa konstantom sokrat. Nakon toga, cilj mortal(sokrat)je zamenjen ciljem man(sokrat) i on uspeva jer postoji takva cinjeniva.

Upit?- mortal(plato).

ne uspeva (daje odgovor No).Upit?- mortal(A).

uspeva i daje odgovorA = sokrat.

To je jedino moguce resenje i ako ukucamo simbol ; dobicemo odgovor No.Jednostavan i ilustrativan primer definisanja odnosa u PROLOG-u moze se

dati na primeru porodicnih relacija kao sto su otac, majka, brat, tetka i slicno.

zensko(jelena).zensko(milica).zensko(milena).zensko(mina).zensko(maja).zensko(senka).

musko(mladen).musko(stevan).musko(mihajlo).musko(rajko).musko(petar).

roditelj(stevan,mladen).roditelj(stevan,jelena).roditelj(milica,mladen).roditelj(milica,jelena).roditelj(mihajlo,milica).roditelj(milena,milica).roditelj(milena,senka).roditelj(mihajlo,senka).roditelj(milena,rajko).roditelj(mihajlo,rajko).roditelj(rajko,petar).roditelj(rajko,mina).roditelj(maja,petar).roditelj(maja,mina).

majka(X,Y):-zensko(X),roditelj(X,Y).otac(X,Y):-musko(X),roditelj(X,Y).predak(X,Y):-roditelj(X,Y).predak(X,Y):-roditelj(X,Z),predak(Z,Y).

Page 77: Vestacka-inteligencija

4.4 PROLOG i metod rezolucije 77

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).ujak(X,Y):-brat(X,Z),majka(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 predikag X\==Y je ima vrednost tacno ako je Xrazlicito od Y. U suprotnom, ima vrednost netacno.

4.4 PROLOG i metod rezolucije

Pravilo oblika:p(x1,x2,...,xn) :- q1(y1,y2,...,ym),...qm(z1,z2,...zk)

moze se smatrati implikacijomq1(y1,y2,...,ym) ∧ . . .∧ qm(z1,z2,...zk)⇒ p(x1,x2,...,xn)

ili klauzom¬ q1(y1,y2,...,ym) ∨ . . .∨ ¬qm(z1,z2,...zk) ∨ p(x1,x2,...,xn)Cinjenica oblika:p(x1,x2,...,xn)

moze se smatrati klauzomp(x1,x2,...,xn).Cilj oblika:q1(y1,y2,...,ym),...qm(z1,z2,...zk)

moze se smatrati klauzom¬ q1(y1,y2,...,ym) ∨ . . .∨ ¬qm(z1,z2,...zk)U primeru iz poglavlja 4.3, ako postoje sledece cinjenice i pravila:

man(sokrat).

mortal(A) :-man(A).

upitu?- mortal(X).odgovara ispitivanje nezadovoljivosti skupa klauza:man(sokrat)¬ man(X) ∨ mortal(X)¬ mortal(Y)Primetimo da je u trecoj klauzi promenljive preimenovana u Y, da ne bi

doslo do preklapanja imena u dve klauze. Ciljna klauza moze da se rezolvirasa drugom klauzom, koriscenjem unifikatora [ Y 7→ sokrat ] dajuci novi cilj¬ man(sokrat)Rezolviranjem ove klauze sa prvom klauzom iz pocetnog skupa, koriscenjem

unifikatora [ X 7→ sokrat ] dobija se prazna klauza, pa je dokazana nezado-voljivost datog skupa klauza. Pritom je odredjena (jedinstveno) instanciranjepromenljive X iz zadatog cilja.

Page 78: Vestacka-inteligencija

78 4 PROLOG

Primetimo da u svim PROLOG klauzama najvise jedan literal nije pod ne-gacijom. Takve klauze zovemo Hornovim klauzama i one omogucavaju efikasanmehanizam izvodjenja prazne klauze.

PROLOG mehanizam je kompletan: on moze izvesti praznu klauzu iz bilokog nezadovoljivog skupa.

4.5 Stablo izvodjenja

PROLOG sistem (interpretator ili kompilator) pokusava da zadovolji zadaticilj sistematicnim ispitivanjem svih mogucnosti. Sve mogucnosti cine stabloizvodjenja (eng. derivation tree) ili stablo pretrage (eng. search tree) cijim lis-tovima odgovaraju odgovori za zadati cilj. Ukoliko svakom od listova odgo-vara neuspeh, zadati cilj je nezadovoljen. Ukoliko bar jednom listu odgovarauspeh, cilj je zadovoljen i unifikacija koja vodi do tog lista predstavlja jednoresenje za zadati cilj.

Stablo izvodjenja PROLOG-a ilustrovacemo primerom. Pretpostavimo daje ucitana PROLOG datoteka koja sadrzi kod dat na slici 4.1 (na kraju svakogreda, pod komentarom je oznaka klauze). Grane stabla su oznacene oznakamaklauza koje se koriste u izvodjenju. Direktni potomci jednog cvora odgovarajusvim mogucim izvodjenjima odgovarajuceg podcilja. PROLOG mehanizamih sve ispituje sistematicno. Poredak potomaka direktno odgovara poretkuklauza u postojecem programu i on diktira nacin izvrsavanja upita.

Na slici je prikazano kompletno stablo izvodjenja za cilj ?-p(X).Svaki cvor stabla je u nekom trenutku tekuci cilj koji moze da cini neko-

liko podciljeva. Ukoliko se krajnji levi podcilj unifikuje sa glavom neke klauze,onda se taj podcilj zamenjuje telom klauze instanciranim tom istom unifikaci-jom. Ako je telo klauze prazno, onda se podcilj samo izostavlja. Ako se svipodciljevi mogu obrisati tokom izvodjenja, onda je polazni cilj zadovoljen, ainstanciranje promenljivih odredjeno usput daje odgovor.

PROLOG stablo izvodjenja obilazi u dubinu, sto znaci da ce alternativni iz-bori 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 izvodjenja, upit p(X) dace sledece odgov-ore:

?- p(X).

X = a ;

X = a ;

X = b ;

X = d ;

No

Page 79: Vestacka-inteligencija

4.6 Operator secenja 79

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)

Figure 4.1: Primer stabla izvodjenja

4.6 Operator secenja

Operator secenja (eng. cut operator), koji se zapisuje !, odseca delove stabla pre-trage. Ovaj operator, uspeva kada je on tekuci cilj i stablu izvodjenja se odse-caju svi drugi izvori na putu unzad do tacke stabla izvodjenja (ukljucujuci inju) gde se nalazi operator.

Za program naveden u poglavlju 4.5, za cilj p(X),!. dobija se samo jedanodgovor (a odgovarajuce stablo izvodjenja je prikazano na slici 4.2 — sivombojom oznaceni su cvorovi koji se ne obilaze):

?- p(X),!.

X = a ;

Page 80: Vestacka-inteligencija

80 4 PROLOG

No

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)

Figure 4.2: Primer rada operatora secenja

Za isti program, upit r(X),s(Y) daje odgovore (stablo izvodjenja je prikazanona slici 4.3):

?- r(X),s(Y).

X = aY = a ;

X = aY = b ;

X = aY = c ;

X = bY = a ;

X = bY = b ;

X = bY = c ;

No

Upit r(X),!,s(Y), zbog operatora secenja daje samo odgovore (stablo izvod-jenja je prikazano na slici 4.4):

?- r(X),!,s(Y).

Page 81: Vestacka-inteligencija

4.6 Operator secenja 81

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)

Figure 4.3: Stablo izvodjenja

X = aY = a ;

X = aY = b ;

X = aY = 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)

Figure 4.4: Stablo izvodjenja sa operatorom secenja

Konacno, upit r(X),s(Y),!, zbog operatora secenja daje samo jedan odgov-ore (stablo izvodjenja je prikazano na slici 4.5):

?- r(X),s(Y),!.

X = aY = a ;

Page 82: Vestacka-inteligencija

82 4 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)

Figure 4.5: Stablo izvodjenja sa operatorom secenja

Operator secenja ne koristi se samo u ciljevima, vec moze da se koristi i upravilima/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 nije do-voljno efikasan. Ukoliko je cilj max(3,4,Y) pozvan u okviru izvrsavajna nekogveceg programa, bice dobijen (ispravan) odgovor Y=4. Medutim, ukoliko dodedo bektrektinga program ce pokusati da zadovolji max(3,4,Y) na neki druginacin, sto je u ovom slucaju potpuno nepotrebno: maximum brojeva 3 i 4 je4 i nema drugog moguceg rezultata. U gore navedenoj definicije, dve klauzese medusobno iskljucuju (ako prva uspeva, onda druga sigurno ne uspeva iobratno), 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,do na operator secenja i to sugerise da je njegova upotreba opravdana i prih-valjiva. Takav operator secenja (koji ne menja znacenje programa) zovemo ze-leni operator secenja. Operator secenja tog tipa ima za cilj izbegavanje nepotreb-nih izracunavanja popravljanje efikasnosti.

Page 83: Vestacka-inteligencija

4.7 Negacija kao neuspeh 83

Postoji i druga vrsta operatora secenje — crveni operator secenja. Crvenimzovemo operator secenja koji menja znacenje programa. U principu dobro jeizbegavati takve operatore, sem ako za njihovu upotebu ne postoji dobar ra-zlog. 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 izostavl-jen uslov X>Y. Navedni program sa opetorom secenja nije isti ukoliko se izostavioperator secenja. To sugerise da njegova upotreba zahteva posebnu paznju (jeron menja znacenje programa). Za neke upite navedena implementacija je is-pravna. Na primer, ona ispravno odgovara na upite u kojima je (samo) treciargument promenljiva:

?- max(100,101,X).

X = 101Yes

?- max(3,2,X).

X = 3Yes

Ipak, situacija nije ista kao sa zelenim operatorom secenjam i znacenje predikatamax je promenjeno. Na primer, ukoliko su sva tri argumenta instancirana, ciljmoze 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?) us-peva. Naime, ne uspeva unifikovanje sa prvom klauzom, te se prelazi nadrugu. Cilj se uspesno unifikuje sa drugom klauzom i biva zadovoljen. Ovajprimer pokazuje kako neoprezna upotreba operatora secenja moze da dovededo neocekivanog ponasanja programa. On je tipican primer za crveni oper-ator secenja. Navedena implementacije zapravo ne definise maksimum, vecneki drugi predikat i ponasa se ocekivano (kao maksimum) samo u nekimslucajevima.

Dobra praksa je da se najpre implementira jasan program bez operatorasecenja i da se tek onda njegova efikasnost popravi koriscenjem operatora secenja.

4.7 Negacija kao neuspeh

Termin negacija kao neuspeh se koristi za nacin na koji se pretpostavka zatvorenogsveta (eng. closed world assumption) implementira kao vrsta negacije u PROLOG-u. Grubo receno, pretpostavka zatvorenog sveta govori da je netacno sve stonije eksplicitno navedeno kao tacno. Operator \+ daje efekat negacije kaoneuspeha, isto kao predikat not definisan na sledeci nacin (u nekim imple-mentacijama PROLOG-a raspoloziv je i ovakav predikat not):

not(Q) :- call(Q), !, fail.not(Q).

Page 84: Vestacka-inteligencija

84 4 PROLOG

Dakle, cilj not(Q) uspeva ako i samo ako cilj Q ne uspeva.Razmotrimo sledeci primer u kojem se defise pojam woman preko pojma

man:

man(sokrat).man(platon).woman(X):- \+( man(X) ).

Za tako definisan predikat dobija se:

?- woman(sokrat).

no

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 cinjenica nepostoji 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 kaoneuspeha 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 dobijamo:

?- p(X,Y).

X=1Y=2;

X=2Y=1;

No.

?- q(X,Y).

No.

Page 85: Vestacka-inteligencija

4.8 Liste 85

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 promenljiveX i Y uvek mogu unifikovati, cilj X=Y uvek uspeva. Stoga cilj not(X=Y) ne us-peva, pa ni upit q(X,Y).

Generalno, ocekivani rezultat (ocekivani u smislu klasicne logike prvogreda) dobija se samo ako nema slobodnih promenljivih u upitu, tj. ako je ar-gument operatora \+ vezan u trenutku kada je ovaj operator pozvan.

Primetimo i da se cilj \+(\+(man(X))) razlikuje od cilja man(X) jer ako jeprvi 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 unifika-bilna bez njihovog unifikovanja u bilo kom slucaju. Na primer, cilj \+(\+(X=2))uspeva, a pri tome se X ne instancira na 2.

4.8 Liste

Liste su jedan od kljucnih tipova podataka koji se koriste u logickom programi-ranju. 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 zarezimazapisu izmedu zagrada ’[’ i ’]’. Lista kao svoj element moze da sadrzi i drugulistu. 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 unifikovati ra-zlicite liste.

Page 86: Vestacka-inteligencija

86 4 PROLOG

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 se moze 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 krajaliste 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.

Page 87: Vestacka-inteligencija

4.8 Liste 87

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 clan1unifikuje sa prvim elementom liste, a operator secenja onemogucava bektrek-ing. Stoga ne uspeva cilj X>2 i sistem odgovara No. U drugom slucaju, posleneuspeha cilja X>2, bektrekingom se dolazi do unifikacije promenljive X saposlednjim 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_pojavljivanje izbacuje jedno pojavljivanje datogelementa iz date liste:

brisi_jedno_pojavljivanje(X,[X|R],R).brisi_jedno_pojavljivanje(X,[F|R],[F|S]) :- brisi_jedno_pojavljivanje(X,R,S).

Ovo je primer upotrebe navedenog predikata:

?- brisi_jedno_pojavljivanje(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_pojavljivanje(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

Page 88: Vestacka-inteligencija

88 4 PROLOG

pokazuje da predikat brisi_jedno_pojavljivanje(X,L,R) moze da se inter-pretira i kao ,,ubaci element X u listu L koja tako daje listu R“. Dakle, predikatubaci mogao bi da se jednostavno implementira:

ubaci(X,L,R) :- brisi_jedno_pojavljivanje(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]

Ilustrujmo primene listi i kroz dva algoritma za sortiranje.Primetimo da u narednoj implementaciji algoritma mergesort nema potrebe

za primenom operatora secenja, za bilo koje argumente navedni predikatumogu 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 argu-menta ako je dat prvi. Nije ga moguce koristiti za izracunavanje prvog argu-menta ako je dat drugi. Naime, na primer, upit mergesort(A,[1,2,3]) bi pri-likom poziva predikata merge doveo do nedovoljno instanciranih promenljivihi do greske.

Algoritam bubble sort moze se implementirati na sledeci nacin:

Page 89: Vestacka-inteligencija

4.9 Ugradjeni predikati 89

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 pos-toji 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)

; Sorted = List.

4.9 Ugradjeni predikati

Logicke konstante Predikat true uvek uspeva kao cilj, predikat false nikadne uspeva kao cilj.

Provera promenljive

Predikat var(X) proverava da li je X promenljiva koja nije vezana.

Predikat ground(G) proverava da li je 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) ne us-pevaju.

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 \== Yproverava 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 odredjena.

Aritmetici operatori

Za brojeve N i M, dozvoljeni su sledeci aritmeticki operatori: N > M, N < M,N =< M, N >= M.

Page 90: Vestacka-inteligencija

90 4 PROLOG

Pomocni predikati

Cilj help(S) uvek uspeva i daje objasnjenje (ako ono postoji) za pojam S(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 instanci-rana 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 izmedju znakova /* i */.

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, tellin(user) uspeva ako je tekuci izlazni tok ekran.

tell(X) otvara kao izlazni port datoteku X. Naredni ulazi predikata writebice slati na taj port.

told zatvara sve izlazne portove i naredni ulazi za predikat bi\’ce biceslat na porta user.

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.

Page 91: Vestacka-inteligencija

4.9 Ugradjeni predikati 91

Negacija kao neuspeh

not(Q), \+Q daje efekat negacije kao neuspeha (kao sto je objasnjeno upoglavlju 4.7.

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 odredjuje glavni predikatglave.

functor(E,F,N) uspeva ako je vrednost E vezana za funkcijski izraz ob-lika 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 izmedju atoma i liste. Na primer, upit?- name(’.pl’,L). daje odgovor L = [46,112,108].

=.. vrsi konvertovajne izmedju terma i liste. Na primer, ?- parent(a,X) = .. L.daje odgovor L = [parent, a, _X001].

Operator :- op(P,T,O). uvodi simbol operatora.

P odredjuje prioritet operatora, vecoj vrednost odgovara nizi prioritet(prioriteti za ugradjene operatore zavisi 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.

Tip operatora se definise pomocu jednostavnih, gore datih, niski karak-tera. Karakter f oznacava poziciju operatora, a x i y pozicije argume-nata. Pri tome x znaci da se radi o argumentu sa glavnim operatoromstrogo manjeg prioriteta od operatora koji definisemo. y znaci da prior-itet glavnog operatora argumenta moze biti manji ili jednak prioritetu op-eratora koji definisemo. Pri tome se smatra da atomi i izrazi u zagradamaimaju prioritet 0.

Smisao ovakvog definisanja tipa operatora se najbolje ilustruje pomocudrveta operatora. Neka je operator + tipa yfx i neka je dat izraz a+b+c.Postoje dva drveta izraza koja mu potencijalno mogu odgovarati. Datasu na slici 4.6.

Ako posmatramo desno drvo, primecujemo da njegovo desno poddrvoima operator + u korenu koji nije strogo manjeg prioriteta od operatora+ u korenu celog drveta. Medutim, njegov tip yfx to zahteva, pa stoga

Page 92: Vestacka-inteligencija

92 4 PROLOG

+

+

a b

c

+

a +

b c

Figure 4.6: Dva drveta koja mogu odgovarati izrazu a+b+c

desno drvo moramo odbaciti. Odnosno, operator je levo asocijativan iizraz se tumaci kao ((a+b)+c). Da je tip operatora bio xfx ni jedno odova dva drveta ne bi bilo prihvatljivo, posto se bar u jednom poddrvetujavlja operator + istog prioriteta. Ovo se moze resiti pomocu zagrada,posto je prioritet izraza u njima 0. Stoga tip xfx namece koriscenje zagrada,sto znaci da operator nije asocijativan.

Ugradjeni operatori, poredjani po prioritetima:

:- xfx, fx?- fx; xfy, xfynot fyis, =.., <, itd. xfx+, - yfx, fx*, / yfx^ xfy

Pronalazenje svih resenja findall(Things,GoalExpression,Bag) pronalazisve vrednosti za Thing koje zadovoljavaju uslov GoalExpression i smestaih u listu Bag. Ako cilj GoalExpression ne uspeva, list Bag ce biti prazna.Sve promenljive u GoalExpression se smatraju egzistencijalno kvantifiko-vanim.

bagof(Things,GoalExpression,Bag) pronalazi sve vrednosti za Thingkoje zadovoljavaju uslov GoalExpression i smesta ih u listu Bag. Ne us-peva ako ne uspeva cilj GoalExpression. Slobodne promenljive u GoalExpressionmogu da se vezu.

setof(Things,GoalExpression,Bag) funkionise isto kao bagof uz raz-liku da ce lista Bag biti sortirana i da nece sadrzati duplikate.

4.10 Implementacija KNF algoritma

Kao prvi veci primer PROLOG programa koji ilustruje razne koncepte jezika,navodimo implementaciju KNF algorima. Kasnije cemo na to nadovezati im-

Page 93: Vestacka-inteligencija

4.10 Implementacija KNF algoritma 93

plementaciju algoritma DPLL. Radi preglednijeg zapisa, prvo uvodimo logickeveznike kao nove operatore.

:-op(10,fx,non).:-op(20,yfy,and).:-op(30,yfy,or).:-op(40,xfx,implies).:-op(50,xfx,equiv).

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 za-kona uz eliminisanje dvostrukih negacija, a na kraju primena zakona distribu-tivnosti disjunkcije i konjunkcije.

knf(X,Y):-eliminacija(X,Z),demorgan(Z,T),distributivnost(T,Y).

eliminacija(X equiv Y,R):-eliminacija((X implies Y) and (Y implies X),R).eliminacija(X implies Y,non X1 or Y1):-eliminacija(X,X1),eliminacija(Y,Y1).eliminacija(X or Y,X1 or Y1):-eliminacija(X,X1),eliminacija(Y,Y1).eliminacija(X and Y,X1 and Y1):-eliminacija(X,X1),eliminacija(Y,Y1).eliminacija(non X,non X1):-eliminacija(X,X1).eliminacija(X,X):-atom(X).

Primetimo da je pri svakom pozivu primenljivo samo jedno pravilo za elim-inaciju, tako da PROLOG nece traziti vise od jednog resenja. Osim toga, trebaprimetiti da je prvo pravilo specificno zato sto eliminisuci jedan veznik uvodinovi koji je potrebno eliminisati.

demorgan(non (X and Y),X1 or Y1):-demorgan(non X,X1),demorgan(non Y,Y1).demorgan(non (X or Y),X1 and Y1):-demorgan(non X,X1),demorgan(non Y,Y1).demorgan(non non X,X1):-demorgan(X,X1).demorgan(X or Y,X1 or Y1):-demorgan(X,X1),demorgan(Y,Y1).demorgan(X and Y,X1 and Y1):-demorgan(X,X1),demorgan(Y,Y1).demorgan(non X,non X):-atom(X).demorgan(X,X):-atom(X).

Primetimo da je jednostavnosti radi ucinjeno malo odstupanje od KNF al-goritma kako je dat na slici 2.1. Naime, dozvoljena je eliminacija dvostrukenegacije i pre nego sto se do kraja primene de Morganovi zakoni.

distributivnost(X and Y, X1 and Y1):-distributivnost(X,X1),distributivnost(Y,Y1).distributivnost(X or Y, R):-distributivnost(X,X1),distributivnost(Y,Y1),

distributivnost(X1,Y1,R).distributivnost(non X, non X).distributivnost(X,X):-atom(X).

distributivnost(X and Y, Z, XZ and YZ):-distributivnost(X,Z,XZ),distributivnost(Y,Z,YZ),!.

distributivnost(X, Y and Z, XY and XZ):-distributivnost(X,Y,XY),distributivnost(X,Z,XZ),!.

distributivnost(X,Y,X or Y).

Page 94: Vestacka-inteligencija

94 4 PROLOG

Kada mu je argument neka konjunkcija, predikat distributivnost omogucavarekurzivnu primenu na konjunkte, a slucaju disjunkcije primenjuje zakone dis-tributivnosti. Pri tome se uzima u obzir i to da primena ovog zakona mozedovesti do stvaranja novih uslova za njegovu primenu u okviru podformuladobijenog izraza.

4.11 Implementacija DPLL algoritma

Posle transformacije formule u konjunktivnu normalnu formu, u cilju primeneDPLL algoritma, potrebno ju je konvertovati u listu listi literala gde je spoljnalista konjunkcija unutrasnjih listi koje predstavljaju klauze. Kako bismo ovoimplementirali, prvo nam je potreban pomocni predikat koji spaja dve liste. Zato cemo koristiti predikat append definisan u sekciji 4.8.

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 kojiod 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 lement 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, ko-risticemo i sledeci predikat:

zameni_u_disjunkciji(X,Y,[X|R],[Y|T]):-zameni_u_disjunkciji(X,Y,R,T),!.zameni_u_disjunkciji(X,Y,[Z|R],[Z|T]):-zameni_u_disjunkciji(X,Y,R,T).zameni_u_disjunkciji(X,Y,[],[]).

Page 95: Vestacka-inteligencija

4.11 Implementacija DPLL algoritma 95

Pri tome se podrazumeva da su disjunkcije unutrasnje liste. Zamena ele-menta liste listi (literala u celoj formuli) se sad lako vrsi:

zameni_literal_u_formuli(X,Y,[P|R],[Q|T]):-zameni_u_disjunkciji(X,Y,P,Q),zameni_literal_u_formuli(X,Y,R,T).

zameni_literal_u_formuli(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_u_formuli(X,Y,P,Q):-zameni_literal_u_formuli(X,Y,P,R),zameni_literal_u_formuli(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.

% 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).

Page 96: Vestacka-inteligencija

96 4 PROLOG

% Korak unit propagation

dpll(X):-sadrzi(X,[Y]),atom(Y),!,zameni_slovo_u_formuli(Y,t,X,Z),dpll(Z).dpll(X):-sadrzi(X,[non Y]),!,zameni_slovo_u_formuli(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_u_formuli(Y,t,X,Z),dpll(Z).

dpll(X):-formula_sadrzi_literal(X,non Y),not(formula_sadrzi_literal(X,Y)),!,zameni_slovo_u_formuli(Y,f,X,Z),dpll(Z).

% Korak split

dpll([[X|R1]|R2]):-atom(X),zameni_slovo_u_formuli(X,t,[[X|R1]|R2],Y),dpll(Y),!.dpll([[X|R1]|R2]):-atom(X),zameni_slovo_u_formuli(X,f,[[X|R1]|R2],Y),dpll(Y).dpll([[non X|R1]|R2]):-zameni_slovo_u_formuli(X,t,[[non X|R1]|R2],Y),dpll(Y),!.dpll([[non X|R1]|R2]):-zameni_slovo_u_formuli(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 bektreking u po-trazi za svim resenjima. Kako to u nasoj implementaciji nema svrhe, ubacen jepredikat reza koji sprecava ovakvo ponasanje. Slicna opaska vazi i u pravilimaunit propagation i pure literal.

Zamene negiranih literala se vrse jednostavno kad imamo implementiranepomocne predikate.

zameni_negacije_literala(X,Y):-zameni_literal_u_formuli(non t,f,X,Z),zameni_literal_u_formuli(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.

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).

Page 97: Vestacka-inteligencija

4.12 Pretraga grafa 97

4.12 Pretraga grafa

Kako grafovi predstavljaju binarne relacije nad nekim domenom, PROLOGomogucava vrlo jednostavno opisivanje i pretragu grafova. Graf se zadaje lis-tom svojih 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 A do cvoraB ako je A = B ili ako postoji grana od cvora A do cvora X i postoji put odX do B. Kako grafovi mogu u opstem slucaju sadrzati cikluse, potrebno jepamtiti i listu posecenih cvorova kako ne bi doslo do prekoracenja steka prirekurzili.

% 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).

4.13 Primer resavanje jednostavnog problema

PROLOG je poznat po svojoj pogodnosti za resavanje problema vestacke in-teligencije. Ilustrovacemo to na primeru jednostavne igre.

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)

Page 98: Vestacka-inteligencija

98 4 PROLOG

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 odgovaraju granamakoje 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_move(CurrentState, NextState, Move),mandc(NextState, [NextState | Visited], RestOfMoves).

Za uoceno stanje koje nasleduje trenutno, potez koji realizuje prelaz se lakoizracunava.

make_move(state(M1, C1, left), state(M2, C2, right), move(M, C, right)) :-M is M1 - M2,C is C1 - C2.

make_move(state(M1, C1, right), state(M2, C2, left), move(M, C, left)) :-M is M2 - M1,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 su svatri misionara na levoj obali i stanja kod kojih su svi misionari na desnoj obali.

legal(X, X).legal(3, X).legal(0, X).

Page 99: Vestacka-inteligencija

4.13 Primer resavanje jednostavnog problema 99

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).

Zadaci

Zadatak 65√

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 66√

Definisati predikat koji izracunava sumu prvih N prirodnih brojeva.

Zadatak 67√

Definisati predikat koji izracunava sumu cifara datog broja.

Zadatak 68√

Definisati predikat koji izracunava N-ti stepen zadatog broja.

Zadatak 69√

Definisati predikat koji obrce cifre broja.

Zadatak 70√

Definisati predikat koji izracunava najveci zajednicki delilac dva broja.

Zadatak 71√

Definisati predikat koji proverava da li je broj prost.

Zadatak 72√

Definisati predikat koji izracunava sumu elemenata liste.

Zadatak 73√

Definisati predikat koji obrce listu.

Zadatak 74√

Definisati predikat koji dodaje element na kraj liste.

Zadatak 75√

Definisati predikat koji proverava da li se tri zadata elementa nalazena uzastopnim pozicijama u listi.

Page 100: Vestacka-inteligencija

100 4 PROLOG

Zadatak 76√

Definisati predikat koji konstruise listu koja se sastoji od prvih n ele-menata zadate liste.

Zadatak 77√

Definisati predikat koji deli datu listu brojeva na listu negativnih inenegativnih elemenata.

Zadatak 78√

Definisati predikat koji deli datu listu na dve na sve moguce nacine.

Zadatak 79√

Definisati predikat koji ispisuje sve podliste date liste.

Zadatak 80√

Definisati predikat koji iz date liste brise sva ponavljanja elemenata.

Zadatak 81√

Definisati predikat koji nalazi uniju dve liste.

Zadatak 82√

Definisati predikat koji nalazi presek dve liste.

Zadatak 83√

Definisati predikat koji nalazi razliku dve liste.

Zadatak 84√

Definisati predikat koji nalazi simetricnu razliku dve liste.

Page 101: Vestacka-inteligencija

Deo II

Pretraga

Page 102: Vestacka-inteligencija
Page 103: Vestacka-inteligencija

Glava 5

Resavanje problema kaopretraga

U prethodnom delu prikazani su teorijski okviri i algoritmi pomocu kojih jemoguce sprovoditi logicko zakljucivanje. Iako zakljucci moraju nuzno sleditiiz zadatih pretpostavki, proces njihovog dokazaivanja nije pravolinijski vecukljucuje odredene odluke o pravcu u kome ce se postupak sprovoditi. Drugimrecima, uocljivo je traganje za dokazom nekog tvrdenja. Primera radi, u pri-meni procedure DPLL moguce je uociti i korake zakljucivanja i korake pre-trage. Kada se uoci jedinicna klauza u nekoj formuli, njeno zadovoljenje jenuzno i predstavlja korak zakljucivanja. S druge strane kada je nemoguce di-rektno zakljucivanje, potrebno je pretpostaviti vrednost iskazne promenljive.U daljem toku dokazivanja, ta akcija ce se pokazati kao opravdana ili neoprav-dana. U slucaju da se pokaze kao neopravdana, preduzima se alternativna ak-cija. Znaci, situacija u kojoj nije moguce izvrsiti direktno zakljucivanje zahtevaprimenu pretrage.

Manje apstraktan primer je upravljanje robotskom rukom. Pretpostavimoda robotska ruka ima nekoliko mehanickih zglobova cije se kretanje kontroliseelektricnim impulsima. Pri tom, 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 razbitina sekvencu atomicnih koraka — pokreta pojedinacnih zglobova oko razlicitihosa za odreden ugao. Mozemo zamisliti da se ovi koraci izvrsavaju strogojedan po jedan u kom bi slucaju kretanje ruke bilo znacajno razlicito od ljud-skog i sporo, ali bi problem bio laksi jer ne bi bila potrebna sinhronizacija ra-zlicitih zglobova i svaki bi se pojedinacno dovodio u zeljeni polozaj. Drugamogucnost je da se kretanja zglobova izvode simultano, kao kod coveka, pritom povecavajuci broj mogucih kombinacija u svakom trenutku.

Dati primeri motivisu razmisljanje o pretrazi kao o nalazenju niza akcija ko-jima se ostvaruje cilj kada to ne moze biti ostvareno pojedinacnim akcijama. Iakou 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.

Pored algoritama koji se u potpunosti mogu podvesti pod ovako definisan

Page 104: Vestacka-inteligencija

104 5 Resavanje problema kao pretraga

pojam pretrage, u ovom delu cemo opisati i neke algoritme optimizacije, kojisu opstiji.

Kako bi se neki problem predstavio kao problem pretrage i resio primenomalgoritama pretrage potrebno je da ima odredenu strukturu. Kako bi aspektiove strukture bili jasnije izlozeni bice ilustrovani na primeru nalazenja putaizmedu dva grada. Pretpostavlja se da direktan put izmedu njih ne mora pos-tojati, vec da je potreban prolazak kroz veci broj gradova na putu izmedu njih,ali se pretpostavlja da je ciljni grad dostupan iz polaznog.

Elementi problema pretrage koje je potrebno definisati su sledeci:

Skup mogucih stanja: U toku procesa pretrage agent koji sprovodi pretraguse moze naci u razlicitim stanjima. Poznavanje stanja pruza sve informa-cije potrebne za razumevanje procesa pretrage i agenta u datom trenutku.Za agenta koji nalazi put izmedu dva grada, skup stanja predstavlja skupgradova koji su dostupni iz polaznog grada.

Polazno stanje: Na pocetku resavanja problema agent se nalazi u odredenomstanju. Ovo stanje nazivamo polaznim stanjem. U primeru nalazenjaputa, to je grad iz koga se krece.

Skup mogucih akcija: U svakom koraku pretrage, agent moze preduzeti nekuakciju. Niz akcija preduzetih u odgovarajucim trenucima treba da dovededo resavanja problema. Skup akcija moze biti isti u svakom stanju ilimoze da varira od stanja do stanja. To zavisi od problema koji se resava.Skup akcija moze biti kretanje ka jednom od susednih gradova. Nizovakvih izbora treba da dovede agenta do ciljnog grada. Skup akcija uovom problemu ocito varira od stanja do stanja jer su za razlicite gradoverazliciti i skupovi susednih gradova.

Fukcija prelaska: Ova funkcija preslikava parove stanje-akcija u stanja kojaslede posto se u datom stanju preduzme data akcija. Ova funkcija omogucavaizbor narednog stanja izborom neke akcije. Ukoliko ona nije poznata,agent ne moze biti siguran u koje ce stanje dospeti posle preduzimanjaodredene akcije i sam proces odlucivanja postaje kompleksniji. U nekimproblemima funkcija prelaska ne mora biti poznata. Na primer u slucajudelovanja u nepoznatoj okolini. Jedan nacin resavanja ovakvih prob-lema je koriscenjem informacija iz iskustva, odnosno aproksimacijom ovefunkcije pomocu procesa koji se zasniva na analizi pokusaja i gresaka.Jedan nacin kojim se resavaju ovakvi problemi je primena algoritamaucenja uslovljavanjem (eng. reinforcement learning). Jos jedan primer ukome funkcija prelaska moze biti nedefinisana je delovanje u promenljivojokolini. U tom slucaju je potrebno koriscenje prilagodljivih algoritamakoji takode koriste informacije iz iskustva. Na primer, algoritama ucenjauslovljavanjem i genetskih algoritama.

U slucaju primera nalazenja puta izmedu dva grada, funkcija prelaska jejednoznacno odredena putnom kartom datog podrucja koja odreduje ukom gradu se agent moze naci posto iz datog grada krene u odredenompravcu.

Test cilja: Ovim testom se ustanovljava da li se doslo do zavrsetka procesapretrage. To moze biti test jednakosti sa zavrsnim gradom.

Page 105: Vestacka-inteligencija

5.1 Kvalitet algoritama pretrage 105

Cena akcije: Ovo je funkcija koja preslikava par stanje-akcija u numericku vred-nost — cenu preduzimanja date akcije u datom stanju. Primer cene ak-cije je duzina puta ili cena goriva potrebnog za prevoz izmedu susednihgradova.

Kod nekih problema se ovi elementi lako i prirodno uocavaju, kao na datomprimeru, dok je kod drugih potrebno manje ili vece modeliranje ili prefor-mulacija problema. U slucaju primera upravljanja robotskom rukom bilo bipotrebno odrediti moguce ose rotacije za razlicite zglobove i diskretizovati in-tervale u kojima se rotacija obavlja. Na primer po 10 stepeni. Takode bi bilopotrebno odluciti da li se pokreti razlicitim zglobovima mogu preduzimati si-multano ili ne. Posle toga bi se navedeni elementi mogli lako definisati.

Resenje problema predstavlja niz akcija koji vode od polaznog stanja do stanjau kome je ispunjen test cilja. Svakom resenju se moze pridruziti njegova cenakao suma cena akcija koje se preduzimaju. Optimalno resenje je resenje sa naj-manjom cenom. Ono ne mora biti jednoznacno definisano.

Primer 5.1 Slagalica se sastoji od 8 kvadrata rasporedenih na prostoru velicine 3x3polja. Kvadrati su numerisani brojevima od 1 do 8. Slagalicu je potrebno tako ureditida se u prvom redu nalazi prazno polje, a zatim kvadrati 1 i 2, u drugom kvadrati3, 4 i 5, a u trecem kvadrati 6, 7 i 8 sto cemo kompaktno zapisivati kao [ 12345678].Elementi ovog problema mogu biti definisani na sledeci nacin.

1. Skup stanja predstavlja skup svih kombinacija [s1s2 . . . s9] za si ∈ { , 1, 2, 3, 4, 5, 6, 7, 8}.

2. Polazno stanje moze biti bilo koje stanje slagalice. Na primer [7638 1425].

3. Skup akcija moze biti {levo, desno, gore, dole} gde se date akcije odnose napomeranje praznog polja levo, desno, gore i dole. Iako je naizgled prirodnijeza akcije uzeti pomeranje kvadrata susednih praznom polju na prazno polje, stose u stvarnosti i desava, postoji jednoznacna korespodencija izmedu tako defin-isanih akcija i definicije koja je data, tako da se odlucujemo za formulaciju koja jejednostavnija.

4. Funkcija prelaska presliakva stanja i akcije u stanja koja nastaju pomeranjempraznog polja na neku od cetiri moguce strane.

5. Test cilja je test jednakosti sa stanjem [ 12345678].

6. Cena akcije je konstantna (npr. 1) posto ne postoji razlog da se neka pomeranjasmatraju skupljim od drugih. Cena resenja je u tom slucaju proporcionalna brojupomeranja potrebnih za slaganje slagalice.

Neke od realnih primena algoritama pretrage su nalazenje najkracih puteva,igranje igara, navigacija robota, automatsko nalazenje redosleda sklapanja u in-dustriji, dizajn proteina sa odredenim trazenim svojstvima, resavanje logistickihproblema i slicno.

5.1 Kvalitet algoritama pretrage

Kao i kod drugih vrsta algoritama i kod algoritama pretrage potrebno je poz-navati njihova svojstva kako bi se lakse izvrsio izbor pogodnog algoritma za

Page 106: Vestacka-inteligencija

106 5 Resavanje problema kao pretraga

dati problem. Osnovni aspekti koji se smatraju bitnim za algoritme pretrage susledeci:

Kompletnost je svojstvo koje garantuje da ce algoritam naci nekakvo resenjeproblema ako ono postoji. Ovo svojstvo je ocito pozeljno, ali se u nekimslucajevima izostavlja. Naime, u slucaju vrlo teskih problema cesto jemoguce formulisati heuristike koje ne garantuju nalazenje resenja, ali uvisokom procentu slucajeva nalaze dobra resenja mnogo brze nego egza-ktni algoritmi.

Optimalnost je svojstvo koje garantuje nalazenje resenja sa najmanjom cenom.Kao i u prethodnom slucaju cesto je moguce da se uz izostavljanje ovoguslova nadu resenja bliska optimalnom u znacajno kracem vremenu.

Vremenska slozenost govori koliko ce vremena biti potrebno za izvrsavanjeprocesa pretrage i kao koncept je prisutna i u analizi drugih vrsta algori-tama.

Prostorna slozenost govori koliko je memorije potrebno za izvrsavanje pre-trage. Takode, se definise i za druge vrste algoritama.

5.2 Neinformisana i informisana pretraga

Prilikom resavanja nekog problema, moguci su razliciti stepni poznavanja de-talja samog problema. U primeru nalazenja puta od grada do grada, moguceje na primer:

1. potpuno nepoznavanje rastojanja izmedu gradova,

2. poznvanje rastojanja samo izmedu susednih gradova koja se na primermogu procitati sa putokaza,

3. dodatno poznavanje vazdusnih rastojanja od svih gradova do ciljnoggrada koje se moze izmeriti lenjirom na putnoj karti,

4. tacno poznavanje rastojanja izmedu svih, ne nuzno susednih gradova prikretanju putevima koja se mogu izmeriti na karti koriscenjem kurvime-tra.

Prema dostupnosti informacija koje mogu pomoci u nalazenju ciljnog stanjau toku pretrage, problemi pretrage se dele na probleme informisane i neinformisanepretrage. U skladu sa time moguce je formulisati i algoritme koji mogu daiskoriste dostupne informacije, pa stoga i algoritme delimo na algoritme in-formisane i neinformisane pretrage.

U slucaju datog primera, prvi slucaj ocigledno predstavlja problem nein-formisane pretrage. U drugom slucaju je prisutno vise informacija o problemu,medutim ta informacija nam ne omogucava lakse nalazenje cilja, vec samonalazenje najblizeg susednog grada sto ne mora ni sugerisati brze dolazenjedo cilja. Stoga i drugi slucaj predstavlja problem neinformisane pretrage. Poz-navanje vazdusnih rastojanja izmedu gradova se moze iskoristiti za navodenjepretrage. Na primer, pri izboru sledeceg grada, moze se izabrati grad za kojije zbir direktnog puta do njega i vazdusnog rastojanja izmedu njega i ciljnog

Page 107: Vestacka-inteligencija

5.2 Neinformisana i informisana pretraga 107

grada najmanji. Ovakva heuristika ne mora biti dobra. Na primer, na linijiizmedu izabranog grada i ciljnog grada se moze nalaziti dugacak neproho-dan planinski venac tako da je informacija o vazdusnom rastojanju beskorisna.Medutim, cesto se ovakvo parcijalno znanje moze upotrebiti za ubrzavanje pre-trage. Stoga ovaj slucaj spada u probleme informisane pretrage. U cetvrtomslucaju je moguce uvek napraviti optimalan izbor. Za sledeci grad treba iz-abrati onaj za koji je zbir direktnog rastojanja do njega i najkraceg rastojanjaod njega do ciljnog grada minimalan. Ovo je ocigledno problem informisanepretrage.

U slucaju neinformisane pretrage, moguce je koristiti standardne algoritmeza pretragu u sirinu ili u dubinu, dok se u slucaju informisane pretrage mogunapraviti specijalizovani algoritmi u zavisnosti od vrste informacija koje suna raspolaganju. Za problem nalavzenja najkracih puteva u grafu algoritamA* moze na primer da iskoristi informaciju o euklidskom rastojanju izmeducvorova u grafu. U slucaju problema igranja saha, egzaktan algoritam pretrageMINIMAX se moze kombinovati sa heuristickom procenom stanja. Na primerkoriscenjem informacije o figurama, mogucnosti mata u 3 poteza i slicno.

Page 108: Vestacka-inteligencija

108 5 Resavanje problema kao pretraga

Page 109: Vestacka-inteligencija

Glava 6

Pohlepna pretraga

Pohlepnim algoritmom se naziva svaki algoritam koji tezi neposrednom povecanjuvrednosti neke ciljne funkcije, odnosno algoritam koji bira lokalno optimalneakcije. Lokalna optimalnost znaci da algoritam ne moze da proceni dugorocnikvalitet izabranih akcija, odnosno koliko te akcije doprinose ostvarenju konacnogcilja, vec da bira akciju koja se na osnovu znanja dostupnog u trentuku izb-ora procenjuje kao najbolja medu raspolozivim akcijama. Ovakvi algoritmi sucesto znacajno jednostavniji za formulaciju od algoritama koji garantuju opti-malnost procesa resavanja. Takode, cesto daju prakticno prihvatjiva resenja,iako cesto ne optimalna.

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 formulacijeproblema, potrebno je naci dopustivo resenje sa minimalnom ili maksimalnomvrednoscu funkcije cilja. Takvo resenje se naziva optimalnim resenjem problemaoptimizacije. Ovakvi problemi ne moraju pretpostavljati postojanje stanja, ak-cija i drugih elemenata problema pretrage. U kontekstu matematicke opti-mizacije, pohlepni algoritmi se obicno nazivaju algoritmima penjanja uzbrdoposto biraju susedna dopustiva resenja koja imaju najvise vrednosti funkcijecilja.

Primer 6.1 U primeru nalazenja najkracih puteva izmedu gradova, pohlepni informisanialgoritam bi mogao za suseda da bira grad za koji je zbir direktnog rastojanja do gradai vazdusnog rastojanja do cilja minimalan. Ovakav algoritam u svakom koraku biraoptimalnu akciju s obzirom na raspolozivo znanje u vreme izbora akcije, pa je stogapohlepan. U slucaju da vazdusna rastojanja nisu poznata, vec samo rastojanja dosusednih gradova, pohlepni algoritam bi uvek birao najblizi susedni grad u nadi da cese na taj nacin naci najkraca putanja do cilja.

Primer 6.2 Problem trgovackog putnika podrazumeva da je dat graf u kome su ivi-cama grafa pridruzene njihove duzine. Cilj je nalaci najkracu putanju koja kroz svecvorove grafa prolazi tacno jednom. Pohlepni algoritam bi mogao biti formulisan takoda u svakom koraku bira ivicu najkrace duzine. Iako je ovo popularan pristup kon-struisanju putanja i dobro se ponasa za neke specificne probleme, u opstem slucajupredstavlja los pristup. Cak je dokazano da za svaki broj cvorova n, postoji instancaproblema trgovackog putnika sa n cvorova za koju ovako formulisan pohlepni algoritambira jedinstvenu najgoru putanju.

Page 110: Vestacka-inteligencija

110 6 Pohlepna pretraga

Pohlepna pretraga se obicno ponasa dobro u slucaju problema kod kojihkvalitet odluke u nekom stanju pretrage ne zavisi od buducih odluka ili akose dati problem moze aproksimirati problemom za koji ovo vazi. Ako nave-deno svojstvo vazi, lokalno optimalna odluka je stvarno optimalna. Navedenosvojstvo se moze i drugacije formulisati — pohlepna pretraga ce se ponasatidobro ukoliko se optimalno resenje problema gradi neposredno od optimalnihresenja podproblema.

Osnovni kvaliteti pohlepne pretrage su jednostavnost formulisanja i stocesto moze dati prakticno prihvatljiva resenja. S druge strane, mane ovakvogpristupa su sledece:

Opasnost od lokalnih maksimuma: Lokalni mksimumi su tacke u prostorupretrage ciji susedi imaju manju vrednost funkcije cilja od nje, ali je njenavrednost manja od vrednosti globalnog maksimuma. Algoritmim pen-janja uzbrdo nemaju nacina da primete da se nalaze u lokalnom maksi-mumu.

Grebeni: Grebeni predstavljaju nizove nadovezanih lokalnih maksimuma kodkojih najstrmije penjanje uzbrdo vodi ka jednom lokalnom maksimumuumesto u pravcu rasta niza lokalnih maksimuma. Ovakva situacija semoze razresiti kretanjem u stranu umesto najstrmije uzbrdo, medutim,trenutak u kome je takvo kretanje potrebno primeniti se ne moze lakoprepoznati.

Platoi: Platoi predstavljaju oblasti prostora pretrage u kome funkcija cilja imakonstantnu vrednost. Zbog toga je nemoguce odrediti koji potez je na-jbolji, a samim tim se moze desiti da pohlepna pretraga ne nade izlaz saplatoa.

Postoje razne varijacije osnovnog penjanja uzbrdo koje pokusavaju da se iz-bore sa navedenim problemima. Takvo je na primer stohasticko penjanje uzbrdokoje ne bira uvek susedno stanje sa najvecom vrednoscu, ali verovatnoca daodredeno stanje bude izabrano je utoliko veca sto je veca njegova vrednost.Druga varijacija je penjanje uzbrdo sa slucajnim restartovanjem kod koga se poslenalazenja lokalnog maksimuma proces pretrage ponovo pokrece iz slucajnogenerisanog polaznog stanja. Ovaj metod omogucava nalazenje globalnog mak-simuma sa verovatnocom koja se priblizava 1 sa povecanjem broja pokusaja.

6.1 Penjanje uzbrdo u slucaju diferencijabilne funkcijecilja

Metode pretrage i matematicke optimizacije cesto pokusavaju da iskoriste nekuzakonitost u strukturi prostora pretrage, odnosno prostora dupustivih resenja.Tako, penjanje uzbrdo u slucaju diferencijabilne funkcije cilja pociva na koriscenjukoncepta gradijenta. Ukoliko je data diferencijabilna funkcija cilja f : Rn → Rgradijent se definise kao vektor parcijalnih izvoda te funkcije:

∇f =(∂f

∂x1,∂f

∂x2, . . . ,

∂f

∂xn

)

Page 111: Vestacka-inteligencija

6.1 Penjanje uzbrdo u slucaju diferencijabilne funkcije cilja 111

Gradijent izracunat u odredenoj tacki A ∈ Rn predstavlja vektor u pros-toru Rn u cijem pravcu funkcija f najstrmije raste u okolini tacke A. Stogase kretanjem u ovom pravcu moze doci do lokalnog maksimuma. Ovaj prin-cip je osnova algoritma najstrmijeg uspona. Analogno, kretanjem u suprotnompravcu se dolazi do lokalnog minimuma.

Prethodne konstatacije omogucavaju skiciranje algoritma najstrmijeg uspona:

1. n← 0.

2. Izabrati polaznu tacku x0.

3. Izracunati gradijent funkcije∇f(xn) u trenutnoj tacki.

4. Izvrsiti kretanje u pravcu gradijenta do sledece tacke xn+1.

5. n← n+ 1.

6. Ukoliko xn nije maksimum, nastaviti od koraka 3.

7. Vratiti xn kao resenje.

Da bi se dati algoritam u potpunosti definisao potrebno je precizirati nekenjegove korake. U koraku 2, polazna tacka se cesto bira slucajnim izborom.Poznavanje gradijenta i kretanje u njegovom pravcu u prkasi ipak ne garantujenalazenje maksimuma, tako da je u koraku 4 u zavisnosti od duzine korakamoguce preci preko maksimuma, nastaviti dalje i time ga promasiti. Stoga jeu svakom koraku potrebno odrediti konstantu λn takvu da se umesto samoggradijenta koristi vektor λn∇f(xn). Dobra aproksimacija ove konstante je:

λn =∇f(xn) · ∇f(xn)

∇f(xn)H(xn)∇f(xn)>

pri cemu je H matrica parcijalnih izvoda drugog reda funkcije f :

H(xn) =[∂2f(xn)∂xi∂xj

]Ocito, ova aproksimacija za λn se moze koristiti samo kada su parcijalni

izvodi drugog reda funkcije definisani.U koraku 6 se u praksi ne moze ocekivati nalazenje same tacke lokalnog

maksimuma s obzirom da se ne radi o diskretnom prostoru. Zbog toga se pos-tupak cesto prekida u trenutku kada razlika izmedu vrednosti dva uzastopnaresenja ne prelazi neku unapred zadatu vrednost ε.

Sada se algoritam najstrmijeg uspona moze formulisati na sledeci nacin:

1. n← 0.

2. Izabrati polaznu tacku x0.

3. Izracunati gradijent funkcije∇f(xn) u trenutnoj tacki.

4. izracunati vrednost λn.

5. xn+1 = xn + λn∇f(xn).

6. n← n+ 1.

Page 112: Vestacka-inteligencija

112 6 Pohlepna pretraga

7. Ukoliko vazi |f(xn+1)− f(xn)| ≥ ε, nastaviti od koraka 3.

8. Vratiti xn kao resenje.

Primer 6.3 Pretpostavimo da je potrebno da se data hemijska reakcija izvrsi u stokracem vremenskom roku. Na brzinu hemijske reakcije uticu kolicine 3 katalizatoraoznacene sa k1, k2 i k3. Poznato je da je brzina date reakcije obrnuto proporcionalnavelicini (3k1 − 1)2 + (k2 − 1)2 + k4

3 . Stoga je potrebno naci maksimum funkcije

f(k1, k2, k3) = −(3k1 − 1)2 − (k2 − 1)2 − k43

Odoka se vidi da se taj maksimum postize u tacki ( 13 , 1, 0), ali je primer dobar za

ilustraciju metode najstrmijeg uspona.Za vrednost ε moze se uzeti na primer broj 0.01. Gradijent ∇f se lako moze

izracunati:

∇f(k1, k2, k3) = (−6k1 + 2,−2k2 + 2,−4k33)

Matrica H parcijalnih izvoda drugog reda je

H(k1, k2, k3) =

−6 0 00 −2 00 0 −12k2

3

Za polaznu tacku se moze uzeti na primer tacka x0 = (0, 1, 1). Vrednost gradijenta

u toj tacki je ∇f(x0) = (2, 0,−1). Koeficijent λ0 iznosi 536 . Stoga, sledeca tacka u

pretrazi je x1 = ( 518 , 1,

3136 ). Moze se primetiti da su se vrednosti k1 i k3 priblizile

odgovarajucim vrednostima u resenju, a da se vrednost k2 koja je vec dobro izabrana,nije promenila. Razlika vrednosti novog i starog resenja je

|f(x1)− f(x0)| = | − 0.58− (−2)| = 1.42

sto je vece od zadatog broja ε, pa se nastavlja sa sledecom iteracijom. Dalje iteracije seizvode po istom principu.

Kako data funkcija ima samo jedan maksimum, optimalna vrednost dobijena lokalnomotimizacijom je i globalni maksimum, pa je u ovom primeru metoda najstrmijeg usponaadekvatna.

Page 113: Vestacka-inteligencija

Glava 7

Odredivanje puteva u grafu

U mnogi problemima vestacke inteligencije potrebno je obici neki graf ili odred-iti najkraci put izmedu dva cvora grafa.

Opsti problem nalazenja puta (eng. path finding) moze se opisati na sledecinacin: dat je graf svojim cvorovima i granama izmedu nekih od njih; ovimgranama pridruzene su nenegativne cene; zadatak je naci put izmedu dva datacvora (polazni cvor i ciljni cvor) takvu da je zbir svih cena svih grana na staziminimalan. Postoji nekoliko algoritama za resavanje ovog problema [?, ?]. Oniimaju mnoge primene, ukljucujuci primene u planiranju obilazaka i putovanja,dizajniranju cipova, rutiranju u racunarskim mrezama, navigaciji robota, in-udstriji igara, itd. Algoritam A* pretraga ili krace samo algoritam A* je jedan,verovatno najpopularniji, od algoritama iz te familije. On je uopstenje Dejk-strinog algoritma iste namene. Cesto se koriste i algoritam Belmana i Forda,kao i algoritam Flojda i Varsala.

7.1 Obilazak grafa u dubinu i sirinu

Oblizak grafa u dubinu (eng. depth-first search — DFS) i u sirinu (eng. breadth-first search — BFS) su ,,neinformisane“ (eng. uninformed) metode pretragekoje ispituju sve cvorove u grafu trazeci resenje (na primer, neki specificancvor). Oni sistematski pretrazuju ceo graf, bez ikakve heuristike, tj. bez ikakvogspecificnog navodenja

DFS je pretraga koja napreduje obradujuci najpre polazni cvor i zatim nje-gove potomke i sve dok se ne naide na trazeni cvor i sve dok je ti potomcipostoje. Ukoliko vise nema potomaka koje treba ispitati, pretraga se vraca un-azad do cvora ciji svi potomci nisu ispitani i nastavlja dalje. U nerekurzivnojverziji, cvorovi se obicno cuvaju u LIFO listi. Da ne bi doslo do beskonacnepetlje, potrebno je cuvati informaciju o cvorovima koji su vec poseceni. Slika7.1 ilustruje obilazak grafa primenom algoritma DFS.

BFS ,,otvara“ sve cvorove koji su susedni tekucem cvoru i kasnije, otvara,redom, sve njihove potomke. U traganju za cvorom koji zadovoljava nekiuslov, bice pronaden onaj na najmanjem rastojanju od polaznog cvora. Cvorovikoji se razmatraju obicno se cuvaju u redu, tj. u FIFO listi. I u ovom pristupu, dane bi doslo do beskonacne petlje, potrebno je cuvati informaciju o cvorovimakoji su vec poseceni. Slika 7.2 ilustruje obilazak grafa primenom algoritma BFS.

Page 114: Vestacka-inteligencija

114 7 Odredivanje puteva u grafu

1

2

3 4

5

6

Figure 7.1: Primer obilaska grafa primenom algoritma DFS (oznake cvorovaukazuju na poredak obilaska cvova)

1

2

3

4

5

6

Figure 7.2: Primer obilaska grafa primenom algoritma BFS (oznake cvorovaukazuju na poredak obilaska cvova)

Prostorna slozenost pretrage DFS je manja nego pretrage BFS. Dodatno, onaje pogodnija za usmeravanje nekom heuristikom koja bira cvorove koji viseobecavaju. Vremenska slozenost oba algoritma je propocinalna zbiru cvorova igrana grafa koji se pretrazuje: (O(|V |+ |E|)).

7.2 Dejkstrin algoritam

Dejksrin algoritam, koji je razvio holandski informaticar Edzger Dejkstra 1959. go-dine je algoritam za pretragu grafa koji nalazi najkrace puteve u grafu za neneg-ativnim cenama koje su pridruzene granama. Algoritam se moze koristiti zaodredivanje najkraceg puta od datog polaznog cvora do datog ciljnog cvora,ali i za odredivanje najkracih puteva od svih cvorova grafa do datog ciljnogcvora.

Ideja Dejkstrinog algoritma moze se ilustrovati na sledeci nacin. Pretpostavimoda je niz cvorova vezan nitima (i da cenom puta od jednog do drugog cvorasmatramo duzinu niti koja ih vezuje). Uzmimo cvor koji je izabran za polaznii pocnimo da podizemo celu konfiguraciju (tako da nikoje dve niti nisu up-letene). Postepeno se cvorovi, jedan po jedan, odvajaju od tla. Najmanje rasto-janje izmedu nekog od tih cvorova i polaznog cvora je upravo direktno rasto-

Page 115: Vestacka-inteligencija

7.3 A* 115

janje izmedu njih. Opsta ideja algoritma je slicna: postoje cvorovi koji su vecpodignuti 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 (ramatrajuci samo one cvorove koji su mu susedni i koji su vec iznad tla).Ukoliko na kraju ovog postupa na tlu ostanu jos neki cvorovi, to znaci da donjih ne postoji put od polaznog cvora.

Dejkstrin algoritam je dat na slici 7.3. U algoritmu, komandau := izaberi\_najblizi\_cvor\_cvoru\_source($Q$)

traga za cvorom u u skupu cvorova Q (to su cvorovi koji su ,,na tlu“) takvim daje vrednost dist[u] (tekuce najmanje rastojanje od polaznog cvora) najmanja.Taj cvor se tada brise iz skupa Q. Ukoliko je to ciljni cvor, onda se konstruisetrazeni put od polaznog cvora (koristeci informaciju o roditeljskim cvorovima).Inace, za svaki cvor v iz Q koji je susedan cvoru u proverava se da li se (prekou) moze popraviti tekuce najmanje rastojanje od polaznog cvora i, ako moze,cvor u se postavlja za roditelja cvora v.

Primer 7.1 Sledeca tabela prikazuje efekat primene Dejkstrinog algoritma na graf ilus-trovan na slici 7.4: cvor A je polazni, a cvor F ciljni cvor.

korak B C D E F cvor u1 ∞ ∞ ∞ ∞ ∞ A2 3 2 6 4 ∞ C3 3 2 6 3 ∞ B4 3 2 6 3 8 E5 3 2 5 3 7 D6 3 2 5 3 6 F

U najjednostavnijoj implementaciji Dejkstrinog algoritma, skup Q se im-plementira kao obicna povezana lista ili niz. Slozenost takve implementacije jeO(|V |2+|E|) = O(|V |2), gde je |E| broj grana, a |V | broj cvorova grafa. Za retkegrafove (koji imaju mnogo manje grana od |V |2), Dejkstrin algoritam se mozeimplementirati efikasnije. Na primer, varijanta koja koristi binarni min-hip1 zaodredivanje tekuceg najblizeg cvora ima slozenost O((|E|+ |V |) log |V |).

7.3 A*

Algoritam A* za odredivanje najkraceg puta izmedu dva cvora grafa je jedanod fundamentalnih i najpopularnijih algoritama vestacke inteligencije. Zas-novan je na koriscenju heuristika, ali ipak ima dobra svojstva kao sto su pot-punost i optimalnost.

Prvu verziju algoritma A* su razvili Har, Nilsson i Raphael 1968. godine [?],a u narednim godinama uvedeno je nekoliko unapredenja [?, ?].

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,

1 Min-hip je specificna stablolika struktura koja zadovoljava hip-svojstvo: ako je B potomakcvora A, onda je vrednost pridruzena cvoru A manja od vrednosti pridruzene cvoru B. U skladusa tim, najmanji element je uvek koren stabla. Max-hip se definise analogno.

Page 116: Vestacka-inteligencija

116 7 Odredivanje puteva u grafu

Algoritam: Dejkstrin algoritam

Ulaz: Graf G, polazni cvor source i ciljni cvor targetIzlaz: najkraci put od cvora source do cvora target u grafu G (ako postojiput izme�u ova dva cvora

1. Za svaki cvor v grafa G:

• rastojanje[v] := ∞• prethodni[v] := nedefinisano

2. rastojanje[source] := 0

3. Q := G

4. Dok skup Q nije prazan:

• u := izaberi najblizi cvor cvoru source(Q)

• Obrisi u iz Q

• Ako je (u = target)

– konstruisi put S na sledeci nacin i prijavi uspeh

∗ S := prazan niz

∗ u := target

∗ Dok god je definisano prethodni[u]

· dodaj u na pocetak S

· u := prethodni[u]

• Za svaki sused v cvora u takav da v koji pripada Q:

– alt := rastojanje[u] + cena(u, v)

– Ako je alt < dist[v]

∗ rastojanje[v] := alt

∗ prethodni[v] := u

5. prijavi neuspeh

Figure 7.3: Dejkstrin algoritam

upravljanje memorijom i razlicite dodatne faktore. Neka od dodatnih svojstavaalgoritma zahtevaju dodatno matematicko znanje i izracunavanja, specificneimplementacione tehnike i strukture. Svi ti moduli treba da budu uklopljeni ukompaktan i efikasan sistem za nalazenje puta. Postoji mnogo varijanti algo-ritma A* prilagodenih specificnim problemima [?].

Algoritam A* je uopstenje Dejkstrinog algoritma i obicno smanjuje brojcvorova grafa koje treba ispitati. To smanjivanje je zasnovano na koriscenjuheuristike koja procenjuje donju granicu daljine do ciljnog cvora. Kao i u Dejk-strinom algoritmu, cvorove koji tek treba obraditi cuvaju se u redu, sortiranomprema nekom kriterijumu. Sve vreme se odrzavaju lista otvorenih cvorova —cvorova koji su vec poseceni ali nisu obradeni svi njihovi susedi i zatvorenihcvorova — cvorova koji su poseceni i kojima su obradeni svi njihovi susedi.

Page 117: Vestacka-inteligencija

7.3 A* 117

A B

C D

E F

2

3

6

4

1

4

2

5

5

1

Figure 7.4: Primer primene Dejkstrinog algoritma

Kljucna razlika je u tome sto Dejkstrin algoritam (kao ,,neinformisani algori-tam“) uzima u obzir samo cenu od polaznog do tekuceg cvora, dok A* (kao,,informisani algoritam“) koristi funkciju evaluacije f nad cvorovima grafa,definisanu na sledeci nacin:

f(n) = g(n) + h(n),

gde je g(n) cena puta od polaznog cvora do cvora n, a h(n) je procenjena (heuristicka)cena najjeftinijeg puta od cvora n do ciljnog cvora. Dok tragamo za najkracimputem, uvek znamo tekucu minimalnu cenu od polaznog cvora do cvora n(tj. tekucu vrednost za g(n)), ali se vrednost h(n) moze samo procenjivati. Dabi se obezbedila optimalnost A* pretrage, funkcija h mora da bude konzistentna(eng. consistent), tj. da za bilo koja dva susedna cvora u i v vazi:

h(u) ≤ c(u, v) + h(v)

gde je c(u, v) cena pridruzena grani (u, v). U nekim specijalnim slucajevimadovoljno je da funkcija h bude dopustiva (eng. admissible), tj. da nikada ne pre-cenjuje cenu stizanja do cilja. Svojstvo konzistentnosti ima za posledicu svo-jstvo dopustivosti. Dodatno, dopustive funkcije su cesto i konzistentne.

Opis algoritma A* dat je na slici 7.5.

Sa ravnomernom pretragom (sa funkcijom h = 0), skup otvorenih cvorovace se siriti ravnomerno, u ,,koncentricnim krugovima“ oko polaznog cvora. Sdruge strane, sa preciznijom heuristikom, skup otvorenih cvorova ce se siritika ciljnom cvoru i bice bolje usmerena kao optimalnom putu.

7.3.1 Primer upotrebe algoritma A*

U sledecem grafu zadatak je naci najkraci put od A do E. Pored cvorova grafazapisane su procenjene duzine puta do cvora E, tj. vrednosti funkcije h.

Page 118: Vestacka-inteligencija

118 7 Odredivanje puteva u grafu

Algoritam: Algoritam A*

Ulaz: Graf G, polazni cvor source i ciljni cvor targetIzlaz: najkraci put od cvora source do cvora target u grafu G (ako postojiput izme�u ova dva cvora

1. Inicijalno je zatvorena lista prazna.

2. Dodaj polazni cvor (zajedno sa procenjenom cenom do ciljnog cvora,koja je odre�ena funkcijom h) u otvorenu listu cvorova koje jepotrebno razmotriti.

3. Izvrsavaj sledecu petlju dok god ima elemenata u otvorenoj listi:

• Izaberi cvor n (zvacemo ga tekuci cvor) iz otvorene liste koji imanajmanju vrednost f(n).

• Ako je tekuci cvor ciljni cvor, izvesti o uspehu, konstruisi put odpolaznog do ciljnog cvora (iduci unazad — od ciljnog cvora) izaustavi izvrsavanje petlje.

• Ispitaj sve cvorove koji su direktno dostupni iz tekuceg cvora i pritome ne pripadaju zatvorenoj listi. Za svaki takav cvor m uradisledece:

– Ako on nije u otvorenoj listi, dodaj ga u otvorenu listu.Oznaci tekuci cvor kao roditelja ovog cvora (sto je vaznoza konstruisanje staze na kraju). Izracunaj i zapamti vred-nosti f(m), g(m) i h(m) za cvor. (Primetimo da se vred-nosti g(m) mogu izracunati na inkrementalan i efikasannacin: vrednost g(m) jednaka je zbiru vrednosti funkcijeg za roditelj cvora m i ceni puta od roditelja do m.)

– Ako je on vec u otvorenoj listi, proveri da li je odgovarajuciput od polaznog cvora do m bolji od tekuceg puta (prekocvora n). Za tu proveru koristi se vrednost g(m). Manjavrednost g znaci da je taj put bolji. Ako je tekuci put bolji,promeni informaciju o roditelju cvora m na cvor n i azurirajvrednosti g(m) i f(m).

• Izbrisi tekuci cvor iz otvorene liste i dodaj ga u zatvorenu listucvorova (on ne treba da ponovo bude ispitivan).

4. Na kraju, ako je petlja zavrsena a da nije prijavljen uspeh (tada jeotvorena lista prazna), onda ne postoji trazeni put. Inace, put jeprona�en i on se konstruise od dete-roditelj veza (iduci unazad odciljnog cvora).

Figure 7.5: Algoritam A*

A

B

C

D

EF

G

H

5

6

4

3

4

3 3

2

25

6

1

6

5

03

6

4

Page 119: Vestacka-inteligencija

7.3 A* 119

Sledeca tabela ilustruje primenu algoritma A*.

tekuci stanje otvorene lista cvor(roditelj) dodajecvor [cvor(roditelj,g+h)] se u zatvorenu listu

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

Na kraju primene algoritma, kada je cvor E postao tekuci cvor, konstruisese trazeni put (koristeci informacije o roditeljma za cvorove iz zatvorene liste:A − D − F − B − E. Ovo jeste put od cvora A do cvora E, ali nije najkracimoguci: naime, kraci je sledeci put: A−D−H−B−E. Ovaj problem je nastaozbog toga sto korisena funkcija h nije konzistentna (iako jeste dopustiva): vazih(H) > 2 + h(B).

Ukoliko se za isti zadatak koristi konzistenta funkcija, rezultat ce biti opti-malan, najkraci moguci put odA doE. U narednom primeru se koristi funkcijah cija se vrednost razlikuje u odnosu na prethodnu samo za cvor H .

A

B

C

D

EF

G

H

5

6

4

3

4

3 3

2

25

6

1

6

5

03

6

3

tekuci stanje otvorene lista cvor(roditelj) dodajecvor [cvor(roditelj,g+h)] se u zatvorenu listu

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

7.3.2 Specijalni slucajevi

Obilasci grafa u dubinu i sirinu mogu se smatrati specijalnim slucajevima al-goritma A*.

Page 120: Vestacka-inteligencija

120 7 Odredivanje puteva u grafu

Za obilazak grafa u dubinu, moze se koristiti algoritam A* sa g = 0 ipogodno odabranom funkcijom h. Na primer, neka je brojacC inicijalizovan naneku veoma veliku vrednost. Kad god obradujemo neki cvor dodajemo vred-nost C svim njegovim susedima. Nakon svake dodele smanjujemo vrednostC za jedan. Time ce vrednost h(x) da bude veca za cvorove na koje se ranijenaislo. Primetimo da ovako definisana funkcija h nije nuzno dopustiva.

Dejkstrin algoritam, kao specijalni slucaj obilaska grafa u sirinu takode jespecijalni slucaj algoritma A* gde je h(x) = 0 za svaki cvor x. Ovakva funkcijah je dopustiva i konzistentna i garantuje nalazenje optimalnog puta.

Za g = 0, algoritam A* ponasa se u skladu sa najpre-najboljim, pohlep-nim pristupom koji najpre obraduje cvorove sa najpovoljnijom heursitickomvrednoscu. Ova varijanta algoritma nije nuzno optimalna.

Opsti algoritam A* cesto se primenjuje za nalazenje puta na uniformnojmrezi cvorova (koja odgovara, na primer, diskretizovanoj mapi). Tada on do-bija specificnu formu. Pretpostavimo da je mreza pravilna (sacinjena od kvadrata)i da ima pravougaonu formu. Dodatno, pretpostavljamo da neki cvorovi (tj. nekikvadrati, neka polja mreze) nisu dostupni i da oni predstavljaju prepreke. Svakopolje je povezano sa svakim susednim poljem (osim sa preprekama), te ima(izuzev polja na rubu) osam susednih polja (ali neka od njih mogu biti preprekei kao takve nedostupne). U ovoj varijanti problema, cene su pridruzene cvorovima(poljima), a ne granama grafa (vezama izmedu susednih cvorova). U ovomkontekstu, funkcija g(n) je zbir svih cena polja duz puta od polaznog do poljan. Na primer, svakom ,,horizontalnom“ ili ,,vertikalnom“ pokretu moze sepridruziti cena 1 a svakom dijagonalnom cena 1.414 ≈

√2 (ovakva cena odgo-

vara euklidskom rastojanju izmedu sredista polja). Funkcija h moze se opisatina razlicite nacine. Jedan od njih je euklidsko rastojanje izmedu dva cvora, ajedan metod Menhetn u kojem se broji ukupan broj polja predenih horizontalnoili vertikalno da bi se doslo od polaznog polja do tekuceg polja2. Primetimo daukoliko su dozvoljeni dijagonalni potezi, onda Menhetn metod potencijalnoprecenjuje rastojanje do ciljnog cvora i zbog toga ne garantuje nalazenje na-jkraceg puta. No, ovaj metod u praksi obicno daje dobre rezultate i nadeniputevi su obicno dovoljno dobri, cak i ako nisu najkraci. Kada se odredujevrednost h, mogu da se ignorisu sve prepreke jer vrednost h(n) je procenjenoa ne stvarno rastojanje.

Kada se algoritam A* primenjuje za nalazenje puta na uniformnoj mrezi,on daje korake u osam mogucih smerova sto kasnije cesto dovodi do neprirod-nih puteva sacinjenih od segmenata sa jednim od osam nagiba. Omeksavanje(eng. smoothing) je tehnika za unapredivanje takvih puteva tako da oni iz-gledaju prirodnije.

7.3.3 Primer upotrebe algoritma A* na uniformnoj mrezi

Naredni primer3 ilustruje primer upotrebe algoritma A* na uniformnoj mrezi.Vrednosti funkcija f , g i h su napisane u svakom polju koje se ispituje: vred-nost funkcije f je zapisana gore-levo, vrednost funkcije g dole-levo, a vrednostfunkcije h dole-desno. Vrednost funkcije f za svako polje je, kao i obicno, zbir

2Metod se zove Menhetn, jer podseca na brojanje gradskih blokova od jednog mesta do drugog,pri cemo nije moguce prolaziti blokove dijagonalno.

3Ovaj primer preuzet je iz teksta Patrick Lester: A* Pathfinding for Beginners, 2005, http://www.policyalmanac.org/games/aStarTutorial.htm.

Page 121: Vestacka-inteligencija

7.3 A* 121

vrednosti funkcija g i h. Polazni cvor oznacen je zelenom, a ciljni crvenom bo-jom. 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 poljeiz otvorene liste sa najmanjom vrednoscu funkcije f . To, tekuce polje izbacu-jemo iz otvorene liste i dodajemo u zatvorenu listu. Proveravamo sve susednapolja, ne razmatrajuci polja koja su u zatvorenoj listi ili nisu dostupna. Akosusedno polje nije vec u otvorenoj listi, izracunavamo vrednosti funkcija g, hi f za njega i oznacavamo da je tekuce polje njegov roditelj. Ako je susednopolje vec u otvorenoj listi, proveravamo da li je put preko tekuceg polja bolji,tj. proveravamo da li je vrednost funkcije g za to susedno polje manja ako sedo njega dolazi preko tekuceg polja. Ukoliko to nije tacno, ne preduzima senista, a ako jeste tekuce polje postaje novi roditelj tog susegnog polja i njemuse pridruzuju nove vrednosti g i f .

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 gje 10. U dijagonalnim poljima vrednost funkcije g je 14. Ove vrednosti odgo-varaju pribliznom euklidskom rastojanju (pomnozenom sa 10 i zaokruzenom).Vrednosti funkcije h se izracunavaju na osnovu Menhetn rastojanja (pomnozenogsa 10) do ciljnog polja i zanemarujuci prepreku.

14 60

74

10 50

60

14 40

54

10 30

40

14 40

54

10 50

60

14 60

74

10 50

60

g h

f

Polazno polje brise se iz otvorene liste i dodaje u zatvorenu listu. U otvorenojlisti je samo njegovih osam susednih polja. Od svih njih, bira se ono sa najman-jom vrednoscu funkcije f (40), to je polje neposredno desno od polaznog poljai ono ce biti sledece tekuce polje.

Page 122: Vestacka-inteligencija

122 7 Odredivanje puteva u grafu

14 60

74

10 50

60

14 40

54

10 30

40

14 40

54

10 50

60

14 60

74

10 50

60

10 30

40

To polje izbacujemo iz otvorene liste, dodajemo ga u zatvorenu listu i ondaproveravamo njegova susedna polja (naravno, samo ona koja nisu u zatvorenojlisti i nisu prepreke). Preostala cetiri polja su vec u otvorenoj listi, pa je potrebnoproveriti da li put preko tekuceg cvora popravlja njihove trenutne ocene. Raz-motrimo, na primer, polje neposredno iznad tekuceg polja: vrednost funkcijeg za njega je 14. Ukoliko bi se do njega dolazilo preko tekuceg polja, vred-nost funkcije g bila bi 20 (10 je cena od polaznog do tekuceg cvora i 10 je cenaprelaska od tekuceg polja). Dakle, na ovaj nacin se ne moze popraviti vrednostfunkcije g u polju iznad i ona ostaje nepromenjena.

Opisani postupak sprovodimo za sva cetiri susegna polja i, u ovom slucaju,utvrdujemo da ocena nijegnog ne moze da se popravi. Time je obrada tekucegpolja zavrsena i trazimo novo tekuce polje. Od preostalih sedam polja u otvorenojlisti biramo ono sa najmanjom vrednoscu funkcije f . Ukoliko postoji vise takvihsvejedno je koji izabrati. Neka je, na primer, izabrano polje neposredno ispodprethodnog tekuceg polja.

14 60

74

10 50

60

14 40

54

10 30

40

14 40

54

10 50

60

14 60

74

10 50

60

10 30

40

28 60

88

24 50

74

Za tekuce polje nece se razmatrati susedna polja koja su u zatvorenoj listi ikoja su nedostupna (tj. prepreke). No, moze se (iako to nije nuzno i zavisi odkonkretne primene) zabraniti ispitivanje polja koje je desno-dole od tekucegpolja. Naime, moze se smatrati da je dijagonalni potez od tekuceg do tog poljanemoguc zbog prepreke koja se nalazi desno od tekuceg polja.

Page 123: Vestacka-inteligencija

7.3 A* 123

Ukoliko prihvatimo takvo ogranicenje, ostaje jos tri susednih polja kojatreba razmotriti. Dva polja ispod tekuceg polja nisu u otvorenoj listi, pa ihdodajemo zajedno sa izracunatim vrednostima funkcija i informacijom da imje roditelj tekuce polje. Za polje levo od tekuceg polja se proverava da li semoze smanjiti vrednost funkcije g (odgovor je — ne) i time je zavrsena obradatekuceg polja.

Opisani postupak se nastavlja dok ciljno polje ne postane tekuce.

14 60

74

10 50

60

14 40

54

10 30

40

14 40

54

10 50

60

14 60

74

10 50

60

10 30

40

28 80

108

24 70

94

20 60

80

24 70

94

28 80

108

24 70

94

20 60

80

24 50

74

24 70

94

38 70

108

38 70

108

34 60

94

20 60

80

24 50

74

34 40

74

38 50

88

44 30

74

48 40

88

54 20

74

58 30

88

72 30

102

54 20

74

58 10

68

68 20

88

72 10

82

68 0

68

72 10

82

Primetimo da su se, nakon nekoliko iteracija, vrednosti funkcija g i f , kaoi roditeljsko polje promenili za polje dva polja ispod polaznog polja. Ranije jeovo polje imalo vrednost funkcije g jednaku 28 (i vrednost funkcije f jednaku88) i roditeljsko polje je bilo gore-desno. Kasnije, ovo isto polje ima vrednostfunkcije g jednaku 20 (i vrednost funkcije f jednaku 80), a roditeljsko poljeje 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 se tokom pretrage ciljno polje postane tekuce, trazeni put od po-laznog cvora se konstruise jednostavno. Krece se od ciljnog cvora i prelazina roditeljski sve dok se ne dode do polaznog cvora. Ovako odreden niz poljau suporotnom poretku daje trazeni put od polaznog do ciljnog polja.

14 60

74

10 50

60

14 40

54

10 30

40

14 40

54

10 50

60

14 60

74

10 50

60

10 30

40

28 80

108

24 70

94

20 60

80

24 70

94

28 80

108

24 70

94

20 60

80

24 50

74

24 70

94

38 70

108

38 70

108

34 60

94

20 60

80

24 50

74

34 40

74

38 50

88

44 30

74

48 40

88

54 20

74

58 30

88

72 30

102

54 20

74

58 10

68

68 20

88

72 10

82

68 0

68

72 10

82

Page 124: Vestacka-inteligencija

124 7 Odredivanje puteva u grafu

7.3.4 Svojstva algoritma A*

Moze se dokazati da je algoritam A* potpun i da je, pod odredenim uslovimaoptimalan [?]:

Potpunost: Ako postoji put izmedu dva cvor, algoritam A* ce naci jedan takav(naravno, ukoliko je raspolozivo dovoljno vreme i memorijski prostor).Cak i ako je heuristicka funkcija veoma losa, ciljni cvor ce biti dostignutu konacnom broju koraka.

Optimalnost: Od svih puteva izmedu dva data cvora, bice izabran najkraciput, ukoliko je funkcija heuristike h konzistentna. Ukoliko funkcija h nijedopustiva, ali ne precenjuje stvarno cenu za vise od d, onda je cena putakoji ce pronaci algoritam A* skuplji od najkraceg za ne vise od d.

Ukoliko se ne koristi lista zatvorenih cvorova (tj. ukoliko se razmatraju isusedni cvorovi koji su vec bili tekuci), da bi algoritam bio optimalan do-voljno je da funkcije h bude dopustiva (nije neophodno da bude konzis-tentna).

Ukoliko se koristi nad stablima, da bi algoritam bio optimalan dovoljnoje da funkcije h bude nenegativna i dopustiva.

Ukoliko funkcija f∗ odgovara optimalnom putu, onda algoritam A* obradujesve cvorove za koje vazi f(n) < f∗(n); i neke cvorove n za koje vazi f(n) =f∗(n).

Vremenska slozenost algoritma A* zavisi od heuristike. U najgorem slucaju,broj obradenih cvorova je eksponencijalan u odnosu na duzinu najkraceg puta,ali je polinomijalan ako funkcija heuristike h zadovoljava sledeci uslov:

|h(x)− h∗(x)| ≤ O(log h∗(x))

gde je h∗ optimalna heuristika, tj. funkcija koja vraca tacnu cenu puta od cvorax do ciljnog cvora. Drugim recima, greska funkcije h ne treba da raste brze odlogaritma idealne heuristike.

Prethodna dva tvrdenja sugerisu da algoritam A* najbolje performanse (na-jmanji broj obradenih cvorova) daje kada je funkcija heuristike bliska ideal-noj funkciji heuristike. S druge strane, optimalnost je garantovana samo akofunkcija heuristike nikada ne precenjuje stvarnu cenu puta. Zajedno, to govorida dobra funkcija heuristke mora da bude veoma pazljivo konstruisana, takoda bude sto bliza idealnoj funkciji, ali da je nikada ne premasuje.

Za vise detalja o svojstvima algoritma A* videti, na primer, [?].

7.3.5 Implementaciona pitanja

Algoritam A* se obicno primenjuje u aplikacijama koje rade u realnom vre-menu, te je neohodno da je efikasno implementiran (koriscenjem pogodnihstruktura podataka, efikasnim upravljanjem memorijom, izbegavanjem mnozenjai drugih skupih operacija itd.) U ovom poglavlju ukratko cemo prokomen-tarisati nekoliko nacina koji popravljaju efikasnost implementacije algoritmaA*.

Otvorena lista se cesto implementira kao binarni min-hip (kako bi se brzodolazilo do elementa sa najmanjom vrednoscu funkcije f ), a zatvorena lista kao

Page 125: Vestacka-inteligencija

7.3 A* 125

hes tabela4. Koriscenjem ovih fukcija operacije za dodavanje u i brisanje ele-menata iz otvorene liste zahteva vreme O(log V ), gde je V broj cvorova grafa, adodavanje cvora u zatvorenu listu i proveravanje da li je vec u zatvorenoj listizahteva vreme O(1).

Zahtevi za memorijskim prostorom su za algoritam A* cesto jos veci prob-lem nego vremenska slozenost. Ipak, ukoliko broj cvora 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 alociranje (idealociranje) za pojedinacne cvorove. Dodatno, ako se algoritam primenjuje zanalazenje puta na uniformnoj mapi dimenzija M ·M i ako se staticki rezerviseprostor za svaki cvor, pristupanje cvorovima je brze ako je M oblika 2m.

Potrebno je eliminisati racun sa decimalnim brojevima i koristiti samo celo-brojnu aritmetiku. Ukoliko cene imaju decimelne vrednosti (npr. 1.414) potrebnoih je pomnoziti sa, na primer, 1000 i koristiti samo zaokruzene 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 pripadajupovezanim delovima grafa. Ako se za svaki cvor moze lako proveriti kom delugrafa pripada, onda je i navedena provera jednostavna.

Algoritam A* cesto se koristi kao komponenta sirih sistema koji treba darade u realnom vremenu. Zbog toga je obicno potrebno implementirati takoda se na zahteva izvrsavanje u jednom neprekinutom vremenskom periodu,vec u vremenskim intervalima izmedu kojih se izvrsavaju druge komponentesistema. Ovakav pristup se cesto zove deljenje vremena na kriske (eng. time slic-ing).

4 Hes tabela je struktura podataka koja povezuje vrednosti i kljuceve. Ona omogucava efikasnonalazenje vrednosti na osnovu kljuca. To se postize preslikavanjem kljuca hes funkcijom u hesvrednost koja sluzi kao indeks niza na kojem se nalazi odgovarajuca vrednost.

Page 126: Vestacka-inteligencija

126 7 Odredivanje puteva u grafu

Page 127: Vestacka-inteligencija

Glava 8

Programiranje logickih igara

Programiranje logickih igara jedan je od klasicnih problema vestacke inteligen-cije i verovatno jedan od najatraktivnijih. Kako logicke igre zahtevaju odlucivanjekoje se moze smatrati inteligentnim, ova problematika je predmet intereso-vanja mnogih istrazivaca u oblasti vestacke inteligencije (i ne samo njih). Mozdasu zbog toga neki od najvecih dometa vestacke inteligencije upravo u ovomdomenu: racunari su vec pobedili svetske sampione u igrama bekgemon idame, a nedavno je u brzopoteznoj igri sa racunarom, partiju saha izgubio isvetski sampion Gari Kasparov. Uprkos tim dometima, jos uvek treba zadrzatioprez prema programima za logicke igre, jer njihovi principi odlucivanja kval-itativno (po pitanjima apstrahovanja, analogija, pravljenja planova i sl.) josuvek nisu dovoljno blizu ljudskim. Mogucnosti resavanja ovih problema iprimene tih tehnika u drugim domenima upravo i motivisu dalja istrazivanjavestacke inteligencije u ovom pravcu.

U ovoj glavi bice reci o razvoju strategija za automatsko igranje logickihigara, a zatim i o samim strategijama. Nece biti upustanja u teorijske analizepojedinacnih igara, vec ce biti opisani opsti pojmovi i algoritmi koji mogu dase koriste za sirok spektar igara. Razmatracemo algoritme za igre dva igracabez nepoznate informacije, dakle — igre kod kojih svaki igrac zna koje potezena raspolaganju ima protivnik (u ovu kategoriju ne spadaju, na primer, igre ukojima igrac ne zna karte koje ima protivnik, nepoznati broj koji treba pogoditiitd).

Za oznake u sahu, koji ce biti jedna od igara najcesce uzimanih za primer,prihvaticemo engleske oznake. Tako cemo kralja oznacavati sa K (King), kraljicusa Q (Queen), topa sa R (Rook), lovca sa B (Bishop), konja sa N (Knight) ipesaka sa P (Pawn). Shodno tome oznacavacemo i sahovske zavrsnice (npr.zavrsnicu ”kralj i kraljica protiv kralja i topa” oznacavacemo sa KQKR).

8.1 Razvoj automatskog igranja logickih igara i os-novni koncepti

Istorija automatskog igranja logickih igara pocinje u devetnaestom veku: spanskipronalazac Tores Kevedo (Torres y Quevedo) konstruisao je 1890. godine (iprikazao 1900. na svetskoj izlozbi u Parizu) elektro-mehanicki uredaj koji je

Page 128: Vestacka-inteligencija

128 8 Programiranje logickih igara

igrao sahovsku zavrsnicu KRK.Opsta teorijska razmatranja zapoceo je Von Nojman (Von Neuman) postav-

ljanjem opsteg problema (1928): Igraci S1, S2, . . . , Sn igraju datu igru Γ. Kakotreba da igra igrac Sm da bi ostvario najbolji moguci rezultat? Odgovor na ovakopostavljeno pitanje tesko je dati za vecinu igara. Naravno, nije bilo tesko naslu-titi da je za puno igara, cak i ako on postoji, tesko ili gotovo nemoguce efek-tivno realizovati optimalni algoritam za proizvoljnu poziciju. U svakom slucaju,ova problematika postala je predmet interesovanja mnogih matematicara i,posebno, matematicke discipline teorija igara.

Moderna istorija programiranja igara pocinje ”klasicnim” tekstom Program-ming a digital computer for playing Chess (Philosophical Magazine, 41) koji je1950. godine objavio Klod Senon (Claude Shannon). U tom tekstu Senon jeopisao dve opste strategije za izbor poteza: strategije A i B tipa (danas cestooznacavane kao Senonova A i B strategija):

A: Minimaks procedurom vrsi se pretrazivanje stabla igre sa odredenomvrednosnom funkcijom i ocenjivanje legalnih poteza; bira se potez sa na-jboljom ocenom (videti poglavlje 8.4.3).

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

Koncept zasnovan na Senonovoj A strategiji naziva se i gledanje unapredili gledanje u dubinu (eng. lookahead) pristupom, a ponegde i ,,sistematskimpretrazivanjem“, ,,dubinskim pretrazivanje“ ili ,,najpre najdublji“. Ako bi sekoriscenjem ove strategije, minimaks algoritmom, pretrazivanje stabla igre vrsilodo zavrsnih stanja igre, ispitivanjem svih mogucih tokova partije zaista bi bioizabran najbolji legalan potez i taj izbor bi imao savrseno obrazlozenje u samomprimenjenom algoritmu. Medutim, za vecinu igara nije prakticno moguce pre-traziti kompletno stablo igre. Cak i pretrazivanje stabla igre do dubine odsvega nekoliko poteza u igrama sa prosecno deset ili dvadeset legalnih poteza,zahteva ispitivanje miliona pozicija. Zbog toga, efikasna primena SenonoveA strategije svodi se na pretrazivanje stabla igre do relativno male dubinealgoritmima koji su ubrzani heuristikama1 (umesto najjednostavnijim mini-maks algoritmom) i uz dobro osmisljenu, ali jednostavnu funkciju evaluacije zaocenu nezavrsnih pozicija igre (umesto jednostavne ,,trovrednosne“ funkcijeza ocenu zavrsnih pozicija). Ovakvim pristupom gubi se svojstvo po komese pretrazivanjem dobija zaista najbolji potez, a obim pretrazivanja i razlicitihizracunavanja ostaje, najcesce, i dalje veoma velik. Opisani koncept cesto senaziva konceptom ,,gruba sila plus jednostavna vrednosna funkcija“ (eng. brute-force method plus simple evaluation function). Precizni opisi funkcije evalu-acije, algoritama minimaks i srodnih dati su u poglavlju 8.4.

Senonovoj strategiji B tipa odgovara koncept koji zovemo gledanje uvis ilimozda adekvatnije trenutni pogled (eng. lookup). Ovaj pristup zahteva pos-tojanje unapred pripremljene tabele sa dve kolone: u jednoj su moguce pozi-cije/situacije igre, a u drugoj optimalni potezi. Jedna od ,,klasicnih“ implemetacija

1Heuristike su (aproksimativne) metode za usmeravanje i suzavanje pretrage u problem-atici gde se javlja kombinatorna eksplozija. Kvalitet i mogucnosti njihove primene zavise odspecificnosti domena i njegove ”neprekidnosti” (malim promenama problema treba da odgovarajumale promene resenja).

Page 129: Vestacka-inteligencija

8.2 Legalni potezi i stablo igre 129

ovog pristupa je program za igranje sahovske zavrsnice KQKR koji je 1977.godine napravio Kenet Tompson (Kenneth Thompson, Bell Telephone Labora-tories), poznat kao tvorac operativnog sistema UNIX). Tabela koju je koristioprogram sadrzavala je sve moguce pozicije za oba igraca i optimalne poteze zasve te pozicije (pri cemu se pod optimalnim potezom za jaceg igraca (koji imakralja i kraljicu) smatra potez koji vodi pobedi u najmanjem broju poteza, a zaslabijeg, potez koji maksimalno odlaze poraz). Tabela je imala oko tri milionavrsta i program koji se na njoj zasnivao bio je, i u pozicijama koje su teorijskiizgubljene, prakticno nepobediv cak i za vrhunske sahiste. U ovoj strategiji,znanje o igri (u ovom primeru, o sahu) ne nalazi se niti u samom programukoji igra, niti u tabeli, vec u programu koji je tabelu generisao. Opisani pristupzahteva, pored adekvatne procedure za generisanje lookup tabele i veliku mem-oriju (za smestanje svih mogucih pozicija), ali u samom procesu igre programzahteva najcesce jako malo vremena za pronalazenje odgovarajuceg poteza.Senonova B strategija moze se primenjivati i u modifikonvanim varijantamapo kojima se, na primer, ne bi prepoznavale sve moguce pozicije, vec citaveklase pozicija i na slican nacin nalazili optimalni potezi.

Uporedujuci Senonove strategije A i B (odnosno pristupe lookahead i lookup)vidimo da prva u samom procesu izbora poteza zahteva malo memorije i mnogoizracunavanja (deep mentality), a druga, obrnuto, malo izracunavanja (shallowmentality) i mnogo memorije. Na toj skali odnosa kolicine podataka koji sekoriste i obima izracunavanja, covekov nacin zakljucivanja je izmedu ovih kra-jnosti, a najcesce se bitno razlikuje i po svojoj prirodi. Upravo priroda covekovognacina razmisljanja i zelja da se on oponasa, vodi ka novim pristupima u for-malizaciji igara i njihovom programiranju. Neki od njih su koncept skupovipozicija kao klase ekvivalencije i koncept advice texts (tekstovi saveta). Po ovom kon-ceptu, za odredenu klasu problema (odnosno klasu pozicija u igri) formulisuse pravila (odnosno saveti) koja treba slediti i to obliku resenja (jednostavni-jih) potproblema. Takav nacin reprezentacije znanja o problemu i o nacinimanjegovog resavanja moze biti jako blizak ljudskom i pripadati onom segmentuskale obim izracunavanja – kolicina koriscene memorije koji odgovara coveku.

U nastavku teksta, za izbor poteza u otvaranjima razmatrace se strategijekoje su u osnovi Senonovog tipa B tipa, za sredisnicu strategije Senonovogtipa A i za zavrsnicu pristupe tipa ”skupovi pozicija kao klase ekvivalencije”ili ”advice texts”.

8.2 Legalni potezi i stablo igre

Legalne poteze definisu pravila igre. Naglasimo da pravimo razliku izmedu ter-mina moguci potezi i legalni potezi: mogucim potezima nazivamo one koji sulegalni u bar jednoj regularnoj poziciji igre.

Pretpostavka je da se u svakom trenutku igre moze jednoznacno odred-iti skup legalnih poteza. Dodatno, pozeljno je da postoji (ciklicno) uredenjepoteza, pa se za svaki legalan potez moze jednoznacno odrediti sledeci legalanpotez.

Stablo igre je stablo u kojem cvorovima odgovaraju regularne pozicije u igri(u skladu sa pravilima date igre), a granama legalni potezi (u smislu date igre).Cvor x stabla igre je neposredni predak cvora y ako se iz pozicije/cvora x nekim

Page 130: Vestacka-inteligencija

130 8 Programiranje logickih igara

legalnim potezom dobija pozicija/cvor y (tada kazemo i da je cvor y neposrednipotomak cvora x). Za cvor x stabla kazemo da je predak cvora y ako postoji nizcvorova stabla x = z0, z1, . . . , zn = y (n ≥ 1) takvih da je za svako i, 0 ≤i ≤ n − 1 cvor zi neposredni predak cvora zi+1. Tada kazemo i da je cvory potomak cvora x. Legalnim potezom smatramo i prazan potez (u engleskomjeziku cesto se koristi termin pass) u situaciji kada igrac koji je na redu nema naraspolaganju legalnih poteza i preskace svoj red (takve situacije nisu regularne,na primer, u sahu, ali regularne, na primer, u igri reversi). U igri za dva igraca,u ovako definisanom stablu igre, od korena do bilo kog lista naizmenicno sesmenjuju grane koje odgovaraju potezima prvog i drugog igraca. Slicno, akose radi o igri za vise igraca, od korena do bilo kog lista redom se smenjujugrane koje odgovaraju potezima svih igraca. Na slici 8.1 ilustrovano je stabloigre za igru iks-oks.

x xx

. . .. . . . . .

x o x o. . . . . . . . . . . . . . . . . . . . . . . . . . .

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

xo

. . . . . . . . .x x

o

x o xo

x xo

ox x

o o. . .

x o xx

ox o x

xo. . .

x o xx o

x x xo

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

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

zavrsno stanje

Figure 8.1: Stablo igre za igru iks-oks

Kompletnim stablom igre zovemo stablo u kojem je koren pocetna pozicijaigre (u skladu sa pravilima date igre), a listovi su zavrsne pozicije igre. Kom-pletno stablo igre ima onoliko listova koliko data igra ima razlicitih regularnihtokova. Taj broj je kod vecine igara (cak i kod veoma jednostavnih) ogromani onemogucava kompletno pretrazivanje u cilju izbora optimalne strategije.Zato se u programima za igre (najcece u sredisnici) za izbor poteza primen-juju algoritmi koji pretrazuju samo delove ovog stabla (videti poglavlje 8.4).

Za potpuni opis stabla u racunarskoj implementaciji nije potrebno cuvati in-formaciju i cvorovima/pozicijama i o granama/potezima. Naime, kako granamaodgovaraju legalni potezi i kako oni na osnovu tekuce pozicije jednoznacnoodreduju sledecu poziciju, za opis stabla dovoljan je opis korena stabla (tj. po-lazne pozicije) i opis grana/legalnih poteza za odgovarajuce cvorove. Na tajnacin implicitno moze biti opisano/generisano celo stablo, a zauzeti memori-jski prostor daleko je manji nego kada bi se eksplicitno pamtile i pozicije kojeodgovaraju cvorovima stabla. Takav nacin opisa stabla moze da se koristi i za

Page 131: Vestacka-inteligencija

8.3 Otvaranje i biblioteka partija 131

opis biblioteke partija, o cemu govori naredno poglavlje.

8.3 Otvaranje i biblioteka partija

Potreba za skladistenjem (i koriscenjem) opisa partija odredene igre moze daproistice bilo iz potrebe da se ti podaci koriste za izbor poteza u samom pro-gramu, bilo iz potrebe da se omoguci jednostavnija analiza pojedinih situacija/pozicijaili citavih partija.

Opisi partija mogu biti posebne, nezavisne celine, ali mogu biti i organizo-vani tako da korisniku omogucavaju laku uporednu analizu slicnih varijanti uigri i da su istovremeno upotrebljivi za pomoc u automatskom izboru poteza.Jedna od najpogodnijih reprezentacija biblioteke partija je u obliku stabla igre.U takvoj reprezentaciji biblioteke partija, dovoljno je da odgovarajuce stabloigre sadrzi informacije o potezima (koji odgovaraju granama stabla), jer sunjima odredene i odgovarajuce pozicije (koje odgovaraju cvorovima stabla).

U programima za logicke igre cesto je izuzetno znacajna biblioteka otvaranja(opening book) — koja je zasnovana na ljudskom iskustvu i koja sadrzi infor-macije o poznatim i kvalitetnim potezima koji se cesto javljaju u otvaranju.Biblioteka otvaranja, kao i biblioteka partija, najcesce se reprezentuje stablomigre. Ta struktura moze biti staticka (sadrzi odreden, konacan broj varijantiu svakom potezu i informacije o potezima samo do odredene dubine) ili seprosirivati tokom samog izvrsavanja programa.

U igri programa sledi se tok partije iz biblioteke dok je to moguce (dok otome postoje odgovarajuce informacije u biblioteci otvaranja), a onda se prelazina druge strategije izbora poteza. Ukoliko za neku poziciju postoji u bibliotecivise mogucih nastavaka, izbor moze da se nacini po odredenim verovatnocamakoje mogu da se koriguju tokom rada programa (u skladu sa ,,stilom igre“ pro-grama koji proistice iz prirode funkcije evaluacije) ili jednim delom i premaduzini koja u stablu sledi iza odredenog poteza (kao teznja da se sto duze os-tane u poznatim varijantama). Pomenuta strategija moze da se realizuje nasledeci nacin: neka je, na osnovu biblioteke otvaranja, u nekom trenutku naraspolaganju n poteza. Svakom od njih neka je pridruzena ocenami (1 ≤ i ≤ n)na osnovu empirijske procene i na osnovu dubine biblioteke partija koja slediza i-tim potezom (te ocene predstavljaju karakteristican, dodatni deo bibliotekepartija). Ukoliko emprijske procene govore da je i-ti potez bolji, to je ocena mi

veca. Takode, ocena mi je veca ukoliko je veca dubina biblioteke partija kojasledi za i-tim potezom. Tada se, u toj poziciji, i-ti potez (1 ≤ i ≤ n) bira saverovatnocom

pi =mi∑nj=1mj

.

Na taj nacin izbegava se deterministicko ponasanje programa u otvaranju: boljipotezi (u smislu neke procene) se biraju cesce, ali ne uvek. Ocene mi mogu setokom igre korigovati na sledeci nacin: ukoliko je posle izbora i-tog poteza(na nekoj dubini d) program dobio (izgubio) partiju, oceni mi dodaje se (oduz-ima se) neka karakteristicna pozitivna vrednost c. Te korekcije ocena u bib-lioteci partija vrse se na svim nivoima d na kojima izbor poteza nije bio jed-noznacno odreden. Na taj nacin program ,,uci“, popravlja kvalitet svoje igre iprilagodava je specificnim znanjima o igri koje primenjuje u daljem toku par-tije.

Page 132: Vestacka-inteligencija

132 8 Programiranje logickih igara

Poseban problem u otvaranju je situacija u kojoj protivnik svojim potezomprimora program da napusti biblioteku otvaranja, a potom se u igri ponovodode do neke pozicije koja postoji u biblioteci otvaranja. Prepoznavanje pozi-cije koja postoji u razlicitim delovima stabla moze da predstavlja problem iiziskuje kompleksniju reprezentaciju podataka o poznatim otvaranjima. Takavzahtev moze da vodi i ka resenju koje je tipicno za Senonovu B strategiju:u lookup tabeli trazi se tekuca pozicija i njoj odgovarajuci potez (ili potezi).Resenje ovog tipa u vecini igara je neprimereno zbog velikog obima podatakakoji zahteva (umesto samo pojedinacnih poteza, sve pozicije se predstavljajukompletno i posebno) i vremena potrebnog za izvrsavanje (u lookup tabeli, zaneke igre, morali bi da budu smesteni podaci o hiljadama, ili milionima rele-vantnih pozicija).

8.4 Sredisnjica

Velika vecina savremenih programa za logicke igre u sredisnjici koristi strate-giju dubinskog pretrazivanja stabla igre koja odgovara Senonovoj A strategiji.Zbog obima izracunavanja koje zahteva, kao i zbog razlika u odnosu na strate-gije tipicne za coveka, ovaj pristup cesto se naziva i ,,metod grube sile sa jed-nostavnom funkcijom evaluacije“ (eng. brute-force method plus simple eval-uation function). U narednim poglavljima opisacemo smisao i ulogu funkcijeevaluacije, kao i neke od algoritama koji se koriste u pretrazivanju stabla igre.

8.4.1 Staticka ocena pozicije i funkcija evaluacije

U cilju odredivanja najboljeg poteza za igraca koji je na potezu, cvorovima sta-bla igre se mogu dodeliti neke ocene, na osnovu koje cvorovi tj. pozicije i potezimogu da se porede po kvalitetu. Staticka ocena je vrednost koja se, u skladusa specificnim karakteristikama konkretne igre, dodelje poziciji pri cemu se neispituju moguci nastavci koji joj odgovaraju. Funkcija evaluacije (eng. evalua-tion function) je funkcija F koja mogucim, regularnim pozicijama u nekoj igridodeljuje njihove ocene:

F : P 7→ <.

Radi efikasnosti, funkcija evaluacije obicno se implementira kao racionalna ilicelobrojna funkcija.

Smisao funkcije evaluacije za protivnike u igri za dva igraca je suprotan— ono sto je najbolje stanje za jednog igraca najlosije je za drugog i obratno.Funkcije evaluacije razlikuju se od igre do igre (i od programa do programa).Gotovo sve znanje o igri koje se koristi u sredisnjici partije sadrzano je u funkcijievaluacije i u najvecoj meri od nje zavisi kvalitet igre programa. Potrebno je dasadrzi sto vise relevantnih informacija, ali s druge strane, kako se izracunavamnogo puta, potrebno je da bude jednostavna, pa je pozeljno da se funkcijaevaluacije racuna jednostavno i u celobrojnoj aritmetici. Takode, pozeljno jeda funkcija evaluacije za simetricne pozicije (za zamenjene uloge igraca) dajevrednosti koje se razlikuju samo po znaku. Najjednostavnija je tzv. trovred-nosna funkcija: ona se primenjuje samo na zavrsne pozicije igre i ima samo trirazlicite vrednosti – za pobedu prvog, za pobedu drugog igraca i za neresenishod (npr. 1, -1 i 0). Trovrednosna funkcija zahteva pretrazivanje stabla igre

Page 133: Vestacka-inteligencija

8.4 Sredisnjica 133

do zavrsnih cvorova, pa je, zbog potencijalno velike dubine pretrazivanja, ovafunkcija za vecinu igara prakticno neupotrebljiva. Generalno, funkcija evalu-acije obicno preslikava skup svih mogucih pozicija preslikava u segment celihili racionalnih brojeva:

F : P 7→ [−M,M ]

Vrednost M dodeljuje se samo zavrsnim cvorovima u kojima je pobednik prviigrac, a vrednost vrednost−M samo zavrsnim cvorovima u kojima je pobednikdrugi igrac.

Ocene zavrsnih pozicija igre mogu se korigovati dodavanjem (odnosno oduz-imanjem) dubine odgovarajuceg cvora u pretrazivanju, kako bi se od svih var-ijanti koje vode u pobedu izabrala ona koja vodi pobedi u najmanjem brojukoraka (odnosno kako bi se, ukoliko je poraz neizbezan, taj poraz maksimalnoodgodio).

Funkcija evaluacije moze biti i slozene strukture, sastavljena od modulakoji odgovaraju razlicitim fazama partije (npr. sredisnjici i zavrsnici) ili ra-zlicitim statickim parametrima (npr. u sahu: vrednost ukupnog materijala,pokretljivost figura, pesacka struktura, rokada i dr.).

8.4.2 Pretrazivanje stabla igre

Kod vecine programa za kompleksnije logicke igre, pored kvalitetne funkcijeevaluacije, od kljucne vaznosti su algoritmi koji se koriste za pretrazivanjestabla igre. Pri pretrazivanju stabla igre u sredisnjici, funkcija evaluacije seizracunava samo za cvorove na nekoj odredenoj dubini, a ostalim cvorovima sepozicija ocenjuje na osnovu ocena nekih od cvorova-potomaka. Pretrazivanjestabla igre u cilju odredivanja najboljeg moguceg poteza iz datog cvora, kodrazlicitih logickih igara (i razlicitih programa) realizuje se na razlicite nacine.Realizacije se razlikuju po algoritmu pretrazivanja, po dubini pretrazivanja sta-bla, po heuristikama koje se primenjuju (nekad se, zbog brzine, odustaje odzahteva da se pronade najbolji potez za datu dubinu, vec se trazi ,,dovoljnodobar“ potez) itd. Kod kompleksnijih logickih igara stablo igre najcesce jeogromno i njegovo pretrazivanje zahteva puno vremena. Zato su heuristikekoje ubrzavaju to pretrazivanje od izuzetnog znacaja. Stablo igre se pri pre-trazivanju ne realizuje staticki, vec se dinamicki realizuje samo put od pocetnogcvora do pozicije koja se trenutno ispituje. Kako se za pretrazivanje stabla igrekoristi rekurzija, to znaci da se za potez dubine d pamte samo podaci proistekliiz d-tostrukog pozivanja funkcije za pretrazivanje (sa povratnim adresama i sl).

8.4.3 Algoritam minimaks

Algoritam minimaks je kljucni element Senonove A strategije i on je u osnoviskoro svih algoritama za izbor poteza pretrazivanjem stabla igre. Minimaks al-goritam pretrazivanjem stabla igre za igraca koji je na potezu odreduje najboljimoguci potez u datoj situaciji (za zadati cvor, zadatu dubinu pretrazivanja iza izabranu funkciju evaluacije). Pretrazivanje celog stabla garantuje nalazenjezaista najboljeg poteza (u navedenom smislu — ako se menja dubina pretrazivanjane mora da se dobija isti rezultat), ali zbog odsustva heuristika (koje bi to pre-trazivanje ubrzale) to pretrazivanje moze da traje jako dugo. Pretpostavimo,jednostavnosti radi, da se pretrazivanje vrsi do fiksne dubine (tj. da su iste

Page 134: Vestacka-inteligencija

134 8 Programiranje logickih igara

duzine svih puteva iz datog do zavrsnih cvorova u pretrazivanju). Pretpostavimojos da funkcija evaluacije za igraca koji je na potezu ima pozitivan smisao(tj. bolji je potez ako obezbeduje vecu vrednost funkcije). Funkcijom evalu-acije ocene se dodeljuju samo ,,najdubljim“ cvorovima u pretrazivanju (pre-trazivanje se vrsi do fiksne dubine i ,,najdublji“ cvorovi ne moraju da pred-stavljaju zavrsna stanja igre); dalji postupak je rekurzivan: kao ocena cvorudodeljuje se minimum ocena cvorova-potomaka, ako je u tom cvoru na potezuprotivnik, a kao maksimum ocena cvorova potomaka, u suprotnom (slika 8.2).Ocena pocetnog cvora je maksimum ocena cvorova–neposrednih potomaka irezultat je potez kojem odgovara taj maksimim. Dakle, algoritam karakterisemaksimizovanje ocene kada je na potezu sam igrac i minimizovanje kada je napotezu njegov protivnik, pa otuda i ime algoritma. Pseudokod ovog algoritmadat je na slici 8.3.

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

5 7 1 −2 2

5 1 −2

5

max

min

max

Figure 8.2: Stablo pretrage sa ilustracijom algoritma minimax

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). Pored toga, kada jeneki potez odabran na osnovu cvorova na nekoj dubini, u sledecem koraku(pri izboru sledeceg poteza) te informacije se ne koriste i ,,zaboravlja se“ zastoje odabran taj put (npr. ako je u sahu neki potez izabran zato sto mu odgovaracvor dubine tri u kojem se protivniku daje sah, u sledecem potezu pretrazivanjekrece iznova i cesto nece biti izabran potez kojim se protivniku daje sah —potez koji je motivisao izbor prethodnog). Dakle, pri pretrazivanju stabla igre,,vide se“ samo cvorovi na nekoj fiksnoj dubini – ni oni posle, ni oni pre njih.Ovaj fenomen cesto se naziva efekat horizonta (eng. horizon effect).

8.4.4 Algoritam alfa-beta

Algoritam alfa-beta otkriven je sredinom dvadesetog veka nezavisno od stranenekoliko istrazivaca. Artur Semjuel sa jedne strane i Ricards, Hart, Levin i Ed-vards (svi iz SAD) formulisali su nezavisno ranu verziju algoritma pocetkom

Page 135: Vestacka-inteligencija

8.4 Sredisnjica 135

Algoritam: Minimax

Ulaz: pozicijaIzlaz: potez

1. v := Max(pozicija)

2. vrati potez kojem odgovara vrednost v

Funkcija: Max

Ulaz: pozicija, funkcija evaluacije fIzlaz: vrednost pozicije

1. Ako je zavrsna pozicija vrati f(pozicija)

2. v := −∞

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

• Ako je v > Min(s) onda v := Min(s)

4. vrati v

Funkcija: Min

Ulaz: pozicija, funkcija evaluacije fIzlaz: vrednost pozicije

1. Ako je zavrsna pozicija vrati f(pozicija)

2. v := +∞

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

• Ako je v < Max(s) onda v := Max(s)

4. vrati v

Figure 8.3: Algoritam minimaks

pedesetih godina. Makarti je slicne ideje predstavio 1956. godine, tokom zna-menite konferencije u Darmutu. Aleksander Brudno je, ponovo nezavisno,otkrio alfa-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: vrednosnom funkcijom ocenjuju se samocvorovi na nekoj odabranoj dubini, a zatim se rekurzivnim postupkom (mini-maksingom) ocenjuju cvorovi prethodnici. Postupak ,,alfa odsecanje“ bie opisanpretpostavljajuci da funkcija evaluacije za igraca koji je na potezu ima poziti-van smisao (bolje su vee ocene).

Neka je u tekucem cvoru na potezu igrac A koji trazi najbolji potez; nekaje ocenjeno n od m (n < m) njegovih legalnih poteza i neka su dobijene ocenew1 , w2 ... wn i neka je wk najveca od njih. Razmatramo n + 1-i legalni potez(slika 8.4); nakon tog poteza protivnik (igrac B) ima vise mogucnosti i igrac

Page 136: Vestacka-inteligencija

136 8 Programiranje logickih igara

wn+1 < wk

wk wn wn+1

w′j

α odsecanje

max

min

max

−2 < 5

7 > 5

5 7 1 1 −2 2 −1

5 7 1 −2 2

5 1 −2

5

α odsecanje

β odsecanje

Figure 8.4: Stablo pretrage sa ilustracijom algoritma alfa-beta

A trazi onu sa najmanjom ocenom; za svaku ocenu w′i legalnih poteza u tomcvoru, svakako vazi da je veca ili jednaka zajednickom minimumu w′min (w′i ≥w′min) koji predstavlja ocenu cvora; dakle, ako se u tom pretrazivanju dode doocene w′j koja je manja ili jednaka oceni wk (w′j ≤ wk) sigurno je da je i ocenacvora manja ili jednaka oceni wk (w′min ≤ wk). S obzirom da se u pocetnomcvoru trazi maksimum ocena mogucih poteza, to znaci da taj cvor (sa ocenomw′min ≤ wk) ne utice na ocenu pocetnog cvora (jer je w′min ≤ wk ≤ wmax),pa se dalje pretrazivanje poteza protivnika u tekucem cvoru moze prekinutibez uticaja na rezultat pretrazivanja — moze da se izvrsi ”odsecanje stabla”(slika 8.4). ,,Beta odsecanje“ je potpuno analogno i primenjuje se na cvoroveu kojima je na potezu protivnik. Naravno, s obzirom na smisao vrednosnefunkcije, maksimumi pominjani u ,,alfa odsecanju“ zamenjuju se minimumimai obratno (slika 8.4). Pseudokod algoritma alfa-beta dat je na slici 8.5.

Kako stablo pretrazivanja cesto moze biti jako veliko, ubrzanje minimaksalgoritma heuristikama ,,alfa-odsecanje“ i ,,beta-odsecanje“ ima izuzetan znacaj.Posebno je vazna cinjenica da i alfa-beta algoritam nalazi zaista najbolji mogucipotez za zadati cvor i zadatu dubinu pretrazivanja, sto znaci da heuristike kojese primenjuju ne narusavaju tu osobinu minimaks algoritma.

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. Obratno, najvise alfa i beta odse-canja ima kada su potezi ispituju od najboljeg ka najlosijem u smislu tekucegcvora i tada algoritam alfa-beta daje najbolji efekat (tj. ispituje najmanji brojcvorova stabla). Naravno, takav poredak poteza nije moguce generisati egza-ktno u toku pretrazivanja stabla igre, ali se dobrim procenama efekat alfa-betaalgoritma tako moze bitno popraviti. Upravo na toj ideji zasnivaju se i nekapoboljsanja alfa-beta algoritma.

Page 137: Vestacka-inteligencija

8.4 Sredisnjica 137

Algoritam: Alfa-beta

Ulaz: pozicijaIzlaz: potez

1. v = Max(pozicija,−∞,+∞)

2. vrati potez kojem odgovara vrednost v

Funkcija: Max

Ulaz: pozicija, alfa vrednost α, beta vrednost β, funkcija evaluacije fIzlaz: vrednost pozicije

1. Ako je zavrsna pozicija vrati f(pozicija)

2. v := −∞

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

• Ako je v > Min(s, α, β) onda v := Min(s, α, β)

• Ako je v ≥ β onda vrati v

• Ako je v > α onda α := v

4. vrati v

Funkcija: Min

Ulaz: pozicija, alfa vrednost α, beta vrednost β, funkcija evaluacije fIzlaz: vrednost pozicije

1. Ako je zavrsna pozicija vrati f(pozicija)

2. v :=∞

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

• Ako je v < Max(s, α, β) onda v := Min(s, α, β)

• Ako je v ≤ α onda vrati v

• Ako je v < β onda β := v

4. vrati v

Figure 8.5: Algoritam alfa-beta

8.4.5 Heuristika killer

U prethodnom poglavlju receno je da se efikasnost algortima 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 naziv i w-killer) zas-niva se na navedenim cinjenicama i ne koristi specificna znanja o igri (da bi se

Page 138: Vestacka-inteligencija

138 8 Programiranje logickih igara

procenilo koji potezi su dobri).Neka se u pretrazivanju stabla alfa-beta algoritmom prvi put ocenjuje neki

cvor na dubini d (d ≥ 1) i neka jeW najbolji pronadeni potez u smislu tog cvora.Taj potez zvacemo killer potezom za dubinu d. U svakom sledecem cvoru nadubini d, ispitivanje poteza pocinjemo sa killer potezom za tu dubinu. Ukolikose pokaze da je za taj cvor bolji neki drugi potez (W ′), taj potez postaje killerpotez za dubinu d.

Ukoliko se pretrazivanje stabla igre vrsi do dubine dmax, opisana heuristikaprimenjuje se za sve dubine d takve da je 1 ≤ d ≤ dmax − 1. Alfa-beta algori-tam prosiren killer heuristikom zovemo alfa-beta/killer algortimom. Primetimoda se primenom killer heuristike ne menja rezultat alfa-beta algoritma (za istuvrednosnu funkciju i istu dubinu pretrazivanja) — tj. dobija se potez sa istomocenom (ne nuzno i isti potez) kao primenom algoritama alfa-beta ili mini-maks, i to najcesce sa bitno manjim brojem ispitanih cvorova stabla.

Smisao killer heuristike je sledeci: ukoliko je u jednoj grani stabla na dubinid najbolji potez W , ima izgleda da je on najbolji (ako je legalan) i u drugimgranama stabla na istoj dubini. Ilustrujmo to na primeru saha: neka igracu kojije 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 potezu pro-tivnik, otkriva se matni potez i on postaje killer potez (za dubinu 1). Pri daljempretrazivanju stabla, na dubini 1 najpre se ispituje taj potez i kako on vodipobedi protivnika, alfa odsecanje cini nepotrebnim dalje ispitivanje poteza utom cvoru. Time se broj cvorova stabla koje u ovakvoj situaciji treba ispitatidrasticno smanjuje.

U poglavlju 8.2 receno je da moguci (ne samo legalni) potezi treba da buduorganizovani u ciklicni niz, tj. da se je za svaki potez jednoznacno odredensledeci. Taj zahtev je u direktnoj vezi sa killer heuristikom, jer se ispitivanjepoteza u skladu sa njom, vrsi pocev od killer poteza i, ispitavsi (eventaulno)sve ostale, ciklicno vraca do tog istog poteza. Takode, kako je moguce da killerpotez u nekom cvoru odgovarajuce dubine nije legalan, generator treba da zasvaki moguci potez, bio on u konkretnoj poziciji legalan ili ne, jednoznacnoodreduje sledeci legalan potez.

8.4.6 Iterativni alfa-beta/killer algoritam

Za dubinu pretrazivanja dmax iterativni alfa-beta/killer algoritam se realizujena sledeci nacin: najpre se vrsi pretrazivanje stabla igre do dubine 1 (svejednoje kojim algoritmom, jer do dubine 1 nema alfa i beta odsecanja) i najboljipronadeni potez postaje killer potez za nivo 0 — za pocetni cvor. Dalje se,redom za dubine d (2 ≤ d ≤ dmax) primenjuje algoritmom 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 dubinudmax.

Efekti iterativnog algoritma su, u svakoj iteraciji, slicni efektima alfa-beta/killeralgoritma, s tim sto u iterativnom algoritmu postoji i killer potez za pocetnicvor u pretrazivanju. Ima izgleda da je u svakoj iteraciji taj killer potez boljeodabran i da daje bolje rezultate (veci broj alfa i beta odsecanja). Druga vaznai dobra osobina iterativnog algoritma je to sto za slucaj prekida pretrazivanja,prakticno u svakom trenutku ima smisleni rezultat kao najbolji pronadeni potezza neku kompletno zavrsenu iteraciju (videti poglavlje 8.4.8). Ono sto izgleda

Page 139: Vestacka-inteligencija

8.4 Sredisnjica 139

kao mana algortima — visestruko pretrazivanje nekih cvorova — ne utice bitnona perofrmanse algoritma. Naime, u odnosu na vreme utroseno za zavrsnu it-eraciju, vreme utroseno na sve ostale iteracije prakticno je zanemarljivo. Poredtoga, s obzirom na (najcesce) dobro odabran killer potez za pocetni cvor, zavrsnaiteracija ce obicno zahtevati ispitivanje manjeg broja cvorova od alfa-beta/killeralgoritma za istu dubinu.

Naglasimo da se i primenom iterativnog alfa-beta/killer algoritma dobijanajbolji potez (potez sa najboljom ocenom) za datu vrednosnu funkciju i datudubinu pretrazivanja sto je vazno svojstvo algoritama minimaks, alfa-beta ialfa-beta/killer.

Kao modifikacija ovog algoritma, moze se vrsiti samo prva i poslednja it-eracija, 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.

8.4.7 Stabilno pretrazivanje

U prethodnim algoritmima se uvek govorilo o pretrazivanju do fiksne dubine.Nedostatak takvog pristupa je u tome sto funkcija evaluacije, koja se primen-juje na cvorove na najvecoj dubini, ne razmatra moguce nastavke za pozicijena najvecoj dubini. Te ocene, ma koliko funkcija evaluacije bila dobra, moguda budu varljive i da vode losem izboru poteza (u sahu se npr. moze izabratipotez zbog nekog, naizgled dobrog, zavrsnog cvora u kojem se zarobljava pro-tivnikov 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 bilo kojim od dosada opisanih algoritama.

Kriterijumi stabilnosti poteza odreduju se u skladu sa specificnostima konkretneigre, ali i za istu igru mogu biti razlikiciti. U sahu, na primer, pozicija se mozesmatrati stabilnom ukoliko igrac koji je na potezu nije pod sahom, ukoliko mukraljica 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) sadodatnim, stabilnim pretrazivanjem do dubine 16 ili vise.

8.4.8 Prekidi i vremenska ogranicenja

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

Page 140: Vestacka-inteligencija

140 8 Programiranje logickih igara

potez ili za celu partiju2. Vecina algoritama koji su do sada opisani u situaci-jama prekida moze da izabere tekuci najbolji potez. Ipak, kad algoritam nijekompletno izvrsen (i, na primer, ispitani su samo neki, povoljni odgovori pro-tivnika), tako odabran potez moze biti veoma los. Za resavanje ovog problemanajpogodniji je iterativni alfa-beta/killer algoritam, jer prakticno u svakomtrenutku3 ima neku kompletno zavrsenu iteraciju i njen rezultat cesto jeste do-voljno dobar potez (iako, naravno, obicno slabiji nego potez koji bi bio dobijenkompletno izvrsenim algoritmom).

8.4.9 Slozenost algoritama za pretrazivanje stabla igre

Za formulisanje tvrdenja u vezi sa kompleksnoscu algoritama za pretrazivanjestabla igre, potrebno je uvesti nekoliko definicija.

Definicija 8.1 Uniformno stablo stepena n je stablo ciji svi cvorovi sem zavrsnihimaji tacno po n neposrednih potomaka.

Definicija 8.2 (d, n, F )-stablo je uniformno stablo dubine d, gde je d paran broj istepena n sa zavrsnim cvorovima kojima su pridruzene vrednosti po raspodeli F .

Definicija 8.3 Neka je A deterministicki algoritam za pretrazivanje (d, n, F )-stablai neka je IA(d, n, F ) ocekivani broj zavrsnih cvorova koje algoritam A ispituje. Tadavrednost

RA(n, F ) = limd→∞

[IA(d, n, F )]1/d

zovemo faktor grananja algoritma A.

Faktor grananja je kljucna karakteristika algoritama za pretrazivanje stableigre jer govori o ocekivanom broju zavrsnih cvorova koje nekim algoritmomtreba ispitati. Naime, ukoliko je R faktor grananja nekog algoritma, onda jeocekivani broj ispitanih cvorova za dubinu pretrazivanja d jednak Rd.

Ako se uniformno stablo stepena n i dubine d pretrazuje minimaks algorit-mom, bice ispitano nd zavrsnih cvorova stabla, pa je faktor grananja algoritmaminimaks ocigledno jednak n, tj.

Rminimax(n, F ) = n.

Problem odredivanja faktora grananja alfa-beta algoritma mnogo je slozeniji.Slagle i Dixon pokazali su 1969. godine da alfa-beta algoritam mora da ispitavise od 2n[d/2] − 1 zavrsnih cvorova uniformnog stabla stepena n i dubined, ali da u najlosijoj situaciji moze da ispita i svih nd [?]. Knuth i Moore su1975. godine [?] dokazali da faktor grananja za jednu pojednostavljenu verzijualgoritma alfa-beta (bez dubokih odsecanja) pripada klasi funkcija O(n/ log n).Konacan odgovor na pitanje o faktoru grananja alfa-beta algoritama daje sledeceteorema Judea Pearl-a iz 1982. godine [?].

2Ukoliko je ograniceno vreme raspolozivo za celu partiju, program mora i da ga ekonomicnodeli na procenjeni broj poteza.

3Prva iteracija, za gotovo sve igre i na gotovo svim racunarima, moze biti zavrsena u delicusekunde.

Page 141: Vestacka-inteligencija

8.5 Zavrsnica 141

Teorema 8.1 Faktor grananja alfa-beta algoritma za neprekidno-vrednosno uniformnostablo stepena n jednak je

Rα−β =ξn

1− ξngde je ξn pozitivni koren jednacine xn + x− 1 = 0.

Za n ≤ 1000 vrednost ξn1−ξn priblizno je jednaka (0.925)n0.747 i, grubo, vred-

nosti n3/4, tj.

Rα−β =ξn

1− ξn≈ (0.925)n0.747 ≈ n3/4.

Posledicu navedene teoreme je i sledece, izuzetno vazno tvrdenje [?]).

Teorema 8.2 Alfa-beta algoritam je asimptotski optimalan algoritam za pretrazivanjestabla 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 ikoji predstavljaju unapredenja algoritma alfa-beta u praksi zaista najcesce dajubolje rezultate nego algoritam alfa-beta i to je uslovljeno prirodom stabla igrei funkcijom koja ocenjuje zavrsne cvorove (koja nije slucajna). Ipak, faktorigrananja ovih algoritama se ne razlikuju od faktora grananja alfa-beta algo-ritma i u opstem slucaju oni ne garantuju manje ispitanih zavrsnih cvorovastabla nego algoritam alfa-beta.

U praksi, faktor grananja alfa-beta algoritma za vecinu diskretno-vrednosnihstabala jednak je Rα−β = n1/2.

8.5 Zavrsnica

U igrama kao sto je sah zavrsnica se, po svojim karakteristikama i po znan-jima koje se koriste, bitno razlikuje od sredisnjice, pa iziskuje i posebne pris-tupe. U nekim od takvih igara, i u zavrsnici se uspesno mogu koristiti algo-ritmi i tehnike koje se koriste u sredisnjici, ali uz koriscenje posebne ili viseposebnih funkcija evaluacije. U onim drugim igrama, resenja koja se zasnivajuna dubinskom pretrazivanju ne daju dobre rezultate u zavrsnici jer kvalitetnaigre iziskuje jako veliku dubinu pretrazivanja. Problem zavrsnice je jos teziako se postavi zahtev za korektnom ili optimalnom igrom/taktikom4. Ukolikose, tehnikama koje se koriste u sredisnici, 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 pozi-ciju, ali ne moze da matira protivnika u manje od dvadeset poteza, pa takva

4Za taktiku kazemo da je korektna ukoliko u dobijenoj poziciji sigurno vodi do pobede i ukolikopri (teorijskoj) remi–poziciji sigurno vodi bar remiju. Za taktiku kazemo da je optimalna ukoliko udobijenoj poziciji vodi pobedi u najmanjem broju poteza, odnosno ukoliko u izgubljenoj pozicijiporaz maksimalno odlaze. Ocigledno, ako je taktika optimalna, onda je i korektna, ali ne vaziobratno.

Page 142: Vestacka-inteligencija

142 8 Programiranje logickih igara

zavrsnica za optimalnu igru zahteva dubinu pretrazivanja vecu od dvadeset.Slicni problemi vaze i za korektnu taktiku.

Neprimenljivost dubinskog pretrazivanja u zavrsnici uslovljava razvoj kval-itativno novih tehnika prilagodenih konkretnim igrama. Neke od njih zas-novane su na tehnikama koje se koriste u resavanju problema (u razlicitimdomenima vestacke inteligencije) ili u automatskom dokazivanju teorema. Kakou ovoj problematici (jos) nisu data opsta valjana resenja, kako postojeca resenjapredstavljaju primene citavih matematickih teorija na domen igara, u nastavkuce biti opisani samo neki od algoritama i ideja koji se mogu efikasno primenji-vati u automatskom izboru poteza u sahovskim zavrsnicama.

8.5.1 Skupovi pozicija kao klase ekvivalencija

M.A.Bramer (Faculty of Mathematics, Milton Keynes, England) je 1975. (v. [?])fomulisao sledeci opsti algoritam za zavrsnicu:

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

(b) odaberi najbolje ocenjeni elemenat skupa Q — element q;

(c) odigraj potez q;

Kljucni korak algoritma (korak (b)) zasnovan je na sledecoj ideji: neka jeskup Q∗ skup svih regularnih pozicija u igri i neka je svaka od tih pozicijasvrstana u tacno jedan od podskupova koji razlazuQ∗ (to razlaganje definise seu skladu sa prirodom konkretne igre tako da istom skupu pripadaju sustinskislicne pozicije – npr. u sahu, sve pozicije KPK); svakom od tih skupova (odnosnoklasa ekvivalencije) pridruzena je jedinstvena ocena i jedinstvena funkcija eval-uacije. Ocenjivanje koje se pominje u koraku (b) Bramerovog algoritma svodise na sabiranje ocene klase pozicija i ocene pozicije koja toj klasi pripada. Nataj nacin ocenjuju se svi legalni potezi iz datog cvora i to bez ikakvog pre-trazivanja preko dubine 1. Kao najbolji bira se potez kojem odgovara na-jveca zbirna ocena. Opisani algoritam ima brojne varijacije (ukljucujuci vari-jacije uporedivanja elemenata iz razlicitih klasa ekvivalencije, provere izabra-nog poteza pretrazivanjem u dubinu itd.).

Bramerov algoritam, razlaganjem skupa problema na klase slicnih prob-lema, u prilicnoj meri prirodno odgovara covekovom nacinu razmisljanja. Poredtoga, algoritam moze biti i veoma efikasan, jer poredenje poteza vrsi po kljucnimparametrima za konkretnu zavrsnicu (npr, u sahu, po rastojanju izmedu dvakralja), a ne po opstim kriterijumima koji se koriste u sredisnici. Algoritam za-hteva kompleksno definisanje svih relevantnih klasa pozicija u zavrsnici i svihodgovarajucih funkcija evaluacije, ali je i pored toga verovatno najprihvatljivijei najcesce korisceno resenje za automatski izbor poteza u zavrsnici.

8.5.2 Tekstovi saveta

Jedan od koncepata koji se primenjuju u sahovskim zavrsnicama je i tzv. kon-cept tekstova saveta (eng. advice texts; autor Ivan Bratko, Ljubljana, Slovenija;v. [?]). Navedimo, kao ilustraciju, tekst saveta za zavrsnicu KRK – kralj i topprotiv kralja:

Page 143: Vestacka-inteligencija

8.6 Implementaciona pitanja 143

1. ,,MAT“: Proveri da li je moguce matirati protivnika u dva poteza;

2. ,,STEZANJE“: Ako (1) nije moguce, pronadi nacin da topom smanjisprostor na tabli dostupan protivnickom kralju;

3. ,,PRIBLIZAVANJE“: Ako (1) i (2) nije moguce, pronadi nacin da svogkralja priblizis 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),pronadi potez kojim se dobija pozicija u kojoj top razdvaja dva kralja,bilo vertikalno ili horizontalno.

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

8.6 Implementaciona pitanja

U ovom poglavlju bice reci o polaznim pitanjima u pravljenju programa zalogicke igre: o strukturama podataka koje se koriste, o njihovim medusobnimvezama i organizaciji na nivou programa. Takode, bice reci i o proveri legal-nosti (korektnosti) poteza i o generatorima legalnih poteza. Izbor resenja ovihproblema od kljucne je vaznosti za svaki pojedinacni program i on determinisegotovo citav koncept programa.

Kao kod gotovo svih oblasti programiranja, i kod programiranja igara izborstruktura podataka je najcesce pitanje od izuzetne vaznosti. Od pravilnog izb-ora struktura podataka neposredno zavisi ne samo jednostavnost programa,vec i njegova efikasnost. Pored toga, dobra pocetna organizacija podatakacesto prirodno odreduje citav koncept programa i resavanje mnogih drugihsustinskih problema.

U programima za vecinu logickih igara, zbog velikog broja poteza koje jepotrebno ispitivati, neophodna je velika brzina izvrsavanja pojedinih modula(i pored sve brzih racunara). Zato je potrebno podatke organizovati tako daizracunavanja (u sirem smislu te reci) koja se koriste budu sto jednostavnijai brza. U tom smislu, kao dobar okvir namece se organizacija podataka kojase oslanja na bitovsku aritmetiku (umesto na celobrojnu ili realnu). I za svaizracunavanja pozeljno je koristiti bitovsku aritmetiku, a tamo gde je to nemoguceili nepodesno — celobrojnu.

Kod svih igara, jedna od osnovnih struktura podataka je struktura kojaodgovara potezu. Kod igara koje se igraju na tabli, ta struktura je, ocigledno, uneposrednoj vezi sa strukturom koja opisuje tablu. Tablu igre n×m u programumozemo opisati kao tabelu, odnosno matricu n×m ciji su elementi tipa char iliint5. U skladu sa navedenom idejom o upotrebi bitovske aritmetike, moze se

5U daljem tekstu cemo, kada govorimo o nekim konkretnim realizacijama na racunaru, ako nenaglasimo drugacije, podrazumevati da se radi o resenjima u okviru programskog jezika C.

Page 144: Vestacka-inteligencija

144 8 Programiranje logickih igara

kao prihvatljivo resenje za opis table izabrati i niz bitovskih matrica. Tako npr.u sahu moze se za svaki tip figura (i to za oba igraca) koristiti po jedna bitovskatabela 8 × 8 u kojoj bi vrednost 1 oznacavala da igrac na tom polju ima figurutog tipa, a vrednost 0 sve ostale mogucnosti. Na taj nacin jedna tabela 8 × 8bila bi zamenjena sa 12 (svaki igrac ima po sest tipova figura) tabela 8 × 8 cijisu elementi bitovskog tipa. Dodatna pogodna okolnost u ovom pristupu je stoopisana bitovska tabela moze da se opise jednostavno kao niz osam karaktera(jer tipu karakter odgovara jedan bajt, odnosno osam bita). Ovakav pristup(i analogni u drugim igrama), mada na prvi pogled mozda komplikovaniji,omogucava brojna jednostavna i brza resenja kod provere legalnosti poteza,generisanja legalnih poteza i sl.

Struktura koja opisuje potez treba da sadrzi informacije dovoljne da bi sepotez odigrao, ali pozeljno je (mada ne i neophodno) i da bi se eventualno”vratio”. Kod jednostavnih igara, kao sto je npr. igra iks-oks dovoljne su infor-macije o tome koji je igrac potez odigrao6 i na kojem polju. Kod igre reversi,to vise nisu dovoljne informacije, jer na osnovu njih ne moze biti vracen potez.Naime, na osnovu informacije o igracu i polju ne moze se rekonstruisati pozi-cija pre tog poteza, pa struktura koja opisuje potez mora da sadrzi i listu zetonakoji pri 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 po-laznom 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 i in-formaciju o (eventualno) primenjenom pravilu ”en-passant”7. Nacin na koji cenavedeni podaci da budu opisani direktno je uslovljen strukturom koja opisujetablu igre. Ukoliko je odabran pristup sa bitovskom reprezentacijom table ipoteza, operacije odigravanja i vracanja poteza i slicne svodice se na jednos-tavne i brze logicke operacije AND, OR, XOR, NOT i njihove kombinacije.

Program za igru moze biti tako koncipiran da se potezi koji se odigravajune pamte niti povezuju na bilo koji nacin. Medutim, ukoliko se zeli mogucnostvracanja poteza (i ako je ta mogucnost pripremljena pravilnim izborom struk-ture koja opisuje potez tako da sadrzi sve potrebne informacije), potezi setokom partije smestaju u povezanu listu (LIFO tipa, tj. stek). Pored toga, uko-liko se zeli i mogucnost ponovnog reprodukovanja partije ili njenog memo-risanja, poteze tokom partije treba smestati u dvostruko povezanu listu.

Na nivou programa, opisane strukture treba da budu organizovane takoda omogucavaju igru izmedu dva igraca, kao i mogucnost da program zamenibilo kog igraca (u celom toku partije, u pojedinacnom potezu ili samo za da-vanje preporuke).

Provera legalnosti poteza vrsi se u skladu sa pravilima pojedine igre, a ukonkretnom programu, i u skladu sa izabranim strukturama podataka. Nasamom pocetku, naglasimo da pravimo razliku izmedu termina moguci potezii legalni potezi: mogucim potezima nazivamo one koji su legalni u bar jednojregularnoj poziciji igre.

Ako sam program ucestvuje u partiji kao jedan od igraca i ako treba da

6Podatak o tome koji je igrac odigrao potez cesto nije neophodan, jer se potezi prvog i drugogigraca smenjuju naizmenicno.

7Rokade se mogu opisati samo preko poteza kralja, pa nije potrebno da informacija o rokadibude sadrzana u strukturi potez.

Page 145: Vestacka-inteligencija

8.6 Implementaciona pitanja 145

odabere svoj potez, koristi se tzv. generator legalnih poteza. Pre svega ustrategijama koje se koriste u sredisnjici partije, vrsi se pretrazivanje legalnihpoteza i po nekom kriterujumu bira se najbolji potez. Kako se pri tome idei po nekoliko poteza u dubinu, ocigledna je neophodnost da generator legal-nih poteza (koji se oslanja na modul za proveru legalnosti) radi izuzetno brzo.Moduli za proveru legalnosti i generisanje poteza treba, dakle, da budu sto jemoguce jednostavniji i brzi. Ukoliko izabrane strukture podataka to dozvol-javaju, pozeljno je da ovi moduli rade koristeci bitovsku aritmetiku.

Pozeljno je da se legalni potezi generisu ciklicno tj. da 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. Takva organizacija legalnih poteza bice koriscena ualgoritmima za sredisnjicu partije, o cemu ce biti reci u narednim poglavljima.

Page 146: Vestacka-inteligencija

146 8 Programiranje logickih igara

Page 147: Vestacka-inteligencija

Glava 9

Genetski algoritmi

Genetski algoritmi (GA) su familija opstih heuristickih algoritama globalnepretrage zasnovanih na Darvinovoj ideji evolucije. Oni pripadaju siroj grupievolucionih algoritama koji koriste tehnike inspirisane evolucionom biologi-jom, kao sto su nasledivanje, mutacija, selekcija, ukrstanje itd. Genetski algo-ritmi se mogu koristiti za nalazenje tacnog ili pribliznog resenja nekog prob-lema optimizacije ili pretrage. Mada je jos pedesetih godina dvadesetog vekabilo racunarskih simulacija zasnovanih na evoluciji, smatra se da je modernegenetske algoritme uveo Dzon Holand sedamdesetih godina dvadesetog veka[?], a postali su popularni kasnih osamdesetih godina.

Tokom prethodnih dvadesetak godina ostvaren je veliki napredak u razvojugenetskih algoritama. Genetski algoritmi se uspesno primenjuju na sirokomskupu problema, cesto NP-kompletnih ili tezih problema, za koje ne postojeefikasna resenja. Neki od tih problema su problem nalazenja najkraceg putau grafu, problem trgovackog putnika, logickim igrama itd. Genetski algoritmiimaju uspesne primene u ekonomiji, tehnici, bioinformatici, hemiji, fizici itd.Popularnost genetskih algoritama potice iz njihove uspesnosti, ali i jednos-tavnosti. Naime, ideje na kojima su genetski algoritmi zasnovani su jednos-tavne za razumevanje i implementiranje, a daju opsti sistem pretrage primen-jljiv na veliki broj problema. Uporedo sa nalazenjem brojnih novih primena iunapredivanjem algoritma, razvijaju se i teorijski osnove genetskih algoritama,ali jos uvek sa nedovoljno uspeha.

Genetski algoritmi uspesno se primenjuju u optimizacionim problemimau kojima postoji vise lokalnih ekstremuma. Ipak, iako cesto nalaze globalneeksremume, za genetske algoritme ne postoji nikakva garancija o tome da li jeu pitanju lokalni estremum niti o tome sa kolikom greskom je odredeno resenje.

9.1 Motivacija za genetske algoritme

Genetski algoritmi motivisani su prirodnim evolucionim procesima. U prirodi,evolucija je proces u kojem jedinke koje su najbolje prilagodene okolini prezivljavajui ostavljaju potomstvo koje je, najcesce isto tako ili bolje prilagodeno okolini.

Svaka celija svakog zivog organizma sadrzi hromozome. Svaki hromozomsadrzi skup gena — blokove DNK. Svaki gen odreduje neku osobinu orga-nizma. Familija gene se cesto naziva genotip, a familija osobina fenotip. Re-

Page 148: Vestacka-inteligencija

148 9 Genetski algoritmi

produkcija organizama ukljucuje kombinovanje gena roditelja i, pored toga,male kolicine mutacije. Jedinka moze biti manje ili vise prilagoden okolini.Jedinka koja je bolje prilagoddena okolini u kojoj zivi ima vecu verovatnocuprezivljavanja i ostavljanja potomstva, a time i prenosenja svog genetskog ma-terijala. Genetski materijal prilagodenih jedinki uglavnom opstaje, dok genet-ski materijal neprilagodenih jedinki uglavnom nestaje kroz generacije. Dakle,evolucioni procesi u prirodi su, u odredenom smislu, optimizacioni procesi —procesi u kojima se kroz generacije optimizuje genetski materijal (tj. osobineorganizama) tako da bude sto bolje prilagoden okolini.

9.2 Osnovni genetski algoritam

Genetski algoritmi se implementiraju kao racunarska simulacija u kojoj pop-ulacija apstraktno reprezentovanih jedinki (nazvanih hromozomi ili genotip)koje su kandidati za resenje za optimizacioni problem (to moze biti numerickavrednost, matematicka funkcija, put u grafu itd.), treba da se postupno pri-blizava boljim resenjima. Jedinke su obicno reprezentovane nizovima nulai jedinica, ali su moguce i druge reprezentacije (za probleme u kojem bina-rna reprezentacija nije pogodna). Postupak se odvija kroz generacije. Pocetnageneracija obicno cine slucajno generisane jedinki ali moze da se zasniva i najedinkama koje su (grubi) rezultat neke druge optimizacione metode.

Obicno u svakoj generaciji postoji isti broj jedinki i za svaku od njih seracuna njen kvalitet (analogon prilagodenosti okolini). Funkcija koja pridruzujete vrednosti jedinkama naziva se funkcija prilagodenosti, funkcija kvaliteta, funkcijaevaluacije1 ili funkcija cilja. Ova funkcija ima kljucnu ulogu u algoritmu.

Iz jedne generacije se stohasticki, na osnovu vrednosti funkcije prilagodenosti,biraju jedinke (sa vecom verovatnocom se biraju one kvalitetnije) koje ce bitiprenete u sledecu generaciju i biti iskoriscene za stvaranje novih jedinki (po-tomstva). Ovaj postupak izbora jedinki se naziva selekcija. Nad izabranimjedinkama primenjuju se genetski operatori ukrstanja2 i mutacije i tako dobi-jaju nove jedinke. Ukrstanjem se od dve jedinke dobija nova (ili dve nove) sagenetskim materijalom koji je dobijen neposredno od roditelja, tj. od polaznihjedinki. Mutacijom se modifikuje deo polazne jedinke (i ona oponasa mutacijekoje se u prirodi javljaju pod uticajem spoljnih faktora). U svakoj generaciji,dakle, dolazi do rekombinacije gena zbog koje se javlja slicnost sa roditeljskimjedinkama, ali i razlicitost medu jedinkama iste generacije. Generalno, nekejedinke u novoj generaciji mogu biti bolje ali neke mogu biti losije od jedinkiiz prethodne generacija, ali se ocekuje da se prosecna prilagodenost popravlja.Tako dobijena nova generacija koristi se za sledecu iteraciju algoritma.

Postupak se zauastavlja kada je dostignut zadati broj generacija, kada jedostignut zadati nivo kvaliteta populacije (najprilagodenije jedinke u njoj ilinekog procenta najprilagodenijih jedinki) ili kada je ispunjen neki drugi uslov.Ukoliko je dostignut zadati broj generacija, nema nikakvih garancija da tekucanajkvalitetnija jedinka ima zadovoljavajucu prilagodenost.

Opsti genetski algoritam prikazan je na slici .

1Ponekad se termin funkcija evaluacije koristi za funkciju koja meri performanse genetskog al-goritma sa nekim fiksiranim parametrima.

2Ovaj termin nije sasvim u skladu sa znacenjem koji ima u biologiji.

Page 149: Vestacka-inteligencija

9.3 Reprezentacija jedinki 149

Algoritam: Opsti genetski algoritam

Ulaz: —Izlaz: najkvalitetnija jedinka u tekucoj populaciji

1. Generisi pocetnu populaciju potencijalnih resenja;

2. Izracunaj prilago�enost svake jedinke u populaciji;

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

• Izaberi iz populacije skup jedinki za reprodukciju;

• Generisi novu generaciju, primenivsi nad izabranim jedinkamaproces reprodukcije (tj. genetske operatore ukrstanje i mutaciju);

• Izracunaj prilago�enost novogenerisanih jedinki;

• Zameni najlosije jedinke u populaciji novogenerisanim jedinkama.

4. vrati najkvalitetniju jedinku u tekucoj populaciji

Figure 9.1: Opsti genetski algoritam

Da bi navedeni opsti algoritam bio specifikovan potrebno je definisati reprezentacijudomena tj. skupa jedinki i funkciju kvaliteta.

Postoje mnoge varijante genetskih algoritama, pa i navedeni opsti algori-tam takode moze biti variran. Na primer, moguce je ne prenositi jedinke izjedne generacije u drugu, vec citavu novu generaciju dobiti ukrstanjem od iz-abranih jedinki iz prethodne generacije.

9.3 Reprezentacija jedinki

Jedinke mogu biti reprezentovane proizvoljnom strukturom podataka koja opisujenjihova svojstva (koju zovemo hromozom). Neophodno je da hromozom mozeda opise moguce resenje razmatranog problema i da se nad njim definisu genet-ski operatori (ukrstanje i mutacija). Genetski operatori treba da budu definisanitako da se njima ne dobijaju jedinke koje ne predstavljaju moguca resenja (naprimer, nelegalne puteve u grafu), jer bi one samo narusavale performanse al-goritma. Pogodno odabrana reprezentacija moze bitno uticati na efikasnostalgoritma.

9.3.1 Binarna reprezentacija

Najcesce i najuspesnije koriscena reprezentacija jedinki je u vidu nizova bitova.Svaki bit u takvoj reprezentaciji zovemo gen. Dublja priroda binarne reprezentacijezavisi od konkretnog problema. Na primer, ako je duzina hromozoma n (bitova)i ako je prostor mogucih resenja interval realnih brojeva [a, b], onda je potrebnouspostaviti vezu izmedu nizova n bitova i realnih brojeva iz datog intervala.Tako ce binarna reprezentacija 000 . . . 0︸ ︷︷ ︸

n

odgovarati broju a, a binarna reprezentacija

Page 150: Vestacka-inteligencija

150 9 Genetski algoritmi

111 . . . 1︸ ︷︷ ︸n

broju b. Broju x sa binarnom reprezentacijom izmedu 000 . . . 0︸ ︷︷ ︸n

i 111 . . . 1︸ ︷︷ ︸n

odgovara realni broj

a+x

2n − 1(x− a)

S druge strane, realnom broju x iz intervala [a, b] pridruzujemo vektor kojipredstavlja binarnu reprezentaciju broja[

x− ab− a

(2n − 1)].

Primer 9.1 Pretpostavimo da naftnu platformu treba postaviti na pogodnom mestu naputu izmedu tacaka A i B, koji je duzine 5000m. Lokacija platofrme je pogodnija uko-liko na tom mestu postoje vece rezerve nafte. U biranju lokacije moguce je meriti pos-tojece rezerve nafte na bilo kojoj tacki izmeduA iB. Moguca resenja mogu se reprezen-tovati nizovima bitova duzine 10, tj. brojevima od 0 do 1023. Tacki A tada odgovarabroj 0 i reprezentacija 0000000000, a tacki B broj 1023 i reprezentacija 1111111111.Tacki C na rastojanju 1320m od tacke A odgovara vrednost 1023 · (1320/5000) ≈ 270i reprezentacija 0100001110, a tackiD na rastojanju 3128m od tackeA odgovara vred-nost 1023 · (3128/5000) ≈ 640 i reprezentacija 1010000000.

0 100 200 300 400 500 600 700 800 900 1000

A (0000000000) B (1111111111)C (0100001110)

270

1320

D (1010000000)

640

31280 1000 2000 3000 4000 5000

Za vrednost funkcije prilagodenosti jedne tacke moze se uzeti rezerva nafte izmer-ena u toj taci.

9.4 Funkcija prilagodenosti

Funkcija prilagodenosti daje ocenu kvaliteta jedinke. Ukoliko je zadatak odred-iti maksimum neke funkcije, onda je prirodna funkcija prilagodenosti samata funkcija. Pogodan izbor funkcije prilagodenosti je od izuzetne vaznosti

Page 151: Vestacka-inteligencija

9.5 Inicijalizacija i zaustavljanje 151

za efikasnost algoritma. Ne postoje nikakvi opsti uslovi koje funkcija pri-lagodenosti treba da zadovoljava (sem da je definisana za sve moguce jedinke),mada je algoritam cesto efikasniji za funkcije koje zadovoljavaju neke specificneuslove. Sto je vrednost funkcije prilagodenosti za neku jedinku veca, to cebit veca verovatnoca da se ta jedinka koristi za generisanje sledece generacije.Tokom rada algoritma (tj. tokom ,,procesa evolucije“) generisu se nove gen-eracije, pri cemu se ocekuje da je ukupna prilagodenost (pa i prosecna pri-lagodenost, jer je broj jedinki u svim generacijama jednak) sve bolji i bolji.

Primer 9.2 Potrebno je odrediti maksimum funkcije f(x) na intervalu [a, b]. Funkcijaje definisana za sve elemente datog intervala, ali nije nuzno ni neprekidna, ni diferen-cijabilna. Genetski algoritam moguce je primeniti tako da se za funkciju prilagodenostikoristi upravo funkcija f , a da se za reprezentaciju koristi bitovska reprezentacija (nanacin opisan u poglavlju 9.3.1). Ukoliko je potrebno odrediti minimum funkcije f(x),onda bi za funkciju prilagodenosti mogla da se koristi funkcija −f .

9.5 Inicijalizacija i zaustavljanje

Populaciju jedinki jedne generacije, ukoliko se koristi bitovska reprezentacija,cini vektor binarnih vektora. U toku resavanja jednog problema, obicno svegeneracije imaju isti broj jedinki. Taj broj, velicina populacije, je parametaralgoritma i on je cesto nekoliko desetina ili stotina.

Proces inicijalizacije, tj. proces generisanja pocetne populacije je jednosta-van. Najsece se pocetna populacija generise slucajno (tako da pokriva citavprostor pretrage). Ukoliko se koristi bitovska reprezentacija, jedinke pocetnegeneracije se generisu kao slucajni brojevi u intervalu [0, 2n−1], gde je n duzinahromozoma u izabranoj reprezentaciji. Dodatno, u pocetnu populaciju mogubiti dodate neke specificne jedinke (na primer, iz delova prostora pretrage zakoje se veruje da sadrzi optimalna resenja) ili citava pocetna populacija mozebiti generisana koristeci neki drugi optimizacioni metod.

9.6 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 generisanja nove generacije. Izdvajanjejedinki 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 se se jedinke biraju slucajno,ali sa verovatnocama koje su izvedene iz prilagodenosti, pri cemu je moguceda budu izabrane i neke losije prilagodene jedinke (to moze da pomogne uodrzvanju genetske raznolikosti i, dalje, u sprecavanju prerane konvergencijeka nekom lokalnom optimumu). Najpopularnije strategije selekcije su ruletskai turnirska selekcija.

U bilo kojoj strategiji selekcije postoji opasnost da se neka kvalitetna jedinkaizgubi tokom evolucionog procesa. Elitizam je varijacija procesa selekcije u ko-joj se najbolja jedinka (ili nekoliko najboljih jedinki) u generaciji stiti od elimin-isanja ili bilo kakvih izmena i takva prenosi u sledecu generaciju.

Page 152: Vestacka-inteligencija

152 9 Genetski algoritmi

9.6.1 Ruletska selekcija

Ruletska selekcija (eng. roulette wheel selection) je proces selekcije u kojemvece sanse da ucestvuju u reprodukciji imaju prilagodenije jedinke.

Ako je f(i) vrednost funkcije prilagodenosti za jedinku i, a N broj jedinki upopulaciji, verovatnoca da ce jedinka i biti izabrana da ucestvuje u reprodukcijijednaka je

pi =f(i)∑Nj f(j)

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

Primer 9.3 Pretpostavimo da populacija ima osam jedinki: a, b, c, d, e, f, g, h i da sunjihove prilagodenosti redom 0.10, 0.30, 0.06, 0.10, 0.40, 0.24, 0.60, 0.20. Ukupnaprilogodenost generacije jednaka je 2.00. Sledeca tabela prikazuje verovatnoce izborajedinki u ruletskoj selekciji:

jedinka a b c d e f g hprilagodenost 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 pridruzene jedinkama.

0.05

0.15

0.030.05

0.20

0.12

0.30

0.10

a

c

e

g

b

d

f h

U opisanom pristupu, podrazumeva da funkcija prilagodenosti ima samopozitivne vrednosti. Ukoliko funkcija ne ispunjava taj uslov, mora se trans-formisati u drugu funkciju prilagodenosti. Alternativno, jedinke se mogu sor-tirati (opadajuce) po vrednosti funkcije prilagodenosti i onda verovatnoce izb-ora mogu da im budu pridruzene po nekoj (opadajucoj) distribuciji.

Page 153: Vestacka-inteligencija

9.7 Reprodukcija i genetski operatori 153

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

9.6.2 Turnirska selekcija

U turnirskoj selekciji, jedinke ,,odigravaju turnire“ u kojima vece sanse za pobedu(tj. za prelazak u narednu generaciju) imaju one sa boljom prilagodenoscu.

Velicina turnira k i verovatnoca p su parametari procesa turnirske selekcije.Za jedan turnir bira se slucajno k jedinki iz populacije. Nakon toga, one sesortiraju po vrednosti funkcije prilagodenosti i i-ta jedinka u tako sortiranomnizu se bira sa verovatnocom p(1− p)i−1.

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

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

Turnirska selekcija se moze efikasno implementirati na paralelnim arhitek-turama.

9.7 Reprodukcija i genetski operatori

U reprodukciji ucestvuju jedinke koje su izabrane u procesu selekcije. Procesreprodukcije kontrolisu dva genetska operatora: ukrstanje i mutacija.

9.7.1 Ukrstanje

U ukrstanju (eng. crossover) ucestvuju dve jedinke koje se nazivaju roditelji.Rezultat ukrstanja je jedna nova jedinka ili dve nove jedinke koje zovemo deca.Ocekivano je da deca nasleduju osobine roditelja, ukljucujuci njihovu prilagodenost,pa i da imaju bolju prilagodenost od svojih roditelja.

Postoji vise jednostavnih varijanti ukrstanja kada se koristi binarna reprezentacija.U jednoj varijanti dovoljno je izabrati tacke prekida i prekombinovati ni-

zove bitova — jedno dete deo od jedne tacke prekida do sledece nasleduje odjednog roditelja, a naredni deo od drugog. Ukrstanje moze koristiti proizvol-jan broj tacaka prekida (s tim da je manji od duzine hromozoma). Slike 9.2 i 9.3ilustruju ukrstanje sa jednom i sa dve tacke prekida.

roditelj 2

roditelj 1

dete 2

dete 1

tacka prekida

Figure 9.2: Ukrstanje sa jednom tacke prekida

Page 154: Vestacka-inteligencija

154 9 Genetski algoritmi

roditelj 2

roditelj 1

dete 2

dete 1

tacke prekida

Figure 9.3: Ukrstanje sa dve tacke prekida

Uniformno ukrstanje tipicno daje dva deteta. Kod ovog ukrstanja svaki bitprvog roditelja se sa verovatnocom p prenosi na prvo dete i sa verovatnocom1 − p na drugo dete (pri cemu dete koje nije izabrano nasleduje bit drugogroditelja). Verovatnoca p je obicno jednaka 0.5, ali moze biti i drugacija.

U poluuniformnom ukrstanju, kombinuju se tacno pola bitova koji se raz-likuju kod roditelja. Dakle, najpre se racuna Hamming rastojanje (broj razlicitihbitova) izmedu roditelja i deli se sa dva. Dobijena vrednost daje broj bitova kojice se prenositi na decu kao u shemi uniformnog ukrstanja.

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.

9.7.2 Mutacija

Mutacija je operator koji u binarnoj reprezentaciji menja jedan ili vise slucajnoodabranih gena. Od jedne jedinke dobija se jedna nova jedinka. Verovatnocada ce neki bit neke jedinke populacije biti promenjen je parametar algoritma icesto je izmedu 0.01 i 0.001. Mutacija se primenjuje nakon procesa ukrstanja.

Uloga mutacija u genetskim algoritmima je da spreci da jedinke u pop-ulaciji postanu suvise slicne i da pomogne u obnavljanju izgubljenog genet-skog materijala. Na primer, ukoliko u jednoj generaciji sve jedinke imaju istuvrednost jednog gena, onda taj gen samo ukrstanjem nikada ne bi mogao dase promeni. Kontrolisano podsticanje genetske raznolikosti mutacijom cestoomogucava izbegavanje lokalnih ekstremuma. Mutacije, naime, omogucavajurazmatranje novih delova prostrora pretrage u nadi da ce se naici na globalnimekstremum. Dovoljno je da se jedna jedinka priblizi globalnom ekstremumu,pa da za nekoliko generacija sve jedinke budu u tom delu prostora pretrage.

Ukoliko je verovatnoca mutacije za svaki bit jednaka jedinici, onda se al-goritam pretvara u slucajnu pretragu. Ukoliko je ta verovatnoca jednaka nuli,onda nema mutacije i algoritam ce verovatno brzo dospeti do nekog lokalnogekstremuma.

9.8 Zaustavljanje

Genetski algoritam se izvrsava, tj. evolucioni proces stvaranja novih generacijase ponavlja, sve dok nije zadovoljen neki uslov zaustavljanja. Najcesce se ko-riste sledeci uslovi zaustavljanja:

Page 155: Vestacka-inteligencija

9.9 Parametri algoritma 155

• Pronadeno je resenje koje zadovoljava unapred zadate (minimalne) kri-terijume.

• Dostignut je zadati broj generacija.

• Funkcija prilagodenosti je upotrebljena zadati broj puta.

• Vrednost prilagodenosti najboljih jedinki se u nekoliko generacija ne popravlja.

• Kombinacija nekoliko uslova.

9.9 Parametri algoritma

Za vecinu varijanti genetskog algoritma potrebno je specifikovati velicinu pop-ulacije, verovatnocu ukrstanja i verovatnocu mutacije.

Verovatnoca ukrstanja je u direktnoj vezi sa procentom jedinki koje se nakraju jedne iteracije eliminisu, tako da je dovoljno zadati jedan od njih. Ukolikoje zadata verovatnoca ukrstanja, onda ce za svaki par razlicitih jedinki iz skupadobijenog selekcijom da budu generisani njihovi potomci sa tom verovatnocomi sve tako generisane jedinke zamenice najlosije prilagodene jedinke iz prethodnegeneracije. Ukoliko je zadat procenat jedinki koje se na kraju jedne iteracije eli-minisu (obicno izmedu 25% i 50%), onda se u fazi ukrstanja parovi razlicitihjedinki biraju i ukrastaju sve dok nije generisano dovoljno jedinki da zamenione koje ce biti eliminisane.

Izbor parametara genetskog algoritma je cesto od kljucne vaznosti za nje-gove performanse (brzina dolazenja do resenja i kvalitet resenja). Optimizo-vanje parametara genetskog algoritma je kompleksan problem koji se najcesceresava izvodenjem velikog broja eksperimenata. Za izbor pogodnih param-etara cesto se koriste sami genetski algoritmi. Parametri genetskog algoritmane moraju biti fiksirani, vec mogu da se menjaju i prilagodavaju tokom rada (naprimer, ukoliko su tekuce jedinke raznolike, onda treba povecati verovatnocuukrstanja, a smanjiti mutaciju, a ukoliko su slicne onda treba uraditi obratno,kako bi se povecale sanse za priblizavanje globalnom optimumu).

9.10 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 svo-jstvima genetskih algoritama, o kvalitetu resenja koja daju, pa cak ni o tomezasto su genetski algoritmi uspesni. U daljem tekstu, bice reci o nekim dobrimi losim stranama genetskih algoritama.

Funkcija koja se optimizuje. Funkcija f koja se optimizuje moze biti potpunoproizvoljna i ne mora da zadovoljava nikakve uslove (na primer, da budeneprekidna ili diferencijabilna). Ipak, cesto nije lako konstruisati odgo-varajucu funkciju prilagodenosti. Genetski algoritmi se ne mogu uspesnoprimeniti na probleme za koje se moze reci samo da li je nesto resenje ilinije. Dodatno, cesto, posebno u primenama u vestackoj inteliegenciji (na

Page 156: Vestacka-inteligencija

156 9 Genetski algoritmi

primer, kretanje robota), funkcija koju treba optimizovati nije zadata ek-splicitno vec implicitno, kroz veci broj kriterijuma.

Parametri algoritma. Parametri genetskih algoritama daju mogucnost uspesnogprilagodavanja specificnom problemu. No, upravo ta sloboda izboraparametara je istovremeno i pretnja da mogu da budu korisceni parametrikoji daju veoma lose performanse.

Domen genetskih algoritama. Genetski algoritmi primenljivi su na veoma sirokskup problema. Ipak, uspesno resavanje speficnih problema zahteva iz-bor pogodne reprezentacije, kao i izbor pogodnih parametara, sto je tezakproblem. Stavise, cak i ako su parametri dobro izabrani, genetski algo-ritam ce najcesce davati losija resenja od pristupa koji je specijalizovanza problem koji se resava. Otuda i zapazanje da su ,,neuronske mreze igenetski algoritmi drugo i trece najbolje resenje za skoro bilo koji opti-mizacioni problem“.

Kvalitet resenja. Ponavljanjem postupka moze se dobiti veca pouzdanost resenja.Ukoliko nije nadeno resenje koje je globalni optimum, cesto je nadenoresenje koje je dovoljno dobro. Dodatno, kao rezultat algoritma moze sesmatrati neki skup najboljih resenja, sto je cesto veoma pogodno. S drugestrane, genetski algoritam ne daje nikakvu garanciju da je pronadenoresenje globalni optimum. I zaista, genetski algoritmi cesto imaju ten-denciju da idu ka lokalnim optimumima.

Zahtevani resursi. Genetski algoritmi se jednostavno implementiraju, a pos-toji i mnostvo raznolikih dostupnih implementacija. Iako su algoritmii implementacije jednostavni, izvrsavanje genetskih algoritama je cestoveoma vremenski i memorijski zahtevno.

9.11 Primer primene genetskih algoritama — evolu-cija agenta

Kao sto je vec receno, genetski algoritmi predstavljaju heuristicku metodu zaoptimizaciju funkcija. Kako na ovako apstraktno opisanom domenu nije ociglednasirina primenljivosti genetskih algoritama, u ovom poglavlju bice dat jedankonkretan, jednostavan, ali ilustrativan primer.

Neka je potrebno opisati agenta koji je u stanju da brzo vozi automobilpo stazi za karting. Staza ima start koji je ujedno i cilj i ima krivine ulevoi udesno. Staza je izdeljena na polja. 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 nastavlja dase krece (i) napred. Agent raspolaze skupom senzora — jednim koji meri brz-inu (sporo, brzo) i senzorima za prepreke — levo, desno, jedno polje napred idva polja napred. Pretpostavljamo da staza nema slepih krakova niti grananja,pa ako postoji prepreka na polju ispred, onda postoji tacno jedno slobodnopolje levo ili desno. U toku kretanja, agent ne moze skretati ukoliko se krecebrzo.

Page 157: Vestacka-inteligencija

9.11 Primer primene genetskih algoritama — evolucija agenta 157

Kako bi voznja bila sto pre zavrsena, pozeljno je da agent ubrza kada suoba polja ispred njega slobodna, da uspori kad primeti prepreku dva polja is-pred i da skrene na slobodno polje kada primeti prepreku na polju neposrednoispred.

Prilikom modelovanja ovog problema, potrebno je specifikovati osnovne el-emente genetskog algoritma, pocev od reprezentacije hromozoma. Zarad jed-nostavnosti, koristicemo modifikovanu binarnu reprezentaciju. Svaki senzorkojim agent raspolaze moze da daje dve vrednosti. Stoga agent ne moze raz-likovati vise od 25 = 32 stranja. Neka od tih stanja se nece pojavljivati u tokuvoznje (na primer, prepreke i neposredno napred i levo i desno), ali nece bitiunapred odbacena radi jednostavnosti kodiranja i dekodiranja hromozoma.Svako od mogucih stanja predstavljace jednu poziciju u hromozomu na kojojse belezi akcija koju agent u tom stanju preduzima. Akcije se mogu kodirati ce-lim brojevima od 0 do 4, na primer, 0 — ne preduzimati nista, 1 — ubrzati, 2 —usporiti, 3 — skrenuti levo i 4 — skrenuti desno. Na osnovu ovoga, hromozomagenta koji u svakom stanju samo skrece desno bio bi predstavljen pomocuniza od 32 cetvorke. Dekodiranje hromozoma moze da se realizuje tako sto bise svakom od senzora dodelio jedan bit pri cemu bi njegova vrednost u slucajupostojanja prepreke bila 0, a u suprotnom 1 i u slucaju sporog kretanja 0, a usuprotnom 1. Ovi bitovi bi se poredali u fiksiranom poretku, na primer, brzina,polje neposredno ispred, dva polja ispred, polje levo i polje desno. Tada bi seakcija u slucaju brzog kretanja i sa preprekama levo i desno, a bez preprekana sledeca dva polja nalazila zapisana u hromozomu na mestu sa indeksom(10011)2 = 19.

Ukrstanje moze da bude sa jednom tackom prekida, a mutacija moze da serealizuje tako sto bi na svakoj poziciji svakog hromozoma sa nekom unapredzadatom malom verovatnocom trenutna vrednost bila zamenjena nekom slucajnoizabranom od preostalih. Time su definisani genetski operatori.

Selekcija moze da bude jednostavna ruletska.Funkcija koja se optimizuje u ovom slucaju nije eksplicitna, jer se njena

vrednost ne moze izracunati direktno na osnovu samog hromozoma. Stogace funkcija prilagodenosti da se izracunava simuliranjem ponasanja agenta nanekoj stazi koja ukljucuje sve pomenute aspekte voznje (skretanje, ubrzavanje,itd.). Vo’znja ce biti simulirana tako sto ce agenta u svakom koraku da sepomera po jedno polje duz staze u pravcu kretanja. Pri tome se u svakomkoraku dekodira hromozom i odreduje se akcija koju agent preduzima. Svakopolje koje agent prede sporo boduje se sa 1, a svako polje koje se prede brzo,boduje se sa 2. Na taj nacin ce prilikom selekcije biti favorizovani agenti kojibrze prelaze stazu. Kako je najvaznije da agent uopste zavrsi trku, a tek ondada je zavrsi sto brze, svaki agent koji zavrsi trku dobija dodatne poene (naprimer, onoliko koliko staza ima polja). Na taj nacin se agenti koji zavrsavajutrku favorizuju u selekciji u odnosu na ostale, pa se evolucija ubrzava ka njima.

Na navedeni nacin je zavrseno dizajniranje svih aspekata genetskog algo-ritma.

9.11.1 Implementaciona pitanja

Page 158: Vestacka-inteligencija

158 9 Genetski algoritmi

Page 159: Vestacka-inteligencija

Deo III

Masinsko ucenje

Page 160: Vestacka-inteligencija
Page 161: Vestacka-inteligencija

Glava 10

Uvod

Masinsko ucenje je oblast vestacke inteligencije koja se moze definisati na ra-zlicite nacine. Jedna definicija bi mogla biti da je to disciplina koja se bavi iz-gradnjom prilagodljivih racunarskih sisitema koji su sposobni da poboljsavajusvoje performanse koristeci informacije iz iskustva. Masinsko ucenje bi semoglo definisati i kao disciplina koja se bavi proucavanjem generalizacije ikonstrukcijom i analizom algoritama koji generalizuju.

Prva definicija je bliza inzinjerskom i prakticnom racunarskom nacinu razmisljanjasa akcentom na resavanju konkretnih problema i implementaciji. Druga je blizacistom matematickom razmisljanju i statistici. Mi se necemo ograniciti na samojedan od njih.

Preciznu definiciju je nezahvalno traziti, kako zbog cestog preklapanja sadrugim disciplinama, tako i zbog cinjenice da se radi o oblasti koja je ponikla iznevezanih razmatranja problema ucenja u razlicitim domenima, bez zajednicketeorijske osnove. Iako su se prva teorijska razmatranja pojavila jos kasnih 60-ih u radovima Golda, univerzalne teorijske osnove su se pocele ucvrscivatitek tokom 80-ih godina proslog veka. Najvazniji teorijski pristupi su Goldovmodel granicnog ucenja (learning in the limit), Valiantov PAC (Probably Approx-imately Correct) model i verovatno najkompletnija — statisticka teorija ucenja.

Masinsko ucenje je zanimljivo, izmedu ostalog, i zbog svoje teznje da sepriblizi ljudskom ucenju po efikasnosti, kao i da ga objasni, odnosno pruziteorijski model za njega. Naravno, oba cilja su za sada daleko od ostvarenja upunom smislu.

Razlog zbog kojeg su prakticni rezultati prethodili teorijskim bi lako mogaobiti taj sto je ova oblast duboko motivisana prakticnim primenama. Postignutisu rezultati u raznim oblastima.

Jedan od zanimljivijih prakticnih rezultata je postignut od strane sistemaALVINN zasnovanog na neuronskoj mrezi, krajem osamdesetih godina dvade-setog veka, koji je naucen da vozi javnim putem u prisustvu drugih vozila bezljudske pomoci brzinom od oko 110km/h. Uspesno je vozio na putu duzineoko 140km.

Sistemi za prepoznavanje govora takode koriste masinsko ucenje u nekojformi. Sistem Sphinx, takode sa kraja osamdesetih, se oslanja na neuronskemreze i skrivene Markovljeve modele u prilagodavanju izgovoru razlicitih ljudi,karakteristikama mikrofona, pozadinskoj buci i slicno.

Jedan od najpoznatijih primera primene masinskog ucenja je sistem TD-

Page 162: Vestacka-inteligencija

162 10 Uvod

Gammon za igranje igre Backgammon konstruisan devedesetih godina. Igrajuciprotiv sebe preko milion partija i nastavljajuci da uci u igri sa ljudskim igracima,dostigao je nivo igre u rangu svetskog sampiona. On kombinuje ucenje uslovl-javanjem (eng. reinforcement learning) sa neuronskom mrezom koju koristi zainternu reprezentaciju naucenog znanja.

Jedan od rezultata iz poslednjih godina je ucenje sistema koji kontroliserobotsku ruku da citanjem napona misica preko povrsine koze izvodi zeljenjepokrete. Problemi koji se pri ovome javljaju su razlike izmedu razlicitih ljudi,razlike u polozajima i pokretima ruke u vreme ucenja i u vreme koriscenja,zamor misica, znojenje i slicno. U ovom problemu su se pokazali uspesni pris-tupi bazirani na neuronskim mrezama i metodi potpornih vektora.

Neka od najvaznijih pitanja masinskog ucenja 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 upravo kroz teorijske modele ucenja uokviru kojih se u ovom pogledu vec doslo do znacajnih rezultata.

Koliko god primene masinskog ucenja bile raznovrsne, postoje odredenekarakteristike zadataka koje se cesto ponavljaju. Stoga je moguce govoriti ovrstama zadataka ucenja koje se cesto srecu. Klasifikacija je verovatno najcescizadatak ucenja u praksi. Ona predstavlja prepoznavanje vrste objekata. Naprimer da li odredeno elektronsko pismo predstavlja nezeljenu postu (eng. spam)ili ne. Regresija je zadatak ucenja u kome objektima odgovaraju vrednosti izskupa realnih brojeva. Na primer, predvidanje duzine zivota osobe u zavis-nosti od njenih zivotnih navika (bavljenjem sportom, pusenje, i slicno).

10.1 Generalizacija i apstrakcija

Deduktivno zakljucivanje, vodeno zakonima logike, moze se smatrati osnovnomkarakteristikom inteligentnog ponasavanja. Ovakvo zakljucivanje jedan je odosnovnih 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, prilagodljivostse postize i kod nizih organizama, ali je ova sposobnost sa tacke gledista vestackeinteligencije posebno zanimljiva kod zivotinja i ljudi kod kojih se manifes-tuje u toku zivota jedinke. Kod njih se prilagodavanje postize ucenjem na os-novu primera iz iskustva i primenom naucnog znanja u slicnim situacijama ubuducnosti. Primera radi, za zivi organizam je znacajno da uoci kljucne karak-teristike 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 koje su za njega povoljni.

Apstraktnije razmatrano, moguce je govoriti o donosenju zakljucaka o nepoz-natim slucajevima, na osnovu znanja o nekim drugim, poznatim, slucajevima.Proces u kome se znanje koje vazi za neki skup slucajeva prenosi na neki njegov

Page 163: Vestacka-inteligencija

10.2 Primer problema ucenja 163

nadskup, naziva se generalizacijom ili induktivnim zakljucivanjem. Generalizacijapredstavlja jedan od osnovnih koncepata masinskog ucenja.

Koncept generalizacije je direktno povezan sa konceptom apstrakcije. Naime,da bi generalizacija bila uspesna, odredeni apsekti entiteta o kojima se rezonujemoraju biti zanemareni ukoliko nisu od sustinskog znacaja za generalizaciju.Primera radi, ukoliko je potrebno nauciti vestacki sistem da prepoznaje rukompisani tekst i da ga prevodi u elektronski tekstualni zapis, potrebno je da sistemzanemari specificnosti koje postoje kod razlicitih ljudi u visini i nagibu slova ilibrzini i ostrini poteza prilikom pisanja. Kontrola generalizacije i apstrakcije jejedna od kljucnih tema u teorijskom razmatranju masinskog ucenja.

Za jednostavan primer generalizacije moze se uzeti sledeca situacija. Sis-tem koji prepoznaje rukom pisani tekst bi na osnovu nekoliko primera mogaoda zakljuci da se broj 0 pise kao elipsa ili krug koji prilikom pisanja moguevenutalno biti malo otvoreni. U ovom slucaju, generalizacija je korektna. Zarazliku od deduktivnog zakljucivanja, proces generalizacije ne pruza garan-cije da su zakljucci ispravni. Tako, na primer, zakljucak da se broj 1 uvekpise podvucen crticom potkrepljen nekolicinom takvih primera ne bi bio ko-rektan iako je kao induktivni zakljucak moguc. Iako zakljucci dobijeni gen-eralizacijom ne moraju biti tacni, induktivno zakljucivanje je i dalje veomaznacajno. To je jedan od osnovnih nacina za formiranje predstava o okruzenju,situacijama ili uzrocno posledicnim odnosima ili u formalnim okvirima — zapravljenje modela podataka iz iskustva. Ukoliko su u nekom domenu greske uzakljucivanju prihvatljive, algoritmi induktivnog zakljucivanja omogucavajuzakljucivanje i bez temeljnog poznavanja i kompletnog formalnog opisivanjadomena na koji se primenjuju. Takode, mogu biti efikasniji od algoritama de-duktivnog zakljucivanja.

10.2 Primer problema ucenja

Pretpostavimo da smo zapoceli izgradnju specijalizovanog pretrazivaca Inter-neta i da zelimo da omogucimo korisnicima da pretrazuju samo racunarskeclanke. Da bi ovo bilo moguce potrebno je da sistem bude u stanju da razlikujeclanke iz oblasti racunarstva od ostaliih clanaka. Mozemo primetiti da se radio problemu klasifikacije. Kako bi sistem naucio da ispravno klasifikuje, prvomu je potreban odredeni skup primera koji bi sadrzao kako racunarske, tako iclanke iz drugih oblasti. Recimo da je unapred sakupljeno 3000 clanaka — po1500 iz obe klase. Iz obe klase cemo izdvojiti po 500 clanaka kako bismo posleucenja procenili kvalitet sistema.

Da bi sproveli ucenje, potrebno je da ove clanke pretstavimo u nekom ob-liku koji je pogodan za algoritam ucenja i koji bi mogao na neki nacin dareprezentuje osnovne karakteristike na osnovu kojih se clanci iz ove dve kate-gorije mogu razlikovati. Za to nam je potrebna ideja kako bismo razlikovaliclanke. Ocekivano je da ce u clancima iz racunarstva biti cesce pominjaniracunarski pojmovi nego u ostalim clancima. To svojstvo bi se moglo iskoristitiza razlikovanje clanaka.

U skladu sa ovim, mozemo nabrojati sve reci iz nekog recnika racunarsketerminologije koje se pojavljuju u svim clancima koje imamo. Svaki clanakmozemo predstaviti vektorom frekvencija ovih reci. Frekvencija neke reci uclanku se racuna tako sto se broj pojavljivanja te reci podeli ukupnim brojem

Page 164: Vestacka-inteligencija

164 10 Uvod

0

Figure 10.1: Plavi krugovi predstavljaju racunarske clanke, a crveni ostale

pojavljivanja svih reci u clanku. Ako je x vektor koji odgovara nekom clanku,onda cemo frekvencije izabranih reci oznacavati sa xi.

Posmatrajmo ove vektore geometrijski. Kao da su tacke u euklidskom pros-toru. Ukoliko su u clancima iz jedne kategorije racunarski termini visokofrekventni,a u drugim niskofrekventni, tacke koje odgovaraju racunarskim clancima ce segrupisati dalje od koordinatnog pocetka, dok ce se ostale grupisati blize njemu.Pojednostavljen prikaz je dat na slici 10.2.

Izmedu ovih tacaka bi se mogla provuci hiperravan koja bi ih razdvajalakao na slici 10.2. Ako nam je ova hiperravan poznata, onda za neki nov, nepoz-nat clanak mozemo reci da je iz oblasti racunarstva ukoliko se vektor koji muodgovara nalazi sa iste strane hiperravni kao i vektori racunarskih clanakakoji su nam poznati. U suprotnom bismo smatrali da clanak nije iz oblastiracunarstva.

Jednacina hiperravni ima oblik

w0 +n∑i=1

wixi = 0

Ukoliko podrazumevamo da x0 ne odgovara nijednoj reci, vec da je uvekjednak 1, onda jednacina ima jos jednostavniji oblik

n∑i=0

wixi = 0

Neka je f(x) = 1 ukoliko je x clanak iz oblasti racunarstva i f(x) = −1 usuprotnom. Neka je f(x) = 1 ukoliko je

n∑i=0

wixi ≥ 0

i f(x) = −1 ukoliko je

Page 165: Vestacka-inteligencija

10.2 Primer problema ucenja 165

0

Figure 10.2: Osim krugova koji predstavljaju clanke, prikazana je i hiperravan(u ovom slucaju prava) koja ih razdvaja

n∑i=0

wixi < 0

Ocigledno, funkcija f pruza informaciju sa koje strane hiperravni se nalazitacka x.

Da bismo nasli zeljenu hiperravan, potrebno je da nademo koeficijente witako da funkcije f(x) i f(x) budu jednake ili makar jednake u vecini slucajeva.Kako bismo to uradili potrebno je da formulisemo algoritam ucenja koji ce naosnovu podataka koje imamo doci do tih koeficijenata. Algoritam ucenja mozebiti sledeci:

1. Neka je wi = 0 za svako i i η = 0.01.

2. Za svaki trening primer < x, f(x) >:

(a) Izracunati f(x) koristeci trenutne koeficijente wi.(b) Za svak koeficijent wi uraditi

wi ← wi + η(f(x)− f(x)) ∗ xi

Ne mora biti ocigledno da azuriranje koeficijenata u algoritmu koji koris-timo za ucenje vodi poboljsanju naucene funkcije. Pre svega, vrednost η morabiti mala kako bi korekcije bile male i postepene. Drugo, primetimo da su xiuvek pozitivni ili jednaki 0 i da stoga znak korekcije zavisi od razlike izmeduvrednosti funkcija f i f . Ukoliko je vrednost funkcije f veca, povecavamokoeficijente, tako da se vrednost funkcije f zbog toga povecava. Analogno uslucaju da je vrednost funkcije f manja. Kad greske nema, vrednost korekcije je0. Stoga, ovim se funkcija f priblizava funkciji f . Takode se primecuje da je ko-rekcija proporcionalna vrednosti xi, odnosno veca je za koeficijente cija prom-ena moze vise doprineti promeni vrednosti funkcije f za dati primer. Teorijsko

Page 166: Vestacka-inteligencija

166 10 Uvod

opravdanje za ovaj postupak lezi u tome sto se radi o gradijentnom spustukojim se minimizuje srednjekvadratno odstupanje funkcije f od funkcije f .

Kada su koeficijenti wi nadeni, za nepoznati clanak je dovoljno videti sakoje strane hiperravni se nalazi njegov vektor frekvencija reci, odnosno da li jef jednako 1 ili -1.

Kada je ucenje zavrseno, pozeljno je proceniti koliko se sistem dobro ponasa.Na pocetku smo izdvojili 1000 clanaka koje sad mozemo klasifikovati. Kad suclanci klasifikovani kao meru kvaliteta ucenja mozemo izracunati udeo dobroklasifikovanih clanaka u ukupnom broju clanaka. Pozeljno je da je on sto veci.

10.3 Nadgledano i nenadgledano ucenje

Postoje dve glavne formulacije problema ucenja:

• Nadgledano ucenje je pristup problemu ucenja koji se odnosi na situacije ukojima se algoritmu zajedno sa podacima iz kojih uci daju i zeljeni izlazi.Algoritam treba da nauci da za date podatke (ne nuzno trening podatke)pruzi odgovarajuce izlaze.

• Nenadgledano ucenje je pristup problemu ucenja koji se odnosi na situacijeu kojima se algoritmu koji uci pruzaju samo podaci bez izlaza. Od algo-ritma koji uci ocekuje se da sam uoci neke zakonitosti u podacima koji sumu dati.

Naravno, ovi drasticno razliciti pristupi se ne odnose na iste vrste prob-lema. Primer nadgledanog ucenja je vec pomenuta klasifikacija kod koje suunapred poznati primeri za razlicite klase. Takav je slucaj sa prepoznavanjemracunarskih clanaka. Primer nenadgledanog ucenja je takozvano klasterovanje- uocavanje grupa na neki nacin slicnih objekata kada nemamo prethodnoznanje o tome koliko grupa postoji ili koje su njihove karakteristike. Pristupikojima se mi u nastavku bavimo spadaju u nadgledano ucenje.

10.4 Ciljna funkcija i modeli podataka

Ono sto je potrebno nauciti se u masinskom ucenju definise ciljnom funkcijom.Ona definise zeljeno ponasanje sistema koji uci. U slucaju da korisnik zelida prepozna clanke na Internetu sa sadrzajem iz racunarstva ciljna funkcijatakvim clancima pridruzuje 1, a ostalim -1. U ranije navedenom primeru, toje bila funkcija f . U ucenju igranja saha, ciljna funkcija bi vrsila pridruzivanjeoptimalnih poteza pozicijama sahovske table.

Kako su greske pri ucenju moguce i cak sasvim izvesne, ucenje predstavljapriblizno odredivanje ove ciljne funkcije, odnosno moze biti videno kao aproksimi-ranje funkcija. Funkciju kojom aproksimiramo ciljnu nazivamo modelima po-dataka ili hipotezama. Koristicemo oba termina. U slucaju prepoznavanja racunarskihclanaka model je bila funkcija f koja je pridruzivala 1 svim tackama sa jednestrane hiperravni, a -1 tackama sa druge.

Skup svih dopustivih hipoteza nazivamo prostorom hipoteza. U masinskomucenju prostor hipoteza se obicno ne navodi eksplicitno nabrajanjem hipoteza,vec je odreden reprezentacijom hipoteze. Drugim recima, prostor hipoteza

Page 167: Vestacka-inteligencija

10.5 Podaci 167

predstavlja skup svih hipoteza koje se mogu predstaviti u zadatom obliku.Potencijalne reprezentacije su raznovrsne. Mogu predstavljati pravila oblikaIF...THEN, linearne funkcije, i druge. U primeru prepoznavanja racunarskihclanaka hipoteze su reprezentovane hiperravnima definisanim preko vrednostikoeficijenata wi.

Nalazenje hipoteze koja najbolje aproksimira ciljnu funkciju mozemo videtikao pretragu prostora hipoteza koja je vodenja podacima, a koju realizuje algo-ritam ucenja. Stoga se u nekom smislu algoritmi ucenja mogu smatrati algorit-mima pretrage, ali u prostoru hipoteza pri cemu je uloga podataka iz iskustvanov element koji nije bio prisutan u ranije izlozenim opstim pristupima pre-trazi.

Izbor prostora hipoteza je od fundamentalnog znacaja za kvalitet ucenja.Ukoliko prostor hipoteza ne sadrzi ciljnu funkciju, onda ona u praksi moze bitisamo priblizno naucena. To u praksi moze biti dovoljno dobro. Pored toga,bogatstvo prostora hipoteza je od velikog znacaja. Naizgled paradoksalno,preterano bogatstvo prostora hipoteza po pravilu dovodi do losijih rezultata.

10.5 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 cemo koristititermin instanca ili primerak. U slucaju prepoznavanja racunarskih clanaka, in-stanca je jedan clanak. Instance ce biti u racunaru predstavljene pmocu nekihpodataka koji ih opisuju i kojima ih identifikujemo.

10.5.1 Zapis podataka

Instance se na neki nacin moraju reprezentovani u obliku koji je pogodan zaprimenu algoritama ucenja. Najpogodniji nacin koji se najcesce koristi kodalgoritama masinskog ucenja uopste je predstavljanje instanci pomocu nekihnjihovih atributa. Atributi predstavljaju karakteristike instanci kao sto su boja,velicina, tezina i slicno. Svaki od izabranih atributa moze imati vrednost kojapripada nekom unapred zadatom skupu. Te vrednosti su cesto numerickekao u slucaju tezine koja je skalarna velicina i koja se najbolje opisuje bro-jem. Primer numericke vrednosti moze biti i frekvencija reci u nekom clanku.Atributi takode mogu biti i kategoricki, odnosno mogu predstavljati imenanekih kategorija kojima se ne mogu jednoznacno dodeliti smislene numerickevrednosti ili uredenje. Primer kategorickog atributa moze biti grad u komeosoba zivi, pol, nacionalnost i slicno. U slucaju prepoznavanja racunarskihclanaka, oznaka klase koju treba pogoditi — 1 za racunarkse clanke i -1 za os-tale je takode kategoricka vrednost iako je predstavljena brojem posto se radi odve 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 karakteristike in-stanci 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 koristiti

Page 168: Vestacka-inteligencija

168 10 Uvod

u 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 obrnut posto reci ”proces” i ”indeks” mogu imati i drugacijaznacenja od onih koja im se pridruzuju u racunarskoj terminologiji. Postoje imetode za automatski izbor podskupa atributa iz nekog sireg skupa koje sunajrelevantnije za dati problem ucenja, ali njih ne opisujemo.

Kada su izabrani atributi pomocu kojih se instance opisuju, svaka instancase moze predstaviti vektorom vrednosti atributa koje joj odgovaraju.

10.5.2 Podaci za trening i podaci za testiranje

Prirodno je da svako ucenje polazi od nekih podataka. Podaci na osnovu ko-jih se vrsi generalizacija, nazivaju se podacima za trening, a njihov skup treningskup. Testiranje naucenog znanja na podacima na osnovu kojih je uceno obicnodovodi 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 u skladu sanekim unapred datim podacima za testiranje. Podaci za testiranje cine test skup.Test skup treba da bude disjunktan sa trening skupom.

Cesto se prilikom konstrukcije sistema koji ukljucuje ucenje raspolaze ogranicenomkolicinom podataka koja se mora upotrebiti u obe svrhe. Jedan od standard-nih nacina je da se jedna trecina ili neki blizak procenat izdvoji unapred zatestiranje, a da se trening vrsi na ostatku. Takva podela je bila koriscena iu primeru prepoznavanja racunarskih clanaka. Obicno se ova podela vrsislucajnim izborom skupa za testiranje.

10.6 Dizajn sistema koji uci

Zahvaljujuci svom brzom razvoju oblast masinskog ucenja se znacajno 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 prethod-nim poglavljima i sad cemo ih sumirati:

• Formulacija problema ucenja:

– Nadgledano ili nenadgledano ucenje

• Zapis primera

• Uocavanje ciljne funkcije

• Izbor prostora hipoteza

• Izbor algoritma

• Izbor mera kvaliteta ucenja

Sada je moguce sumirati kako su dati aspekti dizajna bili izabrani u slucajuprepoznavanja racunarskih clanaka.

Page 169: Vestacka-inteligencija

10.6 Dizajn sistema koji uci 169

Primer 10.1

• 3000 clanaka je razvrstano u dve unapred fiksirane kategorije (racunarski i os-tali), tako da je zadatak ucenja bio formulisan kao zadatak nadgledanog ucenja.

• Svaki clanak je pretstavljen vektorom frekvencija reci iz nekog recnika racunarsketerminologije. Kako bi se smanjila velicina zapisa, uzete su u obzir samo one recikoje se javljaju bar u jednom clanku.

• Ciljna funkcija f pridruzuje 1 racunarskim clancima, a -1 ostalim.

• Prostor hipoteza odgovara skupu svih hiperravni u odgovarajucem prostoru.Hipoteze su funkcije koje pridruzuju 1 tackama sa jedne strane hiperravni, a-1 tackama sa druge strane. Hipoteze se biraju izborom vrednosti koeficijenatawi.

• Algoritam ucenja je bio gradijentni spust za minimizaciju odstupanja izmeduvrednosti ciljne funkcije i hipoteze na datim primerima.

• Za meru kvaliteta ucenja uzet je udeo tacno klasifikovanih clanaka.

U daljem tekstu bice opisana dva najcesca zadatka masinskog ucenja —klasifikacija i regresija. Za oba metoda bice izlozene i neke metode masinskogucenja kojima se ti zadaci cesto resavaju. Takode, uz izlaganje metoda masinskogucenja, bice diskutovani i razni bitni koncepti masinskog ucenja.

Page 170: Vestacka-inteligencija

170 10 Uvod

Page 171: Vestacka-inteligencija

Glava 11

Klasifikacija

Problem klasifikacije je problem razvrstavanja nepoznate instance u jednu odunapred ponudenih kategorija — klasa. Neki od primera klasifikacije su razvrsta-vanje bankovnih transakcija u rizicne koje mogu predstavljati prevaru i ner-izicne koje predstavljaju uobicajene transakcije, odredivanje autorstva tekstovapri cemu se tekstu nepoznatog autora pridruzuje jedan od nekoliko unapredponudenih 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 videti kao aproksimacija ciljne funkcije koja svakoj instanci dodeljuje oz-naku klase kojoj ta instanca pripada. Kljucno zapazanje je da je ciljna funkcijau ovom problemu diskretna. Pri tom, u opstem slucaju, oznakama klasa sene mogu smisleno dodeliti numericke vrednosti niti uredenje. Dakle, atributklase, ciju je vrednost potrebno odrediti, je kategoricki atribut.

Postoji veliki broj metoda kojima se ovaj problem resava. Neke od njih sumetode zasnovane na instancama (eng. instance based classification), ucenjestabla odlucivanja (eng. decision tree induction), metoda potpornih vektora(eng. support vector machines) i metode bajesovske klasifikacije zasnovane naverovatnoci (eng. bayesian classification). U daljem tekstu opisacemo prve dvepomenute metode.

11.1 Metode klasifikacije zasnovane na instancama

Osnovna karakteristika metoda zasnovanih na instancama je da ne grade ek-splicitan 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 mod-ela, 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.

Page 172: Vestacka-inteligencija

172 11 Klasifikacija

11.1.1 Metoda n-najblizih suseda

Metoda n-najblizih suseda (eng. n-nearest neighbours) se zasniva na vrlo jed-nostavnom principu — nepoznatu instancu treba klasifikovati u klasu cije suinstance najslicnije nepoznatoj. Koncept slicnosti se najjednostavnije formal-izuje preko funkcija rastojanja.

Definicija 11.1 Neka je X skup instanci. Funkcija d : X × X → R predstavljarastojanje na skupu X ukoliko zadovoljava sledece uslove:

1. d(x, y) ≥ 0, pri tom d(x, y) = 0⇔ x = y (pozitivna definitnost)

2. d(x, y) = d(y, x) (simetricnost)

3. d(x, z) ≤ d(x, y) + d(y, z) (nejednakost trougla)

Primer 11.1 Neki primeri rastojanja su:

• d(x, y) = n√∑

i(xi − yi)n

• d(x, y) = cos((x, y)) = x·y√x·x√y·y

• d(x, y) ={

0, x = y1, x 6= y

Intuitivno, sto je rastojanje izmedu dva objekta vece, to je slicnost izmedunjih manja i obrnuto. Naravno, posto je moguce birati razlicite funkcije rasto-janja, pretpostavka je da izabrana funkcija rastojanja, u smislu relevantnom zaposmatrani 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 n-najblizih suseda za n = 1.U opstem slucaju metoda n-najblizih suseda se sastoji u nalazenju n instancikoje su najblize nepoznatoj instanci i njenom klasifikovanju u klasu ciji se ele-menti cesce javljaju medu pronadenih n najblizih suseda. Formalnije, ako sa Coznacimo skup mogucih klasa, sa f ciljnu funkciju, a sa x nepoznatu instancu,klasa koju metoda n-najblizih suseda dodeljuje nepoznatoj instanci data je izra-zom

arg maxc∈C

∑i∈NS(n,x)

δ(c, f(i))

gde je arg max funkcija koja vraca vrednost iz datog skupa za koju se dostizemaksimum izraza koji je njen argument, NS(n, x) skup n instanci iz treningskupa koje su najblize instanci x, a δ(x, y) je 1 ako je x = y, a 0 inace.

Kako bi se izbegla mogucnost izjednacenog ishoda, pozeljno je da n budeneparan broj.

Analizirajmo detaljnije metodu n-najblizih suseda. Posmatrajmo nepoz-nate instance A i B prikazane na slici 11.6. Metodom n-najblizih suseda uzkoriscenje euklidskog rastojanja instanca A biva klasifikovana u crvenu klasuza sve vrednosti n od 1 do 5. Klasifikacija instance A je postojana zato sto seona nalazi blizu crvenih instanci, a udaljeno od plavih instanci. S druge strane,klasa instance B moze da varira u zavisnosti od broja n. Za n = 1 instanca Bse klasifikuje u crvenu klasu. Za n = 2 ne moze se odluciti. Za n = 3 instanca

Page 173: Vestacka-inteligencija

11.1 Metode klasifikacije zasnovane na instancama 173

0

A

B

Figure 11.1: Stabilnost klasifikacije pomocu algoritma n-najblizih suseda

B se klasifikuje u plavu klasu. Za n = 4 ponovo nije moguce odluciti, a zan = 5, ona se ponovo klasifikuje u crvenu klasu. Klasifikacija instance B nijepostojana jer se ona nalazi blizu instanci iz obe klase. Znaci, metoda n-najblizihsuseda je postojana u unutrasnjosti oblasti koju zauzimaju instance jedne klase,ali je nepostojana na obodu te oblasti. Ovo ponasanje bi se moglo uociti i koddrugih metoda klasifikacije.

Pored toga sto se nepostojanost klasifikacije moze demonstrirati menjanjemparametra n, ona se takode moze analizirati i za fiksiranu vrednost parametran. Moze se primetiti da je za manje vrednosti parametra n nepostojanost privariranju vrednosti atributa instance veca nego za vece vrednosti parametra n.

Odredivanje vrednosti parametra n koja je pogodna za upotrebu se vrsi em-pirijski — evaluacijom uspesnosti klasifikacije za razlicite vrednosti parametran. Bira se vrednost n za koju je klasifikacija bila najuspesnija. Mere i metodepomocu kojih se vrsi evaluacija uspesnosti klasifikacije bice izlozene kasnije uovom poglavlju.

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 unjenoj blizini. Ovo svojstvo doprinosi fleksibilnosti modela koje ovemetode (implicitno) grade.

11.1.2 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. Tocesto podrazumeva i odredeni gubitak informacije. U slucaju problema klasi-fikacije tekstova, proteinskih sekvenci i slicnih podataka cesto se u svrhu pred-stavljanja podataka u numerickom obliku koriste n-gramski profili [?].

Ako je data niska S = s1s2 . . . sN nad azbukom Σ, gde je N pozitivan ceo

Page 174: Vestacka-inteligencija

174 11 Klasifikacija

broj, n-gram niske S, za n ≥ N , je bilo koja podniska susednih simbolja duzinen. 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 bi bili: sad,ad_, d_i, _il, ili, li_, i_n, _ni, nik, ika, kad, itd.

N-gramski profil niske je lista uredenh parova (n-gram, frekvencija) gde jefrekvencija izracunata u odnosu na sve n-grame niske. Ovakvi profili pred-stavljaju reprezentaciju pogodnu za metode klasifikacije i cesto se koriste za-jedno sa metodom n-najblizih suseda.

Osnovne prednosti koriscenja n-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 n-grama u odnosu na duzinu n-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.2 U ovom primeru razmotricemo klasifikaciju tekstova prema jeziku. Srp-ski i engleski jezik bice predstavljenim po jednim kracim tekstom oznacenim sa S1 iE1. Posto se izracunaju frekvencije n-grama za ta dva teksta, njihovi n-gramski pro-fili cine trening skup. Test skup ce biti dobijen na osnovu cetiri kratka teksta od kojihsu dva na srpskom oznacena sa S2 i S3, a dva na engleskom jeziku oznacena sa E2 iE3. Klasifikacija ce biti izvrsena pomocu algoritma 1-najblizih suseda. U tekstovimana srpskom jeziku nisu koriscena srpska slova kako bi se izbegla laka identifikacija naosnovu pisma.

S1: U prethodnom delu prikazani su teorijski okviri i algoritmi pomocu kojih jemoguce sprovoditi logicko zakljucivanje. Iako zakljucci moraju nuzno slediti iz zadatihpretpostavki, proces njihovog dokazaivanja nije pravolinijski vec ukljucuje odredeneodluke o pravcu u kome ce se postupak sprovoditi. Drugim recima, uocljivo je tra-ganje za dokazom nekog tvrdenja. Primera radi, u primeni procedure DPLL moguce jeuociti i korake zakljucivanja i korake pretrage. Kada se uoci jedinicna klauza u nekojformuli, njeno zadovoljenje je nuzno i predstavlja korak zakljucivanja. S druge stranekada je nemoguce direktno zakljucivanje, potrebno je pretpostaviti vrednost iskaznepromenljive. U daljem toku dokazivanja, ta akcija ce se pokazati kao opravdana ili neo-pravdana. U slucaju da se pokaze kao neopravdana, preduzima se alternativna akcija.Znaci, situacija u kojoj nije moguce izvrsiti direktno zakljucivanje zahteva primenupretrage.

Manje apstraktan primer je upravljanje robotskom rukom. Pretpostavimo da robot-ska ruka ima nekoliko mehanickih zglobova cije se kretanje kontrolise elektricnim im-pulsima. Pri tom, neki zglobovi omogucavaju rotacije samo oko jedne ose (kao ljudskilakat ili zglobovi na pristima), a drugi rotaciju oko veceg broja osa (kao ljudsko rame ilizglobovi u korenu prstiju). Pokret hvatanja case ovakvom robotskom rukom je netrivi-jalan zadatak, ali se moze razbiti na sekvencu atomicnih koraka — pokreta pojedinacnihzglobova oko razlicitih osa za odreden ugao. Mozemo zamisliti da se ovi koraci izvr-savaju strogo jedan po jedan u kom bi slucaju kretanje ruke bilo znacajno razlicito odljudskog i sporo, ali bi problem bio laksi jer ne bi bila potrebna sinhronizacija razlicitihzglobova i svaki bi se pojedinacno dovodio u zeljeni polozaj. Druga mogucnost je da sekretanja zglobova izvode simultano, kao kod coveka, pri tom povecavajuci broj mogucihkombinacija u svakom trenutku.

Page 175: Vestacka-inteligencija

11.1 Metode klasifikacije zasnovane na instancama 175

Dati primeri motivisu razmisljanje o pretrazi kao o nalazenju niza akcija kojimase ostvaruje cilj kada to ne moze biti ostvareno pojedinacnim akcijama. Iako u opstemslucaju ovakva definicija ne mora delovati adekvatno, u kontekstu vestacke inteligencijeu kome obicno pretpostavljamo postojanje nekog entiteta koji deluje preduzimanjemnekih akcija (agenta), ona je prirodna.

E1: There are two paths to achieving an AGI, says Peter Voss, a software developerand founder of the firm Adaptive A.I. Inc. One way, he says, is to continue developingnarrow AI, and the systems will become generally competent. It will become obvioushow to do that. When that will happen or how it will come about, whether throughsimbots or some DARPA challenge or something, I dont know. It would be a combi-nation of those kinds of things. The other approach is to specifically engineer a systemthat can learn and think. Thats the approach that [my firm] is taking. AbsolutelyI think thats possible, and I think its closer than most people think five to 10 years,tops. The two approaches outlined by Vosseither tinkering with mundane programs tomake them more capable and effective or designing a single comprehensive AGI systemspeak to the 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: Creatingthe Conscience of the Machine (Prometheus Books, 2007), reduces this dichotomy to ascientific approach vs. an engineering mind-set. The neats are after a single, elegantsolution to the answer of human intelligence, Hall says. Theyre trying to explain thehuman mind by turning it into a math problem. The scruffies just want to build some-thing, write narrow AI codes, make little machines, little advancements, use whateveris available, and hammer away until something happens. The neat approach descendsfrom computer science in its purest form, particularly the war game studies of VonNeumann and his colleagues in the 1930s and 1940s. The 1997 defeat of world chesschampion Garry Kasparov by IBMs Deep Blue computer is considered by many theseminal neat success. Up until that moment, the mainstream scientific communitygenerally accepted the premise that AIs could be written to perform specific tasks rea-sonably well, but largely resisted the notion of superhuman computing ability. DeepBlue proved that an AI entity could outperform a human at a supposedly human task,perceiving a chess board (Deep Blue could see 200 million board positions per second)and plotting a strategy (74 moves ahead as opposed to 10, the human record).

S2: Precizni postupci za resavanje matematickih problema postojali su u vreme staro-grckih matematicara (npr. Euklidov algoritam za odredivanje najveceg zajednickogdelioca dva broja), a i pre toga. Ipak, sve do pocetka dvadesetog veka nije se uvidalapotreba za preciznim definisanjem pojma algoritma. Tada je, u jeku reforme i novogutemeljivanja matematike, postavljeno pitanje da li postoji algoritam kojim se (pojed-nostavljeno receno) mogu dokazati sve matematicke teoreme. Da bi se ovaj problemuopste razmatrao, bilo je neophodno najpre definisati (matematicki precizno) sta je toprecizan postupak, odnosno sta je to algoritam.

S3: Dositej Obradovic (svetovno ime Dimitrije) (Cakovo, 1744 — Beograd, 1811) jebio srpski prosvetitelj i reformator revolucionarnog perioda nacionalnog budjenja i pre-poroda. Rodjen je u rumunskom delu Banata tadasnje Austrije. Skolovao se za kalud-jera, ali je napustio taj poziv i krenuo na putovanja po celoj Evropi, gde je primio idejeevropskog prosvetiteljstva i racionalizma. Ponesen takvim idejama radio je na prosve-civanju svog naroda, prevodio je razna dela medju kojima su najpoznatije Ezopove

Page 176: Vestacka-inteligencija

176 11 Klasifikacija

basne, a potom je i sam pisao dela, prvenstveno programskog tipa, medju kojima je na-jpoznatije ”Zivot i prikljucenija”. Dositej je bio prvi popecitelj (ministar) prosvete uSovjetu i tvorac svecane pesme ”Vostani Serbie”. Njegovi ostaci pocivaju u Beogradu,na ulazu u Sabornu crkvu.

E2: The planet Mars, I scarcely need remind the reader, revolves about the sun at amean distance of 140,000,000 miles, and the light and heat it receives from the sun isbarely half of that received by this world. It must be, if the nebular hypothesis has anytruth, older than our world; and long before this earth ceased to be molten, life uponits surface must have begun its course. The fact that it is scarcely one seventh of thevolume of the earth must have accelerated its cooling to the temperature at which lifecould begin. It has air and water and all that is necessary for the support of animatedexistence.

E3: Principia Mathematica, the landmark work in formal logic written by AlfredNorth Whitehead and Bertrand Russell, was first published in three volumes in 1910,1912 and 1913. Written as a defense of logicism (the view that mathematics is insome significant sense reducible to logic) the book was instrumental in developing andpopularizing modern mathematical logic. It also served as a major impetus for researchin the foundations of mathematics throughout the twentieth century. Along with theOrganon written by Aristotle and the Grundgesetze der Arithmetik written by GottlobFrege, it remains one of the most influential books on logic ever written.

Prilikom izdvajanja n-grama koriscena je vrednost n = 3. Pri tom je iz tekstovaS1 i E1 izdvojeno po 10 najfrekventnijih n-grama. Oni ce ciniti atribute instanci naosnovu kojih ce biti vrseno treniranje i testiranje. Trening i test skup su dati u tabeli11.1.

Prilikom klasifikacije bice korisceno Euklidsko rastojanje

d(x, y) =

√√√√ n∑i=1

(xi − yi)2

Potrebno je ispitati rastojanja od instanci test skupa do instanci trening skupa.

d(S2, S1) = 0.0124d(S2, E1) = 0.0417

d(S3, S1) = 0.0133d(S3, E1) = 0.0450

d(E2, S1) = 0.0482d(E2, E1) = 0.0149

d(E3, S1) = 0.0397d(E3, E1) = 0.0141

Posto je rastojanje od instance S2 do S1 manje nego od S2 do E1, zakljucuje seda je S1 najblizi sused instance S2. Zbog toga se instanca S2 prepoznaje kao tekst nasprskom jeziku. Slicno se ispravno zakljucuje i da je S3 tekst na srpskom, E2 tekst na

Page 177: Vestacka-inteligencija

11.2 Ucenje stabala odlucivanja 177

N-gram Trening skup Test skupS1 E1 S2 S3 E2 E3

JE 0.0129 0 0.0131 0.0201 0 0PR 0.0125 0.0023 0.0098 0.0148 0 0

ANJ 0.0076 0 0.0082 0.0027 0 0KO 0.0076 0 0.0016 0.0027 0 0

JA 0.0076 0 0.0033 0.0040 0 0JE 0.0067 0 0.0082 0.0121 0 0PO 0.0067 0.0009 0.0147 0.0080 0 0.0016SE 0.0062 0.0018 0.0049 0.0027 0.0016 0.0032

NJE 0.0058 0 0.0065 0.0027 0 0U 0.0058 0 0.0033 0.0067 0 0TH 0 0.0212 0 0 0.0270 0.0175

THE 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.0048CO 0.0004 0.0074 0 0 0.0051 0

ER 0.0009 0.0069 0 0 0.0051 0.0032ND 0 0.0065 0 0 0.0101 0.0079TO 0.0018 0.0065 0.0049 0 0.0034 0.0016

TO 0.0009 0.0065 0.0033 0 0.0034 0.0016

Table 11.1: Trening i test skup za klasifikaciju tekstova prema jeziku. Za svaki3-gram prikazana je njegova frekvencija u tekstu S1 i E1.

engleskom i E3 takode, tekst na engleskom jeziku. Posebno je zanimljivo da tekstovi S3i E2 po svom sadrzaju nemaju dodira sa instancama za trening S1 i E1 sto ne ometapostupak klasifikacije.

11.2 Ucenje stabala odlucivanja

Razmotrimo igru 20 pitanja. Jedan igrac zamislja neki predmet, a drugi trebada pogodi o kom je predmetu rec. Kako bi pogodio o kom predmetu se radiigrac koji pogada ima pravo da postavi 20 pitanja na koje odgovor moze bitida ili ne. Kada misli da je postavio dovoljno pitanja, igrac moze dati svoj sudo kom predmetu se radi i igra se zavrsava. Ocito, proces ispitivanja se mozepredstaviti u vidu stabla koje u svakom cvoru ima po jedno pitanje, osim ulistovima 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. Ovakvastabla se mogu automatski nauciti iz primera koji za svaku instancu ukljucujuvrednosti njenih atributa i vrednost ciljne funkcije za tu instancu.

Ucenje stabala odlucivanja je metod aproksimacije diskretnih ciljnih funkcija

Page 178: Vestacka-inteligencija

178 11 Klasifikacija

u kome se naucena funkcija predstavlja u vidu stabla. Slicno igri 20 pitanja,svakom cvoru stabla odgovara test nekog atributa instance, a grane koje izlazeiz cvora razlicitim vrednostima tog atributa. Listovima odgovaraju vrednosticiljne funkcije. Instance su opisane vrednostima svojih atributa. Klasifikuju sepolazeci od korena, spustajuci se niz granu koja odgovara vrednosti testiranogatributa instance koju klasifikujemo. Klasa se dodeljuje instanci kad se dodedo lista.

Ucenje stabala odlucivanja je vec primenjeno u razlicitim problemima. Jedanprimer se odnosi na predvidanje buduce potraznje za knjigama u bibliotekama,na osnovu nekih njihovih atributa (npr. jezik, datum objavljivanja, datumposlednjeg iznajmljivanja itd.). Knjige za koje se predvida da nece biti skorotrazene se mogu smestiti u magacin. Istrazivanje je radeno u biblioteci uni-verziteta 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 razlikovanjazvezda i tragova kosmickih zraka na snimcima teleskopa Habl. Na osnovu 20numerickih karakteristika, sa stablima dubine do 9 cvorova, postignuta je pre-ciznost klasifikacije od 95%. Takode postoje primene i u ekonomiji i drugimoblastima.

Koriscenje stabla odlucivanja nije podjednako pogodno za sve problemeucenja. Potrebno je da se instance predstavljaju pomocu vrednosti fiksnogbroja atributa. Skup vrednosti bi trebalo da bude diskretan i mali, mada sena kontinualne atribute moze primeniti diskretizacija tako sto bi se skup pode-lio u podintervale. Svakom podintervalu se pridruzuje oznaka koja zamenjujevrednosti atributa iz tog intervala u zapisima instanci. Stabla odlucivanja sepokazuju posebno primenljiva u slucaju kada je neophodno predstavljanje dis-junkcija uslova, kada podaci za trening sadrze greske i kada u trening skupupostoje instance kojima nedostaju vrednosti nekih atributa.

Ukoliko stablo odlucivanja instanci dodeljuje neku klasu, to znaci da in-stanca ispunjava sve uslove koji su definisani putanjom od korena do odgo-varajuceg lista kroz stablo i oblika su atribut=vrednost. Stoga putanje kroz sta-blo predstavljaju konjunkcije ovakvih uslova. Za svaku klasu moguce je uocitiputanje 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 [?]na koji cemo se skoncentrisati. Ovaj algoritam konstruise stablo od korena,nanize, pitajuci se u svakom cvoru koji je najbolji atribut koji se u datom cvorumoze testirati. Ovo se odreduje statistickim kriterijumom koji meri kolikodobro neki atribut sam klasifikuje podatke. Atribut ne moze biti dva putakoriscen u jednoj putanji od korena do lista. Za sve vrednosti odabranog atributakreiraju se grane do cvorova naslednika, a podaci za treniranje se dele izmeduovih cvorova tako da svaki od njih nasleduje primere koji imaju odgovarajucuvrednost prethodno testiranog atributa. Za svaki od cvorova naslednika ovajpostupak se rekurzivno primenjuje sve dok nije ispunjen bar jedan od sledecadva 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 istuvrednost ciljnog atributa. Svakom listu se pridruzuje najcesca oznaka instanciza trening koje su mu pridruzene. Algoritam je preciznije dat na slici 11.2.

Page 179: Vestacka-inteligencija

11.2 Ucenje stabala odlucivanja 179

Algoritam: ID3(Primeri, Atributi)

Ulaz: Primeri je skup instanci za trening, a Atributi je lista atributa kojise mogu testirati u cvorovima stabla.Izlaz: Stablo odlucivanja koje odgovara datim instancama

1. Napraviti koreni cvor stabla R.

2. Ako sve instance iz Primeri pripadaju istoj klasi, vratiti cvor R saoznakom te klase.

3. Ako je Atributi prazna lista, vrati cvor R oznacen oznakom najcesceklase koja se javlja u Primeri.

4. U suprotnom

– Neka je A ∈ Atributi najbolji* atribut za testiranje u odnosu naPrimeri

– Neka je A atribut koji se testira u R

– Za svaku mogucu vrednost vi atributa A

∗ Dodaj granu iz R koja odgovara testu A = vi

∗ Neka je Primerivi podskup od Primeri takav da svi nje-govi elementi imaju vrednost vi atributa A

∗ Ako je Primerivi prazan, onda na dodatu granu iz R dodatilist sa oznakom najcesce klase u Primeri

∗ U suprotnom na dodatu granu nadovezati podstabloID3(Primerivi ,Atributi \ {A})

3. Vratiti R.

* Atribut je najbolji prema nekom statistickom kriterijumu.

Figure 11.2: Algoritam ID3

Bitno je pitanje statistickog kriterijuma koji ce biti koriscen za izbor najbol-jeg 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 razlku entropije u odnosu na ciljniatribut skupa instanci za trening S pre deljenja i prosecne entropije posle del-jenja prema nekom atributu A. Entropija predstavlja meru neuredenosti nekogsistema. Ako sa pi oznacimo verovatnocu da instanca pripada i-toj kasi, ondase entropija moze definisati sledecim izrazom:

Entropija(S) = −c∑i=1

pi log2pi

Po definiciji vazi 0 · log2 0 = 0. Entropija se moze interpretirati i kao mini-malni ocekivani broj bitova potrebnih za kodiranje klasifikacije proizvoljne in-stance iz S. Primera radi, neka je potrebno poslati informaciju o klasi instanceudaljenom primaocu. Neka je broj klasa c i neka je p0 = 1 (tada je pi = 0

Page 180: Vestacka-inteligencija

180 11 Klasifikacija

za 1 ≤ i ≤ c). U tom slucaju je sigurno da ce instanca imati klasifikaciju 0i nije potrebno nikakvo kodiranje informacije. U slucaju da je pi = 1/c za0 ≤ i ≤ c, svi ishodi su jednako verovatni i za kodiranje je potrebno iskoristitilog2c bitova. U slucaju raspodele koja nije uniformna, dodeljujuci krace kodoveklasama koje se cesce javljaju, a duze onima koje se rede javljaju, moze se do-biti manja prosecna duzina kodiranja. Dobitak informacije stoga poredstavljasmanjenje u potrebnom broju bitova za kodiranje klase proizvoljne instance,kada je poznata vrednost koju na njoj ima atribut A. Dobitak informacije seformalno definise na sledeci nacin:

Dobitak(S,A) = Entropija(S)−∑

v∈V red(A)

|Sv||S|

Entropija(Sv) (11.1)

gde je c broj klasa, odnosno vrednosti ciljnog atributa, pi udeo elemenata skupaS koji pripadaju klasi i u celom skupu S, V red(A) predstavlja skup svih mogucihvrednosti atributa A, a Sv = {s ∈ S|A(s) = v}.

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 pi verovatnoca da instanca pri-pada i-toj klasi, greska klasifikacije se definise izrazom

Err(S) = 1−maxipi

Za ovu meru se moze definisati dobitak analogan opisanom dobitku informa-cije ukoliko se u izrazu 11.1 entropija zameni greskom klasifikacije.

Primer 11.3 U tabeli 11.2 su date instance koje opisuju razlicite zivotinje, sa datomklasifikacijom koja oznacava da li je zivotinja opasna po coveka. Izdvojili smo neko-liko karakteristika koje bi mogle biti relevantne u odredivanju ciljne funkcije, ali smonamerno dodali dva atributa koji nisu relevantni — broj nogu i parnost prosecne visineu okviru vrste, izrazene u centimetrima.

Zivotinja Velicina Ishrana Otrovnost Broj nogu Parnost visine OpasnaLav Velika Meso Neotrovna 4 Neparna Da

Macka Mala Meso Neotrovna 4 Neparna NeKoza Mala Biljke Neotrovna 4 Parna NeZec Mala Biljke Neotrovna 4 Neparna Ne

Komodo zmaj Velika Meso Otrovna 4 Neparna Da

Table 11.2: Skup primera za trening

Da bi se izgradilo stablo odlucivanja, za svaki od atributa je potrebno izracunatidobitak informacije pri deljenju skupa podataka prema tom atributu. U prvom koraku,vazi:

Entropija(S) = −25

log2

25− 3

5log2

35

= 0.971

Ukoliko se izvrsi podela instanci po vrednosti prvog atributa, dobijamo

Entropija(S|Mala) = −1 · log2 1− 0 · log2 0 = 0

Page 181: Vestacka-inteligencija

11.2 Ucenje stabala odlucivanja 181

Entropija(S|V elika) = −0 · log2 0− 1 · log2 1 = 0

Dobitak(S, V elicina) = 0.971− 25· 0− 3

5· 0 = 0.971

Slicno se dobija:

Dobitak(S, Ishrana) = 0.42

Dobitak(S,Otrovnost) = 0.322

Dobitak(S,Broj nogu) = 0

Dobitak(S, Parnost visine) = 0.171

Odavde se vidi da je najbolji atribut za testiranje u prvom cvoru atribut Velicina.Stablo koje se u ovom slucaju dobija primenom algoritma ID3 je dato na slici 11.3. Uslucaju datih primera za ucenje, dobijeno stablo je bilo ocigledan uzbor i bez primenebilo kakve metodologije.

VELICINA

NE

mala

DA

velika

Figure 11.3: Jednostavno stablo odlucivanja

Nesto komplikovanije stablo odlucivanja moze se dobiti dodavanjem primera iztabele 11.3.

Zivotinja Velicina Ishrana Otrovnost Broj nogu Parnost visine OpasnaZmija Mala Meso Otrovna 0 Parna Da

Pcela ubica Mala Biljke Otrovna 6 Parna DaMorska krava Velika Biljke Neotrovna 0 Parna Ne

Table 11.3: Dodatni primeri za trening

Jedno rucno konstruisano stablo koje je saglasno sa podacima za trening je datona slici 11.4. Izbor loseg atributa za testiranje u korenom cvoru je namerno ucinjen.To dovodi do potrebe za ponavljanjem istih testova u levom i desnom podstablu, postoinformacija dobijena testiranjem u kornenu nije relevantna za odredivanje klase in-stance. Takode, u slucaju zivotinjske vrste sa parnom prosecnom visinom koja je otro-vna, imamo nepotreban test vezan za njenu ishranu. U oba slucaja klasa je ista, pa setaj test moze zameniti listom sa klasom DA. Upotreba ID3 algoritma daje dosta boljestablo odlucivanja.

Page 182: Vestacka-inteligencija

182 11 Klasifikacija

PARNOST VISINE

OTROVNOST

parna

OTROVNOST

neparna

VELICINA

neotrovna

ISHRANA

otrovna

ISHRANA

velika

NE

mala

NE

biljke

DA

meso

DA

biljke

DA

meso

DA

otrovna

VELICINA

neotrovna

NE

mala

ISHRANA

velika

NE

biljke

DA

meso

Figure 11.4: Rucno konstruisano stablo odlucivanja

Vrednosti entropije i dobitka informacije se sada razlikuju:

Entropija(S) = −12

log2

12− 1

2log2

12

= 1

Ukoliko se izvrsi podela instanci po vrednosti prvog atributa, dobijamo

Entropija(S|Mala) = −35

log2

35− 2

5log2

25

= 0.971

Entropija(S|V elika) = −13

log2

13− 2

3log2

23

= 0.918

Dobitak(S, V elicina) = 1− 58· 0.971− 3

8· 0.918 = 0.049

Slicno se dobija:

Dobitak(S, Ishrana) = 0.189

Dobitak(S,Otrovnost) = 0.549

Dobitak(S,Broj nogu) = 0

Dobitak(S, Parnost visine) = 0.156

Posle dodavanja novih instanci, najbolji atributi za testiranje su Otrovnost i Ishrana.Rekurzivnom primenom ovog postupka dobija se stablo na slici 11.5. Ono je ociglednomanje od rucno konstruisanog i ima relevantnije atribute pri vrhu stabla, dok se dvanebitna atributa uopste ne testiraju.

Kao i drugi metodi ucenja, ID3 se moze shvatiti kao pretraga prostora hipotezaza onom koja najbolje odgovara podacima za trening. Prostor pretrage je pot-pun prostor svih stabala odlucivanja. Svaka diskretna funkcija se moze pred-staviti nekim stablom odlucivanja, tako da se ne moze desiti da ciljna funkcija

Page 183: Vestacka-inteligencija

11.2 Ucenje stabala odlucivanja 183

OTROVNOST

VELICINA

neotrovna

DA

otrovna

NE

mala

ISHRANA

velika

NE

biljke

DA

meso

Figure 11.5: Stablo odlucivanja konstruisano pomocu ID3 algoritma

nije u prostoru hipoteza. ID3 u svakom trenutku cuva samo jednu hipotezu,pa je nemoguce znati koliko ima drugih hipoteza koje su saglasne sa podacimaza trening. Posto nema vracanja u pretrazi (backtracking), vec se stablo gradiod jednostavnijeg ka slozenijem, postoji opasnost od dostizanja lokalnih opti-muma koji nisu globalni. Jedna vrsta vracanja je odsecanje ili potkresivanje (prun-ing) stabla koje ce biti objasnjeno kasnije. Zahvaljujuci tome sto ID3 uci iz svihpodataka za trening odjednom, greske u pojedinacnim instancama ne dolazetoliko do izrazaja.

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 jeu skladu sa odavno poznatim filozofskim principom kojim se cesto vode inaucnici - Okamovom ostricom: entitete ne treba umnozavati preko potrebe,odnosno najjednostavnije objasnjenje je verovatno i najbolje. Stabla odlucivanjasa manjom dubinom imaju manji broj listova. Svakoj putanji od krena do nekogod listova odgovara po jedno pravilo oblika

IF A1 = v1 ∧ A2 = v2 ∧ ... ∧ An = vn THENKlasa = klasa koja odgovara listu

gde su Ai 0 ≤ i ≤ n tributi koji se testiraju na putanji od korena do odgo-varajuceg cvora, a vi njihove vrednosti za datu instancu. Kako stabla sa man-jom dubinom, predstaljaju manje skupove ovakvih pravila, mozemo ih sma-trati jednostavnijim.

Page 184: Vestacka-inteligencija

184 11 Klasifikacija

11.3 Mere kvaliteta i tehnike evaluacije klasifikacije

Kada se govori o trazenju modela koji najbolje aproksimira ciljnu funkciju,potrebno je dati i mere kvaliteta modela, odnosno ucenja. Mogu se koristitirazlicite mere u zavisnosti od vrste problema, ali za neke vrste problma vecpostoje neke opste prihvacene mere. U slucju problema klasifikacije se obicnokoristi preciznost, odnosno broj tacno klasifikovanih instanci podeljen ukupnimbrojem instanci. U primeru sa prepoznavanjem racunarksih clanaka, smo up-ravo koristili preciznost kao meru kvaliteta. Ako je n ukupan broj clanaka i akosa r oznacimo broj racunarskih clanaka koji su klasifikovani kao racunarskiclanci i sa o broj ostalih clanaka koji su klasifikovani kao da nisu racunarski,tada je preciznost u tom primeru

p =r + o

nU nekim slucajevima preciznost nije adekvatna mera. Ukoliko postoje dve

klase 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 testovimakoji ustanovljavaju da li je pacijent oboleo od neke bolesti. Neka bolest imasamo 1% ljudi u populaciji. Test koji bi uvek prijavljivao da pacijent nemabolest bi imao preciznost od 99%, ali je neupotrebljiv. Stoga je u takvim slucajevimabitna mera osetljivost klasifikatora, odnosno njegova mogucnost da primeti in-stance koje se traze (npr. bolesne pacijente). Opstije, neka su date dve klaseC+ i C− koje smatramo pozitivnim i negativnim primerima neke kategorije.Na primer pacijenti koji imaju i pacijenti koji nemaju neku bolest. Tada podstvarno pozitivnim instancama podrazumevamo pozitivne instance kojie suprepoznate kao pozitivne. Pod stvarno negatinvim, instance koje su negativnei prepoznate kao negativne. Pod lazno pozitivnim podrzaumevamo instancekoje su negativne, ali su greskom u klasifikaciji proglasene pozitivnim i podlazno negativnim podrazumevamo instance koje su pozitivne, ali su greskomklasifikovane kao negativne. Brojeve ovih instanci oznacavamo redom SP ,SN , LP i LN . Ove brojeve obicno zapisujemo u takozvanoj matrici konfuz-ije koja po vrstama prikazuje kako su instance klasifikovane, a po kolonamaprikazuje koje su stvarne klase instanci. Ova matrica je prikazana tabelom 11.4.

P NKP SP LNKN LP SN

Table 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).

Kada su poznati ovi brojevi, udeo stvarno pozitivnih instanci, odnosno os-etljivost je definisana kao:

USP =SP

SP + LN

odnosno broj stvarno pozitivnih podeljen brojem svih pozitivnih (i onih koji suklasifikovani kao pozitivni i onih koji su greskom klasifikovani kao negativni).

Page 185: Vestacka-inteligencija

11.3 Mere kvaliteta i tehnike evaluacije klasifikacije 185

Udeo stvarno negativnih se analogno definise

USN =SN

SN + LP

Udeo lazno pozitivnih i lazno negativnih se definisu slicno:

ULP =LP

LP + SNULN =

LN

LN + SP

Preciznost se moze izracunati kao

Prec =SP + SN

SP + LP + SN + LN

Primer 11.4 Neka je testirano 400 ispitanika. Od toga 4 imaju bolest zbog koje setestiraju, a ostali ne. Neka je test dao pozitivnu klasifikaciju u slucaju 2 osobe koje obeimaju bolest. Matrica konfuzije data je tabelom 11.4

P NKP 2 0KN 2 396

Table 11.5: Matrica konfuzije vezana za klasifikaciju obolelih.

Odavde se mogu izracunati mere kvaliteta:

Prec =398400

= 0.995

USP =24

= 0.5

USN =396396

= 1

ULP =0

396= 0

ULN =24

= 0.5

Preciznost je izuzetno visoka i sugerise odlicno ponasanje klasifikatora. S drugestrane poznavanje udela stvarno pozitivnih otkriva da je ovaj utisak lazan zato sto jeidentifikovan mali broj elemenata pozitivne klase.

Pored izbora mere za evaluaciju klasifikacije bitno je izabrati i nacin na kojise ta mera ocenjuje. Cesta praksa je da se model trenira na jednom skupu po-dataka, a da se evaluira na odvojenom skupu podataka za testiranje. Pri tomese podela raspolozivih podataka na podatke za trening i podatke za testiranjevrsi slucajnim izborom podataka za testiranje. Medutim, ovakav nacin evalu-acije moze dovesti do znacajnih oscilacija u vrednostima mera kvaliteta u zav-isnosti od toga koji je podskup izabran. Pouzdaniji nacin evaluacije naucenogznanja je takozvana unakrsna validacija. Ceo skup podataka kojim se raspolazese deli na n priblizno jednakih podskupova. Jedan podskup se izdvaja i treningse vrsi na ostalih n − 1 podskupova. Posle treninga, kvalitet naucenog znanja

Page 186: Vestacka-inteligencija

186 11 Klasifikacija

se ocenjuje na izdvojenom podskupu. Ovaj posupak se ponavlja za sve ostaleizdvojene podskupove i kao finalna ocena kvaliteta se uzima prosek dobijenihocena za svaki od podskupova. Za vrednost n se obicno uzima broj 10. Ovakavpostupak daje stabilniju ocenu kvaliteta. Pored toga, prednost ovog metoda jeda se u svakom od n koraka unakrsne validacije koristi velika kolicina po-dataka pri treniranju, a da sve raspolozive instance u jednom trenutku buduiskoriscene za testiranje.

11.4 Preterano prilagodavanje modela podacima zatrening

Vrlo znacajna tema pri evaluaciji naucenog modela je mogucnost da se pri-likom treninga model previse prilagodi specificnostima podataka za trening ida zbog toga daje lose rezultate kada se primeni na drugim podacima. Naime,podaci za trening mogu imati odredene karakteristike kao plod ciste slucajnosti,odnosno suma, ali takode mogu predstavljati i pristrasan uzorak celog skupapodataka. U praksi, podatke je cesto tesko sakupiti i obicno se mora raditi sapodacima koji su raspolozivi bez obzira na njihove manjkavosti. Stoga, iakoje potrebno da se postigne visok nivo preciznosti prilikom treniranja modela,takode je potrebno paziti da ne dode do preteranog prilagodavanja podacima.

Osnovni razlog zbog koga dolazi do preteranog prilagodavanja podacimaje bogatstvo prostora hipoteza, odnosno skupa dopustivih modela. U bogati-jem skupu je lakse naci model koji dobro odgovara podacima. Primera radi,ukoliko se pri ucenju dopustaju samo stabla dubine 1, koja testiraju samo jedanatribut svake instance, jasno je da takva stabla ne mogu lako postici visokupreciznost klasifikacije. Ona predstavljaju previse grube modele koji ne moguda opisu znacajne zakonitosti u podacima. S druge strane, ukoliko se dozvolikoriscenje stabala proizvoljne dubine, ukoliko je potrebno, moguce je naci sta-blo koje je u stanju da razlikuje bilo koje dve instance, odnosno da postignesavrsenu preciznost na podacima za treniranje. Medutim, stabla koja su vrloduboka i precizno opisuju svaku i najnebitniju specificnost podataka za tren-ing, se u praksi pokazuju nepouzdanim, posto siri skupovi podataka ne morajuuvek imati sve specificnosti skupa podataka za trening.

Ovde se uocava znacaj ranije pomenutog koncepta apstrakcije. Adekvatnahipoteza bi trebalo da apstrahuje, odnosno zanemari, takve specificnosti. Uprimeru prepoznavanja racunarksih clanaka mogli smo izostaviti ogranicenjeda se reci moraju nalaziti u nekom recniku racunarske terminologije. U tomslucaju, ukoliko bi se koristile stranice koje pise mala skupina autora, moguceje da bi se njihova imena mogla pokazati kao visokofrekventne reci karakter-isticne za racunarske clanke, sto bi bio vrlo los kriterijum prepoznavanja cimbi se pojavili racunarski clanci koje pisu drugi autori.

U vezi sa prethodnim razmatranjem treba primetiti dve zakonitosti. Sapovecanjem dozvoljene dubine stabla, povecava se moc ucenja, odnosno verovatnocada ce u skupu dopustivih modela biti naden onaj koji dobro opisuje podatke.Zato se sa povecanjem dozvoljene dubine stabala, smanjuje greska klasifikacije.Dalje, ukoliko stablo dubine, na primer, 1 ima visoku preciznost, to znaci da jeu podacima nadena jaka i vrlo jednostavna zakonitost. Stoga je za ocekivati daona postoji i u sirem skupu podataka, odnosno ocekivano odstupanje greske na

Page 187: Vestacka-inteligencija

11.4 Preterano prilagodavanje modela podacima za trening 187

Figure 11.6: Greska klasifikacije u zavisnosti od bogatsktva skupa dopustivihmodela.

sirem skupu podataka od greske koja se primecuje na trening skupu bi trebaloda bude malo. S druge strane, ukoliko je stablo visoke preciznosti vrlo duboko,to znaci da je uocena zakonitost u podacima vrlo kompleksne prirode i stogamoze biti specificna samo za podatke u trening skupu. Odnosno, ocekivanoodstupanje greske na sirem skupu podataka od greske na trening skupu mozebiti veliko. Na slici 11.6 prikazane su tri krive. Jedna, opadajuca, predstavljaponasanje greske klasifikacije na trening skupu u zavisnosti od dozvoljene du-bine stabla. Druga, rastuca, predstavlja ponasanje odstupanja greske na siremskupu podataka od greske na trening podacima u zavisnosti od dozvoljene du-bine stabla. Treca predstavlja gornju granicu greske klasifikacije u zavisnostiod dozvoljene dubine stabla i ona je zbir prethodne dve. Ocigledno, i pre-male i prevelike vrednosti za dozvoljenu dubinu stabla vode losim rezultatima.Prve usled nefleksibilnosti dozvoljenih modela, a druge zbog preteranog pri-lagodavanja modela trening podacima. Bitno je naglasiti da je isto rezonovanjemoglo biti sprovedeno i za druge metode masinskog ucenja. Pri tom u analizine bi figurisala dozvoljena dubina stabla, vec odredena opsta mera slozenostiskupa modela o kojoj necemo detaljnije govoriti. Adekvatno upravljanje bogat-stvom prostora hipoteza cini kljuc dobre generalizacije. Neki algoritmi ucenjakao metoda potpornih vektora su konstruisani tako da prilikom izbora modelaautomatski resavaju i ovaj problem.

U slucaju kad model koji najbolje aproksimira ciljnu funkciju na raspoloziviminstancama, takode najbolje aproksimira ciljnu funkciju na svim mogucim in-stancama, kaze se da algoritam za ucenje dobro generalizuje iz prikazanih primera.

Kod stabala odlucivanja, moguca su dva pristupa resavanju problema preter-anog prilagodavanja trening podacima, a to su: zaustavljanje rasta stabla utoku njegove izgradnje i naknadno odsecanje. Obicno se preferira druga mogucnost.Odsecanje stabla u odredenom cvoru predstavlja zamenu celog podstabla cijije to koren tim cvorom, s tim sto mu se dodeljuje oznaka klase u koju se po-daci u tom podstablu najcesce klasifikuju. Odsecanje se vrsi tako sto se itera-tivno ponavlja u cvorovima u kojima najvise povecava preciznost klasifikacijena skupu za testiranje sve dok dalje odsecanje ne pocne da smanjuje preciznostklasifikacije.

Page 188: Vestacka-inteligencija

188 11 Klasifikacija

Page 189: Vestacka-inteligencija

Glava 12

Regresija

Problem regresije predstavlja problem predvidanja vrednosti neprekidnog atributaneke instance na osnovu vrednosti njenih drugih atributa. Dakle, regresija semoze videti kao aproksimacija neprekidne ciljne funkcije. Umesto o atribu-tima, u terminologiji regresije, cesce se govori o promenljivim. Formalno, re-gresiona funkcija koja povezuje zavisnu promenljivu Y i nezavisne promenljiveX1, X2, . . . , Xn je definisana izrazom

r(x1, x2, . . . , xn) = E(Y |X1 = x1, X2 = x2, . . . , Xn = xn)

gde E oznacava matematicko ocekivanje. Promenljiva Y se naziva odzivnompromenljivom, a promenljive Xi prediktorima. Problem regresije se svodi naproblem aproksimacije regresione funkcije r. Ovo se moze raditi razlicitimmetodama koje uvode razlicite pretpostavke o regresionoj funkciji. Najjednos-tavnije su metode 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.

12.1 Linearna regresija

Linearna regresija predstavlja problem regresije u kome se pretpostavlja lin-earna veza izmedu odzivne promenljive i prediktora. Formalnije, pretpostavljase veza oblika

Y = Xβ + ε

Pri tome je Y slucajna promenljiva,X je vektor poznatih prediktora, β je nepoz-nati vektor koeficijenata, a ε je slucajna promenljiva koja predstavlja slucajnugresku, odnosno sum. Poreklo suma moze biti nesavrsenost opreme kojomse vrsi merenje, slucajna priroda samog fenomena ili to sto izbor linearne lin-earna zavisnosti predstavlja svesnu odluku da se inace kompleksna zavisnostdonekle pojednostavi radi lakse analize. Zadatak linearne regresije je odredivanjekoeficijenata β koji u nekom smislu najbolje odgovaraju opazanjima iz iskustva,odnosno trening podacima. Kako se greska ne modelira, vec se modelira samozakonitost za koju se pretpostavlja da postoji u podacima, rezultujuci model bi

Page 190: Vestacka-inteligencija

190 12 Regresija

trebalo da ima sledeci oblik

y = β0 + β1x1 + β2x2 + . . .+ βnxn (12.1)

Bitno je naglasiti da se izraz ”linarna” u nazivu linearna regresija odnosi nalinearnost relacije po parametrima β, a da prediktorske promenljive mogu bitinelinearno transformisane.

Primer 12.1 Neki primeri linearnih modela su:

• y = β0 + β1x1 + β2x2

• y = β0 + β1 cos(x1) + β2x22 + β3e

x3

• y = β0 + β1x1 + β2x2 + β3x1x2

Sledeci primeri ne predstavljaju linearne modele:

• y = β1x1β2+x2

• y = cos(β1x1)β2x2

eβ3x3

Pored osnovnog zadatka modeliranja veze izmedu odzivne promenljive iprediktora radi predikcije odzivne promenljive, linearna regresija je korisnai za ustanovljavanje jacine uticaja nekog prediktora na odizvnu promenljivu.Naime, vece apsolutne vrednosti koeficijenata β oznacavaju jaci uticaj predik-tora uz koji stoje. Znak koeficijenta odreduje smer uticaja prediktora. Takodese moze meriti statisticka znacajnost ovog uticaja, ali se radi jednostavnosti unastavku fokusiramo samo na osnovni problem odredivanja koeficijenata β iproveru kvaliteta naucenog modela.

Najjednostavniji slucaj linearne regresije je predvidanje odzivne promenljiveY na osnovu samo jednog prediktora X . Primera radi, mozemo govoriti opredvidanju telesne tezine u zavisnosti od visine. Primetna je zakonitost da suvisoki ljudi uglavnom tezi od niskih ljudi. Tu zavisnost je potrebno modelirati.Medutim, postoje i odstupanja. Kako su odstupanja od prosecne tezine utolikoredja sto su veca, ova odstupanja cemo smatrati sumom i necemo ih modelirati.Linearni model je u ovom slucaju oblika

y = β0 + β1x

sto je standardna jednacina linearne funkcije.Na slici 12.1 je prikazano 100 tacaka pri cemu svaka odgovara jednom ispi-

taniku. Koordinata x predstavlja visinu, a y 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 pravapredstavlja linearni model datih podataka. Metod kojim se do njega dolazi biceprikazan u nastavku.

U slucaju koriscenja opste jednacine linearnog modela 12.1, moguce je ukljucitiveci broj prediktora pri predvidanju odzivne promenljive. Iz primetne varija-bilnosti telesne tezine u odnosu na regresioni model, shvata se da visina nijedovoljna da u potpunosti objasni variranje telesne tezine. Novi prediktori koji

Page 191: Vestacka-inteligencija

12.1 Linearna regresija 191

●●

● ●

●●

● ●

●●

●●

● ●

●●

● ●

●●

● ●

150 160 170 180 190 200

4060

8010

012

0

x

y

Figure 12.1: Primer jednostavne regresije kojom se predvida telesna tezina naosnovu visine.

bi vodili ka poboljsavanju predvidanja mogu da se odnose na nacin zivota poje-dinaca — koliko vremena dnevno provode u sedecem polozaju, koliko se bavesportom, koliko kalorija unose dnevno i slicno. Umesto prave, u ovakvomslucaju regresioni model bi odredivao jednu hiperpovrs.

Osnovni kriterijum izbora koeficijenata linearnog modela je smanjivanjeodstupanja izmedu vrednosti koje model predvida i vrednosti koje odzivnapromenljiva ima u podacima. Ovaj problem se najcesce se formulise kao prob-lem minimizacije (nalazenja minimuma) srednjekvadratne greske

E(y) =1n

n∑i=1

(yi − yi)2

pri tome je n broj instanci u trening skupu, yi su vrednosti odzivne promenljivekod tih instanci, a yi su vrednosti koje predvida regresioni model. Koeficijentiβ se izracunavaju iz trening podataka (xi1, xi2, . . . , xim, yi) po formuli

β = (X>X)−1X>Y

pri cemu je

X =

x11 x12 · · · x1m

x21 x22 · · · x2m

......

. . ....

xn1 xn2 · · · xnm

Y =

y1y2...yn

Osnovni problem pri odredivanju koeficijenata β je potencijalna losa uslovl-

jenost matrice X . Naime, moguce je da su neki prediktori linearno zavisni ili

Page 192: Vestacka-inteligencija

192 12 Regresija

da su jako korelirani. U tom slucaju matrica X , pa i X>X je neinvertibilnaili lose uslovljena (za male promene elemenata polazne matrice, moguce suogromne promene elemenata inverzne matrice), odnosno, koeficijenti β se nemogu izracunati ili su previse nestabilni. U takvom slucaju se pribegava takoz-vanom postupku regularizacije. Matrici X>X se dodaje dijagonalna kompo-nenta

β = (X>X + αI)−1X>Y

gde je I jedinicna matrica. Ova modifikacija resava problem invertibilnosti, alipredstavlja namerno unosenje greske i time narusava tacnost postupka. Zbogtoga je potrebno da konstanta α bude mala, na primer, 0.01 ili 0.001, tako daje korist od regularizacije veca nego steta zbog unesene greske. Ovakva modi-fikacija regresije se na engleskom naziva ridge regression i cesto se koristi.

12.2 Pretpostavke linearne regresije

Postoje dve osnovne pretpostavke linearne regresije. Prva je da je broj treningpodataka veci od broja prediktora. Nju je u praksi uglavnom lako zadovoljiti.Nisu retki domeni u kojima je tesko doci do novih podataka, ali ni broj predik-tora obicno nije preveliki. Druga pretpostavka je da je slucajna promenljiva εikoja cini sum normalno raspodeljene sa raspodelom

εi ∼ N (0, σ2)

gde je standardna devijacija σ neka konstantna. Neformalno, ovo znaci dase pretpostavlja da se greske ”ponistavaju”, odnosno da se prebacivanja i pod-bacivanja javljaju jednako cesto, da su pri tom velike greske vrlo malo verovatne,kao i da velicina greske ne zavisi od stvarne velicine promenljive Y . Vise o ispi-tivanju ovih poretpostavki bice receno u nastavku.

12.3 Ispitivanje kvaliteta linearne regresije

Ispitivanje kvaliteta linearne regresije ukljucuje skup thenika i mera kvalitetakojima se proverava zadovoljenost uslova primenljivosti tehnike linearne re-gresije, 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 tehnikadosta robusna, odnosno cesto daje zadovoljavajuce rezultate i kad su te pret-postavke donekle narusene, ove provere se cesto vrse neformalno — inspekci-jom podataka pomocu dijagrama. Normalnost raspodele suma se potvrdujeinspekcijom histograma gresaka ri = yi − yi koje nazivamo rezidualima. Pret-postavka da velicina greske ne zavisi od stvarne velicine promenljive Y seobicno potvrduje inspekcijom grafika koji prikazuje reziduale ri u zavisnostiod predvidenih vrednosti yi. Ukoliko je raspodela tacaka na tom grafiku pri-blizno uniformna, smatra se da je pretpostavka ispunjena. S druge strane, uko-liko se moze uociti odredena zavisnost izmedu te dve velicine, smatra se dapretpostavka nije ispunjena i da se model moze popraviti dodavanjem novihprediktora ili primenom drugacijih metoda.

Page 193: Vestacka-inteligencija

12.3 Ispitivanje kvaliteta linearne regresije 193

Osnovna mera kvaliteta linearne regresije je srednjekvadratna greska, kojameri odstupanje predvidenih vrednosti od stvarnih i racuna se po formuli

E(y) =1n

n∑i=1

(yi − yi)2

Pozeljno je da srednjekvadratna greska bude sto manja, medutim ukoliko ne-mamo konkretan zahtev za postizanjem odredene srednjekvadratne grevske,tesko je reci da li je ucenje uspesno ili ne. Zbog toga se cesto koriste i drugemere. Cesta je upotreba Pirsonovog koeficijenta korelacije.

Pirsonov koeficijent korelacije izmedu dva uzorka xi i yi, koji odgovarajunekim promenljivim X i Y , se racuna po formuli

r(X,Y ) =1n

∑ni=1(xi − x)(yi − y)√

1n

∑ni=1(xi − x)

√1n

∑ni=1(yi − y)

gde nadvucena linija oznacava prosek uzorka. Izrazi pod korenom se nazivajuuzorackim varijansama za X i Y . Vrednosti koeficijenta korelacije r(X,Y ) =±1 oznacavaju linearnu vezu izmedu promenljivih X i Y pri cemu pozitivanznak znaci da Y raste kako X raste, a negativan znaci da Y opada kako Xraste. Neformalno, ova mera se moze shvatiti kao mera linearne zavisnostiizmedu promenljivih X i Y pri cemu vrednost 0 znaci potpuno odsustvo lin-earne korelacije. Jos vaznije, ova mera se moze povezati sa srednjekvadratnomgreskom. Cesto se kaze da r2(X,Y ) predstavlja udeo varijanse promenljiveY koji promenljiva X objasnjava. Smisao ovog tvrdenja je sledeci. Ukoliko seodreknemo koriscenja bilo kakvih metoda predikcije pri predvidanju vrednostipromenljive Y , najmanju srednjekvadratnu gresku ocekujemo ukoliko uvekpredvidamo vrednost y. Odnosno, ako kao predikcioni model za Y koristimoprosek opazenih vrednosti Y . Pri tome je srednjekvadratna greska

E(y) =1n

n∑i=1

(yi − y)2

odnosno uzoracka varijansa za Y . Rastojanja koja ulaze u ovu gresku su prikazanana slici 12.2. U slucaju koriscenja linearnog regresionog modela, srednjek-vadratna greska je

E(y) =1n

n∑i=1

(yi − yi)2

Rastojanja koja ulaze u ovu gresku su prikazana na slici 12.3. Ova, preostala,greska se ne moze objasniti zavisnoscu od prediktora X , odnosno tu preostalugresku mozemo smatrati neobjasnjenom. Ispostavlja se da se polazna srednjek-vadratna greska moze razloziti po formuli

E(y) =1n

n∑i=1

(yi − y)2 =1n

n∑i=1

(yi − yi)2 +1n

n∑i=1

(yi − y)2

odnosno da vazi1n

n∑i=1

(yi − y)2 = E(y)− E(y)

Page 194: Vestacka-inteligencija

194 12 Regresija

Figure 12.2: Grafik reziduala u zavisnosti od predvidenih vrednosti telesnetezine.

Figure 12.3: Grafik reziduala u zavisnosti od predvidenih vrednosti telesnetezine.

Page 195: Vestacka-inteligencija

12.3 Ispitivanje kvaliteta linearne regresije 195

−30 −20 −10 0 10 20 30

05

1015

20

Figure 12.4: Histogram reziduala u predvidanju telesne tezine.

Dakle, izraz sa leve strane predstavlja razliku izmedu polazne i neobjasnjenegreske, odnosno varijanse, iliti ”objasnjeni deo varijanse”. Ispostavlja se da zakoeficijent korelacije vazi relacija

r2(X,Y ) =∑ni=1(yi − y)2∑ni=1(yi − y)2

sto objasnjava znacenje tvrdnje da njegov kvadrat predstavlja udeo varijansepromenljive Y koji promenljivaX objasnjava. Pomocu ove mere se moze ocen-iti koliko je linearni model zaista koristan u odnosu na jednostavno poznavanjeproseka neke velicine.

U slucaju da se radi o opstem slucaju regresije, postoji veci broj prediktora,pa se koeficijent korelacije ne moze racunati po istoj formuli. U tom slucaju,on se racuna kao r(Y , Y ). U slucaju jednog prediktora ova vrednost je jednakar(X,Y ) posto su velicine X i Y linearno povezane.

I u slucaju regresije, moguce je koristiti unakrsnu validaciju na isti nacinkao kod klasifikacije, osim sto je mera kvaliteta koja se racuna promenjena.

Primer 12.2 U slucaju primera sa predikcijom telesne tezine u zavisnosti od visine naslici 12.4 prikazan je histogram reziduala. Prikazana raspodela je bliska normalnoj (stoje potvrdeno i statistickim testom). Na slici 12.5 prikazan je grafik zavisnosti rezidu-ala od predivdenih vrednosti. Kako raspodela ne odaje zavisnost izmedu reziduala ipredvidenih vrednosti (sto je takode potvrdeno i statistickim testom), zaklucuje se dasu u tom problemu pretpostavke linearne regresije ispunjene.

Koeficijent korelacije iznosi 0.715 sto znaci da promenljivaX objasnjava preko polavarijanse promenljive Y , ali i da postoji prostor da se predikcija dalje popravi dodavan-jem novih prediktora.

Page 196: Vestacka-inteligencija

196 12 Regresija

●●

●●

●●

● ●

● ●

50 60 70 80 90 100

−20

−10

010

20

Figure 12.5: Grafik reziduala u zavisnosti od predvidenih vrednosti telesnetezine.

12.4 Preterano prilagodavanje modela podacima zatrening

Fenomen preteranog prilagodavanja podacima za trening koji je objasnjen ukontekstu klasifikacije, moguc je i u problemu regresije (ne nuzno linearne).Zbog toga cemo iskoristiti priliku da ga jos jednom prokomentarisemo u drugacijemokviru masinskog ucenja. Osnovni smisao preteranog prilagodavanja treningpodacima je i dalje isti — da se model koji ima dobre mere kvaliteta na treningpodacima, lose ponasa na drugim podacima. Medutim, novi primeri dopri-nose razumevanju veze izmedu bogatstva skupa dopustivih modela i kvalitetaucenja.

Na slici 12.6 prikazan je jedan skup od 20 instanci za trening koje se sas-toje od jednog prediktora i odzivne promenljive. Linearni model je naucenlinearnom regresijom. Moze se primetiti da on ne prolazi direktno kroz tren-ing podatke, odnosno za svaki trening podatak postoji manja ili veca greskakada se vrsi predvidanje odzivne promenljive na osnovu datog prediktora.Drugacije receno, linearni model se ne moze potpuno prilagoditi podacimaza trening. Linearne modele mozemo smatrati jednostavnim i nefleksibilnim.S druge strane, ocigledno je da on dobro opisuje opsti linearni trend koji se upodacima vidi. Slika 12.7 prikazuje aproksimaciju datih podataka koriscenjemmodela iz skupa svih polinoma proizvoljnog stepena. Izabrani polinom prolazikroz sve tacke koje predstavljaju trening podatke i stoga je greska tog modelana trening podacima jednaka nuli. Medutim, posmatrajuci globalni izgled iz-abranog modela, vidi se da on ne opisuje nikakvu zakonitost u podacima. Os-

Page 197: Vestacka-inteligencija

12.4 Preterano prilagodavanje modela podacima za trening 197

cilacije koje pravi izmedu tacaka cine njegovo koriscenje u predikciji potpunonepouzdanim. Problem je upravo u tome sto proizvoljni polinomi cine previsebogat skup mogucih modela. Za svaki trening skup moze se naci model kojiga savrseno opisuje. Medutim, prilagodavajuci se trening podacima do krajn-josti, gubi se svaka moc generalizacije. Slicni zakljucci vaze i za druge previsebogate skupove dopustivih modela, a ne samo za polinome.

●●

●●

5 10 15 20

05

1015

20

Figure 12.6: Linearni model sa najmanjom srednjekvadratnom greskom na in-stancama za trening.

Page 198: Vestacka-inteligencija

198 12 Regresija

●●

●●

5 10 15 20

05

1015

20

Figure 12.7: Polinomijalni model sa najmanjom srednjekvadratnom greskomna instancama za trening

Page 199: Vestacka-inteligencija

Deo IV

Resenja zadataka

Page 200: Vestacka-inteligencija
Page 201: Vestacka-inteligencija

Glava 13

Resenja zadataka

1. Pretpostavimo suprotno — pretpostavimo da formula (D ∧ A) ⇒ ¬B nijetautologija, tj. pretpostavimo da postoji valuacija v takva da je Iv((D ∧ A) ⇒¬B) = 0. Iz Iv((D ∧ A) ⇒ ¬B) = 0 sledi Iv(D ∧ A) = 1 i Iv(¬B) = 0, a odatleIv(D) = 1, Iv(A) = 1 i Iv(B) = 1. Formula (A∧C)⇒ ¬D je tautologija, pa vaziIv((A∧C)⇒ ¬D) = 1. Kako je Iv(¬D) = 0, mora da vazi Iv(A∧C) = 0, odaklesledi da je Iv(C) = 0 (jer je Iv(A) = 1). S druge strane, formula A ⇒ (B ⇒ C)je tautologija, pa vazi Iv(A ⇒ (B ⇒ C)) = 1. Kako je Iv(A) = 1, mora davazi Iv(B ⇒ C) = 1. Vazi Iv(B) = 1, pa mora da vazi i Iv(C) = 1, sto jeu kontradikciji sa Iv(C) = 0. Dakle, polazna pretpostavka je bila pogresna,odakle sledi da je formula (D ∧A)⇒ ¬B tautologija.

10. Dokazimo najpre, metodom istinitosnih tablica, da je formula

(A⇒ (B ⇒ C))⇒ (((A ∧ C)⇒ ¬D)⇒ ((D ∧A)⇒ ¬B))

tautologija:

(A ⇒ (B ⇒ C)) ⇒ (((A ∧ C) ⇒ ¬ D) ⇒ ((D ∧ A) ⇒ ¬ B))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 (A ⇒ (B ⇒ C)) ⇒ (((A ∧ C) ⇒ ¬D) ⇒ ((D ∧ A) ⇒ ¬B)) je, dakle,tautologija i, na osnovu pretpostavke, formula A⇒ (B ⇒ C) je tautologija, pa,na osnovu teoreme 2.1, sledi da je i formula ((A∧C)⇒ ¬D)⇒ ((D∧A)⇒ ¬B)tautologija. Formula ((A ∧ C) ⇒ ¬D) ⇒ ((D ∧ A) ⇒ ¬B) je tautologija i, naosnovu pretpostavke, formula (A ∧ C) ⇒ ¬D je tautologija, pa na osnovuteoreme 2.1, sledi da je i formula (D ∧A)⇒ ¬B tautologija.

11. Ako je v(p) = 0 i v(q) = 0, onda je Iv(A ∧ q) = 0 i Iv((A ∧ q) ⇒ ¬p) = 1.Slicno, ako je v(p) = 1 i v(q) = 1, onda je Iv(A ∧ q) = Iv(A) i Iv(¬p) = 0, pa je

Page 202: Vestacka-inteligencija

202 13 Resenja zadataka

Iv((A∧ q)⇒ ¬p) = 1− Iv(A). Analogno odredujemo istinitosnu vrednost dateformule za svaku kombinaciju vrednosti v(p) i v(q). Te vrednosti prikazane suu narednoj tablici:

((A ∧ q) ⇒ ¬ p) ⇒ ((p ⇒ ¬ q) ⇒ A)0 0 1 1 0 Iv(A) 0 1 1 0 Iv(A)

Iv(A) 1 1 1 0 Iv(A) 0 1 0 1 Iv(A)0 0 1 0 1 Iv(A) 1 1 1 0 Iv(A)

Iv(A) 1 1− Iv(A) 0 1 1 1 0 0 1 1

Dakle, da bi data formula bila tautologija mora da vazi Iv(A) = 1 u sluca-jevima v(p) = v(q) = 0, v(p) = 0, v(q) = 1, v(p) = 1, v(q) = 0, dok u slucajuv(p) = v(q) = 1, formula A moze da ima proizvoljnu vrednost. Dakle, formulaA za koju u svakoj valuaciji vazi Iv(A) = 1 ispunjava uslov zadatka, paAmozebiti formula >.

13 Pretpostavimo da vaziA1, A2, . . . , An |= B. Pretpostavimo da formula (A1∧A2 ∧ . . . ∧ An) ⇒ B nije tautologija. Tada postoji valuacija u kojoj je formulaB netacna, a formula (A1 ∧A2 ∧ . . . ∧An) tacna. Ako je u toj valuaciji formula(A1 ∧ A2 ∧ . . . ∧ An) tacna, onda je tacna i svaka od formula A1, A2, . . ., An. Sdruge strane, kako vazi A1, A2, . . . , An |= B, sledi da je u toj valuaciji tacna iformula B, sto protivreci prethodnom zakljucku da formula B nije tacna u tojvaluaciji. Dakle, pogresna je pretpostavka da (A1 ∧ A2 ∧ . . . ∧ An) ⇒ B nijetautologija, tj. vazi |= (A1 ∧A2 ∧ . . . ∧An)⇒ B.

Pretpostavimo da vazi |= (A1 ∧ A2 ∧ . . . ∧ An) ⇒ B. Pretpostavimo dane vazi A1, A2, . . . , An |= B. To znaci da postoji valuacija u kojoj je svaka odformulaA1,A2, . . .,An tacna, a formulaB nije. U toj valuaciji je tacna i formula(A1 ∧ A2 ∧ . . . ∧ An), a netacna je formula (A1 ∧ A2 ∧ . . . ∧ An) ⇒ B. Odatlesledi da formula (A1 ∧ A2 ∧ . . . ∧ An) ⇒ B nije tautologija, sto je suprotnopretpostavci. Dakle, mora da vaziA1, A2, . . . , An |= B, sto je i trebalo dokazati.

14 Pretpostavimo da vazi Γ, A |= B i dokazimo Γ |= A ⇒ B. Pretpostavimoda su sve formule iz skupa Γ tacne u nekoj valuaciji v i dokazimo da je u tojvaluaciji tacna i formula A ⇒ B. Pretpostavimo suprotno, da vazi Iv(A ⇒B) = 0. Odatle sledi Iv(A) = 1 i Iv(B) = 0. Dakle, valuacija v je model za skupformula Γ ∪ {A}, pa iz Γ, A |= B sledi da je valuacija v model i za formulu B,sto je u suprotnosti sa Iv(B) = 0. Dakle, pretpostavka je bila pogresna, pa slediIv(A⇒ B) = 1, tj. Γ |= A⇒ B, sto je i trebalo dokazati.

Pretpostavimo da vazi Γ |= A ⇒ B i dokazimo Γ, A |= B. Pretpostavimoda su sve formule iz skupa Γ ∪ {A} tacne u nekoj valuaciji v i dokazimo da jeu toj valuaciji tacna i formula B. U valuaciji v su tacne sve formule iz skupaΓ, pa iz Γ |= A ⇒ B sledi Iv(A ⇒ B) = 1. Iz Iv(A) = 1 i Iv(A ⇒ B) = 1sledi Iv(B) = 1 (ako bi vazilo Iv(B) = 0, iz Iv(A) = 1 i Iv(B) = 0 bi slediloIv(A⇒ B) = 0). Dakle, valuacija v je model za formulu B, tj. Γ, A |= B, sto je itrebalo dokazati.

15 Neka je v proizvoljna valuacija. Tada je Iv(A1) = Iv(A2) i Iv(B1) = Iv(B2).

Page 203: Vestacka-inteligencija

Resenja zadataka 203

(a)

Iv(¬A1) ={

1, Iv(A1) = 00, inace

={

1, Iv(A2) = 00, inace

= Iv(¬A2) .

(b)

Iv(A1 ∧B1) ={

1, Iv(A1) = 1 i Iv(B1) = 10, inace

={

1, Iv(A2) = 1 i Iv(B2) = 10, inace

= Iv(A2 ∧B2) .

(c)

Iv(A1 ∨B1) ={

1, Iv(A1) = 1 ili Iv(B1) = 10, inace

={

1, Iv(A2) = 1 ili Iv(B2) = 10, inace

= Iv(A2 ∨B2) .

(d)

Iv(A1 ⇒ B1) ={

0, Iv(A1) = 1 i Iv(B1) = 01, inace

={

0, Iv(A2) = 1 i Iv(B2) = 01, inace

= Iv(A2 ⇒ B2) .

(e)

Iv(A1 ⇔ B1) ={

1, Iv(A1) = Iv(B1)0, inace

={

1, Iv(A2) = Iv(B2)0, inace

= Iv(A2 ⇔ B2) .

16 Pretpostavimo da je A tautologija. Neka je v proizvoljna valuacija. Neka jew valuacija u kojoj su iskaznim slovima p1, p2, . . ., pn dodeljene redom vred-nosti Iv(A1), Iv(A2), . . ., Iv(An) i u kojoj je svakom iskaznom slovu p koje sepojavljuje u A, a razlicito je od p1, p2, . . ., pn dodeljuje vrednost Iv(p). Induk-cijom nad skupom iskaznih formula moze se dokazati da vazi Iv(B) = Iw(A).Iskazna formula A je tautologija, pa je ona tacna u svakoj valuaciji. Dakle,Iw(A) = 1, odakle je Iv(B) = 1. Kako je v proizvoljna valuacija, sledi da je

Page 204: Vestacka-inteligencija

204 13 Resenja zadataka

formula B tacna u svakoj valuaciji, tj. sledi da je formula B tautologija, sto je itrebalo dokazati.

20. Neka p oznacava tvrdenje ,,R uvek govori istinu“ i neka q oznacava tvrdenje,,Levi put vodi u glavni grad“. Mestaninu R treba postaviti pitanje ,,Da li jetacno P ?“ (gde je P iskaz izrazen u funkciji p i q). Oznacimo sa R(A) odgovormestanina na pitanje ,,Da li je tacno A?“ — 0 ako je njegov odgovor ne i 1 akoje njegov odgovor da. Postavljeno pitanje treba da bude takvo da je R(P ) usvakom slucaju jednak vrednosti iskaza q. Odredimo tvrdenje P .

Ako je u nekoj valuaciji Iv(p) = 0 (tj. R uvek govori laz) i ako je R(A)jednako 0, onda u toj valuaciji mora da vazi Iv(A) = 1. Ako je u nekoj valuacijiIv(p) = 0 (tj. R uvek govori laz) i ako je R(A) jednako 1, onda u toj valuacijimora da vazi Iv(A) = 0. Ako je u nekoj valuaciji Iv(p) = 1 (tj. R uvek govoriistinu) i ako jeR(A) jednako 0, onda u toj valuaciji mora da vazi Iv(A) = 0. Akoje u nekoj valuaciji Iv(p) = 1 (tj. R uvek govori istinu) i ako je R(A) jednako1, onda u toj valuaciji mora da vazi Iv(A) = 1. Dobijeni zakljucci mogu bitiprikazani u vidu sledece istinitosne tablice:

p R(A) A0 0 10 1 01 0 01 1 1

Iskaz P moze da ima formuR(B) i onda je potrebno da je u svakoj valuacijivrednost R(R(B)) jednaka q. Odredimo tvrdenje B. Vrednosti za iskaze R(B)i B dobijaju se na osnovu prethodne istinitosne tablice. Te vrednosti prikazanesu u sledecoj istinitosnoj tablici:

p q R(R(B)) R(B) B0 0 0 1 00 1 1 0 11 0 0 0 01 1 1 1 1

Ocigledno, u svakoj valuaciji je Iv(B) = Iv(q), pa zakljucujemo da trazenopitanje moze da bude ,,Da li je tacnoR(q)?“ ili ,,Da li je tacno da bi mi ti odgov-orio potvrdno ako bih te pitao da li levi put vodi u glavni grad?“.

25.

(a) Formula A nije kontradikcija, pa postoji valuacija v1 takva da je Iv1(A) =1. Formula B nije tautologija, pa postoji valuacija v2 takva da je Iv2(B) =0. Pretpostavimo da formule A i B nemaju zajednicko nijedno iskaznoslovo. Tada mozemo da definisemo valuaciju v na sledeci nacin:

v(p) ={v1(p), ako se p pojavljuje u Av2(p), inace

Tada vazi Iv(A) = Iv1(A) = 1 i Iv(B) = Iv2(B) = 0, pa A ⇒ B nije tau-tologija, sto je suprotno zadatim uslovima. Dakle, polazna pretpostavkaje pogresna, pa zakljucujemo da formuleA iB moraju da imaju bar jednozajednicko iskazno slovo.

Page 205: Vestacka-inteligencija

Resenja zadataka 205

(b) Neka je kanonska disjunktivna normalna forma formule A jednaka A1 ∨A2 ∨ . . . ∨ Am i neka je kanonska konjunktivna normalna forma formuleB jednaka B1 ∧ B2 ∧ . . . ∧ Bn. Formula A ⇒ B je tautologija, pa naosnovu logicke ekvivalencije (P ∨ Q) ⇒ R ≡ (P ⇒ R) ∧ (Q ⇒ R) ijednostavnog induktivnog argumenta zakljucujemo da je svaka od for-mula Ai ⇒ B (i = 1, 2, . . . ,m) tautologija. Analogno, kako je formulaAi ⇒ B (i = 1, 2, . . . ,m) tautologija, na osnovu logicke ekvivalencijeP ⇒ (Q ∧ R) ≡ (P ⇒ Q) ∧ (P ⇒ R) i jednostavnog induktivnog argu-menta zakljucujemo da je svaka od formula Ai ⇒ Bj (i = 1, 2, . . . ,m,j = 1, 2, . . . , n) tautologija. To je moguce samo ako za svaki par Ai, Bjpostoji literal lij koji se u Ai pojavljuje kao konjunkt, a u Bj kao disjunkt.Neka je formula C jednaka

m∨i=1

n∧j=1

lij

Kako je skup literala∧nj=1 lij podskup skupa literala formule Ai sledi

da je Ai ⇒∧nj=1 lij tautologija (jer je formula P ∧ Q ⇒ P tautologija).

Dodatno, koriscenjem tautologije ((P ⇒ Q) ∧ (R ⇒ S)) ⇒ (P ∨ R ⇒Q ∨ S) moze se matematickom indukcijom dokazati da je formula

A1 ∨A2 ∨ . . . ∨Am ⇒m∨i=1

n∧j=1

lij

tautologija, tj. da je formula A⇒ C tautologija.

Kako je literal lij (i = 1, 2, . . . ,m, j = 1, 2, . . . , n) disjunkt formule Bj ,sledi da je lij ⇒ Bj tautologija (jer je formula P ⇒ P ∨ Q tautologija).Dodatno, koriscenjem tautologije ((P ⇒ Q)∧ (R⇒ S))⇒ (P ∧R⇒ Q∧S) moze se matematickom indukcijom dokazati da je formula

∧nj=1 lij ⇒

B1∧B2∧ . . .∧Bn tautologija. Kako to vazi za svako i (i = 1, 2, . . . ,m), naosnovu logicke ekvivalencije (P ⇒ R) ∧ (Q ⇒ R) ≡ (P ∨ Q) ⇒ R sledida je i

m∨i=1

n∧j=1

lij ⇒ B1 ∧B2 ∧ . . . ∧Bn

tautologija, tj. da je formula C ⇒ B tautologija.

29. Neka je L = (Σ,Π, ar), gde je Σ = {f}, Π = {p} i ar(f) = 1 i ar(p) = 1.Odredimo L-strukturu D = (D, IL) takvu da je ona model date formule, pricemu je IL(f) = fI i IL(p) = pI .

Neka je D = N, fI(n) = n + 2 (gde je n ∈ N) i pI(n) = 1 ako i samo akoje n paran broj. Dokazimo da je D = (D, IL) model formule A = (∀x)(p(x) ⇒p(f(x)).

Dokazimo da je Iv(A) = 1 za svaku valuaciju v. Pretpostavimo suprotno– pretpostavimo da postoji valuacija v takva da je Iv(A) = 0. Na osnovudefinicije 3.10, iz Iv(A) = 0 sledi da postoji valuacija w takva da je v ∼x w iIw(p(x)⇒ p(f(x))) = 0. Na osnovu iste definicije, odatle sledi da je Iw(p(x)) =1 i Iw(p(f(x))) = 0. Neka je w(x) = n, gde je n element skupa N. Tada je1 = Iw(p(x)) = pI(n) i 0 = Iw(p(f(x))) = pI(fI(n)) = pI(n + 2), odakle sledi

Page 206: Vestacka-inteligencija

206 13 Resenja zadataka

da je n paran broj, a n + 2 neparan, sto je netacno za svaki prirodan broj n.Dakle, Iv(A) = 1 za svaku valuaciju v, tj. L-struktura D = (N, IL) je modeldate formule A.

30. Neka je v proizvoljna valuacija. L-struktura D je model date formule akoje Iv((∀x)(p(x, f(x))⇒ p(f(x), x)) = 1, tj. ako za svaku valuaciju w takvu da jev ∼x w vazi Iw(p(x, f(x))⇒ p(f(x), x)) = 1.

Dovoljno je razmatrati mogucnostiw(x) = a,w(x) = b iw(x) = c. VrednostiIw(p(x, f(x))⇒ p(f(x), x)) = 1 mogu tada biti prikazane i u vidu tablice:

w(x) fI(w(x)) pI(w(x), fI(w(x))) pI(fI(w(x)), w(x)) Iw(p(x, f(x))⇒ p(f(x), x))a b 1 1 1b a 1 1 1c a 0 0 1

Dakle, za proizvoljnu valuaciju v je Iv(∀x)(p(x, f(x))⇒ p(f(x), x)) = 1, paje D model formule (∀x)(p(x, f(x))⇒ p(f(x), x)).

31. Neka je L = (Σ,Π, ar), Σ = {}, Π = {p} i ar(p) = 2, D = {a, b} i neka jeIL(p) = pI . Da bi D = (D, IL) bio model formule A treba da za proizvoljnuvaluaciju v vazi Iv((∀x)(∃y)(p(x, y) ⇒ ¬p(y, x))) = 1, tj. za svaku valuacijuw takvu da je v ∼x w vazi Iw((∃y)(p(x, y) ⇒ ¬p(y, x))) = 1. Postoje dvemogucnosti: w(x) = a i w(x) = b i za obe treba da vazi Iw((∃y)(p(x, y) ⇒¬p(y, x))) = 1. Vazi Iw((∃y)(p(x, y) ⇒ ¬p(y, x))) = 1 ako postoji valuacija w′

takva da je w ∼y w′ i Iw′(p(x, y)⇒ ¬p(y, x)) = 1. Za svaku valuaciju w postojedve takve valuacije w’ — jedna, za koju vazi w′(y) = a i druga, za koju vaziw′(y) = b (pri tome vazi iw′(x) = w(x)). Vazi Iw′(p(x, y)⇒ ¬p(y, x)) = 1 ako jeIw′(p(x, y)) = 0 ili Iw′(¬p(y, x)) = 1, tj. ako je Iw′(p(x, y)) = 0 ili Iw′(p(y, x)) =0. Dakle, vazi:

(w(x) = a i Iw((∃y)(p(x, y)⇒ ¬p(y, x))) = 1) i (w(x) = b i Iw((∃y)(p(x, y)⇒¬p(y, x))) = 1)odakle sledi

(w(x) = a i ((w′(y) = a i Iw′(p(x, y) ⇒ ¬p(y, x)) = 1) ili (w′(y) = bi Iw′(p(x, y) ⇒ ¬p(y, x)) = 1))) i (w(x) = b i ((w′(y) = a i Iw′(p(x, y) ⇒¬p(y, x)) = 1) ili (w′(y) = b i Iw′(p(x, y)⇒ ¬p(y, x)) = 1)))odakle sledi

((w(x) = a i w′(y) = a i Iw′(p(x, y) ⇒ ¬p(y, x)) = 1) ili (w(x) = a iw′(y) = b i Iw′(p(x, y)⇒ ¬p(y, x)) = 1)) i ((w(x) = b i w′(y) = a i Iw′(p(x, y)⇒¬p(y, x)) = 1) ili (w(x) = b i w′(y) = b i Iw′(p(x, y)⇒ ¬p(y, x)) = 1))odakle sledi

((w′(x) = a i w′(y) = a i Iw′(p(x, y) ⇒ ¬p(y, x)) = 1) ili (w′(x) = a iw′(y) = b i Iw′(p(x, y)⇒ ¬p(y, x)) = 1)) i ((w′(x) = b i w′(y) = a i Iw′(p(x, y)⇒¬p(y, x)) = 1) ili (w′(x) = b i w′(y) = b i Iw′(p(x, y)⇒ ¬p(y, x)) = 1))odakle sledi

((w′(x) = a i w′(y) = a i (Iw′(p(x, y)) = 0 ili Iw′(p(y, x)) = 0)) ili (w′(x) = ai w′(y) = b i (Iw′(p(x, y)) = 0 ili Iw′(p(y, x)) = 0))) i ((w′(x) = b i w′(y) = a i(Iw′(p(x, y)) = 0 ili Iw′(p(y, x)) = 0)) ili (w′(x) = b i w′(y) = b i (Iw′(p(x, y)) = 0ili Iw′(p(y, x)) = 0)))odakle sledi

((pI(a, a)) = 0 ili pI(a, a)) = 0) ili (pI(a, b) = 0 ili pI(b, a) = 0)) i ((pI(b, a)) =0 ili pI(a, b) = 0) ili (pI(b, b) = 0 ili pI(b, b) = 0))

Page 207: Vestacka-inteligencija

Resenja zadataka 207

odakle sledi(pI(a, a)) = 0 ili pI(a, b) = 0 ili pI(b, a) = 0) i (pI(b, a)) = 0 ili pI(a, b) = 0 ili

pI(b, b) = 0)Da bi L-struktura D bila model za datu formulu mora da vazi (pI(a, a)) = 0

ili pI(a, b) = 0 ili pI(b, a) = 0) i (pI(b, a)) = 0 ili pI(a, b) = 0 ili pI(b, b) = 0).Neposredno se moze proveriti da ima 13 (od ukupno 16) funkcija pI : D2 7→{0, 1} koje zadovoljavaju taj uslov. Svakoj od tih funkcija odgovara po jedantrazeni model (do na izomorfizam).

32. Neka jeL = (Σ,Π, ar), pri cemu je Σ = {f, a}, Π = {p}, ar(f) = 2, ar(a) = 0i ar(p) = 2.

Neka je D = Z, IL(f) = fI , IL(a) = aI i IL(p) = pI , pri cemu je fI(z1, z2) =z1 + z2 (z1, z2 ∈ Z), aI = 0 i pI(z1, z2) = 1 ako i samo ako je z1 = z2 (z1, z2 ∈ Z).Dokazimo da je D = (D, IL) model date formule. Dokazimo da za proizvoljnuvaluaciju v vazi Iv((∀x)(∃y)p(f(x, y), a)) = 1. Pretpostavimo suprotno — pret-postavimo da postoji valuacija v za koju vazi Iv((∀x)(∃y)p(f(x, y), a)) = 0.Tada, na osnovu definicije 3.10, sledi da postoji valuacija w takva da je w ∼x vi Iw((∃y)p(f(x, y), a)) = 0 (neka je u toj valuaciji w(x) = z, z ∈ Z). To daljeznaci da za svaku valuaciju w′ takvu da je w′ ∼y w (dakle, vazi w′(x) = z)i vazi Iw′(p(f(x, y), a)) = 0. Medutim, u valuaciji u kojoj je w′(y) = −z vaziIw′(p(f(x, y), a)) = pI(fI(z,−z), 0) = pI(z + (−z), 0) = pI(0, 0) = 1, sto jeu kontradikciji sa Iw′(p(f(x, y), a)) = 0. Dakle, polazna pretpostavka je bilapogresna, te sledi da za proizvoljnu valuaciju v vazi Iv((∀x)(∃y)p(f(x, y), a)) =1, tj. L-struktura D je model date formule.

Neka jeD = N, IL(f) = fI , IL(a) = aI i IL(p) = pI , pri cemu je fI(n1, n2) =n1 + n2 (n1, n2 ∈ N), aI = 0 i pI(n1, n2) = 1 ako i samo ako je n1 = n2 (n1, n2 ∈N). Dokazimo da je D = (D, IL) kontramodel date formule. Dokazimo dapostoji valuacija v za koju vazi Iv((∀x)(∃y)p(f(x, y), a)) = 0. Pretpostavimosuprotno — da za proizvoljnu valuaciju v vazi Iv((∀x)(∃y)p(f(x, y), a)) = 1.Tada, na osnovu definicije 3.10, sledi da za svaku valuaciju w takvu da jew ∼x v vazi Iw((∃y)p(f(x, y), a)) = 1. Neka je w proizvoljna valuacija i neka jew(x) = n, gde je n ∈ N i n > 0. Iz Iw((∃y)p(f(x, y), a)) = 1 sledi da postoji val-uacija w′ takva da je w′ ∼y w (dakle, vazi w′(x) = n) i vazi Iw′(p(f(x, y), a)) =1. Pretpostavimo da je w′(y) = m, m ∈ N. Tada vazi Iw′(p(f(x, y), a)) =pI(fI(n,m), 0) = pI(n+m, 0). Medutim, pI(n+m, 0) je jednako 1 samo ako jen+m = 0, sto nije tacno ni za koju vrednost m, m ∈ N (jer je n > 0). Dakle, po-lazna pretpostavka je bila pogresna, te sledi da postoji valuacija v za koju vaziIv((∀x)(∃y)p(f(x, y), a)) = 0, tj. L-struktura D je kontramodel date formule.

33. Neka je L = (Σ,Π, ar), pri cemu je Σ = {f}, Π = {p}, ar(f) = 1, ar(p) = 2.

(a) Neka je D = (N, IL) i IL(f) = fI , IL(p) = pI , pri cemu je fI(n) =n + 1 i pI(n1, n2) = 1 ako i samo ako je n1 < n2. Dokazimo da je L-struktura D model date formule A, tj. dokazimo da za svaku valuacijuv vazi Iv(A) = 1. Pretpostavimo suprotno — pretpostavimo da postojivaluacija v takva da je Iv(A) = 0. Na osnovu definicije 3.10, sledi daIv((∀x)(p(x, f(x)) ∧ ¬p(x, x))) = 0 ili Iv((∀x)(∀y)(∀z)(p(x, y) ∧ p(y, z) ⇒p(x, z))) = 0.

– Pretpostavimo da je Iv(∀x)(p(x, f(x)) ∧ ¬p(x, x)) = 0. Odatle sledi

Page 208: Vestacka-inteligencija

208 13 Resenja zadataka

da postoji valuacija w takva da je w ∼x v takva da je Iw((p(x, f(x))∧¬p(x, x))) = 0. Pretpostavimo da je u toj valuaciji w(x) = n, gde jen ∈ N. Iz Iw((p(x, f(x)) ∧ ¬p(x, x))) = 0 sledi da je Iw(p(x, f(x))) =0 ili Iw(¬p(x, x)) = 0, tj. da je pI(w(x), fI(w(x))) = 0 ili pI(w(x), w(x))= 1, tj. da nije n < n+ 1 ili da je n < n, sto nije ispunjeno ni za jedanbroj n, n ∈ N.

– Pretpostavimo da je Iv((∀x)(∀y)(∀z)(p(x, y)∧p(y, z)⇒ p(x, z))) = 0.Odatle sledi da postoji valuacija w takva da je w ∼x v takva da jeIw((∀y)(∀z)(p(x, y) ∧ p(y, z) ⇒ p(x, z))) = 0. Neka je w(x) = n1. IzIw((∀y)(∀z)(p(x, y) ∧ p(y, z) ⇒ p(x, z))) = 0 sledi da postoji valu-acija w′ takva da je w′ ∼y w (dakle, vazi w′(x) = w(x) = n1) takvada je Iw′((∀z)(p(x, y) ∧ p(y, z) ⇒ p(x, z))) = 0. Neka je w′(y) =n2. Iz Iw′((∀z)(p(x, y) ∧ p(y, z) ⇒ p(x, z))) = 0 sledi da postojivaluacija w′′ takva da je w′′ ∼z w′ (dakle, vazi w′′(x) = w′(x) =w(x) = n1 i w′′(y) = w′(y) = n2) takva da je Iw′′((p(x, y) ∧ p(y, z)⇒p(x, z))) = 0. Neka je w′′(z) = n3. Iz Iw′′((p(x, y) ∧ p(y, z) ⇒p(x, z))) = 0 sledi da je Iw′′(p(x, y) ∧ p(y, z)) = 1 i Iw′′(p(x, z)) =0 i, dalje, Iw′′(p(x, y)) = 1, Iw′′(p(y, z)) = 1 i Iw′′(p(x, z)) = 0,tj. pI(w′′(x), w′′(y)) = 1, pI(w′′(y), w′′(z)) = 1 i pI(w′′(x), w′′(z)) =0. Odatle sledi pI(n1, n2) = 1, pI(n2, n3) = 1 i pI(n1, n3) = 0 i, dalje,sledi da je tacno n1 < n2, n2 < n3 i da nije tacno n1 < n3. Medutim,to nije ispunjeno ni za koja tri prirodna broja n1, n2, n3.

Dakle, pretpostavka je bila pogresna, te sledi da za svaku valuaciju v vaziIv(A) = 1, tj. L-struktura D je model formule A.

(b) Neka je D = ({a}, IL) i IL(f) = fI , IL(p) = pI , pri cemu je fI(a) = ai pI(a, a) = 1. Dokazimo da je D kontramodel za formulu A. Pret-postavimo suprotno — pretpostavimo da za proizvoljnu valuaciju v vazida je Iv(A) = 1. Tada je, na osnovu definicije 3.10, Iv((∀x)(p(x, f(x)) ∧¬p(x, x))) = 1 i Iv((∀x)(∀y)(∀z)(p(x, y) ∧ p(y, z) ⇒ p(x, z))) = 1. IzIv((∀x)(p(x, f(x)) ∧ ¬p(x, x))) = 1 sledi da za proizvoljnu valuaciju wtakvu da je w ∼x v vazi Iw((p(x, f(x)) ∧ ¬p(x, x))) = 1. Mora da jew(x) = a (jer je D = {a}), pa je Iw(p(x, f(x))) = 1 i Iw(¬p(x, x)) = 1. IzIw(¬p(x, x)) = 1 sledi Iw(p(x, x)) = 0, tj. pI(w(x), w(x)) = 0, tj. pI(a, a) =0, sto je netacno, pa sledi da je pretpostavka bila pogresna, odakle daljesledi da postoji valuacija v takva da je Iv(A) = 0, tj. sledi da je D kon-tramodel za datu formulu A.

(c) Pretpostavimo da je L-struktura D = (D, IL) model date formule A ipretpostavimo da je skupD konacan, tj. pretpostavimo da jeD = {d1, d2,. . . , dm}.Neka je IL(f) = fI i IL(p) = pI . Neka je d′i odreden na sledeci nacin:

– neka je d′0 proizvoljan element skupa D;

– neka je d′i+1 = fI(d′i) za i ≥ 0.

Skup D je konacan, pa u nizu d′i, i = 0, 1, 2, . . ., mora da postoji bar jedanelement koji se ponavlja, tj. postoje vrednosti j i k (j < k) takve da jed′j = d′k.

Page 209: Vestacka-inteligencija

Resenja zadataka 209

Na osnovu pretpostavke, D je model za formulu A, pa za proizvoljnuvaluaciju v vazi Iv(A) = 1. Odatle, na osnovu definicije 3.10, sledi da vaziIv((∀x)(p(x, f(x)) ∧ ¬p(x, x))) = 1 i Iv((∀x)(∀y)(∀z)(p(x, y) ∧ p(y, z) ⇒p(x, z))) = 1.

Iz Iv((∀x)(p(x, f(x)) ∧ ¬p(x, x))) = 1 sledi da za proizvoljnu valuaciju wtakvu da je w ∼x v vazi Iw(p(x, f(x)) ∧ ¬p(x, x)) = 1. Odatle dalje sledipI(w(x), fI(w(x))) = 1 i pI(w(x), w(x)) = 0. Valuacija w je proizvoljna,pa je mozemo odabrati tako da vazi w(x) = d′i. Tada vazi pI(d′i, fI(d

′i)) =

1 i pI(d′i, d′i) = 0, tj. za svako i (i = 0, 1, 2, . . .) vazi pI(d′i, d

′i+1) = 1 i

pI(d′i, d′i) = 0.

S druge strane, iz Iv((∀x)(∀y)(∀z)(p(x, y)∧p(y, z)⇒ p(x, z))) = 1 sledi daza proizvoljnu valuaciju w takvu da je w ∼x v vazi Iw((∀y)(∀z)(p(x, y) ∧p(y, z) ⇒ p(x, z))) = 1. Kako je w proizvoljna valuacija, mozemo jeodabrati tako da vaziw(x) = d′. Iz Iw((∀y)(∀z)(p(x, y)∧p(y, z)⇒ p(x, z)))= 1 sledi da za proizvoljnu valuaciju w′ takvu da je w′ ∼y w (dakle, vaziw′(x) = w(x) = d′) vazi Iw′((∀z)(p(x, y)∧ p(y, z)⇒ p(x, z))) = 1. Kako jew′ proizvoljna valuacija za koju vazi w′ ∼y w, mozemo je odabrati takoda vazi w′(y) = d′′. Iz Iw′((∀z)(p(x, y) ∧ p(y, z) ⇒ p(x, z))) = 1 sledi daza proizvoljnu valuaciju w′′ takvu da je w′′ ∼z w′ (dakle, vazi w′′(x) =w′(x) = w(x) = d′ i w′′(y) = w′(y) = d′′) vazi Iw′′(p(x, y) ∧ p(y, z) ⇒p(x, z)) = 1. Kako je w′′ proizvoljna valuacija za koju vazi w′′ ∼z w′,mozemo je odabrati tako da vazi w′′(z) = d′′′. Iz Iw′′(p(x, y) ∧ p(y, z) ⇒p(x, z)) = 1 sledi da je Iw′′(p(x, y) ∧ p(y, z)) = 0 ili Iw′′(p(x, z)) = 1, tj. davazi Iw′′(p(x, y)) = 0 ili Iw′′(p(y, z)) = 0 ili Iw′′(p(x, z)) = 1, tj. da vazipI(w′′(x), w′′(y)) = 0 ili pI(w′′(y), w′′(z)) = 0 ili pI(w′′(x), w′′(z)) = 1.Dakle, za svaka tri elementa d′, d′′, d′′′ skupa D vazi pI(d′, d′′) = 0 ilipI(d′′, d′′′) = 0 ili pI(d′, d′′′) = 1. Vec smo dokazali da za svako i (i =0, 1, 2, . . .) vazi pI(d′i, d

′i+1) = 1, odakle sledi da za d′ = d′i, d

′′ = di+1,d′′′ = di+2 (za proizvoljno i, i = 0, 1, 2, . . .) mora da vazi pI(d′, d′′′) = 1,tj. pI(d′i, d

′i+2) = 1. Analogno, jednostavno se pokazuje matematickom

indukcijom da vazi pI(d′i, d′i+l) = 1 za proizvoljno i, i = 0, 1, 2, . . . i

proizvoljno l, l = 1, 2, . . .. Dakle, vazice i pI(d′j , d′k) = 1, tj. pI(d′j , d

′j) = 1

(jer je d′j = d′k). Medutim, vec smo pokazali da za svako i (i = 0, 1, 2, . . .)vazi pI(d′i, d

′i) = 0, sto je u kontradikciji sa pI(d′j , d

′j) = 1. Dakle, po-

lazna pretpostavka je bila pogresna, odakle sledi da za datu formulu Ane postoji model koji ima konacan domen.

34. Neka je D proizvoljna L-struktura, pri cemu za signaturu L = (Σ,Π, ar)vazi p ∈ Π i ar(p) = 1 i neka je V proizvoljan skup promenljivih takav da jex, y, z ∈ V . Neka je IL(p) = pI (gde je pI funkcija iz D u skup {0, 1}) i nekaje v proizvoljna valuacija. Dokazimo da vazi Iv((∀x)(∀y)(∃z)(p(x) ∧ p(y) ⇔p(z))) = 1. Pretpostavimo suprotno — da vazi Iv((∀x)(∀y)(∃z)(p(x) ∧ p(y) ⇔p(z))) = 0. To znaci da postoji valuacija vx takva da je vx ∼x v (neka jevx(x) = dx) i Ivx((∀y)(∃z)(p(x) ∧ p(y) ⇔ p(z))) = 0. To znaci da postoji val-uacija vy takva da je vy ∼y vx (vazi vy(x) = vx(x) = dx; neka je vy(y) = dy) iIvy ((∃z)(p(x) ∧ p(y) ⇔ p(z))) = 0. To znaci da za svaku valuaciju vz takvu daje vz ∼z vy vazi Ivz (p(x) ∧ p(y)⇔ p(z)) = 0. Odaberimo valuaciju vz takvu daje vz ∼z vy (vazi vz(x) = vy(x) = dx i vz(y) = vy(y) = dy) na sledeci nacin:

Page 210: Vestacka-inteligencija

210 13 Resenja zadataka

(a) ako je pI(dx) = 1 i pI(dy) = 1, neka je vz(z) = dx;

(b) ako je pI(dx) = 0, neka je vz(z) = dx;

(c) ako je pI(dy) = 0, neka je vz(z) = dy .

U slucaju (a), vazi Ivz (p(x)) = 1, Ivz (p(y)) = 1, Ivz (p(z)) = 1, odakle slediIvz (p(x) ∧ p(y)) = 1 i Ivz (p(x) ∧ p(y) ⇔ p(z)) = 1, sto je u suprotnosti saIvz (p(x) ∧ p(y) ⇔ p(z)) = 0. U slucaju (b), vazi Ivz (p(x)) = 0, Ivz (p(z)) = 0,odakle sledi Ivz (p(x)∧ p(y)) = 0 i Ivz (p(x)∧ p(y)⇔ p(z)) = 1, sto je nemoguce.U slucaju (c), vazi Ivz (p(y)) = 0 i Ivz (p(z)) = 0, odakle sledi Ivz (p(x)∧p(y)) = 0i Ivz (p(x) ∧ p(y) ⇔ p(z)) = 1, sto je nemoguce. Dakle, u svakom slucaju dola-zimo do kontradikcije, sto znaci da polazna pretpostavka nije bila ispravna.Dakle, mora da vazi Iv((∀x)(∀y)(∃z)(p(x) ∧ p(y) ⇔ p(z))) = 1. Kako je Ivproizvoljna valuacija, sledi da je data formula valjana.

39. Na primer, ¬(∃x)A ⇔ (∀x)¬A.

40. Vazi (∃x)(A ⇒ B) ≡ (∃x)(¬A∨B) ≡ (∃x)(¬A)∨(∃x)B ≡ ¬(∀x)A∨(∃x)B ≡(∀x)A ⇒ (∃x)B. Iz (∃x)(A ⇒ B) ≡ (∀x)A ⇒ (∃x)B, na osnovu teoreme 3.10sledi da je data formula valjana.

48. Tvrdenje je moguce dokazati indukcijom po slozenosti izraza ili na sledecinacin: pretpostavimo da za date izraze e1 i e2 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 supstitucija[ ], pa, na osnovu definicije kompozicije supstitucija sledi da λ1 i λ2 mogu dasadrze samo zamene oblika v′ 7→ v′′ (gde su v′ i v′′ simboli promenljivih), pasu unifikatori σ1 i σ2 jednaki do na preimenovanje promenljivih.

58. Dati uslovi mogu se reprezentovati na sledeci nacin:C1: vlasnikpsa(Janko)C2: ∀x(vlasnikpsa(x)⇒ volizivotinje(x))C3: ∀x(volizivotinje(x)⇒ (∀y(zivotinja(y)⇒ ¬udario(x, y))))C4: udario(Janko, Tuna) ∨ udario(Marko, Tuna)C5: macka(Tuna)C6: ∀x(macka(x)⇒ zivotinja(x))Metodom rezolucije moze se dokazati da iz navedenih formula sledi for-

mula udario(Marko, Tuna).

61.

A ∨B

¬A [A]1

⊥ ¬EB

efq[B]2

B∨E, 1, 2

Page 211: Vestacka-inteligencija

Resenja zadataka 211

62.

[¬B]1[A]2 [A⇒ B]3

B⇒ E

⊥ ¬E¬A ¬I, 2

¬B ⇒ ¬A ⇒ I, 1

(A⇒ B)⇒ (¬B ⇒ ¬A)⇒ I, 3

63.

[A ∨ (B ∧ C)]1

[A]2

A ∨B ∨I[A]2

A ∨ C ∨I

(A ∨B) ∧ (A ∨ C) ∧I

[B ∧ C]3

B∧E

A ∨B ∨I

[B ∧ C]3

C∧E

A ∨ C ∨I

(A ∨B) ∧ (A ∨ C) ∧I

(A ∨B) ∧ (A ∨ C)∨E, 2, 3

(A ∨ (B ∧ C))⇒ ((A ∨B) ∧ (A ∨ C))⇒ I, 1

64

A ∨ ¬A

[¬(A ∧B)]4[A]2 [B]1

A ∧B ∧I

⊥ ¬E¬B ¬I, 1

¬A ∨ ¬B ∨I[¬A]3

¬A ∨ ¬B ∨I¬A ∨ ¬B ∨E, 2, 3

¬(A ∧B)⇒ (¬A ∨ ¬B)⇒ I, 4

65.

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).

66.

suma(N,S):-N>0, N1 is N-1, suma(N1,S1), S is S1+N.suma(0,0).

67.

sumacifara(N,S):-N>=10, N1 is (N // 10), sumacifara(N1,S1), S is S1 + (N mod 10).sumacifara(N,N):-N<10.

68.

Page 212: Vestacka-inteligencija

212 13 Resenja zadataka

stepen(M,N,S):-N>0, N1 is N-1, stepen(M,N1,S1), S is S1*M.stepen(M,0,1).

69.

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).

70.

nzd(M,N,R):-N>0, T is M mod N, nzd(N,T,R).nzd(M,0,M).

71.

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).

72.

suma([],0).suma([X|R],M):-suma(R,M1), M is M1+X.

73.

obrni(X,Y):-obrni(X,[],Y).obrni([X|R],L,T):-obrni(R,[X|L],T).obrni([],X,X).

74.

dodajnakraj([H|R],X,[H|R1]):-dodajnakraj(R,X,R1).dodajnakraj([],X,[X]).

75.

uzastopni(X,Y,Z,[X,Y,Z|R]):-!.uzastopni(X,Y,Z,[_|R]):-uzastopni(X,Y,Z,R).

76.

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).

Page 213: Vestacka-inteligencija

Resenja zadataka 213

77.

dvadela([],[],[]).dvadela([G|R],[G|R1],R2):-G>=0, dvadela(R,R1,R2),!.dvadela([G|R],R1,[G|R2]):-dvadela(R,R1,R2).

78.

podeli([],[],[]).podeli([G|R],[G|R1],R2):-podeli(R,R1,R2).podeli([G|R],R1,[G|R2]):-podeli(R,R1,R2).

79.

podliste(L,P):-podeli(L,P,_).

80.

razliciti([],[]).razliciti([X|R],[X|R1]):-not(sadrzi(R,X)),razliciti(R,R1),!.razliciti([X|R],R1):-razliciti(R,R1).

81.

unija(X,Y,U):-append(X,Y,W),razliciti(W,U).

82.

presek([],L,[]).presek([G|R],L,[G|P]):-sadrzi(L,G),presek(R,L,P),!.presek([G|R],L,P):-presek(R,L,P).

83.

razlika([],L,[]).razlika([G|R],L,R1):-sadrzi(L,G),razlika(R,L,R1),!.razlika([G|R],L,[G|R1]):-razlika(R,L,R1).

84.

sim_razlika(X,Y,Z):-unija(X,Y,T),presek(X,Y,P),razlika(T,P,Z).