You are on page 1of 258

Predrag Jani ci c

Mladen Nikoli c

Ve sta cka inteligencija


c Juni 2010

2 Autori: dr Predrag Jani ci c, vanredni profesor Matemati ckog fakulteta u Beogradu email: janicic@matf.bg.ac.rs url: www.matf.bg.ac.rs/~janicic Mladen Nikoli c, asistent na Matemati ckom fakultetu u Beogradu email: nikolic@matf.bg.ac.rs url: www.matf.bg.ac.rs/~nikolic

CKA VESTA INTELIGENCIJA

Sva prava zadr zana. Nijedan deo ovog materijala ne mo ze biti reprodukovan niti sme sten u sistem za pretra zivanje ili transmitovanje u bilo kom obliku, elektronski, mehani cki, fotokopiranjem, smanjenjem ili na drugi na cin, bez prethodne pismene dozvole autora.

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

Sadr zaj
1 Uvod 1.1 Uska i op sta ve sta cka inteligencija . . . . . . . . . . . . . . . . . 9 11

I
2

Logika i logi cko programiranje


Iskazna logika 2.1 Sintaksa iskazne logike . . . . . . . . . . . . . . . . . . . . . . 2.2 Semantika iskazne logike . . . . . . . . . . . . . . . . . . . . . 2.2.1 Valuacija, interpretacija, model; zadovoljive, valjane, porecive i kontradiktorne formule . . . . . . . . . . . 2.2.2 Istinitosne tablice . . . . . . . . . . . . . . . . . . . . . 2.2.3 Logi cke posledice, logi cki ekvivalentne formule, supstitucija . . . . . . . . . . . . . . . . . . . . . . . . 2.2.4 Potpuni skupovi veznika . . . . . . . . . . . . . . . . 2.2.5 Normalne forme . . . . . . . . . . . . . . . . . . . . . 2.2.6 DejvisPatnamLogmanLovelandova procedura . . 2.2.7 Primer modelovanja problema u iskaznoj logici . . . Logika prvog reda 3.1 Sintaksa logike prvog reda . . . . . . . . . . . . . . . . . . . . 3.2 Semantika logike prvog reda . . . . . . . . . . . . . . . . . . 3.2.1 Valuacija, interpretacija, model; zadovoljive, valjane, porecive i kontradiktorne formule . . . . . . . . . . . 3.2.2 Logi cke posledice, logi cki ekvivalentne formule, supstitucija . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 Normalne forme . . . . . . . . . . . . . . . . . . . . . 3.2.4 Unikacija . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.5 Metod rezolucije . . . . . . . . . . . . . . . . . . . . . 3.3 Prirodna dedukcija . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Sa zetak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PROLOG 4.1 Interpretatori i kompilatori . . . . 4.2 Sintaksa i semantika u PROLOG-U 4.3 Po cetni primeri . . . . . . . . . . . 4.4 PROLOG i metod rezolucije . . . . 4.5 Stablo izvodjenja . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15
17 17 19 19 21 23 26 28 30 31 35 36 39 39 43 48 52 57 67 72 73 73 74 75 77 78

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

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

4 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 Operator se cenja . . . . . . . . . . . . . . . Negacija kao neuspeh . . . . . . . . . . . . Liste . . . . . . . . . . . . . . . . . . . . . . Ugradjeni predikati . . . . . . . . . . . . . Implementacija KNF algoritma . . . . . . Implementacija DPLL algoritma . . . . . Pretraga grafa . . . . . . . . . . . . . . . . Primer re savanje jednostavnog problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

SADRZAJ . . . . . . . . . . . . . . . . . . . . . . . . 79 83 85 89 92 94 97 97

II
5

Pretraga

101

Re savanje problema kao pretraga 103 5.1 Kvalitet algoritama pretrage . . . . . . . . . . . . . . . . . . . . . 105 5.2 Neinformisana i informisana pretraga . . . . . . . . . . . . . . . 106 Pohlepna pretraga 6.1 Penjanje uzbrdo u slu caju diferencijabilne funkcije cilja . . . . . Odredivanje puteva u grafu irinu . . . . . . . . . . . . . . . 7.1 Obilazak grafa u dubinu i s 7.2 Dejkstrin algoritam . . . . . . . . . . . . . . . . . . . . . . . 7.3 A* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.1 Primer upotrebe algoritma A* . . . . . . . . . . . . . 7.3.2 Specijalni slu cajevi . . . . . . . . . . . . . . . . . . . 7.3.3 Primer upotrebe algoritma A* na uniformnoj mre zi 7.3.4 Svojstva algoritma A* . . . . . . . . . . . . . . . . . 7.3.5 Implementaciona pitanja . . . . . . . . . . . . . . . 109 110 113 113 114 115 117 119 120 124 124 127 127 129 131 132 132 133 133 134 137 138 139 139 140 141 142 142 143

. . . . . . . .

. . . . . . . .

. . . . . . . .

Programiranje logi ckih igara 8.1 Razvoj automatskog igranja logi ckih igara i osnovni koncepti 8.2 Legalni potezi i stablo igre . . . . . . . . . . . . . . . . . . . . . 8.3 Otvaranje i biblioteka partija . . . . . . . . . . . . . . . . . . . . 8.4 Sredi snjica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4.1 Stati cka ocena pozicije i funkcija evaluacije . . . . . . . 8.4.2 Pretra zivanje stabla igre . . . . . . . . . . . . . . . . . . 8.4.3 Algoritam minimaks . . . . . . . . . . . . . . . . . . . . 8.4.4 Algoritam alfa-beta . . . . . . . . . . . . . . . . . . . . . 8.4.5 Heuristika killer . . . . . . . . . . . . . . . . . . . . . . . 8.4.6 Iterativni alfa-beta/killer algoritam . . . . . . . . . . . 8.4.7 Stabilno pretra zivanje . . . . . . . . . . . . . . . . . . . 8.4.8 Prekidi i vremenska ograni cenja . . . . . . . . . . . . . 8.4.9 Slo zenost algoritama za pretra zivanje stabla igre . . . . 8.5 Zavr snica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.5.1 Skupovi pozicija kao klase ekvivalencija . . . . . . . . . 8.5.2 Tekstovi saveta . . . . . . . . . . . . . . . . . . . . . . . 8.6 Implementaciona pitanja . . . . . . . . . . . . . . . . . . . . . .

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

SADRZAJ 9 Genetski algoritmi 9.1 Motivacija za genetske algoritme . . . . . . . . . . . . . . 9.2 Osnovni genetski algoritam . . . . . . . . . . . . . . . . . 9.3 Reprezentacija jedinki . . . . . . . . . . . . . . . . . . . . 9.3.1 Binarna reprezentacija . . . . . . . . . . . . . . . . 9.4 Funkcija prilagodenosti . . . . . . . . . . . . . . . . . . . 9.5 Inicijalizacija i zaustavljanje . . . . . . . . . . . . . . . . . 9.6 Selekcija . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.6.1 Ruletska selekcija . . . . . . . . . . . . . . . . . . . 9.6.2 Turnirska selekcija . . . . . . . . . . . . . . . . . . 9.7 Reprodukcija i genetski operatori . . . . . . . . . . . . . . 9.7.1 Ukr stanje . . . . . . . . . . . . . . . . . . . . . . . 9.7.2 Mutacija . . . . . . . . . . . . . . . . . . . . . . . . 9.8 Zaustavljanje . . . . . . . . . . . . . . . . . . . . . . . . . . 9.9 Parametri algoritma . . . . . . . . . . . . . . . . . . . . . . 9.10 Svojstva genetskih algoritama . . . . . . . . . . . . . . . . 9.11 Primer primene genetskih algoritama evolucija agenta 9.11.1 Implementaciona pitanja . . . . . . . . . . . . . .

5 147 147 148 149 149 150 151 151 152 153 153 153 154 154 155 155 156 157

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

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

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

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

III

Ma sinsko u cenje
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

159
161 162 163 166 166 167 167 168 168 171 171 172 173 177 183 186

10 Uvod 10.1 Generalizacija i apstrakcija . . . . . . . . . . . . 10.2 Primer problema u cenja . . . . . . . . . . . . . 10.3 Nadgledano i nenadgledano u cenje . . . . . . . 10.4 Ciljna funkcija i modeli podataka . . . . . . . . 10.5 Podaci . . . . . . . . . . . . . . . . . . . . . . . 10.5.1 Reprezentacija podataka . . . . . . . . . 10.5.2 Podaci za trening i podaci za testiranje 10.6 Dizajn sistema koji u ci . . . . . . . . . . . . . .

11 Klasikacija 11.1 Metode klasikacije zasnovane na instancama . . . . . 11.1.1 Metoda n-najbli zih suseda . . . . . . . . . . . . . 11.1.2 N-grami . . . . . . . . . . . . . . . . . . . . . . . 11.2 U cenje stabala odlu civanja . . . . . . . . . . . . . . . . . 11.3 Mere kvaliteta i tehnike evaluacije klasikacije . . . . . 11.4 Preterano prilagodavanje modela podacima za trening 12 Regresija 12.1 Linearna regresija . . . . . . . . . . . . . . . . . . . . . . 12.2 Pretpostavke linearne regresije . . . . . . . . . . . . . . 12.3 Ispitivanje kvaliteta linearne regresije . . . . . . . . . . 12.4 Preterano prilagodavanje modela podacima za trening 13 Klasterovanje

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . .

. . . .

. . . .

. . . .

189 . 189 . 192 . 192 . 196 199

SADRZAJ

IV

Re senja zadataka

201
203

14 Re senja zadataka

Predgovor
Ovo su bele ske koji prate predavanja i ve zbe iz predmeta Ve sta ca inteligencija koje smo dr zali akademskih godina 2007/08, 2008/09, 2009/10. Funkcija bele ski je da olak saju pra cenje predavanja i da slu ze kao podsetnik tokom enje pripremanja ispita. Oni ne mogu da zamene pohadanje nastave i kori sc druge literature.

Predrag Jani ci c i Mladen Nikoli c Beograd, juni 2010.

SADRZAJ

Glava 1

Uvod
Smatra se da je ve sta cka inteligencija kao informati cka disciplina ustanovljena na znamenitoj konferenciji The Dartmouth Summer Research Conference on Articial Intelligence u Darmutu (Sjedinjene Ameri cke Dr zave), 1956. godine. Tom prilikom predlo zeno je, od strane D zona Makartija, i s amo ime discipline, ne esto izazivalo nedumice i podozrenje. Konferencija sasvim sre cno, jer je to ime c je trajala mesec dana i bila je pre svega usmerena ka prolisanju nove oblasti koja je nastajala. Konferenciju su organizovali D zona Makartija, Marvin Min ski, Natanijel Ro cester i Klod Senon. Ve sta cka inteligencija je jedna od oblasti ra cunarstva koja se poslednjih decenija najbr ze razvija. Paralelno sa tim burnim razvojem rastu i o cekivanja od ove discipline. Dok se za neke oblasti ra cunarstva ve c smatra da su zaokru zene i da se u njima ne o cekuju novi zna cajni prodori, od ve sta cke inteligencije se rezul to su ve tati tek o cekuju, uprkos tome s c razvijeni mnogi inteligentni sistemi to ti koji funkcioni su izuzetno dobro. Ovo mo zda mo zemo da objasnimo time s inteligentni sistemi, i pored varljivih spoljnih manifestacija, funkcioni su na e ne mo principima koje, naj ce sc zemo smatrati zaista inteligentnim. Time, naravno, ve sta cka inteligencija samo dovbija na atraktivnosti, a novi eksperimenti i teorijska istra zivanja predstavljaju put ka novim primenama u najrazli citijim oblastima. Kako je razvoj ve sta cke inteligencije oduvek bio zasnovan na komplementarnom povezivanju teorije i eksperimenata, tako i budu ci razvoj za ivanje teorijskih znanja, pre svega matemati hteva pro sirivanje i u cvr sc ckih, ali i znanja o speci cnim oblastima primene, kao i njihovu adekvatnu formalizaciju. ta je to U uvodnom delu poku sajmo da odgovorimo i na osnovna pitanja s ta je to ve inteligencija i s sta cka inteligencija. Uobi cajeno pod inteligencijom podrazumevamo sposobnost usvajanja, pam cenja i obrade odredjenjih znanja. Ipak, nijedna denicija ve sta cke inteligencije nije op ste prihva cena (bar ne neka koja bi odgovarala uobi cajenom, svakodnevnom smislu i istovremeno precizno i formalno opisivala pojam). U svakom slu caju mo zemo smatrati da inteligencija podrazumeva bar dve sposobnosti: sposobnost pam cenja, skladi stenja znanja i mogu cnost njegove obrade. Osoba (ili ma sina) bez ikakvog znanja ne mo ze biti smatrana inteligentnom. Takodje, inteligentnom ne mo ze biti smatrana ni osoba (ili ma sina) sa ogromnom koli cinom stati ckog znanja odnosno podataka, ali bez sposobnosti da to znanje obradjuje i da re sava probleme u vezi sa njim. Postoje i drugi aspekti inteligencije. Jedan od njih je brzina obrade

10

1 Uvod

znanja, koja je, kada su u pitanju ra cunari, zavisna ne samo od procedura za zaklju civanje, ve c, naravno, i od tehni ckih karakteristika pojedinog ra cunara. Sposobnost u cenja - usvajanja novih znanja takodje je jedan od aspekata inteligencije, iako je mo zemo uvrstiti u sposobnost re savanja problema. Aspektom inteligencije mo zemo smatrati i sposobnost komunikacije sa drugim inteligentnim bi cima (ma sinama), koju takodje mo zemo uvrstiti u re savanje problema. Smatra cemo, dakle, da bi ce ili ma sina imaju atribute intelignetnog, ako imaju navedena svojstva. Ako se radi o ma sini odnosno uredjaju bilo koje vrste sa navedenim svojstvima, govori cemo o ve sta ckoj inteligenciji. Podsetimo se i jedne klasi cne denicije ve sta cke inteligencije: ako su u odvojene dve prostorije sme stene jedna ljudska osoba i neka naprava i ako na identi cne probleme one pru zaju odgovore na osnovu kojih se ne mo ze pogoditi u ko ovek, a u kojoj naprava, onda mo joj sobi je c zemo smatrati da ta naprava ima atribute ve sta cke inteligencije. Bez obzira na sve manjkavosti ovih opisa, ne cemo poku savati da pronadjemo bolje opise pojmova o kojima je re c. Nakon svega, dobro je navesti i jednu rigorozniju i mo zda suvoparniju, ali verovatno najbolju deniciju ve sta cke inteligencije to je disciplina koja se bavi problemima u kojima se javlja kombinatorna eksplozija. Za pojam inteligencije su stinska su dva pitanja: pitanje znanja i pitanje zaklju civanja, koja, kada govorimo o ra cunarima, odgovaraju pojmovima baze znanja i komponente zaklju civanja. Komponenta zaklju civanja (izvodjenja) predstavlja takodje neku vrstu znanja - to je znanje o procesu izvodjenja novih informacija iz iz date baze znanja i o pravilima po kojima se to izvodjenje vr si. Znanje ovog tipa zva cemo meta-znanjem. Sam pojam znanja, takodje ima vi se aspekata. Po mnogim lozofskim koncepcijama znanje predstavlja tvrdjenja za emo c esto imati koje je utvrdjeno ili mo ze biti utvrdjeno da su ta cna. Ipak, mi c emo potrebu da radimo i sa informacijama koje ne moraju da budu ta cne, pa c iri pojam znanja i pod njim podrazumevati i istinite, potvrdjene prihvatiti s injenice, ali i hipoteze, nepotpune informacije i informacije date sa odredjenim c verovatno cama. Izbor reprezentacije znanja je jedan od klju cnih problema i on je u direktnoj vezi i sa prirodom odredjenog znanja, ali i sa prirodom mehanizama za zaklju civanje. Mehanizmi za zaklju civanje moraju biti prilagodjeni e u jednom slu reprezentaciji znanja i njegovoj prirodi, pa c caju biti zasnovani na klasi cnoj logici, a u drugom na modalnoj logici, teoriji verovatno ce, fazi logici itd. Zaklju civanjem mo cemo smatrati proces po kojem se na osnovu baze znanja mo ze izvesti informacija koja u njoj nije eksplicitno sadr zana. Tako, na injenice: primer, ako u bazi znanja imamo c I 1 : ... I 2 : ... injenicu: na osnovu njih mogu ce je izvesti c I 3 : ... koja zaista nije bila eksplicitno sadr zana u polaznoj bazi znanja. Navedeni primer odgovara uobi cajenom zaklju civanju koje odgovara ljudskom iskustvu. emo se, medjutim, susretati sa problemima kod kojih je te Cesto c sko precizno ovekovom i biti prinudjeni da zasnovati proces zaklju civanja koji odgovara c tragamo za sosticiranijim tehnikama koje odgovaraju tim zahtevima. U vezi

1.1 Uska i op sta ve sta cka inteligencija

11

sa formalizacijom prirodnog toka zaklju civanja su i problemi monotonog i nemonotonog zaklju civanja. Na kraju uvodnog dela jednostavnim primerom ilustrova cemo nekoliko razli citih oblika zaklju civanja. Razmotrimo odnos veze (i)x(P (x) Q(x)) injenica ic (ii)P (a) (iii)Q(a). injenice Q(a) na osnovu (i) i (ii) je potpuno opravdano i odgoIzvodjenje c vara matemati ckim principima deduktivnog zaklju civanja. Izvodjenje veze (i) na osnovu niza parova (ii), (iii) za razli cite instance argumenta, odgovara nepotpunoj indukciji, nema matemati cku egzaktnost, a u prakti cnim primenama pouzdanost mu se pove cava sa brojem instanci koje potvrdjuju hipotezu. injenice (ii) na osnovu (i) i (ii) zovemo abdukcijom. Ono takodje Izvodjenje c nije egzaktno, a opravdanje ima u odnosu uzroka i posledice. Tako, ako raspola zemo injenica nizom veza oblika (i) za razli cita svojstva Qi (i = 1, ..., n) i nizom c u), da Qi (a)(i = 1, ..., n), mo zemo da zaklju cimo (sa izvesnom pouzdano sc kao uzrok posledicama Qi (a)(i = 1, ..., n) va zi svojstvo P (a). Ovaj princip za esto se primenjuje u medicinskim ekspertnim sistemima za utvrdklju civanja c jivanje (potencijalnog) uzroka na osnovu poznatih simptoma.

1.1

Uska i op sta ve sta cka inteligencija

The advent of a human-level articial intelligencea machine capable of the richness of expression and nuance of thought that we associate with humanity promises to generate tremendous wealth for the inventors and companies that develop it. According to the Business Communications Company, the market for AI software and products reached 21 billion in 2007, an impressive gure that doesnt touch on the wealth that a human-level articial intelligence could generate across industries. At present, the worlds programmers have succeeded in auto mating the delivery of electricity to our homes, the trading of stocks on exchanges, and much of the ow of goods and services to stores and ofces across the globe, but, after more than half a century of research, they have yet to reach the holy grail of computer sciencean articial general intelligence (AGI). Is the tide turning? At the second annual Singularity Summit in San Francisco last September, I discovered that the thinkers and researchers at the forefront of the eld are pitched in an intellectual battle over how soon AGI might arrive and what it might mean for the rest of us. The NotSo-Rapid Progress Of AI Research The scientic study of articial intelligence has many roots, from IBMs development of the rst number-crunching computers 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, Alan Turing, and John Von Neumann were also the founding fathers of the study of articial intelligence. During the late 1960s and early 1970s, money for AI work was as easy as expectations were unrealistic, fueled by Hollywood images of cocktail -serving robots and a Hal 9000 (a non- homicidal one, presumably) for every home. In an ebullient moment in 1967, Marvin Minsky, proclaimed.

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

12

1 Uvod

Within a generation . . . the problem of creating articial intelligence will substantially be solved, by which he meant a humanistic AI. Public interest dried up when the robot army failed to materialize by the early 1980s, a period that researchers refer to as the AI winter. But research, though seemingly dormant, continued. The eld has experienced a revival of late. Primitive-level AI is no longer just a Hollywood staple. Its directing trafc in Seattle through a program called SmartPhlow, guiding the actions of hedge-fund managers in New York, executing Internet searches in Stockholm, and routing factory orders in Beijing over integrated networks like Ciscos. More and more, the worlds banks, governments, militaries, and businesses rely on a variety of extremely sophisticated computer programswhat are sometimes called narrow AIs to run our ever-mechanized civilization. We look to AI to perform tasks we can easily do ourselves but havent the patience for any longer. There are 1.5 million robot vacuum cleaners already in use across the globe. Engineers from Stanford University have developed a fully autonomous self-driving car named Stanley, which they rst showcased in 2005 at the Defense Advanced Research Projects Agencys (DARPA) Grand Challenge motor cross. Stanley represents an extraordinary improvement over the self-driving machines that the Stanford team was showing off in 1979. The original self-driving robot needed six hours to travel one meter. Stanley drove 200 meters in the same time. The next big leap will be an autonomous vehicle that can navigate and operate in trafc, a far more complex challenge for a robotic driver, according to DARPA director Tony Tether. In other words, robot taxis are coming to a city near you. The decreasing price and increasing power of computer processing suggest that, in the decades ahead, narrow AIs like these will become more effective, numerous, and cheap. But these trends dont necessarily herald the sort of radical intellectual breakthrough necessary to construct an articial general intelligence. Many of the technical (hardware) obstacles to creating an AGI have fallen away. The raw computing power may nally existand be cheap enoughto run an AGI program. But the core semantic and philosophical problems that science has faced for decades are as palpable as ever today. How exactly do you write a computer program that can think like a human? The War between the Neats and the Scrufes There are two paths to achieving an AGI, says Peter Voss, a software developer and founder of the rm Adaptive A.I. Inc. One way, he says, is to continue developing narrow AI, and the systems will become generally competent. It will become obvious how to do that. When that will happen or how it will come about, whether through simbots or some DARPA challenge or something, I dont know. It would be a combination of those kinds of things. The other approach is to specically engineer a system that can learn and think. Thats the approach that [my rm] is taking. Absolutely I think thats possible, and I think its closer than most people thinkve to 10 years, tops. The two approaches outlined by Vosseither tinkering with mundane programs to make them more capable and effective or designing a single comprehensive AGI system speak to the long-standing philosophical feud that lies at the heart of AI research: the war between the neats and the scrufes. J. Storrs Hall, author of Beyond AI: Creating the Conscience of the Machine (Prometheus Books, 2007), reduces this dichotomy to a scientic approach vs. an engineering mind-set. The neats are after a single, elegant solution to the answer of human intelligence, Hall says. Theyre trying to explain the human mind by turning it into

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

1.1 Uska i op sta ve sta cka inteligencija

13

a math problem. The scrufes just want to build something, write narrow AI codes, make little machines, little advancements, use whatever is available, and hammer away until something happens. The neat approach descends from computer science in its purest form, particularly the war game studies of Von Neumann and his colleagues in the 1930s and 1940s. The 1997 defeat of world chess champion Garry Kasparov by IBMs Deep Blue computer is considered by many the seminal neat success. Up until that moment, the mainstream scientic community generally accepted the premise that AIs could be written to perform specic tasks reasonably well, but largely resisted the notion of superhuman computing ability. Deep Blue 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). But the success of Deep Blue was limited. While the machine demonstrated technical expertise at chess, it didnt show any real comprehension of the game it was playing, or of itself. As Paris Review editor George Plimpton observed after the match, The machine isnt going to walk out of the hotel there and start doing extraordinary things. It cant manage a baseball team, cant tell you what to do with a bad marriage. The validity of this observation isnt lost on todays AI community. What we thought was easy turned out to be hard, and what we thought was hard turned out to be easy, says Stephen Omohundro, founder of the rm Self-Aware Systems. Back in the early Sixties, people thought that something like machine vision would be a summer project for a masters student. Todays machine vision systems are certainly better than they were, but no vision system today can reliably tell the difference between a dog and a cat, something that small children have no problem doing. Meanwhile, beating a world chess champion turned out to be a snap.

14

1 Uvod

Deo I

Logika i logi cko programiranje

Glava 2

Iskazna logika
U iskaznoj logici promenljive reprezentuju iskaze. Iskazi mogu biti kombinovani u slo zenije iskaze logi ckim veznicima. Iskazna logika dovoljno je izra zajna za opisivanje i reprezentovanje mnogih problema, uklju cuju ci mnoge prakti cne to je, na primer, dizajn integrisanih kola. probleme, kao s Iskazna logika ima tri aspekta: svoju sintaksu (ili jezik), svoju semantiku (ili zna cenje iskaza) i svoje deduktivne sisteme. I semantika i deduktivni sistemi grade se nad isto denisanom sintaksom, tj. nad istim skupom formula. Centralni problemi u iskaznoj logici su ispitivanje da li je data iskazna formula valjana (tautologija) i da li je data iskazna formula zadovoljiva. Ovaj drugi problem poznat je kao problem SAT i on je tipi can predstavnik skupa NP -kompletnih problema. Postoji vi se metoda i pristupa za ispitivanje valjanosti i zadovoljivosti. Neki od njih su semanti cke, a neki deduktivne (tj. sintaksno-deduktivne) prirode. ova dva koncepta je tvrdenje Klju cna veza izmedu da je iskazna formula valjana ( sto je semanti cka kategorija) ako i samo ako je ona teorema ( sto je deduktivna kategorija). Zahvaljuju ci ovoj vezi, sintaksa iskazne logike (jezik iskazne logike), njena semantika (konvencije o zna cenju formula) i njena deduktivna ine kompaktnu celinu. svojstva c

2.1

Sintaksa iskazne logike

Sintaksni aspekt iskazne logike govori o njenom jeziku, a o formulama isklju civo kao o nizovima simbola i ne uzima u obzir bilo kakvo njihovo (mogu ce) zna cenje. Denicija 2.1 Skup iskaznih formula (ili jezik iskazne logike) nad prebrojivim skupom iskaznih slova P je skup za koji va zi: iskazna slova (iz skupa P ) i logi cke 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 kona cnom primenom prethodna dva pravila.

18

2 Iskazna logika

esto c emo pisati kra Umesto termina iskazna formula c ce formula ili iskaz. U daljem tekstu smatra cemo (ako nije druga cije nagla seno) da je skup P ksiran. Elemente skupa P obi cno ozna cavamo malim latini cnim slovima (eventualno sa indeksima). Iskazne formule obi cno ozna cavamo velikim latini cnim slovima (eventualno sa indeksima). Skupove iskaznih formula obi cno ozna cavamo velikim slovima gr ckog alfabeta (eventualno sa indeksima). Logi cke veznike zovemo i bulovskim veznicima ili, kra ce, veznicima. Zapis itamo negacija A ili ne A. Zapis (A B ) c itamo A konjunkcija B ili A i (A) c itamo A disjunkcija B ili A ili B . Zapis (A B ) c itamo B . Zapis (A B ) c itamo A ekvivalencija B ili A A implikacija B ili iz A sledi B . Zapis (A B ) c ekvivalentno B . Iskazna slova zovemo i iskazne promenljive ili iskazne varijable. Elemente itamo skupova P i { , } zovemo atomi ckim iskaznim formulama. Simbol c itamo nete. Literal je iskazna formula koja je ili atomi te, a simbol c cka iskazna formula ili negacija atomi cke iskazne formule. Klauza je disjunkcija literala. Ako su dve iskazne formule A i B sintaksno identi cne (tj. ako su jednake kao nizovi simbola), onda to ozna cavamo A = B . Ako dve iskazne formule A i B nisu sintaksno identi cne, onda to ozna cavamo A = B . Zagrade se koriste kako bi se izbegla vi sesmislenost. Naime, bez zagrada, iskazna formula a b c ima dva mogu ca tuma cenja: ((a b) c) i (a enjem preksne poljske notacije. (b c)). Vi sesmislenost se mo ze izbe ci i kori sc U toj notaciji, iskazna formula ((a b) c) se zapisuje a b c, a iskazna itljivosti, koristi formula (a (b c)) se zapisuje a b c. Ipak, zbog c cemo inksni zapis, zapis iskaznih formula koji odgovara prethodnoj deniciji. Da enje velikog broja zagrada obi bismo izbegli kori sc cno izostavljamo spoljne zagrade i usvajamo konvenciju uz koju u nekim iskaznim formulama neke zagrade mogu biti izostavljene bez straha od vi sesmislenosti. Ta konvencija za snovana je na prioritetu veznika i to na slede ci na cin (veznici su poredani po prioritetima od ve ceg ka manjem): . Denicija 2.2 Skup potformula formule A je najmanji skup formula koje zadovoljavaju slede ce uslove: svaka iskazna formula A je potformula sama sebi; Ako je A jednako B , onda je svaka potformula formule B istovremeno i potformula 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 istovremeno i potformula formule A. Primer 2.1 Skup potformula formule (p q ) r je {p, q, r, p q, (p q ) r}. Denicija 2.3 Funkcija c iz skupa iskaznih formula u skup N (skup prirodnih brojeva) svakoj iskaznoj formuli pridru zuje slo zenost na slede ci na cin: 1. ako je A atomi cka 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;

2.2 Semantika iskazne logike 5. c(A B ) = c(A) + c(B ) + 1; 6. c(A B ) = c(A) + c(B ) + 1.

19

Funkcijom c svakoj iskaznoj formuli pridru zuje se (jedinstvena) slo zenost.

2.2

Semantika iskazne logike

e Semanti cki aspekt iskazne logike govori o zna cenju formula. U nastavku c biti uvedena semantika iskazne logike u stilu Tarskog (koji je prvi precizno uveo pojam semantike 1933. godine) [?]. Tako uvedenu semantiku zovemo i semantika 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 ili univerzumom valuacije. Svaka valuacija v odreduje funkciju Iv koju zovemo interpretacijom za valuaciju v i koja preslikava skup iskaznih formula u skup {0, 1}. Interpretaciju Iv deni semo na slede ci na cin: 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 ina ce; Iv (A B ) = 0 ako je Iv (A) = 0 i Iv (B ) = 0 ; Iv (A B ) = 1 ina ce; Iv (A B ) = 0 ako je Iv (A) = 1 i Iv (B ) = 0 ; Iv (A B ) = 1 ina ce; Iv (A B ) = 1 ako je Iv (A) = Iv (B ); Iv (A B ) = 0 ina ce. Vrednost Iv (A) zovemo vredno sc u iskazne formule A u interpretaciji Iv . Ako za valuaciju v va zi Iv (A) = 1, onda ka zemo da je iskazna formula A ta cna u interpretaciji Iv i da je iskazna formula A ta cna u valuaciji v . Ako za valuaciju v va zi Iv (A) = 0, onda ka zemo da je iskazna formula A neta cna u interpretaciji Iv . Mo ze se dokazati da se, za odredenu valuaciju v , funkcijom Iv denisanom na navedeni na cin, svakoj formuli pridru zuje (jedinstvena) vrednost (u toj interpretaciji). Denicija 2.4 Valuacija v je zadovoljavaju ca za formulu A ako je Iv (A) = 1. Ka zemo i da je zadovoljavaju ca valuacija v model za A i pi semo v |= A. Denicija 2.5 Iskazna formula A je zadovoljiva ako postoji valuacija koja je za nju zadovoljavaju ca. Formula A je valjana ili tautologija1 ako je svaka valuacija za nju
1 Re c tautologija gr ckog je porekla i sa cinjena je od re ci tauto (gr cki isto) i logos (gr cki re c, re ci). U bukvalnom prevodu, ,,tautologija zna ci ,,re ci isto. U lingivsti ckom smislu, kao i u svakodnevnom jeziku, ozna cava ponavljanje istog, re ci istu stvar drugim re cima, redudantnost (sli cno, to i pleonazam pleonazam ozna enje suvi ali ne isto s cava kori sc snih re ci prilikom ukazivanja na neki pojam). Opisani pojam tautologije razlikuje se od pojma tautologije u logici. U savremenim esnaestom veku. evropskim jezicima re c tautologija prvi put se javlja u s

20

2 Iskazna logika

zadovoljavaju ca, tj. ako za svaku valuaciju v va zi v |= A i to zapisujemo |= A. Iskazna formula je nezadovoljiva ili kontradikcija ako ne postoji valuacija koja je za nju zadovoljavaju ca. Formula je poreciva ako postoji valuacija koja za nju nije zadovoljavaju ca. Drugim re cima, iskazna formula je zadovoljiva ako postoji valuacija u kojoj je ta formula ta cna. Iskazna formula je valjana ako je ta cna u svakoj valuaciji. Iskazna formula je nezadovoljiva ako je neta cna u svakoj valuaciji. Iskazna formula je poreciva ako postoji valuacija u kojoj je ta formula neta cna. Primer 2.2 Iskazne formule p p i p p su tautologije; iskazna formula p q je zadovoljiva i poreciva, a iskazna formula p p je kontradikcija. Problem ispitivanja da li je data iskazna formula zadovoljiva ozna cava se sa (od engleskog satisability problem problem zadovoljivosti). SAT problem je NP-kompletan [?]. S obzirom na to da se jo s uvek ne zna da li su klase P i NP problema jednake, to zna ci da se jo s uvek ne zna da li postoji algoritam za ispitivanje zadovoljivosti koji je polinomijalne slo zenosti. Kako je op ste uverenje da su klase P i NP problema razli cite, veruje se i da ne postoji polinomijalni algoritam za re savanje SAT problema. I najekasniji danas poznati algoritmi za re savanje ovog problema su eksponencijalne slo zenosti.
SAT

Denicija 2.6 Skup iskaznih formula je zadovoljiv ako postoji valuacija u kojoj je svaka formula iz ta cna. Za valuaciju v koja je zadovoljavaju ca za sve formule iz ka zemo da je model za . Skup iskaznih formula je nezadovoljiv ili kontradiktoran ako ne postoji valuacija u kojoj je svaka formula iz ta cna. Primer 2.3 Skup iskaznih formula {p q, p, q } je kontradiktoran (ali nijedan njegov 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 postoji valuacija v u kojoj formula B nije ta cna. Formula A je tautologija, pa je ta cna i u valuaciji v . U toj valuaciji, dakle, formula A B nije ta cna, to protivre s ci pretpostavci da je A B tautologija. Dakle, formula B je to je i trebalo dokazati. 2 ta cna u svakoj valuaciji, pa je ona tautologija, s

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 slede ca tvrdenja: (a) Ako su formule A B i A C tautologije, onda je i B C tautologija. (b) Ako su formule A B , A C , B D tautologije, onda je i C D tautologija. (c) Ako su formule A B i C B tautologije, onda je i A C tautologija.

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

2.2 Semantika iskazne logike Zadatak 3 Dokazati slede ca 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 slede ca 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.

21

Zadatak 6 Dokazati slede ca tvrdenja ( i su skupovi iskaznih formula, A je iskazna formula): (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 (navedena u prethodnom poglavlju) mogu biti reprezentovana osnovnim istinitosnim tablicama: A 0 1 A 1 0

22 A 0 0 1 1 B 0 1 0 1 AB 0 0 0 1 AB 0 1 1 1 AB 1 1 0 1 AB 1 0 0 1

2 Iskazna logika

Na osnovu navedenih tablica (tj. na osnovu pravila za odredivanje vrednosti formule), mo ze se kontruisati istinitosna tablica za proizvoljnu iskaznu formulu. U istinitosnoj tablici za neku formulu svakoj vrsti odgovara jedna valuacija iskaznih slova koje se pojavljuju u toj formuli. Svakoj koloni odgovara jedna potformula te formule. Istinitosne tablice su pogodne i za ispitivanje valjanosti, zadovoljivosti, nezadovoljivosti i porecivosti. Ukoliko iskazna formula A sadr zi iskazne varijable p1 , p2 , . . ., pn , istinitosna tablica treba da sadr zi sve mogu ce valuacije za ovaj skup varijabli (valuacije za druge varijable nisu relevantne). U zavisnosti od vrednosti iskaznih varijabli, izra cunavaju se vrednosti slo zenijih iskaznih formula, sve do s ame iskazne formule koja se ispituje. Ako su u koloni koja odgovara s amoj iskaznoj formuli sve vrednosti jednake 1, formula je tautologija; ako je bar jedna vrednost jednaka 1, formula je zadovoljiva; ako je bar jedna vrednost jednaka 0, formula je poreciva; ako su sve vrednosti jednake 0, formula je kontradikcija. Ovo pokazuje da su problemi ispitivanja valjanosti, zadovoljivosti, nezadovoljivosti i porecivosti odlu civi problemi, tj. postoje algoritmi koji ih mogu re siti. Primer 2.4 Iskaznoj formuli (q p) (p q ) odgovara slede ca istinitosna tablica: p 0 0 1 1 q 0 1 0 1 q 1 0 1 0 p 1 1 0 0 q p 1 1 0 1 pq 1 1 0 1 (q p) (p q ) 1 1 1 1

Dakle, data formula je zadovoljiva i valjana. Ona nije poreciva i nije kontradikcija. Primer 2.5 Istinitosna tablica mo ze biti zapisana u skra cenom obliku zapisivanjem samo zadate iskazne formule i odgovaraju cih vrednosti ispod pojedina cnih iskaznih slova i veznika. Iskaznoj formuli iz prethodnog primera odgovara slede ca skra cena istinitosna tablica (popunjena u nekoliko koraka): ( q 0 1 0 1 q 0 1 0 1 p) 0 0 1 1 p) 0 0 1 1 (p 0 0 1 1 (p 0 0 1 1 q) 0 1 0 1 q) 0 1 0 1

( 1 0 1 0

1 1 0 0

1 1 0 1

2.2 Semantika iskazne logike ( 1 0 1 0 ( 1 0 1 0 q 0 1 0 1 q 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 p) 0 0 1 1 p) 0 0 1 1 (p 0 0 1 1 (p 0 0 1 1 1 1 0 1 1 1 0 1 q) 0 1 0 1 q) 0 1 0 1

23

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, kori sc enjem istinitosnih tablica, da je i formula (D A) B tautologija. Zadatak 11 Odrediti formulu A takvu da je formula ((A q ) p) ((p q ) A) tautologija. Zadatak 12 Odrediti, kori sc enjem istinitosnih tablica, (ako postoji) formulu A takvu da je formula ((p (q r)) A) (A ((r q ) p)) tautologija.

2.2.3

Logi cke posledice, logi cki ekvivalentne formule, supstitucija

Denicija 2.7 Ka zemo da je iskazna formula A logi cka posledica skupa iskaznih formula i pi semo |= A ako je svaki model za skup istovremeno i model za formulu A. Kada je skup kona can, tada {A1 , ..., An } |= B (tj. |= B ) pi semo kra ce A1 , ..., An |= B . Ako je formula A logi cka posledica praznog skupa formula, onda to zapisujemo |= A. Ako ne va zi |= A, onda to zapisujemo |= A. Teorema 2.2 (a) Formula je valjana ako i samo ako je logi cka posledica praznog skupa formula. (b) Ako je skup kontradiktoran, onda je svaka formula njegova logi cka posledica. Specijalno, svaka formula je logi cka posledica skupa {}. (c) Ako je i |= A, onda je |= A.

Dokaz:

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

24

2 Iskazna logika (a) Ako je formula valjana, onda je ona ta cna u svakoj valuaciji pa i u svakom modelu praznog skupa formula, te je ona logi cka posledica praznog skupa formula. Svaka valuacija je model za prazan skup formula, pa ako je formula logi cka posledica praznog skupa formula, onda je ona ta cna u svakoj valuaciji, te je valjana. (b) Ako je skup kontradiktoran, onda on nema nijedan model. Va zi da je svaki model iz tog (praznog!) skupa modela model za proizvoljnu formulu, pa je proizvoljna formula logi cka posledica skupa . (c) Pretpostavimo da va zi i |= A. Iz |= A sledi da je proizvoljan model za model i za A. Kako je , proizvoljan model za je model za , pa i za A. Dakle, va zi |= A. 2

Primetimo da se simbol |= koristi i za zapisivanje da je valuacija v model formule A i za ozna cavanje relacije logi cke posledice. Primetimo i da u oba okvira zapis |= A ima isto zna cenje da je formula A valjana.

Denicija 2.8 Ka zemo da su dve iskazne formule A i B logi cki ekvivalentne i pi semo A B ako je svaki model formule A model i za B i obratno (tj. ako va zi A |= B i B |= A).

Ako je svaki model za A istovremeno i model za B i obratno, onda u bilo kojoj valuaciji formule A i B imaju jednake vrednosti. Tvrdenja oblika A B zovemo logi ckim ekvivalencijama (ili kra ce ekvivalencijama). Relacija je, o cigledno, relacija ekvivalencije nad skupom iskaznih formula. Teorema 2.3 Va zi A B ako i samo ako je iskazna formula A B tautologija.

Dokaz: Pretpostavimo da va zi A B . U proizvoljnoj valuaciji v formule A i B imaju istu vrednost, pa je formula A B ta cna u v . Odatle sledi da je A B tautologija. Pretpostavimo da je A B tautologija. Ako je u proizvoljnoj valuaciji v formula A ta cna, onda mora da je i B ta cna u v (jer je formula A B ta cna u v ). Dakle, svaki model za A je model i za B . Analogno va zi obratno svaki model za B je model i za A, te sledi to je i trebalo dokazati. A B, s 2

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

2.2 Semantika iskazne logike valencija) su: A A A AA AA AB AB AB A (B C ) A (B C ) A (B C ) A (A B ) A (A B ) A (B C ) (B C ) A A (B C ) (B C ) A (A B ) (A B ) A A A A A A A BA BA BA (A B ) C (A B ) C (A B ) C A A (A B ) (A C ) (B A) (C A) (A B ) (A C ) (B A) (C A) A B A B A A

25

zakon dvojne negacije zakon isklju cenja tre ceg zakon idempotencije za zakon idempotencije za zakon komutativnosti za zakon komutativnosti za zakon komutativnosti za zakon asocijativnosti za zakon asocijativnosti za zakon asocijativnosti za zakon apsorpcije zakon apsorpcije zakon distributivnosti u odnosu na zakon distributivnosti u odnosu na zakon distributivnosti u odnosu na zakon distributivnosti u odnosu na De Morganov zakon De Morganov zakon zakon konjunkcije sa tautologijom zakon disjunkcije sa tautologijom zakon konjunkcije sa kontradikcijom zakon disjunkcije sa kontradikcijom

ostalog, pokazuju Logi cke ekvivalencije navedene u primeru 2.6, izmedu da su konjunkcija i disjunkcija komutativni i asocijativni veznici. Zato mo zemo (uslovno) smatrati da konjunkcija (i disjunkcija) mogu da povezuju vi se od dve emu ne moramo da vodimo ra formule, pri c cuna o njihovom poretku. Svaki lan uop lan uop c stene konjunkcije zovemo konjunkt, a svaki c stene disjunkcije emu njihov poredak nije bitan) zovemo disjunkt. Disjunkciju vi se literala (pri c zovemo klauza. Klauza je jedini cna ako sadr zi samo jedan literal. Denicija 2.9 Rezultat zamene (supstitucije) svih pojavljivanja iskazne formule C u iskaznoj formuli A iskaznom formulom D ozna cavamo sa A[C D]. Ta zamena (supstitucija) deni se se na slede ci na cin: ako za iskazne formule A i C va zi A = C , onda je A[C D] jednako D; ako za iskazne formule A i C va zi A = C i A je atomi cka iskazna formula, onda je A[C D] jednako A; ako za iskazne formule A, B i C va zi A = C i A = (B ), onda je A[C D] = (B [C D]); ako za iskazne formule A, B1 , B2 i C va zi A = C i A = (B1 B2 ) (A = (B1 B2 ), A = (B1 B2 ), A = (B1 B2 )), onda je A[C D] = (B1 [C D]) (B2 [C D]) ((B1 [C D]) (B2 [C D]), (B1 [C D]) (B2 [C D]), (B1 [C D]) (B2 [C D])). Denicija 2.10 Uop stena zamena (supstitucija) je skup zamena [C1 D1 ], [C2 D2 ], . . ., [Cn Dn ] gde su Ci i Di proizvoljne iskazne formule. Takvu zamenu zapisujemo [C1 D1 , C2 D2 , . . . , Cn Dn ].

26

2 Iskazna logika

Uop stena zamena primenjuje se simultano na sva pojavljivanja formula C1 , C2 , . . ., Cn u polaznoj formuli i samo na njih (tj. ne primenjuje se na potformule dobijene zamenama). emo umesto termina uop U daljem tekstu c stena zamena (uop stena supstitucija) koristiti termin zamena (supstitucija). Formulu koja je rezultat primene zamene [C1 D1 , C2 D2 , . . . , Cn Dn ] nad formulom A, ozna cavamo sa A[C1 D1 , C2 D2 , . . . , Cn Dn ]. Primer 2.7 ((p q ) r)[p q p q ] = (p q ) r ((p q ) (p r))[p q p q, p r p r] = (p q ) (p r) ((p q ) r)[p q p q, p q q p] = (p q ) r Teorema 2.4 (Teorema o zameni) Ako je C D, onda je A[C D] A.

Zadaci
Zadatak 13 Zadatak 14 Zadatak 15 A1 , A2 , . . . , An |= B ako i samo ako |= (A1 A2 . . . An ) B . , A |= B ako i samo ako |= A B . 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 sadr zi iskazna slova p1 , p2 , . . . , pn i ako su A1 , A2 , . . . , An proizvoljne iskazne formule, onda je iskazna formula tautologija. B = A[p1 A1 , p2 A2 , . . . , pn An ] takode Zadatak 17 Ako C nije potformula iskazne formule A, onda je A[C D] = A. Zadatak 18 Dokazati da iz A A[C D] ne sledi C D.

2.2.4

Potpuni skupovi veznika

Istinitosna funkcija nad n argumenata je funkcija koja preslikava skup {0, 1}n n u skup {0, 1}. Nad n argumenata ima 22 razli citih istinitosnih funkcija (jer skup {0, 1}n ima 2n elemenata i svaki od njih se mo ze preslikati u 0 ili u 1). Svaka iskazna formula koja ima n iskaznih slova generi se neku istinitosnu funkciju nad n argumenata. Logi cki ekvivalentne iskazne formule (sa istim brojem iskaznih slova) generi su identi cne istinitosne funkcije. Svaka istinitosna funkcija je generisana nekom iskaznom formulom koja sadr zi samo veznike , i .

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

2.2 Semantika iskazne logike Primer 2.8 x1 1 0 1 0 x2 1 1 0 0 f (x1 , x2 ) 0 1 1 1

27

Iskazna formula A koja generi se istinitosnu funkciju f je (p1 p2 ) (p1 p2 ) (p1 p2 ). enjem ekvivalencija U bilo kojoj iskaznoj formuli, mogu se, kori sc A B (A B ) (B A) A B A B A B (A B ) eliminisati sva pojavljivanja veznika , i . Dobijena formula sadr za ce, dakle, samo veznike i . Ka zemo da je skup veznika {, } potpun, jer je svaka iskazna formula logi cki ekvivalentna nekoj iskaznoj formuli samo nad ova dva veznika i bez logi ckih konstanti i . Kako je skup {, } potpun, sledi da je svaka istinitosna funkcija generisana nekom iskaznom formulom potpun. koja sadr zi samo veznike i . Skup {, } je, takode, Veznici i deni su se na slede ci na cin: A B je jednako (A B ), a A B isto sintaksne prirode i da je jednako (A B ). Naglasimo da su ove denicije c zapis A B mo zemo smatrati samo kra cim zapisom formule (A B ). Veznik zovemo nili ili Luka sijevi ceva funkcija, a veznik zovemo ni ili Seferova funkcija. Na osnovu datih denicija mogu se izvesti istinitosne tablice za i . A 0 0 1 1 B 0 1 0 1 AB 1 0 0 0 AB 1 1 1 0

Lako se pokazuje da je A (A A) i A B ((A A) (B B )). Kako je skup veznika {, } potpun, sledi da je potpun i skup {}. Isto va zi i za skup {}. Teorema 2.5 Veznici i su jedina dva binarna veznika koja sama (pojedina cno) c ine potpun sistem. Teorema 2.5 je specijalni slu caj tvrdenja za veznike proizvoljne arnosti [?].

Zadaci
Zadatak 19 Dokazati da {, } i {, } nisu potpuni skupovi veznika. Zadatak 20 Svaki stanovnik jedne dr zave ili uvek la ze ili uvek govori istinu i na svako pitanje odgovara uvek samo sa da ili ne. Neki turista dolazi na raskrsnicu u toj dr zavi i zna da samo jedan od dva puta vodi do glavnog grada. Ne postoji znak koji pokazuje koji je to put, ali postoji me stanin R koji stoji na raskrsnici. Koje da-ili-ne pitanje treba turista da postavi da bi odredio kojim putem da krene?

28

2 Iskazna logika

Zadatak 21 U ra cunarstvu se c esto koristi logi cki veznik (isklju civo ili, isklju civa disjunkcija, eksluzivno ili, ekskluzivna disjunkcija) koji mo ze biti denisan na ci zapis za) (A B ) ili (A B ) (A slede ci na cin: AB je jednako (tj. to je kra B ). Ispitati da li je skup {, } potpun skup veznika.

2.2.5

Normalne forme

Denicija 2.11 Iskazna formula je u konjunktivnoj normalnoj formi (KNF) ako je oblika A1 A2 . . . An pri c emu je svaka od formula Ai (1 i n) klauza (tj. disjunkcija literala). Denicija 2.12 Iskazna formula je u disjunktivnoj normalnoj formi (DNF) ako je oblika A1 A2 . . . An pri c emu je svaka od formula Ai (1 i n) konjunkcija literala. Ako je iskazna formula A logi cki ekvivalentna iskaznoj formuli B i iskazna formula B je u konjunktivnoj (disjunktivnoj) normalnoj formi, onda ka zemo da je formula B konjunktivna (disjunktivna) normalna forma formule A. enjem pogodnih ekvivalencija, svaka iskazna formula mo Kori sc ze biti transformisana u svoju konjunktivnu (disjunktivnu) normalnu formu. Naglasimo da jedna iskazna formula mo ze da ima vi se konjunktivnih (disjunktivnih) normalnih 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 formule (p q ) (r s)). Sli cno, jedna formula koja je u konjunktivnoj normalnoj formi mo ze biti konjunktivna normalna forma za vi se iskaznih formula. Transformisanje iskazne formule u konjunktivnu normalnu formu mo ze biti opisano algoritmom prikazanim na slici 2.1. Kada govorimo o ,,primeni enje logi neke logi cke ekvivalencije mislimo na kori sc cke ekvivalencije na osnovu teoreme o zameni (teorema 2.4). Teorema 2.6 (Korektnost algoritma KNF) Algoritam KNF se zaustavlja i zadovoljava slede ce svojstvo: ako je F ulazna formula, onda je izlazna formula F u konjunktivnoj normalnoj formi i logi cki je ekvivalentna sa F . enjem pogodno odabrane Zaustavljanje algoritma KNF mo ze se dokazati kori sc injenice da se u mere formula.2 Tvrdenje F F sledi na osnovu teoreme 2.4 i c algoritmu koriste logi cke ekvivalencije.
2 U cilju dokazivanja zaustavljanja postupka transformisanja formule u konjunktivnu normalnu formu deni se se preslikavanje iz skupa iskaznih formula u skup prirodnih brojeva [?]:

(A) (A) (A B ) (A B )

= = = =

2 (gde je A atomi cka formula) 2 (A) ( A) ( B ) ( A) + ( B ) + 1

Mo ze se jednostavno dokazati da je vrednost (A ) uvek manja od (A) ako je formula A dobijena primenom nekog pravila prezapisivanja na formulu A (jer, na primer, va zi da je (A B ) = 2 (A)+ (B ) manje od ((A B )) = 2 (A)+ (B )+1 ). Odatle sledi da se postupak transformisanja proizvoljne formule u konjuktivnu normalnu formu zaustavlja za proizvoljnu ulaznu formulu A iji je prvi element (A)). (jer ne postoji beskona can strogo opadaju ci niz prirodnih brojeva c

2.2 Semantika iskazne logike Algoritam: KNF Ulaz: Iskazna formula F Izlaz: Konjunktivna normalna forma formule F 1. Eliminisati veznik koriste ci logi cku ekvivalenciju A B (A B ) (B A). 2. Eliminisati veznik koriste ci logi cku ekvivalenciju A B A B . 3. Dok god je to mogu ce, primenjivati logi cke ekvivalencije (A B ) A B i (A B ) A B . 4. Eliminisati vi sestruke veznike koriste ci logi cku ekvivalenciju A A. 5. Dok god je to mogu ce, primenjivati logi cke ekvivalencije (A (B C )) ((A B ) (A C )) i ((B C ) A) ((B A) (C A)). Figure 2.1: Algoritam KNF

29

Naglasimo da transformisanje formule u njenu konjunktivnu normalnu for ija je du mu mo ze da d a formulu c zina eksponencijalna u funkciji du zine polazne formule. Na primer, transformisanjem formule (A1 B1 ) (A2 B2 ) . . . (An Bn ) (koja ima n disjunkata) u njenu konjunktivnu normalnu formu, dobija se formula koja ima 2n konjunkta. Transformisanje formule u disjunktivnu normalnu formu opisuje se algoritmom analognim algoritmu KNF.

Zadaci
Zadatak 22 Odrediti konjunktivnu normalnu formu i disjunktivnu normalnu formu za 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).

30

2 Iskazna logika

Zadatak 25 (Teorema o interpolaciji) Neka su A i B iskazne formule takve da A nije kontradikcija i B nije tautologija i neka je A B tautologija. (a) Dokazati da A i B imaju bar jedno zajedni cko iskazno slovo. (b) Dokazati da postoji iskazna formula C takva da C ima samo iskazna slova koja su zajedni cka za A i B i za koju va zi da su A C i C B tautologije.

2.2.6

DejvisPatnamLogmanLovelandova procedura

DejvisPatnamLogmanLovelandova procedura3 (DPLL procedura) vr si ispitivanje zadovoljivosti iskaznih formula [?]. Ona se primenjuje na iskazne formule u konjunktivnoj normalnoj formi (a za svaku iskaznu formulu postoji njena konjunktivna normalna forma). Ulazna formula je konjunkcija klauza. Pri tome (kako su konjunkcija i disjunkcija komutativne i asocijativne) nije bitan poredak tih klauza niti je u bilo kojoj od tih klauza bitan poredak literala; zato se ulazna formula mo ze smatrati skupom (ili, preciznije, multiskupom4 ) klauza, od kojih se svaka mo ze smatrati skupom (ili, preciznije, multiskupom) literala. Ipak, radi odredenosti rada algoritma, smatra cemo da je skup (odnosno multiskup) klauza ureden. U proceduri se podrazumevaju slede ce konvencije: prazan skup klauza (zva cemo ga praznom formulom) je zadovoljiv; klauza koja ne sadr zi nijedan literal (zva cemo je prazna klauza) je nezadovoljiva; formula koja sadr zi praznu klauzu je nezadovoljiva. DejvisPatnamLogmanLovelandova procedura data je na slici 2.2. Teorema 2.7 (Korektnost DPLL procedure) Za svaku iskaznu formulu DPLL procedura se zaustavlja i vra ca odgovor DA ako i samo ako je polazna formula zadovoljiva. DejvisPatnamLogmanLovelandova procedura je u najgorem slu caju eksponencijalne slo zenosti O(2N ), gde je N broj iskaznih slova u formuli, usled rekurzivne primene split pravila (vi se o slo zenosti izra cunavanja videti u dodatku ??). Iste (eksponencijalne) slo zenosti su i svi drugi do sada poznati algoritmi za ispitivanje zadovoljivosti. Ipak, svi ti algoritmi su znatno ekasniji od metode istinitosnih tablica. Izbor iskaznog slova u pravilu split je veoma va zan. Neke varijante ovog pravila su da se bira iskazno slovo sa najvi se pojavljivanja u teku coj formuli, da se bira neko od iskaznih slova iz najkra ce klauze itd. Formula je tautologija ako i samo ako njena negacija nije zadovoljiva, formula je kontradikcija ako i samo ako ona nije zadovoljiva i formula je poreciva ako i samo ako je njena negacija zadovoljiva. Primetimo da odatle sledi da DPLL proceduru mo zemo iskoristiti i za ispitavanje da li je data formula tautologija, poreciva ili kontradikcija.
3 Na ovu proceduru se, zbog dve njene verzije, ponekad ukazuje kao na DejvisPatnamovu (DP) proceduru ili kao na DejvisLogmanLovelandovu (DLL) proceduru. 4 Multiskup je, neformalno, skup u kojem se elementi mogu pojavljivati vi se puta.

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

2.2 Semantika iskazne logike 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 3. Obri si sve literale jednake . 4. Ako D sadr zi praznu klauzu, vrati NE. 5. Ako neka klauza Ci sadr zi literal ili sadr zi i neki literal i njegovu negaciju, vrati vrednost koju vra ca DPLL(D \ Ci ) (tautology). 6. Ako je neka klauza jedini cna i jednaka nekom iskaznom slovu p, onda vrati vrednost koju vra ca DPLL(D[p ]); ako je neka klauza jedini cna i jednaka p, gde je p neko iskazno slovo, onda vrati vrednost koju vra ca DPLL(D[p ]) (unit propagation). 7. Ako D sadr zi literal p (gde je p neko iskazno slovo), a ne i literal p, onda vrati vrednost koju vra ca DPLL(D[p ]); ako D sadr zi literal p (gde je p neko iskazno slovo), a ne i literal p, onda vrati vrednost koju vra ca DPLL(D[p ]) (pure literal). 8. Ako DPLL(D[p ]) vra ca DA, onda vrati DA; ina ce vrati vrednost koju vra ca DPLL(D[p ]) (gde je p jedno od iskaznih slova koje se javljaju u D) (split). Figure 2.2: DPLL procedura i zameni sve literale sa .

31

Zadaci
Zadatak 26 Primenom DPLL algoritma ispitati da li su slede ce 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 bi ce prikazano na primeru jednostavne igre Vumpus. udovi U pe cini u kojoj z ste Vumpus nalazi se zlato. Igra c ulazi u pe cinu ivi c i tra zi ga. Igra se igra na tabli od 4x4 polja. Vumpus se nalazi na jednom od njih. Na nekima od njih se mogu nalaziti provalije, a na jednom je zlato. Po sto ta se nalazi na susednim poljima. Na poljima je u pe cini mrak igra c ne vidi s oko provalija se ose ca povetarac. Kako se Vumpus ne kupa, na poljima oko njega, ose ca se smrad. Ako igra c stane na polje na kome se nalazi provalija ili

32

2 Iskazna logika

Figure 2.3: Tabla za igru Vumpus Vumpus, on strada i igra je zavr sena. Igra c ima jednu strelu koju mo ze odapeti na susedno polje kako bi ubio Vumpusa. Primer table je prikazan na slici 2.2.7. Znanje o okolini u kojoj se igra c nalazi, mo ze se modelirati pravilima oblika Pravila za slu caj kada nema smrada: R1 : S11 V11 V12 V21 R2 : S21 V11 V21 V31 V22 R3 : S12 V11 V12 V13 V22 ... Pravila za slu caj kada ima smrada: R4 : S12 V11 V12 V13 V22 ...

2.2 Semantika iskazne logike

33

Na po cetnom polju igra c ne ose ca ni smrad ni povetarac, pa zna da su polja (2,1) i (1,2) bezbedna. Recimo da prvo ode na polje (2,1). Tu ose ca povetarac i zna da se na polju (3,1) ili (2,2) nalazi provalija, pa se vra ca na polje (1,1). Po sto je na polju (2,1) upravo bio, istra zuje polje (1,2). Tu se ose ca smrad. Dosada snja igra ceva znanja se mogu se opisati na slede ci na cin: S11 , S21 , S12 P11 , P21 , P12 Nala zenje 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 Zna ci Vumpus se nalazi na polju (1,3). emo Da bismo dali primer zapisivanja akcije koju igra c mo ze da preduzme uve sc i orijentaciju igra ca. Neka 4 promenljive Oi ozna cavaju orijentaciju igra ca ka 4 strane sveta. Npr. O1 zna ci da je igra c orijentisan prema istoku, O2 prema zapadu, O3 prema severu i O4 prema jugu. Kako bi opis orijentacije bio konzistentan, potrebno je zadovoljiti uslov da igra c ne bude orijentisan na vi se strana odjednom (O1 O2 ) (O1 O3 ) (O1 O4 ) (O2 O3 )(O2 O4 )(O3 O4 ).

34

2 Iskazna logika

to se S druge strane potrebno je da igra c bude orijentisan na neku stranu s izra zava uslovom O1 O2 O3 O4 . Sada se akcija odapinjanja strele na susedno polje na kome se nalazi Vumpus mo ze zapisati kao: A11 O1 V21 P ucaj to za 16 polja za jednu orijentaciju postoji 16 pravila O cigledan problem je s ovog tipa. Pomo cu predikatskog ra cuna bi svih 16 moglo biti zapisana jednim pravilom: ij (Aij O1 Vi+1,j P ucaj ).

Glava 3

Logika prvog reda


Logika prvog reda, predikatska logika, znatno je izra zajnija od iskazne logike. Osnovna novina u odnosu na iskaznu logiku je uvodenje kvantikovanja, univerzalnog i egzistencijalnog. Zahvaljuju ci kvantikatorima, u logici prvog reda mogu se formulisati tvrdenja koja nije mogu ce formulisati na jeziku iskazne logike kao, na primer, tvrdenje ,,za svaku valuaciju postoji klauza iz S koja nije ta cna ako i samo ako ne postoji valuacija takva da je svaka klauza iz S ta cna. U logici prvog reda dozvoljeno je samo kvantikovanje promenljivih.1 U okviru logike prvog reda mogu se opisati mnoge matemati cke teorije. Kao i iskazna logika, logika prvog reda ima tri aspekta: svoju sintaksu (ili jezik), svoju semantiku (ili zna cenje iskaza) i svoje deduktivne sisteme. I semantika i deduktivni sistemi grade se nad isto denisanom sintaksom, tj. nad istim skupom formula. Kao i u iskaznoj logici, centralni problemi u predikatskoj logici su ispitivanje da li je data formula valjana i da li je data formula zadovoljiva. Za razliku od iskazne logike, ovi problemi nisu odlu civi, te ne postoje efektivni algoritmi za njihovo re savanje. No, problem ispitivanja valjanosti za predikatsku logiku je poluodlu civ, pa postoje metode koje za svaku valjanu formulu mogu da doka zu da je ona valjana (a ne mogu za bilo koju formulu koja nije valjana da utvrde da nije valjana). Postoji vi se metoda i pristupa za ispitivanje i dokazivanje valjanosti i zadovoljivosti. Neki od njih su semanti cke, a neki deduktivne (tj. sintaksno-deduk ova dva koncepta tivne) prirode. Kao i u iskaznoj logici, klju cna veza izmedu je tvrdenje da je formula valjana ( sto je semanti cka kategorija) ako i samo ako je ona teorema ( sto je deduktivna kategorija). Zahvaljuju ci ovoj vezi, sintaksa predikatske logike (jezik predikatske logike), njena semantika (konvencije o ine kompaktnu celinu. zna cenju formula) i njena deduktivna svojstva c

1 U logici vi seg reda predikati i funkcije kao argumente mogu imati druge predikate i funkcije i dozvoljeno je njihovo kvantikovanje. Na primer, u logici drugog reda predikati i funkcije mogu za argumente imati predikate i funkcije prvog reda i mogu biti kvantikovani. Predikati i funkcije reda n mogu za argumente imati predikate i funkcije n 1 reda i mogu biti kvantikovani.

36

3 Logika prvog reda

3.1

Sintaksa logike prvog reda

Sintaksni aspekt logike prvog reda govori o njenom jeziku, a o formulama isklju civo kao o nizovima simbola i ne uzima u obzir njihovo mogu ce zna cenje. Denicija 3.1 Logi cki deo jezika prvog reda c ine skupovi: 1. prebrojiv skup promenljivih V ; 2. skup logi ckih veznika {, , , , }, pri c emu je unarni veznik, a , , i su binarni veznici; 3. skup kvantikatora {, }, pri c emu je univerzalni kvantikator, a egzistencijalni kvantikator; 4. skup logi ckih konstanti { , }; 5. skup pomo cnih simbola {(, ), ,}. Elemente nabrojanih skupova zovemo logi cki simboli. Re cnik ili signatura L sastoji se od najvi se prebrojivih skupova i , koje redom nazivamo skupom funkcijskih simbola i skupom predikatskih (relacijskih) simbola, 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 od skupova , , skupa promenljivih, skupa logi ckih veznika, skupa kvantikatora, skupa logi ckih konstanti i skupa pomo cnih simbola je prazan. Funkcijske simbole arnosti 0 zovemo simbolima konstanti. Skupovi i c ine nelogi cki deo jezika prvog reda, a sve njihove elemente zovemo nelogi ckim simbolima. Za datu signaturu L = (, , ar) re c nad L je bilo koji niz simbola iz skupova , ili logi ckog dela jezika. Uz indeks ili bez indeksa, obi cno ozna cavamo sa: a, b, c, . . . simbole konstanti; f, g, h, . . . funkcijske simbole arnosti ve ce od 0; p, q, r, . . . predikatske simbole; x, y, z, . . . promenljive. Denicija 3.2 Skup termova nad signaturom L = (, , ar) i skupom promenljivih V je skup za koji va zi: 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, onda je i f (t1 , t2 , . . . , tn ) term. termovi se mogu dobiti samo kona cnom primenom prethodna dva pravila. Denicija 3.3 Skup atomi ckih formula nad signaturom L = (, , ar) i skupom promenljivih V je skup za koji va zi:

3.1 Sintaksa logike prvog reda logi cke konstante i su atomi cke formule;

37

ako je p predikatski simbol za koji je ar(p) = n i t1 , t2 , . . ., tn su termovi, onda je p(t1 , t2 , . . . , tn ) atomi cka formula. atomi cke formule se mogu dobiti samo kona cnom primenom prethodna dva pravila. Denicija 3.4 Skup dobro zasnovanih formula nad signaturom L = (, , ar) i skupom promenljivih V (ili jezik prvog reda nad L i V ) je skup za koji va zi: svaka atomi cka 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 je A dobro zasnovana formula i x je promenljiva, onda su ((x)A) i ((x)A) dobro zasnovane formule. dobro zasnovane formule se mogu dobiti samo kona cnom primenom prethodnih pravila. esto c emo pisati kra Umesto termina dobro zasnovana formula, c ce formula. Dobro zasnovane formule obi cno ozna cavamo velikim pisanim latini cnim slovima (eventualno sa indeksima). Skupove dobro zasnovanih formula obi cno ozna cavamo velikim slovima gr ckog alfabeta (eventualno sa indeksima). Logi cke veznike zovemo i bulovskim veznicima ili, kra ce, veznicima. Veznik zovemo negacija, veznik konjunkcija, disjunkcija, veznik implikacija i itamo negacija A ili ne A. Zapis (A B ) c itamo A ekvivalencija. Zapis (A) c itamo A disjunkcija B ili A ili B . Zapis konjunkcija B ili A i B . Zapis (A B ) c itamo A implikacija B ili iz A sledi B . Zapis (A B ) c itamo A (A B ) c itamo za svako x A. Zapis ekvivalencija B ili A ekvivalentno B . Zapis ((x)A) c itamo postoji x takvo da je A. ((x)A) c Ako su dve dobro zasnovane formule A i B sintaksno identi cne (tj. ako su jednake kao nizovi simbola), onda to ozna cavamo A = B . Ako dve dobro zasnovane formule A i B nisu sintaksno identi cne, onda to ozna cavamo A = B . Termove, atomi cke formule i dobro zasnovane formule nad signaturom L emo kra ponekad c ce zvati i L-termovi, L-atomi cke formule i L-formule. Bazni term je term koji ne sadr zi nijednu promenljivu. Bazna formula je formula koja ne sadr zi nijednu promenljivu. Literal je atomi cka formula ili negacija atomi cke formule. Klauza je disjunkcija literala. enje velikog broja zagrada obi Da bismo izbegli kori sc cno izostavljamo spoljne zagrade i usvajamo konvenciju uz koju u nekim dobro zasnovanim formulama neke zagrade mogu biti izostavljene i to na isti na cin kao i za iskazne emu kvantikatori imaju ve formule, pri c ci prioritet od svih logi ckih veznika. Ka zemo da formula A odreduje ili indukuje signaturu L, ako je L signatura koja sadr zi sve funkcijske i predikatske simbole iz A i nijedan vi se. Denicija 3.5 Funkcija c iz skupa dobro zasnovanih formula u N svakoj dobro zasnovanoj formuli pridru zuje slo zenost na slede ci na cin:

38

3 Logika prvog reda 1. ako je A atomi cka 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.

Denicija 3.6 Slobodno pojavljivanje i vezano pojavljivanje promenljive u formuli deni se se na slede ci na cin: svako pojavljivanje promenljive u atomi ckoj formuli je slobodno u toj formuli; svako pojavljivanje promenljive koje je slobodno u A je slobodno i u A; svako pojavljivanje promenljive koje je vezano u A je vezano i u A; svako pojavljivanje promenljive koje je slobodno u A ili u B je slobodno i u AB , A B , A B , A B ; svako pojavljivanje promenljive koje je vezano u A ili u B je vezano i u A B , A B , A B, A B; svako slobodno pojavljivanje promenljive razli cite od x u formuli A je takode slobodno u formuli (x)A; svako slobodno pojavljivanje promenljive x u A je vezano (vode cim kvantikatorom) u (x)A (tada ka zemo da je x u dosegu vode ceg kvantikatora); pojavljivanje promenljive x u (x) u formuli (x)A je vezano; analogno za egzistencijalni kvantikator. Denicija 3.7 Promenljiva je vezana (slobodna) u formuli ako i samo ako ima vezano (slobodno) pojavljivanje u toj formuli. Primetimo da promenljiva mo ze biti i slobodna i vezana u jednoj formuli. Primer 3.1 U formuli p(x, y ), pojavljivanje promenljive x je slobodno i ona je slobodna u ovoj formuli. U formuli p(x, y ) (x)q (x) prvo pojavljivanje promenljive x je slobodno, a drugo i tre ce pojavljivanje je vezano. U ovoj formuli, promenljiva x je i slobodna i vezana. U formuli (x)p(x, y ) (x)q (x), sva pojavljivanja promenljive x su vezana i promenljiva 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)) c etvrto pojavljivanje promenljive x je vezano i ono je u dosegu kvantikatora x, a ne i kvantikatora x.

3.2 Semantika logike prvog reda

39

emo pokazivati da formula A ima slobodne promenljive x1 , x2 , . . ., Cesto c xn zapisom A(x1 , x2 , . . . , xn ). Ovaj zapis, medutim, ne zna ci da formula A ne sadr zi jo s neke slobodne promenljive, niti zna ci da promenljive x1 , x2 , . . ., xn nemaju i neka vezana pojavljivanja u formuli A. Zapis A(x1 , x2 , . . . , xn ) je pogodan, jer mo zemo da usvojimo konvenciju da kao A(t1 , t2 , . . . , tn ) zapisujemo formulu dobijenu zamenjivanjem svih slobodnih pojavljivanja promenljivih x1 , x2 , . . . , xn redom termovima t1 , t2 , . . . , tn . L-formulu bez slobodnih promenljivih zovemo zatvorena L-formula ili Lre cenica. Za formulu A ka zemo da je univerzalno zatvorena ako je oblika (x1 )(x2 ) . . . (xk )A , gde je xi V (i = 1, 2, . . . , k ) i A ne sadr zi kvantikatore kao ni slobodne promenljive osim (eventualno) promenljivih x1 , x2 , . . . , xk . Formula A je egzistencijalno zatvorena ako je oblika (x1 )(x2 ) . . . (xk )A gde je xi V (i = 1, 2, . . . , k ) i A ne sadr zi kvantikatore kao ni slobodne promenljive osim (eventualno) promenljivih x1 , x2 , . . . , xk . Ako formula A ima kao slobodne samo promenljive x1 , x2 , . . . , xk onda formulu (x1 )(x2 ) . . . (xk )A nazivamo univerzalnim zatvorenjem formule A i kra ce je ozna cavamo sa A. Ako formula A ima kao slobodne samo promenljive x1 , x2 , . . . , xk , onda formulu (x1 )(x2 ) . . . (xk )A nazivamo egzistencijalnim zatvorenjem formule A i kra ce je ozna cavamo sa A.

Zadaci
Zadatak 28 Zapisati narednu re cenicu u vidu dobro zasnovane formule logike prvog reda: (a) Svako voli nekoga i niko ne voli svakoga ili neko voli svakoga i neko ne voli nikoga. (b) Mo zete lagati neke ljude sve vreme i mo zete lagati sve ljude neko vreme, ali ne mo zete lagati sve ljude sve vreme.

3.2

Semantika logike prvog reda

e Semanti cki aspekt logike prvog reda govori o zna cenju formula. U nastavku c biti uvedena semantika logike prvog reda u stilu Tarskog (koji je prvi precizno uveo pojam semantike 1933. godine) [?]. Tako uvedenu semantiku zovemo i semantika Tarskog.

3.2.1

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

emo smatrati da se podrazumeva (i kada to nije eksplicitno re U nastavku c ceno) da se, kada se govori o formulama, govori o L-formulama za neku ksnu signaturu L i ksan skup promenljivih V . Denicija 3.8 Za datu signaturu L, L-struktura D je par (D, I L ), gde je D skup, a I L funkcija pri c emu va zi slede ce: D je neprazan skup i zovemo ga domen, nosa c ili univerzum; svakom simbolu konstante c iz L (tj. svakom funkcijskom simbolu arnosti 0), funkcija I L pridru zuje jedan element cI iz D;

40

3 Logika prvog reda svakom funkcijskom simbolu f iz L za koji je ar(f ) = n i n > 0, funkcija I L pridru zuje jednu totalnu funkciju fI iz Dn u D; svakom predikatskom simbolu p iz L za koji je ar(p) = n (i n > 0) funkcija I L pridru zuje jednu totalnu funkciju pI iz Dn u {0, 1} .

Valuacija v za skup promenljivih V u odnosu na domen D je preslikavanje koje svakom elementu iz V dodeljuje jedan element iz D. Ako je v (xi ) = dj , onda ka zemo da je dj vrednost promenljive xi u valuaciji v . Ako su v i w valuacije za isti skup promenljivih i u odnosu na isti domen, onda sa v x w ozna cavamo da je v (y ) = w(y ) za svaku promenljivu y razli citu od x. Ako je D = (D, I L ) L-struktura za neku signaturu L i v valuacija za skup promenljivih V i za domen D, onda par (D, v ) odreduje interpretaciju, tj. funkciju 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 uvodi se narednim dvema denicijama. Denicija 3.9 Vrednost (ili zna cenje) terma t u interpretaciji Iv , odredenoj L-strukturom D i valuacijom v , ozna cavamo sa Iv (t) i deni semo na slede ci na cin: 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 c emu je ar(f ) = n) i ako je Iv (ti ) = di za i = 1, 2, . . . , n (pri c emu je di D), onda je Iv (t) = fI (d1 , d2 , . . . , dn ). Denicija 3.10 Vrednost (ili zna cenje) formule A u interpretaciji Iv , odredenoj Lstrukturom D i valuacijom v , ozna cavamo sa Iv (A) i deni semo na slede ci na cin: ako je A atomi cka formula onda je Iv (A) = 1;

ako je A atomi cka formula onda je Iv (A) = 0; ako je A atomi cka formula p(t1 , t2 , . . . , tn ) (pri c emu je ar(p) = n) i ako je Iv (ti ) = di za i = 1, 2, . . . , n (pri c emu je di D), onda je Iv (A) = pI (d1 , d2 , . . . , dn ); ako je A = B , onda je Iv (A) = ako je A = B1 B2 , onda je Iv (A) = 1, ako je Iv (B1 ) = 1 i Iv (B2 ) = 1 0, ina ce 0, ako je Iv (B ) = 1 1, ako je Iv (B ) = 0

ako je A = B1 B2 , onda je Iv (A) = 1, ako je Iv (B1 ) = 1 ili Iv (B2 ) = 1 0, ina ce

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

3.2 Semantika logike prvog reda ako je A = B1 B2 , onda je Iv (A) = 0, ako je Iv (B1 ) = 1 i Iv (B2 ) = 0 1, ina ce

41

ako je A = B1 B2 , onda je Iv (A) = 1, ako je Iv (B1 ) = Iv (B2 ) 0, ina ce

ako je A = (x)B , onda je Iv (A) = 1 ako postoji valuacija w sa domenom D takva da je w x v i Iw (B ) = 1; ina ce je Iv (A) = 0; ako je A = (x)B , onda je Iv (A) = 0 ako postoji valuacija w sa domenom D takva da je w x v i Iw (B ) = 0; ina ce je Iv (A) = 1. Mo ze se dokazati da je na opisani na cin svakoj formuli A nad signaturom L i skupom V pridru zena (jedinstvena) vrednost Iv (A). Primetimo da Iv (A) zavisi od v (x) samo ako promenljiva x ima slobodna pojavljivanja u formuli A. Vrednost Iv (A), dakle, zavisi samo od slobodnih promenljivih u formuli A. Specijalno, ako je A re cenica, vrednost Iv (A) uop ste ne zavisi od v , pa tada umesto Iv (A) pi semo kra ce I (A). Denicija 3.11 Ako je interpretacija Iv odredena L-strukturom D i valuacijom v i ako za L-formulu A va zi Iv (A) = 1, onda ka zemo da interpretacija Iv zadovoljava formulu A, da je formula A ta cna u interpretaciji Iv i da je L-struktura D sa valuacijom v model formule A i pi semo (D, v ) |= A. Formula A je zadovoljiva u L-strukturi D ako postoji valuacija v takva da je (D, v ) |= A. L-formula A je zadovoljiva ako postoje L-struktura D i valuacija v takve da je (D, v ) |= A. Ako formula nije zadovoljiva, onda ka zemo da je ona kontradiktorna. Denicija 3.12 Ako je za neku L-strukturu D formula A ta cna za svaku valuaciju v , tj. u svakoj interpretaciji Iv , onda ka zemo da je L-struktura D model formule A, ka zemo da je formula A valjana u L-strukturi D i pi semo D |= A. Ako je formula nad signaturom L valjana u svakoj L-strukturi, onda za tu formulu ka zemo da je valjana i to zapisujemo |= A. Ako formula nije valjana, onda ka zemo da je ona poreciva. Ako nije D |= A, onda pi semo D |= A i ka zemo da je D kontramodel za A. Analogne denicije uvodimo za skupove formula. Denicija 3.13 Skup re cenica je konzinstentan ili zadovoljiv ako ima bar jedan model. Ina ce, ka zemo da je nekonzistentan, nezadovoljiv, protivre can ili kontradiktoran. Teorema 3.1 Ako su formule A i A B (nad nekom signaturom L) valjane, onda je i formula B valjana. Dokaz: Pretpostavimo da postoje L-struktura D i odgovaraju ca interpretacija Iv u kojoj formula B nije ta cna. Formula A je valjana, pa je ta cna i u interpretaciji Iv . U toj interpretaciji, onda, formula A B nije ta cna (jer to protivre je Iv (A) = 1 i Iv (B ) = 0), s ci pretpostavci da je formula A B valjana. Dakle, polazna pretpostavka je pogre sna, pa je formula B ta cna to je i trebalo dokazati. u svakoj interpretaciji, tj. ona je valjana, s 2

42

3 Logika prvog reda

Teorema 3.2 Formula A nad signaturom L je valjana u L-strukturi D ako i samo ako je 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 da je Iv ((x)A) = 0. Odatle sledi da postoji valuacija w za koju je w x v to je u suprotnosti sa i va zi Iw (A) = 0, pa formula A nije valjana u D, s pretpostavkom. Dakle, formula (x)A je valjana u D. Pretpostavimo da je formula (x)A valjana u D. To zna ci da za svaku valuaciju v va zi Iv ((x)A) = 1. Pretpostavimo da formula A nije valjana u D. Tada postoji valuacija w takva da je Iw (A) = 0, pa je Iw ((x)A) = 0, to je u suprotnosti sa pretpostavkom. Dakle, formula A je valjana u D. s 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, onda je 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 va zi 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 slede naredne dve teoreme. Teorema 3.4 Formula A nad signaturom L je valjana u L-strukturi D ako i samo ako je 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 teoremama. Teorema 3.6 Formula A nad signaturom L je zadovoljiva u L-strukturi D ako i samo ako je formula A zadovoljiva u D. Teorema 3.7 Formula A je zadovoljiva ako i samo ako je formula A zadovoljiva.

Zadaci
Zadatak 29 Zadatak 30 Odrediti bar jedan model formule (x)(p(x) p(f (x))). Ispitati da li je L-struktura data sa D = {a, b, c} i a b c fI b a a pI a b c a b 1 1 1 0 0 0 c 0 1 1

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

3.2 Semantika logike prvog reda Zadatak 31

43

Odrediti sve dvo clane 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 formula A = (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 beskona can 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)(AB )) (A(x)B ), pri c emu 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 slede ca formula valjana: ((x)A) B (x)(A B ) pri c emu formula B nema slobodnih pojavljivanja promenljive x. Dokazati da data formula nije valjana ako se izostavi navedeni dodatni uslov.

3.2.2

Logi cke posledice, logi cki ekvivalentne formule, supstitucija

Denicija 3.14 Neka je skup formula i neka je A formula nad signaturom L. Ka zemo da je formula A logi cka posledica skupa formula i pi semo |= A ukoliko za svaku L-strukturu D i svaku valuaciju v va zi: ako za svaku formulu B iz va zi (D, v ) |= B , onda va zi (D, v ) |= A. Drugim re cima, ka zemo da je formula A logi cka posledica skupa formula ako je svaki model za istovremeno i model za A. Ako je skup kona can, tj. ako je = {B1 , B2 , . . . , Bk }, onda pi semo B1 , B2 , . . . , Bk |= A. Ako je prazan skup, onda pi semo |= A. Ako je |= A, onda formulu A zadovoljava svaka interpretacija i tada je formula A valjana. Ako ne va zi |= A, onda to zapisujemo |= A. Na osnovu denicije logi cke posledice, jednostavno se dokazuje naredno tvrdenje (analogno teoremi 2.2). Teorema 3.8 (a) Svaka valjana formula je logi cka posledica praznog skupa formula. (b) Ako je skup kontradiktoran, onda je svaka formula njegova logi cka posledica. Specijalno, svaka formula je logi cka posledica skupa {}.

44 (c) Ako je i |= A, onda je |= A.

3 Logika prvog reda

Denicija 3.15 Ka zemo da su formule A i B logi cki ekvivalentne i pi semo A B ako je A logi cka posledica formule B i B je logi cka posledica formule A. Ako je svaki model za A istovremeno i model za B i obratno, onda u bilo kojoj valuaciji formule A i B imaju jednake vrednosti. Tvrdenja oblika A B zovemo logi ckim ekvivalencijama (ili kra ce ekvivalencijama). Relacija je, o cigledno, relacija ekvivalencije nad skupom formula. Teorema 3.9 Ako za L-formule A1 , A2 , B1 i B2 va zi 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 logi cki ekvivalentne ako i samo ako je formula A B valjana. Primer 3.3 Mo ze se dokazati da za proizvoljnu L-formulu A va zi (x)A (x)A. Neka je D proizvoljna L-struktura. Pretpostavimo da va zi Iv ((x)A) = 1 i doka zimo da onda va zi i Iv ((x)A) = 1. Iz Iv ((x)A) = 1 sledi Iv ((x)A) = 0, pa u svakoj valuaciji v , takvoj da je v x v , va zi Iv (A) = 0. To zna ci da u svakoj valuaciji v , takvoj da je v x v , va zi Iv (A) = 1, a odatle sledi da u svakoj valuaciji v , takvoj da je v x v , va zi Iv ((x)A) = 1, pa i u valuaciji v , tj. Iv ((x)A) = 1, s to je i trebalo dokazati. Drugi smer tvrdenja (da iz Iv ((x)A) = 1 sledi Iv ((x)A) = 1) dokazuje se analogno. Primer 3.4 Neke od logi ckih ekvivalencija logike prvog reda (ili, preciznije, neke od shema logi ckih ekvivalencija logike prvog reda) su: (x)A (x)A (x)(A B ) (x)(A B ) (x)(A B ) (x)A (x)A (x)A (x)B (x)A (x)B (x)A B De Morganov zakon De Morganov zakon zakon distributivnosti prema zakon distributivnosti prema zakon distributivnosti prema (pri c emu B ne sadr zi slobodna pojavljivanja promenljive x) zakon distributivnosti prema (pri c emu B ne sadr zi slobodna pojavljivanja promenljive x)

(x)(A B )

(x)A B

Denicija 3.16 Term dobijen zamenom (supstitucijom) promenljive x termom tx u termu t ozna cavamo sa t[x tx ] i deni semo na slede ci na cin:

3.2 Semantika logike prvog reda ako je t simbol konstante, onda je t[x tx ] = t; ako je t = x, onda je t[x tx ] = tx ; ako je t = y , gde je y = x, onda je t[x tx ] = t;

45

ako je t = f (t1 , t2 , . . . , tn ), onda je t[x tx ] = f (t1 [x tx ], t2 [x tx ], . . . , tn [x tx ]). Denicija 3.17 Formulu dobijenu zamenom (supstitucijom) promenljive x termom tx u formuli A ozna cavamo sa A[x tx ] i deni semo na slede ci na cin: [x tx ] = ;

[x tx ] = ; ako je A = p(t1 , t2 , . . . , tn ), onda je A[x tx ] = p(t1 [x tx ], t2 [x tx ], . . . , tn [x tx ]); (A)[x tx ] = (A[x tx ]); (A B )[x tx ] = (A[x tx ] B [x tx ]); (A B )[x tx ] = (A[x tx ] B [x tx ]); (A B)[x tx ] = (A[x tx ] B [x tx ]); (A B)[x tx ] = (A[x tx ] B [x tx ]); (xA)[x tx ] = (xA); (xA)[x tx ] = (xA); ako je x = y , neka je z promenljiva koja se ne pojavljuje ni u (y )A ni u tx ; tada je (y A)[x tx ] = (z )A[y z ][x tx ]; ako je x = y , neka je z promenljiva koja se ne pojavljuje ni u (y )A ni u tx ; tada je (y A)[x tx ] = (z )A[y z ][x tx ]. Primetimo da poslednja dva pravila u prethodnoj deniciji obezbeduju, na primer, da ((y )p(x, y ))[x y ] ne bude (y )p(y, y ) ve c (z )p(y, z ). Primer 3.5 Va zi: (x)A (y )(A[x y ]) zakon o preimenovanju vezane promenljive (pri c emu A ne sadr zi slobodna pojavljivanja promenljive y ) zakon o preimenovanju vezane promenljive (pri c emu A ne sadr zi slobodna pojavljivanja promenljive y )

(x)A

(y )(A[x y ])

emo pod terminom izraz podrazumevati i termove i forU daljem tekstu c mule.

46

3 Logika prvog reda

Denicija 3.18 Uop stena zamena (supstitucija) je skup zamena [x1 t1 ], [x2 t2 ], . . ., [xn tn ] gde su xi promenljive i ti su proizvoljni termovi i gde je xi = xj za i = j . Takvu zamenu zapisujemo kra ce [x1 t1 , x2 t2 , . . . , xn tn ]. Uop stena zamena primenjuje se simultano na sva pojavljivanja promenljivih x1 , x2 , . . ., xn u polaznom izrazu i samo na njih (tj. ne primenjuje se na podtermove dobijene zamenama). emo umesto termina uop U daljem tekstu c stena zamena (uop stena supstitucija) koristiti termin zamena (supstitucija). Izraz koji je rezultat primene zamene nad izrazom E , ozna cavamo sa E . O cigledno, iz zamene [x1 t1 , x2 t2 , . . . , xn tn ] se mogu (ali ne moraju) izostaviti sve pojedina cne zamene oblika xi xi . Primer 3.6 Za = [x f (y )] i s = g (a, x) va zi s = g (a, f (y )). Za = [x f (x)] i s = g (a, x) va zi s = g (a, f (x)). Za = [x f (y ), y a], s = g (a, x) i t = g (y, g (x, y )) va zi s = g (a, f (y )) i t = g (a, g (f (y ), a)). Ukoliko u zameni = [x1 t1 , x2 t2 , . . . , xn tn ] nijedan od termova ti ne sadr zi nijednu od promenljivih xj (sem, eventualno, ako je ti = xi za neko i), onda je efekat te zamene jednak efektu sukcesivno primenjenih pojedina cnih zamena. Supstitucija je idempotentna (tj. za bilo koji izraz E va zi E = (E ) ) ako i samo ako va zi taj uslov da nijedan od termova ti ne sadr zi nijednu od promenljivih xj (sem, eventualno, ako je ti = xi za neko i). Denicija 3.19 Za supstitucije = [x1 t1 , x2 t2 , . . . , xn tn ] i = [y1 s1 , y2 s2 , . . . , ym sm ], kompozicija supstitucija je supstitucija [x1 t1 , x2 t2 , . . . , xn tn , y1 s1 , y2 s2 , . . . , ym sm ] iz koje su izbrisane zamene oblika xi xi , kao i zamene oblika yi si , gde je yi = xj za neko j . Primer 3.7 Za = [x f (y )] i = [y g (z )], va zi = [x f (g (z )), y g (z )]. Za = [x f (y )] i = [y g (x)], va zi = [x f (g (x)), y g (x)]. Za = [x y ] i = [y x], va zi = [y x]. Za = [x f (y )] i = [x g (z )], va zi = [x f (y )]. Za = [x f (x)] i = [x a], va zi = [x f (a)]. Mo ze se dokazati da je kompozicija supstitucija asocijativna, kao i da va zi E () = (E). Denicija 3.20 Ako je E izraz (term ili formula) i ako je supstitucija, onda ka zemo da je E instanca (ili primerak) izraza E . Ako je izraz E bazni, onda ka zemo da je on bazna instanca izraza E . Denicija 3.21 Neka su formule B1 i B2 takve da formula B2 nema nijednu slobodnu promenljivu koju nema formula B1 . Formulu dobijenu zamenom (supstitucijom) formule B1 formulom B2 u formuli A, ozna cavamo sa A[B1 B2 ] i deni semo na slede ci na cin: ako je formula A instanca formule B1 , tj. ako je A = B1 za neku supstituciju , onda je A[B1 B2 ] = B2 ;

3.2 Semantika logike prvog reda

47

ako je formula A atomi cka formula i nije instanca formule B1 , onda je A[B1 B2 ] = A; (A)[B1 B2 ] = (A[B1 B2 ]); (A B )[B1 B2 ] = (A[B1 B2 ] B [B1 B2 ]); (A B )[B1 B2 ] = (A[B1 B2 ] B [B1 B2 ]); (A B)[B1 B2 ] = (A[B1 B2 ] B [B1 B2 ]); (A B)[B1 B2 ] = (A[B1 B2 ] B [B1 B2 ]); (xA)[B1 B2 ] = (x)(A[B1 B2 ]); (xA)[B1 B2 ] = (x)(A[B1 B2 ]). Naglasimo da smo u prethodnoj deniciji datom restrikcijom pojednostavili problem slobodnih pojavljivanjima promenljivih u formulama B1 i B2 . Osnovna svrha koncepta zamene formule formulom je u zameni formule logi cki ekvivalentnom formulom i za tu svrhu je data denicija dovoljna. Teorema 3.11 (Teorema o zameni) Ako va zi B1 B2 , onda je A A[B1 B2 ]. Primer 3.8 Neke od logi ckih ekvivalencija logike prvog reda (koje proizilaze iz iskazne logike) su (videti i primer 2.6): A A zakon dvojne negacije A A zakon isklju cenja tre ceg (A B ) (B A) zakon komutativnosti za Primer 3.9 Va zi (x)(AB ) (x)(AB ) (x)(AB ) (x)(A B ) (x)(A B ). Iz (x)(A B ) (x)(A B ), na osnovu teoreme 3.10 sledi da je formula (x)(A B ) (x)(A B ) valjana.

Zadaci
Zadatak 39 Zadatak 40 Navesti primer formule koja je valjana a nije izvod tautologije. 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 y ]) valjana. Zadatak 43 Dokazati slede cu logi cku ekvivalenciju: xA y (A[x y ]) pri c emu formula A nema slobodnih pojavljivanja promenljive y . Dokazati da data logi cka ekvivalencija ne va zi ako se izostavi navedeni dodatni uslov. Zadatak 44 Dokazati da je supstitucija = [x1 t1 , x2 t2 , . . . , xn tn ] idempotentna (tj. da za bilo koji izraz E va zi E = (E ) ) ako i samo ako nijedan od termova ti ne sadr zi nijednu od promenljivih xj (sem, eventualno, ako je ti = xi za neko i).

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

48

3 Logika prvog reda

3.2.3

Normalne forme

Denicija 3.22 Ka zemo da je formula u preneks formi ili preneks normalnoj formi ako je ona oblika Q1 x1 Q2 x2 . . . Qn xn A pri c emu je Qi ili ili i A ne sadr zi kvantikatore, kao ni slobodne promenljive osim (eventualno) promenljivih x1 , x2 , . . . , xn . Ako je re cenica (zatvorena formula) A logi cki ekvivalentna formuli B i formula B je u preneks normalnoj formi, onda ka zemo da je formula B preneks enjem pogodnih logi normalna forma formule A. Kori sc ckih ekvivalencija, svaka zatvorena formula mo ze biti transformisana u svoju preneks normalnu formu. Radi jednostavnosti procedure i rezultuju ce formule, obi cno se u okviru transformisanja formule u preneks formu najpre elimini su veznici i . Naglasimo da jedna formula mo ze da ima vi se preneks normalnih formi (na primer, i formula (x)(y )(A(x)B (y )) i formula (y )(x)(B (y )A(x)) su preneks normalne forme formule (x)A(x) (y )B (y )). Sli cno, jedna formula koja je u preneks normalnoj formi mo ze biti preneks normalna forma za vi se formula. Transformisanje formule u preneks normalnu formu mo ze biti opisano procedurom prikazanom na slici 3.1 (kada govorimo o ,,primeni neke logi cke ekvi enje ekvivalencije na osnovu teoreme o zameni valencije mislimo na kori sc (3.11)). Korektnost navedenog algoritma mo ze se dokazati sli cno kao korektnost procedure za transformisanje formule u konjunktivnu normalnu formu (teorema 2.6). Za slu caj kada (prilikom primene koraka 4 algoritma) promenljiva x ima slobodna pojavljivanja u formuli B , izborom nove promenljive od, na primer, formule (xA) B dobija se formula u(A[x u] B ), pa je potrebno dokazati i: (xA) B u(A[x u] B ) (kao i preostale analogne logi cke ekvivalencije). Bez detalja dokaza, navodimo teoremu o korektnosti algoritma PRENEX. Teorema 3.12 (Korektnost algoritma PRENEX) Algoritam PRENEX se zaustavlja i zadovoljava slede ce svojstvo: ako je A ulazna formula, onda je izlazna formula A u preneks normalnoj formi i logi cki je ekvivalentna sa A. Za transformisanje formule u njenu preneks normalnu formu mogu se ko to su ristiti i logi cke ekvivalencije kao s B (xA) (x)(B A), (x)A B (x)(A B), emu x nema slobodna pojavljivanja u formuli B , ali to nije potrebno ako pri c su na po cetku eliminisani veznici i . U nekim situacijama mogu ce je primeniti neki korak navedenog algoritma na vi se od jednog na cina. Na primer, formulu (x)p(x) (y )q (y ) mogu ce je transformisati i u (x)(p(x) (y )q (y )) i u (y )((x)p(x) q (y )). Obe ove formule su, naravno, logi cki ekvivalentne sa polaznom formulom. Ipak, u situacijama kada je mogu ce ,,pomeriti i univerzalni i egzistencijalni kvantikator, emo radije ,,pomeriti najpre egzistencijalni, a onda univerzalni. Takav uvek c e biti prioritet uvodimo zarad jednostavnijeg koraka skolemizacije (o kojem c re ci u nastavku). Naglasimo da univerzalni i egzistencijalni kvantikator ne

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

3.2 Semantika logike prvog reda

49

Algoritam: PRENEX Ulaz: Zatvorena dobro zasnovana formula A Izlaz: Preneks normalna forma formule A 1. Dok god je to mogu ce, primenjivati logi cke ekvivalencije A B (A B ) (B A) i A B A B . 2. Dok god je to mogu ce, primenjivati slede ce logi cke ekvivalencije: (A B ) A B , (A B ) A B , (x)A (x)A, (x)A (x)A. 3. Eliminisati vi sestruke veznike koriste ci zakon dvojne negacije: A A. 4. Dok god je to mogu ce, primenjivati slede ce logi cke 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 slobodna pojavljivanja u B , onda treba najpre preimenovati promenljivu x u formuli (x)A (odnosno u formuli (x)A). Figure 3.1: Algoritam PRENEX

50

3 Logika prvog reda

mogu, u op stem slu caju, da menjaju mesta, tj. formule (x)(y )A i (y )(x)A nisu u op stem slu caju logi cki ekvivalentne. S druge strane, dva univerzalna kvantikatora mogu da zamene mesta, tj. formule (x)(y )A i (y )(x)A su logi cki ekvivalentne. Sli cno, dva egzistencijalna kvantikatora mogu da zamene mesta, tj. formule (x)(y )A i (y )(x)A su logi cki ekvivalentne. To su stinski zna ci da u bloku kvantikatora istog tipa, njihov poredak nije bitan. Primer 3.10 Razmotrimo formulu x p(x) xy z (q (y, z ) r(g (x), y )) . Nakon koraka x(p(x) xy z (q (y, z ) r(g (x), y ))) , kako je promenljiva x slobodna u p(x), najpre c emo preimenovati vezanu promenljivu x u u (u okviru formule xy z (q (y, z ) r(g (x), y ))): x(p(x) uy z (q (y, z ) r(g (u), y ))) . Nakon toga kvantikatori u, y , z mogu, jedan po jedan, biti pomereni na po cetak formule: xuy z (p(x) (q (y, z ) r(g (u), y ))) . Denicija 3.23 Formula bez kvantikatora je u konjunktivnoj normalnoj formi ako je oblika A1 A2 . . . An pri c emu je svaka od formula Ai (1 i n) disjunkcija literala. Konjunktivna normalna forma formule predikatske logike mo ze se dobiti na isti na cin kao i u slu caju iskazne logike (videti poglavlje 2.2.5). Primer 3.11 Konjunktivna normalna forma formule p(x) (q (y, z ) r(g (u), y )) je formula p(x) (q (y, z ) r(g (u), y )) . Denicija 3.24 Formula je u klauzalnoj formi ako je oblika x1 x2 . . . xn A gde je A formula bez kvantikatora koja je u konjunktivnoj normalnoj formi i A nema slobodnih promenljivih osim, eventualno, promenljivih x1 , x2 , . . . , xn . esto u zapisu Ako je formula x1 x2 . . . xn A u klauzalnoj formi, onda se c izostavljaju kvantikatori i pi se samo A, podrazumevaju ci da se misli na univerzalno zatvorenje formule A. Ne postoji za svaku re cenicu formula koja je u klauzalnoj formi i koja joj je logi cki ekvivalentna. Na primer, za re cenicu (x)p(x) ne postoji formula koja je u klauzalnoj formi i koja joj je logi cki ekvivalentna. Medutim, mo ze se dokazati da za svaku re cenicu A postoji formula B u klauzalnoj formi takva da je A zadovoljiva ako i samo ako je B zadovoljiva (videti teoremu 3.15). To

3.2 Semantika logike prvog reda

51

je dovoljno i pogodno za ispitivanje zadovoljivosti formula ako se ispituje zadovoljivost re cenice A, dovoljno je ispitati zadovoljivost formule B koja je u klauzalnoj formi (pogodnoj za neke metode) i zadovoljiva je ako i samo ako je zadovoljiva formula A. Uslov da je formula A zadovoljiva ako i samo ako je B zadovoljiva zove se slaba ekvivalencija. Transformisanje re cenice A u formulu B koja je u klauzalnoj formi i koja je zadovoljiva ako i samo ako je A zadovoljiva uklju cuje eliminisanje egzistencijalnih kvantikatora. Ono se zasniva na izmeni polazne signature dodavanjem novih funkcijskih simbola. Te dodatne funkcijske simbole zovemo Skolemovim konstantama (za funkcijske simbole arnosti 0) i Skolemovim funkcijama, a proces eliminisanja egzistencijalnih kvantikatora zovemo skolemizacijom (po matemati caru Skolemu koji ih je prvi koristio). Prvi korak je transformisanje formule u preneks normalnu formu. Drugi korak je transformisanje dela formule bez kvantikatora u konjunktivnu normalnu formu. Nakon toga, postupkom skolemizacije elimini su se egzistencijalni kvantikatori, jedan po jedan, sleva nadesno. Pretpostavimo da re cenica po cinje egzistencijalnim kvantikatorom: y A. Treba izabrati novi simbol konstante d koji se ne pojavljuje u signaturi, obrisati kvantikator i zameniti promenljivu y simbolom d. Na taj na cin formula y A transformi se se u formulu A[y d]. Mo ze se dokazati da je formula y A zadovoljiva ako i samo ako je formula A[y d] zadovoljiva. Ako re cenica po cinje nizom univerzalnih kvantikatora: x1 x2 . . . xn y A, onda uvodimo novi funkcijski simbol f arnosti n koji do tada nije postojao u signaturi. Polazna formula bi ce onda transformisana u formulu x1 x2 . . . xn A[y f (x1 , x2 , . . . , xn )]. Mo ze se dokazati da je formula x1 x2 . . . xn y A zadovoljiva ako i samo ako je formula x1 x2 . . . xn A[y f (x1 , x2 , . . . , xn )] zadovoljiva. (Primetimo da je uvodenje nove konstante samo specijalni slu caj uvodenja novog funkcijskog simbola.) Teorema 3.13 (Teorema o skolemizaciji) Ako je formula B nad signaturom L dobijena skolemizacijom od re cenice A nad signaturom L koja je u preneks normalnoj formi, onda je A zadovoljiva ako i samo ako je B zadovoljiva. Primer 3.12 Skolemizacijom se formula xuy z (p(x) (q (y, z ) r(g (u), y ))) transformi se 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 re cenice A uzastopnom primenom slede cih postupaka: transformisanje formule u preneks normalnu formu; transformisanje dela formule bez kvantikatora u konjunktivnu normalnu formu; skolemizacija. Tada je formula A zadovoljiva ako i samo ako je B zadovoljiva.

52

3 Logika prvog reda

Dokaz: Transformacija formule u preneks normalnu formu i transformacija dela formule bez kvantikatora u konjunktivnu normalnu formu zasnovane su na logi ckim ekvivalencijama, pa ako je formula B dobijena od formule A uzastopnom primenom navedene dve transformacije, va zi A B , to je ja s ci uslov nego uslov da je A zadovoljiva ako i samo ako je B uva zadozadovoljiva. Na osnovu teoreme 3.13 sledi da skolemizacija c voljivost i nezadovoljivost, pa je formula B zadovoljiva ako i samo ako je A zadovoljiva. 2 Na osnovu prethodne teoreme neposredno sledi naredno tvrdenje. Teorema 3.15 Za svaku re cenicu A postoji formula B u klauzalnoj formi takva da je A zadovoljiva ako i samo ako je B zadovoljiva. Klauzalna forma je pogodna za dokazivanje pobijanjem. Da bi se dokazalo da 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 mo ze dokazati na slede ci na cin. Formula A je jednaka ((x)p(x, x) (y )p(y, y )) i njena preneks normalna forma 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 pro sirivanjem signature L simbolom c. Poka zimo da je formula p(x, x) p(c, c) nezadovoljiva. Pretpostavimo suprotno pretpostavimo da navedena formula ima model. Neka je to L -struktura D = (D, I L ) sa valuacijom v . Neka je I L (p) = pI i I L (c) = cI . Va zi Iv (p(x, x) p(c, c)) = 1 tj. Iv ((x)(p(x, x) p(c, c))) = 1, pa za svaku valuaciju w takvu da je w x v va zi Iw (p(x, x) p(c, c)) = 1. To, dakle, va zi i za valuaciju w u kojoj je w(x) = cI . Iz Iw (p(x, x) p(c, c)) = 1 sledi Iw (p(x, x)) = 1 i Iw (p(c, c)) = 0. Iz Iw (p(x, x)) = 1 sledi pI (cI , cI ) = 1, a iz Iw (p(c, c)) = 0 sledi pI (cI , cI ) = 0, s to 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

Unikacija

ini dva Problem unikacije je problem ispitivanja da li postoji supstitucija koja c izraza (dva terma ili dve formule) jednakim. Unikacija se prvi put pominje u radovima Posta, a zatim i u radovima Erbrana. Denicija 3.25 Ako su e1 i e2 izrazi i ako postoji supstitucija takva da va zi e1 = e2 , onda ka zemo da su izrazi e1 i e2 unikabilni i da je supstitucija unikator za ta dva izraza.

3.2 Semantika logike prvog reda

53

Dva unikabilna izraza mogu da imaju vi se unikatora. Za dva unikatora 1 i 2 ka zemo da su jednaka do na preimenovanje promenljivih ako postoji emu su vi i vi supstitucija koja je oblika [v1 v1 , v2 v2 , . . . , vn vn ], pri c simboli promenljivih i va zi 1 = 2 . Primer 3.14 Neka je term t1 jednak g (x, z ), neka je term t2 jednak g (y, f (y )) i neka je supstitucija [y x, z f (x)]. Tada je i t1 i t2 jednako g (x, f (x)), pa su termovi t1 i t2 unikabilni, a je (jedan) njihov unikator. Unikator termova t1 i t2 je npr. i [x a, y a, z f (a)]. Termovi g (x, x) i g (y, f (y )) nisu unikabilni. Denicija 3.26 Supstitucija je najop stiji unikator za izraze e1 i e2 ako svaki unikator izraza e1 i e2 mo ze biti predstavljen u obliku = za neku supstituciju . Na osnovu denicije, svaki unikator izraza e1 i e2 mo ze biti dobijen od najop stijeg unikatora primenom neke supstitucije. Svaka dva unikabilna izraza imaju najop stiji unikator. Mo ze se dokazati da za dva izraza postoji najvi se jedan najop stiji unikator (do na preimenovanje promenljivih). Unikacija ima mnoge primene. Jedna od najzna cajnijih je u metodu rezolucije. Na slici 3.2 dat je opis op steg algoritma za odredivanje najop stijeg unikatora. Pretpostavimo da je dat niz parova izraza (s1 , t1 ), (s2 , t2 ), . . . , (sn , tn ) i da se tra zi supstitucija takva da va zi s1 = t1 , s2 = t2 , . . . , sn = tn . Algoritam unikacije ili vra ca tra zenu supstituciju ili se zaustavlja neuspe sno, ukazuju ci na to da tra zena supstitucija ne postoji. Ukoliko postoji bar jedna supstitucija koja zadovoljava tra zeni uslov, algoritam unikacije vra ca najop stiji unikator (za date parove izraza). Ulaz za algoritam unikacije za parove (s1 , t1 ), (s2 , t2 ), . . . , (sn , tn ) se obi cno zadaje u vidu niza jednakosti s1 = t1 , s2 = t2 , . . . , sn = tn . Primetimo da je korak 6 algoritma mogu ce u op stem slu caju primeniti na vi se na cina. Bilo koji od tih na cina vodi istom rezultatu neuspehu (ako ne postoji tra zeni unikator) ili jednom od unikatora koji se mogu razlikovati samo do na preimenovanje promenljivih. ime se obezbeduje U koracima 5 i 6 se primenjuje tzv. provera pojavljivanja c zaustavljanje procedure (tj. spre cava pojavljivanje beskona cnih petlji). Primer 3.15 Ilustrujmo rad algoritma za odredivanje na primeru slede ce dve jednakosti: g (y ) = x f (x, h(x), y ) = f (g (z ), w, z ) Polazni niz jednakosti je g (y ) = x, f (x, h(x), y ) = f (g (z ), w, z ). Primenom koraka 3 dobijamo x = g (y ), f (x, h(x), y ) = f (g (z ), w, z ).

54

3 Logika prvog reda

Algoritam: Najop stiji unikator Ulaz: Niz jednakosti s1 = t1 , s2 = t2 , . . . , sn = tn Izlaz: Najop stiji unikator (ako on postoji) Primenjuj, dok je to mogu ce, slede ce korake: 1. Ako postoje jednakosti koje imaju vi se od jednog pojavljivanja, obri si za svaku od njih sva pojavljivanja osim jednog (factoring). 2. Obri si sve jednakosti oblika t = t (tautology). 3. Ako je x promenljiva i t term koji nije promenljiva i ako se t = x pojavljuje u nizu jednakosti, zameni jednakost t = x sa x = t. Ovo uraditi za sve jednakosti tog oblika (orientation). 4. Pretpostavimo da je jednakost s = t element niza jednakosti i da ni s ni t nisu promenljive. Razmotri slede ce slu cajeve: (a) Ako je s jednako (u1 , u2 , . . . , uk ) i t je jednako (v1 , v2 , . . . , vk ) (gde je funkcijski ili predikatski simbol), onda dodaj jednakosti u1 = v1 , u2 = v2 , . . ., uk = vk i zatim obri si jednakost s = t (decomposition). (b) Ako su s i t bilo koje druge forme, zaustavi rad i kao rezultat vrati neuspeh (ovo se odnosi na slu cajeve kada je jedan od termova simbol konstante, a drugi nije; kada se u s i t razlikuju vode ci funkcijski (odnosno predikatski) simboli i kada su vode ci funkcijski (odnosno predikatski) simboli s i t razli cite arnosti) (collision). 5. Ako je x promenljiva, t term koji sadr zi x i x = t se pojavljuje u nizu jednakosti, zaustavi rad i kao rezultat vrati neuspeh (cycle). 6. Ako je x promenljiva, t term koji ne sadr zi x, x se pojavljuje i u nekim drugim jednakostima i x = t se pojavljuje u nizu jednakosti, onda primeni supstituciju [x t] na sve druge jednakosti (application). Ako nije mogu ce primeniti nijedan od navedenih koraka vrati teku ci skup jednakosti kao najop stiji unikator. Figure 3.2: Algoritam Najop stiji unikator

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

3.2 Semantika logike prvog reda

55

Primenom koraka 4(a) dobijamo x = g (y ), x = g (z ), h(x) = w, y = z . Korak 6 je mogu ce primeniti na vi se na cina. Primenom koraka 6 za y = z dobijamo x = g (z ), x = g (z ), h(x) = w, y = z . Primenom koraka 1 dobijamo x = g (z ), h(x) = w, y = z . Primenom koraka 3 dobijamo x = g (z ), w = h(x), y = z . Primenom koraka 6 dobijamo x = g (z ), w = h(g (z )), y = z . tra Ovaj niz jednakosti odreduje zeni najop stiji unikator . Za = [x g (z ), w h(g (z )), y z ] va zi g (y ) = x f (x, h(x), y ) = f (g (z ), w, z ) tj. va zi g (z ) = g (z ) f (g (z ), h(g (z )), z ) = f (g (z ), h(g (z )), z ) . Primer 3.16 Razmotrimo slede cu jednakost: g (x, x) = g (y, f (y )) . Primenom koraka 4(a) dobijamo x = y, x = f (y ). Korak 6 mo ze se primeniti samo na dva na cina: 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 najop stijeg unikatora (videti, na primer, [?, ?]). Teorema 3.16 (Korektnost algoritma Najop stiji unikator) Algoritam Najop stiji unikator zadovoljava slede ce uslove: zaustavlja se; ako vrati supstituciju, onda je ona najop stiji unikator za dati niz parova izraza; ako se algoritam zaustavi sa neuspehom, onda ne postoji unikator za dati niz parova izraza.

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

56

3 Logika prvog reda

Navedeni algoritam nije ekasan. Postoje znatno ekasniji algoritmi za enju pogodnih struktura pounikaciju. Mnogi od njih zasnovani su na kori sc dataka i implicitnom primenjivanju supstitucije (iz koraka 6). Neki od tih algoritama imaju linearnu slo zenost (po broju polaznih jednakosti), ali, u op stem slu caju, najop stiji unikator mo ze imati i eksponencijalnu du zinu (po broju polaznih jednakosti), te ga nije mogu ce eksplicitno predstaviti u linearnom vremenu. To ilustruje slede ci primer. Primer 3.17 Za skup jednakosti x1 = f (x0 , x0 ) x2 = f (x1 , x1 ) ... xn = f (xn1 , xn1 ) Najop stiji unikator sadr zi zamenu xn t, gde je t term koji sadr zi samo simbole x0 i f , pri c emu ima 2n 1 pojavljivanja simbola f . Primetimo da je problem ispitivanja da li je neka formula instanca neke aksiomske sheme blizak problemu unikacije. Navedeni algoritam za odredivanje najop stijeg unikatora mo ze se koristiti i za unikovanje dobro zasno ini instancu neke aksivanih formula. Prilikom ispitivanja da li neka formula c omske sheme, medutim, vr si se samo jednosmerno uparivanje i varijable u formulama se smatraju konstantama koje nije mogu ce instancirati. Postoje i drugi algoritmi 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 ))) mo ze se primeniti algoritam za odredivanje najop stijeg unikatora 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 prve formule smatraju konstantama koje nije mogu ce supstituisati. Time se dobija najop stiji unikator = [x a, y f (u, v )] . Zbog restrikcije nad varijablama u jednosmernom uparivanju, u testiranju da li je p(f (s(a), f (u, y )), s(f (a, f (u, y )))) instanca formule p(f (s(x), y ), s(f (x, y ))), simboli y u prvoj i drugoj formuli ne smatraju se jednakim, te je najop stiji unikator za ove dve formule = [x a, y f (u, y )] .

Zadaci
Zadatak 46 Odrediti najop stiji unikator za slede ci 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 unikabilnosti tranzitivna. Zadatak 48 Dokazati da za dva izraza postoji najvi se jedan najop stiji unikator (do na preimenovanje promenljivih).

3.2 Semantika logike prvog reda

57

3.2.5

Metod rezolucije

Metod rezolucije formulisao je Alan Robinson 1965. godine [?], slede ci mnogobrojne prethodne rezultate. Metod rezolucije je postupak za ispitivanje (ne)zadovoljivosti skupa klauza logike prvog reda, a mo ze se pojednostaviti tako da je primenjljiv za ispitivanje (ne)zadovoljivosti skupa klauza iskazne logike. Metod rezolucije za iskaznu logiku primenjuje se na iskazne formule koje su u konjunktivnoj normalnoj formi, a metod za logiku prvog reda primenjuje se na formule koje su 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 na osnovu logi ckih ekvivalencija A A A i A A A, formula koja je u konjunktivnoj normalnoj mo ze da se zameni (logi cki ekvivalentnom) formulom koja je skup (razli citih) klauza od kojih je svaka skup (razli citih) literala. Sve klauze koje sadr ze logi cke konstante ili mogu biti eliminisane ili zamenjene tako da se ne promeni zadovoljivost polaznog skupa klauza i da se ove konstante ne pojavljuju u skupu klauza. Zaista, klauza koja sadr zi literal je u svakoj valuaciji ta cna, pa mo ze biti eliminisana (jer ne uti ce na zadovoljivost polaznog skupa klauza). Ako klauza C sadr zi literal , onda taj literal mo ze biti obrisan, daju ci novu klauzu C (jer je u svakoj valuaciji klauza C ta cna ako i samo ako je ta cna klauza C ). Klauza je zadovoljiva ako postoji interpretacija u kojoj je bar jedan literal iz te klauze ta can. Prazna klauza, u oznaci 2, ne sadr zi nijedan literal i nije zadovoljiva. Formula koja je skup klauza je zadovoljiva ako postoji interpretacija u kojoj su sve klauze te formule ta cne, a ina ce je nezadovoljiva. U slu caju iskazne logike, ako je literal l jednak iskaznom slovu p, onda cavamo literal p; ako je literal l jednak negaciji iskaznog slova p sa l ozna (tj. literalu p), onda sa l ozna cavamo literal p. Za literale l i l ka zemo da su medusobno komplementni. U slu caju logike prvog reda, ako je literal l jednak cavamo literal p(t1 , t2 , . . . , tn ); ako je literal l p(t1 , t2 , . . . , tn ), onda sa l ozna jednak p(t1 , t2 , . . . , tn ), onda sa l ozna cavamo literal p(t1 , t2 , . . . , tn ). Za lit erale l i l ka zemo da su (medusobno) komplementni. Metod rezolucije za iskaznu logiku U metodu rezolucije za iskaznu logiku primenjuje se pravilo rezolucije slede eg oblika: c C l C l C C Klauzu C C zovemo rezolventom klauza C l i C l, a klauze C l i C l roditeljima rezolvente. Ka zemo da klauze C l i C l rezolviramo pravilom rezolucije. Metod rezolucije je postupak za ispitivanje zadovoljivosti skupa klauza koji se sastoji od uzastopnog primenjivanja pravila rezolucije. Pravilom rezolucije se roditelji rezolvente ne zamenjuju rezolventom, ve c se rezolventa dodaje u skup teku ci skup klauza. Neka je S po cetni skup, neka je S0 = S i neka je Si+1 rezultat primene pravila rezolucije na skup Si . Postupak se zaustavlja na jedan od slede ca dva na cina:

58

3 Logika prvog reda ako u nekom koraku skup Si sadr zi praznu klauzu (2), onda zaustavi primenu procedure i vrati odgovor da je skup klauza S nezadovoljiv; ako ne postoji mogu cnost da se primeni pravilo rezolucije tako da se skupovi Si i Si+1 razlikuju, onda zaustavi primenu procedure i vrati odgovor da je skup klauza S zadovoljiv.

Niz klauza (polaznih i izvedenih) ozna cava cemo obi cno sa Ci (i = 1, 2, . . .). Iza izvedene klauze zapisiva cemo oznake klauza iz kojih je ona izvedena, kao i redne brojeve literala nad kojim je primenjeno pravilo rezolucije. Literale u klauzama razdvaja cemo obi cno simbolom , (umesto simbolom ). Primer 3.19 Metodom rezolucije se iz skupa {{p, q, r}, {p, q }, {p}, {r}} mo ze izvesti prazna klauza: C1 : p, q, r C2 : p, q C3 : p C4 : r C5 : 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 mo ze izvesti prazna klauza. Ovaj skup klauza je, dakle, zadovoljiv. Teorema 3.17 (Teorema o metodu rezolucije) Metod rezolucije se zaustavlja za svaku iskaznu formulu i u zavr snom skupu klauza postoji prazna klauza ako i samo ako je polazna formula nezadovoljiva. Metod rezolucije mo ze na razne na cine biti modikovan tako da bude ekasniji. U svom osnovnom obliku, metod rezolucije proverava da li je dati skup klauza (ne)zadovoljiv. Medutim, metod rezolucije mo ze se koristiti i za ispitivanje valjanosti. Naime, ako je potrebno ispitati da li je formula A valjana, dovoljno je metodom rezolucije utvrditi da li je formula A nezadovoljiva (pri emu je potrebno najpre formulu A transformisati u konjuktivnu normalnu c formu). Ovaj vid dokazivanja da je formula A valjana zovemo dokazivanje pobijanjem. Za metod rezolucije primenjen na ovaj na cin, saglasnost govori da nije mogu ce rezolucijom pogre sno utvrditi (pobijanjem) da je neka formula valjana, a potpunost govori da je za svaku valjanu formulu metodom rezolucije mogu ce dokazati (pobijanjem) da je valjana. Metod rezolucije za logiku prvog reda U logici prvog reda, pravilo rezolucije je op stije nego u iskaznom slu caju, i umesto da zahteva da u dve klauze postoje komplementni literali, zahteva da u dve klauze postoje literali A i A takvi da su atomi cke formule A i A unikabilne. Pravilo rezolucije za logiku prvog reda (u njegovom osnovnom obliku, tzv. binarna rezolucija) mo ze se prikazati na slede ci na cin: A A ( )

3.2 Semantika logike prvog reda

59

gde su i klauze, a je najop stiji unikator za A i A . Obe klauze na koje se primenjuje pravilo rezolucije su (implicitno) univerzalno kvantikovane. Zbog toga se svaka od njihovih varijabli mo ze pre imenovati (jer su formule xA(x) i x A(x ) logi cki ekvivalentne). Stavi se, to je neophodno uraditi za sve deljene varijable, jer bi, ina ce, neke primene pravila rezolucije bile (pogre sno) onemogu cene (jer odgovaraju ci literali ne bi bili unikabilni). Preimenovanje varijabli mo ze se primeniti pre primene pojedina cnog pravila rezolucije ili unapred, pre primene s amog metoda rezolucije. Ako se preimenovanje varijabli primenjuje unapred, pre primene metoda rezolucije, onda ono treba da obezbedi da nikoje dve klauze nemaju zajedni cku promenljivu. Dodatno, u svakoj novoizvedenoj klauzi treba preimenovati promenljive tako da se novi simboli promenljivih ne pojavljuju ni u jednoj drugoj klauzi. Primer 3.21 Nad klauzama p(x, y ) p(z, y ) p(x, z ) i p(b, a) se mo ze primeniti pravilo rezolucije, jer su literali p(x, z ) i p(b, a) unikabilni (uz najop stiji unikator = [x b, z 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 kori sc ena): p(b, y ) p(a, y ). Denicija 3.27 Forma Kovalskog klauze A1 A2 . . . Am B1 B2 . . . Bn je formula A1 A2 . . . Am B1 B2 . . . Bn . Specijalno, forma Kovalskog klauze B1 B2 . . . Bn je formula B1 B2 . . . Bn , a klauze A1 A2 . . . Am formula A1 A2 . . . Am . Ako je u A1 A2 . . . Am B1 B2 . . . Bn i m = 0 i n = 0, onda je to prazna klauza, koju ozna cavamo ili 2. Precizno govore ci, forme Kovalskog B1 B2 . . .Bn , A1 A2 . . .Am ine zapis klauza koji je intuitivan i i nisu dobro zasnovane formule, ali c blizak zapisu u PROLOG-u. Pravilo rezolucije mo ze da se reprezentuje i koriste ci formu Kovalskog: B A A B ( B B )

60

3 Logika prvog reda

gde je najop stiji unikator za formule A , A1 . Zaista, primenom supstitucije na prvu formulu ( B A ) dobija se B A , gde je A = A = A . Primenom supstitucije na drugu formulu ( A B ) dobija se A B . Iz B A i A B dobija se B B , to je logi s cki ekvivalentnto sa ( B B ) . Primer 3.22 Razmotrimo slede ce dve klauze Kovalskog: p(x, y ) p(z, y ) p(x, z ) i p(b, u) . Literali p(x, z ) i p(b, u) mogu biti unikovani supstitucijom [x b, z a, u 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 po cetni skup, neka je S0 = S i neka je Si+1 rezultat primene pravila rezolucije na skup Si .2 Postupak se zaustavlja na jedan od slede ca dva na cina: ako u nekom koraku skup Si sadr zi praznu klauzu (2), onda zaustavi primenu procedure i vrati odgovor da je skup klauza S nezadovoljiv; ako ne postoji mogu cnost da se primeni pravilo rezolucije tako da se skupovi Si i Si+1 razlikuju, onda zaustavi primenu procedure i vrati odgovor da je skup klauza S zadovoljiv. Da bi se dokazalo da je neka formula A valjana, njena negacija se transformi se u klauzalnu formu i onda se na dobijeni skup klauza primenjuje metod rezolucije. Ako se izvede prazna klauza, onda to zna ci da je formula A nezadovoljiva, pa je A valjana; ako u nekom koraku ne mo ze da se izvede nijedna nova klauza, onda to zna ci je formula A zadovoljiva, pa A nije valjana. Mogu c je i ishod da nove klauze mogu da se izvode beskona cno, a da se pri tome ne izvede prazna klauza. Da bi se dokazalo da je neka formula A logi cka 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. Potrebno je, 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 formule je logi cki ekvivavalentna formuli p(a) (x)p(x). Metod rezolucije primenjujemo na skup klauza {p(a), p(x)}. Pravilo rezolucije mogu ce je primeniti samo na jedan na cin literali p(a) i p(x) se unikuju supstitucijom [x a] i njime se dobija prazna klauza. Odatle sledi da je formula p(a) (x)p(x) valjana.
2 Primetimo da u op stem metodu nije specikovano kako se, od svih mogu cih, bira par klauza nad kojim se primenjuje pravilo rezolucije.

3.2 Semantika logike prvog reda

61

Primer 3.24 Formula (x)(y )p(x, y ) (y )(x)p(x, y ) nije valjana. Negacija date formule je logi cki 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 skup od dve klauze: {p(x, f (x)), p(g (x, u), u)}. Pravilo rezolucije nije mogu ce primeniti na 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) ozna cava cemo obi cno sa Ci (i = 1, 2, . . .). Izvedene klauze ozna cava cemo ponekad i sa Ri (i = 1, 2, . . .). Iza izvedene klauze zapisiva cemo oznake klauza iz kojih je ona izvedena, redne brojeve lit eni najop erala u tim klauzama, iskori sc stiji unikator, kao i supstituciju kojom se preimenuju promenljive. Literale u klauzama razdvaja cemo obi cno simbolom , (umesto simbolom ). Primer 3.25 Doka zimo da je formula (x)(y )q (x, y ) logi cka 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 c emu je c nova Skolemova konstanta, a g nova Skolemova funkcija. Konjunktivna normalna forma formule p(x, g (x)) (p(u, v ) q (u, v )) q (c, z ) je p(x, g (x)) (p(u, v ) q (u, v )) q (c, z ) . Elementi po cetnog 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 ) (zaklju cak) Prazna klauza se izvodi na slede ci na cin. R1 : q (x , g (x )) (H1 , 1; H2 , 1), [v g (x), u x]; preimenovanje: [x x ] R2 : 2 (C1 , 1; R1 , 1), [x c, z g (c)]

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

62

3 Logika prvog reda

Primer 3.26 Dokazati da je formula A = xy z (x y y z x z ) logi cka posledica formule B = xy (x y w(w x w y )) (simboli i su predikatski simboli arnosti 2 zapisani inksno). Transformisanjem formule (B A) B A dobija se slede ci 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 za C3 : (a c) promenljive x, y, z u formuli A) Izvedene klauze ozna cava cemo sa Ri (i = 1, 2, . . .). R1 : (w2 a), w2 b (H1 , 1; C1 , 1), [x1 a, y1 b]; preimenovanje: [w1 w2 ] R2 : (w3 b), w3 c (H1 , 1; C2 , 1), [x1 b, y1 c]; preimenovanje: [w1 w3 ] R3 : a y4 , f (a, y4 ) b (H2 , 2; R1 , 1), [x2 a, w2 f (a, y2 )]; preimenovanje: [y2 y4 ] R4 : x4 c, (f (x4 , c) b) (H3 , 2; R2 , 2), [y3 c, w3 f (x3 , c)]; preimenovanje: [x3 x4 ] R5 : a c, a c (R3 , 2; R4 , 2), [x4 a, y4 c]; R6 : 2 (R5 , 1, 2; C3 , 1) Hornove klauze su klauze u kojima postoji najvi se jedan literal koji nije pod negacijom. U PROLOG-u se koriste upravo Hornove klauze. Cetiri tipa Hornovih klauza prikazana su u slede coj tabeli.
Tip implikaciona klauza ciljna klauza injenica c prazna klauza standardna forma A1 . . . An A A1 . . . An A 2 forma Kovalskog A1 . . . An A A1 . . . An A
PROLOG

A : A1 , . . . , An . ? A 1 , . . . , An . A. false

Mo ze se dokazati da svaki nezadovoljiv skup Hornovih klauza sadr zi bar injenicu i bar jednu ciljnu klauzu. Programski jezik PROLOG zasnovan jednu c enju Hornovih klauza. Postoji polinomijalni je na metodu rezolucije i na kori sc algoritam za ispitivanje zadovoljivosti skupa iskaznih Hornovih klauza i on se koristi u PROLOG-u. Primer 3.27 Pretpostavimo da je u PROLOG-u zadata c injenica (assertion): man(sokrat). i pravilo (rule): mortal(X) :- man(X). (PROLOG konvencija je da se konstante zapisuju malim po cetnim slovom, a promenljive velikim po cetnim slovom.) Ako se zada upit: ? - mortal(sokrat). onda se metodom rezolucije poku sava izvodenje prazne klauze iz skupa klauza: {man(sokrat), man(X ) mortal(X ), mortal(sokrat)} . U ovom slu caju, prazna klauza se izvodi jednostavno (koriste ci unikaciju {X sokrat}) i PROLOG vra ca rezultat:

3.2 Semantika logike prvog reda Yes Primetimo da, na primer, upit ? - mortal(platon). ne mo ze da uspe (sem ako nije zadata i c injenica man(platon)).

63

Da bi se pokazalo da je neka formula nezadovoljiva, dovoljno je, primenom metoda rezolucije, iz njenog skupa klauza izvesti praznu klauzu. Dodatno, metod rezolucije ima svojstvo da iz zadovoljivog skupa klauza ne mo ze da izvede nezadovoljiv skup klauza. Ova dva svojstva dokaza cemo kao teoremu o potpunosti i teoremu o saglasnosti za rezoluciju (teoreme ?? i 3.18). Metod rezolucije, dakle, ima slede ce karakteristike: metod rezolucije je saglasan: ako je primenom metoda dobijena prazna klauza, onda je i polazni skup klauza nezadovoljiv (ili, drugim re cima, iz zadovoljivog skupa klauza mo ze se dobiti samo zadovoljiv skup klauza); metod rezolucije nije potpun, ali je potpun za pobijanje: iz svakog nezadovoljivog skupa klauza mogu ce je izvesti praznu klauzu; to mo logika prvog reda nije odlu civa, pa najvi se s ze metod rezolucije da bude je procedura poluodlu civanja (za problem ispitivanja valjanosti). Teorema 3.18 (Potpunost (za pobijanje) metoda rezolucije) Ako je nezadovoljiv skup klauza, onda se iz njega metodom rezolucije mo ze izvesti prazna klauza. Primer 3.28 Formula xy (p(x, y ) p(y, x)) je logi cka posledica formula x p(x, x) i uv w (p(u, v ) p(w, v ) p(u, w)), pa je formula A = (x p(x, x)) (uv w (p(u, v ) p(w, v ) p(u, w))) (xy (p(x, y ) p(y, x))) valjana. C1 C2 C3 C4 C5 : : : : : p(x, x) p(u, v ), p(w, v ), p(u, w) p(a, b) p(b, a) p(u , b), p(u , a) p(b, b) 2

C6 : C7 :

(C2 , 2; C3 , 1) [w a, v b]; preimenovanje: [u u ] (C4 , 1; C5 , 2) [u b] (C1 , 1; C6 , 1) [x b]

Primetimo da u opisu metoda rezolucije nije specikovan na cin na koji se teorema o biraju klauze nad kojim se primenjuje pravilo rezolucije. Takode, potpunosti (teorema 3.18) tvrdi da se iz svakog nezadovoljivog skupa klauza mo ze izvesti prazna klauza, a ne tvrdi da se iz svakog nezadovoljivog skupa klauza mora izvesti prazna klauza bez obzira na izbor klauza za rezolviranje. Naime, u zavisnosti od izbora klauza na koje se primenjuje pravilo rezolucije mogu ce je da se i za nezadovoljiv skup klauza metod rezolucije ne zaustavlja. ini strateNa cin na koji se biraju klauze na koje se primenjuje pravilo rezolucije c giju ili strategiju za upravljanje konkretne verzije metoda rezolucije. Strategija je od su stinske va znosti za obezbedivanje nu znog izvodenja prazne klauze iz nezadovoljivog skupa, ali i za ekasnost metoda.

64

3 Logika prvog reda

Jedna od mogu cnosti za obezbedivanje potpunosti metoda rezolucije u stroz ijem smislu (da postoji strategija za upravljanje metoda rezolucije takva da se iz svakog nezadovoljivog skupa klauza nu zno izvodi prazna klauza u kona cno mnogo koraka) je sistematsko izvodenje svih rezolventi iz skupa klauza koji se iri tokom primene metoda. Sistematski metod rezolucije mo s ze se denisati na ini kreiranje slede ci na cin: metod se primenjuje u stupnjevima; prvi stupanj c ine klauze po cetnog skupa klauza; neka pre i-tog stupnja teku ci skup klauza c C1 , C2 , . . ., Cn , i-ti stupanj sastoji se od izvodenja (i dodavanja teku cem skupu klauza) svih mogu cih rezolventi iz po svake dve klauze iz skupa C1 , C2 , . . ., Cn (broj tih klauza je kona can); metod se zaustavlja ako se u nekom koraku izvede prazna klauza ili ako se u nekom stupnju ne mo ze izvesti nijedna nova klauza. Teorema 3.19 (Potpunost sistematskog metoda rezolucije) Ako je nezadovoljiv skup klauza, onda se iz njega sistematskim metodom rezolucije mora izvesti prazna klauza. Dokaz: Ako je skup klauza nezadovoljiv, onda se, na osnovu teoreme o potpunosti metoda rezolucije (teorema 3.18) iz njega metodom rezolucije mo ze izvesti prazna klauza, tj. postoji niz rezolventi R1 , R2 , . . ., Rn (koje se izvode iz po cetnih i izvedenih klauza) od kojih je poslednja u nizu prazna klauza. Ako se na skup klauza primeni sistematski metod rezolucije, u nekom stupnju bi ce (ako ve c pre toga nije izvedena prazna klauza) izvedene sve klauze iz skupa R1 , R2 , . . ., Rn , pa i prazna klauza. 2 O cigledno je da je sistematski metod rezolucije izuzetno neekasan. Po stoji vi se strategija koje obezbeduju nu zno izvodenje prazne klauze iz nezadovoljivog skupa klauza (tj. spre cavaju beskona cne petlje), ali na ekasniji na cin. Te strategije su od su stinske va znosti i za broj klauza koje se izvode i, shodno tome, za ekasnost metoda. Smanjivanje izvodenja nepotrebnih klauza jedan je od najva znijih problema metoda rezolucije. U daljem tekstu bi ce ukratko opisane neke od strategija koje se koriste u razli citim varijantama metoda rezolucije. Razmotrimo slede ci primer: potrebno je dokazati da je formula xy (p(x, y ) p(y, x)) logi cka posledica formula xp(x, x) i uv w(p(u, v ) p(w, v ) p(u, w)). Dovoljno je dokazati da formula x p(x, x) (uv w (p(u, v ) p(w, v ) p(u, w))) (xy (p(x, y ) p(y, x))) nije zadovoljiva. Negacija navedene 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, Skolemove konstante). 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 zalju cka) C4 : p(b, a) (drugi deo zaklju cka) C5 : p(b, v2 ), p(a, v2 ) (C4 , 1; C2 , 3) [u1 b, w1 a]; preimenovanje: [v1 v2 ] C6 : p(b, b) (C5 , 2; C3 , 1) [v2 b] C7 : 2 (C6 , 1; C1 , 1) [x1 b] Primetimo da se u navedenom primeru u svakoj primeni pravila rezolucije koristi poslednja klauza u nizu (osim u prvom koraku, to je uvek rezolventa iz

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

3.2 Semantika logike prvog reda

65

prethodno primenjenog pravila rezolucije) i rezolvira sa nekom od originalnih klauza. Ovaj vid pobijanja je veoma prirodan. On, u izvesnom smislu, opona sa rezonovanje matemati cara koji kre ce od tvrdenja koje treba dokazati i u dokazu koristi aksiome i date hipoteze. Ova strategija za upravljanje metodom rezolucije zove se linearna ulazna rezolucija linearna, jer se u svakoj primeni pravila rezolucije koristi poslednja klauza u nizu; ulazna, jer se u svakoj primeni pravila rezolucije koristi jedna od po cetnih klauza. Linearna ulazna rezolucija je jedna od varijanti op steg metoda rezolucije. S obzirom na to da ona isklju cuje mnoge puteve izvodenja novih klauza, ona je obi cno znatno ekasnija nego op sti metod rezolucije. Medutim, iz istog razlo to ga ima op ga, linearna ulazna rezolucija nema svojstvo potpunosti (kao s sti metod rezolucije). Nepotpunost linearne ulazne rezolucije ilustruje slede ci primer: 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 x2 ]; preimenovanje: [x2 x5 ] C6 : q (x6 ) (C5 , 1, 2; C1 , 1) [x5 x1 ]; preimenovanje: [x1 x6 ] C7 : p(x7 ) (C6 , 1; C3 , 1), [x6 x3 ]; preimenovanje: [x3 x7 ] Klauza C7 mo ze se rezolvirati samo sa klauzom C2 ili sa klauzom C4 . Re to vodi u beskona zolucija sa C2 daje q (x), s cnu petlju. Rezolucija sa C4 daje to, dalje, daje simetri q (x), s cnu situaciju. Sli cno va zi i za sve ostale mogu cnosti, te praznu klauzu nije mogu ce izvesti ukoliko se koristi linearna ulazna strategija. Linearna ulazna rezolucija ima svojstvo potpunosti za pobijanje za neke klase formula. Na primer, linearna ulazna rezolucija ima svojstvo potpunosti za pobijanje skupova Hornovih klauza, tj. linearna ulazna rezolucija mo ze dovesti do prazne klauze za svaki kontradiktoran skup Hornovih klauza (u navedenom primeru, prva klauza nije Hornova). Linearna ulazna rezolucija nad Hornovim klauzama se koristi u PROLOG-u. Pored opisane ulazne strategije i linearne strategije, neke od najzna cajnijih strategija za upravljanje metodom rezolucije su prednost jedini cnim klauzama, skup potpore, itd. U cilju ekasnijeg primenjivanja metodu, pored pravila rezolucije, koriste se i dodatna pravila, kao na primer paramodulacija. Sa ciljem enju da zameni veliki broj ( cesto komplikovanih i neprirodnih koraka) u kori sc aksioma jednakosti, uvodi se pravilo paramodulacije. Ono pove cava ekasnost metoda rezolucije, ali nije nu zno njegov deo (jer pravilo paramodulacije mo ze biti izvedeno pravilom rezolucije). Pravilo paramodulacije mo ze biti reprezentovano na slede ci na cin: A t = s B ( ili s = t B ) (A[t s] B ) gde je najop stiji unikator za termove t i t i gde je A formula koja sadr zi term t . Na primer, iz klauza h(a) = b i c = a mo ze da se izvede klauza h(c) = b

66

3 Logika prvog reda

primenom pravila paramodulacije (u jednom koraku) na slede ci na cin: h(a) = b c = a ((h(a) = b)[a 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 i dva 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 mo ze 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 i dva 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 mo ze da bude kontradiktoran? (c) Ako su skupovi S1 i S2 kontradiktorni, da li skup S1 S2 mora da bude kontradiktoran? (d) Ako su skupovi S1 i S2 kontradiktorni, da li skup S1 S2 mo ze da bude kontradiktoran? (e) Ako su skupovi S1 i S2 kontradiktorni, da li skup S1 S2 mora da bude kontradiktoran? Zadatak 51 Dokazati metodom rezolucije za iskaznu logiku da su naredne formule tautologije: (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 Koriste ci metod rezolucije za logiku prvog reda dokazati da va zi: (x)(p(x) q (x)), p(c) |= q (c) . Zadatak 53 Metodom rezolucije za logiku prvog reda dokazati da je naredna formula valjana: (x)(y )p(x, y ) (y )(x)p(x, y ) .

3.3 Prirodna dedukcija

67

Zadatak 54 Metodom rezolucije za logiku prvog reda dokazati da je naredna formula valjana: (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) logi cka 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 xy (x = y y = x) logi cka posledica formula x (x = x) i uv w (u = v w = v u = w ). Zadatak 58 Va zi slede ce: Janko ima psa. Svaki vlasnik psa voli z ivotinje. Nijedna osoba koja voli z ivotinje ne mo ze da udari z ivotinju. Janko ili Marko su udarili ma cku c ije je ime Tuna. Svaka ma cka je z ivotinja. Metodom rezolucije za logiku prvog reda dokazati da je Marko udario Tunu. Zadatak 59 Za narednu formulu metodom rezolucije za logiku prvog reda dokazati da je valjana: (x)(A(x) C ) ((x)A(x) C ) pri c emu je C re cenica. (Ovaj zadatak ilustruje kako metod rezolucije mo ze biti oslabljen tako da se primenjuje i na formule koje nisu u klauzalnoj formi.) Zadatak 60 Prevesti na jezik logike prvog reda i dokazati metodom rezolucije za logiku prvog reda slede ce tvrdenje: Ako su svi politi cari lukavi i ako su samo pokvareni ljudi politi cari, onda, ako postoji bar jedan politi car, onda je neki pokvaren c ovek lukav.

3.3

Prirodna dedukcija

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

68

3 Logika prvog reda

sistemi obi cno imaju svojstvo potpunosti i saglasnosti: ako je neka formula valjana, onda ona mo ze biti dokazana u okviru deduktivnog sistema, a ako za neku formulu postoji dokaz u okviru deduktivnog sistema, onda je ona sigurno valjana. isto sintaksne prirode primenjuju se kroz komSistemi za dedukciju su c binovanje simbola, ne ulaze ci u semantiku formula. Sisteme za dedukciju za iskaznu logiku zovemo i ra cun (iskazni ra cu u slu caju iskazne logike i predikatski ra cu u slu caju logike prvog reda). Postoji vi se razli citih deduktivnih sistema, a e biti opisan samo jedan prirodna dedukcija. u nastavku c Sistem prirodne dedukcije (ra cun prirodne dedukcije) uveo je, 1935. godine, Gerhard Gencen sa namerom da prirodnije opi se uobi cajeno zaklju civanje matemati cara [?]. U prirodnoj dedukciji koriste se logi cki veznici3 , , , , kao i logi cka konstanta . Formula A B je kra ci zapis za (A B) (B A), a formula kra ci zapis za A A. Skup formula deni se se na uobi cajeni na cin. Pravila izvodenja sistema prirodne dedukcije data su u tabeli 3.1. Primetimo da za svaki logi cki veznik i svaki kvantikator postoje pravila koja ga uvode (pravila I -tipa) i pravila koja ga elimini su (pravila E -tipa). Pravilo ef q (Ex falso quodlibet) je jedino pravilo koje ne uvodi niti elimini se neki logi cki ine sva veznik. Skup pravila sistema prirodne dedukcije za iskaznu logiku c pravila iz tabele 3.1 izuzev onih koja uklju cuju kvantikatore. Postoji sistem prirodne dedukcije za klasi cnu logiku (koji zovemo sistem NK) i sistem prirodne dedukcije za intuicionisti cku logiku (koji zovemo sistem NJ). U sistemu prirodne dedukcije za klasi cnu logiku postoji jedna aksiomska shema: A A (tertium non datur). Sistem za intuicionisti cku logiku nema aksioma. U pravilima izvodenja prikazanim u tabeli 3.1 simbol t ozna cava proizvoljan term. Simbol y ozna cava tzv. eigenvariable (pravu promenljivu) simbol promenljive za koju va zi tzv. eigenvariable uslov. Ovaj uslov za pravilo I je da va zi da je x = y ili da promenljiva y nije slobodna u A, kao i da va zi da y nije slobodna ni u jednoj neoslobodenoj pretpostavci u izvodenju formule A[x y ]. Eigenvariable uslov za pravilo E je da va zi da je x = y ili da promenljiva y nije slobodna u A, kao i da va zi da y nije slobodna u B niti u bilo kojoj neoslobodenoj pretpostavci u izvodenju formule B osim, eventualno, u formuli A[x y ]. Tokom izvodenja dokaza u sistemu prirodne dedukcije mogu se koristiti (nedokazane) pretpostavke, ali one moraju biti eliminisane (,,oslobodene) pre kraja izvodenja. U zapisu pravila, [F ] ozna cava da se nekoliko (mo zda i nula) bri pojavljivanja pretpostavke F oslobada, se (kao nedokazane, neraspolo zive pretpostavke) neposredno nakon primene pravila. Pri tome, mo ze ostati i nekoliko neoslobodenih pojavljivanja pretpostavke F . Pretpostavkama su pridru zene oznake (obi cno prirodni brojevi), koje se zapisuju i u okviru zapisa primenjenog pravila (kako bi se znalo koja pretpostavka je oslododena u kom koraku). ijem je svakom U sistemu prirodne dedukcije dokaz (dedukcija, izvod) je stablo c voru pridru c zena formula, a svakom listu ili pretpostavka ili aksioma. For ijem je korenu A i mula A je teorema prirodne dedukcije ako postoji dokaz u c
3 Iz sistema prirodne dedukcije mogu ce je eliminisati veznik smatraju ci formulu A skra cenim zapisom za A .

3.3 Prirodna dedukcija [A]u . . . . I, u A A B I AB

69

A E AB E B [B ]v . . . . C E, u, v

AB E A [A]u . . . . AB C C

A I AB

B I AB

[A]u . . . . B I, u AB A[x y ] I (x)A uz dodatni uslov

AB E B (x)A E A[x t] [A[x y ]]u . . . . B E, u

A[x t] I (x)A

(x)A

B uz dodatni uslov ef q D

Table 3.1: Pravila izvodenja sistema prirodne dedukcije

koji nema neoslobodenih pretpostavki i tada pi semo A i ka zemo da je for ijem je mula A dokaziva u sistemu prirodne dedukcije. Ako postoji dokaz, u c korenu formula A i koji ima neoslobodene pretpostavke koje pripadaju nekom nizu , onda ka zemo da je formula A deduktivna posledica niza i tada pi semo A. Elemente niza tada zovemo i premisama ili hipotezama dokaza. Ako je niz jednak B1 , B2 , . . . , Bn , onda pi semo B1 , B2 , . . . , Bn A. iji Dokaz u sistemu prirodne dedukcije se obi cno prikazuje u vidu stabla c su 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 u iskaznoj logici.

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

70
. . . A . . . B . . . . A C D . . . . . . . . B

3 Logika prvog reda

D . . .

Figure 3.3: Deo dokaza i njegov pojednostavljeni prikaz tj. va zi ( A B ) ( B A) : [A]2 [B ]3 I I [A B ] B A BA E, 2, 3 BA I, 1 ( A B ) ( B A)


1

Primer 3.30 U sistemu prirodne dedukcije va zi: A B, B C [A]1 AB E B BC E C I, 1 AC

A C:

Primer 3.31 U sistemu prirodne dedukcije va zi

A (A B ) (A C ):

[A]1 [A]1 I I AB AC I (A B ) (A C ) I, 1 A (A B ) (A C ) U prethodnom dokazu, primenom pravila I nisu morala da budu oslobodena sva pojavljivanja pretpostavke A. Na primer: [A]1 A I I AB AC I (A B ) (A C ) I, 1 A (A B ) (A C ) Ovaj dokaz je dokaz tvrdenja A A (A B ) (A C ) ( sto je slabije tvrdenje od tvrdenja A (A B ) (A C )). Naredni primeri ilustruju primenu prirodne dedukcije za dokazivanje u logici prvog reda. Primer 3.32 Formula (x)(y )p(x, y ) (y )(x)p(x, y ) je teorema sistema prirodne dedukcije (i za klasi cnu i za intuicionisti cku logiku). Neki matemati car bi ovu formulu (neformalno) dokazao na slede ci na cin:

3.3 Prirodna dedukcija 1. Pretpostavimo da va zi (x)(y )p(x, y ). 2. Pretpostavimo da va zi (y )p(x , y ) za neko x . 3. Neka je y proizvoljni objekat. Tada va zi p(x , y ). 4. Iz p(x , y ) sledi da va zi (x)p(x, y ). 5. Objekat y je proizvoljan, pa va zi (y )(x)p(x, y ).

71

6. Iz (x)(y )p(x, y ) i iz toga s to 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 va zi (x)(y ) p(x, y ) (y )(x)p(x, y ). Ovaj dokaz mo ze se precizno opisati u vidu dokaza u sistemu prirodne dedukcije (i za klasi cnu i za intuicionisti cku logiku): [(y )p(x , y )] E p(x , y ) I (x)p(x, y ) I 2 [(x)(y )p(x, y )] (y )(x)p(x, y ) E, 1 (y )(x)p(x, y ) I, 2 (x)(y )p(x, y ) (y )(x)p(x, y ) Primer 3.33 Formula (x)p(x) (y )p(y ) je teorema sistema prirodne dedukcije (i za klasi cnu i za intuicionisti cku logiku): [p(z )]1 I (x)p(x)
1

E I, 1 p(z ) I (y )p(y ) I, 2 (x)p(x) (y )p(y ) xB :

[(x)p(x)]2

Primer 3.34 U sistemu prirodne dedukcije va zi xA, x(A B) xA E A x(A B ) E AB E B I xB

Naredna teorema povezuje semanti cka i deduktivna svojstva klasi cne logike (ona va zi i za iskaznu i za predikatsku logiku). Teorema 3.20 Formula je teorema sistema prirodne dedukcije za klasi cnu logiku ako i samo ako je valjana.

72

3 Logika prvog reda

Zadaci
Zadatak 61 Dokazati da u prirodnoj dedukciji va zi A B, A B. Zadatak 62 Dokazati da je formula (A B ) (B A) teorema sistema prirodne dedukcije za klasi cnu logiku. Zadatak 63 Dokazati da je formula (A (B C )) ((A B ) (A C )) teorema sistema prirodne dedukcije za klasi cnu logiku. Zadatak 64 Dokazati da je formula (A B ) (A B ) teorema sistema prirodne dedukcije za klasi cnu logiku.

3.4

Sa zetak

Glava 4

PROLOG
U logi ckom programiranju, logika se koristi kao deklaritivni jezik za opisivanje problema, a dokaziva c teorema kao mehanizam za re savanje problema. Re savanje problema je podeljeno izmedju programera koji opisuje problem i dokaziva ca teorema koji problem re sava. Jezik PROLOG je najzna cajniji predstavnik jezika deskriptivnog i logi ckog programiranja. Veoma je pogodan za mnoge primene tehnika ve sta cke inteligencije. Pogodan je za obrade prirodnog jezika, ali i za brz razvoj prototipova drugih inteligentnih programa, jer se obrada ulaza i izlaza, parsiranje i druge sli cne operacije jednostavno implementiraju. Ime PROLOG-a dolazi od engleskih re ci PROgramming in LOGic. Mehanizam izvodjenja zaklju caka u PROLOG-a zasniva se na metodu rezolucije koji je opisao Alan Robinson 1965. godine. Jezik PROLOG i prvi interpretator za njega razvijeni su na Univerzitetu u Marseju 1972. godine, kao plod saradnje istra ziva ca Alain Colmerauer-a iz Marseja i Roberta Kowalskog iz Edinburga. Oni su primetili da se klauzalna forma mo ze koristiti za opisivanje formalnih gramatika i da se dokaziva ci zasnovani na rezoluciji mogu koristiti za parsiranje. Ekasan PROLOG mehanizam omogu cen je otkri cem LUSH ili SLD rezolucije koju je opisao Kowalski 1973. godine. Prakti cna upotreba PROLOG-a kao programskog jezika omogu cena je razvojem ekasnog kompilatora Davida Warrena, u Edinburgu 1977. godine. Ta verzija jezika, Edinbur ski PROLOG, detaljno opisana 1980. u knjizi Clocksina i Mellish-a nametnula se vremenom kao standardna verzija jezika i najja ce uticala na ISO standard za PROLOG.

4.1

Interpretatori i kompilatori

PROLOG sistemi obi cno sadr ze interaktivni interpretator (sa debagerom). Pored toga, neki sistemi omogu avaju i kompiliranje koda koje daje izvr sne verzije c esto je veoma ekasan koje mogu samostalno da se izvr savaju. Izvr sni kod i uporediv sa izvr snim kodom dobijenim od programa na nekom proceduralnom jeziku. Komunikacija sa PROLOG interpretatorom odvija se kroz komandni prozor. Prompt interpretatora obi cno izgleda ovako:

74

4 PROLOG

? enju jezika a i samog inVe cina PROLOG sistema sadr zi uputstva o kori sc terpretatora. Ovo uputstvo se obi cno mo ze dobiti sa ?- help(help). Komanda halt prekida izvr savanje interpretatora (ili kompiliranog programa) i vra ca kontrolu operativnom sistemu. Neki od najpopularnijih PROLOG interpretatora su Quintus, Sixtus, SWI PROLOG itd.

4.2

Sintaksa i semantika u PROLOG-U

ine: mala i velika slova engleskog alfabeta, cifre i specijalni Jezik PROLOG-a c simboli (_, +, *, (, ), [, ], . . .. Skup termova deni se se na slede ci na cin: promenljive su termovi; promenljive se zapisuju po cetnim velikim slovom ije ili simbolom _ (simbolom _ po cinju imena anonimnih promenljivih c vrednosti nisu bitne). konstante su termovi; konstante su zapisi brojevnih konstanti (celobrojnih i realnih, npr. -123, 3.14) ili atomi. Atom je: niz slova, cifara i simbola _ koji po cinje 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 vi seg reda (na primer, man(sokrat) ili ucitelj(sokrat,X)). Ovakve termove vi seg reda u PROLOG-u zovemo i predikati. Semantika, interpretacija termova odredjena je teku cim stanjem baze znanja. ine s Domen interpretacije c ami PROLOG termovi. Baza znanja, koju PROLOG injenica i pravila. Cinjenice odr zava, sastoji se od c su predikati oblika: p(x1,x2,...,xn) injenicu man(sokrat), onda se u prate Ukoliko baza znanja sadr zi c coj interpretaciji atomi ckoj formuli man(sokrat) pridru zuje vrednost 1, tj. ona je ta cna. 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 rep pravila (eng. tail of the rule) ili telo pravila (eng. body of the rule). Navedeno pravilo interpretira se kao implicitno univerzalno kvantikovana implikacija: q(y1,y2,...,ym) . . . r(z1,z2,...,zk) p(x1,x2,...,xn) injenicu Ukoliko baza znanja sadr zi pravilo mortal(sokrat) :- man(sokrat) i c man(sokrat), onda iz nje sledi da mortal(sokrat) ima semanti cku vrednost 1. Upiti ili ciljevi (eng. goals) su oblika q(y1,y2,...,ym),...,r(z1,z2,...,zk) Postaviti cilj zna ci tra ziti proveru da li je zadati skup atomi ckih formula za neku valuaciju promenljivih koje sadr zi ta can (tj. ima semani cku vrednost 1) u odnosu na teku ce stanje baze. Ako je taj uslov ispunjen, ka zemo da je

4.3 Po cetni primeri

75

cilj zadovoljen ili da cilj uspeva (eng. succeed). Valuaciju za koju je zadati cilj zadovoljen zovemo odgovorom na zadati cilj ili re senjem zadatog cilja. injenicu man(sokrat), i pravilo Na primer, ukoliko baza znanja sadr zi c mortal(X) :- man(X), onda cilj mortal(Y) mo ze biti zadovoljen i to za valuaciju kojom se promenljiva Y preslikava u vrednost sokrat. Jedini odgovor na ovaj cilj bi ce, dakle, Y = sokrat. injenice i pravila se zadaju iza prompta, U interaktivnom okru zenju, nove c kao argumenti predikata assert(...) i svaki zadati cilj se mora zavr savati ta ckom. Cinjenice, pravila i ciljevi, pored navedene, deklarativne semantike, imaju i enje PROLOG-a odgovaraju cu proceduralnu semantiku koja omogu cava kori sc injenice man(sokrat) je da kao programskog jezika. Proceduralna semantika c je zadatak man(sokrat) izvr sen. Proceduralna semantika pravila mortal(X) :- man(X) je: da bi se izvr sio zadatak mortal(X) potrebno je da se izvr si zadatak man(X). Proceduralna semantika cilja mortal(X) je: odredi valuaciju takvu da je mortal(X) ta cno. Proceduralna semantika za slo zeni cilj, koji se sastoji od vi se pojed to se podciljevi obradjuju sleva na desno. ina cnih ciljeva, je analogna, s tim s PROLOG interpretator kao odgovor na neki cilj koji je zadovoljen, ispisuje emo zvati i instanciranje) jednu valuaciju (zbog speci cnog domena, valuaciju c promenljivih za koju je cilj ta can i re c Yes (ukoliko ime neke promenljive po cinje simbolom _, onda se njena vrednost ne ispisuje). Ukoliko cilj ne mo ze biti zadovoljen, interpretator ispisuje re c No. Ukoliko jedan cilj ima vi se odgovora to (tj. zadovoljavaju cih valuacija), PROLOG ih navodi jedan po jedan, nakon s korisnik ukuca znak ;. Ukoliko korisnik pritisne Enter, interpretator prestaje sa daljim navodjenjem re senja. Kada su sva re senja navedena, interpretator ispisuje re c No.

4.3

Po cetni primeri

injenica se mo Nova c ze zadati kao u slede cem 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 sli can na cin, na primer: ?- assert(mortal(X) :- man(X)). U pravilu mortal(X) :- man(X), predikat mortal(X) je glava pravila a (jedno clani) niz predikata man(X) je rep pravila. injenica Komandom listing mo zemo da dobijemo spisak svih postoje cih c i pravila: ?- listing. man(sokrat). mortal(A) :-

76 man(A).

4 PROLOG

Upit ?- mortal(sokrat). uspeva (daje odgovor Yes). Da bi ovaj upit bio zadovoljen, u pravilu mortal(X) :- man(X) je promenljiva X bila unikovana sa konstantom sokrat. Nakon toga, cilj mortal(sokrat) injeniva. je zamenjen ciljem man(sokrat) i on uspeva jer postoji takva c Upit ?- mortal(plato). ne uspeva (daje odgovor No). Upit ?- mortal(A). uspeva i daje odgovor A = sokrat. To je jedino mogu ce re senje i ako ukucamo simbol ; dobi cemo odgovor No. Jednostavan i ilustrativan primer denisanja odnosa u PROLOG-u mo ze se to su otac, majka, brat, tetka i sli dati na primeru porodi cnih relacija kao s cno. 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).

4.4 PROLOG i metod rezolucije 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).

77

U relacijama brat i sestra predikag X\==Y je ima vrednost ta cno ako je X razli cito od Y. U suprotnom, ima vrednost neta cno.

4.4

PROLOG i metod rezolucije

Pravilo oblika: p(x1,x2,...,xn) :- q1(y1,y2,...,ym),...qm(z1,z2,...zk) mo ze se smatrati implikacijom q1(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) mo ze se smatrati klauzom p(x1,x2,...,xn). Cilj oblika: q1(y1,y2,...,ym),...qm(z1,z2,...zk) mo ze se smatrati klauzom q1(y1,y2,...,ym) . . . qm(z1,z2,...zk) injenice i pravila: U primeru iz poglavlja 4.3, ako postoje slede ce c 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 tre coj klauzi promenljive preimenovana u Y, da ne bi do slo do preklapanja imena u dve klauze. Ciljna klauza mo ze da se rezolvira enjem unikatora [ Y sokrat ] daju sa drugom klauzom, kori sc ci novi cilj man(sokrat) enjem Rezolviranjem ove klauze sa prvom klauzom iz po cetnog skupa, kori sc unikatora [ X sokrat ] dobija se prazna klauza, pa je dokazana nezadovoljivost datog skupa klauza. Pritom je odredjena (jedinstveno) instanciranje promenljive X iz zadatog cilja.

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

78

4 PROLOG

Primetimo da u svim PROLOG klauzama najvi se jedan literal nije pod negacijom. Takve klauze zovemo Hornovim klauzama i one omogu cavaju ekasan mehanizam izvodjenja prazne klauze. PROLOG mehanizam je kompletan: on mo ze izvesti praznu klauzu iz bilo kog nezadovoljivog skupa.

4.5

Stablo izvodjenja

PROLOG sistem (interpretator ili kompilator) poku sava da zadovolji zadati ine stablo cilj sistemati cnim ispitivanjem svih mogu cnosti. Sve mogu cnosti c ijim lisizvodjenja (eng. derivation tree) ili stablo pretrage (eng. search tree) c tovima odgovaraju odgovori za zadati cilj. Ukoliko svakom od listova odgovara neuspeh, zadati cilj je nezadovoljen. Ukoliko bar jednom listu odgovara uspeh, cilj je zadovoljen i unikacija koja vodi do tog lista predstavlja jedno re senje za zadati cilj. Stablo izvodjenja PROLOG-a ilustrova cemo primerom. Pretpostavimo da dat na slici 4.1 (na kraju svakog je u citana PROLOG datoteka koja sadr zi kod reda, pod komentarom je oznaka klauze). Grane stabla su ozna cene oznakama vora odgovaraju klauza koje se koriste u izvodjenju. Direktni potomci jednog c svim mogu cim izvodjenjima odgovaraju ceg podcilja. PROLOG mehanizam ih sve ispituje sistemati cno. Poredak potomaka direktno odgovara poretku klauza u postoje cem programu i on diktira na cin izvr savanja upita. Na slici je prikazano kompletno stablo izvodjenja za cilj ?-p(X). vor stabla je u nekom trenutku teku ini nekoSvaki c ci cilj koji mo ze da c liko podciljeva. Ukoliko se krajnji levi podcilj unikuje sa glavom neke klauze, onda se taj podcilj zamenjuje telom klauze instanciranim tom istom unikacijom. Ako je telo klauze prazno, onda se podcilj samo izostavlja. Ako se svi podciljevi mogu obrisati tokom izvodjenja, onda je polazni cilj zadovoljen, a instanciranje promenljivih odredjeno usput daje odgovor. to zna e alternativni izPROLOG stablo izvodjenja obilazi u dubinu, s ci da c bori da budu ispitani onda kada se pretraga vrati do ta cke u kojoj ti izbori postoje. Ovaj postupak pretrage zove se bektreking (eng. backtracking). U skladu sa prikazanim stablom izvodjenja, upit p(X) da ce slede ce odgovore: ?- p(X). X = a ; X = a ; X = b ; X = d ; No

4.6 Operator se cenja p(a). p(X) :- q(X), r(X). p(X) :- u(X). q(X) :- s(X). /* C1 */ /* C2 */ /* C3 */ /* C4 */

79

r(a). r(b).

/* C5 */ /* C6 */

s(a). s(b). s(c). u(d).


p(X)

/* C7 */ /* C8 */ /* C9 */ /* C10 */

C1 (X=a) true X=a

C2 q(X),r(X)

C3 u(X)

C4 s(X),r(X)

C10(X=d) true X=d C9(X=c) r(c)

C7(X=a) r(a)

C8(X=b) r(b)

C5 C6 C5 C6 C5 C6 true fail fail true fail fail X=a X=b

Figure 4.1: Primer stabla izvodjenja

4.6

Operator se cenja

Operator se cenja (eng. cut operator), koji se zapisuje !, odseca delove stabla pretrage. Ovaj operator, uspeva kada je on teku ci cilj i stablu izvodjenja se odsecaju svi drugi izvori na putu unzad do ta cke stabla izvodjenja (uklju cuju ci i nju) gde se nalazi operator. Za program naveden u poglavlju 4.5, za cilj p(X),!. dobija se samo jedan odgovor (a odgovaraju ce stablo izvodjenja je prikazano na slici 4.2 sivom vorovi koji se ne obilaze): bojom ozna ceni su c ?- p(X),!. X = a ;

80 No
p(X)

4 PROLOG

C1 (X=a) true X=a

C2 q(X),r(X)

C3 u(X)

C4 s(X),r(X)

C10(X=d) true X=d C9(X=c) r(c)

C7(X=a) r(a)

C8(X=b) r(b)

C5 C6 C5 C6 C5 C6 true fail fail true fail fail X=a X=b

Figure 4.2: Primer rada operatora se cenja Za isti program, upit r(X),s(Y) daje odgovore (stablo izvodjenja je prikazano na slici 4.3): ?- r(X),s(Y). X = a Y = a ; X = a Y = b ; X = a Y = c ; X = b Y = a ; X = b Y = b ; X = b Y = c ; No Upit r(X),!,s(Y), zbog operatora se cenja daje samo odgovore (stablo izvodjenja je prikazano na slici 4.4): ?- r(X),!,s(Y).

4.6 Operator se cenja


r(X),s(Y)

81

C5(X=a) s(Y)

C5(X=b) s(Y)

C7(Y=a) C7(Y=b) C7(Y=c) C7(Y=a) C7(Y=b) C7(Y=c) true true true true true true X=a,Y=a X=a,Y=b X=a,Y=c X=b,Y=a X=b,Y=b X=b,Y=c

Figure 4.3: Stablo izvodjenja

X = a Y = a ; X = a Y = b ; X = a Y = c ; No
r(X),!,s(Y)

C5(X=a) s(Y)

C5(X=b) s(Y)

C7(Y=a) C7(Y=b) C7(Y=c) C7(Y=a) C7(Y=b) C7(Y=c) true true true true true true X=a,Y=a X=a,Y=b X=a,Y=c X=b,Y=a X=b,Y=b X=b,Y=c

Figure 4.4: Stablo izvodjenja sa operatorom se cenja Kona cno, upit r(X),s(Y),!, zbog operatora se cenja daje samo jedan odgovore (stablo izvodjenja je prikazano na slici 4.5): ?- r(X),s(Y),!. X = a Y = a ;

82 No
r(X),s(Y),!

4 PROLOG

C5(X=a) s(Y)

C5(X=b) s(Y)

C7(Y=a) C7(Y=b) C7(Y=c) C7(Y=a) C7(Y=b) C7(Y=c) true true true true true true X=a,Y=a X=a,Y=b X=a,Y=c X=b,Y=a X=b,Y=b X=b,Y=c

Figure 4.5: Stablo izvodjenja sa operatorom se cenja Operator se cenja ne koristi se samo u ciljevima, ve c mo ze da se koristi i u ine program. On spre enje klauza koje pravilima/klauzama koje c cava kori sc postoje iza klauze koja ga sadr zi. 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 dovoljno ekasan. Ukoliko je cilj max(3,4,Y) pozvan u okviru izvr savajna nekog ve ceg programa, bi ce dobijen (ispravan) odgovor Y=4. Medutim, ukoliko dode do bektrektinga program ce poku sati da zadovolji max(3,4,Y) na neki drugi to je u ovom slu na cin, s caju potpuno nepotrebno: maximum brojeva 3 i 4 je 4 i nema drugog mogu ceg rezultata. U gore navedenoj denicije, dve klauze se medusobno isklju cuju (ako prva uspeva, onda druga sigurno ne uspeva i obratno), pa je svaki poku saj da cilj bude zadovoljen na dva na cina gubljenje vremena. enjem operatora se Opisani problem mo ze se prevazi ci kori sc cenja. Ako je prva 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 funkcioni se na slede ci na cin: ukoliko je pozvan cilj max(X,Y,Y) i ukoliko X =< Y uspeva, onda je drugi argument maksimum i operator se cenja onemogu cava ispitivanje drugih mogu cnosti. S druge strane, (samo) ako X =< Y ne uspeva, prelazi se na slede cu klauzu. Primetimo da upotrebljeni operator se cenja ne menja zna cenje programa i skup odgovora (u odnosu na prethodnu verziju). Obe verzije programa su iste, do na operator se cenja i to sugeri se da je njegova upotreba opravdana i prihvaljiva. Takav operator se cenja (koji ne menja zna cenje programa) zovemo zeleni operator se cenja. Operator se cenja tog tipa ima za cilj izbegavanje nepotrebnih izra cunavanja popravljanje ekasnosti.

4.7 Negacija kao neuspeh

83

Postoji i druga vrsta operatora se cenje crveni operator se cenja. Crvenim zovemo operator se cenja koji menja zna cenje programa. U principu dobro je izbegavati takve operatore, sem ako za njihovu upotebu ne postoji dobar razlog. Razmotrimo slede ci primer: max(X,Y,Y) :- X =< Y,!. max(X,Y,X). Ovaj predikat je sli can prethodnom, uz razliku da je u drugoj klauzi izostavljen uslov X>Y. Navedni program sa opetorom se cenja nije isti ukoliko se izostavi operator se cenja. To sugeri se da njegova upotreba zahteva posebnu pa znju (jer on menja zna cenje programa). Za neke upite navedena implementacija je ispravna. Na primer, ona ispravno odgovara na upite u kojima je (samo) tre ci argument promenljiva: ?- max(100,101,X). X = 101 Yes ?- max(3,2,X). X = 3 Yes Ipak, situacija nije ista kao sa zelenim operatorom se cenjam i zna cenje predikata max je promenjeno. Na primer, ukoliko su sva tri argumenta instancirana, cilj mo ze da bude da se zadovolji max(2,3,2). Ovaj upit ne bi trebalo da uspe, ali u navednoj verziji sa crvenim operatorom se cenja on (neo cekivano?) uspeva. Naime, ne uspeva unikovanje sa prvom klauzom, te se prelazi na drugu. Cilj se uspe sno unikuje sa drugom klauzom i biva zadovoljen. Ovaj primer pokazuje kako neoprezna upotreba operatora se cenja mo ze da dovede do neo cekivanog pona sanja programa. On je tipi can primer za crveni operator se cenja. Navedena implementacije zapravo ne deni se maksimum, ve c neki drugi predikat i pona sa se o cekivano (kao maksimum) samo u nekim slu cajevima. Dobra praksa je da se najpre implementira jasan program bez operatora enjem operatora se se cenja i da se tek onda njegova ekasnost popravi kori sc cenja.

4.7

Negacija kao neuspeh

Termin negacija kao neuspeh se koristi za na cin na koji se pretpostavka zatvorenog sveta (eng. closed world assumption) implementira kao vrsta negacije u PROLOG to u. Grubo re ceno, pretpostavka zatvorenog sveta govori da je neta cno sve s nije eksplicitno navedeno kao ta cno. Operator \+ daje efekat negacije kao neuspeha, isto kao predikat not denisan na slede ci na cin (u nekim implementacijama PROLOG-a raspolo ziv je i ovakav predikat not): not(Q) :- call(Q), !, fail. not(Q).

84

4 PROLOG

Dakle, cilj not(Q) uspeva ako i samo ako cilj Q ne uspeva. Razmotrimo slede ci primer u kojem se de se pojam woman preko pojma man: man(sokrat). man(platon). woman(X):- \+( man(X) ). Za tako denisan 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 mogu cnosti bek injenica ne trekinga). S druge strane, cilj woman(ksantipa) uspeva (iako takva c postoji u bazi). Ipak, cilj ?- woman(X). ne uspeva. Zaista, ovaj cilj mo ze da uspe samo ako cilj man(X) ne uspeva. Ali cilj man(X) mo ze da uspe (za X koje se instancira na sokrat). Dakle, cilj woman(X) ne uspeva i X ne postaje vezana. Upit ?- woman(X) mo zemo da smatramo istim kao pitanje da li postoji X takvo 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 od obi cne logi cke negacije. negacije kao Razmotrimo jo s jedan primer za ilustraciju razlike izmedu neuspeha i klasi cne logi cke 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 o cekivali isto pona sanje, medutim dobijamo: ?- p(X,Y). X=1 Y=2; X=2 Y=1; No. ?- q(X,Y). No.

4.8 Liste

85

Prvi upit se pona sa u skladu sa na sim o cekivanjem, ali drugi od njega odstupa. Prvi podcilj cilja q(X,Y) je not(X=Y). Po sto se neinstancirane promenljive X i Y uvek mogu unikovati, cilj X=Y uvek uspeva. Stoga cilj not(X=Y) ne uspeva, pa ni upit q(X,Y). Generalno, o cekivani rezultat (o cekivani u smislu klasi cne logike prvog reda) dobija se samo ako nema slobodnih promenljivih u upitu, tj. ako je argument operatora \+ vezan u trenutku kada je ovaj operator pozvan. Primetimo i da se cilj \+(\+(man(X))) razlikuje od cilja man(X) jer ako je e promenljiva X ostati slobodna, za razliku od cilja prvi zadovoljen, onda c e biti zadovoljen a promenljiva X c e biti instancirana na sokrat. man(X) koji c Ovo svojstvo mo ze da poslu zi i kao pogodan test da li su dva terma unikabilna bez njihovog unikovanja u bilo kom slu caju. Na primer, cilj \+(\+(X=2)) uspeva, a pri tome se X ne instancira na 2.

4.8

Liste

Liste su jedan od klju cnih tipova podataka koji se koriste u logi ckom programiranju. Lista je prazna lista ili element za kojim sledi lista. Liste se rekurzivno deni su, pa se rekurzija prirodno javlja u re senjima problema u kojima se one koriste. Lista mo ze da se zapi se kao niz njenih elemenata razdvojenih zarezima zagrada [ i ]. Lista kao svoj element mo zapi su izmedu ze da sadr zi i drugu listu. Navedimo nekoliko primera listi:

[1,2,3] [a,b,c,d] [a,3,4,jovan,f(x,y)] [[1,2,3],a,1,[],[x]]

Praznu listu ozna cavamo sa []. Ukoliko je lista neprazna, njen prvi element zovemo glava liste, a nastavak rep liste, takvu listu ozna cavamo sa [GlavaListe|RepListe]. Slede ca tabela pokazuje na primerima da li se i kako mogu unikovati razli cite liste.

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

86 Term 1 [1,2,3] [a,b,c] [X,1,2] [a,b,c] [a,b,c] [] [] [] [[]] [a,b,c] [a,b,c] [a] [[],[]] [a,b|X] [a,X,Y|T] [a,b|X] Term 2 [5,6,7] [a,b] [Y,Y,2] [H|T] [X,Y|T] X [] [H|T] [H|T] [X|[Y|Z]] [X|[Y|[Z]]] [H|T] [H|T] [a,b,c] [a,b,c] [a,b] unikabilni ne ne da da da da da ne da da da da da da da da unikator

4 PROLOG

X=1, Y=1 H=a, T=[b,c] X=a, Y=b, T=[c] X=[]

H=[], T=[] X=a,Y=b,Z=[c] X=a,Y=b,Z=c H=a,T=[] H=[],T=[[]] X=[c] X=b,Y=c, T=[] X=[]

Predikat koji odreduje prvi element liste se mo ze denisati na slede ci na cin: glava([H|_],H). a prva tri elementa na slede ci na cin: prvatri([X,Y,Z|_],X,Y,Z). Rep liste se mo ze odrediti na slede ci na cin: rep([_|T],T). Predikat koji dodaje element na pocetak liste se mo ze denisati na slede ci na cin: dodajnapocetak(Lista,X,[X|Lista]). lan liste denisa Proveru da li je element X c cemo na dva na cina: clan1([X|_],X):- !. clan1([_|R],X):- clan1(R,X). clan2([X|_],X). clan2([_|R],X):- clan2(R,X). Prva denicija je ekasnija, po sto operator se cenja spre cava bektreking posle lana (dok se u drugoj verziji pretraga do kraja uspe snog nala zenja tra zenog c liste i kad je tra zeni elemente ve c pronaden). Medutim, druga verzija se mo ze lanova liste. Upit clan1([1,2,3],X) daje odgovor: koristiti i za nabrajanje c ?- clan1([1,2,3],X). X=1; No.

4.8 Liste U slu caju upita clan2([1,2,3],X) dobijamo: ?- clan2([1,2,3],X). X=1; X=2; X=3; No. ovih predikata se ilustruje slede Jo s jedna razlika izmedu cim primerima: ?- clan1([1,2,3],X), X>2. No. ?- clan2([1,2,3],X), X>2. X=3; No.

87

U slu caju prvog predikata, promenljiva X se pomo cu prvog pravila za clan1 unikuje sa prvim elementom liste, a operator se cenja onemogu cava bektreking. Stoga ne uspeva cilj X>2 i sistem odgovara No. U drugom slu caju, posle neuspeha cilja X>2, bektrekingom se dolazi do unikacije promenljive X sa poslednjim elementom liste, kada i cilj X>2 uspeva. Du zina liste se mo ze izra cunati slede cim predikatom: duzina([],0). duzina([_|R],M):-duzina(R,M1), M is M1+1. Predikat brisi_jedno_pojavljivanje izbacuje jedno pojavljivanje datog elementa 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 Slede ci 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

88

4 PROLOG

pokazuje da predikat brisi_jedno_pojavljivanje(X,L,R) mo ze da se interpretira i kao ,,ubaci element X u listu L koja tako daje listu R. Dakle, predikat ubaci mogao bi da se jednostavno implementira: ubaci(X,L,R) :- brisi_jedno_pojavljivanje(X,R,L). Navedimo deniciju predikata za dopisivanje dve liste jednu na drugu: append([X|Y],Z,[X|W]) :- append(Y,Z,W). append([],X,X). Predikat append mogu ce je koristiti na nekoliko na cina, za izra cunavanje razli citih 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 se cenja, za bilo koje argumente navedni predikatu mogu biti zadovoljeni samo na po jedan na cin. 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]) :merge(A,[],A). merge([],B,B). merge([A|Ra],[B|Rb],[A|M]) :merge([A|Ra],[B|Rb],[B|M]) :-

split(R,Ra,Rb).

A =< B, merge(Ra,[B|Rb],M). A > B, merge([A|Ra],Rb,M).

Ovaj predikat je denisan tako da se koristi za izra cunavanje drugog argumenta ako je dat prvi. Nije ga mogu ce koristiti za izra cunavanje prvog argumenta ako je dat drugi. Naime, na primer, upit mergesort(A,[1,2,3]) bi prilikom poziva predikata merge doveo do nedovoljno instanciranih promenljivih i do gre ske. Algoritam bubble sort mo ze se implementirati na slede ci na cin:

4.9 Ugradjeni predikati 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).

89

Druga varijanta uklju cuje PROLOG operator implikacije -> (a naravno postoji 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

Logi cke konstante Predikat true uvek uspeva kao cilj, predikat false nikad ne 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 sadr zi promenljive koje nisu vezane. Provera tipa Predikat atom(X) uspeva ako je X vezana za simboli cki atom. Na primer, atom(foot) i atom(foot) uspevaju, a atom("foot") i atom(3) ne uspevaju. 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. Unikabilnost i jednakost Upit X = Y proverava da li su X i Y unikabilni, upit X \= Y proverava da li X i Y nisu unikabilni, Upit X == Y proverava da li su X i Y imaju jednake vrednosti upit X \== Y proverava da li X i Y imaju razli cite vrednosti. Vezivanje promenljive za numeri cku vrednost Cilj V is E vezuje promenljivu V za numeri cku vrednost E. Vrednost E ija je vrednost odredjena. mora biti numeri cka konstanta ili izraz c Aritmeti ci operatori Za brojeve N i M, dozvoljeni su slede ci aritmeti cki operatori: N > M, N < M, N =< M, N >= M.

90 Pomo cni predikati

4 PROLOG

Cilj help(S) uvek uspeva i daje obja snjenje (ako ono postoji) za pojam S (S treba da bude simboli cki atom, na primer, help(var)). Cilj halt uvek uspeva, zaustavlja PROLOG i vra ca kontrolu operativnom sistemu. Cilj trace uvek uspeva i uklju cuje pra cenje izvr savanja izra cunavanja. Cilj notrace uvek uspeva i isklju cuje pra cenje izvr savanja izra cunavanja. Dodavanje u PROLOG bazu i brisanje iz PROLOG baze Cilj asserta(C) dodaje klauzu C u bazu pre klauza koje imaju isti klju cni predikat (klju cni predikat klauze je prvi predikat sleva nadesno). Cilj assertz(C) (kao i cilj assert(C)) dodaje klauzu C u bazu iza klauza koje imaju isti klju cni predikat. Cilj retract(C) bri se klauzu C iz baze. Klauza C treba da bude instancirana tako da mo ze da se odredi klju cni predikat. listing prikazuje sadr zaj baze. U citavanje PROLOG programa Cilj consult(F) u citava program iz datoteke F. to se denicijom Cilj reconsult(F) u citava program iz datoteke F, s tim s predikata koji se u citava zamenjuje (eventualna) postoje ca denicija. Cilj [F1,F2,...] ozna cava u citavanje datoteke F1, zatim datoteke F2, itd. U PROLOG programima komentari se pi su izmedju znakova /* i */. Ulaz i izlaz seeing(X) uspeva ako je X vezana za teku ci ulazni tok (tzv. port). Na primer, seeing(user) uspeva ako je teku ci ulazni tok tastatura. see(X) otvara kao ulazni port datoteku X. Naredni ulazi za predikat read bi ce citan sa tog porta. seen zatvara sve ulazne portove i naredni ulazi za predikat read bi ce citani sa porta user. ita izraz sa teku read(X) c ceg porta i sme sta ga u X. telling(X) uspeva ako X mo ze biti vezana za teku ci izlazni port. Na primer, tellin(user) uspeva ako je teku ci izlazni tok ekran. tell(X) otvara kao izlazni port datoteku X. Naredni ulazi predikata write bi ce slati na taj port. told zatvara sve izlazne portove i naredni ulazi za predikat bi\ce bi ce slat na porta user. write(E) ispisuje izraz vezan za E na teku ci izlazni port. nl omogu cava prelazak u novi red. tab(N) ispisuje N razmaka na teku ci izlazni port. Kontrola toka call(P) poziva predikat P, uspeva ako i samo ako uspeva P. ! operator se cenja.

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

4.9 Ugradjeni predikati Negacija kao neuspeh

91

to je obja not(Q), \+Q daje efekat negacije kao neuspeha (kao s snjeno u poglavlju 4.7. Obrada PROLOG termova ija glava se uparuje sa H, a telo sa B. clause(H,B) vra ca klauze iz baze c Vrednost H mora biti dovoljno instancirana da odredjuje glavni predikat glave. functor(E,F,N) uspeva ako je vrednost E vezana za funkcijski izraz ob e biti vezano za f a N za broj argumenat u f(...). lika f(...). F c arg(N,E,A) uspeva ako je vrednost E vezana za funkcijski izraz oblika f(...) i ako N mo ze biti vezano za neki redni broj argumenta u f(...). e biti vezano za N-ti argument u f(...). Ukoliko cilj uspe, A c name(A,L) vr si konvertovanje izmedju atoma i liste. Na primer, upit ?- name(.pl,L). daje odgovor L = [46,112,108]. =.. vr si 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, ve coj vrednost odgovara ni zi prioritet (prioriteti za ugradjene operatore zavisi od konkretnog sistema). T je tip operatora: xfx za inksni neasocijativni; xfy za inksni desno asocijativni; yfx za inksni levo asocijativni; fx za preksni neasocijativni; fy za preksni desno asocijativni; xf za postksni neasocijativni; yf za postksni levo asocijativni; O je ime operatora. Tip operatora se deni se pomo cu jednostavnih, gore datih, niski karaktera. Karakter f ozna cava poziciju operatora, a x i y pozicije argumenata. Pri tome x zna ci da se radi o argumentu sa glavnim operatorom strogo manjeg prioriteta od operatora koji deni semo. y zna ci da prioritet glavnog operatora argumenta mo ze biti manji ili jednak prioritetu operatora koji deni semo. Pri tome se smatra da atomi i izrazi u zagradama imaju prioritet 0. Smisao ovakvog denisanja tipa operatora se najbolje ilustruje pomo cu drveta operatora. Neka je operator + tipa yfx i neka je dat izraz a+b+c. Postoje dva drveta izraza koja mu potencijalno mogu odgovarati. Data su na slici 4.6. Ako posmatramo desno drvo, prime cujemo da njegovo desno poddrvo ima operator + u korenu koji nije strogo manjeg prioriteta od operatora + u korenu celog drveta. Medutim, njegov tip yfx to zahteva, pa stoga

92

4 PROLOG

Figure 4.6: Dva drveta koja mogu odgovarati izrazu a+b+c desno drvo moramo odbaciti. Odnosno, operator je levo asocijativan i izraz se tuma ci kao ((a+b)+c). Da je tip operatora bio xfx ni jedno od ova dva drveta ne bi bilo prihvatljivo, po sto se bar u jednom poddrvetu javlja operator + istog prioriteta. Ovo se mo ze re siti pomo cu zagrada, enje zagrada, po sto je prioritet izraza u njima 0. Stoga tip xfx name ce kori sc to zna s ci da operator nije asocijativan. Ugradjeni operatori, poredjani po prioritetima: :?; , not is, =.., <, itd. +, *, / ^ xfx, fx fx xfy xfy fy xfx yfx, fx yfx xfy

Pronala zenje svih re senja findall(Things,GoalExpression,Bag) pronalazi sve vrednosti za Thing koje zadovoljavaju uslov GoalExpression i sme sta e biti prazna. ih u listu Bag. Ako cilj GoalExpression ne uspeva, list Bag c Sve promenljive u GoalExpression se smatraju egzistencijalno kvantikovanim. bagof(Things,GoalExpression,Bag) pronalazi sve vrednosti za Thing koje zadovoljavaju uslov GoalExpression i sme sta ih u listu Bag. Ne uspeva ako ne uspeva cilj GoalExpression. Slobodne promenljive u GoalExpression mogu da se ve zu. setof(Things,GoalExpression,Bag) funkioni se isto kao bagof uz raz e lista Bag biti sortirana i da ne liku da c ce sadr zati duplikate.

4.10

Implementacija KNF algoritma

Kao prvi veci primer PROLOG programa koji ilustruje razne koncepte jezika, emo na to nadovezati imnavodimo implementaciju KNF algorima. Kasnije c

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

4.10 Implementacija KNF algoritma

93

plementaciju algoritma DPLL. Radi preglednijeg zapisa, prvo uvodimo logi cke veznike kao nove operatore. :-op(10,fx,non). :-op(20,yfy,and). :-op(30,yfy,or). :-op(40,xfx,implies). :-op(50,xfx,equiv). to dovodi do ispu Operatori and i or su denisani kao asocijativni (yfy), s stanja itljivosti. nepotrebnih zagrada u zapisu i lak se c Predikat knf implementira KNF algoritam iz tri koraka. Prvo se elimini su veznici ekvivalencije i implikacije, zatim se vr si primena de Morganovih zakona uz eliminisanje dvostrukih negacija, a na kraju primena zakona distributivnosti 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 eliminaciju, tako da PROLOG ne ce tra ziti vi se od jednog re senja. Osim toga, treba to elimini primetiti da je prvo pravilo speci cno zato s su ci jedan veznik uvodi novi 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 u cinjeno malo odstupanje od KNF algoritma kako je dat na slici 2.1. Naime, dozvoljena je eliminacija dvostruke to se do kraja primene de Morganovi zakoni. negacije i pre nego s 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).

94

4 PROLOG

Kada mu je argument neka konjunkcija, predikat distributivnost omogu cava rekurzivnu primenu na konjunkte, a slu caju disjunkcije primenjuje zakone distributivnosti. Pri tome se uzima u obzir i to da primena ovog zakona mo ze dovesti do stvaranja novih uslova za njegovu primenu u okviru podformula dobijenog izraza.

4.11

Implementacija DPLL algoritma

Posle transformacije formule u konjunktivnu normalnu formu, u cilju primene DPLL algoritma, potrebno ju je konvertovati u listu listi literala gde je spoljna lista konjunkcija unutra snjih listi koje predstavljaju klauze. Kako bismo ovo implementirali, prvo nam je potreban pomo cni predikat koji spaja dve liste. Za emo koristiti predikat append denisan u sekciji 4.8. to c to se prolazi kroz konjunkcije spajaju Konverzija se vr sti tako s ci liste koje se dobijaju rekurzivnom primenom predikata knf_u_listu_listi na konjunkte do dis(koji su ponovo u konjunktivnoj normalnoj formi) sve dok se ne dode junkcije. U tom trenutku se prelazi na novi predikat disjunkcija_u_listu koji od disjunkcije formira listu literala analogno na cinu na koji knf_u_listu_listi gradi 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 pomo cni predikati 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 sadr zi neki element koristi cemo dvostruku to c emo u nastavku predikatima davati nazive primenu predikata sadrzi, s tim s u 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, koristi cemo i slede ci 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,[],[]).

4.11 Implementacija DPLL algoritma

95

Pri tome se podrazumeva da su disjunkcije unutra snje liste. Zamena elementa liste listi (literala u celoj formuli) se sad lako vr si: 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,[],[]). to se zamene oba Zamena iskaznog slova p u formuli se mo ze uraditi tako s literala - p i non p odgovaraju cim 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 vr simo na slede ci na cin: 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 operi se sa praznom listom klauza i ako je tako vra ca yes, a u suprotnom, vr si zamene sa i sa , bri se pojavljivanja literala koji je u na soj implementaciji predstavljen atomom f (dok je predstavljen atomom t) i proverava da li se prazna klauza nalazi u skupu 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).

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

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 mogu ce da postoji vi se klauza koje sadr ze literal t. U tom slu caju PROLOG bi prirodno vr sio bektreking u potrazi za svim re senjima. Kako to u na soj implementaciji nema svrhe, uba cen je predikat reza koji spre cava ovakvo pona sanje. Sli cna opaska va zi i u pravilima unit propagation i pure literal. Zamene negiranih literala se vr se jednostavno kad imamo implementirane pomo cne 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 mo zemo dodati jo s jedan predikat koji proverava da li je formula zadovoljiva: zadovoljiva(X):-knf(X,Y),knf_u_listu_listi(Y,Z),dpll(Z).

4.12 Pretraga grafa

97

4.12

Pretraga grafa

Kako grafovi predstavljaju binarne relacije nad nekim domenom, PROLOG omogu cava vrlo jednostavno opisivanje i pretragu grafova. Graf se zadaje listom svojih grana. edge(1, edge(1, edge(2, edge(2, edge(3, edge(3, edge(4, edge(4, edge(5, edge(6, edge(6, edge(7, edge(8, edge(8, 5). 7). 1). 7). 1). 6). 3). 5). 8). 4). 5). 5). 6). 7).

vora A do c vora Nala zenje putanje se realizuje rekurzivno. Postoji put od c vora A do c vora X i postoji put od B ako je A = B ili ako postoji grana od c X do B . Kako grafovi mogu u op stem slu caju sadr zati cikluse, potrebno je vorova kako ne bi do pamtiti i listu pose cenih c slo do prekora cenja steka pri rekurzili. % 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 re savanje jednostavnog problema

PROLOG je poznat po svojoj pogodnosti za re savanje problema ve sta cke inteligencije. Ilustrova cemo to na primeru jednostavne igre. Na levoj obali reke nalaze se tri misionara i tri ljudo zdera (eng. missionaries amca koji prima dve osobe, svi treba da se prevezu and cannibals). Pomo cu c preko reke. Pri tome, ne sme se desiti da na nekoj obali broj ljudo zdera bude e ih ovi pojesti. Potrebno je na ve ci od broja misionara jer c ci neki raspored reku. prevo zenja tako da svi predu svaka emo svesti na pretragu grafa. Izmedu Re savanje ovog problema c dva poteza, igra se nalazi u odredenom stanju. To stanje se karakteri se bro amca. Broj misionara i jem misionara i ljudo zdera na obalama i polo zajem c ljudo zdera je dovoljno precizirati za levu stranu, jer je tad broj na desnoj strani jednozna cno odreden. Primer stanja je state(3, 1, left)

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

98

4 PROLOG

Potezi predstavljaju prevo zenje jedne ili dve osobe na drugu stranu reke. Potpuno su odredeni brojem misionara i ljudo zdera koji se prevoze i stranom amac kre na koju se c ce. Primer poteza je move(1,1,right) vorovima grafa c ije su grane potezi pomo Stanja igre mo zemo smatrati c cu kojih se prelazi iz jednog stanja u drugo. Na ovaj na cin se re savanje problema svodi na nala zenje putanje kroz graf od polaznog stanja state(3,3,left) do zavr snog state(0,0,right). Samo re senje je lista poteza koji odgovaraju granama koje spajaju medustanja u toku re savanja. [move(0,2,left), move(0,1,right)|...] Osnovni predikat za re savanje ovog problema ima formu ve c prikazanog predikata 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 uo ceno stanje koje nasleduje trenutno, potez koji realizuje prelaz se lako izra cunava. 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 slede ce stanje, potrebno je denisati legalne prelaze amcem c carry(2, carry(1, carry(1, carry(0, carry(0, 0). 0). 1). 1). 2).

amca je nebitna, ali broj ljudo kao i legalna stanja. Pozicija c zdera ni na jednoj obali ne sme prelaziti broj misionara. Stoga, legalna su samo stanja kod kojih je broj misionara na levoj strani jednak broju ljudozdera, stanja koj kojih su sva tri misionara na levoj obali i stanja kod kojih su svi misionari na desnoj obali. legal(X, X). legal(3, X). legal(0, X).

4.13 Primer re savanje jednostavnog problema

99

Prilikom konstrukcije novog stanja, moramo paziti i da pre prelaska na desnu obalu, na levoj strani mora biti dovoljno osoba koje su planirane za prelazak, i da posle prelaska na levu obalu na njoj ne mo ze biti vi se od tri misionara, odnosno ljudo zdera. 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 Va zi slede ce: Janko ima psa. Svaki vlasnik psa voli z ivotinje. Nijedna osoba koja voli z ivotinje ne mo ze da udari z ivotinju. Janko ili Marko su udarili ma cku c ije je ime Tuna. Svaka ma cka je z ivotinja. U PROLOG-u zapisati c injenice i predikate pomo cu kojih se mo ze utvrditi ko je udario Tunu. Zadatak 66 Denisati predikat koji izra cunava sumu prvih N prirodnih brojeva. Zadatak 67 Denisati predikat koji izra cunava sumu cifara datog broja. Zadatak 68 Denisati predikat koji izra cunava N-ti stepen zadatog broja. Zadatak 69 Denisati predikat koji obr ce cifre broja. Zadatak 70 Denisati predikat koji izra cunava najve ci zajedni cki delilac dva broja. Zadatak 71 Denisati predikat koji proverava da li je broj prost. Zadatak 72 Denisati predikat koji izra cunava sumu elemenata liste. Zadatak 73 Denisati predikat koji obr ce listu. Zadatak 74 Denisati predikat koji dodaje element na kraj liste. Zadatak 75 Denisati predikat koji proverava da li se tri zadata elementa nalaze na uzastopnim pozicijama u listi.

100

4 PROLOG

Zadatak 76 Denisati predikat koji konstrui se listu koja se sastoji od prvih n elemenata zadate liste. Zadatak 77 Denisati predikat koji deli datu listu brojeva na listu negativnih i nenegativnih elemenata. Zadatak 78 Denisati predikat koji deli datu listu na dve na sve mogu ce na cine. Zadatak 79 Denisati predikat koji ispisuje sve podliste date liste. Zadatak 80 Denisati predikat koji iz date liste bri se sva ponavljanja elemenata. Zadatak 81 Denisati predikat koji nalazi uniju dve liste. Zadatak 82 Denisati predikat koji nalazi presek dve liste. Zadatak 83 Denisati predikat koji nalazi razliku dve liste. Zadatak 84 Denisati predikat koji nalazi simetri cnu razliku dve liste.

Deo II

Pretraga

Glava 5

Re savanje problema kao pretraga


U prethodnom delu prikazani su teorijski okviri i algoritmi pomo cu kojih je mogu ce sprovoditi logi cko zaklju civanje. Iako zaklju cci moraju nu zno slediti iz zadatih pretpostavki, proces njihovog dokazaivanja nije pravolinijski ve c e se postupak sprovoditi. Drugim uklju cuje odredene odluke o pravcu u kome c re cima, uo cljivo je traganje za dokazom nekog tvrdenja. Primera radi, u primeni procedure DPLL mogu ce je uo citi i korake zaklju civanja i korake pretrage. Kada se uo ci jedini cna klauza u nekoj formuli, njeno zadovoljenje je nu zno i predstavlja korak zaklju civanja. S druge strane kada je nemogu ce direktno zaklju civanje, potrebno je pretpostaviti vrednost iskazne promenljive. e se pokazati kao opravdana ili neopravU daljem toku dokazivanja, ta akcija c dana. U slu caju da se poka ze kao neopravdana, preduzima se alternativna akcija. Zna ci, situacija u kojoj nije mogu ce izvr siti direktno zaklju civanje zahteva primenu pretrage. Manje apstraktan primer je upravljanje robotskom rukom. Pretpostavimo ije se kretanje kontroli da robotska ruka ima nekoliko mehani ckih zglobova c se elektri cnim impulsima. Pri tom, neki zglobovi omogu cavaju rotacije samo oko jedne ose (kao ljudski lakat ili zglobovi na pristima), a drugi rotaciju oko ve ceg broja osa (kao ljudsko rame ili zglobovi u korenu prstiju). Pokret hvatanja a c se ovakvom robotskom rukom je netrivijalan zadatak, ali se mo ze razbiti na sekvencu atomi cnih koraka pokreta pojedina cnih zglobova oko razli citih ugao. Mo osa za odreden zemo zamisliti da se ovi koraci izvr savaju strogo jedan po jedan u kom bi slu caju kretanje ruke bilo zna cajno razli cito od ljudskog i sporo, ali bi problem bio lak si jer ne bi bila potrebna sinhronizacija razli citih zglobova i svaki bi se pojedina cno dovodio u z zaj. Druga eljeni polo oveka, pri mogu cnost je da se kretanja zglobova izvode simultano, kao kod c tom pove cavaju ci broj mogu cih kombinacija u svakom trenutku. Dati primeri motivi su razmi sljanje o pretrazi kao o nala zenju niza akcija kojima se ostvaruje cilj kada to ne mo ze biti ostvareno pojedina cnim akcijama. Iako u op stem slu caju ovakva denicija ne mora delovati adekvatno, u kontekstu ve sta cke inteligencije u kome obi cno pretpostavljamo postojanje nekog entiteta koji deluje preduzimanjem nekih akcija (agenta), ona je prirodna. Pored algoritama koji se u potpunosti mogu podvesti pod ovako denisan

104

5 Re savanje problema kao pretraga

emo opisati i neke algoritme optimizacije, koji pojam pretrage, u ovom delu c su op stiji. Kako bi se neki problem predstavio kao problem pretrage i re sio primenom algoritama pretrage potrebno je da ima odredenu strukturu. Kako bi aspekti ove strukture bili jasnije izlo zeni bi ce ilustrovani na primeru nala zenja puta dva grada. Pretpostavlja se da direktan put izmedu njih ne mora posizmedu njih, tojati, ve c da je potreban prolazak kroz ve ci broj gradova na putu izmedu ali se pretpostavlja da je ciljni grad dostupan iz polaznog. Elementi problema pretrage koje je potrebno denisati su slede ci: Skup mogu cih stanja: U toku procesa pretrage agent koji sprovodi pretragu se mo ze na ci u razli citim stanjima. Poznavanje stanja pru za sve informacije potrebne za razumevanje procesa pretrage i agenta u datom trenutku. dva grada, skup stanja predstavlja skup Za agenta koji nalazi put izmedu gradova koji su dostupni iz polaznog grada. Polazno stanje: Na po cetku re savanja problema agent se nalazi u odredenom stanju. Ovo stanje nazivamo polaznim stanjem. U primeru nala zenja puta, to je grad iz koga se kre ce. Skup mogu cih akcija: U svakom koraku pretrage, agent mo ze preduzeti neku akciju. Niz akcija preduzetih u odgovaraju cim trenucima treba da dovede do re savanja problema. Skup akcija mo ze biti isti u svakom stanju ili mo ze da varira od stanja do stanja. To zavisi od problema koji se re sava. Skup akcija mo ze biti kretanje ka jednom od susednih gradova. Niz ovakvih izbora treba da dovede agenta do ciljnog grada. Skup akcija u ovom problemu o cito varira od stanja do stanja jer su za razli cite gradove razli citi i skupovi susednih gradova. Fukcija prelaska: Ova funkcija preslikava parove stanje-akcija u stanja koja slede po sto se u datom stanju preduzme data akcija. Ova funkcija omogu cava izbor narednog stanja izborom neke akcije. Ukoliko ona nije poznata, e stanje dospeti posle preduzimanja agent ne mo ze biti siguran u koje c odredene akcije i sam proces odlu civanja postaje kompleksniji. U nekim problemima funkcija prelaska ne mora biti poznata. Na primer u slu caju delovanja u nepoznatoj okolini. Jedan na cin re savanja ovakvih prob enjem informacija iz iskustva, odnosno aproksimacijom ove lema je kori sc funkcije pomo cu procesa koji se zasniva na analizi poku saja i gresaka. Jedan na cin kojim se re savaju ovakvi problemi je primena algoritama u cenja uslovljavanjem (eng. reinforcement learning). Jo s jedan primer u kome funkcija prelaska mo ze biti nedenisana je delovanje u promenljivoj enje prilagodljivih algoritama okolini. U tom slu caju je potrebno kori sc koriste informacije iz iskustva. Na primer, algoritama u koji takode cenja uslovljavanjem i genetskih algoritama. dva grada, funkcija prelaska je U slu caju primera nala zenja puta izmedu jednozna cno odredena putnom kartom datog podru cja koja odreduje u kom gradu se agent mo ze na ci po sto iz datog grada krene u odredenom pravcu. Test cilja: Ovim testom se ustanovljava da li se do slo do zavr setka procesa pretrage. To mo ze biti test jednakosti sa zavr snim gradom.

5.1 Kvalitet algoritama pretrage

105

Cena akcije: Ovo je funkcija koja preslikava par stanje-akcija u numeri cku vrednost cenu preduzimanja date akcije u datom stanju. Primer cene ak susednih cije je du zina puta ili cena goriva potrebnog za prevoz izmedu gradova. Kod nekih problema se ovi elementi lako i prirodno uo cavaju, kao na datom primeru, dok je kod drugih potrebno manje ili ve ce modeliranje ili preformulacija problema. U slu caju primera upravljanja robotskom rukom bilo bi potrebno odrediti mogu ce ose rotacije za razli cite zglobove i diskretizovati in bi bilo tervale u kojima se rotacija obavlja. Na primer po 10 stepeni. Takode potrebno odlu citi da li se pokreti razli citim zglobovima mogu preduzimati simultano ili ne. Posle toga bi se navedeni elementi mogli lako denisati. Re senje problema predstavlja niz akcija koji vode od polaznog stanja do stanja u kome je ispunjen test cilja. Svakom re senju se mo ze pridru ziti njegova cena kao suma cena akcija koje se preduzimaju. Optimalno re senje je re senje sa najmanjom cenom. Ono ne mora biti jednozna cno denisano. Primer 5.1 Slagalica se sastoji od 8 kvadrata rasporedenih na prostoru veli cine 3x3 polja. Kvadrati su numerisani brojevima od 1 do 8. Slagalicu je potrebno tako urediti da se u prvom redu nalazi prazno polje, a zatim kvadrati 1 i 2, u drugom kvadrati 3, 4 i 5, a u tre cem kvadrati 6, 7 i 8 s to c emo kompaktno zapisivati kao [ 12345678]. Elementi ovog problema mogu biti denisani na slede ci na cin. 1. Skup stanja predstavlja skup svih kombinacija [s1 s2 . . . s9 ] za si { , 1, 2, 3, 4, 5, 6, 7, 8}. 2. Polazno stanje mo ze biti bilo koje stanje slagalice. Na primer [7638 1425]. 3. Skup akcija mo ze biti {levo, desno, gore, dole} gde se date akcije odnose na pomeranje praznog polja levo, desno, gore i dole. Iako je naizgled prirodnije za akcije uzeti pomeranje kvadrata susednih praznom polju na prazno polje, s to tako dense u stvarnosti i de sava, postoji jednozna cna korespodencija izmedu isanih akcija i denicije koja je data, tako da se odlu cujemo za formulaciju koja je jednostavnija. 4. Funkcija prelaska presliakva stanja i akcije u stanja koja nastaju pomeranjem praznog polja na neku od c etiri mogu ce strane. 5. Test cilja je test jednakosti sa stanjem [ 12345678]. 6. Cena akcije je konstantna (npr. 1) po sto ne postoji razlog da se neka pomeranja smatraju skupljim od drugih. Cena re senja je u tom slu caju proporcionalna broju pomeranja potrebnih za slaganje slagalice. Neke od realnih primena algoritama pretrage su nala zenje najkra cih puteva, igranje igara, navigacija robota, automatsko nala zenje redosleda sklapanja u in dustriji, dizajn proteina sa odredenim tra zenim svojstvima, re savanje logisti ckih problema i sli cno.

5.1

Kvalitet algoritama pretrage

Kao i kod drugih vrsta algoritama i kod algoritama pretrage potrebno je poznavati njihova svojstva kako bi se lak se izvr sio izbor pogodnog algoritma za

106

5 Re savanje problema kao pretraga

dati problem. Osnovni aspekti koji se smatraju bitnim za algoritme pretrage su slede ci: e algoritam na Kompletnost je svojstvo koje garantuje da c ci nekakvo re senje problema ako ono postoji. Ovo svojstvo je o cito po zeljno, ali se u nekim esto je slu cajevima izostavlja. Naime, u slu caju vrlo te skih problema c mogu ce formulisati heuristike koje ne garantuju nala zenje re senja, ali u visokom procentu slu cajeva nalaze dobra re senja mnogo br ze nego egzaktni algoritmi. Optimalnost je svojstvo koje garantuje nala zenje re senja sa najmanjom cenom. esto je mogu Kao i u prethodnom slu caju c ce da se uz izostavljanje ovog re uslova nadu senja bliska optimalnom u zna cajno kra cem vremenu. e vremena biti potrebno za izvr Vremenska slo zenost govori koliko c savanje procesa pretrage i kao koncept je prisutna i u analizi drugih vrsta algoritama. Prostorna slo zenost govori koliko je memorije potrebno za izvr savanje pre se deni trage. Takode, se i za druge vrste algoritama.

5.2

Neinformisana i informisana pretraga

Prilikom re savanja nekog problema, mogu ci su razli citi stepni poznavanja detalja samog problema. U primeru nala zenja puta od grada do grada, mogu ce je na primer: gradova, 1. potpuno nepoznavanje rastojanja izmedu susednih gradova koja se na primer 2. poznvanje rastojanja samo izmedu mogu pro citati sa putokaza, 3. dodatno poznavanje vazdu snih rastojanja od svih gradova do ciljnog grada koje se mo ze izmeriti lenjirom na putnoj karti, svih, ne nu 4. ta cno poznavanje rastojanja izmedu zno susednih gradova pri enjem kurvimekretanju putevima koja se mogu izmeriti na karti kori sc tra. Prema dostupnosti informacija koje mogu pomo ci u nala zenju ciljnog stanja u toku pretrage, problemi pretrage se dele na probleme informisane i neinformisane pretrage. U skladu sa time mogu ce je formulisati i algoritme koji mogu da iskoriste dostupne informacije, pa stoga i algoritme delimo na algoritme informisane i neinformisane pretrage. U slu caju datog primera, prvi slu caj o cigledno predstavlja problem neinformisane pretrage. U drugom slu caju je prisutno vi se informacija o problemu, medutim ta informacija nam ne omogu cava lak se nala zenje cilja, ve c samo to ne mora ni sugerisati br nala zenje najbli zeg susednog grada s ze dola zenje do cilja. Stoga i drugi slu caj predstavlja problem neinformisane pretrage. Poz gradova se mo navanje vazdu snih rastojanja izmedu ze iskoristiti za navodenje pretrage. Na primer, pri izboru slede ceg grada, mo ze se izabrati grad za koji njega i ciljnog je zbir direktnog puta do njega i vazdu snog rastojanja izmedu

5.2 Neinformisana i informisana pretraga

107

grada najmanji. Ovakva heuristika ne mora biti dobra. Na primer, na liniji izabranog grada i ciljnog grada se mo izmedu ze nalaziti duga cak neprohodan planinski venac tako da je informacija o vazdu snom rastojanju beskorisna. esto se ovakvo parcijalno znanje mo Medutim, c ze upotrebiti za ubrzavanje pre etvrtom trage. Stoga ovaj slu caj spada u probleme informisane pretrage. U c slu caju je mogu ce uvek napraviti optimalan izbor. Za slede ci grad treba izabrati onaj za koji je zbir direktnog rastojanja do njega i najkra ceg rastojanja od njega do ciljnog grada minimalan. Ovo je o cigledno problem informisane pretrage. U slu caju neinformisane pretrage, mogu ce je koristiti standardne algoritme irinu ili u dubinu, dok se u slu za pretragu u s caju informisane pretrage mogu napraviti specijalizovani algoritmi u zavisnosti od vrste informacija koje su na raspolaganju. Za problem nalav zenja najkra cih puteva u grafu algoritam A* mo ze na primer da iskoristi informaciju o euklidskom rastojanju izmedu vorova u grafu. U slu aha, egzaktan algoritam pretrage c caju problema igranja s MINIMAX se mo ze kombinovati sa heuristi ckom procenom stanja. Na primer enjem informacije o gurama, mogu kori sc cnosti mata u 3 poteza i sli cno.

108

5 Re savanje problema kao pretraga

Glava 6

Pohlepna pretraga
Pohlepnim algoritmom se naziva svaki algoritam koji te zi neposrednom pove canju vrednosti neke ciljne funkcije, odnosno algoritam koji bira lokalno optimalne akcije. Lokalna optimalnost zna ci da algoritam ne mo ze da proceni dugoro cni kvalitet izabranih akcija, odnosno koliko te akcije doprinose ostvarenju kona cnog cilja, ve c da bira akciju koja se na osnovu znanja dostupnog u trentuku izb raspolo ora procenjuje kao najbolja medu zivim akcijama. Ovakvi algoritmi su esto zna c cajno jednostavniji za formulaciju od algoritama koji garantuju opti c esto daju prakti malnost procesa re savanja. Takode, cno prihvatjiva re senja, esto ne optimalna. iako c Pohlepni algoritmi se mogu koristiti i za re savanje op stijih problema od pretrage problema matemati cke optimizacije. Ovi problemi pretpostavljaju postojanje funkcije cilja i skupa dopustivih re senja. U zavisnosti od formulacije problema, potrebno je na ci dopustivo re senje sa minimalnom ili maksimalnom u funkcije cilja. Takvo re vredno sc senje se naziva optimalnim re senjem problema optimizacije. Ovakvi problemi ne moraju pretpostavljati postojanje stanja, akcija i drugih elemenata problema pretrage. U kontekstu matemati cke optimizacije, pohlepni algoritmi se obi cno nazivaju algoritmima penjanja uzbrdo po sto biraju susedna dopustiva re senja koja imaju najvi se vrednosti funkcije cilja. gradova, pohlepni informisani Primer 6.1 U primeru nala zenja najkra cih puteva izmedu algoritam bi mogao za suseda da bira grad za koji je zbir direktnog rastojanja do grada i vazdu snog rastojanja do cilja minimalan. Ovakav algoritam u svakom koraku bira optimalnu akciju s obzirom na raspolo zivo znanje u vreme izbora akcije, pa je stoga pohlepan. U slu caju da vazdu sna rastojanja nisu poznata, ve c samo rastojanja do susednih gradova, pohlepni algoritam bi uvek birao najbli zi susedni grad u nadi da c e se na taj na cin na ci najkra ca putanja do cilja. Primer 6.2 Problem trgova ckog putnika podrazumeva da je dat graf u kome su ivicama grafa pridru zene njihove du zine. Cilj je nala ci najkra cu putanju koja kroz sve c vorove grafa prolazi ta cno jednom. Pohlepni algoritam bi mogao biti formulisan tako da u svakom koraku bira ivicu najkra ce du zine. Iako je ovo popularan pristup konstruisanju putanja i dobro se pona sa za neke speci cne probleme, u op stem slu caju je dokazano da za svaki broj c predstavlja lo s pristup. Cak vorova n, postoji instanca problema trgova ckog putnika sa n c vorova za koju ovako formulisan pohlepni algoritam bira jedinstvenu najgoru putanju.

110

6 Pohlepna pretraga

Pohlepna pretraga se obi cno pona sa dobro u slu caju problema kod kojih kvalitet odluke u nekom stanju pretrage ne zavisi od budu cih odluka ili ako se dati problem mo ze aproksimirati problemom za koji ovo va zi. Ako navedeno svojstvo va zi, lokalno optimalna odluka je stvarno optimalna. Navedeno e se pona svojstvo se mo ze i druga cije formulisati pohlepna pretraga c sati dobro ukoliko se optimalno re senje problema gradi neposredno od optimalnih re senja podproblema. to Osnovni kvaliteti pohlepne pretrage su jednostavnost formulisanja i s esto mo c ze dati prakti cno prihvatljiva re senja. S druge strane, mane ovakvog pristupa su slede ce: Opasnost od lokalnih maksimuma: Lokalni mksimumi su ta cke u prostoru iji susedi imaju manju vrednost funkcije cilja od nje, ali je njena pretrage c vrednost manja od vrednosti globalnog maksimuma. Algoritmim penjanja uzbrdo nemaju na cina da primete da se nalaze u lokalnom maksimumu. Grebeni: Grebeni predstavljaju nizove nadovezanih lokalnih maksimuma kod kojih najstrmije penjanje uzbrdo vodi ka jednom lokalnom maksimumu umesto u pravcu rasta niza lokalnih maksimuma. Ovakva situacija se mo ze razre siti kretanjem u stranu umesto najstrmije uzbrdo, medutim, trenutak u kome je takvo kretanje potrebno primeniti se ne mo ze lako prepoznati. Platoi: Platoi predstavljaju oblasti prostora pretrage u kome funkcija cilja ima konstantnu vrednost. Zbog toga je nemogu ce odrediti koji potez je na izlaz sa jbolji, a samim tim se mo ze desiti da pohlepna pretraga ne nade platoa. Postoje razne varijacije osnovnog penjanja uzbrdo koje poku savaju da se izbore sa navedenim problemima. Takvo je na primer stohasti cko penjanje uzbrdo u, ali verovatno koje ne bira uvek susedno stanje sa najve com vredno sc ca da to je ve odredeno stanje bude izabrano je utoliko ve ca s ca njegova vrednost. Druga varijacija je penjanje uzbrdo sa slu cajnim restartovanjem kod koga se posle nala zenja lokalnog maksimuma proces pretrage ponovo pokre ce iz slu cajno generisanog polaznog stanja. Ovaj metod omogu cava nala zenje globalnog maksimuma sa verovatno com koja se pribli zava 1 sa pove canjem broja poku saja.

6.1

Penjanje uzbrdo u slu caju diferencijabilne funkcije cilja

esto poku Metode pretrage i matemati cke optimizacije c savaju da iskoriste neku zakonitost u strukturi prostora pretrage, odnosno prostora dupustivih re senja. enju Tako, penjanje uzbrdo u slu caju diferencijabilne funkcije cilja po civa na kori sc koncepta gradijenta. Ukoliko je data diferencijabilna funkcija cilja f : Rn R gradijent se deni se kao vektor parcijalnih izvoda te funkcije: f = f f f , ,..., x1 x2 xn

6.1 Penjanje uzbrdo u slu caju diferencijabilne funkcije cilja

111

Gradijent izra cunat u odredenoj ta cki A Rn predstavlja vektor u prosn ijem pravcu funkcija f najstrmije raste u okolini ta toru R u c cke A. Stoga se kretanjem u ovom pravcu mo ze do ci do lokalnog maksimuma. Ovaj princip je osnova algoritma najstrmijeg uspona. Analogno, kretanjem u suprotnom pravcu se dolazi do lokalnog minimuma. Prethodne konstatacije omogu cavaju skiciranje algoritma najstrmijeg uspona: 1. n 0. 2. Izabrati polaznu ta cku x0 . 3. Izra cunati gradijent funkcije f (xn ) u trenutnoj ta cki. 4. Izvr siti kretanje u pravcu gradijenta do slede ce ta cke xn+1 . 5. n n + 1. 6. Ukoliko xn nije maksimum, nastaviti od koraka 3. 7. Vratiti xn kao re senje. Da bi se dati algoritam u potpunosti denisao potrebno je precizirati neke esto bira slu njegove korake. U koraku 2, polazna ta cka se c cajnim izborom. Poznavanje gradijenta i kretanje u njegovom pravcu u prkasi ipak ne garantuje nala zenje maksimuma, tako da je u koraku 4 u zavisnosti od du zine koraka mogu ce pre ci preko maksimuma, nastaviti dalje i time ga proma siti. Stoga je u svakom koraku potrebno odrediti konstantu n takvu da se umesto samog gradijenta koristi vektor n f (xn ). Dobra aproksimacija ove konstante je: n = f (xn )f (xn ) f (xn )H (xn )f (xn )

emu je H matrica parcijalnih izvoda drugog reda funkcije f : pri c H (xn ) = 2 f (xn ) xi xj

O cito, ova aproksimacija za n se mo ze koristiti samo kada su parcijalni izvodi drugog reda funkcije denisani. U koraku 6 se u praksi ne mo ze o cekivati nala zenje same ta cke lokalnog maksimuma s obzirom da se ne radi o diskretnom prostoru. Zbog toga se pos vrednosti dva uzastopna esto prekida u trenutku kada razlika izmedu tupak c re senja ne prelazi neku unapred zadatu vrednost . Sada se algoritam najstrmijeg uspona mo ze formulisati na slede ci na cin: 1. n 0. 2. Izabrati polaznu ta cku x0 . 3. Izra cunati gradijent funkcije f (xn ) u trenutnoj ta cki. 4. izra cunati vrednost n . 5. xn+1 = xn + n f (xn ). 6. n n + 1.

112

6 Pohlepna pretraga

7. Ukoliko va zi |f (xn+1 ) f (xn )| , nastaviti od koraka 3. 8. Vratiti xn kao re senje. Primer 6.3 Pretpostavimo da je potrebno da se data hemijska reakcija izvr si u sto kra cem vremenskom roku. Na brzinu hemijske reakcije uti cu koli cine dva katalizatora ozna cene sa k1 i k2 . Poznato je da je brzina date reakcije obrnuto proporcionalna 4 veli cini (k1 1)2 + k2 . Stoga je potrebno na ci maksimum funkcije
4 f (k1 , k2 ) = (k1 1)2 k2

Odoka se vidi da se taj maksimum posti ze u ta cki (1, 0), ali je primer dobar za ilustraciju metode najstrmijeg uspona. Za vrednost mo ze se uzeti na primer broj 0.01. Gradijent f se lako mo ze izra cunati:
3 f (k1 , k2 ) = (2k1 + 2, 4k2 )

Matrica H parcijalnih izvoda drugog reda je H (k1 , k2 ) = 2 0 0 2 12k2

Za polaznu ta cku se mo ze uzeti na primer ta cka x0 = (0.5, 0.5). Vrednost gradijenta u toj ta cki je f (x0 ) = (1, 0.5). Zato je f (x0 ) f (x0 ) = 1 0.5 2 0 1 0.5 0 3 = 1.25 1 0.5

f (x0 )H (x0 )f (x0 ) =

0.5

= 2.75

5 0.45. Stoga, slede ca ta cka u preOtuda je vrednost koecijenta 0 jednaka 11 trazi je x1 = (0.5, 0.5) + 0.45 (1, 0.5) = (0.95, 0.275)

Mo ze se primetiti da su se vrednosti k1 i k2 pribli zile odgovaraju cim vrednostima u re senju. Razlika vrednosti novog i starog re senja je 0.0025 |f (x1 ) f (x0 )| | 0.3125 (0.0082)| 0.3 s to je ve ce od zadatog broja , pa se nastavlja sa slede com iteracijom. Dalje iteracije se izvode po istom principu. Kako data funkcija ima samo jedan maksimum, optimalna vrednost dobijena lokalnom otimizacijom je i globalni maksimum, pa je u ovom primeru metoda najstrmijeg uspona adekvatna. to je re Kao s ceno, problem nala zenja maksimuma u prethodnom primeru je lak. Re senje je o cigledno i problem se lako re sava i analiti cki. Medutim, ovo iji je maksimum, odnosno minimum potrebno na nije uvek slu caj. Funkcije c ci mogu biti previ se komplikovane da bi se re senje tra zilo analiti cki i u takvim enje algoritma najstrmijeg uspona vrlo korisno. Treba slu cajevima je kori sc imati u vidu da algoritam ne garantuje nala zenje globalnog maksimuma. U slu caju da funkcija ima ve ci broj maksimuma, u zavisnosti od izabrane polazne ta cke re senja koja algoritam daje mogu biti razli cita i pronadeni maksimum mo ze biti samo lokalni.

Glava 7

Odredivanje puteva u grafu


U mnogi problemima ve sta cke inteligencije potrebno je obi ci neki graf ili odred dva c vora grafa. iti najkra ci put izmedu Op sti problem nala zenja puta (eng. path nding) mo ze se opisati na slede ci nekih od njih; ovim vorovima i granama izmedu na cin: dat je graf svojim c dva data granama pridru zene su nenegativne cene; zadatak je na ci put izmedu vora (polazni c c vor i ciljni c vor) takvu da je zbir svih cena svih grana na stazi minimalan. Postoji nekoliko algoritama za re savanje ovog problema [?, ?]. Oni imaju mnoge primene, uklju cuju ci primene u planiranju obilazaka i putovanja, ipova, rutiranju u ra dizajniranju c cunarskim mre zama, navigaciji robota, inudstriji igara, itd. Algoritam A* pretraga ili kra ce samo algoritam A* je jedan, verovatno najpopularniji, od algoritama iz te familije. On je uop stenje Dejk strinog algoritma iste namene. Cesto se koriste i algoritam Belmana i Forda, kao i algoritam Flojda i Var sala.

7.1

Obilazak grafa u dubinu i s irinu

irinu (eng. breadthOblizak grafa u dubinu (eng. depth-rst search DFS) i u s rst search BFS) su ,,neinformisane (eng. uninformed) metode pretrage vorove u grafu tra koje ispituju sve c ze ci re senje (na primer, neki speci can vor). Oni sistematski pretra c zuju ceo graf, bez ikakve heuristike, tj. bez ikakvog speci cnog navodenja ci najpre polazni c vor i zatim njeDFS je pretraga koja napreduje obraduju na tra vor i sve dok je ti potomci gove potomke i sve dok se ne naide zeni c postoje. Ukoliko vi se nema potomaka koje treba ispitati, pretraga se vra ca un vora c iji svi potomci nisu ispitani i nastavlja dalje. U nerekurzivnoj azad do c vorovi se obi uvaju u LIFO listi. Da ne bi do verziji, c cno c slo do beskona cne uvati informaciju o c vorovima koji su ve petlje, potrebno je c c pose ceni. Slika 7.1 ilustruje obilazak grafa primenom algoritma DFS. vorove koji su susedni teku voru i kasnije, otvara, BFS ,,otvara sve c cem c vorom koji zadovoljava neki redom, sve njihove potomke. U traganju za c onaj na najmanjem rastojanju od polaznog c vora. Cvorovi uslov, bi ce pronaden uvaju u redu, tj. u FIFO listi. I u ovom pristupu, da koji se razmatraju obi cno se c uvati informaciju o c vorovima ne bi do slo do beskona cne petlje, potrebno je c koji su ve c pose ceni. Slika 7.2 ilustruje obilazak grafa primenom algoritma BFS.

114

7 Odredivanje puteva u grafu

vorova Figure 7.1: Primer obilaska grafa primenom algoritma DFS (oznake c vova) ukazuju na poredak obilaska c
1 5

vorova Figure 7.2: Primer obilaska grafa primenom algoritma BFS (oznake c vova) ukazuju na poredak obilaska c Prostorna slo zenost pretrage DFS je manja nego pretrage BFS. Dodatno, ona vorove koji vi je pogodnija za usmeravanje nekom heuristikom koja bira c se vorova i obe cavaju. Vremenska slo zenost oba algoritma je propocinalna zbiru c grana grafa koji se pretra zuje: (O(|V | + |E |)).

7.2

Dejkstrin algoritam

Dejksrin algoritam, koji je razvio holandski informati car Edzger Dejkstra 1959. godine je algoritam za pretragu grafa koji nalazi najkra ce puteve u grafu za nenegativnim cenama koje su pridru zene granama. Algoritam se mo ze koristiti za vora do datog ciljnog c vora, odredivanje najkra ceg puta od datog polaznog c vorova grafa do datog ciljnog ali i za odredivanje najkra cih puteva od svih c vora. c Ideja Dejkstrinog algoritma mo ze se ilustrovati na slede ci na cin. Pretpostavimo vorova vezan nitima (i da cenom puta od jednog do drugog c vora da je niz c vor koji je izabran za polazni smatramo du zinu niti koja ih vezuje). Uzmimo c i po cnimo da podi zemo celu konguraciju (tako da nikoje dve niti nisu up vorovi, jedan po jedan, odvajaju od tla. Najmanje rastoletene). Postepeno se c nekog od tih c vorova i polaznog c vora je upravo direktno rastojanje izmedu

7.3 A*

115

njih. Op vorovi koji su ve janje izmedu sta ideja algoritma je sli cna: postoje c c podignuti sa tla i oni koji su jo s uvek na tlu. Za one koji su podignuti sa tla vora. U svakom koraku mo ve c znamo najkra ce puteve od polaznog c zemo jo s vor ,,podi jedan c ci sa tla i izra cunati njegovo najmanje rastojanje od polaznog vora (ramatraju vorove koji su mu susedni i koji su ve c ci samo one c c iznad tla). vorovi, to zna Ukoliko na kraju ovog postupa na tlu ostanu jo s neki c ci da do vora. njih ne postoji put od polaznog c Dejkstrin algoritam je dat na slici 7.3. U algoritmu, komanda u := izaberi\_najblizi\_cvor\_cvoru\_source($Q$) vorom u u skupu c vorova Q (to su c vorovi koji su ,,na tlu) takvim da traga za c vora) najmanja. je vrednost dist[u] (teku ce najmanje rastojanje od polaznog c vor se tada bri vor, onda se konstrui Taj c se iz skupa Q. Ukoliko je to ciljni c se vora (koriste vorovima). tra zeni put od polaznog c ci informaciju o roditeljskim c vor v iz Q koji je susedan c voru u proverava se da li se (preko Ina ce, za svaki c vora i, ako mo u) mo ze popraviti teku ce najmanje rastojanje od polaznog c ze, vor u se postavlja za roditelja c vora v . c Primer 7.1 Slede ca tabela prikazuje efekat primene Dejkstrinog algoritma na graf ilustrovan na slici 7.4: c vor A je polazni, a c vor F ciljni c vor. korak 1 2 3 4 5 6 B 3 3 3 3 3 C 2 2 2 2 2 D 6 6 6 5 5 E 4 3 3 3 3 F 8 7 6 c vor u A C B E D F

U najjednostavnijoj implementaciji Dejkstrinog algoritma, skup Q se implementira kao obi cna povezana lista ili niz. Slo zenost takve implementacije je vorova grafa. Za retke O(|V |2 + |E |) = O(|V |2 ), gde je |E | broj grana, a |V | broj c grafove (koji imaju mnogo manje grana od |V |2 ), Dejkstrin algoritam se mo ze implementirati ekasnije. Na primer, varijanta koja koristi binarni min-hip1 za vora ima slo odredivanje teku ceg najbli zeg c zenost O((|E | + |V |) log |V |).

7.3

A*

dva c vora grafa je jedan Algoritam A* za odredivanje najkra ceg puta izmedu od fundamentalnih i najpopularnijih algoritama ve sta cke inteligencije. Zas enju heuristika, ali ipak ima dobra svojstva kao s to su potnovan je na kori sc punost i optimalnost. Prvu verziju algoritma A* su razvili Har, Nilsson i Raphael 1968. godine [?], a u narednim godinama uvedeno je nekoliko unapredenja [?, ?]. enje algoritma A* nije uvek jednostavno. Cesto Kori sc je algoritam potrebno prilagoditi speci cnom problemu a uvek je, u kontekstu aplikacija koje rade u realnom vremenu, va zno imati u vidu vremensku slo zenost, prostornu slo zenost,
1 Min-hip je speci cna stablolika struktura koja zadovoljava hip-svojstvo: ako je B potomak vora A, onda je vrednost pridru voru A manja od vrednosti pridru voru B . U skladu c zena c zene c sa tim, najmanji element je uvek koren stabla. Max-hip se deni se analogno.

116 Algoritam: Dejkstrin algoritam

7 Odredivanje puteva u grafu

Ulaz: Graf G, polazni cvor source i ciljni cvor target Izlaz: najkra ci put od cvora source do cvora target u grafu G (ako postoji put izmeu ova dva cvora 1. Za svaki cvor v grafa G: rastojanje[v ] := prethodni[v ] := nedenisano 2. rastojanje[source] := 0 3. Q := G 4. Dok skup Q nije prazan: u := izaberi najblizi cvor cvoru source(Q) Obri si u iz Q Ako je (u = target) konstrui si put S na slede ci na cin i prijavi uspeh S := prazan niz u := target Dok god je denisano prethodni[u] dodaj u na po cetak 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 razli cite dodatne faktore. Neka od dodatnih svojstava algoritma zahtevaju dodatno matemati cko znanje i izra cunavanja, speci cne implementacione tehnike i strukture. Svi ti moduli treba da budu uklopljeni u kompaktan i ekasan sistem za nala zenje puta. Postoji mnogo varijanti algo ritma A* prilagodenih speci cnim problemima [?]. Algoritam A* je uop stenje Dejkstrinog algoritma i obi cno smanjuje broj vorova grafa koje treba ispitati. To smanjivanje je zasnovano na kori enju c sc vora. Kao i u Dejkheuristike koja procenjuje donju granicu daljine do ciljnog c vorove koji tek treba obraditi c uvaju se u redu, sortiranom strinom algoritmu, c vorova prema nekom kriterijumu. Sve vreme se odr zavaju lista otvorenih c vorova koji su ve c c pose ceni ali nisu obradeni svi njihovi susedi i zatvorenih vorova c vorova koji su pose c ceni i kojima su obradeni svi njihovi susedi.

7.3 A*
3 5 6 C 1 E 4 4 2 1 F D 5

117

A 2

Figure 7.4: Primer primene Dejkstrinog algoritma

to Dejkstrin algoritam (kao ,,neinformisani algoriKlju cna razlika je u tome s vora, dok A* (kao tam) uzima u obzir samo cenu od polaznog do teku ceg c vorovima grafa, ,,informisani algoritam) koristi funkciju evaluacije f nad c denisanu na slede ci na cin: f (n) = g (n) + h(n), vora do c vora n, a h(n) je procenjena (heuristi gde je g (n) cena puta od polaznog c cka) vora n do ciljnog c vora. Dok tragamo za najkra cena najjeftinijeg puta od c cim vora do c vora n putem, uvek znamo teku cu minimalnu cenu od polaznog c (tj. teku cu vrednost za g (n)), ali se vrednost h(n) mo ze samo procenjivati. Da bi se obezbedila optimalnost A* pretrage, funkcija h mora da bude konzistentna vora u i v va (eng. consistent), tj. da za bilo koja dva susedna c zi: h(u) c(u, v ) + h(v ) gde je c(u, v ) cena pridru zena grani (u, v ). U nekim specijalnim slu cajevima dovoljno je da funkcija h bude dopustiva (eng. admissible), tj. da nikada ne precenjuje cenu stizanja do cilja. Svojstvo konzistentnosti ima za posledicu svo esto i konzistentne. jstvo dopustivosti. Dodatno, dopustive funkcije su c Opis algoritma A* dat je na slici 7.5. vorova Sa ravnomernom pretragom (sa funkcijom h = 0), skup otvorenih c e se s iriti ravnomerno, u ,,koncentri vora. S c cnim krugovima oko polaznog c vorova c e se s iriti druge strane, sa preciznijom heuristikom, skup otvorenih c voru i bi ka ciljnom c ce bolje usmerena kao optimalnom putu.

7.3.1

Primer upotrebe algoritma A*

vorova grafa U slede cem grafu zadatak je na ci najkra ci put od A do E . Pored c vora E , tj. vrednosti funkcije h. zapisane su procenjene du zine puta do c

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

118 Algoritam: Algoritam A*

7 Odredivanje puteva u grafu

Ulaz: Graf G, polazni cvor source i ciljni cvor target Izlaz: najkra ci put od cvora source do cvora target u grafu G (ako postoji put izmeu ova dva cvora 1. Inicijalno je zatvorena lista prazna. 2. Dodaj polazni cvor (zajedno sa procenjenom cenom do ciljnog cvora, koja je odreena funkcijom h) u otvorenu listu cvorova koje je potrebno razmotriti. 3. Izvr savaj slede cu petlju dok god ima elemenata u otvorenoj listi: Izaberi cvor n (zva cemo ga teku ci cvor) iz otvorene liste koji ima najmanju vrednost f (n). Ako je teku ci cvor ciljni cvor, izvesti o uspehu, konstrui si put od polaznog do ciljnog cvora (idu ci unazad od ciljnog cvora) i zaustavi izvr savanje petlje. Ispitaj sve cvorove koji su direktno dostupni iz teku ceg cvora i pri tome ne pripadaju zatvorenoj listi. Za svaki takav cvor m uradi slede ce: Ako on nije u otvorenoj listi, dodaj ga u otvorenu listu. Ozna ci teku ci cvor kao roditelja ovog cvora ( sto je va zno za konstruisanje staze na kraju). Izra cunaj i zapamti vrednosti f (m), g (m) i h(m) za cvor. (Primetimo da se vrednosti g (m) mogu izra cunati na inkrementalan i ekasan na cin: vrednost g (m) jednaka je zbiru vrednosti funkcije g za roditelj cvora m i ceni puta od roditelja do m.) Ako je on ve c u otvorenoj listi, proveri da li je odgovaraju ci put od polaznog cvora do m bolji od teku ceg puta (preko cvora n). Za tu proveru koristi se vrednost g (m). Manja vrednost g zna ci da je taj put bolji. Ako je teku ci put bolji, promeni informaciju o roditelju cvora m na cvor n i a zuriraj vrednosti g (m) i f (m). Izbri si teku ci cvor iz otvorene liste i dodaj ga u zatvorenu listu cvorova (on ne treba da ponovo bude ispitivan). 4. Na kraju, ako je petlja zavr sena a da nije prijavljen uspeh (tada je otvorena lista prazna), onda ne postoji tra zeni put. Ina ce, put je pronaen i on se konstrui se od dete-roditelj veza (idu ci unazad od ciljnog cvora). Figure 7.5: Algoritam A*
5

6
6 3 4

6
2

5
4 3 C 5

4
3 F 2

7.3 A* Slede ca tabela ilustruje primenu algoritma A*. teku ci vor c A D G F B H E stanje otvorene lista [ cvor(roditelj,g+h)] A(null 0+6) D(A,6+5), G(A,5+6) G(A,5+6), F(D,9+3), H(D,9+4), C(D,10+6) F(D,9+3), H(D,9+4), C(D,10+6) B(F,12+1), H(D,9+4), C(D,10+6) H(D,9+4), E(B,14+0), C(D,10+6) E(B,14+0), C(D,10+6) C(D,10+6)

119

vor(roditelj) dodaje c se u zatvorenu listu A(-) D(A) G(A) F(D) B(F) H(D) E(B)

vor E postao teku vor, konstrui Na kraju primene algoritma, kada je c ci c se vorove iz zatvorene liste: se tra zeni put (koriste ci informacije o roditeljma za c vora A do c vora E , ali nije najkra A D F B E . Ovo jeste put od c ci mogu ci: naime, kra ci je slede ci put: A D H B E . Ovaj problem je nastao to kori na funkcija h nije konzistentna (iako jeste dopustiva): va zbog toga s se zi h(H ) > 2 + h(B ). e biti optiUkoliko se za isti zadatak koristi konzistenta funkcija, rezultat c malan, najkra ci mogu ci put od A do E . U narednom primeru se koristi funkcija ija se vrednost razlikuje u odnosu na prethodnu samo za c vor H . hc
A 5 G

6
6 3 4

6
2

5
4 3 C 5

3
3 F 2

6
teku ci vor c A D G H B F E

0
vor(roditelj) dodaje c se u zatvorenu listu A(-) D(A) G(A) H(D) B(H) F(D) E(B)

stanje otvorene lista [ cvor(roditelj,g+h)] A(null 0+6) D(A,6+5), G(A,5+6) G(A,5+6), H(D,9+3), F(D,9+3), C(D,10+6) H(D,9+3), F(D,9+3), C(D,10+6) B(H,11+1), F(D,9+3), C(D,10+6) F(D,9+3), E(B,13+0), C(D,10+6) E(B,13+0), C(D,10+6) C(D,10+6)

7.3.2

Specijalni slu cajevi

irinu mogu se smatrati specijalnim slu Obilasci grafa u dubinu i s cajevima algoritma A*.

120

7 Odredivanje puteva u grafu

Za obilazak grafa u dubinu, mo ze se koristiti algoritam A* sa g = 0 i pogodno odabranom funkcijom h. Na primer, neka je broja c C inicijalizovan na vor dodajemo vredneku veoma veliku vrednost. Kad god obradujemo neki c nost C svim njegovim susedima. Nakon svake dodele smanjujemo vrednost e vrednost h(x) da bude ve vorove na koje se ranije C za jedan. Time c ca za c nai slo. Primetimo da ovako denisana funkcija h nije nu zno dopustiva. je irinu takode Dejkstrin algoritam, kao specijalni slu caj obilaska grafa u s vor x. Ovakva funkcija specijalni slu caj algoritma A* gde je h(x) = 0 za svaki c h je dopustiva i konzistentna i garantuje nala zenje optimalnog puta. Za g = 0, algoritam A* pona sa se u skladu sa najpre-najboljim, pohlep vorove sa najpovoljnijom heursiti nim pristupom koji najpre obraduje c ckom u. Ova varijanta algoritma nije nu vredno sc zno optimalna. esto se primenjuje za nala Op sti algoritam A* c zenje puta na uniformnoj vorova (koja odgovara, na primer, diskretizovanoj mapi). Tada on domre zi c bija speci cnu formu. Pretpostavimo da je mre za pravilna (sa cinjena od kvadrata) vorovi (tj. neki i da ima pravougaonu formu. Dodatno, pretpostavljamo da neki c kvadrati, neka polja mre ze) nisu dostupni i da oni predstavljaju prepreke. Svako polje je povezano sa svakim susednim poljem (osim sa preprekama), te ima (izuzev polja na rubu) osam susednih polja (ali neka od njih mogu biti prepreke vorovima i kao takve nedostupne). U ovoj varijanti problema, cene su pridru zene c susednih c vorova). U ovom (poljima), a ne granama grafa (vezama izmedu kontekstu, funkcija g (n) je zbir svih cena polja du z puta od polaznog do polja n. Na primer, svakom ,,horizontalnom ili ,,vertikalnom pokretu mo ze se pridru ziti cena 1 a svakom dijagonalnom cena 1.414 2 (ovakva cena odgo sredi vara euklidskom rastojanju izmedu sta polja). Funkcija h mo ze se opisati dva c vora, a na razli cite na cine. Jedan od njih je euklidsko rastojanje izmedu jedan metod Menhetn u kojem se broji ukupan broj polja predenih horizontalno ili vertikalno da bi se do slo od polaznog polja do teku ceg polja2 . Primetimo da ukoliko su dozvoljeni dijagonalni potezi, onda Menhetn metod potencijalno vora i zbog toga ne garantuje nala precenjuje rastojanje do ciljnog c zenje na jkra ceg puta. No, ovaj metod u praksi obi cno daje dobre rezultate i nadeni ak i ako nisu najkra putevi su obi cno dovoljno dobri, c ci. Kada se odreduje vrednost h, mogu da se ignori su sve prepreke jer vrednost h(n) je procenjeno a ne stvarno rastojanje. Kada se algoritam A* primenjuje za nala zenje puta na uniformnoj mre zi, to kasnije c esto dovodi do neprirodon daje korake u osam mogu cih smerova s nih puteva sa cinjenih od segmenata sa jednim od osam nagiba. Omek savanje (eng. smoothing) je tehnika za unapredivanje takvih puteva tako da oni izgledaju prirodnije.

7.3.3

Primer upotrebe algoritma A* na uniformnoj mre zi

Naredni primer3 ilustruje primer upotrebe algoritma A* na uniformnoj mre zi. Vrednosti funkcija f , g i h su napisane u svakom polju koje se ispituje: vrednost funkcije f je zapisana gore-levo, vrednost funkcije g dole-levo, a vrednost funkcije h dole-desno. Vrednost funkcije f za svako polje je, kao i obi cno, zbir
2 Metod se zove Menhetn, jer podse ca na brojanje gradskih blokova od jednog mesta do drugog, emo nije mogu pri c ce prolaziti blokove dijagonalno. 3 Ovaj primer preuzet je iz teksta Patrick Lester: A* Pathnding for Beginners, 2005, http://www. policyalmanac.org/games/aStarTutorial.htm.

7.3 A*

121

vor ozna vrednosti funkcija g i h. Polazni c cen je zelenom, a ciljni crvenom bojom. Otvorena polja su ozna cena tankim zelenim kvadratima, a zatvorena debljim crvenim kvadratima u okviru polja. Strelice ukazuju na teku ceg roditelja polja. Postupak je isti kao kod op steg algoritma: u svakoj iteraciji bira se polje u funkcije f . To, teku iz otvorene liste sa najmanjom vredno sc ce polje izbacujemo iz otvorene liste i dodajemo u zatvorenu listu. Proveravamo sve susedna polja, ne razmatraju ci polja koja su u zatvorenoj listi ili nisu dostupna. Ako susedno polje nije ve c u otvorenoj listi, izra cunavamo vrednosti funkcija g , h i f za njega i ozna cavamo da je teku ce polje njegov roditelj. Ako je susedno polje ve c u otvorenoj listi, proveravamo da li je put preko teku ceg polja bolji, tj. proveravamo da li je vrednost funkcije g za to susedno polje manja ako se do njega dolazi preko teku ceg polja. Ukoliko to nije ta cno, ne preduzima se ni sta, a ako jeste teku ce polje postaje novi roditelj tog susegnog polja i njemu se pridru zuju nove vrednosti g i f . Pretraga kre ce od polaznog polja jer je na po cetku samo ono u otvorenoj listi. U poljima levo, desno, gore i dole od polaznog polja, vrednost funkcije g je 10. U dijagonalnim poljima vrednost funkcije g je 14. Ove vrednosti odgovaraju pribli znom euklidskom rastojanju (pomno zenom sa 10 i zaokru zenom). Vrednosti funkcije h se izra cunavaju na osnovu Menhetn rastojanja (pomno zenog sa 10) do ciljnog polja i zanemaruju ci prepreku.

f g h 74 60 54

14 60 10 50 14 40 60 10 50 74 60 40 10 30 54

14 60 10 50 14 40

Polazno polje bri se se iz otvorene liste i dodaje u zatvorenu listu. U otvorenoj listi je samo njegovih osam susednih polja. Od svih njih, bira se ono sa najman u funkcije f (40), to je polje neposredno desno od polaznog polja jom vredno sc e biti slede i ono c ce teku ce polje.

122

7 Odredivanje puteva u grafu

74

60

54

14 60 10 50 14 40 60 10 50 74 60 40 10 30 54

14 60 10 50 14 40

To polje izbacujemo iz otvorene liste, dodajemo ga u zatvorenu listu i onda proveravamo njegova susedna polja (naravno, samo ona koja nisu u zatvorenoj etiri polja su ve listi i nisu prepreke). Preostala c c u otvorenoj listi, pa je potrebno vora popravlja njihove trenutne ocene. Razproveriti da li put preko teku ceg c motrimo, na primer, polje neposredno iznad teku ceg polja: vrednost funkcije g za njega je 14. Ukoliko bi se do njega dolazilo preko teku ceg polja, vred vora i 10 je cena nost funkcije g bila bi 20 (10 je cena od polaznog do teku ceg c prelaska od teku ceg polja). Dakle, na ovaj na cin se ne mo ze popraviti vrednost funkcije g u polju iznad i ona ostaje nepromenjena. etiri susegna polja i, u ovom slu Opisani postupak sprovodimo za sva c caju, utvrdujemo da ocena nijegnog ne mo ze da se popravi. Time je obrada teku ceg polja zavr sena i tra zimo novo teku ce polje. Od preostalih sedam polja u otvorenoj u funkcije f . Ukoliko postoji vi listi biramo ono sa najmanjom vredno sc se takvih svejedno je koji izabrati. Neka je, na primer, izabrano polje neposredno ispod prethodnog teku ceg polja.

74

60

54

14 60 10 50 14 40 60 10 50 74 60 40 10 30 54

14 60 10 50 14 40 88 74

28 60 24 50

Za teku ce polje ne ce se razmatrati susedna polja koja su u zatvorenoj listi i koja su nedostupna (tj. prepreke). No, mo ze se (iako to nije nu zno i zavisi od konkretne primene) zabraniti ispitivanje polja koje je desno-dole od teku ceg polja. Naime, mo ze se smatrati da je dijagonalni potez od teku ceg do tog polja nemogu c zbog prepreke koja se nalazi desno od teku ceg polja.

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

7.3 A*

123

Ukoliko prihvatimo takvo ograni cenje, ostaje jo s tri susednih polja koja treba razmotriti. Dva polja ispod teku ceg polja nisu u otvorenoj listi, pa ih dodajemo zajedno sa izra cunatim vrednostima funkcija i informacijom da im je roditelj teku ce polje. Za polje levo od teku ceg polja se proverava da li se mo ze smanjiti vrednost funkcije g (odgovor je ne) i time je zavr sena obrada teku ceg polja. Opisani postupak se nastavlja dok ciljno polje ne postane teku ce.
108 94 80 74

28 80 24 70 20 60 24 50 94 74 60 54

24 70 14 60 10 50 14 40 80 60 40 10 30 60 54 82 68 82 0 72 10 88

20 60 10 50 94 74

72 10 68 74 68

24 70 14 60 10 50 14 40 108 94 80 74 74

54 20 58 10 68 20 74 74 102

28 80 24 70 20 60 24 50 34 40 44 30 54 20 72 30 108 94 88 88 88

38 70 34 60 38 50 48 40 58 30

Primetimo da su se, nakon nekoliko iteracija, vrednosti funkcija g i f , kao i roditeljsko polje promenili za polje dva polja ispod polaznog polja. Ranije je ovo polje imalo vrednost funkcije g jednaku 28 (i vrednost funkcije f jednaku 88) i roditeljsko polje je bilo gore-desno. Kasnije, ovo isto polje ima vrednost funkcije g jednaku 20 (i vrednost funkcije f jednaku 80), a roditeljsko polje je gore. Ova izmena dogodila se u nekoj iteraciji u meduvremenu. U ovom slu caju ona ne uti ce na pronadeni put, ali su ovakve izmene u op stem slu caju este i uti veoma c cu na kona cno re senje. Kada se tokom pretrage ciljno polje postane teku ce, tra zeni put od po vora se konstrui vora i prelazi laznog c se jednostavno. Kre ce se od ciljnog c do polaznog c niz polja vora. Ovako odreden na roditeljski sve dok se ne dode u suporotnom poretku daje tra zeni put od polaznog do ciljnog polja.
108 94 80 74

28 80 24 70 20 60 24 50 94 74 60 54

24 70 14 60 10 50 14 40 80 60 40 10 30 60 54 82 68 82 0 72 10 88

20 60 10 50 94 74

72 10 68 74 68

24 70 14 60 10 50 14 40 108 94 80 74 74

54 20 58 10 68 20 74 74 102

28 80 24 70 20 60 24 50 34 40 44 30 54 20 72 30 108 94 88 88 88

38 70 34 60 38 50 48 40 58 30

124

7 Odredivanje puteva u grafu

7.3.4

Svojstva algoritma A*

Mo ze se dokazati da je algoritam A* potpun i da je, pod odredenim uslovima optimalan [?]: dva c vor, algoritam A* c e na Potpunost: Ako postoji put izmedu ci jedan takav (naravno, ukoliko je raspolo zivo dovoljno vreme i memorijski prostor). vor c e biti dostignut Cak i ako je heuristi cka funkcija veoma lo sa, ciljni c u kona cnom broju koraka. dva data c vora, bi Optimalnost: Od svih puteva izmedu ce izabran najkra ci put, ukoliko je funkcija heuristike h konzistentna. Ukoliko funkcija h nije dopustiva, ali ne precenjuje stvarno cenu za vi se od d, onda je cena puta e prona koji c ci algoritam A* skuplji od najkra ceg za ne vi se od d. vorova (tj. ukoliko se razmatraju i Ukoliko se ne koristi lista zatvorenih c vorovi koji su ve susedni c c bili teku ci), da bi algoritam bio optimalan dovoljno je da funkcije h bude dopustiva (nije neophodno da bude konzistentna). Ukoliko se koristi nad stablima, da bi algoritam bio optimalan dovoljno je da funkcije h bude nenegativna i dopustiva. Ukoliko funkcija f odgovara optimalnom putu, onda algoritam A* obraduje vorove za koje va vorove n za koje va sve c zi f (n) < f (n); i neke c zi f (n) = f (n). Vremenska slo zenost algoritma A* zavisi od heuristike. U najgorem slu caju, vorova je eksponencijalan u odnosu na du broj obradenih c zinu najkra ceg puta, ali je polinomijalan ako funkcija heuristike h zadovoljava slede ci uslov: |h(x) h (x)| O(log h (x)) vora gde je h optimalna heuristika, tj. funkcija koja vra ca ta cnu cenu puta od c vora. Drugim re x do ciljnog c cima, gre ska funkcije h ne treba da raste br ze od logaritma idealne heuristike. Prethodna dva tvrdenja sugeri su da algoritam A* najbolje performanse (na vorova) daje kada je funkcija heuristike bliska idealjmanji broj obradenih c noj funkciji heuristike. S druge strane, optimalnost je garantovana samo ako funkcija heuristike nikada ne precenjuje stvarnu cenu puta. Zajedno, to govori da dobra funkcija heuristke mora da bude veoma pa zljivo konstruisana, tako to bli da bude s za idealnoj funkciji, ali da je nikada ne prema suje. Za vi se detalja o svojstvima algoritma A* videti, na primer, [?].

7.3.5

Implementaciona pitanja

Algoritam A* se obi cno primenjuje u aplikacijama koje rade u realnom vre enjem pogodnih menu, te je neohodno da je ekasno implementiran (kori sc struktura podataka, ekasnim upravljanjem memorijom, izbegavanjem mno zenja emo prokomeni drugih skupih operacija itd.) U ovom poglavlju ukratko c tarisati nekoliko na cina koji popravljaju ekasnost implementacije algoritma A*. esto implementira kao binarni min-hip (kako bi se brzo Otvorena lista se c u funkcije f ), a zatvorena lista kao dolazilo do elementa sa najmanjom vredno sc

7.3 A*

125

enjem ovih fukcija operacije za dodavanje u i brisanje elehe s tabela4 . Kori sc vorova grafa, a menata iz otvorene liste zahteva vreme O(log V ), gde je V broj c vora u zatvorenu listu i proveravanje da li je ve dodavanje c c u zatvorenoj listi zahteva vreme O(1). esto jo Zahtevi za memorijskim prostorom su za algoritam A* c s ve ci prob vora grafa nije preveliki, lem nego vremenska slo zenost. Ipak, ukoliko broj c mo ze da bude isplativo i stati cko alociranje potrebnog prostora (ili dinami cko alociranje ve cih blokova) koji onda mo ze da se koristi u savezu sa min-hip este i skupe operacije dinami strukturom, kako bi se izbegle c ckog alociranje (i vorove. Dodatno, ako se algoritam primenjuje za dealociranje) za pojedina cne c nala zenje puta na uniformnoj mapi dimenzija M M i ako se stati cki rezervi se vor, pristupanje c vorovima je br prostor za svaki c ze ako je M oblika 2m . Potrebno je eliminisati ra cun sa decimalnim brojevima i koristiti samo celobrojnu aritmetiku. Ukoliko cene imaju decimelne vrednosti (npr. 1.414) potrebno ih je pomno ziti sa, na primer, 1000 i koristiti samo zaokru zene vrednosti. polaznog i Najgori slu caj za algoritam A* je kada ne postoji put izmedu vora. U tu svrhu mo ciljnog c ze se implementirati brza provera da li uop ste dva c vora: dva c vora su povezana ako i samo ako pripadaju postoji put izmedu vor mo povezanim delovima grafa. Ako se za svaki c ze lako proveriti kom delu grafa pripada, onda je i navedena provera jednostavna. esto se koristi kao komponenta s irih sistema koji treba da Algoritam A* c rade u realnom vremenu. Zbog toga je obi cno potrebno implementirati tako da se na zahteva izvr savanje u jednom neprekinutom vremenskom periodu, kojih se izvr ve c u vremenskim intervalima izmedu savaju druge komponente esto zove deljenje vremena na kri sistema. Ovakav pristup se c ske (eng. time slicing).

4 He s tabela je struktura podataka koja povezuje vrednosti i klju ceve. Ona omogu cava ekasno nala zenje vrednosti na osnovu klju ca. To se posti ze preslikavanjem klju ca he s funkcijom u he s vrednost koja slu zi kao indeks niza na kojem se nalazi odgovaraju ca vrednost.

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

126

7 Odredivanje puteva u grafu

Glava 8

Programiranje logi ckih igara


Programiranje logi ckih igara jedan je od klasi cnih problema ve sta cke inteligencije i verovatno jedan od najatraktivnijih. Kako logi cke igre zahtevaju odlu civanje koje se mo ze smatrati inteligentnim, ova problematika je predmet interesovanja mnogih istra ziva ca u oblasti ve sta cke inteligencije (i ne samo njih). Mo zda su zbog toga neki od najve cih dometa ve sta cke inteligencije upravo u ovom ampione u igrama bekgemon i domenu: ra cunari su ve c pobedili svetske s aha izgubio i dame, a nedavno je u brzopoteznoj igri sa ra cunarom, partiju s ampion Gari Kasparov. Uprkos tim dometima, jo svetski s s uvek treba zadr zati oprez prema programima za logi cke igre, jer njihovi principi odlu civanja kvalitativno (po pitanjima apstrahovanja, analogija, pravljenja planova i sl.) jo s uvek nisu dovoljno blizu ljudskim. Mogu cnosti re savanja ovih problema i primene tih tehnika u drugim domenima upravo i motivi su dalja istra zivanja ve sta cke inteligencije u ovom pravcu. U ovoj glavi bi ce re ci o razvoju strategija za automatsko igranje logi ckih igara, a zatim i o samim strategijama. Ne ce biti upu stanja u teorijske analize e biti opisani op pojedina cnih igara, ve cc sti pojmovi i algoritmi koji mogu da irok spektar igara. Razmatra se koriste za s cemo algoritme za igre dva igra ca bez nepoznate informacije, dakle igre kod kojih svaki igra c zna koje poteze na raspolaganju ima protivnik (u ovu kategoriju ne spadaju, na primer, igre u kojima igra c ne zna karte koje ima protivnik, nepoznati broj koji treba pogoditi itd). ahu, koji c e biti jedna od igara naj e uzimanih za primer, Za oznake u s ce sc emo kralja ozna prihvati cemo engleske oznake. Tako c cavati sa K (King), kraljicu sa Q (Queen), topa sa R (Rook), lovca sa B (Bishop), konja sa N (Knight) i ahovske zavr pe saka sa P (Pawn). Shodno tome ozna cava cemo i s snice (npr. zavr snicu kralj i kraljica protiv kralja i topa ozna cava cemo sa KQKR).

8.1

Razvoj automatskog igranja logi ckih igara i osnovni koncepti

panski Istorija automatskog igranja logi ckih igara po cinje u devetnaestom veku: s pronalaza c Tores Kevedo (Torres y Quevedo) konstruisao je 1890. godine (i koji je prikazao 1900. na svetskoj izlo zbi u Parizu) elektro-mehani cki uredaj

128

8 Programiranje logi ckih igara

ahovsku zavr igrao s snicu KRK. Op sta teorijska razmatranja zapo ceo je Von Nojman (Von Neuman) postavljanjem op steg problema (1928): Igra ci S1 , S2 , . . . , Sn igraju datu igru . Kako treba da igra igra c Sm da bi ostvario najbolji mogu ci rezultat? Odgovor na ovako postavljeno pitanje te sko je dati za ve cinu igara. Naravno, nije bilo te sko naslu ak i ako on postoji, te titi da je za puno igara, c sko ili gotovo nemogu ce efektivno realizovati optimalni algoritam za proizvoljnu poziciju. U svakom slu caju, ova problematika postala je predmet interesovanja mnogih matemati cara i, posebno, matemati cke discipline teorija igara. Moderna istorija programiranja igara po cinje klasi cnim tekstom Programming a digital computer for playing Chess (Philosophical Magazine, 41) koji je 1950. godine objavio Klod Senon (Claude Shannon). U tom tekstu Senon je esto opisao dve op ste strategije za izbor poteza: strategije A i B tipa (danas c ozna cavane kao Senonova A i B strategija): A: Minimaks procedurom vr si se pretra zivanje stabla igre sa odredenom vrednosnom funkcijom i ocenjivanje legalnih poteza; bira se potez sa najboljom ocenom (videti poglavlje 8.4.3). B: Potez se bira na osnovu trenutne pozijice/situacije u igri i na osnovu odgovaraju ce, unapred pripremljene tabele. Koncept zasnovan na Senonovoj A strategiji naziva se i gledanje unapred ili gledanje u dubinu (eng. lookahead) pristupom, a ponegde i ,,sistematskim pretra zivanjem, ,,dubinskim pretra zivanje ili ,,najpre najdublji. Ako bi se enjem ove strategije, minimaks algoritmom, pretra kori sc zivanje stabla igre vr silo do zavr snih stanja igre, ispitivanjem svih mogu cih tokova partije zaista bi bio izabran najbolji legalan potez i taj izbor bi imao savr seno obrazlo zenje u samom primenjenom algoritmu. Medutim, za ve cinu igara nije prakti cno mogu ce pre tra ziti kompletno stablo igre. Cak i pretra zivanje stabla igre do dubine od svega nekoliko poteza u igrama sa prose cno deset ili dvadeset legalnih poteza, zahteva ispitivanje miliona pozicija. Zbog toga, ekasna primena Senonove A strategije svodi se na pretra zivanje stabla igre do relativno male dubine algoritmima koji su ubrzani heuristikama1 (umesto najjednostavnijim minimaks algoritmom) i uz dobro osmi sljenu, ali jednostavnu funkciju evaluacije za ocenu nezavr snih pozicija igre (umesto jednostavne ,,trovrednosne funkcije za ocenu zavr snih pozicija). Ovakvim pristupom gubi se svojstvo po kome se pretra zivanjem dobija zaista najbolji potez, a obim pretra zivanja i razli citih e, i dalje veoma velik. Opisani koncept c esto se izra cunavanja ostaje, naj ce sc naziva konceptom ,,gruba sila plus jednostavna vrednosna funkcija (eng. bruteforce method plus simple evaluation function). Precizni opisi funkcije evaluacije, algoritama minimaks i srodnih dati su u poglavlju 8.4. Senonovoj strategiji B tipa odgovara koncept koji zovemo gledanje uvis ili mo zda adekvatnije trenutni pogled (eng. lookup). Ovaj pristup zahteva postojanje unapred pripremljene tabele sa dve kolone: u jednoj su mogu ce pozicije/situacije igre, a u drugoj optimalni potezi. Jedna od ,,klasi cnih implemetacija
1 Heuristike su (aproksimativne) metode za usmeravanje i su zavanje pretrage u problematici gde se javlja kombinatorna eksplozija. Kvalitet i mogu cnosti njihove primene zavise od speci cnosti domena i njegove neprekidnosti (malim promenama problema treba da odgovaraju male promene re senja).

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

8.2 Legalni potezi i stablo igre

129

ahovske zavr ovog pristupa je program za igranje s snice KQKR koji je 1977. godine napravio Kenet Tompson (Kenneth Thompson, Bell Telephone Laboratories), poznat kao tvorac operativnog sistema UNIX). Tabela koju je koristio program sadr zavala je sve mogu ce pozicije za oba igra ca i optimalne poteze za emu se pod optimalnim potezom za ja sve te pozicije (pri c ceg igra ca (koji ima kralja i kraljicu) smatra potez koji vodi pobedi u najmanjem broju poteza, a za slabijeg, potez koji maksimalno odla ze poraz). Tabela je imala oko tri miliona vrsta i program koji se na njoj zasnivao bio je, i u pozicijama koje su teorijski ak i za vrhunske s ahiste. U ovoj strategiji, izgubljene, prakti cno nepobediv c ahu) ne nalazi se niti u samom programu znanje o igri (u ovom primeru, o s koji igra, niti u tabeli, ve c u programu koji je tabelu generisao. Opisani pristup zahteva, pored adekvatne procedure za generisanje lookup tabele i veliku memoriju (za sme stanje svih mogu cih pozicija), ali u samom procesu igre program e jako malo vremena za pronala zahteva naj ce sc zenje odgovaraju ceg poteza. Senonova B strategija mo ze se primenjivati i u modikonvanim varijantama itave po kojima se, na primer, ne bi prepoznavale sve mogu ce pozicije, ve cc klase pozicija i na sli can na cin nalazili optimalni potezi. ci Senonove Uporeduju strategije A i B (odnosno pristupe lookahead i lookup) vidimo da prva u samom procesu izbora poteza zahteva malo memorije i mnogo izra cunavanja (deep mentality), a druga, obrnuto, malo izra cunavanja (shallow mentality) i mnogo memorije. Na toj skali odnosa koli cine podataka koji se ovih kra ovekov na koriste i obima izra cunavanja, c cin zaklju civanja je izmedu e se bitno razlikuje i po svojoj prirodi. Upravo priroda c ovekovog jnosti, a naj ce sc na cina razmi sljanja i z sa, vodi ka novim pristupima u for elja da se on opona malizaciji igara i njihovom programiranju. Neki od njih su koncept skupovi pozicija kao klase ekvivalencije i koncept advice texts (tekstovi saveta). Po ovom kon ceptu, za odredenu klasu problema (odnosno klasu pozicija u igri) formuli su se pravila (odnosno saveti) koja treba slediti i to obliku re senja (jednostavnijih) potproblema. Takav na cin reprezentacije znanja o problemu i o na cinima njegovog re savanja mo ze biti jako blizak ljudskom i pripadati onom segmentu ene memorije koji odgovara c oveku. skale obim izra cunavanja koli cina kori sc U nastavku teksta, za izbor poteza u otvaranjima razmatra ce se strategije koje su u osnovi Senonovog tipa B tipa, za sredi snicu strategije Senonovog tipa A i za zavr snicu pristupe tipa skupovi pozicija kao klase ekvivalencije ili advice texts.

8.2

Legalni potezi i stablo igre

terLegalne poteze deni su pravila igre. Naglasimo da pravimo razliku izmedu mina mogu ci potezi i legalni potezi: mogu cim potezima nazivamo one koji su legalni u bar jednoj regularnoj poziciji igre. Pretpostavka je da se u svakom trenutku igre mo ze jednozna cno odred iti skup legalnih poteza. Dodatno, po zeljno je da postoji (cikli cno) uredenje poteza, pa se za svaki legalan potez mo ze jednozna cno odrediti slede ci legalan potez. vorovima odgovaraju regularne pozicije u igri Stablo igre je stablo u kojem c (u skladu sa pravilima date igre), a granama legalni potezi (u smislu date igre). vora y ako se iz pozicije/ Cvor x stabla igre je neposredni predak c cvora x nekim

130

8 Programiranje logi ckih igara

vor y neposredni legalnim potezom dobija pozicija/ cvor y (tada ka zemo i da je c vora x). Za c vor x stabla ka vora y ako postoji niz potomak c zemo da je predak c vorova stabla x = z0 , z1 , . . . , zn = y (n 1) takvih da je za svako i, 0 c vor zi neposredni predak c vora zi+1 . Tada ka vor i n1c zemo i da je c vora x. Legalnim potezom smatramo i prazan potez (u engleskom y potomak c esto se koristi termin pass) u situaciji kada igra jeziku c c koji je na redu nema na raspolaganju legalnih poteza i preska ce svoj red (takve situacije nisu regularne, ahu, ali regularne, na primer, u igri reversi). U igri za dva igra na primer, u s ca, u ovako denisanom stablu igre, od korena do bilo kog lista naizmeni cno se smenjuju grane koje odgovaraju potezima prvog i drugog igra ca. Sli cno, ako se radi o igri za vi se igra ca, od korena do bilo kog lista redom se smenjuju grane koje odgovaraju potezima svih igra ca. Na slici 8.1 ilustrovano je stablo igre za igru iks-oks.

x o x

...

...

...

xo

x o

...

...

...

...

...

...

...

...

...

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

...

o x x o o x x

...

...

o xox

...

oo x x

o o o xo ... ... ... o x x ... xox xox xox xxx zavr sno stanje . ....... .

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

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

Figure 8.1: Stablo igre za igru iks-oks Kompletnim stablom igre zovemo stablo u kojem je koren po cetna pozicija igre (u skladu sa pravilima date igre), a listovi su zavr sne pozicije igre. Kompletno stablo igre ima onoliko listova koliko data igra ima razli citih regularnih tokova. Taj broj je kod ve cine igara ( cak i kod veoma jednostavnih) ogroman i onemogu cava kompletno pretra zivanje u cilju izbora optimalne strategije. Zato se u programima za igre (naj ce ce u sredi snici) za izbor poteza primenjuju algoritmi koji pretra zuju samo delove ovog stabla (videti poglavlje 8.4). uvati inZa potpuni opis stabla u ra cunarskoj implementaciji nije potrebno c vorovima/pozicijama i o granama/potezima. Naime, kako granama formaciju i c odgovaraju legalni potezi i kako oni na osnovu teku ce pozicije jednozna cno odreduju slede cu poziciju, za opis stabla dovoljan je opis korena stabla (tj. po vorove. Na taj lazne pozicije) i opis grana/legalnih poteza za odgovaraju ce c na cin implicitno mo ze biti opisano/generisano celo stablo, a zauzeti memorijski prostor daleko je manji nego kada bi se eksplicitno pamtile i pozicije koje vorovima stabla. Takav na odgovaraju c cin opisa stabla mo ze da se koristi i za

8.3 Otvaranje i biblioteka partija emu govori naredno poglavlje. opis biblioteke partija, o c

131

8.3

Otvaranje i biblioteka partija

enjem) opisa partija odredene Potreba za skladi stenjem (i kori sc igre mo ze da proisti ce bilo iz potrebe da se ti podaci koriste za izbor poteza u samom programu, bilo iz potrebe da se omogu ci jednostavnija analiza pojedinih situacija/pozicija itavih partija. ili c Opisi partija mogu biti posebne, nezavisne celine, ali mogu biti i organizovani tako da korisniku omogu cavaju laku uporednu analizu sli cnih varijanti u igri i da su istovremeno upotrebljivi za pomo c u automatskom izboru poteza. Jedna od najpogodnijih reprezentacija biblioteke partija je u obliku stabla igre. U takvoj reprezentaciji biblioteke partija, dovoljno je da odgovaraju ce stablo igre sadr zi informacije o potezima (koji odgovaraju granama stabla), jer su vorovima stabla). njima odredene i odgovaraju ce pozicije (koje odgovaraju c esto je izuzetno zna U programima za logi cke igre c cajna biblioteka otvaranja (opening book) koja je zasnovana na ljudskom iskustvu i koja sadr zi infor esto javljaju u otvaranju. macije o poznatim i kvalitetnim potezima koji se c e se reprezentuje stablom Biblioteka otvaranja, kao i biblioteka partija, naj ce sc igre. Ta struktura mo ze biti stati cka (sadr zi odreden, kona can broj varijanti u svakom potezu i informacije o potezima samo do odredene dubine) ili se pro sirivati tokom samog izvr savanja programa. U igri programa sledi se tok partije iz biblioteke dok je to mogu ce (dok o tome postoje odgovaraju ce informacije u biblioteci otvaranja), a onda se prelazi na druge strategije izbora poteza. Ukoliko za neku poziciju postoji u biblioteci vi se mogu cih nastavaka, izbor mo ze da se na cini po odredenim verovatno cama koje mogu da se koriguju tokom rada programa (u skladu sa ,,stilom igre programa koji proisti ce iz prirode funkcije evaluacije) ili jednim delom i prema to du du zini koja u stablu sledi iza odredenog poteza (kao te znja da se s ze ostane u poznatim varijantama). Pomenuta strategija mo ze da se realizuje na slede ci na cin: neka je, na osnovu biblioteke otvaranja, u nekom trenutku na raspolaganju n poteza. Svakom od njih neka je pridru zena ocena mi (1 i n) na osnovu empirijske procene i na osnovu dubine biblioteke partija koja sledi za i-tim potezom (te ocene predstavljaju karakteristi can, dodatni deo biblioteke partija). Ukoliko emprijske procene govore da je i-ti potez bolji, to je ocena mi ocena mi je ve ve ca. Takode, ca ukoliko je ve ca dubina biblioteke partija koja sledi za i-tim potezom. Tada se, u toj poziciji, i-ti potez (1 i n) bira sa verovatno com mi . pi = n j =1 mj Na taj na cin izbegava se deterministi cko pona sanje programa u otvaranju: bolji e e, ali ne uvek. Ocene mi mogu se potezi (u smislu neke procene) se biraju c sc tokom igre korigovati na slede ci na cin: ukoliko je posle izbora i-tog poteza (na nekoj dubini d) program dobio (izgubio) partiju, oceni mi dodaje se (oduzima se) neka karakteristi cna pozitivna vrednost c. Te korekcije ocena u biblioteci partija vr se se na svim nivoima d na kojima izbor poteza nije bio jed nozna cno odreden. Na taj na cin program ,,u ci, popravlja kvalitet svoje igre i prilagodava je speci cnim znanjima o igri koje primenjuje u daljem toku partije.

132

8 Programiranje logi ckih igara

Poseban problem u otvaranju je situacija u kojoj protivnik svojim potezom primora program da napusti biblioteku otvaranja, a potom se u igri ponovo do neke pozicije koja postoji u biblioteci otvaranja. Prepoznavanje pozidode cije koja postoji u razli citim delovima stabla mo ze da predstavlja problem i iziskuje kompleksniju reprezentaciju podataka o poznatim otvaranjima. Takav zahtev mo ze da vodi i ka re senju koje je tipi cno za Senonovu B strategiju: u lookup tabeli tra zi se teku ca pozicija i njoj odgovaraju ci potez (ili potezi). Re senje ovog tipa u ve cini igara je neprimereno zbog velikog obima podataka koji zahteva (umesto samo pojedina cnih poteza, sve pozicije se predstavljaju kompletno i posebno) i vremena potrebnog za izvr savanje (u lookup tabeli, za neke igre, morali bi da budu sme steni podaci o hiljadama, ili milionima relevantnih pozicija).

8.4

Sredi snjica

Velika ve cina savremenih programa za logi cke igre u sredi snjici koristi strate giju dubinskog pretra zivanja stabla igre koja odgovara Senonovoj A strategiji. Zbog obima izra cunavanja koje zahteva, kao i zbog razlika u odnosu na strate oveka, ovaj pristup c esto se naziva i ,,metod grube sile sa jedgije tipi cne za c nostavnom funkcijom evaluacije (eng. brute-force method plus simple evaluation function). U narednim poglavljima opisa cemo smisao i ulogu funkcije evaluacije, kao i neke od algoritama koji se koriste u pretra zivanju stabla igre.

8.4.1

Stati cka ocena pozicije i funkcija evaluacije

vorovima staU cilju odredivanja najboljeg poteza za igra ca koji je na potezu, c vorovi tj. pozicije i potezi bla igre se mogu dodeliti neke ocene, na osnovu koje c mogu da se porede po kvalitetu. Stati cka ocena je vrednost koja se, u skladu emu se ne sa speci cnim karakteristikama konkretne igre, dodelje poziciji pri c ispituju mogu ci nastavci koji joj odgovaraju. Funkcija evaluacije (eng. evaluation function) je funkcija F koja mogu cim, regularnim pozicijama u nekoj igri dodeljuje njihove ocene: F :P . Radi ekasnosti, funkcija evaluacije obi cno se implementira kao racionalna ili celobrojna funkcija. Smisao funkcije evaluacije za protivnike u igri za dva igra ca je suprotan to je najbolje stanje za jednog igra ono s ca najlo sije 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 sredi snjici partije sadr zano je u funkciji evaluacije i u najve coj meri od nje zavisi kvalitet igre programa. Potrebno je da to vi sadr zi s se relevantnih informacija, ali s druge strane, kako se izra cunava mnogo puta, potrebno je da bude jednostavna, pa je po zeljno da se funkcija po evaluacije ra cuna jednostavno i u celobrojnoj aritmetici. Takode, zeljno je da funkcija evaluacije za simetri cne pozicije (za zamenjene uloge igra ca) daje vrednosti koje se razlikuju samo po znaku. Najjednostavnija je tzv. trovrednosna funkcija: ona se primenjuje samo na zavr sne pozicije igre i ima samo tri razli cite vrednosti za pobedu prvog, za pobedu drugog igra ca i za nere sen ishod (npr. 1, -1 i 0). Trovrednosna funkcija zahteva pretra zivanje stabla igre

8.4 Sredi snjica

133

vorova, pa je, zbog potencijalno velike dubine pretra do zavr snih c zivanja, ova funkcija za ve cinu igara prakti cno neupotrebljiva. Generalno, funkcija evaluacije obi cno preslikava skup svih mogu cih pozicija preslikava u segment celih ili racionalnih brojeva: F : P [M, M ] vorovima u kojima je pobednik prvi Vrednost M dodeljuje se samo zavr snim c vorovima u kojima je pobednik igra c, a vrednost vrednost M samo zavr snim c drugi igra c. Ocene zavr snih pozicija igre mogu se korigovati dodavanjem (odnosno oduz vora u pretra imanjem) dubine odgovaraju ceg c zivanju, kako bi se od svih varijanti koje vode u pobedu izabrala ona koja vodi pobedi u najmanjem broju koraka (odnosno kako bi se, ukoliko je poraz neizbe zan, taj poraz maksimalno odgodio). Funkcija evaluacije mo ze biti i slo zene strukture, sastavljena od modula koji odgovaraju razli citim fazama partije (npr. sredi snjici i zavr snici) ili ra ahu: vrednost ukupnog materijala, zli citim stati ckim parametrima (npr. u s pokretljivost gura, pe sa cka struktura, rokada i dr.).

8.4.2

Pretra zivanje stabla igre

Kod ve cine programa za kompleksnije logi cke igre, pored kvalitetne funkcije evaluacije, od klju cne va znosti su algoritmi koji se koriste za pretra zivanje stabla igre. Pri pretra zivanju stabla igre u sredi snjici, funkcija evaluacije se vorove na nekoj odredenoj vorovima se izra cunava samo za c dubini, a ostalim c vorova-potomaka. Pretra pozicija ocenjuje na osnovu ocena nekih od c zivanje vora, kod stabla igre u cilju odredivanja najboljeg mogu ceg poteza iz datog c razli citih logi ckih igara (i razli citih programa) realizuje se na razli cite na cine. Realizacije se razlikuju po algoritmu pretra zivanja, po dubini pretra zivanja stabla, po heuristikama koje se primenjuju (nekad se, zbog brzine, odustaje od najbolji potez za datu dubinu, ve zahteva da se pronade c se tra zi ,,dovoljno e je dobar potez) itd. Kod kompleksnijih logi ckih igara stablo igre naj ce sc ogromno i njegovo pretra zivanje zahteva puno vremena. Zato su heuristike koje ubrzavaju to pretra zivanje od izuzetnog zna caja. Stablo igre se pri pretra zivanju ne realizuje stati cki, ve c se dinami cki realizuje samo put od po cetnog vora do pozicije koja se trenutno ispituje. Kako se za pretra c zivanje stabla igre koristi rekurzija, to zna ci da se za potez dubine d pamte samo podaci proistekli iz d-tostrukog pozivanja funkcije za pretra zivanje (sa povratnim adresama i sl).

8.4.3

Algoritam minimaks

Algoritam minimaks je klju cni element Senonove A strategije i on je u osnovi skoro svih algoritama za izbor poteza pretra zivanjem stabla igre. Minimaks al goritam pretra zivanjem stabla igre za igra ca koji je na potezu odreduje najbolji vor, zadatu dubinu pretra mogu ci potez u datoj situaciji (za zadati c zivanja i za izabranu funkciju evaluacije). Pretra zivanje celog stabla garantuje nala zenje zaista najboljeg poteza (u navedenom smislu ako se menja dubina pretra zivanja ne mora da se dobija isti rezultat), ali zbog odsustva heuristika (koje bi to pretra zivanje ubrzale) to pretra zivanje mo ze da traje jako dugo. Pretpostavimo, jednostavnosti radi, da se pretra zivanje vr si do ksne dubine (tj. da su iste

134

8 Programiranje logi ckih igara

vorova u pretra du zine svih puteva iz datog do zavr snih c zivanju). Pretpostavimo jo s da funkcija evaluacije za igra ca koji je na potezu ima pozitivan smisao (tj. bolji je potez ako obezbeduje ve cu vrednost funkcije). Funkcijom evalu vorovima u pretra acije ocene se dodeljuju samo ,,najdubljim c zivanju (pre vorovi ne moraju da predtra zivanje se vr si do ksne dubine i ,,najdublji c voru stavljaju zavr sna stanja igre); dalji postupak je rekurzivan: kao ocena c vorova-potomaka, ako je u tom c voru na potezu dodeljuje se minimum ocena c vorova potomaka, u suprotnom (slika 8.2). protivnik, a kao maksimum ocena c vora je maksimum ocena c vorovaneposrednih potomaka i Ocena po cetnog c rezultat je potez kojem odgovara taj maksimim. Dakle, algoritam karakteri se maksimizovanje ocene kada je na potezu sam igra c i minimizovanje kada je na ovog algoritma potezu njegov protivnik, pa otuda i ime algoritma. Pseudokod dat je na slici 8.3.
5

max
5 1 2

min
5 7 1 2 2

max
5 7 1 1 2 2 1 5 7 1 1 2 2 1

Figure 8.2: Stablo pretrage sa ilustracijom algoritma minimax Algoritam minimaks (kao i ostali algoritmi zasnovani na minimaksingu) vorovima na vr si izbor poteza samo na osnovu vrednosti koje su pridru zene c maksimalnoj dubini pretra zivanja. To zna ci da se ne ispituju potezi koji dalje slede i da se ne koriste informacije o njima (a te informacije mogu biti veoma esto bi promenile odluku o izabranom potezu). Pored toga, kada je va zne i c vorova na nekoj dubini, u slede neki potez odabran na osnovu c cem koraku (pri izboru slede ceg poteza) te informacije se ne koriste i ,,zaboravlja se za sto ahu neki potez izabran zato s to mu odgovara je odabran taj put (npr. ako je u s vor dubine tri u kojem se protivniku daje s ah, u slede c cem potezu pretra zivanje esto ne ah kre ce iznova i c ce biti izabran potez kojim se protivniku daje s potez koji je motivisao izbor prethodnog). Dakle, pri pretra zivanju stabla igre vorovi na nekoj ksnoj dubini ni oni posle, ni oni pre njih. ,,vide se samo c esto se naziva efekat horizonta (eng. horizon effect). Ovaj fenomen c

8.4.4

Algoritam alfa-beta

Algoritam alfa-beta otkriven je sredinom dvadesetog veka nezavisno od strane nekoliko istra ziva ca. Artur Semjuel sa jedne strane i Ri cards, Hart, Levin i Edvards (svi iz SAD) formulisali su nezavisno ranu verziju algoritma po cetkom

8.4 Sredi snjica Algoritam: Minimax Ulaz: pozicija Izlaz: potez 1. v := M ax(pozicija) 2. vrati potez kojem odgovara vrednost v Funkcija: Max Ulaz: pozicija, funkcija evaluacije f Izlaz: vrednost pozicije 1. Ako je zavr sna pozicija vrati f (pozicija) 2. v := 3. Za svaku poziciju s do koje se mo ze do ci u jednom potezu: Ako je v > M in(s) onda v := M in(s) 4. vrati v Funkcija: Min Ulaz: pozicija, funkcija evaluacije f Izlaz: vrednost pozicije 1. Ako je zavr sna pozicija vrati f (pozicija) 2. v := + 3. Za svaku poziciju s do koje se mo ze do ci u jednom potezu: Ako je v < M ax(s) onda v := M ax(s) 4. vrati v Figure 8.3: Algoritam minimaks

135

pedesetih godina. Makarti je sli cne ideje predstavio 1956. godine, tokom znamenite 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 igre i predstavlja heuristikama ubrzan algoritam minimaks. Osnovni postupak vorova je minimaks tipa: vrednosnom funkcijom ocenjuju se samo ocenjivanja c vorovi na nekoj odabranoj dubini, a zatim se rekurzivnim postupkom (minic vorovi prethodnici. Postupak ,,alfa odsecanje bi maksingom) ocenjuju c e opisan pretpostavljaju ci da funkcija evaluacije za igra ca koji je na potezu ima pozitivan smisao (bolje su ve e ocene). voru na potezu igra Neka je u teku cem c c A koji tra zi najbolji potez; neka je ocenjeno n od m (n < m) njegovih legalnih poteza i neka su dobijene ocene w1 , w2 ... wn i neka je wk najve ca od njih. Razmatramo n + 1-i legalni potez (slika 8.4); nakon tog poteza protivnik (igra c B ) ima vi se mogu cnosti i igra c

136

8 Programiranje logi ckih igara

wn+1 < wk

2 < 5

max
wk wn wn+1 odsecanje 5 7>5 1 2 odsecanje

min
1 2

wj

odsecanje

max
1 2 2 1

Figure 8.4: Stablo pretrage sa ilustracijom algoritma alfa-beta

A tra zi onu sa najmanjom ocenom; za svaku ocenu wi legalnih poteza u tom voru, svakako va c zi da je ve ca ili jednaka zajedni ckom minimumu wmin (wi do vora; dakle, ako se u tom pretra wmin ) koji predstavlja ocenu c zivanju dode ocene wj koja je manja ili jednaka oceni wk (wj wk ) sigurno je da je i ocena vora manja ili jednaka oceni wk (wmin wk ). S obzirom da se u po c cetnom voru tra vor (sa ocenom c zi maksimum ocena mogu cih poteza, to zna ci da taj c vora (jer je wmin wk wmax ), wmin wk ) ne uti ce na ocenu po cetnog c voru mo pa se dalje pretra zivanje poteza protivnika u teku cem c ze prekinuti bez uticaja na rezultat pretra zivanja mo ze da se izvr si odsecanje stabla vorove (slika 8.4). ,,Beta odsecanje je potpuno analogno i primenjuje se na c u kojima je na potezu protivnik. Naravno, s obzirom na smisao vrednosne funkcije, maksimumi pominjani u ,,alfa odsecanju zamenjuju se minimumima algoritma alfa-beta dat je na slici 8.5. i obratno (slika 8.4). Pseudokod esto mo Kako stablo pretra zivanja c ze biti jako veliko, ubrzanje minimaks algoritma heuristikama ,,alfa-odsecanje i ,,beta-odsecanje ima izuzetan zna caj. injenica da i alfa-beta algoritam nalazi zaista najbolji mogu Posebno je va zna c ci vor i zadatu dubinu pretra to zna potez za zadati c zivanja, s ci da heuristike koje se primenjuju ne naru savaju tu osobinu minimaks algoritma. voru potezi ispituju od najlo Ukoliko se u svakom c sijeg ka najboljem (u vora), tada nema nijednog alfa ili beta odsecanja, pa se alfasmislu teku ceg c beta algoritam svodi na algoritam minimaks. Obratno, najvi se alfa i beta odsecanja ima kada su potezi ispituju od najboljeg ka najlo sijem u smislu teku ceg vora i tada algoritam alfa-beta daje najbolji efekat (tj. ispituje najmanji broj c vorova stabla). Naravno, takav poredak poteza nije mogu c ce generisati egzaktno u toku pretra zivanja stabla igre, ali se dobrim procenama efekat alfa-beta algoritma tako mo ze bitno popraviti. Upravo na toj ideji zasnivaju se i neka pobolj sanja alfa-beta algoritma.

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

8.4 Sredi snjica Algoritam: Alfa-beta Ulaz: pozicija Izlaz: potez 1. v = M ax(pozicija, , +) 2. vrati potez kojem odgovara vrednost v Funkcija: Max Ulaz: pozicija, alfa vrednost , beta vrednost , funkcija evaluacije f Izlaz: vrednost pozicije 1. Ako je zavr sna pozicija vrati f (pozicija) 2. v := 3. Za svaku poziciju s do koje se mo ze do ci u jednom potezu: Ako je v > M in(s, , ) onda v := M in(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 f Izlaz: vrednost pozicije 1. Ako je zavr sna pozicija vrati f (pozicija) 2. v := 3. Za svaku poziciju s do koje se mo ze do ci u jednom potezu: Ako je v < M ax(s, , ) onda v := M in(s, , ) Ako je v onda vrati v Ako je v < onda := v 4. vrati v Figure 8.5: Algoritam alfa-beta

137

8.4.5

Heuristika killer

U prethodnom poglavlju re ceno je da se ekasnost algortima mo ze popraviti voru potezi ispituju, po nekoj proceni, od najboljeg ka najloako se u svakom c ijem. Sli voru s cno, algoritam alfa-beta daje dobre razultate ako se u svakom c najpre ispituje najbolji potez. Naravno, nije mogu ce unapred znati koji je potez voru, ali se i dobrim procenama (izborom jednog od boljih najbolji u datom c poteza) posti zu dobri efekti. Heuristika killer (ponekad se naziv i w-killer) zas injenicama i ne koristi speci niva se na navedenim c cna znanja o igri (da bi se

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

138

8 Programiranje logi ckih igara

procenilo koji potezi su dobri). Neka se u pretra zivanju stabla alfa-beta algoritmom prvi put ocenjuje neki vor na dubini d (d 1) i neka je W najbolji pronadeni vora. c potez u smislu tog c voru na Taj potez zva cemo killer potezom za dubinu d. U svakom slede cem c dubini d, ispitivanje poteza po cinjemo sa killer potezom za tu dubinu. Ukoliko vor bolji neki drugi potez (W ), taj potez postaje killer se poka ze da je za taj c potez za dubinu d. Ukoliko se pretra zivanje stabla igre vr si do dubine dmax , opisana heuristika primenjuje se za sve dubine d takve da je 1 d dmax 1. Alfa-beta algoritam pro siren killer heuristikom zovemo alfa-beta/killer algortimom. Primetimo da se primenom killer heuristike ne menja rezultat alfa-beta algoritma (za istu vrednosnu funkciju i istu dubinu pretra zivanja) tj. dobija se potez sa istom ocenom (ne nu zno i isti potez) kao primenom algoritama alfa-beta ili mini e sa bitno manjim brojem ispitanih c vorova stabla. maks, i to naj ce sc Smisao killer heuristike je slede ci: ukoliko je u jednoj grani stabla na dubini d najbolji potez W , ima izgleda da je on najbolji (ako je legalan) i u drugim aha: neka igra granama stabla na istoj dubini. Ilustrujmo to na primeru s cu koji je na redu preti mat u slede cem potezu i neka nijedan njegov potez ne mo ze voru u kojem je na potezu proda otkloni tu pretnju. Pretra zivanjem stabla, u c tivnik, otkriva se matni potez i on postaje killer potez (za dubinu 1). Pri daljem pretra zivanju stabla, na dubini 1 najpre se ispituje taj potez i kako on vodi ini nepotrebnim dalje ispitivanje poteza u pobedi protivnika, alfa odsecanje c voru. Time se broj c vorova stabla koje u ovakvoj situaciji treba ispitati tom c drasti cno smanjuje. U poglavlju 8.2 re ceno je da mogu ci (ne samo legalni) potezi treba da budu organizovani u cikli cni niz, tj. da se je za svaki potez jednozna cno odreden slede ci. Taj zahtev je u direktnoj vezi sa killer heuristikom, jer se ispitivanje poteza u skladu sa njom, vr si po cev od killer poteza i, ispitav si (eventaulno) kako je mogu sve ostale, cikli cno vra ca do tog istog poteza. Takode, ce da killer voru odgovaraju potez u nekom c ce dubine nije legalan, generator treba da za svaki mogu ci potez, bio on u konkretnoj poziciji legalan ili ne, jednozna cno odreduje slede ci legalan potez.

8.4.6

Iterativni alfa-beta/killer algoritam

Za dubinu pretra zivanja dmax iterativni alfa-beta/killer algoritam se realizuje na slede ci na cin: najpre se vr si pretra zivanje stabla igre do dubine 1 (svejedno je kojim algoritmom, jer do dubine 1 nema alfa i beta odsecanja) i najbolji vor. Dalje se, pronadeni potez postaje killer potez za nivo 0 za po cetni c redom za dubine d (2 d dmax ) primenjuje algoritmom alfa-beta/killer. i vor. Kao najbolji potez dobijeni najbolji potez postaje killer potez za po cetni c bira se onaj dobijen zavr snom primenom alfa-beta/killer algoritma za dubinu dmax . Efekti iterativnog algoritma su, u svakoj iteraciji, sli cni efektima alfa-beta/killer to u iterativnom algoritmu postoji i killer potez za po algoritma, s tim s cetni vor u pretra c zivanju. Ima izgleda da je u svakoj iteraciji taj killer potez bolje odabran i da daje bolje rezultate (ve ci broj alfa i beta odsecanja). Druga va zna to za slu i dobra osobina iterativnog algoritma je to s caj prekida pretra zivanja, prakti cno u svakom trenutku ima smisleni rezultat kao najbolji pronadeni potez to izgleda za neku kompletno zavr senu iteraciju (videti poglavlje 8.4.8). Ono s

8.4 Sredi snjica

139

vorova ne uti kao mana algortima vi sestruko pretra zivanje nekih c ce bitno na perofrmanse algoritma. Naime, u odnosu na vreme utro seno za zavr snu iteraciju, vreme utro seno na sve ostale iteracije prakti cno je zanemarljivo. Pored e) dobro odabran killer potez za po vor, zavr toga, s obzirom na (naj ce sc cetni c sna e obi vorova od alfa-beta/killer iteracija c cno zahtevati ispitivanje manjeg broja c algoritma za istu dubinu. Naglasimo da se i primenom iterativnog alfa-beta/killer algoritma dobija najbolji potez (potez sa najboljom ocenom) za datu vrednosnu funkciju i datu to je va dubinu pretra zivanja s zno svojstvo algoritama minimaks, alfa-beta i alfa-beta/killer. Kao modikacija ovog algoritma, mo ze se vr siti samo prva i poslednja it esto dobija dovoljno dobar killer potez za eracija, jer se i prvom iteracijom c dubinu 0. U razli citim konkretnim situacijama, nekad je bolji jedan, a nekad to je, zbog mogu drugi algoritam, s tim s cnosti prekida, u praksi prihvatljiviji kompletni iterativni algoritam.

8.4.7

Stabilno pretra zivanje

U prethodnim algoritmima se uvek govorilo o pretra zivanju do ksne dubine. to funkcija evaluacije, koja se primenNedostatak takvog pristupa je u tome s vorove na najve juje na c coj dubini, ne razmatra mogu ce nastavke za pozicije na najve coj dubini. Te ocene, ma koliko funkcija evaluacije bila dobra, mogu ahu se npr. mo da budu varljive i da vode lo sem izboru poteza (u s ze izabrati vora u kojem se zarobljava propotez zbog nekog, naizgled dobrog, zavr snog c tivnikov top, ali se ne zna da nakon toga mo ze da bude izgubljena kraljica ili da sledi mat). Zbog toga se primenjuje ,,stabilno pretra zivanje(eng. quiscence searching): vr si se pretra zivanje do neke ksne dubine, ali se pretra zivanje vor ,,nestabilan. nastavlja i dalje ukoliko je, po nekom kriterijumu, zavr sni c mo Maksimalna dubina dodatnog pretra zivanja takode ze da bude ograni cena. Stabilno pretra zivanje mo ze se primenjivati u kombinaciji sa bilo kojim od do sada opisanih algoritama. Kriterijumi stabilnosti poteza odreduju se u skladu sa speci cnostima konkretne ahu, na primer, pozicija se mo igre, ali i za istu igru mogu biti razliki citi. U s ze ahom, ukoliko mu smatrati stabilnom ukoliko igra c koji je na potezu nije pod s kraljica ne ,,visi, ukoliko ne ,,visi nijedna protivnikova gura i ukoliko ne preti neposredno izvodenje nekog protivnikovog pe saka. Savremeni programi ah c esto pretra za s zuju stablo igre do dubine 4 (4 polupoteza tj. dva poteza) sa dodatnim, stabilnim pretra zivanjem do dubine 16 ili vi se.

8.4.8

Prekidi i vremenska ograni cenja

Va zan problem u programiranju logi ckih igara su i prekidi: potrebno je da program izabere smislen i dobar potez i ukoliko se pretra zivanje stabla igre to se izvr prekine pre nego s si kompletan algoritam. Potrebno je, dakle, da algoritam, i ukoliko je prekinuto njegovo normalno izvr savanje, vrati neki legalan to bolji. Prekidi mogu biti potez. Naravno, po zeljno je i da taj potez bude s izazvani akcijom korisnika ili ograni cenjima vremena raspolo zivog za jedan

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

140

8 Programiranje logi ckih igara

potez ili za celu partiju2 . Ve cina algoritama koji su do sada opisani u situacijama prekida mo ze da izabere teku ci najbolji potez. Ipak, kad algoritam nije kompletno izvr sen (i, na primer, ispitani su samo neki, povoljni odgovori protivnika), tako odabran potez mo ze biti veoma lo s. Za re savanje ovog problema najpogodniji je iterativni alfa-beta/killer algoritam, jer prakti cno u svakom esto jeste dotrenutku3 ima neku kompletno zavr senu iteraciju i njen rezultat c voljno dobar potez (iako, naravno, obi cno slabiji nego potez koji bi bio dobijen kompletno izvr senim algoritmom).

8.4.9

Slo zenost algoritama za pretra zivanje stabla igre

u algoritama za pretra Za formulisanje tvrdenja u vezi sa kompleksno sc zivanje stabla igre, potrebno je uvesti nekoliko denicija. Denicija 8.1 Uniformno stablo stepena n je stablo c iji svi c vorovi sem zavr snih imaji ta cno po n neposrednih potomaka. Denicija 8.2 (d, n, F )-stablo je uniformno stablo dubine d, gde je d paran broj i stepena n sa zavr snim c vorovima kojima su pridru zene vrednosti po raspodeli F . Denicija 8.3 Neka je A deterministi cki algoritam za pretra zivanje (d, n, F )-stabla i neka je IA (d, n, F ) o cekivani broj zavr snih c vorova koje algoritam A ispituje. Tada vrednost RA (n, F ) = lim [IA (d, n, F )]1/d
d

zovemo faktor grananja algoritma A. Faktor grananja je klju cna karakteristika algoritama za pretra zivanje stable vorova koje nekim algoritmom igre jer govori o o cekivanom broju zavr snih c treba ispitati. Naime, ukoliko je R faktor grananja nekog algoritma, onda je vorova za dubinu pretra o cekivani broj ispitanih c zivanja d jednak Rd . Ako se uniformno stablo stepena n i dubine d pretra zuje minimaks algorit vorova stabla, pa je faktor grananja algoritma mom, bi ce ispitano nd zavr snih c minimaks o cigledno jednak n, tj. Rminimax (n, F ) = n. Problem odredivanja faktora grananja alfa-beta algoritma mnogo je slo zeniji. Slagle i Dixon pokazali su 1969. godine da alfa-beta algoritam mora da ispita vorova uniformnog stabla stepena n i dubine vi se od 2n[d/2] 1 zavr snih c d, ali da u najlo sijoj situaciji mo ze da ispita i svih nd [?]. Knuth i Moore su 1975. godine [?] dokazali da faktor grananja za jednu pojednostavljenu verziju algoritma alfa-beta (bez dubokih odsecanja) pripada klasi funkcija O(n/ log n). Kona can odgovor na pitanje o faktoru grananja alfa-beta algoritama daje slede ce teorema Judea Pearl-a iz 1982. godine [?].
2 Ukoliko je ograni ceno vreme raspolo zivo za celu partiju, program mora i da ga ekonomi cno deli na procenjeni broj poteza. 3 Prva iteracija, za gotovo sve igre i na gotovo svim ra cunarima, mo ze biti zavr sena u deli cu sekunde.

8.5 Zavr snica

141

Teorema 8.1 Faktor grananja alfa-beta algoritma za neprekidno-vrednosno uniformno stablo stepena n jednak je n R = 1 n gde je n pozitivni koren jedna cine xn + x 1 = 0. Za n 1000 vrednost nosti n3/4 , tj.
n 1n

pribli zno je jednaka (0.925)n0.747 i, grubo, vred-

R =

n (0.925)n0.747 n3/4 . 1 n

Posledicu navedene teoreme je i slede ce, izuzetno va zno tvrdenje [?]). Teorema 8.2 Alfa-beta algoritam je asimptotski optimalan algoritam za pretra zivanje stabla igre. Navedeno tvrdenje zna ci da ne postoji algoritam za pretra zivanje stabla vorova nego igre koji, u op stem slu caju, asimptotski ispituje manje zavr snih c algoritam alfa-beta. Algoritmi, koji su opisani u prethodnom delu teksta i e daju koji predstavljaju unapredenja algoritma alfa-beta u praksi zaista naj ce sc bolje rezultate nego algoritam alfa-beta i to je uslovljeno prirodom stabla igre vorove (koja nije slu i funkcijom koja ocenjuje zavr sne c cajna). Ipak, faktori grananja ovih algoritama se ne razlikuju od faktora grananja alfa-beta algo vorova ritma i u op stem slu caju oni ne garantuju manje ispitanih zavr snih c stabla nego algoritam alfa-beta. U praksi, faktor grananja alfa-beta algoritma za ve cinu diskretno-vrednosnih stabala jednak je R = n1/2 .

8.5

Zavr snica

to je s ah zavr U igrama kao s snica se, po svojim karakteristikama i po znanjima koje se koriste, bitno razlikuje od sredi snjice, pa iziskuje i posebne pristupe. U nekim od takvih igara, i u zavr snici se uspe sno mogu koristiti algo enje posebne ili vi ritmi i tehnike koje se koriste u sredi snjici, ali uz kori sc se posebnih funkcija evaluacije. U onim drugim igrama, re senja koja se zasnivaju na dubinskom pretra zivanju ne daju dobre rezultate u zavr snici jer kvalitetna igre iziskuje jako veliku dubinu pretra zivanja. Problem zavr snice je jo s te zi ako se postavi zahtev za korektnom ili optimalnom igrom/taktikom4 . Ukoliko se, tehnikama koje se koriste u sredi snici, sistematsko pretra zivanje vr si do vorova time se obezbeduje zavr snih c optimalna strategija (naravno, za ve cinu igara to je u praksi nemogu ce izvesti). Tako, na primer, optimalnu igru u ahovskoj zavr s snici prakti cno je nemogu ce obezbediti (za uobi cajena vremenska ograni cenja), jer su mogu ce zavr snice u kojoj igra c ima dobijenu poziciju, ali ne mo ze da matira protivnika u manje od dvadeset poteza, pa takva
taktiku ka zemo da je korektna ukoliko u dobijenoj poziciji sigurno vodi do pobede i ukoliko pri (teorijskoj) remipoziciji sigurno vodi bar remiju. Za taktiku ka zemo da je optimalna ukoliko u dobijenoj poziciji vodi pobedi u najmanjem broju poteza, odnosno ukoliko u izgubljenoj poziciji poraz maksimalno odla ze. O cigledno, ako je taktika optimalna, onda je i korektna, ali ne va zi obratno.
4 Za

142

8 Programiranje logi ckih igara

zavr snica za optimalnu igru zahteva dubinu pretra zivanja ve cu od dvadeset. Sli cni problemi va ze i za korektnu taktiku. Neprimenljivost dubinskog pretra zivanja u zavr snici uslovljava razvoj kval itativno novih tehnika prilagodenih konkretnim igrama. Neke od njih zasnovane su na tehnikama koje se koriste u re savanju problema (u razli citim domenima ve sta cke inteligencije) ili u automatskom dokazivanju teorema. Kako u ovoj problematici (jo s) nisu data op sta valjana re senja, kako postoje ca re senja itavih matemati predstavljaju primene c ckih teorija na domen igara, u nastavku e biti opisani samo neki od algoritama i ideja koji se mogu ekasno primenjic ahovskim zavr vati u automatskom izboru poteza u s snicama.

8.5.1

Skupovi pozicija kao klase ekvivalencija

M.A.Bramer (Faculty of Mathematics, Milton Keynes, England) je 1975. (v. [?]) fomulisao slede ci op sti algoritam za zavr snicu: (a) generi si skup svih legalnih poteza skup Q; (b) odaberi najbolje ocenjeni elemenat skupa Q element q ; (c) odigraj potez q; Klju cni korak algoritma (korak (b)) zasnovan je na slede coj ideji: neka je skup Q skup svih regularnih pozicija u igri i neka je svaka od tih pozicija svrstana u ta cno jedan od podskupova koji razla zu Q (to razlaganje deni se se u skladu sa prirodom konkretne igre tako da istom skupu pripadaju su stinski ahu, sve pozicije KPK); svakom od tih skupova (odnosno sli cne pozicije npr. u s klasa ekvivalencije) pridru zena je jedinstvena ocena i jedinstvena funkcija evaluacije. Ocenjivanje koje se pominje u koraku (b) Bramerovog algoritma svodi se na sabiranje ocene klase pozicija i ocene pozicije koja toj klasi pripada. Na vora i to bez ikakvog pretaj na cin ocenjuju se svi legalni potezi iz datog c tra zivanja preko dubine 1. Kao najbolji bira se potez kojem odgovara najve ca zbirna ocena. Opisani algoritam ima brojne varijacije (uklju cuju ci vari jacije uporedivanja elemenata iz razli citih klasa ekvivalencije, provere izabranog poteza pretra zivanjem u dubinu itd.). Bramerov algoritam, razlaganjem skupa problema na klase sli cnih prob ovekovom na lema, u prili cnoj meri prirodno odgovara c cinu razmi sljanja. Pored toga, algoritam mo ze biti i veoma ekasan, jer poredenje poteza vr si po klju cnim dva ahu, po rastojanju izmedu parametrima za konkretnu zavr snicu (npr, u s kralja), a ne po op stim kriterijumima koji se koriste u sredi snici. Algoritam zahteva kompleksno denisanje svih relevantnih klasa pozicija u zavr snici i svih odgovaraju cih funkcija evaluacije, ali je i pored toga verovatno najprihvatljivije e kori eno re i naj ce sc sc senje za automatski izbor poteza u zavr snici.

8.5.2

Tekstovi saveta

ahovskim zavr Jedan od koncepata koji se primenjuju u s snicama je i tzv. koncept tekstova saveta (eng. advice texts; autor Ivan Bratko, Ljubljana, Slovenija; v. [?]). Navedimo, kao ilustraciju, tekst saveta za zavr snicu KRK kralj i top protiv kralja:

8.6 Implementaciona pitanja 1. ,,MAT: Proveri da li je mogu ce matirati protivnika u dva poteza;

143

na 2. ,,STEZANJE: Ako (1) nije mogu ce, pronadi cin da topom smanji s prostor na tabli dostupan protivni ckom kralju; na 3. ,,PRIBLIZAVANJE: Ako (1) i (2) nije mogu ce, pronadi cin da svog kralja pribli zi s protivni ckom; 4. ,,ZADRZAVANJE: Ako nisu primenljivi delovi saveta (1), (2) i (3), pronadi potez koji zadr zava trenutno stanje u smislu (2) i (3) (tj. odaberi potez ekanja); c 5. ,,RAZDVAJANJE: Ako nisu primenljivi delovi saveta (1), (2), (3) i (4), potez kojim se dobija pozicija u kojoj top razdvaja dva kralja, pronadi bilo vertikalno ili horizontalno. to iziskuje Nedostatak koncepta ilustrovanog navedenim primerom je u tome s posebne tekstove saveta za sve su stinski razli cite zavr snice. Pored toga, za sve tipove zavr snica nije jednostavno (ili nije mogu ce) napraviti koncizan i ekasan tekst saveta.

8.6

Implementaciona pitanja

U ovom poglavlju bi ce re ci o polaznim pitanjima u pravljenju programa za logi cke igre: o strukturama podataka koje se koriste, o njihovim medusobnim bi vezama i organizaciji na nivou programa. Takode, ce re ci i o proveri legalnosti (korektnosti) poteza i o generatorima legalnih poteza. Izbor re senja ovih problema od klju cne je va znosti za svaki pojedina cni program i on determini se itav koncept programa. gotovo c Kao kod gotovo svih oblasti programiranja, i kod programiranja igara izbor e pitanje od izuzetne va struktura podataka je naj ce sc znosti. Od pravilnog izbora struktura podataka neposredno zavisi ne samo jednostavnost programa, ve c i njegova ekasnost. Pored toga, dobra po cetna organizacija podataka esto prirodno odreduje itav koncept programa i re c c savanje mnogih drugih su stinskih problema. U programima za ve cinu logi ckih igara, zbog velikog broja poteza koje je potrebno ispitivati, neophodna je velika brzina izvr savanja pojedinih modula (i pored sve br zih ra cunara). Zato je potrebno podatke organizovati tako da irem smislu te re to jednostavnija izra cunavanja (u s ci) koja se koriste budu s i br za. U tom smislu, kao dobar okvir name ce se organizacija podataka koja se oslanja na bitovsku aritmetiku (umesto na celobrojnu ili realnu). I za sva izra cunavanja po zeljno je koristiti bitovsku aritmetiku, a tamo gde je to nemogu ce ili nepodesno celobrojnu. Kod svih igara, jedna od osnovnih struktura podataka je struktura koja odgovara potezu. Kod igara koje se igraju na tabli, ta struktura je, o cigledno, u neposrednoj vezi sa strukturom koja opisuje tablu. Tablu igre nm u programu iji su elementi tipa char ili mo zemo opisati kao tabelu, odnosno matricu n m c int5 . U skladu sa navedenom idejom o upotrebi bitovske aritmetike, mo ze se
5 U daljem tekstu c emo, kada govorimo o nekim konkretnim realizacijama na ra cunaru, ako ne naglasimo druga cije, podrazumevati da se radi o re senjima u okviru programskog jezika C.

144

8 Programiranje logi ckih igara

kao prihvatljivo re senje za opis table izabrati i niz bitovskih matrica. Tako npr. ahu mo us ze se za svaki tip gura (i to za oba igra ca) koristiti po jedna bitovska tabela 8 8 u kojoj bi vrednost 1 ozna cavala da igra c na tom polju ima guru tog tipa, a vrednost 0 sve ostale mogu cnosti. Na taj na cin jedna tabela 8 8 est tipova gura) tabela 8 8 c iji bila bi zamenjena sa 12 (svaki igra c ima po s to su elementi bitovskog tipa. Dodatna pogodna okolnost u ovom pristupu je s opisana bitovska tabela mo ze da se opi se 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 mo zda komplikovaniji, omogu cava brojna jednostavna i brza re senja kod provere legalnosti poteza, generisanja legalnih poteza i sl. Struktura koja opisuje potez treba da sadr zi informacije dovoljne da bi se potez odigrao, ali po zeljno je (mada ne i neophodno) i da bi se eventualno to je npr. igra iks-oks dovoljne su inforvratio. Kod jednostavnih igara, kao s macije o tome koji je igra c potez odigrao6 i na kojem polju. Kod igre reversi, to vi se nisu dovoljne informacije, jer na osnovu njih ne mo ze biti vra cen potez. Naime, na osnovu informacije o igra cu i polju ne mo ze se rekonstruisati pozicija pre tog poteza, pa struktura koja opisuje potez mora da sadr zi i listu z etona aha je situacija jo koji pri tom potezu menjaju boju. Kod s s slo zenija, jer gure se pomeraju (a ne dolaze niotkuda kao u igrama iks-oks i reversi), pa pored oznake igra ca, struktura koja opisuje potez mora da sadr zi informacije i o polaznom i o odredi snom polju. Pored toga, radi mogu cnosti vra canja poteza, ta struktura mora da sadr zi i informaciju o (eventualno) pojedenoj guri, o (eventualno) izvedenom pe saku (i o guri u koju je promovisan), kao i ine formaciju o (eventualno) primenjenom pravilu en-passant7 . Na cin na koji c navedeni podaci da budu opisani direktno je uslovljen strukturom koja opisuje tablu igre. Ukoliko je odabran pristup sa bitovskom reprezentacijom table i poteza, operacije odigravanja i vra canja poteza i sli cne svodi ce se na jednostavne i brze logi cke operacije AND, OR, XOR, NOT i njihove kombinacije. Program za igru mo ze biti tako koncipiran da se potezi koji se odigravaju ne pamte niti povezuju na bilo koji na cin. Medutim, ukoliko se z cnost eli mogu vra canja poteza (i ako je ta mogu cnost pripremljena pravilnim izborom strukture koja opisuje potez tako da sadr zi sve potrebne informacije), potezi se tokom partije sme staju u povezanu listu (LIFO tipa, tj. stek). Pored toga, ukoliko se z cnost ponovnog reprodukovanja partije ili njenog memo eli i mogu risanja, poteze tokom partije treba sme stati u dvostruko povezanu listu. Na nivou programa, opisane strukture treba da budu organizovane tako dva igra da omogu cavaju igru izmedu ca, kao i mogu cnost da program zameni bilo kog igra ca (u celom toku partije, u pojedina cnom potezu ili samo za davanje preporuke). Provera legalnosti poteza vr si se u skladu sa pravilima pojedine igre, a u konkretnom programu, i u skladu sa izabranim strukturama podataka. Na termina mogu samom po cetku, naglasimo da pravimo razliku izmedu ci potezi i legalni potezi: mogu cim potezima nazivamo one koji su legalni u bar jednoj regularnoj poziciji igre. Ako sam program u cestvuje u partiji kao jedan od igra ca i ako treba da
6 Podatak o tome koji je igra esto nije neophodan, jer se potezi prvog i drugog c odigrao potez c igra ca smenjuju naizmeni cno. 7 Rokade se mogu opisati samo preko poteza kralja, pa nije potrebno da informacija o rokadi bude sadr zana u strukturi potez.

8.6 Implementaciona pitanja

145

odabere svoj potez, koristi se tzv. generator legalnih poteza. Pre svega u strategijama koje se koriste u sredi snjici partije, vr si se pretra zivanje legalnih poteza i po nekom kriterujumu bira se najbolji potez. Kako se pri tome ide i po nekoliko poteza u dubinu, o cigledna je neophodnost da generator legalnih poteza (koji se oslanja na modul za proveru legalnosti) radi izuzetno brzo. to je Moduli za proveru legalnosti i generisanje poteza treba, dakle, da budu s mogu ce jednostavniji i br zi. Ukoliko izabrane strukture podataka to dozvoljavaju, po zeljno je da ovi moduli rade koriste ci bitovsku aritmetiku. Po zeljno je da se legalni potezi generi su cikli cno tj. da se za svaki legalan potez mo ze jednozna cno odrediti slede ci legalan potez. Ovo je potrebno kako bi se obezbedilo brzo ispitivanje svih legalnih poteza bez obzira na to od kojeg ena u poteza je ispitivanje po celo. Takva organizacija legalnih poteza bi ce kori sc emu c e biti re algoritmima za sredi snjicu partije, o c ci u narednim poglavljima.

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

146

8 Programiranje logi ckih igara

Glava 9

Genetski algoritmi
Genetski algoritmi (GA) su familija op stih heuristi ckih algoritama globalne iroj grupi pretrage zasnovanih na Darvinovoj ideji evolucije. Oni pripadaju s evolucionih algoritama koji koriste tehnike inspirisane evolucionom biologi to su nasledivanje, jom, kao s mutacija, selekcija, ukr stanje itd. Genetski algoritmi se mogu koristiti za nala zenje ta cnog ili pribli znog re senja nekog problema optimizacije ili pretrage. Mada je jo s pedesetih godina dvadesetog veka bilo ra cunarskih simulacija zasnovanih na evoluciji, smatra se da je moderne genetske algoritme uveo D zon Holand sedamdesetih godina dvadesetog veka [?], a postali su popularni kasnih osamdesetih godina. Tokom prethodnih dvadesetak godina ostvaren je veliki napredak u razvoju irokom genetskih algoritama. Genetski algoritmi se uspe sno primenjuju na s esto NP-kompletnih ili te skupu problema, c zih problema, za koje ne postoje ekasna re senja. Neki od tih problema su problem nala zenja najkra ceg puta u grafu, problem trgova ckog putnika, logi ckim igrama itd. Genetski algoritmi imaju uspe sne primene u ekonomiji, tehnici, bioinformatici, hemiji, zici itd. Popularnost genetskih algoritama poti ce iz njihove uspe snosti, ali i jednostavnosti. Naime, ideje na kojima su genetski algoritmi zasnovani su jednostavne za razumevanje i implementiranje, a daju op sti sistem pretrage primenjljiv na veliki broj problema. Uporedo sa nala zenjem brojnih novih primena i unapredivanjem algoritma, razvijaju se i teorijski osnove genetskih algoritama, ali jo s uvek sa nedovoljno uspeha. Genetski algoritmi uspe sno se primenjuju u optimizacionim problemima esto nalaze globalne u kojima postoji vi se lokalnih ekstremuma. Ipak, iako c eksremume, za genetske algoritme ne postoji nikakva garancija o tome da li je u pitanju lokalni estremum niti o tome sa kolikom gre skom je odredeno re senje.

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 pre zivljavaju e isto tako ili bolje prilagodeno i ostavljaju potomstvo koje je, naj ce sc okolini. elija svakog z Svaka c zi hromozome. Svaki hromozom ivog organizma sadr sadr zi skup gena blokove DNK. Svaki gen odreduje neku osobinu orga esto naziva genotip, a familija osobina fenotip. Renizma. Familija gene se c

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

148

9 Genetski algoritmi

produkcija organizama uklju cuje kombinovanje gena roditelja i, pored toga, okolini. male koli cine mutacije. Jedinka mo ze biti manje ili vi se prilagoden Jedinka koja je bolje prilagoddena okolini u kojoj z cu verovatno cu ivi ima ve pre zivljavanja i ostavljanja potomstva, a time i preno senja 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. osobine okolini. to bolje prilagoden organizama) tako da bude s

9.2

Osnovni genetski algoritam

Genetski algoritmi se implementiraju kao ra cunarska simulacija u kojoj populacija apstraktno reprezentovanih jedinki (nazvanih hromozomi ili genotip) koje su kandidati za re senje za optimizacioni problem (to mo ze biti numeri cka vrednost, matemati cka funkcija, put u grafu itd.), treba da se postupno pribli zava boljim re senjima. Jedinke su obi cno reprezentovane nizovima nula i jedinica, ali su mogu ce i druge reprezentacije (za probleme u kojem binarna reprezentacija nije pogodna). Postupak se odvija kroz generacije. Po cetna ine slu generacija obi cno c cajno generisane jedinki ali mo ze da se zasniva i na jedinkama koje su (grubi) rezultat neke druge optimizacione metode. Obi cno u svakoj generaciji postoji isti broj jedinki i za svaku od njih se ra cuna njen kvalitet (analogon prilagodenosti okolini). Funkcija koja pridru zuje te vrednosti jedinkama naziva se funkcija prilagodenosti , funkcija kvaliteta, funkcija evaluacije1 ili funkcija cilja. Ova funkcija ima klju cnu ulogu u algoritmu. Iz jedne generacije se stohasti cki, na osnovu vrednosti funkcije prilagodenosti, e biti biraju jedinke (sa ve com verovatno com se biraju one kvalitetnije) koje c ene za stvaranje novih jedinki (poprenete u slede cu generaciju i biti iskori sc tomstva). Ovaj postupak izbora jedinki se naziva selekcija. Nad izabranim jedinkama primenjuju se genetski operatori ukr stanja2 i mutacije i tako dobijaju nove jedinke. Ukr stanjem se od dve jedinke dobija nova (ili dve nove) sa genetskim materijalom koji je dobijen neposredno od roditelja, tj. od polaznih jedinki. Mutacijom se modikuje deo polazne jedinke (i ona opona sa mutacije koje se u prirodi javljaju pod uticajem spoljnih faktora). U svakoj generaciji, dakle, dolazi do rekombinacije gena zbog koje se javlja sli cnost sa roditeljskim jedinkama iste generacije. Generalno, neke jedinkama, ali i razli citost medu jedinke u novoj generaciji mogu biti bolje ali neke mogu biti lo sije od jedinki iz prethodne generacija, ali se o cekuje da se prose cna prilagodenost popravlja. Tako dobijena nova generacija koristi se za slede cu iteraciju algoritma. Postupak se zauastavlja kada je dostignut zadati broj generacija, kada je dostignut zadati nivo kvaliteta populacije (najprilagodenije jedinke u njoj ili nekog procenta najprilagodenijih jedinki) ili kada je ispunjen neki drugi uslov. Ukoliko je dostignut zadati broj generacija, nema nikakvih garancija da teku ca najkvalitetnija jedinka ima zadovoljavaju cu prilagodenost. Op sti genetski algoritam prikazan je na slici .
1 Ponekad se termin funkcija evaluacije koristi za funkciju koja meri performanse genetskog algoritma sa nekim ksiranim parametrima. 2 Ovaj termin nije sasvim u skladu sa zna cenjem koji ima u biologiji.

9.3 Reprezentacija jedinki Algoritam: Op sti genetski algoritam Ulaz: Izlaz: najkvalitetnija jedinka u teku coj populaciji 1. Generi si po cetnu populaciju potencijalnih re senja; 2. Izra cunaj prilagoenost svake jedinke u populaciji; 3. Izvr savaj slede cu petlju sve dok nije zadovoljen uslov zaustavljanja: Izaberi iz populacije skup jedinki za reprodukciju; Generi si novu generaciju, primeniv si nad izabranim jedinkama proces reprodukcije (tj. genetske operatore ukr stanje i mutaciju); Izra cunaj prilagoenost novogenerisanih jedinki; Zameni najlo sije jedinke u populaciji novogenerisanim jedinkama. 4. vrati najkvalitetniju jedinku u teku coj populaciji Figure 9.1: Op sti genetski algoritam

149

Da bi navedeni op sti algoritam bio specikovan potrebno je denisati reprezentaciju domena tj. skupa jedinki i funkciju kvaliteta. Postoje mnoge varijante genetskih algoritama, pa i navedeni op sti algori mo tam takode ze biti variran. Na primer, mogu ce je ne prenositi jedinke iz itavu novu generaciju dobiti ukr jedne generacije u drugu, ve cc stanjem od izabranih jedinki iz prethodne generacije.

9.3

Reprezentacija jedinki

Jedinke mogu biti reprezentovane proizvoljnom strukturom podataka koja opisuje njihova svojstva (koju zovemo hromozom). Neophodno je da hromozom mo ze da opi se mogu ce re senje razmatranog problema i da se nad njim deni su genetski operatori (ukr stanje i mutacija). Genetski operatori treba da budu denisani tako da se njima ne dobijaju jedinke koje ne predstavljaju mogu ca re senja (na primer, nelegalne puteve u grafu), jer bi one samo naru savale performanse algoritma. Pogodno odabrana reprezentacija mo ze bitno uticati na ekasnost algoritma.

9.3.1

Binarna reprezentacija

e i najuspe ena reprezentacija jedinki je u vidu nizova bitova. Naj ce sc snije kori sc Svaki bit u takvoj reprezentaciji zovemo gen. Dublja priroda binarne reprezentacije zavisi od konkretnog problema. Na primer, ako je du zina hromozoma n (bitova) i ako je prostor mogu cih re senja interval realnih brojeva [a, b], onda je potrebno nizova n bitova i realnih brojeva iz datog intervala. uspostaviti vezu izmedu e binarna reprezentacija 000 . . . 0 odgovarati broju a, a binarna reprezentacija Tako c
n

150

9 Genetski algoritmi

000 . . . 0 i 111 . . . 1 111 . . . 1 broju b. Broju x sa binarnom reprezentacijom izmedu


n n n

odgovara realni broj a+

x (x a) 2n 1

S druge strane, realnom broju x iz intervala [a, b] pridru zujemo vektor koji predstavlja binarnu reprezentaciju broja xa n (2 1) . ba Primer 9.1 Pretpostavimo da naftnu platformu treba postaviti na pogodnom mestu na ta putu izmedu caka A i B , koji je du zine 5000m. Lokacija platofrme je pogodnija ukoliko na tom mestu postoje ve ce rezerve nafte. U biranju lokacije mogu ce je meriti pos A i B . Mogu toje ce rezerve nafte na bilo kojoj ta cki izmedu ca re senja mogu se reprezentovati nizovima bitova du zine 10, tj. brojevima od 0 do 1023. Ta cki A tada odgovara broj 0 i reprezentacija 0000000000, a ta cki B broj 1023 i reprezentacija 1111111111. Ta cki C na rastojanju 1320m od ta cke A odgovara vrednost 1023 (1320/5000) 270 i reprezentacija 0100001110, a ta cki D na rastojanju 3128m od ta cke A odgovara vrednost 1023 (3128/5000) 640 i reprezentacija 1010000000.

A (0000000000) 0 1000

C (0100001110) 1320 2000

D (1010000000) 3000 3128 4000

B (1111111111) 5000

100

200 270 300

400

500

600 640 700

800

900

1000

Za vrednost funkcije prilagodenosti jedne ta cke mo ze se uzeti rezerva nafte izmerena u toj ta ci.

9.4

Funkcija prilagodenosti

Funkcija prilagodenosti daje ocenu kvaliteta jedinke. Ukoliko je zadatak odred iti maksimum neke funkcije, onda je prirodna funkcija prilagodenosti s ama ta funkcija. Pogodan izbor funkcije prilagodenosti je od izuzetne va znosti

9.5 Inicijalizacija i zaustavljanje

151

za ekasnost algoritma. Ne postoje nikakvi op sti uslovi koje funkcija pri lagodenosti treba da zadovoljava (sem da je denisana za sve mogu ce jedinke), esto ekasniji za funkcije koje zadovoljavaju neke speci mada je algoritam c cne je vrednost funkcije prilagodenosti e uslove. Sto za neku jedinku ve ca, to c bit ve ca verovatno ca da se ta jedinka koristi za generisanje slede ce generacije. Tokom rada algoritma (tj. tokom ,,procesa evolucije) generi su se nove gen emu se o eracije, pri c cekuje da je ukupna prilagodenost (pa i prose cna 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]. Funkcija je denisana za sve elemente datog intervala, ali nije nu zno ni neprekidna, ni diferen cijabilna. Genetski algoritam mogu ce je primeniti tako da se za funkciju prilagodenosti koristi upravo funkcija f , a da se za reprezentaciju koristi bitovska reprezentacija (na na cin 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, ini vektor binarnih vektora. U toku re c savanja jednog problema, obi cno sve generacije imaju isti broj jedinki. Taj broj, veli cina populacije, je parametar esto nekoliko desetina ili stotina. algoritma i on je c Proces inicijalizacije, tj. proces generisanja po cetne populacije je jednosta itav van. Naj se ce se po cetna populacija generi se slu cajno (tako da pokriva c prostor pretrage). Ukoliko se koristi bitovska reprezentacija, jedinke po cetne generacije se generi su kao slu cajni brojevi u intervalu [0, 2n 1], gde je n du zina hromozoma u izabranoj reprezentaciji. Dodatno, u po cetnu populaciju mogu biti dodate neke speci cne jedinke (na primer, iz delova prostora pretrage za itava po koje se veruje da sadr zi optimalna re senja) ili c cetna populacija mo ze biti generisana koriste ci neki drugi optimizacioni metod.

9.6

Selekcija

uvanje i preno Selekcija obezbeduje c senje dobrih osobina populacije (tj. dobrog genetskog materijala) na slede cu generaciju. U svakoj generaciji, deo jedinki se izdvaja za reprodukciju i generisanja nove generacije. Izdvajanje e u jedinki koje c cestovavati u reprodukciji zasniva se na funkciji prilagodenosti i, generalno, prilagodenije jedinke imaju ve cu verovatno cu da imaju potomu stvo. U najjednostavnijim pristupima biraju se jedinke sa najve com vredno sc funkcije prilagodenosti. U drugim pristupima se se jedinke biraju slu cajno, emu je mogu ali sa verovatno cama koje su izvedene iz prilagodenosti, pri c ce da budu izabrane i neke lo sije prilagodene jedinke (to mo ze da pomogne u odr zvanju genetske raznolikosti i, dalje, u spre cavanju prerane konvergencije ka nekom lokalnom optimumu). Najpopularnije strategije selekcije su ruletska i turnirska selekcija. U bilo kojoj strategiji selekcije postoji opasnost da se neka kvalitetna jedinka izgubi tokom evolucionog procesa. Elitizam je varijacija procesa selekcije u ko titi od eliminjoj se najbolja jedinka (ili nekoliko najboljih jedinki) u generaciji s isanja ili bilo kakvih izmena i takva prenosi u slede cu generaciju.

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

152

9 Genetski algoritmi

9.6.1

Ruletska selekcija

Ruletska selekcija (eng. roulette wheel selection) je proces selekcije u kojem anse da u ve ce s cestvuju u reprodukciji imaju prilagodenije jedinke. Ako je f (i) vrednost funkcije prilagodenosti za jedinku i, a N broj jedinki u e jedinka i biti izabrana da u populaciji, verovatno ca da c cestvuje u reprodukciji jednaka je f (i) pi = N j f (j ) Naziv ruletske selekcije poti ce od analogije koje se mo ze napraviti sa rule irine proporcionalne verovatno tom. Ukoliko polja ruleta imaju s cama jedinki populacije, onda je proces biranja m jedinki za reprodukciju analogan odigravanja m partija ruleta. Primer 9.3 Pretpostavimo da populacija ima osam jedinki: a, b, c, d, e, f, g, h i da su njihove prilagodenosti redom 0.10, 0.30, 0.06, 0.10, 0.40, 0.24, 0.60, 0.20. Ukupna prilogodenost generacije jednaka je 2.00. Slede ca tabela prikazuje verovatno ce izbora jedinki u ruletskoj selekciji: jedinka prilagodenost verovatno ca izbora a 0.10 0.05 b 0.30 0.15 c 0.06 0.03 d 0.10 0.05 e 0.40 0.20 f 0.24 0.12 g 0.60 0.30 h 0.20 0.10

Slede ca slika ilustruje, u formi ruleta, verovatno ce izbora koje su pridru zene jedinkama.

0.05

0.03 0.15

0.20

d c e b

a
0.12

0.05

h g
0.30

0.10

U opisanom pristupu, podrazumeva da funkcija prilagodenosti ima samo pozitivne vrednosti. Ukoliko funkcija ne ispunjava taj uslov, mora se trans formisati u drugu funkciju prilagodenosti. Alternativno, jedinke se mogu sor tirati (opadaju ce) po vrednosti funkcije prilagodenosti i onda verovatno ce izbora mogu da im budu pridru zene po nekoj (opadaju coj) distribuciji.

9.7 Reprodukcija i genetski operatori

153

U ruletskoj selekciji mogu ce je da jedna jedinka bude vi se puta izabrana da u cestvuje u slede coj generaciji i reprodukciji. Prevelik broj ponavljanja istih jedinki lo se uti ce na performanse algoritma.

9.6.2

Turnirska selekcija

anse za pobedu U turnirskoj selekciji, jedinke ,,odigravaju turnire u kojima ve ce s u. (tj. za prelazak u narednu generaciju) imaju one sa boljom prilagodeno sc Veli cina turnira k i verovatno ca p su parametari procesa turnirske selekcije. Za jedan turnir bira se slu cajno k jedinki iz populacije. Nakon toga, one se sortiraju po vrednosti funkcije prilagodenosti i i-ta jedinka u tako sortiranom nizu se bira sa verovatno com p(1 p)i1 . Ukoliko se u procesu selekcije koristi ve ca veli cina turnira, onda nekvalitetne anse da budu izabrane. Selekcija sa veli jedinke imaju manje s cinom turnira 1 ekvivalentna je slu cajnoj selekciji. U deterministi ckoj turnirskoj selekciji (p = 1) bira se najbolja jedinka u svakom turniru. Jedinkama koje su jednom izabrane mo ze se zabraniti u cestvovanje u daljim turnirima. Turnirska selekcija se mo ze ekasno implementirati na paralelnim arhitekturama.

9.7

Reprodukcija i genetski operatori

U reprodukciji u cestvuju jedinke koje su izabrane u procesu selekcije. Proces reprodukcije kontroli su dva genetska operatora: ukr stanje i mutacija.

9.7.1

Ukr stanje

U ukr stanju (eng. crossover) u cestvuju dve jedinke koje se nazivaju roditelji. Rezultat ukr stanja je jedna nova jedinka ili dve nove jedinke koje zovemo deca. O cekivano je da deca nasleduju osobine roditelja, uklju cuju ci njihovu prilagodenost, pa i da imaju bolju prilagodenost od svojih roditelja. Postoji vi se jednostavnih varijanti ukr stanja kada se koristi binarna reprezentacija. U jednoj varijanti dovoljno je izabrati ta cke prekida i prekombinovati ni zove bitova jedno dete deo od jedne ta cke prekida do slede ce nasleduje od jednog roditelja, a naredni deo od drugog. Ukr stanje mo ze koristiti proizvoljan broj ta caka prekida (s tim da je manji od du zine hromozoma). Slike 9.2 i 9.3 ilustruju ukr stanje sa jednom i sa dve ta cke prekida.
roditelj 1 roditelj 2 ta cka prekida dete 1 dete 2

Figure 9.2: Ukr stanje sa jednom ta cke prekida

154

9 Genetski algoritmi

roditelj 1 roditelj 2 ta cke prekida dete 1 dete 2

Figure 9.3: Ukr stanje sa dve ta cke prekida Uniformno ukr stanje tipi cno daje dva deteta. Kod ovog ukr stanja svaki bit prvog roditelja se sa verovatno com p prenosi na prvo dete i sa verovatno com emu dete koje nije izabrano nasleduje 1 p na drugo dete (pri c bit drugog roditelja). Verovatno ca p je obi cno jednaka 0.5, ali mo ze biti i druga cija. U poluuniformnom ukr stanju, kombinuju se ta cno pola bitova koji se razlikuju kod roditelja. Dakle, najpre se ra cuna Hamming rastojanje (broj razli citih roditelja i deli se sa dva. Dobijena vrednost daje broj bitova koji bitova) izmedu e se prenositi na decu kao u shemi uniformnog ukr c stanja. Ukr stanje se primenjuje na slede ci na cin: iz skupa jedinki izabranih u procesu selekcije biraju se dve razli cite i ukr staju sa zadatom verovatno com (obi cno 0.6 i 0.9. Ta izmedu cke prekida se biraju slu cajno iz skupa svih mogu cih ta caka prekida.

9.7.2

Mutacija

Mutacija je operator koji u binarnoj reprezentaciji menja jedan ili vi se slu cajno odabranih gena. Od jedne jedinke dobija se jedna nova jedinka. Verovatno ca e neki bit neke jedinke populacije biti promenjen je parametar algoritma i da c 0.01 i 0.001. Mutacija se primenjuje nakon procesa ukr esto je izmedu c stanja. Uloga mutacija u genetskim algoritmima je da spre ci da jedinke u populaciji postanu suvi se sli cne i da pomogne u obnavljanju izgubljenog genetskog materijala. Na primer, ukoliko u jednoj generaciji sve jedinke imaju istu vrednost jednog gena, onda taj gen samo ukr stanjem nikada ne bi mogao da esto se promeni. Kontrolisano podsticanje genetske raznolikosti mutacijom c omogu cava izbegavanje lokalnih ekstremuma. Mutacije, naime, omogu cavaju e se nai razmatranje novih delova prostrora pretrage u nadi da c ci na globalnim ekstremum. Dovoljno je da se jedna jedinka pribli zi globalnom ekstremumu, pa da za nekoliko generacija sve jedinke budu u tom delu prostora pretrage. Ukoliko je verovatno ca mutacije za svaki bit jednaka jedinici, onda se algoritam pretvara u slu cajnu pretragu. Ukoliko je ta verovatno ca jednaka nuli, e verovatno brzo dospeti do nekog lokalnog onda nema mutacije i algoritam c ekstremuma.

9.8

Zaustavljanje

Genetski algoritam se izvr sava, tj. evolucioni proces stvaranja novih generacija e se kose ponavlja, sve dok nije zadovoljen neki uslov zaustavljanja. Naj ce sc riste slede ci uslovi zaustavljanja:

9.9 Parametri algoritma

155

Pronadeno je re senje koje zadovoljava unapred zadate (minimalne) kriterijume. 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 ve cinu varijanti genetskog algoritma potrebno je specikovati veli cinu populacije, verovatno cu ukr stanja i verovatno cu mutacije. Verovatno ca ukr stanja je u direktnoj vezi sa procentom jedinki koje se na kraju jedne iteracije elimini su, tako da je dovoljno zadati jedan od njih. Ukoliko e za svaki par razli je zadata verovatno ca ukr stanja, onda c citih jedinki iz skupa dobijenog selekcijom da budu generisani njihovi potomci sa tom verovatno com i sve tako generisane jedinke zameni ce najlo sije prilagodene jedinke iz prethodne generacije. Ukoliko je zadat procenat jedinki koje se na kraju jedne iteracije eli 25% i 50%), onda se u fazi ukr mini su (obi cno izmedu stanja parovi razli citih jedinki biraju i ukra staju sve dok nije generisano dovoljno jedinki da zameni e biti eliminisane. one koje c esto od klju Izbor parametara genetskog algoritma je c cne va znosti za njegove performanse (brzina dola zenja do re senja i kvalitet re senja). Optimizoe vanje parametara genetskog algoritma je kompleksan problem koji se naj ce sc re sava izvodenjem velikog broja eksperimenata. Za izbor pogodnih param esto se koriste s etara c ami genetski algoritmi. Parametri genetskog algoritma ne moraju biti ksirani, ve c mogu da se menjaju i prilagodavaju tokom rada (na primer, ukoliko su teku ce jedinke raznolike, onda treba pove cati verovatno cu ukr stanja, a smanjiti mutaciju, a ukoliko su sli cne onda treba uraditi obratno, anse za pribli kako bi se pove cale s zavanje globalnom optimumu).

9.10

Svojstva genetskih algoritama

irok domen i uspe Genetski algoritmi imaju s sno se primenjuju na velikom esto onih koji su NP-kompletni ili te broju optimizacionih problema, c zi. S druge strane, jo s uvek nema mnogo teorijskih rezultata koji govore o svo ak ni o tome jstvima genetskih algoritama, o kvalitetu re senja koja daju, pa c za sto su genetski algoritmi uspe sni. U daljem tekstu, bi ce re ci o nekim dobrim i lo sim stranama genetskih algoritama. Funkcija koja se optimizuje. Funkcija f koja se optimizuje mo ze biti potpuno proizvoljna i ne mora da zadovoljava nikakve uslove (na primer, da bude esto nije lako konstruisati odgoneprekidna ili diferencijabilna). Ipak, c varaju cu funkciju prilagodenosti. Genetski algoritmi se ne mogu uspe sno primeniti na probleme za koje se mo ze re ci samo da li je ne sto re senje ili esto, posebno u primenama u ve nije. Dodatno, c sta ckoj inteliegenciji (na

156

9 Genetski algoritmi primer, kretanje robota), funkcija koju treba optimizovati nije zadata eksplicitno ve c implicitno, kroz ve ci broj kriterijuma.

Parametri algoritma. Parametri genetskih algoritama daju mogu cnost uspe snog prilagodavanja speci cnom problemu. No, upravo ta sloboda izbora eni parametri parametara je istovremeno i pretnja da mogu da budu kori sc koji daju veoma lo se performanse. irok Domen genetskih algoritama. Genetski algoritmi primenljivi su na veoma s skup problema. Ipak, uspe sno re savanje spe cnih problema zahteva iz to je te bor pogodne reprezentacije, kao i izbor pogodnih parametara, s zak ak i ako su parametri dobro izabrani, genetski algoproblem. Stavi se, c e naj e davati lo ritam c ce sc sija re senja od pristupa koji je specijalizovan za problem koji se re sava. Otuda i zapa zanje da su ,,neuronske mre ze i genetski algoritmi drugo i tre ce najbolje re senje za skoro bilo koji optimizacioni problem. Kvalitet re senja. Ponavljanjem postupka mo ze se dobiti ve ca pouzdanost re senja. esto je nadeno Ukoliko nije nadeno re senje koje je globalni optimum, c re senje koje je dovoljno dobro. Dodatno, kao rezultat algoritma mo ze se to je c esto veoma pogodno. S druge smatrati neki skup najboljih re senja, s strane, genetski algoritam ne daje nikakvu garanciju da je pronadeno esto imaju tenre senje globalni optimum. I zaista, genetski algoritmi c denciju da idu ka lokalnim optimumima. Zahtevani resursi. Genetski algoritmi se jednostavno implementiraju, a postoji i mno stvo raznolikih dostupnih implementacija. Iako su algoritmi esto i implementacije jednostavni, izvr savanje genetskih algoritama je c veoma vremenski i memorijski zahtevno.

9.11

Primer primene genetskih algoritama evolucija agenta

to je ve Kao s c re ceno, genetski algoritmi predstavljaju heuristi cku metodu za optimizaciju funkcija. Kako na ovako apstraktno opisanom domenu nije o cigledna irina primenljivosti genetskih algoritama, u ovom poglavlju bi s ce dat jedan konkretan, jednostavan, ali ilustrativan primer. Neka je potrebno opisati agenta koji je u stanju da brzo vozi automobil po stazi za karting. Staza ima start koji je ujedno i cilj i ima krivine ulevo to br i udesno. Staza je izdeljena na polja. Vo znju je potrebno zavr siti s ze. Agent raspola ze sa nekoliko akcija prebacivanje u brzu vo znju, prebacivanje je mogu u sporu vo znju, skretanje ulevo i skretanje udesno. Takode ce da agent ne preduzme nikakvu akciju. Bilo koju akciju da preduzme, agent nastavlja da se kre ce (i) napred. Agent raspola ze skupom senzora jednim koji meri brzinu (sporo, brzo) i senzorima za prepreke levo, desno, jedno polje napred i dva polja napred. Pretpostavljamo da staza nema slepih krakova niti grananja, pa ako postoji prepreka na polju ispred, onda postoji ta cno jedno slobodno polje levo ili desno. U toku kretanja, agent ne mo ze skretati ukoliko se kre ce brzo.

9.11 Primer primene genetskih algoritama evolucija agenta

157

to pre zavr Kako bi vo znja bila s sena, po zeljno je da agent ubrza kada su oba polja ispred njega slobodna, da uspori kad primeti prepreku dva polja ispred i da skrene na slobodno polje kada primeti prepreku na polju neposredno ispred. Prilikom modelovanja ovog problema, potrebno je specikovati osnovne elemente genetskog algoritma, po cev od reprezentacije hromozoma. Zarad jednostavnosti, koristi cemo modikovanu binarnu reprezentaciju. Svaki senzor kojim agent raspola ze mo ze da daje dve vrednosti. Stoga agent ne mo ze razlikovati vi se od 25 = 32 stranja. Neka od tih stanja se ne ce pojavljivati u toku vo znje (na primer, prepreke i neposredno napred i levo i desno), ali ne ce biti unapred odba cena radi jednostavnosti kodiranja i dekodiranja hromozoma. Svako od mogu cih stanja predstavlja ce jednu poziciju u hromozomu na kojoj se bele zi akcija koju agent u tom stanju preduzima. Akcije se mogu kodirati celim brojevima od 0 do 4, na primer, 0 ne preduzimati ni sta, 1 ubrzati, 2 usporiti, 3 skrenuti levo i 4 skrenuti desno. Na osnovu ovoga, hromozom agenta koji u svakom stanju samo skre ce desno bio bi predstavljen pomo cu etvorke. Dekodiranje hromozoma mo to bi niza od 32 c ze da se realizuje tako s emu bi njegova vrednost u slu se svakom od senzora dodelio jedan bit pri c caju postojanja prepreke bila 0, a u suprotnom 1 i u slu caju sporog kretanja 0, a u u ksiranom poretku, na primer, brzina, suprotnom 1. Ovi bitovi bi se poredali polje neposredno ispred, dva polja ispred, polje levo i polje desno. Tada bi se akcija u slu caju brzog kretanja i sa preprekama levo i desno, a bez prepreka na slede ca dva polja nalazila zapisana u hromozomu na mestu sa indeksom (10011)2 = 19. Ukr stanje mo ze da bude sa jednom ta ckom prekida, a mutacija mo ze da se to bi na svakoj poziciji svakog hromozoma sa nekom unapred realizuje tako s zadatom malom verovatno com trenutna vrednost bila zamenjena nekom slu cajno izabranom od preostalih. Time su denisani genetski operatori. Selekcija mo ze da bude jednostavna ruletska. Funkcija koja se optimizuje u ovom slu caju nije eksplicitna, jer se njena vrednost ne mo ze izra cunati direktno na osnovu samog hromozoma. Stoga e funkcija prilagodenosti c da se izra cunava simuliranjem pona sanja agenta na nekoj stazi koja uklju cuje sve pomenute aspekte vo znje (skretanje, ubrzavanje, e biti simulirana tako s to c e agenta u svakom koraku da se itd.). Vo znja c pomera po jedno polje du z staze u pravcu kretanja. Pri tome se u svakom koraku dekodira hromozom i odreduje se akcija koju agent preduzima. Svako sporo boduje se sa 1, a svako polje koje se prede brzo, polje koje agent prede e prilikom selekcije biti favorizovani agenti koji boduje se sa 2. Na taj na cin c br ze prelaze stazu. Kako je najva znije da agent uop ste zavr si trku, a tek onda to br da je zavr si s ze, svaki agent koji zavr si trku dobija dodatne poene (na primer, onoliko koliko staza ima polja). Na taj na cin se agenti koji zavr savaju trku favorizuju u selekciji u odnosu na ostale, pa se evolucija ubrzava ka njima. Na navedeni na cin je zavr seno dizajniranje svih aspekata genetskog algoritma.

9.11.1

Implementaciona pitanja

158

9 Genetski algoritmi

Deo III

Ma sinsko u cenje

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

Glava 10

Uvod
Ma sinsko u cenje je oblast ve sta cke inteligencije koja se mo ze denisati na razli cite na cine. Jedna denicija bi mogla biti da je to disciplina koja se bavi izgradnjom prilagodljivih ra cunarskih sisitema koji su sposobni da pobolj savaju svoje performanse koriste ci informacije iz iskustva. Ma sinsko u cenje bi se moglo denisati i kao disciplina koja se bavi prou cavanjem generalizacije i konstrukcijom i analizom algoritama koji generalizuju. Prva denicija je bli za in zinjerskom i prakti cnom ra cunarskom na cinu razmi sljanja sa akcentom na re savanju konkretnih problema i implementaciji. Druga je bli za istom matemati c ckom razmi sljanju i statistici. Mi se ne cemo ograni citi na samo jedan od njih. estog preklapanja sa Preciznu deniciju je nezahvalno tra ziti, kako zbog c injenice da se radi o oblasti koja je ponikla iz drugim disciplinama, tako i zbog c nevezanih razmatranja problema u cenja u razli citim domenima, bez zajedni cke teorijske osnove. Iako su se prva teorijska razmatranja pojavila jo s kasnih 60 ivati ih u radovima Golda, univerzalne teorijske osnove su se po cele u cvr sc tek tokom 80-ih godina pro slog veka. Najva zniji teorijski pristupi su Goldov model grani cnog u cenja (learning in the limit), Valiantov PAC (Probably Approximately Correct) model i verovatno najkompletnija statisti cka teorija u cenja. ostalog, i zbog svoje te Ma sinsko u cenje je zanimljivo, izmedu znje da se pribli zi ljudskom u cenju po ekasnosti, kao i da ga objasni, odnosno pru zi teorijski model za njega. Naravno, oba cilja su za sada daleko od ostvarenja u punom smislu. Neka od najva znijih pitanja ma sinskog u cenja su: se mo Sta ze nau citi i pod kojim uslovima? Kako se pove cava ekasnost u cenja u zavisnosti od obima iskustva? Koji su algoritmi pogodni za koje vrste problema? Odgovore na ova pitanja treba tra ziti upravo kroz teorijske modele u cenja u okviru kojih se u ovom pogledu ve c do slo do zna cajnih rezultata. Razlog zbog kojeg su prakti cni rezultati prethodili teorijskim bi lako mogao to je ova oblast duboko motivisana prakti biti taj s cnim primenama. Postignuti su rezultati u raznim oblastima.

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

162

10 Uvod

Jedan od zanimljivijih prakti cnih rezultata je postignut od strane sistema ALVINN zasnovanog na neuronskoj mre zi, krajem osamdesetih godina dvadesetog veka, koji je nau cen da vozi javnim putem u prisustvu drugih vozila bez ljudske pomo ci brzinom od oko 110km/h. Uspe sno je vozio na putu du zine oko 140km. koriste ma Sistemi za prepoznavanje govora takode sinsko u cenje u nekoj sa kraja osamdesetih, se oslanja na neuronske formi. Sistem Sphinx, takode mre ze i skrivene Markovljeve modele u prilagodavanju izgovoru razli citih ljudi, karakteristikama mikrofona, pozadinskoj buci i sli cno. Jedan od najpoznatijih primera primene ma sinskog u cenja je sistem TDGammon za igranje igre Backgammon konstruisan devedesetih godina. Igraju ci protiv sebe preko milion partija i nastavljaju ci da u ci u igri sa ljudskim igra cima, ampiona. On kombinuje u dostigao je nivo igre u rangu svetskog s cenje uslovljavanjem (eng. reinforcement learning) sa neuronskom mre zom koju koristi za internu reprezentaciju nau cenog znanja. Jedan od skorijih rezultata je u cenje sistema koji kontroli se robotsku ruku itanjem napona mi da c si ca preko povr sine ko ze izvodi z eljenje pokrete. Poslednjih godina Microsoft razvojni centar u Srbiji radi na razvoju sistema za prepoznavanje rukom pisanog teksta koji su zasnovani na ma sinskom u cenju. Sistem se trenira na osnovu uzoraka koje su pisali razli citi ljudi. Takode, radi se na prilagodavanju sistema rukopisu korisnika. Posebna pa znja je posve cena prepoznavanju u specijalizovanim domenima. Neki od njih su prepoznavanje matemati ckih formula, hemijskih dijagrama i arhitektonskih crte za. jedna od najskorijih primena ma Takode sinskog u cenja je sistem koji je u stanju da vodi dijalog sa korisnikom u cilju pru zanja informacija koje se odnose na primer na ugostiteljske objekte u gradu u kome se korisnik nalazi. U ovom problemu je potrebno da sistem u odredenom smislu razume zahteve korisnika, da se prilagodi izgovorima razli citih ljudi, da razlikuje pozadinsku buku od re ci koje korisnik izgovara i sli cno. Ovaj sistem se zasniva na u cenju uslovljavanjem. razli Problemi koji se pri ovome javljaju su razlike izmedu citih ljudi, razlike enja, zamor u polo zajima i pokretima ruke u vreme u cenja i u vreme kori sc mi si ca, znojenje i sli cno. U ovom problemu su se pokazali uspe sni pristupi bazirani na neuronskim mre zama i metodi potpornih vektora. Koliko god primene ma sinskog u cenja bile raznovrsne, postoje odredene esto ponavljaju. Stoga je mogu karakteristike zadataka koje se c ce govoriti o esto sre i vrstama zadataka u cenja koje se c cu. Klasikacija je verovatno naj ce sc zadatak u cenja u praksi. Ona predstavlja prepoznavanje vrste objekata. Na primer da li odredeno elektronsko pismo predstavlja ne zeljenu po stu (eng. spam) ili ne. Regresija je zadatak u cenja u kome objektima odgovaraju vrednosti iz skupa realnih brojeva. Na primer, predvidanje du zine z ivota osobe u zavisnosti od njenih z senje, i sli cno). ivotnih navika (bavljenjem sportom, pu

10.1

Generalizacija i apstrakcija

Deduktivno zaklju civanje, vodeno zakonima logike, mo ze se smatrati osnovnom karakteristikom inteligentnog pona savanja. Ovakvo zaklju civanje jedan je od osnovnih na cina zaklju civanja kod ljudi. Druga karakteristika inteligentnog pona sanja koja se mo ze primetiti i kod z pona sanja ivotinja je prilagodavanje

10.2 Primer problema u cenja

163

jedinke okolini u kojoj se ona nalazi. Kroz evolutivne procese, prilagodljivost se posti ze i kod ni zih organizama, ali je ova sposobnost sa ta cke gledi sta ve sta cke inteligencije posebno zanimljiva kod z ivotinja i ljudi kod kojih se manifes tuje u toku z posti ze u cenjem na os ivota jedinke. Kod njih se prilagodavanje novu primera iz iskustva i primenom nau cnog znanja u sli cnim situacijama u budu cnosti. Primera radi, za z cajno da uo ci klju cne karak ivi organizam je zna teristike neke situacije ili skupa situacija u kojima preduzimanje neke akcije dovodi do po zeljnih odnosno nepo zeljnih posledica po organizam. Prepoznavanje sli cnih situacija u budu cnosti omogu cava organizmu da preduzimanjem adekvatne akcije u situaciji u kojoj se nalazi predupredi ishode nepovoljne po njega ili dovede do ishoda koje su za njega povoljni. Apstraktnije razmatrano, mogu ce je govoriti o dono senju zaklju caka o nepoznatim slu cajevima, na osnovu znanja o nekim drugim, poznatim, slu cajevima. Proces u kome se znanje koje va zi za neki skup slu cajeva prenosi na neki njegov nadskup, naziva se generalizacijom ili induktivnim zaklju civanjem. Generalizacija predstavlja jedan od osnovnih koncepata ma sinskog u cenja. Koncept generalizacije je direktno povezan sa konceptom apstrakcije. Naime, da bi generalizacija bila uspe sna, odredeni apsekti entiteta o kojima se rezonuje moraju biti zanemareni ukoliko nisu od su stinskog zna caja za generalizaciju. Primera radi, ukoliko je potrebno nau citi ve sta cki sistem da prepoznaje rukom pisani tekst i da ga prevodi u elektronski tekstualni zapis, potrebno je da sistem zanemari speci cnosti koje postoje kod razli citih ljudi u visini i nagibu slova ili brzini i o strini poteza prilikom pisanja. Kontrola generalizacije i apstrakcije je jedna od klju cnih tema u teorijskom razmatranju ma sinskog u cenja. Za jednostavan primer generalizacije mo ze se uzeti slede ci primer. Sistem koji prepoznaje rukom pisani tekst bi na osnovu nekoliko primera mogao da zaklju ci da se broj 0 pi se kao elipsa ili krug koji prilikom pisanja mogu evenutalno biti malo otvoreni. U ovom slu caju, generalizacija je korektna. Za razliku od deduktivnog zaklju civanja, proces generalizacije ne pru za garancije da su zaklju cci ispravni. Tako, na primer, zaklju cak da se broj 1 uvek pi se podvu cen crticom potkrepljen nekolicinom takvih primera ne bi bio korektan iako je kao induktivni zaklju cak mogu c. Iako zaklju cci dobijeni generalizacijom ne moraju biti ta cni, induktivno zaklju civanje je i dalje veoma zna cajno. To je jedan od osnovnih na cina za formiranje predstava o okru zenju, situacijama ili uzro cno posledi cnim odnosima ili formalnije re ceno za pravljenje modela podataka iz iskustva. Ukoliko su u nekom domenu gre ske u zaklju civanju prihvatljive, algoritmi induktivnog zaklju civanja omogu cavaju zaklju civanje i bez temeljnog poznavanja i kompletnog formalnog opisivanja domena na koji se primenjuju. mogu biti ekasniji od algoritama deduktivnog zaklju Takode, civanja.

10.2

Primer problema u cenja

Pretpostavimo da smo zapo celi izgradnju specijalizovanog pretra ziva ca Interneta i da z cimo korisnicima da pretra zuju samo ra cunarske elimo da omogu lanke. Da bi ovo bilo mogu c ce potrebno je da sistem bude u stanju da razlikuje lanke iz oblasti ra lanaka. Mo c cunarstva od ostaliih c zemo primetiti da se radi o problemu klasikacije. Kako bi sistem nau cio da ispravno klasikuje, prvo mu je potreban odredeni skup primera koji bi sadr zao kako ra cunarske, tako i lanke iz drugih oblasti. Recimo da je unapred sakupljeno 3000 c lanaka po c

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

164

10 Uvod

lanke, a crveni ostale. X Figure 10.1: Plavi krugovi predstavljaju ra cunarske c koordinata predstavlja frekvenciju re ci ra cunar, a koordinta Y predstavlja frekvenciju re ci datoteka.

emo izdvojiti po 500 c lanaka kako bismo posle 1500 iz obe klase. Iz obe klase c u cenja procenili kvalitet sistema. lanke pretstavimo u nekom obDa bi sproveli u cenje, potrebno je da ove c liku koji je pogodan za algoritam u cenja i koji bi mogao na neki na cin da lanci iz ove dve katereprezentuje osnovne karakteristike na osnovu kojih se c gorije mogu razlikovati. Za to nam je potrebna ideja kako bismo razlikovali lanke. O e u c lancima iz ra e e pominjani c cekivano je da c cunarstva biti c sc lancima. To svojstvo bi se moglo iskoristiti ra cunarski pojmovi nego u ostalim c lanaka. za razlikovanje c U skladu sa ovim, mo zemo nabrojati sve re ci iz nekog re cnika ra cunarske lancima koje imamo. Svaki c lanak terminologije koje se pojavljuju u svim c mo zemo predstaviti vektorom frekvencija ovih re ci. Frekvencija neke re ci u lanku se ra to se broj pojavljivanja te re c cuna tako s ci podeli ukupnim brojem lanku. Ako je x vektor koji odgovara nekom c lanku, pojavljivanja svih re ci u c emo frekvencije izabranih re onda c ci ozna cavati sa xi . Posmatrajmo ove vektore geometrijski, kao da su ta cke u euklidskom prostoru. Jednostavnosti radi, pretpostavi cemo da se u re cniku nalaze samo dve lancima iz jedne kategorije ovi re ci ra cunar i datoteka.Ukoliko su u c ra cunarski termini visokofrekventni, a u drugim niskofrekventni, ta cke koje lancima c e se grupisati dalje od koordinatnog po odgovaraju ra cunarskim c cetka, e se ostale grupisati bli dok c ze njemu. Pojednostavljen prikaz je dat na slici 10.2. ovih ta Izmedu caka bi se mogla provu ci prava koja bi ih razdvajala kao na lanak slici 10.2. Ako nam je ova prava poznata, onda za neki nov, nepoznat c mo zemo re ci da je iz oblasti ra cunarstva ukoliko se vektor koji mu odgovara lanaka koji su nam poznalazi sa iste strane prave kao i vektori ra cunarskih c lanak nije iz oblasti ra nati. U suprotnom bismo smatrali da c cunarstva. Jedna cina prave ima oblik

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

10.2 Primer problema u cenja

165

lanke, prikazana je i prava koja Figure 10.2: Osim krugova koji predstavljaju c ih razdvaja

ax + by + c = 0 lanak iz oblasti ra Neka je f (x) = 1 ukoliko je x c cunarstva i f (x) = 1 u suprotnom. O cigledno, funkcija sgn(ax + by + c), gde sgn(t) ozna cava znak vrednosti t, pru za informaciju sa koje strane prave se nalazi ta cka (x, y ). Pronala zenje z zemo posmatrati kao pomeranje neke po eljene prave mo ta lazne prave dok ona ne bude pozicionirana izmedu caka koje treba da razd vaja. Formalno, da bismo na sli razdvajaju cu pravu, potrebno je da nademo koecijente a, b i c tako da funkcije f (x) i sgn(ax + by + c) budu jednake ili makar jednake u ve cini slu cajeva. Kako bismo to uradili potrebno je da for e na osnovu podataka koje imamo do muli semo algoritam u cenja koji c ci do tih koecijenata. Algoritam u cenja mo ze biti slede ci: 1. Neka je a = 0, b = 0 i c = 0 za svako i i = 0.01. 2. Za svaki trening primer < x, y > za koji nam je poznata vrednost f (< x, y >): (a) Izra cunati sgn(ax + by + c) koriste ci trenutne koecijente a,b i c. (b) Za koecijente uraditi a a + (f (< x, y >) sgn(ax + by + c)) x b b + (f (< x, y >) sgn(ax + by + c)) y c c + (f (< x, y >) sgn(ax + by + c)) 1 Ne mora biti o cigledno da a zuriranje koecijenata u algoritmu koji koristimo za u cenje vodi pobolj sanju nau cene funkcije. Pre svega, vrednost mora biti mala kako bi korekcije bile male i postepene. Drugo, primetimo da su x i y uvek pozitivni ili jednaki 0 i da stoga znak korekcije zavisi od razlike izmedu

166

10 Uvod

vrednosti funkcija f i sgn(ax + by + c). Ukoliko je vrednost funkcije f ve ca, pove cavamo koecijente, tako da se vrednost funkcije sgn(ax + by + c) zbog toga pove cava. Analogno u slu caju da je vrednost funkcije f manja. Kad gre ske nema, vrednost korekcije je 0. Stoga, ovim se funkcija sgn(ax+by +c) pribli zava se prime funkciji f . Takode cuje da su korekcije proporcionalne vrednostima x ija promena mo i y , odnosno ve ce su za koecijente c ze vi se doprineti promeni vrednosti funkcije sgn(ax + by + c) za dati primer. Teorijsko opravdanje za ovaj to se radi o gradijentnom spustu kojim se minimizuje postupak le zi u tome s srednjekvadratno odstupanje funkcije sgn(ax + by + c) od funkcije f . lanak je dovoljno videti Kada su koecijenti a,b i c nadeni, za nepoznati c sa koje strane prave se nalazi njegov vektor frekvencija re ci, odnosno da li je sgn(ax + by + c) jednako 1 ili -1. Kada je u cenje zavr seno, po zeljno je proceniti koliko se sistem dobro pona sa. lanaka koje sad mo Na po cetku smo izdvojili 1000 c zemo klasikovati. Kad su lanci klasikovani kao meru kvaliteta u c cenja mo zemo izra cunati udeo dobro lanaka u ukupnom broju c lanaka. Po to ve klasikovanih c zeljno je da je on s ci.

10.3

Nadgledano i nenadgledano u cenje

Postoje dve glavne formulacije problema u cenja: Nadgledano u cenje je pristup problemu u cenja koji se odnosi na situacije u kojima se algoritmu zajedno sa podacima iz kojih u ci daju i z eljeni izlazi. Algoritam treba da nau ci da za date podatke (ne nu zno trening podatke) pru zi odgovaraju ce izlaze. Nenadgledano u cenje je pristup problemu u cenja koji se odnosi na situacije u kojima se algoritmu koji u ci pru zaju samo podaci bez izlaza. Od algoritma koji u ci o cekuje se da sam uo ci neke zakonitosti u podacima koji su mu dati. Naravno, ovi drasti cno razli citi pristupi se ne odnose na iste vrste prob lanaka na lema. Primer nadgledanog u cenja je ve c pomenuta klasikacija c ra cunarske i ostale, kod koje su unapred poznati primeri za razli cite kategorije. Primer nenadgledanog u cenja je takozvano klasterovanje - uo cavanje grupa na neki na cin sli cnih objekata kada nemamo prethodno znanje o tome koliko grupa postoji ili koje su njihove karakteristike. Jedan primer primene klasterovanja bi mogao da bude redukcija skupa boja slike. Pikseli slike se mogu grupisati klasterovanjem po njihovoj blizini u RGB prostoru boja, a potom se iz svakog klastera mo ze izabrati po jedna boja koja bi ga predstavljala i kojom bi bili obojeni svi pikseli koji pripadaju tom klasteru.

10.4

Ciljna funkcija i modeli podataka

to je potrebno nau Ono s citi se u ma sinskom u cenju deni se ciljnom funkcijom. Ona deni se z sanje sistema koji u ci. U slu caju da korisnik z eljeno pona eli lanke na Internetu sa sadr da prepozna c zajem iz ra cunarstva ciljna funkcija lancima pridru takvim c zuje 1, a ostalim -1. U ranije navedenom primeru, to aha, ciljna funkcija bi vr je bila funkcija f . U u cenju igranja s sila pridru zivanje ahovske table. optimalnih poteza pozicijama s

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

10.5 Podaci

167

ak sasvim izvesne, u Kako su gre ske pri u cenju mogu ce i c cenje predstavlja pribli zno odredivanje ove ciljne funkcije, odnosno mo ze biti videno kao aproksimiranje funkcija. Funkciju kojom aproksimiramo ciljnu nazivamo modelima podataka ili hipotezama. Koristi cemo oba termina. U slu caju prepoznavanja ra cunarskih lanaka model je bila funkcija sgn(ax + by + c) koja je pridru c zivala 1 svim ta ckama sa jedne strane prave, a -1 ta ckama sa druge. Skup svih dopustivih hipoteza nazivamo prostorom hipoteza. U ma sinskom u cenju prostor hipoteza se obi cno ne navodi eksplicitno nabrajanjem hipoteza, reprezentacijom hipoteze. Drugim re ve c je odreden cima, prostor hipoteza predstavlja skup svih hipoteza koje se mogu predstaviti u zadatom obliku. Potencijalne reprezentacije su raznovrsne. Mogu predstavljati pravila oblika IF...THEN, linearne funkcije, i druge. U primeru prepoznavanja ra cunarskih lanaka hipoteze su reprezentovane pravim denisanim preko vrednosti koc ecijenata a, b i c. Nala zenje hipoteze koja najbolje aproksimira ciljnu funkciju mo zemo videti kao pretragu prostora hipoteza koja je vodenja podacima, a koju realizuje algoritam u cenja. Stoga se u nekom smislu algoritmi u cenja mogu smatrati algorit emu je uloga podataka iz iskustva mima pretrage, ali u prostoru hipoteza pri c nov element koji nije bio prisutan u ranije izlo zenim op stim pristupima pretrazi. Izbor prostora hipoteza je od fundamentalnog zna caja za kvalitet u cenja. Ukoliko prostor hipoteza ne sadr zi ciljnu funkciju, onda ona u praksi mo ze biti samo pribli zno nau cena. To u praksi mo ze biti dovoljno dobro. Pored toga, bogatstvo prostora hipoteza je od velikog zna caja. Naizgled paradoksalno, preterano bogatstvo prostora hipoteza po pravilu dovodi do lo sijih rezultata.

10.5

Podaci

Jedna od denicija ma sinskog u cenja koje su navedene ka ze da se ma sinsko u cenje bavi generalizacijom, odnosno zaklju civanjem o nepoznatim objektima, e e c emo koristiti na osnovu poznatih objekata. Umesto termina objekat, c sc lanaka, intermin instanca ili primerak. U slu caju prepoznavanja ra cunarskih c lanak. Instance c e biti u ra stanca je jedan c cunaru predstavljene pmo cu nekih podataka koji ih opisuju i kojima ih identikujemo.

10.5.1

Reprezentacija podataka

Instance se na neki na cin moraju reprezentovani u obliku koji je pogodan za e koristi kod alprimenu algoritama u cenja. Najpogodniji na cin koji se naj ce sc goritama ma sinskog u cenja uop ste je predstavljanje instanci pomo cu nekih njihovih svojstava, odnosno atributa (eng. feature, attribute). Svojstva ili atributi to su boja, veli predstavljaju karakteristike instanci kao s cina, te zina i sli cno. Svaki od izabranih atributa mo ze imati vrednost koja pripada nekom unapred esto numeri zadatom skupu. Te vrednosti su c cke kao u slu caju te zine koja je skalarna veli cina i koja se najbolje opisuje brojem. Primer numeri cke vrednosti lanku kao s to je to bio slu mo ze biti i frekvencija re ci u nekom c caj u primeru sa mogu biti i kategori lanaka. Atributi takode klasikacijom c cki, odnosno mogu predstavljati imena nekih kategorija kojima se ne mogu jednozna cno dodeliti smislene numeri cke vrednosti ili uredenje. Primer kategori ckog atributa mo ze

168

10 Uvod

biti grad u kome osoba z cno. U slu caju prepozna ivi, pol, nacionalnost i sli lanaka, oznaka klase koju treba pogoditi 1 za ra vanja ra cunarskih c cunarkse kategori lanke i -1 za ostale je takode c cka vrednost iako je predstavljena brojem po sto se radi o dve kategorije za koje su ovi brojevi proizvoljno izabrani. e se koristiti u zapisu instance generalno nije unapred Skup atributa koji c zadat, ve c ga je potrebno odabrati u skladu sa time koje su karakteristike instanci bitne za dati problem u cenja. Primera radi, ako je potrebno razlikovati lanke o operativnim sistemima od c lanaka o bazama podataka poznavanje c frekvencija re ci ra cunar i datoteka ne nosi korisnu informaciju po sto su ove re ci zastupljene u obe kategorije. Stoga te atribute nema svrhe koristiti u ovom problemu u cenja. S druge strane, re ci proces i indeks nose vi se informacije po sto su u ze speci cne za pomenuta polja. Ukoliko je potrebno lanke od drugih vrsta c lanaka izbor atributa bi mogao razlikovati ra cunarske c da bude upravo obrnut po sto re ci proces i indeks mogu imati i druga cija zna cenja od onih koja im se pridru zuju u ra cunarskoj terminologiji. Postoje i ireg skupa koje su metode za automatski izbor podskupa atributa iz nekog s najrelevantnije za dati problem u cenja, ali njih ne opisujemo. Kada su izabrani atributi pomo cu kojih se instance opisuju, svaka instanca se mo ze predstaviti vektorom vrednosti atributa koje joj odgovaraju.

10.5.2

Podaci za trening i podaci za testiranje

Prirodno je da svako u cenje polazi od nekih podataka. Podaci na osnovu kojih se vr si generalizacija, nazivaju se podacima za trening, a njihov skup trening skup. Testiranje nau cenog znanja na podacima na osnovu kojih je u ceno obi cno dovodi do zna cajno boljih rezultata od onih koji se mogu kasnije dobiti u primenama. Stoga je pre upotrebe potrebno proceniti kvalitet nau cenog znanja. to se razmatra koliko je nau To se obi cno radi tako s ceno znanje u skladu sa ine test skup. nekim unapred datim podacima za testiranje. Podaci za testiranje c Test skup treba da bude disjunktan sa trening skupom. Cesto se prilikom konstrukcije sistema koji uklju cuje u cenje raspola ze ograni cenom koli cinom podataka koja se mora upotrebiti u obe svrhe. Jedan od standardnih na cina je da se jedna tre cina ili neki blizak procenat izdvoji unapred za ena i testiranje, a da se trening vr si na ostatku. Takva podela je bila kori sc lanaka. Obi u primeru prepoznavanja ra cunarskih c cno se ova podela vr si slu cajnim izborom skupa za testiranje.

10.6

Dizajn sistema koji u ci

Zahvaljuju ci svom brzom razvoju oblast ma sinskog u cenja se zna cajno raz granala, ali i dalje postoje odredene karakteristike re savanja problema u cenja koje su zajedni cke za ve cinu pristupa. Jedna od bitnih zajedni ckih odlika je na cin dizajniranja sistema koji u ci. Elementi dizajna su ve c pomenuti u prethod emo ih sumirati: nim poglavljima i sad c Formulacija problema u cenja: Nadgledano ili nenadgledano u cenje Zapis primera

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

10.6 Dizajn sistema koji u ci Izbor ciljne funkcije Izbor prostora hipoteza Izbor algoritma Izbor mera kvaliteta u cenja

169

Sada je mogu ce sumirati kako su dati aspekti dizajna bili izabrani u slu caju lanaka. prepoznavanja ra cunarskih c Primer 10.1 3000 c lanaka je razvrstano u dve unapred ksirane kategorije (ra cunarski i ostali), tako da je zadatak u cenja bio formulisan kao zadatak nadgledanog u cenja. Svaki c lanak je pretstavljen vektorom frekvencija re ci iz nekog re cnika ra cunarske terminologije. Kako bi se smanjila veli cina zapisa, uzete su u obzir samo one re ci koje se javljaju bar u jednom c lanku. Ciljna funkcija f pridru zuje 1 ra cunarskim c lancima, a -1 ostalim. Prostor hipoteza odgovara skupu svih pravih u odgovaraju cem prostoru. Hipoteze su funkcije koje pridru zuju 1 ta ckama sa jedne strane prave, a -1 ta ckama sa druge strane. Hipoteze se biraju izborom vrednosti koecijenata a, b i c. Algoritam u cenja je bio gradijentni spust za minimizaciju odstupanja izmedu vrednosti ciljne funkcije i hipoteze na datim primerima. Za meru kvaliteta u cenja uzet je udeo ta cno klasikovanih c lanaka.

a zadatka ma U daljem tekstu bi ce opisana dva naj ce sc sinskog u cenja klasikacija i regresija. Za oba metoda bi ce izlo zene i neke metode ma sinskog uz izlaganje metoda ma esto re u cenja kojima se ti zadaci c savaju. Takode, sinskog u cenja, bi ce diskutovani i razni bitni koncepti ma sinskog u cenja.

170

10 Uvod

Glava 11

Klasikacija
Problem klasikacije je problem razvrstavanja nepoznate instance u jednu od unapred ponudenih kategorija klasa. Neki od primera klasikacije su razvrstavanje bankovnih transakcija u rizi cne koje mogu predstavljati prevaru i ner izi cne koje predstavljaju uobi cajene transakcije, odredivanje autorstva tekstova emu se tekstu nepoznatog autora pridru pri c zuje jedan od nekoliko unapred ponudenih autora, razvrstavanje elektronske po ste u z zeljenu (eng. spam) eljenu i ne i sli cno. U navedenim primerima svaka instanca (bankovna transakcija, tekst, elektronska poruka) se mo ze predstaviti nekim izabranim skupom njenih atributa. svakoj instanci se kao atribut mo Takode, ze dodati i oznaka klase kojoj instanca pripada. Problem klasikacije se sastoji u odredivanju vrednosti atributa klase na osnovu preostalih atributa instance. Formalnije, problem klasikacije se mo ze videti kao aproksimacija ciljne funkcije koja svakoj instanci dodeljuje oznaku klase kojoj ta instanca pripada. Klju cno zapa zanje je da je ciljna funkcija u ovom problemu diskretna. Pri tom, u op stem slu caju, oznakama klasa se ne mogu smisleno dodeliti numeri cke vrednosti niti uredenje. Dakle, atribut iju je vrednost potrebno odrediti, je kategori klase, c cki atribut. Postoji veliki broj metoda kojima se ovaj problem re sava. Neke od njih su metode zasnovane na instancama (eng. instance based classication), u cenje stabla odlu civanja (eng. decision tree induction), metoda potpornih vektora (eng. support vector machines) i metode bajesovske klasikacije zasnovane na verovatno ci (eng. bayesian classication). U daljem tekstu opisa cemo prve dve pomenute metode.

11.1

Metode klasikacije zasnovane na instancama

Osnovna karakteristika metoda zasnovanih na instancama je da ne grade ek to to radi ve splicitan model podataka u vidu neke funkcije kao s cina metoda ma sinskog u cenja. Stoga se klasikacija ne vr si na osnovu ve c formulisanog modela, nego na osnovu skupa instanci za trening. Umesto izgradnje mod uvaju i bivaju upotrebljene tek kad ela, instance predvidene za treniranje se c je potrebno klasikovati nepoznatu instancu. Time se ve cina izra cunavanja preme sta iz faze u cenja u fazu primene.

172

11 Klasikacija

11.1.1

Metoda n-najbli zih suseda

Metoda n-najbli zih suseda (eng. n-nearest neighbours) se zasniva na vrlo jed ije su nostavnom principu nepoznatu instancu treba klasikovati u klasu c instance najsli cnije nepoznatoj. Koncept sli cnosti se najjednostavnije formalizuje preko funkcija rastojanja. Denicija 11.1 Neka je X skup instanci. Funkcija d : X X R predstavlja rastojanje na skupu X ukoliko zadovoljava slede ce uslove: 1. d(x, y ) 0, pri tom d(x, y ) = 0 x = y (pozitivna denitnost) 2. d(x, y ) = d(y, x) (simetri cnost) 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
y x xx y y

d(x, y ) = cos( (x, y )) = d(x, y ) = 0, 1, x=y x=y

dva objekta ve to je rastojanje izmedu Intuitivno, s ce, to je sli cnost izmedu njih manja i obrnuto. Naravno, po sto je mogu ce birati razli cite funkcije rastojanja, pretpostavka je da izabrana funkcija rastojanja, u smislu relevantnom za dva objekta. posmatrani domen, stvarno oslikava razli citost izmedu Kada je funkcija rastojanja izabrana, najjednostavniji na cin klasikacije je klasikovanje nepoznate instance u klasu iz koje poti ce instanca trening skupa najbli za nepoznatoj instanci. Ovo je primer metode n-najbli zih suseda za n = 1. U op stem slu caju metoda n-najbli zih suseda se sastoji u nala zenju n instanci iz trening skupa koje su najbli ze nepoznatoj instanci i njenom klasikovanju u pronadenih iji se elementi naj e javljaju medu klasu c ce sc n najbli zih suseda. vi U slu caju izjedna cenog ishoda izmedu se klasa, nije mogu ce doneti odluku, ali se u praksi ovaj osnovni algoritam mo ze modikovati kako bi se ovakvi slu cajevi razre sili. Analizirajmo detaljnije metodu n-najbli zih suseda. Posmatrajmo nepoznate instance A i B prikazane na slici 11.6. Metodom n-najbli zih suseda uz enje euklidskog rastojanja instanca A biva klasikovana u crvenu klasu kori sc to se za sve vrednosti n od 1 do 5. Klasikacija instance A je postojana zato s ona nalazi blizu crvenih instanci, a udaljeno od plavih instanci. S druge strane, klasa instance B mo ze da varira u zavisnosti od broja n. Za n = 1 instanca B se klasikuje u crvenu klasu. Za n = 2 ne mo ze se odlu citi. Za n = 3 instanca B se klasikuje u plavu klasu. Za n = 4 ponovo nije mogu ce odlu citi, a za n = 5, ona se ponovo klasikuje u crvenu klasu. Klasikacija instance B nije postojana jer se ona nalazi blizu instanci iz obe klase. Zna ci, metoda n-najbli zih suseda je postojana u unutra snjosti oblasti koju zauzimaju instance jedne klase, ali je nepostojana na obodu te oblasti. Ovo pona sanje bi se moglo uo citi i kod drugih metoda klasikacije. to se nepostojanost klasikacije mo Pored toga s ze demonstrirati menjanjem mo parametra n, ona se takode ze analizirati i za ksiranu vrednost parametra

11.1 Metode klasikacije zasnovane na instancama

173

Figure 11.1: Stabilnost klasikacije pomo cu algoritma n-najbli zih suseda n. Mo ze se primetiti da je za manje vrednosti parametra n nepostojanost pri variranju vrednosti atributa instance ve ca nego za ve ce vrednosti parametra n. Odredivanje vrednosti parametra n koja je pogodna za upotrebu se vr si empirijski evaluacijom uspe snosti klasikacije za razli cite vrednosti parametra n. Bira se vrednost n za koju je klasikacija bila najuspe snija. Mere i metode pomo cu kojih se vr si evaluacija uspe snosti klasikacije bi ce izlo zene kasnije u ovom poglavlju. to se mo Kao s ze videti u slu caju metode najbli zih suseda, jo s jedno bitno svojstvo metoda zasnovanih na instancama je njihova lokalnost. Nepoznata instanca se klasikuje isklju civo ili uglavnom na osnovu poznatih instanci koje se nalaze unjenoj blizini. Ovo svojstvo doprinosi eksibilnosti modela koje ove metode (implicitno) grade.

11.1.2

N-grami

esto formulisane tako da se jednostavno priMetode ma sinskog u cenja su c menjuju na numeri cke podatke, ali te sko na podatke u nekom drugom obliku. Stoga se tra ze na cini da se i drugi podaci predstave u numeri ckom obliku. To esto podrazumeva i odredeni c gubitak informacije. U slu caju problema klasi esto se u svrhu predkacije tekstova, proteinskih sekvenci i sli cnih podataka c stavljanja podataka u numeri ckom obliku koriste n-gramski proli [?]. Ako je data niska S = s1 s2 . . . sN nad azbukom , gde je N pozitivan ceo broj, n-gram niske S , za n N , je bilo koja podniska susednih simbolja du zine n. 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 prol niske je lista uredenh parova (n-gram, frekvencija) gde je frekvencija izra cunata u odnosu na sve n-grame niske. Ovakvi proli pred esto se koriste zastavljaju reprezentaciju pogodnu za metode klasikacije i c jedno sa metodom n-najbli zih suseda.

174

11 Klasikacija

enja n-grama su robusnost (na primer, nisu mnogo Osnovne prednosti kori sc osetljivi na gre ske u kucanju ili na pojavljivanje re ci u razli citim gramati ckim oblicima), nezavisnost od domena koji se analizira, ekasnost (dovoljan je jedan prolaz kroz tekst) i jednostavnost. Problem je eksponencijalna zavisnost broja mogu cih n-grama u odnosu na du zinu n-grama. eni u razli N-gramski proli su uspe sno kori sc citim primenama koje uklju cuju prepoznavanje autorstva tekstova, prepoznavanje jezika kojim je tekst pisan, prepoznavanje govora i odredene probleme iz oblasti bioinformatike. Primer 11.2 U ovom primeru razmotri cemo klasikaciju tekstova prema jeziku. Srpski i engleski jezik bi ce predstavljenim po jednim kra cim tekstom ozna cenim sa S1 i E1. Po sto se izra cunaju frekvencije n-grama za ta dva teksta, njihovi n-gramski proli c ine trening skup. Test skup c e biti dobijen na osnovu c etiri kratka teksta od kojih su dva na srpskom ozna cena sa S2 i S3, a dva na engleskom jeziku ozna cena sa E2 i E3. Klasikacija c e biti izvr sena pomo cu algoritma 1-najbli zih suseda. U tekstovima na srpskom jeziku nisu kori sc ena srpska slova kako bi se izbegla laka identikacija na osnovu pisma. S1: U prethodnom delu prikazani su teorijski okviri i algoritmi pomocu kojih je moguce sprovoditi logicko zakljucivanje. Iako zakljucci moraju nuzno slediti iz zadatih pretpostavki, proces njihovog dokazaivanja nije pravolinijski vec ukljucuje odredene odluke o pravcu u kome ce se postupak sprovoditi. Drugim recima, uocljivo je traganje za dokazom nekog tvrdenja. Primera radi, u primeni procedure DPLL moguce je uociti i korake zakljucivanja i korake pretrage. Kada se uoci jedinicna klauza u nekoj formuli, njeno zadovoljenje je nuzno i predstavlja korak zakljucivanja. S druge strane kada je nemoguce direktno zakljucivanje, potrebno je pretpostaviti vrednost iskazne promenljive. U daljem toku dokazivanja, ta akcija ce se pokazati kao opravdana ili neopravdana. U slucaju da se pokaze kao neopravdana, preduzima se alternativna akcija. Znaci, situacija u kojoj nije moguce izvrsiti direktno zakljucivanje zahteva primenu pretrage. Manje apstraktan primer je upravljanje robotskom rukom. Pretpostavimo da robotska ruka ima nekoliko mehanickih zglobova cije se kretanje kontrolise elektricnim impulsima. Pri tom, neki zglobovi omogucavaju rotacije samo oko jedne ose (kao ljudski lakat ili zglobovi na pristima), a drugi rotaciju oko veceg broja osa (kao ljudsko rame ili zglobovi u korenu prstiju). Pokret hvatanja case ovakvom robotskom rukom je netrivijalan zadatak, ali se moze razbiti na sekvencu atomicnih koraka pokreta pojedinacnih zglobova oko razlicitih osa za odreden ugao. Mozemo zamisliti da se ovi koraci izvrsavaju strogo jedan po jedan u kom bi slucaju kretanje ruke bilo znacajno razlicito od ljudskog i sporo, ali bi problem bio laksi jer ne bi bila potrebna sinhronizacija razlicitih zglobova i svaki bi se pojedinacno dovodio u zeljeni polozaj. Druga mogucnost je da se kretanja zglobova izvode simultano, kao kod coveka, pri tom povecavajuci broj mogucih kombinacija u svakom trenutku. Dati primeri motivisu razmisljanje o pretrazi kao o nalazenju niza akcija kojima se ostvaruje cilj kada to ne moze biti ostvareno pojedinacnim akcijama. Iako u opstem slucaju ovakva denicija ne mora delovati adekvatno, u kontekstu vestacke inteligencije u kome obicno pretpostavljamo postojanje nekog entiteta koji deluje preduzimanjem nekih akcija (agenta), ona je prirodna. E1: There are two paths to achieving an AGI, says Peter Voss, a software developer and founder of the rm Adaptive A.I. Inc. One way, he says, is to continue developing

11.1 Metode klasikacije zasnovane na instancama

175

narrow AI, and the systems will become generally competent. It will become obvious how to do that. When that will happen or how it will come about, whether through simbots or some DARPA challenge or something, I dont know. It would be a combination of those kinds of things. The other approach is to specically engineer a system that can learn and think. Thats the approach that [my rm] is taking. Absolutely I think thats possible, and I think its closer than most people think ve to 10 years, tops. The two approaches outlined by Vosseither tinkering with mundane programs to make them more capable and effective or designing a single comprehensive AGI system speak to the long-standing philosophical feud that lies at the heart of AI research: the war between the neats and the scrufes. J. Storrs Hall, author of Beyond AI: Creating the Conscience of the Machine (Prometheus Books, 2007), reduces this dichotomy to a scientic approach vs. an engineering mind-set. The neats are after a single, elegant solution to the answer of human intelligence, Hall says. Theyre trying to explain the human mind by turning it into a math problem. The scrufes just want to build something, write narrow AI codes, make little machines, little advancements, use whatever is available, and hammer away until something happens. The neat approach descends from computer science in its purest form, particularly the war game studies of Von Neumann and his colleagues in the 1930s and 1940s. The 1997 defeat of world chess champion Garry Kasparov by IBMs Deep Blue computer is considered by many the seminal neat success. Up until that moment, the mainstream scientic community generally accepted the premise that AIs could be written to perform specic tasks reasonably well, but largely resisted the notion of superhuman computing ability. Deep Blue 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 starogrckih matematicara (npr. Euklidov algoritam za odredivanje najveceg zajednickog delioca dva broja), a i pre toga. Ipak, sve do pocetka dvadesetog veka nije se uvidala potreba za preciznim denisanjem pojma algoritma. Tada je, u jeku reforme i novog utemeljivanja matematike, postavljeno pitanje da li postoji algoritam kojim se (pojednostavljeno receno) mogu dokazati sve matematicke teoreme. Da bi se ovaj problem uopste razmatrao, bilo je neophodno najpre denisati (matematicki precizno) sta je to precizan postupak, odnosno sta je to algoritam. S3: Dositej Obradovic (svetovno ime Dimitrije) (Cakovo, 1744 Beograd, 1811) je bio srpski prosvetitelj i reformator revolucionarnog perioda nacionalnog budjenja i preporoda. Rodjen je u rumunskom delu Banata tadasnje Austrije. Skolovao se za kaludjera, ali je napustio taj poziv i krenuo na putovanja po celoj Evropi, gde je primio ideje evropskog prosvetiteljstva i racionalizma. Ponesen takvim idejama radio je na prosvecivanju svog naroda, prevodio je razna dela medju kojima su najpoznatije Ezopove basne, a potom je i sam pisao dela, prvenstveno programskog tipa, medju kojima je najpoznatije Zivot i prikljucenija. Dositej je bio prvi popecitelj (ministar) prosvete u Sovjetu 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 a mean distance of 140,000,000 miles, and the light and heat it receives from the sun is barely half of that received by this world. It must be, if the nebular hypothesis has any

176

11 Klasikacija

truth, older than our world; and long before this earth ceased to be molten, life upon its surface must have begun its course. The fact that it is scarcely one seventh of the volume of the earth must have accelerated its cooling to the temperature at which life could begin. It has air and water and all that is necessary for the support of animated existence.

E3: Principia Mathematica, the landmark work in formal logic written by Alfred North Whitehead and Bertrand Russell, was rst published in three volumes in 1910, 1912 and 1913. Written as a defense of logicism (the view that mathematics is in some signicant sense reducible to logic) the book was instrumental in developing and popularizing modern mathematical logic. It also served as a major impetus for research in the foundations of mathematics throughout the twentieth century. Along with the Organon written by Aristotle and the Grundgesetze der Arithmetik written by Gottlob Frege, it remains one of the most inuential books on logic ever written. Prilikom izdvajanja n-grama kori sc ena je vrednost n = 3. Pri tom je iz tekstova S1 i E1 izdvojeno po 10 najfrekventnijih n-grama. Oni c e c initi atribute instanci na osnovu kojih c e biti vr seno treniranje i testiranje. Trening i test skup su dati u tabeli 11.1. N-gram JE PR ANJ KO JA JE PO SE NJE U TH THE HE ING NG CO ER ND TO TO Trening skup S1 E1 0.0129 0 0.0125 0.0023 0.0076 0 0.0076 0 0.0076 0 0.0067 0 0.0067 0.0009 0.0062 0.0018 0.0058 0 0.0058 0 0 0.0212 0 0.0148 0 0.0120 0 0.0088 0 0.0078 0.0004 0.0074 0.0009 0.0069 0 0.0065 0.0018 0.0065 0.0009 0.0065 Test skup S3 E2 0.0201 0 0.0148 0 0.0027 0 0.0027 0 0.0040 0 0.0121 0 0.0080 0 0.0027 0.0016 0.0027 0 0.0067 0 0 0.0270 0 0.0202 0 0.0185 0 0.0017 0 0.0034 0 0.0051 0 0.0051 0 0.0101 0 0.0034 0 0.0034

S2 0.0131 0.0098 0.0082 0.0016 0.0033 0.0082 0.0147 0.0049 0.0065 0.0033 0 0 0 0 0 0 0 0 0.0049 0.0033

E3 0 0 0 0 0 0 0.0016 0.0032 0 0 0.0175 0.0191 0.0127 0.0032 0.0048 0 0.0032 0.0079 0.0016 0.0016

Table 11.1: Trening i test skup za klasikaciju tekstova prema jeziku. Za svaki 3-gram prikazana je njegova frekvencija u tekstu S1 i E1.

11.2 U cenje stabala odlu civanja Prilikom klasikacije bi ce kori sc eno Euklidsko rastojanje
n

177

d(x, y ) =
i=1

(xi yi )2

Potrebno je ispitati rastojanja od instanci test skupa do instanci trening skupa. d(S 2, S 1) = 0.0124 d(S 2, E 1) = 0.0417 d(S 3, S 1) = 0.0133 d(S 3, E 1) = 0.0450 d(E 2, S 1) = 0.0482 d(E 2, E 1) = 0.0149 d(E 3, S 1) = 0.0397 d(E 3, E 1) = 0.0141 Po sto je rastojanje od instance S2 do S1 manje nego od S2 do E1, zaklju cuje se da je S1 najbli zi sused instance S2. Zbog toga se instanca S2 prepoznaje kao tekst na sprskom jeziku. Sli cno se ispravno zaklju cuje i da je S3 tekst na srpskom, E2 tekst na tekst na engleskom jeziku. Posebno je zanimljivo da tekstovi S3 engleskom i E3 takode, i E2 po svom sadr zaju nemaju dodira sa instancama za trening S1 i E1 s to ne ometa postupak klasikacije.

11.2

U cenje stabala odlu civanja

Razmotrimo igru 20 pitanja. Jedan igra c zami slja neki predmet, a drugi treba da pogodi o kom je predmetu re c. Kako bi pogodio o kom predmetu se radi ima pravo da postavi 20 pitanja na koje odgovor mo igra c koji pogada ze biti da ili ne. Kada misli da je postavio dovoljno pitanja, igra c mo ze dati svoj sud o kom predmetu se radi i igra se zavr sava. O cito, proces ispitivanja se mo ze voru ima po jedno pitanje, osim u predstaviti u vidu stabla koje u svakom c vor listovima u kojima se nalazi sud igra ca o nepoznatom predmetu. Svaki c osim listova ima dve grane ozna cene sa da ili ne koje vode u podstablo koje odgovara nastavku ispitivanja posle razmatranog pitanja. Ovo je primer stabla odlu civanja. Ovakva stabla se mogu uop stiti zanemarivanjem ograni cenja na 20 pitanja i to bi se dozvolilo da odgovori ne moraju biti samo da ili ne, ve tako s c da mogu pripadati odredenom unapred denisanom skupu za dato pitanje. Ovakva stabla se mogu automatski nau citi iz primera koji za svaku instancu uklju cuju vrednosti njenih atributa i vrednost ciljne funkcije za tu instancu. U cenje stabala odlu civanja je metod aproksimacije diskretnih ciljnih funkcija u kome se nau cena funkcija predstavlja u vidu stabla. Sli cno igri 20 pitanja, voru stabla odgovara test nekog atributa instance, a grane koje izlaze svakom c vora razli iz c citim vrednostima tog atributa. Listovima odgovaraju vrednosti ciljne funkcije. Instance su opisane vrednostima svojih atributa. Klasikuju se polaze ci od korena, spu staju ci se niz granu koja odgovara vrednosti testiranog

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

178

11 Klasikacija

atributa instance koju klasikujemo. Klasa se dodeljuje instanci kad se dode do lista. U cenje stabala odlu civanja je ve c primenjeno u razli citim problemima. Jedan primer se odnosi na predvidanje budu ce potra znje za knjigama u bibliotekama, na osnovu nekih njihovih atributa (npr. jezik, datum objavljivanja, datum da ne poslednjeg iznajmljivanja itd.). Knjige za koje se predvida ce biti skoro tra zene se mogu smestiti u magacin. Istra zivanje je radeno u biblioteci univerziteta Harvard. Sredinom devedesetih stabla odlu civanja su primenjena u klasikaciji tumora i prognozi njihovog pona sanja. Svaka instanca je opisivana pomo cu 31 atributa, a klasikacije su date nezavisno od strane vi se stru cnjaka. U astronomiji stabla odlu civanja su primenjena u cilju razlikovanja zvezda i tragova kosmi ckih zraka na snimcima teleskopa Habl. Na osnovu 20 vorova, postignuta je prenumeri ckih karakteristika, sa stablima dubine do 9 c postoje primene i u ekonomiji i drugim ciznost klasikacije od 95%. Takode oblastima. enje stabla odlu Kori sc civanja nije podjednako pogodno za sve probleme u cenja. Potrebno je da se instance predstavljaju pomo cu vrednosti ksnog broja atributa. Skup vrednosti bi trebalo da bude diskretan i mali, mada se to bi se skup podena kontinualne atribute mo ze primeniti diskretizacija tako s lio u podintervale. Svakom podintervalu se pridru zuje oznaka koja zamenjuje vrednosti atributa iz tog intervala u zapisima instanci. Stabla odlu civanja se pokazuju posebno primenljiva u slu caju kada je neophodno predstavljanje disjunkcija uslova, kada podaci za trening sadr ze gre ske i kada u trening skupu postoje instance kojima nedostaju vrednosti nekih atributa. Ukoliko stablo odlu civanja instanci dodeljuje neku klasu, to zna ci da instanca ispunjava sve uslove koji su denisani putanjom od korena do odgovaraju ceg lista kroz stablo i oblika su atribut=vrednost. Stoga putanje kroz stablo predstavljaju konjunkcije ovakvih uslova. Za svaku klasu mogu ce je uo citi putanje koje se zavr savaju listovima koji odgovaraju toj klasi. Disjunkcija svih takvih konjunkcija deni se instance koje pripadaju datoj klasi prema datom stablu. Jedan od najpoznatijih algoritama za u cenje stabla odlu civanja je ID3 [?] emo se skoncentrisati. Ovaj algoritam konstrui na koji c se stablo od korena, voru koji je najbolji atribut koji se u datom c voru nani ze, pitaju ci se u svakom c mo ze testirati. Ovo se odreduje statisti ckim kriterijumom koji meri koliko dobro neki atribut sam klasikuje podatke. Atribut ne mo ze biti dva puta en u jednoj putanji od korena do lista. Za sve vrednosti odabranog atributa kori sc vorova naslednika, a podaci za treniranje se dele izmedu kreiraju se grane do c vorova tako da svaki od njih nasleduje ovih c primere koji imaju odgovaraju cu vorova naslednika ovaj vrednost prethodno testiranog atributa. Za svaki od c postupak se rekurzivno primenjuje sve dok nije ispunjen bar jedan od slede ca vora iskori eni su svi atributi, dva uslova: (1) u putanji od korena do trenutnog c sc voru imaju istu ili (2) sve instance za trening koje su pridru zene trenutnom c a oznaka instanci vrednost ciljnog atributa. Svakom listu se pridru zuje naj ce sc za trening koje su mu pridru zene. Algoritam je preciznije dat na slici 11.2. e biti kori en za izbor najbolBitno je pitanje statisti ckog kriterijuma koji c sc voru. ID3 bira atribut koji maksimizuje jeg atributa za testiranje u nekom c takozvani dobitak informacije na skupu instanci koje su pridru zene posmatra voru. Dobitak informacije predstavlja razlku entropije u odnosu na ciljni nom c atribut skupa instanci za trening S pre deljenja i prose cne entropije posle del-

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

11.2 U cenje stabala odlu civanja Algoritam: ID3(P rimeri, Atributi) Ulaz: P rimeri je skup instanci za trening, a Atributi je lista atributa koji se mogu testirati u cvorovima stabla. Izlaz: Stablo odlu civanja koje odgovara datim instancama 1. Napraviti koreni cvor stabla R. 2. Ako sve instance iz P rimeri pripadaju istoj klasi, vratiti cvor R sa oznakom te klase. 3. Ako je Atributi prazna lista, vrati cvor R ozna cen oznakom naj ce s ce klase koja se javlja u P rimeri. 4. U suprotnom Neka je A Atributi najbolji* atribut za testiranje u odnosu na P rimeri Neka je A atribut koji se testira u R Za svaku mogu cu vrednost vi atributa A Dodaj granu iz R koja odgovara testu A = vi Neka je P rimerivi podskup od P rimeri takav da svi njegovi elementi imaju vrednost vi atributa A Ako je P rimerivi prazan, onda na dodatu granu iz R dodati list sa oznakom naj ce s ce klase u P rimeri U suprotnom na dodatu granu nadovezati podstablo ID3(P rimerivi ,Atributi \ {A}) 3. Vratiti R. * Atribut je najbolji prema nekom statisti ckom kriterijumu. Figure 11.2: Algoritam ID3

179

jenja prema nekom atributu A. Entropija predstavlja meru neuredenosti nekog sistema. Ako sa pi ozna cimo verovatno cu da instanca pripada i-toj kasi, onda se entropija mo ze denisati slede cim izrazom:
c

Entropija(S ) =
i=1

pi log2 pi

Po deniciji va zi 0 log2 0 = 0. Entropija se mo ze interpretirati i kao minimalni o cekivani broj bitova potrebnih za kodiranje klasikacije proizvoljne instance iz S . Primera radi, neka je potrebno poslati informaciju o klasi instance udaljenom primaocu. Neka je broj klasa c i neka je p0 = 1 (tada je pi = 0 e instanca imati klasikaciju 0 za 1 i c). U tom slu caju je sigurno da c i nije potrebno nikakvo kodiranje informacije. U slu caju da je pi = 1/c za 0 i c, svi ishodi su jednako verovatni i za kodiranje je potrebno iskoristiti log2 c bitova. U slu caju raspodele koja nije uniformna, dodeljuju ci kra ce kodove javljaju, mo e e javljaju, a du klasama koje se c sc ze onima koje se rede ze se do-

180

11 Klasikacija

biti manja prose cna du zina kodiranja. Dobitak informacije stoga poredstavlja smanjenje u potrebnom broju bitova za kodiranje klase proizvoljne instance, kada je poznata vrednost koju na njoj ima atribut A. Dobitak informacije se formalno deni se na slede ci na cin: Dobitak (S, A) = Entropija(S )
v V red(A)

|Sv | Entropija(Sv ) |S |

(11.1)

gde je c broj klasa, odnosno vrednosti ciljnog atributa, pi udeo elemenata skupa S koji pripadaju klasi i u celom skupu S , V red(A) predstavlja skup svih mogu cih vrednosti atributa A, a Sv = {s S |A(s) = v }. Pored entropije, postoje i druge mere koje se mogu koristiti za merenje neuredenosti nekog skupa. Jedna jednostavna mera je gre ska klasikacije. Ona ini ukoliko se sve instance nekog skupa klasikuju predstavlja gre sku koja se c u najbrojniju klasu u tom skupu. Stoga, ako je pi verovatno ca da instanca pripada i-toj klasi, gre ska klasikacije se deni se izrazom Err(S ) = 1 max pi
i

Za ovu meru se mo ze denisati dobitak analogan opisanom dobitku informacije ukoliko se u izrazu 11.1 entropija zameni gre skom klasikacije. Primer 11.3 U tabeli 11.2 su date instance koje opisuju razli cite z ivotinje, sa datom klasikacijom koja ozna cava da li je z ivotinja opasna po c oveka. Izdvojili smo neko liko karakteristika koje bi mogle biti relevantne u odredivanju ciljne funkcije, ali smo namerno dodali dva atributa koji nisu relevantni broj nogu i parnost prose cne visine u okviru vrste, izra zene u centimetrima. Zivotinja Lav Ma cka Koza Zec Komodo zmaj Veli cina Velika Mala Mala Mala Velika Ishrana Meso Meso Biljke Biljke Meso Otrovnost Neotrovna Neotrovna Neotrovna Neotrovna Otrovna Broj nogu 4 4 4 4 4 Parnost visine Neparna Neparna Parna Neparna Neparna Opasna Da Ne Ne Ne Da

Table 11.2: Skup primera za trening Da bi se izgradilo stablo odlu civanja, za svaki od atributa je potrebno izra cunati dobitak informacije pri deljenju skupa podataka prema tom atributu. U prvom koraku, va zi: 2 2 3 3 Entropija(S ) = log2 log2 = 0.971 5 5 5 5 Ukoliko se izvr si podela instanci po vrednosti prvog atributa, dobijamo Entropija(S |M ala) = 1 log2 1 0 log2 0 = 0 Entropija(S |V elika) = 0 log2 0 1 log2 1 = 0 Dobitak (S, V elicina) = 0.971 2 3 0 0 = 0.971 5 5

11.2 U cenje stabala odlu civanja Sli cno se dobija: Dobitak (S, Ishrana) = 0.42 Dobitak (S, Otrovnost) = 0.322 Dobitak (S, Broj nogu) = 0 Dobitak (S, P arnost visine) = 0.171

181

Odavde se vidi da je najbolji atribut za testiranje u prvom c voru atribut Veli cina. Stablo koje se u ovom slu caju dobija primenom algoritma ID3 je dato na slici 11.3. U slu caju datih primera za u cenje, dobijeno stablo je bilo o cigledan uzbor i bez primene bilo kakve metodologije.
VELICINA

mala

velika

NE

DA

Figure 11.3: Jednostavno stablo odlu civanja Ne sto komplikovanije stablo odlu civanja mo ze se dobiti dodavanjem primera iz tabele 11.3. Zivotinja Zmija P cela ubica Morska krava Veli cina Mala Mala Velika Ishrana Meso Biljke Biljke Otrovnost Otrovna Otrovna Neotrovna Broj nogu 0 6 0 Parnost visine Parna Parna Parna Opasna Da Da Ne

Table 11.3: Dodatni primeri za trening Jedno ru cno konstruisano stablo koje je saglasno sa podacima za trening je dato na slici 11.4. Izbor lo seg atributa za testiranje u korenom c voru je namerno u cinjen. To dovodi do potrebe za ponavljanjem istih testova u levom i desnom podstablu, po sto informacija dobijena testiranjem u kornenu nije relevantna za odredivanje klase in u slu stance. Takode, caju z ivotinjske vrste sa parnom prose cnom visinom koja je otrovna, imamo nepotreban test vezan za njenu ishranu. U oba slu caja klasa je ista, pa se taj test mo ze zameniti listom sa klasom DA. Upotreba ID3 algoritma daje dosta bolje stablo odlu civanja. Vrednosti entropije i dobitka informacije se sada razlikuju: 1 1 1 1 Entropija(S ) = log2 log2 = 1 2 2 2 2 Ukoliko se izvr si podela instanci po vrednosti prvog atributa, dobijamo

182
PARNOST VISINE parna OTROVNOST neotrovna VELICINA mala NE otrovna ISHRANA neparna OTROVNOST neotrovna VELICINA velika ISHRANA biljke meso

11 Klasikacija

otrovna DA

velika biljke ISHRANA biljke meso DA

meso mala DA NE

NE DA

NE DA

Figure 11.4: Ru cno konstruisano stablo odlu civanja

3 2 2 3 Entropija(S |M ala) = log2 log2 = 0.971 5 5 5 5 1 1 2 2 Entropija(S |V elika) = log2 log2 = 0.918 3 3 3 3 Dobitak (S, V elicina) = 1 Sli cno se dobija: Dobitak (S, Ishrana) = 0.189 Dobitak (S, Otrovnost) = 0.549 Dobitak (S, Broj nogu) = 0 Dobitak (S, P arnost 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 o cigledno manje od ru cno konstruisanog i ima relevantnije atribute pri vrhu stabla, dok se dva nebitna atributa uop ste ne testiraju. Kao i drugi metodi u cenja, ID3 se mo ze shvatiti kao pretraga prostora hipoteza za onom koja najbolje odgovara podacima za trening. Prostor pretrage je potpun prostor svih stabala odlu civanja. Svaka diskretna funkcija se mo ze predstaviti nekim stablom odlu civanja, tako da se ne mo ze desiti da ciljna funkcija uva samo jednu hipotezu, nije u prostoru hipoteza. ID3 u svakom trenutku c pa je nemogu ce znati koliko ima drugih hipoteza koje su saglasne sa podacima za trening. Po sto nema vra canja u pretrazi (backtracking), ve c se stablo gradi 3 5 0.971 0.918 = 0.049 8 8

11.3 Mere kvaliteta i tehnike evaluacije klasikacije


OTROVNOST neotrovna VELICINA mala NE velika ISHRANA biljke meso otrovna

183

DA

NE

DA

Figure 11.5: Stablo odlu civanja konstruisano pomo cu ID3 algoritma od jednostavnijeg ka slo zenijem, postoji opasnost od dostizanja lokalnih optimuma koji nisu globalni. Jedna vrsta vra canja je odsecanje ili potkresivanje (prun e biti obja to ID3 u ing) stabla koje c snjeno kasnije. Zahvaljuju ci tome s ci iz svih podataka za trening odjednom, gre ske u pojedina cnim instancama ne dolaze toliko do izra zaja. Treba primetiti da ID3 preferira stabla sa manjom dubinom, kao i stabla u kojima se atributi koji nose ve ci dobitak informacije nalaze bli ze korenu. to izgradnja stabla po emu Ovo je posledica toga s cinje od praznog stabla pri c se dodaje nivo po nivo i na cina na koji se biraju atributi koji se pridru zuju vorovima. Anitet prema kra c cim stablima je zanimljiva pretpostavka jer je esto vode i u skladu sa odavno poznatim lozofskim principom kojim se c nau cnici - Okamovom o stricom: entitete ne treba umno zavati preko potrebe, odnosno najjednostavnije obja snjenje je verovatno i najbolje. Stabla odlu civanja sa manjom dubinom imaju manji broj listova. Svakoj putanji od krena do nekog od listova odgovara po jedno pravilo oblika IF A1 = v1 A2 = v2 ... An = vn T HEN Klasa = klasa koja odgovara listu gde su Ai 0 i n tributi koji se testiraju na putanji od korena do odgo vora, a vi njihove vrednosti za datu instancu. Kako stabla sa manvaraju ceg c jom dubinom, predstaljaju manje skupove ovakvih pravila, mo zemo ih smatrati jednostavnijim.

11.3

Mere kvaliteta i tehnike evaluacije klasikacije

Kada se govori o tra zenju modela koji najbolje aproksimira ciljnu funkciju, potrebno je dati i mere kvaliteta modela, odnosno u cenja. Mogu se koristiti razli cite mere u zavisnosti od vrste problema, ali za neke vrste problma ve c postoje neke op ste prihva cene mere. U slu cju problema klasikacije se obi cno

184

11 Klasikacija

koristi preciznost, odnosno broj ta cno klasikovanih instanci podeljen ukupnim lanaka, smo upbrojem instanci. U primeru sa prepoznavanjem ra cunarksih c lanaka i ako ravo koristili preciznost kao meru kvaliteta. Ako je n ukupan broj c lanaka koji su klasikovani kao ra sa r ozna cimo broj ra cunarskih c cunarski lanci i sa o broj ostalih c lanaka koji su klasikovani kao da nisu ra c cunarski, tada je preciznost u tom primeru r+o n U nekim slu cajevima preciznost nije adekvatna mera. Ukoliko postoje dve klase i jedna je zna cajno manja od druge, mogu ce je dobiti visoku preciznost to c e se sve instance klasikovati u ve tako s cu grupu. Takav je slu caj sa testovima koji ustanovljavaju da li je pacijent oboleo od neke bolesti. Neka bolest ima samo 1% ljudi u populaciji. Test koji bi uvek prijavljivao da pacijent nema bolest bi imao preciznost od 99%, ali je neupotrebljiv. Stoga je u takvim slu cajevima bitna mera osetljivost klasikatora, odnosno njegova mogu cnost da primeti instance koje se tra ze (npr. bolesne pacijente). Op stije, neka su date dve klase C+ i C koje smatramo pozitivnim i negativnim primerima neke kategorije. Na primer pacijenti koji imaju i pacijenti koji nemaju neku bolest. Tada pod stvarno pozitivnim instancama podrazumevamo pozitivne instance kojie su prepoznate kao pozitivne. Pod stvarno negatinvim, instance koje su negativne i prepoznate kao negativne. Pod la zno pozitivnim podrzaumevamo instance koje su negativne, ali su gre skom u klasikaciji progla sene pozitivnim i pod la zno negativnim podrazumevamo instance koje su pozitivne, ali su gre skom klasikovane kao negativne. Brojeve ovih instanci ozna cavamo redom SP , SN , LP i LN . Ove brojeve obi cno zapisujemo u takozvanoj matrici konfuzije koja po vrstama prikazuje kako su instance klasikovane, a po kolonama prikazuje koje su stvarne klase instanci. Ova matrica je prikazana tabelom 11.4. p= P SP LN N LP SN

KP KN

Table 11.4: Vrste matrice konfuzije u zbiru daju broj instanci koje su klasikovane pozitivno (KP) i broj instanci koje su klasikovane 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 osetljivost je denisana kao: U SP = SP SP + LN

odnosno broj stvarno pozitivnih podeljen brojem svih pozitivnih (i onih koji su klasikovani kao pozitivni i onih koji su gre skom klasikovani kao negativni). Udeo stvarno negativnih se analogno deni se U SN = SN SN + LP

Udeo la zno pozitivnih i la zno negativnih se deni su sli cno:

11.3 Mere kvaliteta i tehnike evaluacije klasikacije

185

LP LP + SN Preciznost se mo ze izra cunati kao U LP = P rec =

U LN =

LN LN + SP

SP + SN SP + LP + SN + LN

Primer 11.4 Neka je testirano 400 ispitanika. Od toga 4 imaju bolest zbog koje se testiraju, a ostali ne. Neka je test dao pozitivnu klasikaciju u slu caju 2 osobe koje obe imaju bolest. Matrica konfuzije data je tabelom 11.4 P 2 2 N 0 396

KP KN

Table 11.5: Matrica konfuzije vezana za klasikaciju obolelih. Odavde se mogu izra cunati mere kvaliteta: 398 = 0.995 400 2 U SP = = 0.5 4 396 U SN = =1 396 0 U LP = =0 396 2 U LN = = 0.5 4 Preciznost je izuzetno visoka i sugeri se odli cno pona sanje klasikatora. S druge strane poznavanje udela stvarno pozitivnih otkriva da je ovaj utisak la zan zato s to je identikovan mali broj elemenata pozitivne klase. P rec = Pored izbora mere za evaluaciju klasikacije bitno je izabrati i na cin na koji se ta mera ocenjuje. Cesta praksa je da se model trenira na jednom skupu podataka, a da se evaluira na odvojenom skupu podataka za testiranje. Pri tome se podela raspolo zivih podataka na podatke za trening i podatke za testiranje vr si slu cajnim izborom podataka za testiranje. Medutim, ovakav na cin evaluacije mo ze dovesti do zna cajnih oscilacija u vrednostima mera kvaliteta u zavisnosti od toga koji je podskup izabran. Pouzdaniji na cin evaluacije nau cenog znanja je takozvana unakrsna validacija. Ceo skup podataka kojim se raspola ze se deli na n pribli zno jednakih podskupova. Jedan podskup se izdvaja i trening se vr si na ostalih n 1 podskupova. Posle treninga, kvalitet nau cenog znanja se ocenjuje na izdvojenom podskupu. Ovaj posupak se ponavlja za sve ostale izdvojene podskupove i kao nalna ocena kvaliteta se uzima prosek dobijenih ocena za svaki od podskupova. Za vrednost n se obi cno uzima broj 10. Ovakav postupak daje stabilniju ocenu kvaliteta. Pored toga, prednost ovog metoda je da se u svakom od n koraka unakrsne validacije koristi velika koli cina podataka pri treniranju, a da sve raspolo zive instance u jednom trenutku budu ene za testiranje. iskori sc

186

11 Klasikacija

11.4

Preterano prilagodavanje modela podacima za trening

Vrlo zna cajna tema pri evaluaciji nau cenog modela je mogu cnost da se prilikom treninga model previ se prilagodi speci cnostima podataka za trening i da zbog toga daje lo se rezultate kada se primeni na drugim podacima. Naime, iste slu podaci za trening mogu imati odredene karakteristike kao plod c cajnosti, mogu predstavljati i pristrasan uzorak celog skupa uma, ali takode odnosno s esto te podataka. U praksi, podatke je c sko sakupiti i obi cno se mora raditi sa podacima koji su raspolo zivi bez obzira na njihove manjkavosti. Stoga, iako je potrebno da se postigne visok nivo preciznosti prilikom treniranja modela, je potrebno paziti da ne dode do preteranog prilagodavanja takode podacima. Osnovni razlog zbog koga dolazi do preteranog prilagodavanja podacima je bogatstvo prostora hipoteza, odnosno skupa dopustivih modela. U bogatijem skupu je lak se na ci model koji dobro odgovara podacima. Primera radi, ukoliko se pri u cenju dopu staju samo stabla dubine 1, koja testiraju samo jedan atribut svake instance, jasno je da takva stabla ne mogu lako posti ci visoku preciznost klasikacije. Ona predstavljaju previ se grube modele koji ne mogu da opi su zna cajne zakonitosti u podacima. S druge strane, ukoliko se dozvoli enje stabala proizvoljne dubine, ukoliko je potrebno, mogu kori sc ce je na ci stablo koje je u stanju da razlikuje bilo koje dve instance, odnosno da postigne savr senu preciznost na podacima za treniranje. Medutim, stabla koja su vrlo duboka i precizno opisuju svaku i najnebitniju speci cnost podataka za tren iri skupovi podataka ne moraju ing, se u praksi pokazuju nepouzdanim, po sto s uvek imati sve speci cnosti skupa podataka za trening. Ovde se uo cava zna caj ranije pomenutog koncepta apstrakcije. Adekvatna hipoteza bi trebalo da apstrahuje, odnosno zanemari, takve speci cnosti. U lanaka mogli smo izostaviti ograni primeru prepoznavanja ra cunarksih c cenje da se re ci moraju nalaziti u nekom re cniku ra cunarske terminologije. U tom slu caju, ukoliko bi se koristile stranice koje pi se mala skupina autora, mogu ce je da bi se njihova imena mogla pokazati kao visokofrekventne re ci karakter lanke, s to bi bio vrlo lo im isti cne za ra cunarske c s kriterijum prepoznavanja c lanci koje pi bi se pojavili ra cunarski c su drugi autori. U vezi sa prethodnim razmatranjem treba primetiti dve zakonitosti. Sa pove canjem dozvoljene dubine stabla, pove cava se mo c u cenja, odnosno verovatno ca onaj koji dobro opisuje podatke. e u skupu dopustivih modela biti naden da c Zato se sa pove canjem dozvoljene dubine stabala, smanjuje gre ska klasikacije. Dalje, ukoliko stablo dubine, na primer, 1 ima visoku preciznost, to zna ci da je u podacima nadena jaka i vrlo jednostavna zakonitost. Stoga je za o cekivati da irem skupu podataka, odnosno o ona postoji i u s cekivano odstupanje gre ske na irem skupu podataka od gre s ske koja se prime cuje na trening skupu bi trebalo da bude malo. S druge strane, ukoliko je stablo visoke preciznosti vrlo duboko, to zna ci da je uo cena zakonitost u podacima vrlo kompleksne prirode i stoga mo ze biti speci cna samo za podatke u trening skupu. Odnosno, o cekivano irem skupu podataka od gre odstupanje gre ske na s ske na trening skupu mo ze biti veliko. Na slici 11.6 prikazane su tri krive. Jedna, opadaju ca, predstavlja pona sanje gre ske klasikacije na trening skupu u zavisnosti od dozvoljene du irem bine stabla. Druga, rastu ca, predstavlja pona sanje odstupanja gre ske na s skupu podataka od gre ske na trening podacima u zavisnosti od dozvoljene du-

11.4 Preterano prilagodavanje modela podacima za trening

187

Figure 11.6: Gre ska klasikacije u zavisnosti od bogatsktva skupa dopustivih modela. bine stabla. Tre ca predstavlja gornju granicu gre ske klasikacije u zavisnosti od dozvoljene dubine stabla i ona je zbir prethodne dve. O cigledno, i premale i prevelike vrednosti za dozvoljenu dubinu stabla vode lo sim rezultatima. Prve usled neeksibilnosti dozvoljenih modela, a druge zbog preteranog pri lagodavanja modela trening podacima. Bitno je naglasiti da je isto rezonovanje moglo biti sprovedeno i za druge metode ma sinskog u cenja. Pri tom u analizi ne bi gurisala dozvoljena dubina stabla, ve c odredena op sta mera slo zenosti skupa modela o kojoj ne cemo detaljnije govoriti. Adekvatno upravljanje bogat ini klju stvom prostora hipoteza c c dobre generalizacije. Neki algoritmi u cenja kao metoda potpornih vektora su konstruisani tako da prilikom izbora modela automatski re savaju i ovaj problem. U slu caju kad model koji najbolje aproksimira ciljnu funkciju na raspolo zivim najbolje aproksimira ciljnu funkciju na svim mogu instancama, takode cim instancama, ka ze se da algoritam za u cenje dobro generalizuje iz prikazanih primera. Kod stabala odlu civanja, mogu ca su dva pristupa re savanju problema preter anog prilagodavanja trening podacima, a to su: zaustavljanje rasta stabla u toku njegove izgradnje i naknadno odsecanje. Obi cno se preferira druga mogu cnost. voru predstavlja zamenu celog podstabla c iji Odsecanje stabla u odredenom c vorom, s tim s to mu se dodeljuje oznaka klase u koju se poje to koren tim c e klasikuju. Odsecanje se vr to se iteradaci u tom podstablu naj ce sc si tako s vorovima u kojima najvi tivno ponavlja u c se pove cava preciznost klasikacije na skupu za testiranje sve dok dalje odsecanje ne po cne da smanjuje preciznost klasikacije.

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

188

11 Klasikacija

Glava 12

Regresija
Problem regresije predstavlja problem predvidanja vrednosti neprekidnog atributa neke instance na osnovu vrednosti njenih drugih atributa. Dakle, regresija se mo ze videti kao aproksimacija neprekidne ciljne funkcije. Umesto o atribu e e se govori o promenljivim. Formalno, retima, u terminologiji regresije, c sc gresiona funkcija koja povezuje zavisnu promenljivu Y i nezavisne promenljive X1 , X2 , . . . , Xn je denisana izrazom r(x1 , x2 , . . . , xn ) = E (Y |X1 = x1 , X2 = x2 , . . . , Xn = xn ) gde E ozna cava matemati cko o cekivanje. Promenljiva Y se naziva odzivnom promenljivom, a promenljive Xi prediktorima. Problem regresije se svodi na problem aproksimacije regresione funkcije r. Ovo se mo ze raditi razli citim metodama koje uvode razli cite pretpostavke o regresionoj funkciji. Najjednostavnije su metode linearne regresije. Primene regresije su mnogobrojne ve c u najjednostavnijoj, linearnoj, varijanti. One uklju cuju procenu rizika u ulaganjima, procenu uticaja prerade rude na ekosistem, procenu smrtnosti u zavisnosti od z cno. ivotnih navika i sli

12.1

Linearna regresija

Linearna regresija predstavlja problem regresije u kome se pretpostavlja lin odzivne promenljive i prediktora. Formalnije, pretpostavlja earna veza izmedu se veza oblika Y = X + Pri tome je Y slu cajna promenljiva, X je vektor poznatih prediktora, je nepoznati vektor koecijenata, a je slu cajna promenljiva koja predstavlja slu cajnu um. Poreklo s uma mo gre sku, odnosno s ze biti nesavr senost opreme kojom se to izbor linearne zavvr si merenje, slu cajna priroda samog fenomena ili to s isnosti predstavlja svesnu odluku da se ina ce kompleksna zavisnost donekle pojednostavi radi lak se analize. Zadatak linearne regresije je odredivanje ko ecijenata koji u nekom smislu najbolje odgovaraju opa zanjima iz iskustva, odnosno trening podacima. Kako se gre ska ne modelira, ve c se modelira samo zakonitost za koju se pretpostavlja da postoji u podacima, rezultuju ci model bi

190 trebalo da ima slede ci oblik 0 + 1 x1 + 2 x2 + . . . + n xn y =

12 Regresija

(12.1)

Bitno je naglasiti da se izraz linarna u nazivu linearna regresija odnosi na , a da prediktorske promenljive mogu biti linearnost relacije po parametrima nelinearno transformisane. Primer 12.1 Neki primeri linearnih modela su: 0 + 1 x1 + 2 x2 y = 0 + 1 cos(x1 ) + 2 x2 + 3 ex3 y = 2 0 + 1 x1 + 2 x2 + 3 x1 x2 y = Slede ci primeri ne predstavljaju linearne modele: y = y =
1 x1 2+x2 1 x1 ) 2 x2 cos( e3 x3

odzivne promenljive i Pored osnovnog zadatka modeliranja veze izmedu prediktora radi predikcije odzivne promenljive, linearna regresija je korisna i za ustanovljavanje ja cine uticaja nekog prediktora na odizvnu promenljivu. ozna Naime, ve ce apsolutne vrednosti koecijenata cavaju ja ci uticaj predik tora uz koji stoje. Znak koecijenta odreduje smer uticaja prediktora. Takode se mo ze meriti statisti cka zna cajnost ovog uticaja, ali se radi jednostavnosti u i nastavku fokusiramo samo na osnovni problem odredivanja koecijenata proveru kvaliteta nau cenog modela. Najjednostavniji slu caj linearne regresije je predvidanje odzivne promenljive Y na osnovu samo jednog prediktora X . Primera radi, mo zemo govoriti o predvidanju telesne te zine u zavisnosti od visine. Primetna je zakonitost da su visoki ljudi uglavnom te zi od niskih ljudi. Tu zavisnost je potrebno modelirati. Medutim, postoje i odstupanja. Kako su odstupanja od prose cne te zine utoliko s to su ve emo smatrati s umom i ne redja ca, ova odstupanja c cemo ih modelirati. Linearni model je u ovom slu caju oblika 0 + 1 x y = to je standardna jedna s cina linearne funkcije. emu svaka odgovara jednom ispiNa slici 12.1 je prikazano 100 ta caka pri c taniku. Koordinata x predstavlja visinu, a y telesnu te zinu. Na slici se mo ze primetiti op sti trend linearnog pove canja telesne te zine u zavisnosti od visine primetno je i da mali broj ta koji je prikazan pravom. Takode, caka zna cajno odstupa. Ovakve ta cke nazivamo izuzecima (eng. outliers). Prikazana prava predstavlja linearni model datih podataka. Metod kojim se do njega dolazi bi ce prikazan u nastavku. enja op U slu caju kori sc ste jedna cine linearnog modela 12.1, mogu ce je uklju citi ve ci broj prediktora pri predvidanju odzivne promenljive. Iz primetne varijabilnosti telesne te zine u odnosu na regresioni model, shvata se da visina nije dovoljna da u potpunosti objasni variranje telesne te zine. Novi prediktori koji

12.1 Linearna regresija

191

120

G G G G G G G G GG G G G G G G G GG G G G GG G G G G G G G G G G G G G G G G G G G GGG G G G G G GG G G G G G G GG G G G G G G G G G G

G G GG G

100

80

G G GG G G G G G

60

G G G G G

40

G G G

150

160

170 x

180

190

200

telesna te Figure 12.1: Primer jednostavne regresije kojom se predvida zina na osnovu visine. bi vodili ka pobolj savanju predvidanja mogu da se odnose na na cin z ivota pojedinaca koliko vremena dnevno provode u sede cem polo zaju, koliko se bave sportom, koliko kalorija unose dnevno i sli cno. Umesto prave, u ovakvom slu caju regresioni model bi odredivao jednu hiperpovr s. Osnovni kriterijum izbora koecijenata linearnog modela je smanjivanje vrednosti koje model predvida i vrednosti koje odzivna odstupanja izmedu e se formuli promenljiva ima u podacima. Ovaj problem se naj ce sc se kao problem minimizacije (nala zenja minimuma) srednjekvadratne gre ske E ( y) = 1 n
n

(yi y i )2
i=1

pri tome je n broj instanci u trening skupu, yi su vrednosti odzivne promenljive regresioni model. Koecijenti kod tih instanci, a y i su vrednosti koje predvida se izra cunavaju iz trening podataka (xi1 , xi2 , . . . , xim , yi ) po formuli = (X X )1 X Y emu je pri c X= 1 1 . . . 1 x11 x21 . . . x n1 x12 x22 .. . x n2 . . . x1m x2m xnm Y = y1 y2 . . . yn

je potencijalna lo Osnovni problem pri odredivanju koecijenata sa uslovljenost matrice X . Naime, mogu ce je da su neki prediktori linearno zavisni ili

192

12 Regresija

da su jako korelirani. U tom slu caju matrica X , pa i X X je neinvertibilna ili lo se uslovljena (za male promene elemenata polazne matrice, mogu ce su ogromne promene elemenata inverzne matrice), odnosno, koecijenti se ne mogu izra cunati ili su previ se nestabilni. U takvom slu caju se pribegava takozvanom postupku regularizacije. Matrici X X se dodaje dijagonalna komponenta = (X X + I )1 X Y gde je I jedini cna matrica. Ova modikacija re sava problem invertibilnosti, ali predstavlja namerno uno senje gre ske i time naru sava ta cnost postupka. Zbog toga je potrebno da konstanta bude mala, na primer, 0.01 ili 0.001, tako da teta zbog unesene gre je korist od regularizacije ve ca nego s ske. Ovakva modi esto se koristi. kacija regresije se na engleskom naziva ridge regression i c

12.2

Pretpostavke linearne regresije

Postoje dve osnovne pretpostavke linearne regresije. Prva je da je broj trening podataka ve ci od broja prediktora. Nju je u praksi uglavnom lako zadovoljiti. Nisu retki domeni u kojima je te sko do ci do novih podataka, ali ni broj prediktora obi cno nije preveliki. Druga pretpostavka je da je slu cajna promenljiva ini s um normalno raspodeljene sa raspodelom koja c N (0, 2 ) gde je standardna devijacija konstantna. Neformalno, ovo zna ci da se pretpostavlja da se gre ske poni stavaju, odnosno da se prebacivanja i podbaci esto, da su pri tom velike gre vanja javljaju jednako c ske vrlo malo verovatne, kao i da veli cina gre ske ne zavisi od stvarne veli cine promenljive Y . Vi se o ispitivanju ovih poretpostavki bi ce re ceno u nastavku.

12.3

Ispitivanje kvaliteta linearne regresije

Ispitivanje kvaliteta linearne regresije uklju cuje skup thenika i mera kvaliteta kojima se proverava zadovoljenost uslova primenljivosti tehnike linearne re esto naziva gresije, kao i kvalitet samog nau cenog modela. Ovaj postupak se c i dijagnostikom modela. Ispitivanje zadovoljenosti uslova za primenu linearne regresije bi formalno enjem statisti trebalo raditi kori sc ckih testova. Medutim kako je sama tehnika esto daje zadovoljavaju dosta robusna, odnosno c ce rezultate i kad su te pret esto vr postavke donekle naru sene, ove provere se c se neformalno inspekci uma se potvrduje jom podataka pomo cu dijagrama. Normalnost raspodele s inspekcijom histograma gre saka ri = yi y i koje nazivamo rezidualima. Pretpostavka da veli cina gre ske ne zavisi od stvarne veli cine promenljive Y se obi cno potvrduje inspekcijom graka koji prikazuje reziduale ri u zavisnosti od predvidenih vrednosti y i . Ukoliko se na ovom graku ne uo cava zavis te dve veli nost izmedu cine, smatra se da je pretpostavka ispunjena. S druge strane, ukoliko se mo ze uo citi zavisnost, smatra se da pretpostavka nije ispunjena i da se model mo ze popraviti dodavanjem novih prediktora ili primenom druga cijih metoda.

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

12.3 Ispitivanje kvaliteta linearne regresije

193

Osnovna mera kvaliteta linearne regresije je srednjekvadratna gre ska, koja meri odstupanje predvidenih vrednosti od stvarnih i ra cuna se po formuli E ( y) = 1 n
n

(yi y i )2
i=1

to manja, medutim Po zeljno je da srednjekvadratna gre ska bude s ukoliko ne mamo konkretan zahtev za postizanjem odredene srednjekvadratne grev ske, esto koriste i druge te sko je re ci da li je u cenje uspe sno ili ne. Zbog toga se c mere. Cesta je upotreba Pirsonovog koecijenta korelacije. dva uzorka xi i yi , koji odgovaraju Pirsonov koecijent korelacije izmedu nekim promenljivim X i Y , se ra cuna po formuli r(X, Y ) =
1 n n 1 i=1 (xi x)(yi y ) n n n 1 i=1 (xi x) i=1 (yi n

y)

gde nadvu cena linija ozna cava prosek uzorka. Izrazi pod korenom se nazivaju uzora ckim varijansama za X i Y . Vrednosti koecijenta korelacije r(X, Y ) = promenljivih X i Y pri c emu pozitivan 1 ozna cavaju linearnu vezu izmedu znak zna ci da Y raste kako X raste, a negativan zna ci da Y opada kako X raste. Neformalno, ova mera se mo ze shvatiti kao mera linearne zavisnosti promenljivih X i Y pri c emu vrednost 0 zna izmedu ci potpuno odsustvo linearne korelacije. Jo s va znije, ova mera se mo ze povezati sa srednjekvadratnom gre skom. Cesto se ka ze da r2 (X, Y ) predstavlja udeo varijanse promenljive Y koji promenljiva X obja snjava. Smisao ovog tvrdenja je slede ci. Ukoliko se enja bilo kakvih metoda predikcije pri predvidanju odreknemo kori sc vrednosti promenljive Y , najmanju srednjekvadratnu gre sku o cekujemo ukoliko uvek predvidamo vrednost y . Odnosno, ako kao predikcioni model za Y koristimo prosek opa zenih vrednosti Y . Pri tome je srednjekvadratna gre ska E (y ) = 1 n
n

(yi y )2
i=1

odnosno uzora cka varijansa za Y . Rastojanja koja ulaze u ovu gre sku su prikazana enja linearnog regresionog modela, srednjekna slici 12.2. U slu caju kori sc vadratna gre ska je n 1 E ( y) = (yi y i )2 n i=1 Rastojanja koja ulaze u ovu gre sku su prikazana na slici 12.3. Ova, preostala, u od prediktora X , odnosno tu preostalu gre ska se ne mo ze objasniti zavisno sc gre sku mo zemo smatrati neobja snjenom. Ispostavlja se da se polazna srednjekvadratna gre ska mo ze razlo ziti po formuli E (y ) = odnosno da va zi 1 n 1 n
n

(yi y )2 =
i=1 n

1 n

(yi y i )2 +
i=1

1 n

( yi y )2
i=1

( yi y )2 = E (y ) E ( y)
i=1

194

12 Regresija

Figure 12.2: Grak reziduala u zavisnosti od predvidenih vrednosti telesne te zine.

Figure 12.3: Grak reziduala u zavisnosti od predvidenih vrednosti telesne te zine.

12.3 Ispitivanje kvaliteta linearne regresije

195

0 30

10

15

20

20

10

10

20

30

Figure 12.4: Histogram reziduala u predvidanju telesne te zine. polazne i neobja Dakle, izraz sa leve strane predstavlja razliku izmedu snjene gre ske, odnosno varijanse, iliti obja snjeni deo varijanse. Ispostavlja se da za koecijent korelacije va zi relacija r2 (X, Y ) =
n yi i=1 ( n ( i=1 yi

y )2 y )2

to obja s snjava zna cenje tvrdnje da njegov kvadrat predstavlja udeo varijanse promenljive Y koji promenljiva X obja snjava. Pomo cu ove mere se mo ze oceniti koliko je linearni model zaista koristan u odnosu na jednostavno poznavanje proseka neke veli cine. U slu caju da se radi o op stem slu caju regresije, postoji ve ci broj prediktora, pa se koecijent korelacije ne mo ze ra cunati po istoj formuli. U tom slu caju, , Y ). U slu on se ra cuna kao r(Y caju jednog prediktora ova vrednost je jednaka linearno povezane. r(X, Y ) po sto su veli cine X i Y I u slu caju regresije, mogu ce je koristiti unakrsnu validaciju na isti na cin to je mera kvaliteta koja se ra kao kod klasikacije, osim s cuna promenjena. Primer 12.2 U slu caju primera sa predikcijom telesne te zine u zavisnosti od visine na slici 12.4 prikazan je histogram reziduala. Prikazana raspodela je bliska normalnoj ( sto je potvrdeno i statisti ckim testom). Na slici 12.5 prikazan je grak zavisnosti rezidu reziduala i ala od predivdenih vrednosti. Kako raspodela ne odaje zavisnost izmedu potvrdeno predvidenih vrednosti ( sto je takode i statisti ckim testom), zaklu cuje se da su u tom problemu pretpostavke linearne regresije ispunjene. Koecijent korelacije iznosi 0.715 s to zna ci da promenljiva X obja snjava preko pola varijanse promenljive Y , ali i da postoji prostor da se predikcija dalje popravi dodavanjem novih prediktora.

196

12 Regresija

20

G G G G G G G G G G G G G G G GG G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G GG G G G G G G G G G G G GG G G G G G G G G G

G G G G G

10

G G G G

GG

10

G G

20

50

60

70

80

90

100

Figure 12.5: Grak reziduala u zavisnosti od predvidenih vrednosti telesne te zine.

12.4

Preterano prilagodavanje modela podacima za trening

Fenomen preteranog prilagodavanja podacima za trening koji je obja snjen u kontekstu klasikacije, mogu c je i u problemu regresije (ne nu zno linearne). emo iskoristiti priliku da ga jo Zbog toga c s jednom prokomentari semo u druga cijem okviru ma sinskog u cenja. Osnovni smisao preteranog prilagodavanja trening podacima je i dalje isti da se model koji ima dobre mere kvaliteta na trening podacima, lo se pona sa na drugim podacima. Medutim, novi primeri dopri bogatstva skupa dopustivih modela i kvaliteta nose razumevanju veze izmedu u cenja. Na slici 12.6 prikazan je jedan skup od 20 instanci za trening koje se sastoje od jednog prediktora i odzivne promenljive. Linearni model je nau cen linearnom regresijom. Mo ze se primetiti da on ne prolazi direktno kroz trening podatke, odnosno za svaki trening podatak postoji manja ili ve ca gre ska kada se vr si predvidanje odzivne promenljive na osnovu datog prediktora. Druga cije re ceno, linearni model se ne mo ze potpuno prilagoditi podacima za trening. Linearne modele mo zemo smatrati jednostavnim i neeksibilnim. S druge strane, o cigledno je da on dobro opisuje op sti linearni trend koji se u enjem podacima vidi. Slika 12.7 prikazuje aproksimaciju datih podataka kori sc modela iz skupa svih polinoma proizvoljnog stepena. Izabrani polinom prolazi kroz sve ta cke koje predstavljaju trening podatke i stoga je gre ska tog modela na trening podacima jednaka nuli. Medutim, posmatraju ci globalni izgled izabranog modela, vidi se da on ne opisuje nikakvu zakonitost u podacima. Os-

12.4 Preterano prilagodavanje modela podacima za trening

197

ta ine njegovo kori enje u predikciji potpuno cilacije koje pravi izmedu caka c sc to proizvoljni polinomi c ine previ nepouzdanim. Problem je upravo u tome s se bogat skup mogu cih modela. Za svaki trening skup mo ze se na ci model koji ga savr seno opisuje. Medutim, prilagodavaju ci se trening podacima do krajnosti, gubi se svaka mo c generalizacije. Sli cni zaklju cci va ze i za druge previ se bogate skupove dopustivih modela, a ne samo za polinome.

20

G G G G G G G G

10

15

G G G G G G

G G

0
G

10

15

20

Figure 12.6: Linearni model sa najmanjom srednjekvadratnom greskom na instancama za trening.

198

12 Regresija

20

G G G G G G G G

10

15

G G G G G G

G G

0
G

10

15

20

Figure 12.7: Polinomijalni model sa najmanjom srednjekvadratnom greskom na instancama za trening

Glava 13

Klasterovanje

200

13 Klasterovanje

Deo IV

Re senja zadataka

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

Glava 14

Re senja zadataka
1. Pretpostavimo suprotno pretpostavimo da formula (D A) B nije tautologija, 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 odatle Iv (D) = 1, Iv (A) = 1 i Iv (B ) = 1. Formula (A C ) D je tautologija, pa va zi Iv ((A C ) D) = 1. Kako je Iv (D) = 0, mora da va zi Iv (A C ) = 0, odakle sledi da je Iv (C ) = 0 (jer je Iv (A) = 1). S druge strane, formula A (B C ) je tautologija, pa va zi Iv (A (B C )) = 1. Kako je Iv (A) = 1, mora da to je va zi Iv (B C ) = 1. Va zi Iv (B ) = 1, pa mora da va zi i Iv (C ) = 1, s u kontradikciji sa Iv (C ) = 0. Dakle, polazna pretpostavka je bila pogre sna, odakle sledi da je formula (D A) B tautologija. 10. Doka zimo najpre, metodom istinitosnih tablica, da je formula (A (B C )) (((A C ) D) ((D A) B )) tautologija:
(A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 (B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 C )) 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 (((A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 C) 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 D) 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 ((D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 A) 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 B )) 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 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, na osnovu pretpostavke, formula (A C ) D je tautologija, pa na osnovu teoreme 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. Sli cno, ako je v (p) = 1 i v (q ) = 1, onda je Iv (A q ) = Iv (A) i Iv (p) = 0, pa je

PDF PASSWORD REMOVED WITH 4DOTS SOFTWARE PDF PASSWORD REMOVER GET A FREE TRIAL COPY AT www.pdfdocmerge.com

204

14 Re senja zadataka

Iv ((A q ) p) = 1 Iv (A). Analogno odredujemo istinitosnu vrednost date formule za svaku kombinaciju vrednosti v (p) i v (q ). Te vrednosti prikazane su u narednoj tablici:
((A 0 Iv (A) 0 Iv (A) q) 0 1 0 1 1 1 1 1 Iv (A) 1 1 0 0 p) 0 0 1 1 Iv (A) Iv (A) Iv (A) 1 ((p 0 0 1 1 1 1 1 0 1 0 1 0 q) 0 1 0 1 Iv (A) Iv (A) Iv (A) 1 A)

Dakle, da bi data formula bila tautologija mora da va zi Iv (A) = 1 u slu cajevima v (p) = v (q ) = 0, v (p) = 0, v (q ) = 1, v (p) = 1, v (q ) = 0, dok u slu caju v (p) = v (q ) = 1, formula A mo ze da ima proizvoljnu vrednost. Dakle, formula A za koju u svakoj valuaciji va zi Iv (A) = 1 ispunjava uslov zadatka, pa A mo ze biti formula . 13 Pretpostavimo da va zi A1 , A2 , . . . , An |= B . Pretpostavimo da formula (A1 A2 . . . An ) B nije tautologija. Tada postoji valuacija u kojoj je formula B neta cna, a formula (A1 A2 . . . An ) ta cna. Ako je u toj valuaciji formula (A1 A2 . . . An ) ta cna, onda je ta cna i svaka od formula A1 , A2 , . . ., An . S druge strane, kako va zi A1 , A2 , . . . , An |= B , sledi da je u toj valuaciji ta cna i to protivre formula B , s ci prethodnom zaklju cku da formula B nije ta cna u toj valuaciji. Dakle, pogre sna je pretpostavka da (A1 A2 . . . An ) B nije tautologija, tj. va zi |= (A1 A2 . . . An ) B . Pretpostavimo da va zi |= (A1 A2 . . . An ) B . Pretpostavimo da ne va zi A1 , A2 , . . . , An |= B . To zna ci da postoji valuacija u kojoj je svaka od formula A1 , A2 , . . ., An ta cna, a formula B nije. U toj valuaciji je ta cna i formula (A1 A2 . . . An ), a neta cna je formula (A1 A2 . . . An ) B . Odatle to je suprotno sledi da formula (A1 A2 . . . An ) B nije tautologija, s to je i trebalo dokazati. pretpostavci. Dakle, mora da va zi A1 , A2 , . . . , An |= B , s

14 Pretpostavimo da va zi , A |= B i doka zimo |= A B . Pretpostavimo da su sve formule iz skupa ta cne u nekoj valuaciji v i doka zimo da je u toj valuaciji ta cna i formula A B . Pretpostavimo suprotno, da va zi Iv (A B ) = 0. Odatle sledi Iv (A) = 1 i Iv (B ) = 0. Dakle, valuacija v je model za skup formula {A}, pa iz , A |= B sledi da je valuacija v model i za formulu B , to je u suprotnosti sa Iv (B ) = 0. Dakle, pretpostavka je bila pogre s sna, pa sledi to je i trebalo dokazati. Iv (A B ) = 1, tj. |= A B , s Pretpostavimo da va zi |= A B i doka zimo , A |= B . Pretpostavimo da su sve formule iz skupa {A} ta cne u nekoj valuaciji v i doka zimo da je u toj valuaciji ta cna i formula B . U valuaciji v su ta cne sve formule iz skupa , pa iz |= A B sledi Iv (A B ) = 1. Iz Iv (A) = 1 i Iv (A B ) = 1 sledi Iv (B ) = 1 (ako bi va zilo Iv (B ) = 0, iz Iv (A) = 1 i Iv (B ) = 0 bi sledilo to je i Iv (A B ) = 0). Dakle, valuacija v je model za formulu B , tj. , A |= B , s trebalo dokazati. 15 Neka je v proizvoljna valuacija. Tada je Iv (A1 ) = Iv (A2 ) i Iv (B1 ) = Iv (B2 ).

Re senja zadataka (a) Iv (A1 ) = = = (b) Iv (A1 B1 ) = = 1, Iv (A1 ) = 1 i Iv (B1 ) = 1 0, ina ce 1, Iv (A2 ) = 1 i Iv (B2 ) = 1 0, ina ce 1, Iv (A1 ) = 0 0, ina ce 1, Iv (A2 ) = 0 0, ina ce Iv (A2 ) .

205

= Iv (A2 B2 ) . (c) Iv (A1 B1 ) = = 1, Iv (A1 ) = 1 ili Iv (B1 ) = 1 0, ina ce 1, Iv (A2 ) = 1 ili Iv (B2 ) = 1 0, ina ce

= Iv (A2 B2 ) . (d) Iv (A1 B1 ) = = 0, Iv (A1 ) = 1 i Iv (B1 ) = 0 1, ina ce 0, Iv (A2 ) = 1 i Iv (B2 ) = 0 1, ina ce

= I v ( A2 B 2 ) . (e) Iv (A1 B1 ) = = 1, Iv (A1 ) = Iv (B1 ) 0, ina ce 1, Iv (A2 ) = Iv (B2 ) 0, ina ce

= I v ( A2 B 2 ) . 16 Pretpostavimo da je A tautologija. Neka je v proizvoljna valuacija. Neka je w valuacija u kojoj su iskaznim slovima p1 , p2 , . . ., pn dodeljene redom vrednosti Iv (A1 ), Iv (A2 ), . . ., Iv (An ) i u kojoj je svakom iskaznom slovu p koje se pojavljuje u A, a razli cito je od p1 , p2 , . . ., pn dodeljuje vrednost Iv (p). Indukcijom nad skupom iskaznih formula mo ze se dokazati da va zi Iv (B ) = Iw (A). Iskazna formula A je tautologija, pa je ona ta cna u svakoj valuaciji. Dakle, Iw (A) = 1, odakle je Iv (B ) = 1. Kako je v proizvoljna valuacija, sledi da je

206

14 Re senja zadataka

to je i formula B ta cna u svakoj valuaciji, tj. sledi da je formula B tautologija, s trebalo dokazati. 20. Neka p ozna cava tvrdenje ,,R uvek govori istinu i neka q ozna cava tvrdenje ,,Levi put vodi u glavni grad. Me staninu R treba postaviti pitanje ,,Da li je ta cno P ? (gde je P iskaz izra zen u funkciji p i q ). Ozna cimo sa R(A) odgovor me stanina na pitanje ,,Da li je ta cno A? 0 ako je njegov odgovor ne i 1 ako je njegov odgovor da. Postavljeno pitanje treba da bude takvo da je R(P ) u svakom slu caju jednak vrednosti iskaza q . Odredimo tvrdenje P. Ako je u nekoj valuaciji Iv (p) = 0 (tj. R uvek govori la z) i ako je R(A) jednako 0, onda u toj valuaciji mora da va zi Iv (A) = 1. Ako je u nekoj valuaciji Iv (p) = 0 (tj. R uvek govori la z) i ako je R(A) jednako 1, onda u toj valuaciji mora da va zi Iv (A) = 0. Ako je u nekoj valuaciji Iv (p) = 1 (tj. R uvek govori istinu) i ako je R(A) jednako 0, onda u toj valuaciji mora da va zi Iv (A) = 0. Ako je u nekoj valuaciji Iv (p) = 1 (tj. R uvek govori istinu) i ako je R(A) jednako 1, onda u toj valuaciji mora da va zi Iv (A) = 1. Dobijeni zaklju cci mogu biti prikazani u vidu slede ce istinitosne tablice: p 0 0 1 1 R(A) 0 1 0 1 A 1 0 0 1

Iskaz P mo ze da ima formu R(B ) i onda je potrebno da je u svakoj valuaciji vrednost R(R(B )) jednaka q . Odredimo tvrdenje B . Vrednosti za iskaze R(B ) i B dobijaju se na osnovu prethodne istinitosne tablice. Te vrednosti prikazane su u slede coj istinitosnoj tablici: p 0 0 1 1 q 0 1 0 1 R(R(B )) 0 1 0 1 R (B ) 1 0 0 1 B 0 1 0 1

O cigledno, u svakoj valuaciji je Iv (B ) = Iv (q ), pa zaklju cujemo da tra zeno pitanje mo ze da bude ,,Da li je ta cno R(q )? ili ,,Da li je ta cno da bi mi ti odgovorio 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 zajedni cko nijedno iskazno slovo. Tada mo zemo da deni semo valuaciju v na slede ci na cin: v (p) = v1 (p), ako se p pojavljuje u A v2 (p), ina ce

Tada va zi Iv (A) = Iv1 (A) = 1 i Iv (B ) = Iv2 (B ) = 0, pa A B nije tau to je suprotno zadatim uslovima. Dakle, polazna pretpostavka tologija, s je pogre sna, pa zaklju cujemo da formule A i B moraju da imaju bar jedno zajedni cko iskazno slovo.

Re senja zadataka

207

(b) Neka je kanonska disjunktivna normalna forma formule A jednaka A1 A2 . . . Am i neka je kanonska konjunktivna normalna forma formule B jednaka B1 B2 . . . Bn . Formula A B je tautologija, pa na osnovu logi cke ekvivalencije (P Q) R (P R) (Q R) i jednostavnog induktivnog argumenta zaklju cujemo da je svaka od formula Ai B (i = 1, 2, . . . , m) tautologija. Analogno, kako je formula Ai B (i = 1, 2, . . . , m) tautologija, na osnovu logi cke ekvivalencije P (Q R) (P Q) (P R) i jednostavnog induktivnog argumenta zaklju cujemo da je svaka od formula Ai Bj (i = 1, 2, . . . , m, j = 1, 2, . . . , n) tautologija. To je mogu ce samo ako za svaki par Ai , Bj postoji literal lij koji se u Ai pojavljuje kao konjunkt, a u Bj kao disjunkt. Neka je formula C jednaka
m n

lij
i=1 j =1

Kako je skup literala j =1 lij podskup skupa literala formule Ai sledi n da je Ai j =1 lij tautologija (jer je formula P Q P tautologija). enjem tautologije ((P Q) (R S )) (P R Dodatno, kori sc Q S ) mo ze se matemati ckom indukcijom dokazati da je formula
m n

A1 A2 . . . Am
i=1 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). enjem tautologije ((P Q) (R S )) (P R Q Dodatno, kori sc n S ) mo ze se matemati ckom indukcijom dokazati da je formula j =1 lij B1 B2 . . . Bn tautologija. Kako to va zi za svako i (i = 1, 2, . . . , m), na osnovu logi cke ekvivalencije (P R) (Q R) (P Q) R sledi da je i
m n

lij B1 B2 . . . Bn
i=1 j =1

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, I L ) takvu da je ona model date formule, pri emu je I L (f ) = fI i I L (p) = pI . c Neka je D = N, fI (n) = n + 2 (gde je n N) i pI (n) = 1 ako i samo ako je n paran broj. Doka zimo da je D = (D, I L ) model formule A = (x)(p(x) p(f (x)). Doka zimo da je Iv (A) = 1 za svaku valuaciju v . Pretpostavimo suprotno pretpostavimo da postoji valuacija v takva da je Iv (A) = 0. Na osnovu denicije 3.10, iz Iv (A) = 0 sledi da postoji valuacija w takva da je v x w i Iw (p(x) p(f (x))) = 0. Na osnovu iste denicije, 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 je 1 = Iw (p(x)) = pI (n) i 0 = Iw (p(f (x))) = pI (fI (n)) = pI (n + 2), odakle sledi

208

14 Re senja zadataka

to je neta da je n paran broj, a n + 2 neparan, s cno za svaki prirodan broj n. Dakle, Iv (A) = 1 za svaku valuaciju v , tj. L-struktura D = (N, I L ) je model date formule A. 30. Neka je v proizvoljna valuacija. L-struktura D je model date formule ako je Iv ((x)(p(x, f (x)) p(f (x), x)) = 1, tj. ako za svaku valuaciju w takvu da je v x w va zi Iw (p(x, f (x)) p(f (x), x)) = 1. Dovoljno je razmatrati mogu cnosti w(x) = a, w(x) = b i w(x) = c. Vrednosti Iw (p(x, f (x)) p(f (x), x)) = 1 mogu tada biti prikazane i u vidu tablice:
w(x) a b c fI (w(x)) b a a pI (w(x), fI (w(x))) 1 1 0 pI (fI (w(x)), w(x)) 1 1 0 Iw (p(x, f (x)) p(f (x), x)) 1 1 1

Dakle, za proizvoljnu valuaciju v je Iv (x)(p(x, f (x)) p(f (x), x)) = 1, pa je 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 je I L (p) = pI . Da bi D = (D, I L ) bio model formule A treba da za proizvoljnu valuaciju v va zi Iv ((x)(y )(p(x, y ) p(y, x))) = 1, tj. za svaku valuaciju w takvu da je v x w va zi Iw ((y )(p(x, y ) p(y, x))) = 1. Postoje dve mogu cnosti: w(x) = a i w(x) = b i za obe treba da va zi Iw ((y )(p(x, y ) p(y, x))) = 1. Va zi 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 postoje dve takve valuacije w jedna, za koju va zi w (y ) = a i druga, za koju va zi w (y ) = b (pri tome va zi i w (x) = w(x)). Va zi Iw (p(x, y ) p(y, x)) = 1 ako je Iw (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, va zi: (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 ) = 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 (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 i w (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 i w (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) = a i 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 )) = 0 ili 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))

Re senja zadataka

209

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 va zi (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 mo ze proveriti da ima 13 (od ukupno 16) funkcija pI : D2 {0, 1} koje zadovoljavaju taj uslov. Svakoj od tih funkcija odgovara po jedan tra zeni model (do na izomorzam). emu je = {f, a}, = {p}, ar(f ) = 2, ar(a) = 0 32. Neka je L = (, , ar), pri c i ar(p) = 2. emu je fI (z1 , z2 ) = Neka je D = Z, I L (f ) = fI , I L (a) = aI i I L (p) = pI , pri c z1 + z2 (z1 , z2 Z), aI = 0 i pI (z1 , z2 ) = 1 ako i samo ako je z1 = z2 (z1 , z2 Z). Doka zimo da je D = (D, I L ) model date formule. Doka zimo da za proizvoljnu valuaciju v va zi Iv ((x)(y )p(f (x, y ), a)) = 1. Pretpostavimo suprotno pretpostavimo da postoji valuacija v za koju va zi Iv ((x)(y )p(f (x, y ), a)) = 0. Tada, na osnovu denicije 3.10, sledi da postoji valuacija w takva da je w x v i Iw ((y )p(f (x, y ), a)) = 0 (neka je u toj valuaciji w(x) = z , z Z). To dalje zna ci da za svaku valuaciju w takvu da je w y w (dakle, va zi w (x) = z ) i va zi Iw (p(f (x, y ), a)) = 0. Medutim, u valuaciji u kojoj je w (y ) = z va zi to je Iw (p(f (x, y ), a)) = pI (fI (z, z ), 0) = pI (z + (z ), 0) = pI (0, 0) = 1, s u kontradikciji sa Iw (p(f (x, y ), a)) = 0. Dakle, polazna pretpostavka je bila pogre sna, te sledi da za proizvoljnu valuaciju v va zi Iv ((x)(y )p(f (x, y ), a)) = 1, tj. L-struktura D je model date formule. emu je fI (n1 , n2 ) = Neka je D = N, I L (f ) = fI , I L (a) = aI i I L (p) = pI , pri c n1 + n2 (n1 , n2 N), aI = 0 i pI (n1 , n2 ) = 1 ako i samo ako je n1 = n2 (n1 , n2 N). Doka zimo da je D = (D, I L ) kontramodel date formule. Doka zimo da postoji valuacija v za koju va zi Iv ((x)(y )p(f (x, y ), a)) = 0. Pretpostavimo suprotno da za proizvoljnu valuaciju v va zi Iv ((x)(y )p(f (x, y ), a)) = 1. Tada, na osnovu denicije 3.10, sledi da za svaku valuaciju w takvu da je w x v va zi Iw ((y )p(f (x, y ), a)) = 1. Neka je w proizvoljna valuacija i neka je w(x) = n, gde je n N i n > 0. Iz Iw ((y )p(f (x, y ), a)) = 1 sledi da postoji valuacija w takva da je w y w (dakle, va zi w (x) = n) i va zi Iw (p(f (x, y ), a)) = 1. Pretpostavimo da je w (y ) = m, m N. Tada va zi 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 je to nije ta n + m = 0, s cno ni za koju vrednost m, m N (jer je n > 0). Dakle, polazna pretpostavka je bila pogre sna, te sledi da postoji valuacija v za koju va zi Iv ((x)(y )p(f (x, y ), a)) = 0, tj. L-struktura D je kontramodel date formule. emu je = {f }, = {p}, ar(f ) = 1, ar(p) = 2. 33. Neka je L = (, , ar), pri c emu je fI (n) = (a) Neka je D = (N, I L ) i I L (f ) = fI , I L (p) = pI , pri c n + 1 i pI (n1 , n2 ) = 1 ako i samo ako je n1 < n2 . Doka zimo da je Lstruktura D model date formule A, tj. doka zimo da za svaku valuaciju v va zi Iv (A) = 1. Pretpostavimo suprotno pretpostavimo da postoji valuacija v takva da je Iv (A) = 0. Na osnovu denicije 3.10, sledi da Iv ((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

210

14 Re senja 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 je n 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)) to nije ispunjeno ni za jedan = 1, tj. da nije n < n + 1 ili da je n < n, s broj 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 je Iw ((y )(z )(p(x, y ) p(y, z ) p(x, z ))) = 0. Neka je w(x) = n1 . Iz Iw ((y )(z )(p(x, y ) p(y, z ) p(x, z ))) = 0 sledi da postoji valuacija w takva da je w y w (dakle, va zi w (x) = w(x) = n1 ) takva da 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 postoji valuacija w takva da je w z w (dakle, va zi 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 ta cno n1 < n2 , n2 < n3 i da nije ta cno n1 < n3 . Medutim, to nije ispunjeno ni za koja tri prirodna broja n1 , n2 , n3 . Dakle, pretpostavka je bila pogre sna, te sledi da za svaku valuaciju v va zi Iv (A) = 1, tj. L-struktura D je model formule A.

emu je fI (a) = a (b) Neka je D = ({a}, I L ) i I L (f ) = fI , I L (p) = pI , pri c i pI (a, a) = 1. Doka zimo da je D kontramodel za formulu A. Pretpostavimo suprotno pretpostavimo da za proizvoljnu valuaciju v va zi da je Iv (A) = 1. Tada je, na osnovu denicije 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. Iz Iv ((x)(p(x, f (x)) p(x, x))) = 1 sledi da za proizvoljnu valuaciju w takvu da je w x v va zi Iw ((p(x, f (x)) p(x, x))) = 1. Mora da je w(x) = a (jer je D = {a}), pa je Iw (p(x, f (x))) = 1 i Iw (p(x, x)) = 1. Iz Iw (p(x, x)) = 1 sledi Iw (p(x, x)) = 0, tj. pI (w(x), w(x)) = 0, tj. pI (a, a) = to je neta 0, s cno, pa sledi da je pretpostavka bila pogre sna, odakle dalje sledi da postoji valuacija v takva da je Iv (A) = 0, tj. sledi da je D kontramodel za datu formulu A. (c) Pretpostavimo da je L-struktura D = (D, I L ) model date formule A i pretpostavimo da je skup D kona can, tj. pretpostavimo da je D = {d1 , d2 , . . . , dm }. na slede Neka je I L (f ) = fI i I L (p) = pI . Neka je di odreden ci na cin: neka je d0 proizvoljan element skupa D; neka je di+1 = fI (di ) za i 0. Skup D je kona can, pa u nizu di , i = 0, 1, 2, . . ., mora da postoji bar jedan element koji se ponavlja, tj. postoje vrednosti j i k (j < k ) takve da je dj = dk .

Re senja zadataka

211

Na osnovu pretpostavke, D je model za formulu A, pa za proizvoljnu valuaciju v va zi Iv (A) = 1. Odatle, na osnovu denicije 3.10, sledi da va zi 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. Iz Iv ((x)(p(x, f (x)) p(x, x))) = 1 sledi da za proizvoljnu valuaciju w takvu da je w x v va zi Iw (p(x, f (x)) p(x, x)) = 1. Odatle dalje sledi pI (w(x), fI (w(x))) = 1 i pI (w(x), w(x)) = 0. Valuacija w je proizvoljna, pa je mo zemo odabrati tako da va zi w(x) = di . Tada va zi pI (di , fI (di )) = zi pI (di , di+1 ) = 1 i 1 i pI (di , di ) = 0, tj. za svako i (i = 0, 1, 2, . . .) va pI (di , di ) = 0. S druge strane, iz Iv ((x)(y )(z )(p(x, y ) p(y, z ) p(x, z ))) = 1 sledi da za proizvoljnu valuaciju w takvu da je w x v va zi Iw ((y )(z )(p(x, y ) p(y, z ) p(x, z ))) = 1. Kako je w proizvoljna valuacija, mo zemo je odabrati tako da va zi w(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, va zi w (x) = w(x) = d ) va zi Iw ((z )(p(x, y ) p(y, z ) p(x, z ))) = 1. Kako je w proizvoljna valuacija za koju va zi w y w, mo zemo je odabrati tako da va zi w (y ) = d . Iz Iw ((z )(p(x, y ) p(y, z ) p(x, z ))) = 1 sledi da za proizvoljnu valuaciju w takvu da je w z w (dakle, va zi w (x) = w (x) = w(x) = d i w (y ) = w (y ) = d ) va zi Iw (p(x, y ) p(y, z ) p(x, z )) = 1. Kako je w proizvoljna valuacija za koju va zi w z w , mo zemo je odabrati tako da va zi 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. da va zi Iw (p(x, y )) = 0 ili Iw (p(y, z )) = 0 ili Iw (p(x, z )) = 1, tj. da va zi pI (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 va zi pI (d , d ) = 0 ili pI (d , d ) = 0 ili pI (d , d ) = 1. Ve c smo dokazali da za svako i (i = 0, 1, 2, . . .) va zi pI (di , di+1 ) = 1, odakle sledi da za d = di , d = di+1 , d = di+2 (za proizvoljno i, i = 0, 1, 2, . . .) mora da va zi pI (d , d ) = 1, tj. pI (di , di+2 ) = 1. Analogno, jednostavno se pokazuje matemati ckom indukcijom da va zi pI (di , di+l ) = 1 za proizvoljno i, i = 0, 1, 2, . . . i proizvoljno l, l = 1, 2, . . .. Dakle, va zi ce i pI (dj , dk ) = 1, tj. pI (dj , dj ) = 1 (jer je dj = dk ). Medutim, ve c smo pokazali da za svako i (i = 0, 1, 2, . . .) to je u kontradikciji sa pI (dj , dj ) = 1. Dakle, pova zi pI (di , di ) = 0, s lazna pretpostavka je bila pogre sna, odakle sledi da za datu formulu A ne postoji model koji ima kona can domen.

emu za signaturu L = (, , ar) 34. Neka je D proizvoljna L-struktura, pri c va zi p i ar(p) = 1 i neka je V proizvoljan skup promenljivih takav da je x, y, z V . Neka je I L (p) = pI (gde je pI funkcija iz D u skup {0, 1}) i neka je v proizvoljna valuacija. Doka zimo da va zi Iv ((x)(y )(z )(p(x) p(y ) p(z ))) = 1. Pretpostavimo suprotno da va zi Iv ((x)(y )(z )(p(x) p(y ) p(z ))) = 0. To zna ci da postoji valuacija vx takva da je vx x v (neka je vx (x) = dx ) i Ivx ((y )(z )(p(x) p(y ) p(z ))) = 0. To zna ci da postoji valuacija vy takva da je vy y vx (va zi vy (x) = vx (x) = dx ; neka je vy (y ) = dy ) i Ivy ((z )(p(x) p(y ) p(z ))) = 0. To zna ci da za svaku valuaciju vz takvu da je vz z vy va zi Ivz (p(x) p(y ) p(z )) = 0. Odaberimo valuaciju vz takvu da je vz z vy (va zi vz (x) = vy (x) = dx i vz (y ) = vy (y ) = dy ) na slede ci na cin:

212 (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 .

14 Re senja zadataka

U slu caju (a), va zi Ivz (p(x)) = 1, Ivz (p(y )) = 1, Ivz (p(z )) = 1, odakle sledi to je u suprotnosti sa Ivz (p(x) p(y )) = 1 i Ivz (p(x) p(y ) p(z )) = 1, s Ivz (p(x) p(y ) p(z )) = 0. U slu caju (b), va zi Ivz (p(x)) = 0, Ivz (p(z )) = 0, to je nemogu odakle sledi Ivz (p(x) p(y )) = 0 i Ivz (p(x) p(y ) p(z )) = 1, s ce. U slu caju (c), va zi Ivz (p(y )) = 0 i Ivz (p(z )) = 0, odakle sledi Ivz (p(x) p(y )) = 0 to je nemogu i Ivz (p(x) p(y ) p(z )) = 1, s ce. Dakle, u svakom slu caju dola to zna zimo do kontradikcije, s ci da polazna pretpostavka nije bila ispravna. Dakle, mora da va zi Iv ((x)(y )(z )(p(x) p(y ) p(z ))) = 1. Kako je Iv proizvoljna valuacija, sledi da je data formula valjana. 39. Na primer, (x)A (x)A. 40. Va zi (x)(A B ) (x)(AB ) (x)(A) (x)B (x)A (x)B (x)A (x)B . Iz (x)(A B) (x)A (x)B , na osnovu teoreme 3.10 sledi da je data formula valjana. 48. Tvrdenje je mogu ce dokazati indukcijom po slo zenosti izraza ili na slede ci na cin: pretpostavimo da za date izraze e1 i e2 postoje dva najop stija unikatora 1 i 2 . Tada postoje supstitucije 1 i 2 takve da va zi 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 denicije kompozicije supstitucija sledi da 1 i 2 mogu da sadr ze samo zamene oblika v v (gde su v i v simboli promenljivih), pa su unikatori 1 i 2 jednaki do na preimenovanje promenljivih. 58. Dati uslovi mogu se reprezentovati na slede ci na cin: C1: vlasnikpsa(Janko) C2: x(vlasnikpsa(x) volizivotinje(x)) C3: x(volizivotinje(x) (y (zivotinja(y ) udario(x, y )))) C4: udario(Janko, T una) udario(M arko, T una) C5: macka(T una) C6: x(macka(x) zivotinja(x)) Metodom rezolucije mo ze se dokazati da iz navedenih formula sledi formula udario(M arko, T una). 61. A AB [A]1 E ef q B B

[B ]2

E, 1, 2

Re senja zadataka

213

62.

[A B ]3 E [B ]1 B E I, 2 A I, 1 B A I, 3 (A B ) (B A) [B C ]3 [B C ]3 E E [ A] [ A] B C I I I I AB AC AB AC I I [A (B C )]1 (A B ) (A C ) (A B ) (A C ) E, 2, 3 (A B ) (A C ) I, 1 (A (B C )) ((A B ) (A C ))
2 2

[A]2

63.

64

A A

[A]2 [B ]1 I [(A B )] AB E I, 1 [A]3 B I I A B A B E, 2, 3 A B I, 4 (A B ) (A B )


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.

214

14 Re senja 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).

Re senja zadataka

215

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

You might also like