You are on page 1of 215

Predrag Jani i

cc

Mladen Nikoli
c

Vetaka inteligencija
s c
c Juni 2010

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

VESTACKA INTELIGENCIJA

Sva prava zadr ana. Nijedan deo ovog materijala ne mo e biti reprodukovan niti sme ten
z
z
s
u sistem za pretra ivanje ili transmitovanje u bilo kom obliku, elektronski, mehani ki,
z
c
fotokopiranjem, smanjenjem ili na drugi na in, bez prethodne pismene dozvole autora.
c

Sadr aj
z
1

Uvod
1.1 Uska i op ta ve ta ka inteligencija . . . . . . . . . . . . . . . . .
s
s c

9
11

Logika i logi ko programiranje


c

15

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 ke posledice, logi ki ekvivalentne formule,
c
c
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 ke posledice, logi ki ekvivalentne formule,
c
c
supstitucija . . . . . . . . . . . . . . . . . . . . . . . .
3.2.3 Normalne forme . . . . . . . . . . . . . . . . . . . . .
3.2.4 Unikacija . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.5 Metod rezolucije . . . . . . . . . . . . . . . . . . . . .
3.3 Prirodna dedukcija . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Sa etak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
z
PROLOG
4.1 Interpretatori i kompilatori . . . .
4.2 Sintaksa i semantika u PROLOG-U
4.3 Po etni primeri . . . . . . . . . . .
c
4.4 PROLOG i metod rezolucije . . . .
4.5 Stablo izvodjenja . . . . . . . . . .
3

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

. .
. .

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

.
.
.
.
.


SADRZAJ

4
4.6
4.7
4.8
4.9
4.10
4.11
4.12
4.13

II

Operator se enja . . . . . . . . . . . . . . .
c
Negacija kao neuspeh . . . . . . . . . . . .
Liste . . . . . . . . . . . . . . . . . . . . . .
Ugradjeni predikati . . . . . . . . . . . . .
Implementacija KNF algoritma . . . . . .
Implementacija DPLL algoritma . . . . .
Pretraga grafa . . . . . . . . . . . . . . . .
Primer re avanje jednostavnog problema
s

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

Pretraga

79
83
85
89
92
94
97
97

101

Re avanje problema kao pretraga


s
103
5.1 Kvalitet algoritama pretrage . . . . . . . . . . . . . . . . . . . . . 105
5.2 Neinformisana i informisana pretraga . . . . . . . . . . . . . . . 106

Pohlepna pretraga
6.1 Penjanje uzbrdo u slu aju diferencijabilne funkcije cilja . . . . .
c

109
110

Odredivanje puteva u grafu

7.1 Obilazak grafa u dubinu i sirinu . . . . . . . . . . . . . . .


7.2 Dejkstrin algoritam . . . . . . . . . . . . . . . . . . . . . . .
7.3 A* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3.1 Primer upotrebe algoritma A* . . . . . . . . . . . . .
7.3.2 Specijalni slu ajevi . . . . . . . . . . . . . . . . . . .
c
7.3.3 Primer upotrebe algoritma A* na uniformnoj mre i
z
7.3.4 Svojstva algoritma A* . . . . . . . . . . . . . . . . .
7.3.5 Implementaciona pitanja . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

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 kih igara


c
8.1 Razvoj automatskog igranja logi kih igara i osnovni koncepti
c
8.2 Legalni potezi i stablo igre . . . . . . . . . . . . . . . . . . . . .
8.3 Otvaranje i biblioteka partija . . . . . . . . . . . . . . . . . . . .
8.4 Sredi njica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
s
8.4.1 Stati ka ocena pozicije i funkcija evaluacije . . . . . . .
c
8.4.2 Pretra ivanje stabla igre . . . . . . . . . . . . . . . . . .
z
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 ivanje . . . . . . . . . . . . . . . . . . .
z
8.4.8 Prekidi i vremenska ograni enja . . . . . . . . . . . . .
c
8.4.9 Slo enost algoritama za pretra ivanje stabla igre . . . .
z
z
8.5 Zavr nica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
s
8.5.1 Skupovi pozicija kao klase ekvivalencija . . . . . . . . .
8.5.2 Tekstovi saveta . . . . . . . . . . . . . . . . . . . . . . .
8.6 Implementaciona pitanja . . . . . . . . . . . . . . . . . . . . . .


SADRZAJ
9

III

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 tanje . . . . . . . . . . . . . . . . . . . . . . .
s
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 . . . . . . . . . . . . . .

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

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

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

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

Ma insko u enje
s
c

10 Uvod
10.1 Generalizacija i apstrakcija . . . . . . . . . . . .
10.2 Primer problema u enja . . . . . . . . . . . . .
c
10.3 Nadgledano i nenadgledano u enje . . . . . . .
c
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 i . . . . . . . . . . . . . .
c

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

159
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

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

11 Klasikacija
11.1 Metode klasikacije zasnovane na instancama . . . . .
11.1.1 Metoda n-najbli ih suseda . . . . . . . . . . . . .
z
11.1.2 N-grami . . . . . . . . . . . . . . . . . . . . . . .
11.2 U enje stabala odlu ivanja . . . . . . . . . . . . . . . . .
c
c
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

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

189
. 189
. 192
. 192
. 196

13 Klasterovanje

199


SADRZAJ

IV

Re enja zadataka
s

14 Re enja zadataka
s

201
203

Predgovor
Ovo su bele ke koji prate predavanja i ve be iz predmeta Veta a inteligens
z
s c
cija koje smo dr ali akademskih godina 2007/08, 2008/09, 2009/10. Funkcija
z
bele ki je da olak aju pra enje predavanja i da slu e kao podsetnik tokom
s
s
c
z

pripremanja ispita. Oni ne mogu da zamene pohadanje nastave i kori cenje


s
druge literature.

Predrag Jani i i Mladen Nikoli


cc
c
Beograd, juni 2010.

SADRZAJ

Glava 1

Uvod
Smatra se da je ve ta ka inteligencija kao informati ka disciplina ustanovljena
s c
c
na znamenitoj konferenciji The Dartmouth Summer Research Conference on Articial Intelligence u Darmutu (Sjedinjene Ameri ke Dr ave), 1956. godine. Tom
c
z
prilikom predlo eno je, od strane D ona Makartija, i s mo ime discipline, ne
z
z
a

sasvim sre no, jer je to ime cesto izazivalo nedumice i podozrenje. Konferencija
c
je trajala mesec dana i bila je pre svega usmerena ka prolisanju nove oblasti
koja je nastajala. Konferenciju su organizovali D ona Makartija, Marvin Minz

ski, Natanijel Ro ester i Klod Senon.


c
Ve ta ka inteligencija je jedna od oblasti ra unarstva koja se poslednjih decenija
s c
c
najbr e razvija. Paralelno sa tim burnim razvojem rastu i o ekivanja od ove
z
c
discipline. Dok se za neke oblasti ra unarstva ve smatra da su zaokru ene i da
c
c
z
se u njima ne o ekuju novi zna ajni prodori, od ve ta ke inteligencije se rezulc
c
s c

tati tek o ekuju, uprkos tome sto su ve razvijeni mnogi inteligentni sistemi
c
c

koji funkcioni u izuzetno dobro. Ovo mo da mo emo da objasnimo time sto ti


s
z
z
inteligentni sistemi, i pored varljivih spoljnih manifestacija, funkcioni u na
s
principima koje, naj e ce ne mo emo smatrati zaista inteligentnim. Time, narc s
z
avno, ve ta ka inteligencija samo dovbija na atraktivnosti, a novi eksperimenti
s c
i teorijska istra ivanja predstavljaju put ka novim primenama u najrazli itijim
z
c
oblastima. Kako je razvoj ve ta ke inteligencije oduvek bio zasnovan na koms c
plementarnom povezivanju teorije i eksperimenata, tako i budu i razvoj zac
hteva pro irivanje i u vr civanje teorijskih znanja, pre svega matemati kih,
s
c s
c
ali i znanja o speci nim oblastima primene, kao i njihovu adekvatnu formalc
izaciju.

U uvodnom delu poku ajmo da odgovorimo i na osnovna pitanja sta je to


s

inteligencija i sta je to ve ta ka inteligencija. Uobi ajeno pod inteligencijom


s c
c
podrazumevamo sposobnost usvajanja, pam enja i obrade odredjenjih znanja.
c
Ipak, nijedna denicija ve ta ke inteligencije nije op te prihva ena (bar ne neka
s c
s
c
koja bi odgovarala uobi ajenom, svakodnevnom smislu i istovremeno precizno
c
i formalno opisivala pojam). U svakom slu aju mo emo smatrati da inteligenc
z
cija podrazumeva bar dve sposobnosti: sposobnost pam enja, skladi tenja znanja
c
s
i mogu nost njegove obrade. Osoba (ili ma ina) bez ikakvog znanja ne mo e
c
s
z
biti smatrana inteligentnom. Takodje, inteligentnom ne mo e biti smatrana
z
ni osoba (ili ma ina) sa ogromnom koli inom stati kog znanja odnosno pos
c
c
dataka, ali bez sposobnosti da to znanje obradjuje i da re ava probleme u vezi
s
sa njim. Postoje i drugi aspekti inteligencije. Jedan od njih je brzina obrade

10

1 Uvod

znanja, koja je, kada su u pitanju ra unari, zavisna ne samo od procedura za


c
zaklju ivanje, ve , naravno, i od tehni kih karakteristika pojedinog ra unara.
c
c
c
c
Sposobnost u enja - usvajanja novih znanja takodje je jedan od aspekata inc
teligencije, iako je mo emo uvrstiti u sposobnost re avanja problema. Asz
s
pektom inteligencije mo emo smatrati i sposobnost komunikacije sa drugim
z
inteligentnim bi ima (ma inama), koju takodje mo emo uvrstiti u re avanje
c
s
z
s
problema. Smatra emo, dakle, da bi e ili ma ina imaju atribute intelignetnog,
c
c
s
ako imaju navedena svojstva. Ako se radi o ma ini odnosno uredjaju bilo koje
s
vrste sa navedenim svojstvima, govori emo o ve ta koj inteligenciji. Podsec
s c
timo se i jedne klasi ne denicije ve ta ke inteligencije: ako su u odvojene
c
s c
dve prostorije sme tene jedna ljudska osoba i neka naprava i ako na identi ne
s
c
probleme one pru aju odgovore na osnovu kojih se ne mo e pogoditi u koz
z

joj sobi je covek, a u kojoj naprava, onda mo emo smatrati da ta naprava


z
ima atribute ve ta ke inteligencije. Bez obzira na sve manjkavosti ovih opisa,
s c
ne emo poku avati da pronadjemo bolje opise pojmova o kojima je re . Nakon
c
s
c
svega, dobro je navesti i jednu rigorozniju i mo da suvoparniju, ali verovatno
z
najbolju deniciju ve ta ke inteligencije to je disciplina koja se bavi probs c
lemima u kojima se javlja kombinatorna eksplozija.
Za pojam inteligencije su tinska su dva pitanja: pitanje znanja i pitanje zas
klju ivanja, koja, kada govorimo o ra unarima, odgovaraju pojmovima baze
c
c
znanja i komponente zaklju ivanja. Komponenta zaklju ivanja (izvodjenja)
c
c
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 i.
s
Znanje ovog tipa zva emo meta-znanjem. Sam pojam znanja, takodje ima vi e
c
s
aspekata. Po mnogim lozofskim koncepcijama znanje predstavlja tvrdjenja za

koje je utvrdjeno ili mo e biti utvrdjeno da su ta na. Ipak, mi cemo cesto imati
z
c

potrebu da radimo i sa informacijama koje ne moraju da budu ta ne, pa cemo


c

prihvatiti siri pojam znanja i pod njim podrazumevati i istinite, potvrdjene

cinjenice, ali i hipoteze, nepotpune informacije i informacije date sa odredjenim


verovatno ama. Izbor reprezentacije znanja je jedan od klju nih problema i on
c
c
je u direktnoj vezi i sa prirodom odredjenog znanja, ali i sa prirodom mehanizama za zaklju ivanje. Mehanizmi za zaklju ivanje moraju biti prilagodjeni
c
c

reprezentaciji znanja i njegovoj prirodi, pa ce u jednom slu aju biti zasnovani


c
na klasi noj logici, a u drugom na modalnoj logici, teoriji verovatno e, fazi
c
c
logici itd. Zaklju ivanjem mo emo smatrati proces po kojem se na osnovu baze
c
c
znanja mo e izvesti informacija koja u njoj nije eksplicitno sadr ana. Tako, na
z
z

primer, ako u bazi znanja imamo cinjenice:


I1 : ...
I2 : ...

na osnovu njih mogu e je izvesti cinjenicu:


c
I3 : ...
koja zaista nije bila eksplicitno sadr ana u polaznoj bazi znanja. Navedeni
z
primer odgovara uobi ajenom zaklju ivanju koje odgovara ljudskom iskustvu.
c
c

Cesto cemo se, medjutim, susretati sa problemima kod kojih je te ko precizno


s

zasnovati proces zaklju ivanja koji odgovara covekovom i biti prinudjeni da


c
tragamo za sosticiranijim tehnikama koje odgovaraju tim zahtevima. U vezi

1.1 Uska i op ta ve ta ka inteligencija


s
s c

11

sa formalizacijom prirodnog toka zaklju ivanja su i problemi monotonog i nemonotonog


c
zaklju ivanja. Na kraju uvodnog dela jednostavnim primerom ilustrova emo
c
c
nekoliko razli itih oblika zaklju ivanja. Razmotrimo odnos veze
c
c
(i)x(P (x) Q(x))

i cinjenica
(ii)P (a)
(iii)Q(a).

Izvodjenje cinjenice Q(a) na osnovu (i) i (ii) je potpuno opravdano i odgovara matemati kim principima deduktivnog zaklju ivanja. Izvodjenje veze
c
c
(i) na osnovu niza parova (ii), (iii) za razli ite instance argumenta, odgovara
c
nepotpunoj indukciji, nema matemati ku egzaktnost, a u prakti nim primec
c
nama pouzdanost mu se pove ava sa brojem instanci koje potvrdjuju hipotezu.
c

Izvodjenje cinjenice (ii) na osnovu (i) i (ii) zovemo abdukcijom. Ono takodje
nije egzaktno, a opravdanje ima u odnosu uzroka i posledice. Tako, ako raspola emo
z

nizom veza oblika (i) za razli ita svojstva Qi (i = 1, ..., n) i nizom cinjenica
c
Qi (a)(i = 1, ..., n), mo emo da zaklju imo (sa izvesnom pouzdano cu), da
z
c
s
kao uzrok posledicama Qi (a)(i = 1, ..., n) va i svojstvo P (a). Ovaj princip zaz

klju ivanja cesto se primenjuje u medicinskim ekspertnim sistemima za utvrdc


jivanje (potencijalnog) uzroka na osnovu poznatih simptoma.

1.1

Uska i op ta ve ta ka inteligencija
s
s c

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.

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

1.1 Uska i op ta ve ta ka inteligencija


s
s c

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 ko
c
programiranje

Glava 2

Iskazna logika
U iskaznoj logici promenljive reprezentuju iskaze. Iskazi mogu biti kombinovani u slo enije iskaze logi kim veznicima. Iskazna logika dovoljno je izra ajna
z
c
z
za opisivanje i reprezentovanje mnogih problema, uklju uju i mnoge prakti ne
c c
c

probleme, kao sto je, na primer, dizajn integrisanih kola.


Iskazna logika ima tri aspekta: svoju sintaksu (ili jezik), svoju semantiku (ili
zna enje iskaza) i svoje deduktivne sisteme. I semantika i deduktivni sistemi
c
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 an predstavnik skupa
c
NP -kompletnih problema.
Postoji vi e metoda i pristupa za ispitivanje valjanosti i zadovoljivosti. Neki
s
od njih su semanti ke, a neki deduktivne (tj. sintaksno-deduktivne) prirode.
c

Klju na veza izmedu ova dva koncepta je tvrdenje da je iskazna formula valjac
na ( to je semanti ka kategorija) ako i samo ako je ona teorema ( to je deduks
c
s
tivna kategorija). Zahvaljuju i ovoj vezi, sintaksa iskazne logike (jezik iskazne
c
logike), njena semantika (konvencije o zna enju formula) i njena deduktivna
c

svojstva cine kompaktnu celinu.

2.1

Sintaksa iskazne logike

Sintaksni aspekt iskazne logike govori o njenom jeziku, a o formulama isklju ic


vo kao o nizovima simbola i ne uzima u obzir bilo kakvo njihovo (mogu e)
c
zna enje.
c
Denicija 2.1 Skup iskaznih formula (ili jezik iskazne logike) nad prebrojivim
skupom iskaznih slova P je skup za koji va i:
z
iskazna slova (iz skupa P ) i logi ke konstante (
c

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 nom primenom prethodna dva pravc
ila.

18

2 Iskazna logika

Umesto termina iskazna formula cesto cemo pisati kra e formula ili iskaz.
c
U daljem tekstu smatra emo (ako nije druga ije nagla eno) da je skup P kc
c
s
siran. Elemente skupa P obi no ozna avamo malim latini nim slovima (evenc
c
c
tualno sa indeksima). Iskazne formule obi no ozna avamo velikim latini nim
c
c
c
slovima (eventualno sa indeksima). Skupove iskaznih formula obi no ozna ac
c
vamo velikim slovima gr kog alfabeta (eventualno sa indeksima).
c
Logi ke veznike zovemo i bulovskim veznicima ili, kra e, veznicima. Zapis
c
c

(A) citamo negacija A ili ne A. Zapis (A B) citamo A konjunkcija B ili A i

B. Zapis (A B) citamo A disjunkcija B ili A ili B. Zapis (A B) citamo

A implikacija B ili iz A sledi B. Zapis (A B) citamo A ekvivalencija B ili A


ekvivalentno B.
Iskazna slova zovemo i iskazne promenljive ili iskazne varijable. Elemente

skupova P i { , } zovemo atomi kim iskaznim formulama. Simbol citamo


c

te, a simbol citamo nete. Literal je iskazna formula koja je ili atomi ka iskazna
c
formula ili negacija atomi ke iskazne formule. Klauza je disjunkcija literala.
c
Ako su dve iskazne formule A i B sintaksno identi ne (tj. ako su jednake
c
kao nizovi simbola), onda to ozna avamo A = B. Ako dve iskazne formule A
c
i B nisu sintaksno identi ne, onda to ozna avamo A = B.
c
c
Zagrade se koriste kako bi se izbegla vi esmislenost. Naime, bez zagrada,
s
iskazna formula a b c ima dva mogu a tuma enja: ((a b) c) i (a
c
c
(b c)). Vi esmislenost se mo e izbe i i kori cenjem preksne poljske notacije.
s
z
c
s
U toj notaciji, iskazna formula ((a b) c) se zapisuje a b c, a iskazna

formula (a (b c)) se zapisuje a b c. Ipak, zbog citljivosti, koristi emo


c
inksni zapis, zapis iskaznih formula koji odgovara prethodnoj deniciji. Da
bismo izbegli kori cenje velikog broja zagrada obi no izostavljamo spoljne zas
c
grade i usvajamo konvenciju uz koju u nekim iskaznim formulama neke zagrade mogu biti izostavljene bez straha od vi esmislenosti. Ta konvencija zas

snovana je na prioritetu veznika i to na slede i na in (veznici su poredani po


c
c
prioritetima od ve eg ka manjem): .
c
Denicija 2.2 Skup potformula formule A je najmanji skup formula koje zadovoljavaju slede e uslove:
c
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 uje slo enost na slede i na in:
z
z
c
c
1. ako je A atomi ka iskazna formula, onda je c(A) = 0;
c
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

19

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


6. c(A B) = c(A) + c(B) + 1.
Funkcijom c svakoj iskaznoj formuli pridru uje se (jedinstvena) slo enost.
z
z

2.2

Semantika iskazne logike

Semanti ki aspekt iskazne logike govori o zna enju formula. U nastavku ce


c
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 emo na slede i na in:
s
c
c
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 e;
c
Iv (A B) = 0 ako je Iv (A) = 0 i Iv (B) = 0 ; Iv (A B) = 1 ina e;
c
Iv (A B) = 0 ako je Iv (A) = 1 i Iv (B) = 0 ; Iv (A B) = 1 ina e;
c
Iv (A B) = 1 ako je Iv (A) = Iv (B); Iv (A B) = 0 ina e.
c
Vrednost Iv (A) zovemo vrednocu iskazne formule A u interpretaciji Iv . Ako
s
za valuaciju v va i Iv (A) = 1, onda ka emo da je iskazna formula A ta na u
z
z
c
interpretaciji Iv i da je iskazna formula A ta na u valuaciji v. Ako za valuaciju v
c
va i Iv (A) = 0, onda ka emo da je iskazna formula A neta na u interpretaciji Iv .
z
z
c

Mo e se dokazati da se, za odredenu valuaciju v, funkcijom Iv denisanom na


z
navedeni na in, svakoj formuli pridru uje (jedinstvena) vrednost (u toj interc
z
pretaciji).
Denicija 2.4 Valuacija v je zadovoljavaju a za formulu A ako je Iv (A) = 1. Ka emo
c
z
i da je zadovoljavaju a valuacija v model za A i piemo v |= A.
c
s
Denicija 2.5 Iskazna formula A je zadovoljiva ako postoji valuacija koja je za nju
zadovoljavaju a. Formula A je valjana ili tautologija1 ako je svaka valuacija za nju
c
1 Re tautologija gr kog je porekla i sa injena je od re i tauto (gr ki isto) i logos (gr ki re , re i).
c
c
c
c
c
c
c c
U bukvalnom prevodu, ,,tautologija zna i ,,re i isto. U lingivsti kom smislu, kao i u svakodc
c
c
nevnom jeziku, ozna ava ponavljanje istog, re i istu stvar drugim re ima, redudantnost (sli no,
c
c
c
c

ali ne isto sto i pleonazam pleonazam ozna ava kori cenje suvi nih re i prilikom ukazivanja na
c
s
s
c
neki pojam). Opisani pojam tautologije razlikuje se od pojma tautologije u logici. U savremenim

evropskim jezicima re tautologija prvi put se javlja u sesnaestom veku.


c

20

2 Iskazna logika

zadovoljavaju a, tj. ako za svaku valuaciju v va i v |= A i to zapisujemo |= A. Iskazna


c
z
formula je nezadovoljiva ili kontradikcija ako ne postoji valuacija koja je za nju
zadovoljavaju a. Formula je poreciva ako postoji valuacija koja za nju nije zadovoljac
vaju a.
c
Drugim re ima, iskazna formula je zadovoljiva ako postoji valuacija u kojoj
c
je ta formula ta na. Iskazna formula je valjana ako je ta na u svakoj valuaciji.
c
c
Iskazna formula je nezadovoljiva ako je neta na u svakoj valuaciji. Iskazna
c
formula je poreciva ako postoji valuacija u kojoj je ta formula neta na.
c
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 ava se sa
c
(od engleskog satisability problem problem zadovoljivosti). SAT problem je NP-kompletan [?]. S obzirom na to da se jo uvek ne zna da li su klase
s
P i NP problema jednake, to zna i da se jo uvek ne zna da li postoji algoric
s
tam za ispitivanje zadovoljivosti koji je polinomijalne slo enosti. Kako je op te
z
s
uverenje da su klase P i NP problema razli ite, veruje se i da ne postoji polic
nomijalni algoritam za re avanje SAT problema. I najekasniji danas poznati
s
algoritmi za re avanje ovog problema su eksponencijalne slo enosti.
s
z
SAT

Denicija 2.6 Skup iskaznih formula je zadovoljiv ako postoji valuacija u kojoj je
svaka formula iz ta na. Za valuaciju v koja je zadovoljavaju a za sve formule iz
c
c
ka emo da je model za . Skup iskaznih formula je nezadovoljiv ili kontradiktoran
z
ako ne postoji valuacija u kojoj je svaka formula iz ta na.
c
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 na. Formula A je tautologija, pa je
c
ta na i u valuaciji v. U toj valuaciji, dakle, formula A B nije ta na,
c
c

sto protivre i pretpostavci da je A B tautologija. Dakle, formula B je


c

ta na u svakoj valuaciji, pa je ona tautologija, sto je i trebalo dokazati. 2


c

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 a tvrdenja:


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

2.2 Semantika iskazne logike

21

Zadatak 3 Dokazati slede a tvrdenja:


c
(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 a tvrdenja:


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

Zadatak 6 Dokazati slede a tvrdenja ( i su skupovi iskaznih formula, A je iskazna


c
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

2 Iskazna logika
A
0
0
1
1

AB
0
0
0
1

B
0
1
0
1

AB
0
1
1
1

AB
1
1
0
1

AB
1
0
0
1

Na osnovu navedenih tablica (tj. na osnovu pravila za odredivanje vrednosti formule), mo e se kontruisati istinitosna tablica za proizvoljnu iskaznu
z
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 i iskazne varijable p1 , p2 , . . ., pn , istinitosna tablica treba da
z
sadr i sve mogu e valuacije za ovaj skup varijabli (valuacije za druge varijable
z
c
nisu relevantne). U zavisnosti od vrednosti iskaznih varijabli, izra unavaju
c
se vrednosti slo enijih iskaznih formula, sve do s me iskazne formule koja
z
a
se ispituje. Ako su u koloni koja odgovara s moj iskaznoj formuli sve vreda
nosti jednake 1, formula je tautologija; ako je bar jedna vrednost jednaka 1,
formula je zadovoljiva; ako je bar jedna vrednost jednaka 0, formula je poreciva; ako su sve vrednosti jednake 0, formula je kontradikcija. Ovo pokazuje
da su problemi ispitivanja valjanosti, zadovoljivosti, nezadovoljivosti i porecivosti odlu ivi problemi, tj. postoje algoritmi koji ih mogu re iti.
c
s
Primer 2.4 Iskaznoj formuli (q p) (p q) odgovara slede a istinitosna
c
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 e biti zapisana u skra enom obliku zapisivanjem
z
c
samo zadate iskazne formule i odgovaraju ih vrednosti ispod pojedina nih iskaznih
c
c
slova i veznika. Iskaznoj formuli iz prethodnog primera odgovara slede a skra ena
c
c
istinitosna tablica (popunjena u nekoliko koraka):
(

q
0
1
0
1

p)
0
0
1
1

(p
0
0
1
1

q)
0
1
0
1

(
1
0
1
0

q
0
1
0
1

1
1
0
0

p)
0
0
1
1

(p
0
0
1
1

1
1
0
1

q)
0
1
0
1

2.2 Semantika iskazne logike

23

(
1
0
1
0

q
0
1
0
1

1
1
0
1

1
1
0
0

p)
0
0
1
1

(p
0
0
1
1

1
1
0
1

q)
0
1
0
1

(
1
0
1
0

q
0
1
0
1

1
1
0
1

1
1
0
0

p)
0
0
1
1

1
1
1
1

(p
0
0
1
1

1
1
0
1

q)
0
1
0
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, koricenjem istinitosnih tablica, da je i
s
formula (D A) B tautologija.

Zadatak 11
Odrediti formulu A takvu da je formula ((A q) p) ((p
q) A) tautologija.
Zadatak 12 Odrediti, koricenjem istinitosnih tablica, (ako postoji) formulu A takvu
s
da je formula ((p (q r)) A) (A ((r q) p)) tautologija.

2.2.3

Logi ke posledice, logi ki ekvivalentne formule,


c
c
supstitucija

Denicija 2.7 Ka emo da je iskazna formula A logi ka posledica skupa iskaznih


z
c
formula i piemo |= A ako je svaki model za skup istovremeno i model za formulu
s
A.
Kada je skup kona an, tada {A1 , ..., An } |= B (tj. |= B) pi emo kra e
c
s
c
A1 , ..., An |= B. Ako je formula A logi ka posledica praznog skupa formula,
c
onda to zapisujemo |= A. Ako ne va i |= A, onda to zapisujemo |= A.
z
Teorema 2.2
(a) Formula je valjana ako i samo ako je logi ka posledica praznog skupa formula.
c
(b) Ako je skup kontradiktoran, onda je svaka formula njegova logi ka posledica.
c
Specijalno, svaka formula je logi ka posledica skupa {}.
c
(c) Ako je i |= A, onda je |= A.

Dokaz:

24

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

Primetimo da se simbol |= koristi i za zapisivanje da je valuacija v model


formule A i za ozna avanje relacije logi ke posledice. Primetimo i da u oba
c
c
okvira zapis |= A ima isto zna enje da je formula A valjana.
c

Denicija 2.8 Ka emo da su dve iskazne formule A i B logi ki ekvivalentne i


z
c
piemo A B ako je svaki model formule A model i za B i obratno (tj. ako va i
s
z
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 kim ekvivalencijama (ili kra e ekvivalencijama). Relacija je, o ic
c
c
gledno, relacija ekvivalencije nad skupom iskaznih formula.
Teorema 2.3 Va i A B ako i samo ako je iskazna formula A B tautologija.
z

Dokaz: Pretpostavimo da va i A B. U proizvoljnoj valuaciji v formule A i


z
B imaju istu vrednost, pa je formula A B ta na u v. Odatle sledi da
c
je A B tautologija. Pretpostavimo da je A B tautologija. Ako je u
proizvoljnoj valuaciji v formula A ta na, onda mora da je i B ta na u v
c
c
(jer je formula A B ta na u v). Dakle, svaki model za A je model i za
c
B. Analogno va i obratno svaki model za B je model i za A, te sledi
z

A B, sto je i trebalo dokazati.


2

Primer 2.6 Neke od logi kih ekvivalencija (ili, preciznije, neke od shema logi kih ekvic
c

2.2 Semantika iskazne logike

25

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

zakon dvojne negacije


zakon isklju enja tre eg
c
c
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

Logi ke ekvivalencije navedene u primeru 2.6, izmedu ostalog, pokazuju


c
da su konjunkcija i disjunkcija komutativni i asocijativni veznici. Zato mo emo
z
(uslovno) smatrati da konjunkcija (i disjunkcija) mogu da povezuju vi e od dve
s

formule, pri cemu ne moramo da vodimo ra una o njihovom poretku. Svaki


c

clan uop tene konjunkcije zovemo konjunkt, a svaki clan uop tene disjunkcije
s
s

zovemo disjunkt. Disjunkciju vi e literala (pri cemu njihov poredak nije bitan)
s
zovemo klauza. Klauza je jedini na ako sadr i samo jedan literal.
c
z
Denicija 2.9 Rezultat zamene (supstitucije) svih pojavljivanja iskazne formule C
u iskaznoj formuli A iskaznom formulom D ozna avamo sa A[C D]. Ta zamena
c
(supstitucija) denie se na slede i na in:
s
c
c
ako za iskazne formule A i C va i A = C, onda je A[C D] jednako D;
z
ako za iskazne formule A i C va i A = C i A je atomi ka iskazna formula, onda
z
c
je A[C D] jednako A;
ako za iskazne formule A, B i C va i A = C i A = (B), onda je A[C D] =
z
(B[C D]);
ako za iskazne formule A, B1 , B2 i C va i A = C i A = (B1 B2 ) (A =
z
(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 tena zamena (supstitucija) je skup zamena [C1 D1 ], [C2
s
D2 ], . . ., [Cn Dn ] gde su Ci i Di proizvoljne iskazne formule. Takvu zamenu zapisujemo [C1 D1 , C2 D2 , . . . , Cn Dn ].

26

2 Iskazna logika

Uoptena zamena primenjuje se simultano na sva pojavljivanja formula C1 , C2 ,


s
. . ., Cn u polaznoj formuli i samo na njih (tj. ne primenjuje se na potformule dobijene
zamenama).

U daljem tekstu cemo umesto termina uoptena zamena (uoptena supstitucija)


s
s
koristiti termin zamena (supstitucija).
Formulu koja je rezultat primene zamene [C1 D1 , C2 D2 , . . . , Cn
Dn ] nad formulom A, ozna avamo sa A[C1 D1 , C2 D2 , . . . , Cn Dn ].
c
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 i iskazna slova p1 , p2 ,
z
. . . , pn i ako su A1 , A2 , . . . , An proizvoljne iskazne formule, onda je iskazna formula

B = A[p1 A1 , p2 A2 , . . . , pn An ] takode tautologija.


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 itih istinitosnih funkcija (jer
c
skup {0, 1}n ima 2n elemenata i svaki od njih se mo e preslikati u 0 ili u 1).
z
Svaka iskazna formula koja ima n iskaznih slova generi e neku istinitosnu
s
funkciju nad n argumenata. Logi ki ekvivalentne iskazne formule (sa istim
c
brojem iskaznih slova) generi u identi ne istinitosne funkcije. Svaka istinis
c
tosna funkcija je generisana nekom iskaznom formulom koja sadr i samo veznike
z
, i .

2.2 Semantika iskazne logike

27

Primer 2.8
x1
1
0
1
0

x2
1
1
0
0

f (x1 , x2 )
0
1
1
1

Iskazna formula A koja generie istinitosnu funkciju f je (p1 p2 ) (p1 p2 )


s
(p1 p2 ).
U bilo kojoj iskaznoj formuli, mogu se, kori cenjem ekvivalencija
s
A B (A B) (B A)
A B A B
A B (A B)
eliminisati sva pojavljivanja veznika , i . Dobijena formula sadr a e,
z c
dakle, samo veznike i . Ka emo da je skup veznika {, } potpun, jer je
z
svaka iskazna formula logi ki ekvivalentna nekoj iskaznoj formuli samo nad
c
ova dva veznika i bez logi kih konstanti i . Kako je skup {, } potpun,
c
sledi da je svaka istinitosna funkcija generisana nekom iskaznom formulom

koja sadr i samo veznike i . Skup {, } je, takode, potpun.


z
Veznici i deni u se na slede i na in: A B je jednako (A B), a A B
s
c
c

je jednako (A B). Naglasimo da su ove denicije cisto sintaksne prirode i da


zapis A B mo emo smatrati samo kra im zapisom formule (A B). Veznik
z
c

zovemo nili ili Lukaijevi eva funkcija, a veznik zovemo ni ili Seferova funkcija.
s
c
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 AB ((A A) (B B)). Kako je


skup veznika {, } potpun, sledi da je potpun i skup {}. Isto va i i za skup
z
{}.
Teorema 2.5 Veznici i su jedina dva binarna veznika koja sama (pojedina no) cine
c

potpun sistem.

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


c

Zadaci
Zadatak 19 Dokazati da {, } i {, } nisu potpuni skupovi veznika.

Zadatak 20
Svaki stanovnik jedne dr ave ili uvek la e ili uvek govori istinu i na
z
z
svako pitanje odgovara uvek samo sa da ili ne. Neki turista dolazi na raskrsnicu u toj
dr avi i zna da samo jedan od dva puta vodi do glavnog grada. Ne postoji znak koji
z
pokazuje koji je to put, ali postoji metanin R koji stoji na raskrsnici. Koje da-ili-ne
s
pitanje treba turista da postavi da bi odredio kojim putem da krene?

28

2 Iskazna logika

Zadatak 21 U ra unarstvu se cesto koristi logi ki veznik (isklju ivo ili, isklju ic

c
c
c
va disjunkcija, eksluzivno ili, ekskluzivna disjunkcija) koji mo e biti denisan na
z
c
slede i na in: AB je jednako (tj. to je kra i zapis za) (A B) ili (AB)(A
c c
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 cemu 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 cemu je svaka od formula Ai (1 i n) konjunkcija literala.

Ako je iskazna formula A logi ki ekvivalentna iskaznoj formuli B i iskazna


c
formula B je u konjunktivnoj (disjunktivnoj) normalnoj formi, onda ka emo
z
da je formula B konjunktivna (disjunktivna) normalna forma formule A.
Kori cenjem pogodnih ekvivalencija, svaka iskazna formula mo e biti transs
z
formisana u svoju konjunktivnu (disjunktivnu) normalnu formu. Naglasimo
da jedna iskazna formula mo e da ima vi e konjunktivnih (disjunktivnih) norz
s
malnih formi (na primer, i formula (p r) (q r) (p s) (q s) i formula
(s q) (p r) (q r) (p s) (p p) su konjunktivne normalne forme formule (p q) (r s)). Sli no, jedna formula koja je u konjunktivnoj normalnoj
c
formi mo e biti konjunktivna normalna forma za vi e iskaznih formula.
z
s
Transformisanje iskazne formule u konjunktivnu normalnu formu mo e
z
biti opisano algoritmom prikazanim na slici 2.1. Kada govorimo o ,,primeni
neke logi ke ekvivalencije mislimo na kori cenje logi ke ekvivalencije na osc
s
c
novu teoreme o zameni (teorema 2.4).
Teorema 2.6 (Korektnost algoritma KNF) Algoritam KNF se zaustavlja i zadovoljava slede e svojstvo: ako je F ulazna formula, onda je izlazna formula F u konc
junktivnoj normalnoj formi i logi ki je ekvivalentna sa F .
c
Zaustavljanje algoritma KNF mo e se dokazati kori cenjem pogodno odabrane
z
s

mere formula.2 Tvrdenje F F sledi na osnovu teoreme 2.4 i cinjenice da se u


algoritmu koriste logi ke ekvivalencije.
c
2 U cilju dokazivanja zaustavljanja postupka transformisanja formule u konjunktivnu normalnu
formu deni e se preslikavanje iz skupa iskaznih formula u skup prirodnih brojeva [?]:
s

(A)

2 (gde je A atomi ka formula)


c

(A)

2 (A)

(A B)

(A) (B)

(A B)

(A) + (B) + 1

Mo e se jednostavno dokazati da je vrednost (A ) uvek manja od (A) ako je formula A dobijena


z
primenom nekog pravila prezapisivanja na formulu A (jer, na primer, va i da je (A B) =
z
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

(jer ne postoji beskona an strogo opadaju i niz prirodnih brojeva ciji je prvi element (A)).
c
c

2.2 Semantika iskazne logike

29

Algoritam: KNF
Ulaz: Iskazna formula F
Izlaz: Konjunktivna normalna forma formule F
1. Eliminisati veznik koristei logiku ekvivalenciju
c
c
A B (A B) (B A).
2. Eliminisati veznik koristei logiku ekvivalenciju
c
c
A B A B.
3. Dok god je to mogue, primenjivati logike ekvivalencije
c
c
(A B) A B i (A B) A B.
4. Eliminisati viestruke veznike koristei logiku ekvivalenciju
s
c
c
A A.
5. Dok god je to mogue, primenjivati logike ekvivalencije
c
c
(A (B C)) ((A B) (A C)) i
((B C) A) ((B A) (C A)).
Figure 2.1: Algoritam KNF
Naglasimo da transformisanje formule u njenu konjunktivnu normalnu for
mu mo e da d formulu cija je du ina eksponencijalna u funkciji du ine poz
a
z
z
lazne 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 ko iskazno slovo.
c
(b) Dokazati da postoji iskazna formula C takva da C ima samo iskazna slova koja
su zajedni ka za A i B i za koju va i da su A C i C B tautologije.
c
z

2.2.6

DejvisPatnamLogmanLovelandova procedura

DejvisPatnamLogmanLovelandova procedura3 (DPLL procedura) vr i ispis


tivanje 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 e smatrati skupom (ili, preciznije, multiskupom4 )
z
klauza, od kojih se svaka mo e smatrati skupom (ili, preciznije, multiskupom)
z

literala. Ipak, radi odredenosti rada algoritma, smatra emo da je skup (odnosno
c

multiskup) klauza ureden.


U proceduri se podrazumevaju slede e konvencije:
c
prazan skup klauza (zva emo ga praznom formulom) je zadovoljiv;
c
klauza koja ne sadr i nijedan literal (zva emo je prazna klauza) je nezadoz
c
voljiva; formula koja sadr i praznu klauzu je nezadovoljiva.
z
DejvisPatnamLogmanLovelandova procedura data je na slici 2.2.
Teorema 2.7 (Korektnost DPLL procedure) Za svaku iskaznu formulu DPLL procedura se zaustavlja i vra a odgovor DA ako i samo ako je polazna formula zadovoljiva.
c
DejvisPatnamLogmanLovelandova procedura je u najgorem slu aju eksc
ponencijalne slo enosti O(2N ), gde je N broj iskaznih slova u formuli, usled
z
rekurzivne primene split pravila (vi e o slo enosti izra unavanja videti u dos
z
c
datku ??). Iste (eksponencijalne) slo enosti su i svi drugi do sada poznati algoz
ritmi za ispitivanje zadovoljivosti. Ipak, svi ti algoritmi su znatno ekasniji od
metode istinitosnih tablica.
Izbor iskaznog slova u pravilu split je veoma va an. Neke varijante ovog
z
pravila su da se bira iskazno slovo sa najvi e pojavljivanja u teku oj formuli,
s
c
da se bira neko od iskaznih slova iz najkra e klauze itd.
c
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 emo iskoristiti i za ispitavanje da li je data formula tauz
tologija, 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 e puta.
s

2.2 Semantika iskazne logike

31

Algoritam: DPLL
Ulaz: Multiskup klauza D (D = {C1 , C2 , . . . , Cn })
Izlaz: DA, ako je multiskup D zadovoljiv;
NE, ako multiskup D nije zadovoljiv
1. Ako je D prazan, vrati DA.
2. Zameni sve literale sa

i zameni sve literale

sa .

3. Obrii sve literale jednake .


s
4. Ako D sadri praznu klauzu, vrati NE.
z
5. Ako neka klauza Ci sadri literal
z
ili sadri i neki literal i njegovu
z
negaciju, vrati vrednost koju vraa DPLL(D \ Ci ) (tautology).
c
6. Ako je neka klauza jedinina i jednaka nekom iskaznom slovu p, onda
c
vrati vrednost koju vraa DPLL(D[p ]); ako je neka klauza jec
dinina i jednaka p, gde je p neko iskazno slovo, onda vrati vrednost
c
koju vraa DPLL(D[p ]) (unit propagation).
c
7. Ako D sadri literal p (gde je p neko iskazno slovo), a ne i literal p,
z
onda vrati vrednost koju vraa DPLL(D[p ]); ako D sadri literal
c
z
p (gde je p neko iskazno slovo), a ne i literal p, onda vrati vrednost
koju vraa DPLL(D[p ]) (pure literal).
c
8. Ako DPLL(D[p ]) vraa DA, onda vrati DA; inae vrati vrednost
c
c
koju vraa DPLL(D[p ]) (gde je p jedno od iskaznih slova koje
c
se javljaju u D) (split).
Figure 2.2: DPLL procedura

Zadaci
Zadatak 26 Primenom DPLL algoritma ispitati da li su slede e formule zadovoljive:
c
(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 e prikazano na primeru jednostavne igre c


Vumpus.

U pe ini u kojoj zivi cudovi te Vumpus nalazi se zlato. Igra ulazi u pe inu
c
s
c
c

i tra i ga. Igra se igra na tabli od 4x4 polja. Vumpus se nalazi na jednom od
z
njih. Na nekima od njih se mogu nalaziti provalije, a na jednom je zlato. Po to
s

je u pe ini mrak igra ne vidi sta se nalazi na susednim poljima. Na poljima


c
c
oko provalija se ose a povetarac. Kako se Vumpus ne kupa, na poljima oko
c
njega, ose a se smrad. Ako igra stane na polje na kome se nalazi provalija ili
c
c

32

2 Iskazna logika

Figure 2.3: Tabla za igru Vumpus


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

2.2 Semantika iskazne logike

33

Na po etnom polju igra ne ose a ni smrad ni povetarac, pa zna da su polja


c
c
c
(2,1) i (1,2) bezbedna. Recimo da prvo ode na polje (2,1). Tu ose a povetarac i
c
zna da se na polju (3,1) ili (2,2) nalazi provalija, pa se vra a na polje (1,1). Po to
c
s
je na polju (2,1) upravo bio, istra uje polje (1,2). Tu se ose a smrad. Dosada nja
z
c
s
igra eva znanja se mogu se opisati na slede i na in:
c
c
c
S11 , S21 , S12
P11 , P21 , P12
Nala enje Vumpusa je sada lako.
z
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 i Vumpus se nalazi na polju (1,3).
c
Da bismo dali primer zapisivanja akcije koju igra mo e da preduzme uve cemo
c
z
s
i orijentaciju igra a. Neka 4 promenljive Oi ozna avaju orijentaciju igra a ka
c
c
c
4 strane sveta. Npr. O1 zna i da je igra orijentisan prema istoku, O2 prema
c
c
zapadu, O3 prema severu i O4 prema jugu. Kako bi opis orijentacije bio konzistentan, potrebno je zadovoljiti uslov da igra ne bude orijentisan na vi e strana
c
s
odjednom
(O1 O2 ) (O1 O3 ) (O1 O4 ) (O2 O3 )(O2 O4 )(O3 O4 ).

34

2 Iskazna logika

S druge strane potrebno je da igra bude orijentisan na neku stranu sto se


c
izra ava uslovom
z
O1 O2 O3 O4 .
Sada se akcija odapinjanja strele na susedno polje na kome se nalazi Vumpus mo e zapisati kao:
z
A11 O1 V21 P ucaj

O igledan problem je sto za 16 polja za jednu orijentaciju postoji 16 pravila


c
ovog tipa. Pomo u predikatskog ra una bi svih 16 moglo biti zapisana jednim
c
c
pravilom:
ij(Aij O1 Vi+1,j P ucaj).

Glava 3

Logika prvog reda


Logika prvog reda, predikatska logika, znatno je izra ajnija od iskazne logike.
z

Osnovna novina u odnosu na iskaznu logiku je uvodenje kvantikovanja, univerzalnog i egzistencijalnog. Zahvaljuju i kvantikatorima, u logici prvog reda
c

mogu se formulisati tvrdenja koja nije mogu e formulisati na jeziku iskazne


c

logike kao, na primer, tvrdenje ,,za svaku valuaciju postoji klauza iz S koja nije
ta na ako i samo ako ne postoji valuacija takva da je svaka klauza iz S ta na. U
c
c
logici prvog reda dozvoljeno je samo kvantikovanje promenljivih.1 U okviru
logike prvog reda mogu se opisati mnoge matemati ke teorije.
c
Kao i iskazna logika, logika prvog reda ima tri aspekta: svoju sintaksu
(ili jezik), svoju semantiku (ili zna enje iskaza) i svoje deduktivne sisteme. I
c
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 ivi, te ne postoje efektivni algoc
ritmi za njihovo re avanje. No, problem ispitivanja valjanosti za predikatsku
s
logiku je poluodlu iv, pa postoje metode koje za svaku valjanu formulu mogu
c
da doka u da je ona valjana (a ne mogu za bilo koju formulu koja nije valjana
z
da utvrde da nije valjana).
Postoji vi e metoda i pristupa za ispitivanje i dokazivanje valjanosti i zados
voljivosti. Neki od njih su semanti ke, a neki deduktivne (tj. sintaksno-dedukc

tivne) prirode. Kao i u iskaznoj logici, klju na veza izmedu ova dva koncepta
c

je tvrdenje da je formula valjana ( to je semanti ka kategorija) ako i samo ako


s
c
je ona teorema ( to je deduktivna kategorija). Zahvaljuju i ovoj vezi, sintaksa
s
c
predikatske logike (jezik predikatske logike), njena semantika (konvencije o

zna enju formula) i njena deduktivna svojstva cine kompaktnu celinu.


c

1 U logici vi eg reda predikati i funkcije kao argumente mogu imati druge predikate i funkcije
s
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 ivo kao o nizovima simbola i ne uzima u obzir njihovo mogu e zna enje.
c
c
c
Denicija 3.1 Logi ki deo jezika prvog reda cine skupovi:
c

1. prebrojiv skup promenljivih V ;


2. skup logi kih veznika {, , , , }, pri cemu je unarni veznik, a , ,
c

i su binarni veznici;
3. skup kvantikatora {, }, pri cemu je univerzalni kvantikator, a

egzistencijalni kvantikator;
4. skup logi kih konstanti { , };
c
5. skup pomo nih simbola {(, ), ,}.
c
Elemente nabrojanih skupova zovemo logi ki simboli.
c
Re nik ili signatura L sastoji se od najvie prebrojivih skupova i , koje redom
c
s
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 kih veznika, skupa kvantikatora, skupa
c
logi kih konstanti i skupa pomo nih simbola je prazan. Funkcijske simbole arnosti 0
c
c
zovemo simbolima konstanti. Skupovi i cine nelogi ki deo jezika prvog reda,

c
a sve njihove elemente zovemo nelogi kim simbolima.
c
Za datu signaturu
L = (, , ar)
re nad L je bilo koji niz simbola iz skupova , ili logi kog dela jezika.
c
c
Uz indeks ili bez indeksa, obi no ozna avamo sa:
c
c
a, b, c, . . . simbole konstanti;
f, g, h, . . . funkcijske simbole arnosti ve e od 0;
c
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 i:
z
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 nom primenom prethodna dva pravila.
c
Denicija 3.3 Skup atomi kih formula nad signaturom L = (, , ar) i skupom
c
promenljivih V je skup za koji va i:
z

3.1 Sintaksa logike prvog reda


logi ke konstante
c

37

i su atomi ke formule;
c

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


je p(t1 , t2 , . . . , tn ) atomi ka formula.
c
atomi ke formule se mogu dobiti samo kona nom primenom prethodna dva pravc
c
ila.
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 i:
z
svaka atomi ka formula je dobro zasnovana formula;
c
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 nom primenom prethodnih
c
pravila.

Umesto termina dobro zasnovana formula, cesto cemo pisati kra e formula.
c
Dobro zasnovane formule obi no ozna avamo velikim pisanim latini nim
c
c
c
slovima (eventualno sa indeksima). Skupove dobro zasnovanih formula obi no
c
ozna avamo velikim slovima gr kog alfabeta (eventualno sa indeksima).
c
c
Logi ke veznike zovemo i bulovskim veznicima ili, kra e, veznicima. Veznik
c
c
zovemo negacija, veznik konjunkcija, disjunkcija, veznik implikacija i

ekvivalencija. Zapis (A) citamo negacija A ili ne A. Zapis (A B) citamo A

konjunkcija B ili A i B. Zapis (A B) citamo A disjunkcija B ili A ili B. Zapis

(A B) citamo A implikacija B ili iz A sledi B. Zapis (A B) citamo A

ekvivalencija B ili A ekvivalentno B. Zapis ((x)A) citamo za svako x A. Zapis

((x)A) citamo postoji x takvo da je A.


Ako su dve dobro zasnovane formule A i B sintaksno identi ne (tj. ako
c
su jednake kao nizovi simbola), onda to ozna avamo A = B. Ako dve dobro
c
zasnovane formule A i B nisu sintaksno identi ne, onda to ozna avamo A = B.
c
c
Termove, atomi ke formule i dobro zasnovane formule nad signaturom L
c

ponekad cemo kra e zvati i L-termovi, L-atomi ke formule i L-formule.


c
c
Bazni term je term koji ne sadr i nijednu promenljivu. Bazna formula je forz
mula koja ne sadr i nijednu promenljivu.
z
Literal je atomi ka formula ili negacija atomi ke formule. Klauza je disc
c
junkcija literala.
Da bismo izbegli kori cenje velikog broja zagrada obi no izostavljamo spoljs
c
ne zagrade i usvajamo konvenciju uz koju u nekim dobro zasnovanim formulama neke zagrade mogu biti izostavljene i to na isti na in kao i za iskazne
c

formule, pri cemu kvantikatori imaju ve i prioritet od svih logi kih veznika.
c
c

Ka emo da formula A odreduje ili indukuje signaturu L, ako je L signatura


z
koja sadr i sve funkcijske i predikatske simbole iz A i nijedan vi e.
z
s
Denicija 3.5 Funkcija c iz skupa dobro zasnovanih formula u N svakoj dobro zasnovanoj formuli pridru uje slo enost na slede i na in:
z
z
c
c

38

3 Logika prvog reda


1. ako je A atomi ka dobro zasnovana formula, onda je c(A) = 0;
c
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 denie se na slede i na in:
s
c
c
svako pojavljivanje promenljive u atomi koj formuli je slobodno u toj formuli;
c
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 ite od x u formuli A je takode


c
slobodno u formuli (x)A; svako slobodno pojavljivanje promenljive x u A
je vezano (vode im kvantikatorom) u (x)A (tada ka emo da je x u dosegu
c
z
vode eg kvantikatora); pojavljivanje promenljive x u (x) u formuli (x)A je
c
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 e biti i slobodna i vezana u jednoj formuli.
z
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 e pojavljivanje je vezano. U ovoj formuli, promenljiva x je i slobodna i
c
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)) cetvrto pojavljivanje promenljive x je

vezano i ono je u dosegu kvantikatora x, a ne i kvantikatora x.

3.2 Semantika logike prvog reda

39

Cesto cemo pokazivati da formula A ima slobodne promenljive x1 , x2 , . . .,

xn zapisom A(x1 , x2 , . . . , xn ). Ovaj zapis, medutim, ne zna i da formula A


c
ne sadr i jo neke slobodne promenljive, niti zna i da promenljive x1 , x2 , . . .,
z s
c
xn nemaju i neka vezana pojavljivanja u formuli A. Zapis A(x1 , x2 , . . . , xn ) je
pogodan, jer mo emo da usvojimo konvenciju da kao A(t1 , t2 , . . . , tn ) zapisuz
jemo 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 enica. Za formulu A ka emo da je univerzalno zatvorena ako je oblika (x1 )(x2 ) . . . (xk )A ,
c
z
gde je xi V (i = 1, 2, . . . , k) i A ne sadr i kvantikatore kao ni slobodne
z
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 i kvantikatore kao ni slobodne promenljive osim (evenz
tualno) 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 e je ozna avamo sa A. Ako formula A
c
c
ima kao slobodne samo promenljive x1 , x2 , . . . , xk , onda formulu (x1 )(x2 ) . . .
(xk )A nazivamo egzistencijalnim zatvorenjem formule A i kra e je ozna avamo
c
c
sa A.

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

3.2

Semantika logike prvog reda

Semanti ki aspekt logike prvog reda govori o zna enju formula. U nastavku ce
c
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

U nastavku cemo smatrati da se podrazumeva (i kada to nije eksplicitno re eno)


c
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 cemu va i slede e:

z
c
D je neprazan skup i zovemo ga domen, nosa ili univerzum;
c
svakom simbolu konstante c iz L (tj. svakom funkcijskom simbolu arnosti 0),
funkcija I L pridru uje jedan element cI iz D;
z

40

3 Logika prvog reda


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

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 emo da je dj vrednost promenljive xi u valuaciji v. Ako su v i w vaz
luacije za isti skup promenljivih i u odnosu na isti domen, onda sa v x w
ozna avamo da je v(y) = w(y) za svaku promenljivu y razli itu od x.
c
c
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 enje) terma t u interpretaciji Iv , odredenoj L-strukturom
c
D i valuacijom v, ozna avamo sa Iv (t) i deniemo na slede i na in:
c
s
c
c
ako je t simbol promenljive x, onda je Iv (t) = v(x);
ako je t simbol konstante c, onda je Iv (t) = cI ;
ako je t jednako f (t1 , t2 , . . . , tn ) (pri cemu je ar(f ) = n) i ako je Iv (ti ) = di za

i = 1, 2, . . . , n (pri cemu je di D), onda je Iv (t) = fI (d1 , d2 , . . . , dn ).

Denicija 3.10 Vrednost (ili zna enje) formule A u interpretaciji Iv , odredenoj Lc


strukturom D i valuacijom v, ozna avamo sa Iv (A) i deniemo na slede i na in:
c
s
c
c
ako je A atomi ka formula
c

onda je Iv (A) = 1;

ako je A atomi ka formula onda je Iv (A) = 0;


c
ako je A atomi ka formula p(t1 , t2 , . . . , tn ) (pri cemu je ar(p) = n) i ako
c

je Iv (ti ) = di za i = 1, 2, . . . , n (pri cemu je di D), onda je Iv (A) =

pI (d1 , d2 , . . . , dn );
ako je A = B, onda je
Iv (A) =

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

ako je A = B1 B2 , onda je
Iv (A) =

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


0, ina e
c

ako je A = B1 B2 , onda je
Iv (A) =

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


0, ina e
c

3.2 Semantika logike prvog reda

41

ako je A = B1 B2 , onda je
Iv (A) =

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


1, ina e
c

ako je A = B1 B2 , onda je
Iv (A) =

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


0, ina e
c

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 e je Iv (A) = 0;
c
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 e je Iv (A) = 1.
c
Mo e se dokazati da je na opisani na in svakoj formuli A nad signaturom
z
c
L i skupom V pridru ena (jedinstvena) vrednost Iv (A). Primetimo da Iv (A)
z
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 enica, vrednost Iv (A) uop te ne zavisi od v, pa tada
c
s
umesto Iv (A) pi emo kra e I(A).
s
c

Denicija 3.11 Ako je interpretacija Iv odredena L-strukturom D i valuacijom v i


ako za L-formulu A va i Iv (A) = 1, onda ka emo da interpretacija Iv zadovolz
z
java formulu A, da je formula A ta na u interpretaciji Iv i da je L-struktura D sa
c
valuacijom v model formule A i piemo (D, v) |= A. Formula A je zadovoljiva u
s
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 emo da je ona kontradiktorna.
z
Denicija 3.12 Ako je za neku L-strukturu D formula A ta na za svaku valuaciju
c
v, tj. u svakoj interpretaciji Iv , onda ka emo da je L-struktura D model formule A,
z
ka emo da je formula A valjana u L-strukturi D i piemo D |= A. Ako je formula nad
z
s
signaturom L valjana u svakoj L-strukturi, onda za tu formulu ka emo da je valjana
z
i to zapisujemo |= A.
Ako formula nije valjana, onda ka emo da je ona poreciva.
z
Ako nije D |= A, onda piemo D |= A i ka emo da je D kontramodel za A.
s
z
Analogne denicije uvodimo za skupove formula.
Denicija 3.13 Skup re enica je konzinstentan ili zadovoljiv ako ima bar jedan
c
model. Ina e, ka emo da je nekonzistentan, nezadovoljiv, protivre an ili konc
z
c
tradiktoran.
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 a interpretacija
c
Iv u kojoj formula B nije ta na. Formula A je valjana, pa je ta na i u
c
c
interpretaciji Iv . U toj interpretaciji, onda, formula A B nije ta na (jer
c

je Iv (A) = 1 i Iv (B) = 0), sto protivre i pretpostavci da je formula A B


c
valjana. Dakle, polazna pretpostavka je pogre na, pa je formula B ta na
s
c

u svakoj interpretaciji, tj. ona je valjana, sto je i trebalo dokazati.


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

i va i Iw (A) = 0, pa formula A nije valjana u D, sto je u suprotnosti sa


z
pretpostavkom. Dakle, formula (x)A je valjana u D.
Pretpostavimo da je formula (x)A valjana u D. To zna i da za svaku
c
valuaciju v va i Iv ((x)A) = 1. Pretpostavimo da formula A nije valjana
z
u D. Tada postoji valuacija w takva da je Iw (A) = 0, pa je Iw ((x)A) = 0,

sto je u suprotnosti sa pretpostavkom. Dakle, formula A je valjana u D.


2
Teorema 3.3 Formula A je valjana ako i samo ako je formula (x)A valjana.
Dokaz: Neka je A formula nad signaturom L. Ako je formula A valjana, 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 i i obratno,
z
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

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

a b
1 1
1 0
0 0

c
0
1
1

3.2 Semantika logike prvog reda


Zadatak 31

43

Odrediti sve dvo lane modele formule (x)(y)(p(x, y)p(y, x)).


c

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 an domen.
c

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 cemu promenljiva x nije slobodna u A.

Zadatak 36 Dokazati da naredne formule nisu valjane:


(a) (x)A1 (x)A2 (x)(A1 A2 )
(b) (x)A1 (x)A2 (x)(A1 A2 )
Zadatak 37 Dokazati da formula (x)(y)p(x, y) (y)(x)p(x, y) nije valjana.
Zadatak 38 Dokazati da je slede a formula valjana:
c
((x)A) B (x)(A B)
pri cemu formula B nema slobodnih pojavljivanja promenljive x. Dokazati da data

formula nije valjana ako se izostavi navedeni dodatni uslov.

3.2.2

Logi ke posledice, logi ki ekvivalentne formule,


c
c
supstitucija

Denicija 3.14 Neka je skup formula i neka je A formula nad signaturom L.


Ka emo da je formula A logi ka posledica skupa formula i piemo |= A ukoz
c
s
liko za svaku L-strukturu D i svaku valuaciju v va i: ako za svaku formulu B iz
z
va i (D, v) |= B, onda va i (D, v) |= A.
z
z
Drugim re ima, ka emo da je formula A logi ka posledica skupa formula
c
z
c
ako je svaki model za istovremeno i model za A.
Ako je skup kona an, tj. ako je = {B1 , B2 , . . . , Bk }, onda pi emo B1 , B2 ,
c
s
. . . , Bk |= A. Ako je prazan skup, onda pi emo |= A. Ako je |= A, onda
s
formulu A zadovoljava svaka interpretacija i tada je formula A valjana.
Ako ne va i |= A, onda to zapisujemo |= A.
z
Na osnovu denicije logi ke posledice, jednostavno se dokazuje naredno
c

tvrdenje (analogno teoremi 2.2).


Teorema 3.8
(a) Svaka valjana formula je logi ka posledica praznog skupa formula.
c
(b) Ako je skup kontradiktoran, onda je svaka formula njegova logi ka posledica.
c
Specijalno, svaka formula je logi ka posledica skupa {}.
c

44

3 Logika prvog reda

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


Denicija 3.15 Ka emo da su formule A i B logi ki ekvivalentne i piemo A B
z
c
s
ako je A logi ka posledica formule B i B je logi ka posledica formule A.
c
c
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 kim ekvivalencijama (ili kra e ekvivalencijama). Relacija je, o igledc
c
c
no, relacija ekvivalencije nad skupom formula.
Teorema 3.9 Ako za L-formule A1 , A2 , B1 i B2 va i A1 A2 i B1 B2 , onda je:
z
(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 ki ekvivalentne ako
c
i samo ako je formula A B valjana.
Primer 3.3 Mo e se dokazati da za proizvoljnu L-formulu A va i (x)A (x)A.
z
z
Neka je D proizvoljna L-struktura. Pretpostavimo da va i Iv ((x)A) = 1 i doka imo
z
z
da onda va i i Iv ((x)A) = 1. Iz Iv ((x)A) = 1 sledi Iv ((x)A) = 0, pa u svakoj
z
valuaciji v , takvoj da je v x v, va i Iv (A) = 0. To zna i da u svakoj valuaciji v ,
z
c
takvoj da je v x v, va i Iv (A) = 1, a odatle sledi da u svakoj valuaciji v , takvoj
z
da je v x v , va i Iv ((x)A) = 1, pa i u valuaciji v, tj. Iv ((x)A) = 1, sto je i
z

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 kih ekvivalencija logike prvog reda (ili, preciznije, neke od
c
shema logi kih ekvivalencija logike prvog reda) su:
c
(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

(x)(A B)

(x)A B

De Morganov zakon
De Morganov zakon
zakon distributivnosti prema
zakon distributivnosti prema
zakon distributivnosti prema
(pri cemu B ne sadr i slobodna

z
pojavljivanja promenljive x)
zakon distributivnosti prema
(pri cemu B ne sadr i slobodna

z
pojavljivanja promenljive x)

Denicija 3.16 Term dobijen zamenom (supstitucijom) promenljive x termom tx u


termu t ozna avamo sa t[x tx ] i deniemo na slede i na in:
c
s
c
c

3.2 Semantika logike prvog reda

45

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;
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 avamo sa A[x tx ] i deniemo na slede i na in:
c
s
c
c

[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 (yA)[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 (yA)[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 (z)p(y, z).
c
Primer 3.5 Va i:
z
(x)A

(y)(A[x y])

(x)A

(y)(A[x y])

zakon o preimenovanju vezane


promenljive (pri cemu A ne sadr i

z
slobodna pojavljivanja promenljive y)
zakon o preimenovanju vezane
promenljive (pri cemu A ne sadr i

z
slobodna pojavljivanja promenljive y)

U daljem tekstu cemo pod terminom izraz podrazumevati i termove i formule.

46

3 Logika prvog reda

Denicija 3.18 Uop tena zamena (supstitucija) je skup zamena [x1 t1 ], [x2
s
t2 ], . . ., [xn tn ] gde su xi promenljive i ti su proizvoljni termovi i gde je xi = xj za
i = j. Takvu zamenu zapisujemo kra e [x1 t1 , x2 t2 , . . . , xn tn ].
c
Uoptena zamena primenjuje se simultano na sva pojavljivanja promenljivih x1 ,
s
x2 , . . ., xn u polaznom izrazu i samo na njih (tj. ne primenjuje se na podtermove
dobijene zamenama).

U daljem tekstu cemo umesto termina uoptena zamena (uoptena supstitucija)


s
s
koristiti termin zamena (supstitucija).
Izraz koji je rezultat primene zamene nad izrazom E, ozna avamo sa E.
c
O igledno, iz zamene [x1 t1 , x2 t2 , . . . , xn tn ] se mogu (ali ne
c
moraju) izostaviti sve pojedina ne zamene oblika xi xi .
c
Primer 3.6 Za = [x f (y)] i s = g(a, x) va i s = g(a, f (y)).
z
Za = [x f (x)] i s = g(a, x) va i s = g(a, f (x)).
z
Za = [x f (y), y a], s = g(a, x) i t = g(y, g(x, y)) va i s = g(a, f (y)) i
z
t = g(a, g(f (y), a)).
Ukoliko u zameni = [x1 t1 , x2 t2 , . . . , xn tn ] nijedan od termova
ti ne sadr i nijednu od promenljivih xj (sem, eventualno, ako je ti = xi za neko
z
i), onda je efekat te zamene jednak efektu sukcesivno primenjenih pojedina nih
c
zamena. Supstitucija je idempotentna (tj. za bilo koji izraz E va i E =
z
(E)) ako i samo ako va i taj uslov da nijedan od termova ti ne sadr i
z
z
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 i = [x f (g(z)), y
z
g(z)].
Za = [x f (y)] i = [y g(x)], va i = [x f (g(x)), y g(x)].
z
Za = [x y] i = [y x], va i = [y x].
z
Za = [x f (y)] i = [x g(z)], va i = [x f (y)].
z
Za = [x f (x)] i = [x a], va i = [x f (a)].
z
Mo e se dokazati da je kompozicija supstitucija asocijativna, kao i da va i
z
z
E() = (E).
Denicija 3.20 Ako je E izraz (term ili formula) i ako je supstitucija, onda ka emo
z
da je E instanca (ili primerak) izraza E. Ako je izraz E bazni, onda ka emo da je
z
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 avamo sa A[B1 B2 ] i deniemo na slede i
c
s
c
na in:
c
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 ka formula i nije instanca formule B1 , onda je A[B1


c
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 ki
c
ekvivalentnom formulom i za tu svrhu je data denicija dovoljna.
Teorema 3.11 (Teorema o zameni) Ako va i B1 B2 , onda je A A[B1 B2 ].
z
Primer 3.8 Neke od logi kih ekvivalencija logike prvog reda (koje proizilaze iz iskazne
c
logike) su (videti i primer 2.6):
A A
zakon dvojne negacije
A A
zakon isklju enja tre eg
c
c
(A B) (B A) zakon komutativnosti za
Primer 3.9 Va i (x)(AB) (x)(AB) (x)(AB) (x)(A
z
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 u logi ku ekvivalenciju:
c
c
xA y(A[x y])
pri cemu formula A nema slobodnih pojavljivanja promenljive y. Dokazati da data

logi ka ekvivalencija ne va i ako se izostavi navedeni dodatni uslov.


c
z
Zadatak 44 Dokazati da je supstitucija = [x1 t1 , x2 t2 , . . . , xn tn ]
idempotentna (tj. da za bilo koji izraz E va i E = (E)) ako i samo ako nijedan od
z
termova ti ne sadr i nijednu od promenljivih xj (sem, eventualno, ako je ti = xi za
z
neko i).

48

3.2.3

3 Logika prvog reda

Normalne forme

Denicija 3.22 Ka emo da je formula u preneks formi ili preneks normalnoj formi
z
ako je ona oblika
Q1 x1 Q2 x2 . . . Qn xn A
pri cemu je Qi ili ili i A ne sadr i kvantikatore, kao ni slobodne promenljive osim

z
(eventualno) promenljivih x1 , x2 , . . . , xn .
Ako je re enica (zatvorena formula) A logi ki ekvivalentna formuli B i forc
c
mula B je u preneks normalnoj formi, onda ka emo da je formula B preneks
z
normalna forma formule A. Kori cenjem pogodnih logi kih ekvivalencija, svas
c
ka zatvorena formula mo e biti transformisana u svoju preneks normalnu forz
mu. Radi jednostavnosti procedure i rezultuju e formule, obi no se u okviru
c
c
transformisanja formule u preneks formu najpre elimini u veznici i . Nas
glasimo da jedna formula mo e da ima vi e preneks normalnih formi (na priz
s
mer, 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 no, jedna formula koja je u
c
preneks normalnoj formi mo e biti preneks normalna forma za vi e formula.
z
s
Transformisanje formule u preneks normalnu formu mo e biti opisano proz
cedurom prikazanom na slici 3.1 (kada govorimo o ,,primeni neke logi ke ekvic
valencije mislimo na kori cenje ekvivalencije na osnovu teoreme o zameni
s
(3.11)).
Korektnost navedenog algoritma mo e se dokazati sli no kao korektnost
z
c
procedure za transformisanje formule u konjunktivnu normalnu formu (teorema 2.6). Za slu aj kada (prilikom primene koraka 4 algoritma) promenljiva
c
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 ke ekvivalencije). Bez detalja dokaza, navodimo
c
teoremu o korektnosti algoritma PRENEX.
Teorema 3.12 (Korektnost algoritma PRENEX) Algoritam PRENEX se zaustavlja i zadovoljava slede e svojstvo: ako je A ulazna formula, onda je izlazna formula
c
A u preneks normalnoj formi i logi ki je ekvivalentna sa A.
c
Za transformisanje formule u njenu preneks normalnu formu mogu se ko
ristiti i logi ke ekvivalencije kao sto su
c
B (xA) (x)(B A),
(x)A B (x)(A B),

pri cemu x nema slobodna pojavljivanja u formuli B, ali to nije potrebno ako
su na po etku eliminisani veznici i .
c
U nekim situacijama mogu e je primeniti neki korak navedenog algoritma
c
na vi e od jednog na ina. Na primer, formulu (x)p(x) (y)q(y) mogu e je
s
c
c
transformisati i u (x)(p(x) (y)q(y)) i u (y)((x)p(x) q(y)). Obe ove formule su, naravno, logi ki ekvivalentne sa polaznom formulom. Ipak, u situacic
jama kada je mogu e ,,pomeriti i univerzalni i egzistencijalni kvantikator,
c

uvek cemo radije ,,pomeriti najpre egzistencijalni, a onda univerzalni. Takav

prioritet uvodimo zarad jednostavnijeg koraka skolemizacije (o kojem ce biti


re i u nastavku). Naglasimo da univerzalni i egzistencijalni kvantikator ne
c

3.2 Semantika logike prvog reda

Algoritam: PRENEX
Ulaz: Zatvorena dobro zasnovana formula A
Izlaz: Preneks normalna forma formule A
1. Dok god je to mogue, primenjivati logike ekvivalencije
c
c
A B (A B) (B A) i
A B A B.
2. Dok god je to mogue, primenjivati sledee logike ekvivalencije:
c
c
c
(A B) A B,
(A B) A B,
(x)A (x)A,
(x)A (x)A.
3. Eliminisati viestruke veznike koristei zakon dvojne negacije:
s
c
A A.
4. Dok god je to mogue, primenjivati sledee logike ekvivalencije:
c
c
c
(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 emu x nema slobodna pojavljivanja u formuli B. Ako x ima sloc
bodna pojavljivanja u B, onda treba najpre preimenovati promenljivu
x u formuli (x)A (odnosno u formuli (x)A).
Figure 3.1: Algoritam PRENEX

49

50

3 Logika prvog reda

mogu, u op tem slu aju, da menjaju mesta, tj. formule (x)(y)A i (y)(x)A
s
c
nisu u op tem slu aju logi ki ekvivalentne. S druge strane, dva univerzalna
s
c
c
kvantikatora mogu da zamene mesta, tj. formule (x)(y)A i (y)(x)A su
logi ki ekvivalentne. Sli no, dva egzistencijalna kvantikatora mogu da zac
c
mene mesta, tj. formule (x)(y)A i (y)(x)A su logi ki ekvivalentne. To
c
su tinski zna i da u bloku kvantikatora istog tipa, njihov poredak nije bitan.
s
c
Primer 3.10 Razmotrimo formulu
x p(x) xyz(q(y, z) r(g(x), y)) .
Nakon koraka
x(p(x) xyz(q(y, z) r(g(x), y))) ,
kako je promenljiva x slobodna u p(x), najpre cemo preimenovati vezanu promenljivu

x u u (u okviru formule xyz(q(y, z) r(g(x), y))):


x(p(x) uyz(q(y, z) r(g(u), y))) .
Nakon toga kvantikatori u, y, z mogu, jedan po jedan, biti pomereni na po etak
c
formule:
xuyz(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 cemu je svaka od formula Ai (1 i n) disjunkcija literala.

Konjunktivna normalna forma formule predikatske logike mo e se dobiti


z
na isti na in kao i u slu aju iskazne logike (videti poglavlje 2.2.5).
c
c
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 .

Ako je formula x1 x2 . . . xn A u klauzalnoj formi, onda se cesto u zapisu


izostavljaju kvantikatori i pi e samo A, podrazumevaju i da se misli na unis
c
verzalno zatvorenje formule A.
Ne postoji za svaku re enicu formula koja je u klauzalnoj formi i koja joj
c
je logi ki ekvivalentna. Na primer, za re enicu (x)p(x) ne postoji formula
c
c

koja je u klauzalnoj formi i koja joj je logi ki ekvivalentna. Medutim, mo e se


c
z
dokazati da za svaku re enicu A postoji formula B u klauzalnoj formi takva
c
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 enice A, dovoljno je ispitati zadovoljivost formule B koja je u
c
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 enice A u formulu B koja je u klauzalnoj formi i koja
c
je zadovoljiva ako i samo ako je A zadovoljiva uklju uje eliminisanje egzisc
tencijalnih 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 aru Skolemu koji ih je prvi koristio). Prvi korak je transc
formisanje formule u preneks normalnu formu. Drugi korak je transformisanje
dela formule bez kvantikatora u konjunktivnu normalnu formu. Nakon toga,
postupkom skolemizacije elimini u se egzistencijalni kvantikatori, jedan po
s
jedan, sleva nadesno.
Pretpostavimo da re enica po inje egzistencijalnim kvantikatorom: yA.
c
c
Treba izabrati novi simbol konstante d koji se ne pojavljuje u signaturi, obrisati
kvantikator i zameniti promenljivu y simbolom d. Na taj na in formula yA
c
transformi e se u formulu A[y d]. Mo e se dokazati da je formula yA
s
z
zadovoljiva ako i samo ako je formula A[y d] zadovoljiva.
Ako re enica po inje nizom univerzalnih kvantikatora: x1 x2 . . . xn yA,
c
c
onda uvodimo novi funkcijski simbol f arnosti n koji do tada nije postojao u
signaturi. Polazna formula bi e onda transformisana u formulu x1 x2 . . . xn
c
A[y f (x1 , x2 , . . . , xn )]. Mo e se dokazati da je formula x1 x2 . . . xn yA
z
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 aj


c

uvodenja novog funkcijskog simbola.)


Teorema 3.13 (Teorema o skolemizaciji) Ako je formula B nad signaturom L dobijena skolemizacijom od re enice A nad signaturom L koja je u preneks normalnoj
c
formi, onda je A zadovoljiva ako i samo ako je B zadovoljiva.
Primer 3.12 Skolemizacijom se formula
xuyz(p(x) (q(y, z) r(g(u), y)))
transformie u formulu
s
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 enice A uzac
stopnom primenom slede ih postupaka:
c
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 kim ekvivalencijama, pa ako je formula B dobijena od formule
c
A uzastopnom primenom navedene dve transformacije, va i A B,
z

sto je ja i uslov nego uslov da je A zadovoljiva ako i samo ako je B


c

zadovoljiva. Na osnovu teoreme 3.13 sledi da skolemizacija cuva zadovoljivost 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 enicu A postoji formula B u klauzalnoj formi takva da je
c
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 e dokazati na slede i na in.
z
c
c
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 proirivanjem
s
signature L simbolom c. Poka imo da je formula p(x, x) p(c, c) nezadovoljiva.
z
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 i Iv (p(x, x) p(c, c)) = 1 tj. Iv ((x)(p(x, x) p(c, c))) = 1, pa za svaku
z
valuaciju w takvu da je w x v va i Iw (p(x, x) p(c, c)) = 1. To, dakle, va i i za
z
z
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, sto je kontradikcija. Dakle, formula p(x, x) p(c, c) je nezadovoljiva,

pa je polazna formula A valjana.

Zadaci
Zadatak 45 Odrediti klauzalne forme za formule:
(a) (x)A1 (x)A2 (x)(A1 A2 )
(b) (x)A1 (x)A2 (x)(A1 A2 )
(c) (x)(y)A (y)A(f (y), y)

3.2.4

Unikacija

Problem unikacije je problem ispitivanja da li postoji supstitucija koja cini dva


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 i e1 =
z
e2 , onda ka emo da su izrazi e1 i e2 unikabilni i da je supstitucija unikator za
z
ta dva izraza.

3.2 Semantika logike prvog reda

53

Dva unikabilna izraza mogu da imaju vi e unikatora. Za dva unikatora


s
1 i 2 ka emo da su jednaka do na preimenovanje promenljivih ako postoji
z

supstitucija koja je oblika [v1 v1 , v2 v2 , . . . , vn vn ], pri cemu su vi i vi


simboli promenljivih i va i 1 = 2 .
z
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 tiji unikator za izraze e1 i e2 ako svaki
s
unikator izraza e1 i e2 mo e biti predstavljen u obliku = za neku supstituciju
z
.
Na osnovu denicije, svaki unikator izraza e1 i e2 mo e biti dobijen od
z
najop tijeg unikatora primenom neke supstitucije. Svaka dva unikabilna
s
izraza imaju najop tiji unikator. Mo e se dokazati da za dva izraza postoji
s
z
najvi e jedan najop tiji unikator (do na preimenovanje promenljivih).
s
s
Unikacija ima mnoge primene. Jedna od najzna ajnijih je u metodu rec
zolucije.

Na slici 3.2 dat je opis op teg algoritma za odredivanje najop tijeg unikas
s
tora. Pretpostavimo da je dat niz parova izraza
(s1 , t1 ), (s2 , t2 ), . . . , (sn , tn )
i da se tra i supstitucija takva da va i
z
z
s1 = t1 , s2 = t2 , . . . , sn = tn .
Algoritam unikacije ili vra a tra enu supstituciju ili se zaustavlja neuspe no,
c
z
s
ukazuju i na to da tra ena supstitucija ne postoji. Ukoliko postoji bar jedna
c
z
supstitucija koja zadovoljava tra eni uslov, algoritam unikacije vra a najop tiz
c
s
ji unikator (za date parove izraza). Ulaz za algoritam unikacije za parove
(s1 , t1 ), (s2 , t2 ), . . . , (sn , tn ) se obi no zadaje u vidu niza jednakosti s1 = t1 , s2 =
c
t2 , . . . , sn = tn .
Primetimo da je korak 6 algoritma mogu e u op tem slu aju primeniti na
c
s
c
vi e na ina. Bilo koji od tih na ina vodi istom rezultatu neuspehu (ako ne
s
c
c
postoji tra eni unikator) ili jednom od unikatora koji se mogu razlikovati
z
samo do na preimenovanje promenljivih.

U koracima 5 i 6 se primenjuje tzv. provera pojavljivanja cime se obezbeduje


zaustavljanje procedure (tj. spre ava pojavljivanje beskona nih petlji).
c
c

Primer 3.15 Ilustrujmo rad algoritma za odredivanje na primeru slede e dve jedc
nakosti:
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: Najoptiji unikator


s
Ulaz: Niz jednakosti s1 = t1 , s2 = t2 , . . . , sn = tn
Izlaz: Najoptiji unikator (ako on postoji)
s
Primenjuj, dok je to mogue, sledee korake:
c
c
1. Ako postoje jednakosti koje imaju vie od jednog pojavljivanja, obrii
s
s
za svaku od njih sva pojavljivanja osim jednog (factoring).
2. Obrii sve jednakosti oblika t = t (tautology).
s
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 sledee sluajeve:
c
c
(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 obrii jednakost s = t (decomposition).
s
(b) Ako su s i t bilo koje druge forme, zaustavi rad i kao rezultat
vrati neuspeh (ovo se odnosi na sluajeve kada je jedan od terc
mova simbol konstante, a drugi nije; kada se u s i t razlikuju
vodei funkcijski (odnosno predikatski) simboli i kada su vodei
c
c
funkcijski (odnosno predikatski) simboli s i t razliite arnosti)
c
(collision).
5. Ako je x promenljiva, t term koji sadri x i x = t se pojavljuje u nizu
z
jednakosti, zaustavi rad i kao rezultat vrati neuspeh (cycle).
6. Ako je x promenljiva, t term koji ne sadri x, x se pojavljuje i u nekim
z
drugim jednakostima i x = t se pojavljuje u nizu jednakosti, onda
primeni supstituciju [x t] na sve druge jednakosti (application).
Ako nije mogue primeniti nijedan od navedenih koraka vrati tekui skup
c
c
jednakosti kao najoptiji unikator.
s
Figure 3.2: Algoritam Najoptiji unikator
s

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 e primeniti na vie na ina. Primenom koraka 6 za y = z dobijamo
c
s
c
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.

Ovaj niz jednakosti odreduje tra eni najoptiji unikator . Za


z
s
= [x g(z), w h(g(z)), y z]
va i
z
g(y) = x
f (x, h(x), y) = f (g(z), w, z)
tj. va i
z
g(z) = g(z)
f (g(z), h(g(z)), z) = f (g(z), h(g(z)), z) .
Primer 3.16 Razmotrimo slede u jednakost:
c
g(x, x) = g(y, f (y)) .
Primenom koraka 4(a) dobijamo
x = y, x = f (y).
Korak 6 mo e se primeniti samo na dva na ina:
z
c
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 tijeg unikatora (videti, na primer, [?, ?]).
s
Teorema 3.16 (Korektnost algoritma Najoptiji unikator) Algoritam Najoptis
s
ji unikator zadovoljava slede e uslove:
c
zaustavlja se;
ako vrati supstituciju, onda je ona najoptiji unikator za dati niz parova izraza;
s
ako se algoritam zaustavi sa neuspehom, onda ne postoji unikator za dati niz
parova izraza.

56

3 Logika prvog reda

Navedeni algoritam nije ekasan. Postoje znatno ekasniji algoritmi za


unikaciju. Mnogi od njih zasnovani su na kori cenju pogodnih struktura pos
dataka i implicitnom primenjivanju supstitucije (iz koraka 6). Neki od tih algoritama imaju linearnu slo enost (po broju polaznih jednakosti), ali, u op tem
z
s
slu aju, najop tiji unikator mo e imati i eksponencijalnu du inu (po broju poc
s
z
z
laznih jednakosti), te ga nije mogu e eksplicitno predstaviti u linearnom vrec
menu. To ilustruje slede i primer.
c
Primer 3.17 Za skup jednakosti
x1 = f (x0 , x0 )
x2 = f (x1 , x1 )
...
xn = f (xn1 , xn1 )
Najoptiji unikator sadr i zamenu xn t, gde je t term koji sadr i samo simbole x0
s
z
z
i f , pri cemu 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 tijeg unikatora mo e se koristiti i za unikovanje dobro zasnos
z

vanih formula. Prilikom ispitivanja da li neka formula cini instancu neke aksi
omske sheme, medutim, vr i se samo jednosmerno uparivanje i varijable u fors
mulama se smatraju konstantama koje nije mogu e instancirati. Postoje i drugi
c
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 e se primeniti algoritam za odredivanje najoptijeg
z
s
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 e supstituisati. Time se dobija najoptiji
c
s
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 najoptiji unikator za
s
ove dve formule
= [x a, y f (u, y)] .

Zadaci
Zadatak 46 Odrediti najoptiji unikator za slede i skup parova termova:
s
c
{(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 najvie jedan najoptiji unikator
s
s
(do na preimenovanje promenljivih).

3.2 Semantika logike prvog reda

3.2.5

57

Metod rezolucije

Metod rezolucije formulisao je Alan Robinson 1965. godine [?], slede i mnogoc
brojne prethodne rezultate. Metod rezolucije je postupak za ispitivanje (ne)zadovoljivosti
skupa klauza logike prvog reda, a mo e se pojednostaviti tako da je primenjljiv
z
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 kih ekvivalencija A A A i A A A, formula koja je u konc
junktivnoj normalnoj mo e da se zameni (logi ki ekvivalentnom) formulom
z
c
koja je skup (razli itih) klauza od kojih je svaka skup (razli itih) literala. Sve
c
c
klauze koje sadr e logi ke konstante ili mogu biti eliminisane ili zamenz
c
jene tako da se ne promeni zadovoljivost polaznog skupa klauza i da se ove
konstante ne pojavljuju u skupu klauza. Zaista, klauza koja sadr i literal je
z
u svakoj valuaciji ta na, pa mo e biti eliminisana (jer ne uti e na zadovoljivost
c
z
c
polaznog skupa klauza). Ako klauza C sadr i literal , onda taj literal mo e
z
z
biti obrisan, daju i novu klauzu C (jer je u svakoj valuaciji klauza C ta na ako
c
c
i samo ako je ta na klauza C ).
c
Klauza je zadovoljiva ako postoji interpretacija u kojoj je bar jedan literal iz
te klauze ta an. Prazna klauza, u oznaci 2, ne sadr i nijedan literal i nije zadoc
z
voljiva. Formula koja je skup klauza je zadovoljiva ako postoji interpretacija u
kojoj su sve klauze te formule ta ne, a ina e je nezadovoljiva.
c
c
U slu aju iskazne logike, ako je literal l jednak iskaznom slovu p, onda
c
c
sa l ozna avamo literal p; ako je literal l jednak negaciji iskaznog slova p
(tj. literalu p), onda sa l ozna avamo literal p. Za literale l i l ka emo da su
c
z

medusobno komplementni. U slu aju logike prvog reda, ako je literal l jednak
c
c
p(t1 , t2 , . . . , tn ), onda sa l ozna avamo literal p(t1 , t2 , . . . , tn ); ako je literal l
jednak p(t1 , t2 , . . . , tn ), onda sa l ozna avamo literal p(t1 , t2 , . . . , tn ). Za litc

erale l i l ka emo da su (medusobno) komplementni.


z
Metod rezolucije za iskaznu logiku
U metodu rezolucije za iskaznu logiku primenjuje se pravilo rezolucije slede
ceg oblika:
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 emo da klauze C l i C l rezolviramo pravilom
z
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 se rezolventa dodaje u
c
skup teku i skup klauza. Neka je S po etni skup, neka je S0 = S i neka je Si+1
c
c
rezultat primene pravila rezolucije na skup Si . Postupak se zaustavlja na jedan
od slede a dva na ina:
c
c

58

3 Logika prvog reda


ako u nekom koraku skup Si sadr i praznu klauzu (2), onda zaustavi
z
primenu procedure i vrati odgovor da je skup klauza S nezadovoljiv;
ako ne postoji mogu nost da se primeni pravilo rezolucije tako da se
c
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 ava emo obi no sa Ci (i = 1, 2, . . .).


c
c
c
Iza izvedene klauze zapisiva emo oznake klauza iz kojih je ona izvedena, kao
c
i redne brojeve literala nad kojim je primenjeno pravilo rezolucije. Literale u
klauzama razdvaja emo obi no simbolom , (umesto simbolom ).
c
c
Primer 3.19 Metodom rezolucije se iz skupa {{p, q, r}, {p, q}, {p}, {r}} mo e
z
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 e izvesti
z
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 zavrnom skupu klauza postoji prazna klauza ako i samo ako je pos
lazna formula nezadovoljiva.
Metod rezolucije mo e na razne na ine biti modikovan tako da bude ekasz
c
niji.
U svom osnovnom obliku, metod rezolucije proverava da li je dati skup

klauza (ne)zadovoljiv. Medutim, metod rezolucije mo e se koristiti i za ispiz


tivanje valjanosti. Naime, ako je potrebno ispitati da li je formula A valjana,
dovoljno je metodom rezolucije utvrditi da li je formula A nezadovoljiva (pri

cemu je potrebno najpre formulu A transformisati u konjuktivnu normalnu


formu). Ovaj vid dokazivanja da je formula A valjana zovemo dokazivanje pobijanjem. Za metod rezolucije primenjen na ovaj na in, saglasnost govori da nije
c
mogu e rezolucijom pogre no utvrditi (pobijanjem) da je neka formula valc
s
jana, a potpunost govori da je za svaku valjanu formulu metodom rezolucije
mogu e dokazati (pobijanjem) da je valjana.
c
Metod rezolucije za logiku prvog reda
U logici prvog reda, pravilo rezolucije je op tije nego u iskaznom slu aju, i
s
c
umesto da zahteva da u dve klauze postoje komplementni literali, zahteva da
u dve klauze postoje literali A i A takvi da su atomi ke formule A i A
c
unikabilne. Pravilo rezolucije za logiku prvog reda (u njegovom osnovnom
obliku, tzv. binarna rezolucija) mo e se prikazati na slede i na in:
z
c
c
A A
( )

3.2 Semantika logike prvog reda

59

gde su i klauze, a je najop tiji unikator za A i A .


s
Obe klauze na koje se primenjuje pravilo rezolucije su (implicitno) univerzalno kvantikovane. Zbog toga se svaka od njihovih varijabli mo e prez

imenovati (jer su formule xA(x) i x A(x ) logi ki ekvivalentne). Stavi e,


c
s
to je neophodno uraditi za sve deljene varijable, jer bi, ina e, neke primene
c
pravila rezolucije bile (pogre no) onemogu ene (jer odgovaraju i literali ne
s
c
c
bi bili unikabilni). Preimenovanje varijabli mo e se primeniti pre primene
z
pojedina nog pravila rezolucije ili unapred, pre primene s mog metoda rec
a
zolucije. Ako se preimenovanje varijabli primenjuje unapred, pre primene
metoda rezolucije, onda ono treba da obezbedi da nikoje dve klauze nemaju zajedni ku promenljivu. Dodatno, u svakoj novoizvedenoj klauzi treba preimec
novati 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 e primeniti pravilo rezolucije, jer su literali p(x, z) i p(b, a) unikabilni (uz
z
najoptiji unikator = [x b, z a]). Rezolventa ove dve klauze je klauza
s
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 koricena):
s
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 avamo ili 2.
c
Precizno govore i, forme Kovalskog B1 B2 . . .Bn , A1 A2 . . .Am
c

i nisu dobro zasnovane formule, ali cine zapis klauza koji je intuitivan i
blizak zapisu u PROLOG-u.
Pravilo rezolucije mo e da se reprezentuje i koriste i formu Kovalskog:
z
c
B A A B
( B B )

60

3 Logika prvog reda

gde je najop tiji unikator za formule A , A1 .


s
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 ,

sto je logi ki ekvivalentnto sa


c
( B B ) .
Primer 3.22 Razmotrimo slede e dve klauze Kovalskog: p(x, y) p(z, y) p(x, z) i
c
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 etni skup, neka je S0 = S i neka je Si+1 rezultat primene pravila
c
rezolucije na skup Si .2 Postupak se zaustavlja na jedan od slede a dva na ina:
c
c
ako u nekom koraku skup Si sadr i praznu klauzu (2), onda zaustavi
z
primenu procedure i vrati odgovor da je skup klauza S nezadovoljiv;
ako ne postoji mogu nost da se primeni pravilo rezolucije tako da se
c
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 e u klauzalnu formu i onda se na dobijeni skup klauza primenjuje metod
s
rezolucije. Ako se izvede prazna klauza, onda to zna i da je formula A
c
nezadovoljiva, pa je A valjana; ako u nekom koraku ne mo e da se izvede
z
nijedna nova klauza, onda to zna i je formula A zadovoljiva, pa A nije valc
jana. Mogu je i ishod da nove klauze mogu da se izvode beskona no, a da se
c
c
pri tome ne izvede prazna klauza.
Da bi se dokazalo da je neka formula A logi ka posledica formula B1 , B2 ,
c
. . ., 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 ki ekvivavalentna formuli p(a) (x)p(x). Metod rezolucije primenjujemo
c
na skup klauza {p(a), p(x)}. Pravilo rezolucije mogu e je primeniti samo na jedan
c
na in literali p(a) i p(x) se unikuju supstitucijom [x a] i njime se dobija
c
prazna klauza. Odatle sledi da je formula p(a) (x)p(x) valjana.
2 Primetimo da u op tem metodu nije specikovano kako se, od svih mogu ih, bira par klauza
s
c
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 ki ekvivalentna sa formulom (x)(y)(p(x, y)(y)(x) p(x, y))
c
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 e primeniti
c
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 ava emo obi no sa Ci (i = 1, 2, . . .).
c
c
c
Izvedene klauze ozna ava emo ponekad i sa Ri (i = 1, 2, . . .). Iza izvedene
c
c
klauze zapisiva emo oznake klauza iz kojih je ona izvedena, redne brojeve litc
erala u tim klauzama, iskori ceni najop tiji unikator, kao i supstituciju kojom
s
s
se preimenuju promenljive. Literale u klauzama razdvaja emo obi no simc
c
bolom , (umesto simbolom ).
Primer 3.25 Doka imo da je formula
z
(x)(y)q(x, y)
logi ka posledica skupa formula
c
{(x)(y)p(x, y), (x)(y)(p(x, y) q(x, y))} .
Dovoljno je dokazati da je formula
A = ((x)(y)p(x, y) (x)(y)(p(x, y) q(x, y))) (x)(y)q(x, y)
valjana. Preneks normalna forma negacije ove formule je
(w)(x)(y)(u)(v)(z)(p(x, y) (p(u, v) q(u, v)) q(w, z)) .
Nakon skolemizacije, ova formula dobija oblik:
(x)(u)(v)(z)(p(x, g(x)) (p(u, v) q(u, v)) q(c, z)) ,
pri cemu je c nova Skolemova konstanta, a g nova Skolemova funkcija. 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 etnog skupa klauza su:
c
H1 : p(x, g(x))
(prvi deo hipoteze)
H2 : p(u, v), q(u, v) (drugi deo hipoteze)
C1 : q(c, z)
(zaklju ak)
c
Prazna klauza se izvodi na slede i na in.
c
c
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)]

62

3 Logika prvog reda

Primer 3.26 Dokazati da je formula A = xyz(x y y z x z) logi ka


c
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 i skup klauza:
c
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 ava emo sa Ri (i = 1, 2, . . .).
c c
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 e jedan literal koji nije pod
s

negacijom. U PROLOG-u se koriste upravo Hornove klauze. Cetiri tipa Hornovih


klauza prikazana su u slede oj tabeli.
c
Tip
implikaciona klauza
ciljna klauza

cinjenica
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 e se dokazati da svaki nezadovoljiv skup Hornovih klauza sadr i bar


z
z

jednu cinjenicu i bar jednu ciljnu klauzu. Programski jezik PROLOG zasnovan
je na metodu rezolucije i na kori cenju Hornovih klauza. Postoji polinomijalni
s
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 cinjenica (assertion):

man(sokrat).
i pravilo (rule):
mortal(X) :- man(X).
(PROLOG konvencija je da se konstante zapisuju malim po etnim slovom, a promenljive
c
velikim po etnim slovom.) Ako se zada upit:
c
? - mortal(sokrat).

onda se metodom rezolucije pokuava izvodenje prazne klauze iz skupa klauza:


s
{man(sokrat), man(X) mortal(X), mortal(sokrat)} .
U ovom slu aju, prazna klauza se izvodi jednostavno (koriste i unikaciju {X
c
c
sokrat}) i PROLOG vra a rezultat:
c

3.2 Semantika logike prvog reda

63

Yes
Primetimo da, na primer, upit
? - mortal(platon).
ne mo e da uspe (sem ako nije zadata i cinjenica man(platon)).
z

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 e da
z
izvede nezadovoljiv skup klauza. Ova dva svojstva dokaza emo kao teoremu
c
o potpunosti i teoremu o saglasnosti za rezoluciju (teoreme ?? i 3.18). Metod
rezolucije, dakle, ima slede e karakteristike:
c
metod rezolucije je saglasan: ako je primenom metoda dobijena prazna
klauza, onda je i polazni skup klauza nezadovoljiv (ili, drugim re ima, iz
c
zadovoljivog skupa klauza mo e se dobiti samo zadovoljiv skup klauza);
z
metod rezolucije nije potpun, ali je potpun za pobijanje: iz svakog nezadovoljivog skupa klauza mogu e je izvesti praznu klauzu;
c
logika prvog reda nije odlu iva, pa najvi e sto mo e metod rezolucije da
c
s
z
bude je procedura poluodlu ivanja (za problem ispitivanja valjanosti).
c
Teorema 3.18 (Potpunost (za pobijanje) metoda rezolucije) Ako je nezadovoljiv skup klauza, onda se iz njega metodom rezolucije mo e izvesti prazna klauza.
z
Primer 3.28 Formula xy (p(x, y) p(y, x)) je logi ka posledica formula x p(x, x)
c
i uvw (p(u, v) p(w, v) p(u, w)), pa je formula
A = (x p(x, x)) (uvw (p(u, v) p(w, v) p(u, w)))
(xy (p(x, y) p(y, x)))
valjana.
C1
C2
C3
C4
C5

:
:
:
:
:

C6 :
C7 :

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

(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 in na koji se


c

biraju klauze nad kojim se primenjuje pravilo rezolucije. Takode, teorema o


potpunosti (teorema 3.18) tvrdi da se iz svakog nezadovoljivog skupa klauza
mo e izvesti prazna klauza, a ne tvrdi da se iz svakog nezadovoljivog skupa
z
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 e je da se i za nezadovoljiv skup klauza metod rezolucije ne zaustavlja.
c

Na in na koji se biraju klauze na koje se primenjuje pravilo rezolucije cini stratec


giju ili strategiju za upravljanje konkretne verzije metoda rezolucije. Strategija

je od su tinske va nosti za obezbedivanje nu nog izvodenja prazne klauze iz


s
z
z
nezadovoljivog skupa, ali i za ekasnost metoda.

64

3 Logika prvog reda

Jedna od mogu nosti za obezbedivanje potpunosti metoda rezolucije u stroc


zijem smislu (da postoji strategija za upravljanje metoda rezolucije takva da se

iz svakog nezadovoljivog skupa klauza nu no izvodi prazna klauza u kona no


z
c

mnogo koraka) je sistematsko izvodenje svih rezolventi iz skupa klauza koji se

siri tokom primene metoda. Sistematski metod rezolucije mo e se denisati na


z

slede i na in: metod se primenjuje u stupnjevima; prvi stupanj cini kreiranje


c
c

po etnog skupa klauza; neka pre i-tog stupnja teku i skup klauza cine klauze
c
c

C1 , C2 , . . ., Cn , i-ti stupanj sastoji se od izvodenja (i dodavanja teku em skupu


c
klauza) svih mogu ih rezolventi iz po svake dve klauze iz skupa C1 , C2 , . . ., Cn
c
(broj tih klauza je kona an); metod se zaustavlja ako se u nekom koraku izvede
c
prazna klauza ili ako se u nekom stupnju ne mo e izvesti nijedna nova klauza.
z
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 e izvesti prazna klauza, tj. postoji niz rezolventi R1 , R2 , . . ., Rn (koje
z
se izvode iz po etnih i izvedenih klauza) od kojih je poslednja u nizu
c
prazna klauza. Ako se na skup klauza primeni sistematski metod rezolucije, u nekom stupnju bi e (ako ve pre toga nije izvedena prazna
c
c
klauza) izvedene sve klauze iz skupa R1 , R2 , . . ., Rn , pa i prazna klauza.
2
O igledno je da je sistematski metod rezolucije izuzetno neekasan. Poc

stoji vi e strategija koje obezbeduju nu no izvodenje prazne klauze iz nezados


z
voljivog skupa klauza (tj. spre avaju beskona ne petlje), ali na ekasniji na in.
c
c
c
Te strategije su od su tinske va nosti i za broj klauza koje se izvode i, shodno
s
z

tome, za ekasnost metoda. Smanjivanje izvodenja nepotrebnih klauza jedan


je od najva nijih problema metoda rezolucije. U daljem tekstu bi e ukratko
z
c
opisane neke od strategija koje se koriste u razli itim varijantama metoda rec
zolucije.
Razmotrimo slede i primer: potrebno je dokazati da je formula xy(p(x, y)
c
p(y, x)) logi ka posledica formula xp(x, x) i uvw(p(u, v) p(w, v)
c
p(u, w)). Dovoljno je dokazati da formula x p(x, x) (uvw (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 ka)
c
C4 : p(b, a)
(drugi deo zaklju ka)
c
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

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 a
s

rezonovanje matemati ara koji kre e od tvrdenja koje treba dokazati i u dokazu
c
c
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 etnih klauza.
c
Linearna ulazna rezolucija je jedna od varijanti op teg metoda rezolucije. S
s

obzirom na to da ona isklju uje mnoge puteve izvodenja novih klauza, ona je
c

obi no znatno ekasnija nego op ti metod rezolucije. Medutim, iz istog razloc


s

ga, linearna ulazna rezolucija nema svojstvo potpunosti (kao sto ga ima op ti
s
metod rezolucije). Nepotpunost linearne ulazne rezolucije ilustruje slede i
c
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 e se rezolvirati samo sa klauzom C2 ili sa klauzom C4 . Rez

zolucija sa C2 daje q(x), sto vodi u beskona nu petlju. Rezolucija sa C4 daje


c

q(x), sto, dalje, daje simetri nu situaciju. Sli no va i i za sve ostale mogu noc
c
z
c
sti, te praznu klauzu nije mogu e izvesti ukoliko se koristi linearna ulazna
c
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 e doz
vesti 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 ajnijih
c
strategija za upravljanje metodom rezolucije su prednost jedini nim klauzama,
c
skup potpore, itd. U cilju ekasnijeg primenjivanja metodu, pored pravila rezolucije, koriste se i dodatna pravila, kao na primer paramodulacija. Sa ciljem
da zameni veliki broj ( esto komplikovanih i neprirodnih koraka) u kori cenju
c
s
aksioma jednakosti, uvodi se pravilo paramodulacije. Ono pove ava ekasnost
c
metoda rezolucije, ali nije nu no njegov deo (jer pravilo paramodulacije mo e
z
z
biti izvedeno pravilom rezolucije). Pravilo paramodulacije mo e biti reprezenz
tovano na slede i na in:
c
c
A t = s B ( ili s = t B)
(A[t s] B)
gde je najop tiji unikator za termove t i t i gde je A formula koja sadr i term
s
z
t . Na primer, iz klauza h(a) = b i c = a mo e da se izvede klauza h(c) = b
z

66

3 Logika prvog reda

primenom pravila paramodulacije (u jednom koraku) na slede i na in:


c
c
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 e da bude zadovoljiv?
z
(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 e da bude konz
tradiktoran?
(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 e da bude konz
tradiktoran?
(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 i metod rezolucije za logiku prvog reda dokazati da va i:
c
z
(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 ka posledica skupa formula {x(p(x) q(x)), x(q(x) s(x)), x(r(x)
c
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 ka posledica formula x (x = x) i uvw (u = v w = v u =
c
w).

Zadatak 58
Va i slede e:
z
c
Janko ima psa.
Svaki vlasnik psa voli zivotinje.

Nijedna osoba koja voli zivotinje ne mo e da udari zivotinju.

Janko ili Marko su udarili ma ku cije je ime Tuna.


c
Svaka ma ka je zivotinja.
c

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 cemu je C re enica. (Ovaj zadatak ilustruje kako metod rezolucije mo e biti oslabljen

c
z
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 e tvrdenje: Ako su svi politi ari lukavi i ako su samo pokvareni ljudi
c
c
politi ari, onda, ako postoji bar jedan politi ar, onda je neki pokvaren covek lukav.
c
c

3.3

Prirodna dedukcija

Pojam valjanosti je semanti ke prirode, a koncept dokazivanja i sistema za dec

dukciju vodi do pojma teoreme koji je sintaksno-deduktivne prirode. Kao sto je


teorija modela vezana za semantiku, tako su deduktivni sistemi i teorija dokaza
vezani za sintaksu. Pojam teoreme je deduktivni pandan pojma valjane formule,

koji je semanti ke prirode. Izmedu ova dva pojma postoji veza i deduktivni
c

68

3 Logika prvog reda

sistemi obi no imaju svojstvo potpunosti i saglasnosti: ako je neka formula


c
valjana, onda ona mo e biti dokazana u okviru deduktivnog sistema, a ako za
z
neku formulu postoji dokaz u okviru deduktivnog sistema, onda je ona sigurno valjana.

Sistemi za dedukciju su cisto sintaksne prirode primenjuju se kroz kombinovanje simbola, ne ulaze i u semantiku formula. Sisteme za dedukciju za
c
iskaznu logiku zovemo i ra un (iskazni ra u u slu aju iskazne logike i predikatski
c
c
c
ra u u slu aju logike prvog reda). Postoji vi e razli itih deduktivnih sistema, a
c
c
s
c

u nastavku ce biti opisan samo jedan prirodna dedukcija.


Sistem prirodne dedukcije (ra un prirodne dedukcije) uveo je, 1935. godine,
c
Gerhard Gencen sa namerom da prirodnije opi e uobi ajeno zaklju ivanje mas
c
c
temati ara [?].
c
U prirodnoj dedukciji koriste se logi ki veznici3 , , , , kao i logi ka
c
c
konstanta . Formula A B je kra i zapis za (A B) (B A), a formula
c
kra i zapis za A A. Skup formula deni e se na uobi ajeni na in.
c
s
c
c

Pravila izvodenja sistema prirodne dedukcije data su u tabeli 3.1. Primetimo da za svaki logi ki veznik i svaki kvantikator postoje pravila koja ga
c
uvode (pravila I-tipa) i pravila koja ga elimini u (pravila E-tipa). Pravilo ef q
s
(Ex falso quodlibet) je jedino pravilo koje ne uvodi niti elimini e neki logi ki
s
c

veznik. Skup pravila sistema prirodne dedukcije za iskaznu logiku cine sva
pravila iz tabele 3.1 izuzev onih koja uklju uju kvantikatore.
c
Postoji sistem prirodne dedukcije za klasi nu logiku (koji zovemo sistem
c
NK) i sistem prirodne dedukcije za intuicionisti ku logiku (koji zovemo sistem
c
NJ). U sistemu prirodne dedukcije za klasi nu logiku postoji jedna aksiomska
c
shema: A A (tertium non datur). Sistem za intuicionisti ku logiku nema
c
aksioma.

U pravilima izvodenja prikazanim u tabeli 3.1 simbol t ozna ava proizvolc


jan term. Simbol y ozna ava tzv. eigenvariable (pravu promenljivu) simbol
c
promenljive za koju va i tzv. eigenvariable uslov. Ovaj uslov za pravilo I je
z
da va i da je x = y ili da promenljiva y nije slobodna u A, kao i da va i da
z
z

y nije slobodna ni u jednoj neoslobodenoj pretpostavci u izvodenju formule


A[x y]. Eigenvariable uslov za pravilo E je da va i da je x = y ili da
z
promenljiva y nije slobodna u A, kao i da va i da y nije slobodna u B niti u bilo
z

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 ava da se nekoliko (mo da i nula)


c
z

pojavljivanja pretpostavke F oslobada, bri e (kao nedokazane, neraspolo ive


s
z
pretpostavke) neposredno nakon primene pravila. Pri tome, mo e ostati i
z

nekoliko neoslobodenih pojavljivanja pretpostavke F . Pretpostavkama su pridru ene oznake (obi no prirodni brojevi), koje se zapisuju i u okviru zapisa
z
c

primenjenog pravila (kako bi se znalo koja pretpostavka je oslododena u kom


koraku).

U sistemu prirodne dedukcije dokaz (dedukcija, izvod) je stablo cijem je svakom

cvoru pridru ena formula, a svakom listu ili pretpostavka ili aksioma. Forz

mula A je teorema prirodne dedukcije ako postoji dokaz u cijem je korenu A i


3 Iz sistema prirodne dedukcije mogu e je eliminisati veznik smatraju i formulu A
c
c
skra enim zapisom za A .
c

3.3 Prirodna dedukcija

69

[A]u
.
.
.
.
I, u
A

A B
I
AB

A
I
AB

A
E

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

B
I
AB

[A]u
.
.
.
.
B
I, u
AB

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

A[x y]
I
(x)A
uz dodatni uslov

AB
E
B
(x)A
E
A[x t]

A[x t]
I
(x)A

(x)A

[A[x y]]u
.
.
.
.
B
E, u

B
uz dodatni uslov
ef q
D

Table 3.1: Pravila izvodenja sistema prirodne dedukcije

koji nema neoslobodenih pretpostavki i tada pi emo A i ka emo da je fors


z

mula A dokaziva u sistemu prirodne dedukcije. Ako postoji dokaz, u cijem je

korenu formula A i koji ima neoslobodene pretpostavke koje pripadaju nekom


nizu , onda ka emo da je formula A deduktivna posledica niza i tada pi emo
z
s
A. Elemente niza tada zovemo i premisama ili hipotezama dokaza. Ako je
niz jednak B1 , B2 , . . . , Bn , onda pi emo B1 , B2 , . . . , Bn A.
s

Dokaz u sistemu prirodne dedukcije se obi no prikazuje u vidu stabla ciji


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

3 Logika prvog reda


.
.
.

.
.
.

.
.
.
.
A

.
.
.
.
B
C
D
.
.
.
.

D
.
.
.

Figure 3.3: Deo dokaza i njegov pojednostavljeni prikaz


tj. va i
z

(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 i: A B, B C


z
[A]1

A C:

AB
E
B
BC
E
C
I, 1
AC

Primer 3.31 U sistemu prirodne dedukcije va i


z

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) (to je slabije tvrdenje od


s

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 nu i za intuicionisti ku logiku). Neki matemati ar bi ovu
c
c
c
formulu (neformalno) dokazao na slede i na in:
c
c

3.3 Prirodna dedukcija

71

1. Pretpostavimo da va i (x)(y)p(x, y).


z
2. Pretpostavimo da va i (y)p(x , y) za neko x .
z
3. Neka je y proizvoljni objekat. Tada va i p(x , y ).
z
4. Iz p(x , y ) sledi da va i (x)p(x, y ).
z
5. Objekat y je proizvoljan, pa va i (y)(x)p(x, y).
z
6. Iz (x)(y)p(x, y) i iz toga sto pretpostavka (y)p(x , y) ima za posledicu (y)(x)

p(x, y), sledi (y)(x)p(x, y).


7. Iz pretpostavke (x)(y)p(x, y) sledi (y)(x)p(x, y), pa va i (x)(y) p(x, y)
z
(y)(x)p(x, y).
Ovaj dokaz mo e se precizno opisati u vidu dokaza u sistemu prirodne dedukcije (i
z
za klasi nu i za intuicionisti ku logiku):
c
c
1

[(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 nu i za intuicionisti ku logiku):
c
c
[p(z)]1
I
(x)p(x)

[(x)p(x)]2

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

Primer 3.34 U sistemu prirodne dedukcije va i xA, x(A B)


z
xA
E
A

xB:

x(A B)
E
AB
E
B
I
xB

Naredna teorema povezuje semanti ka i deduktivna svojstva klasi ne logike


c
c
(ona va i i za iskaznu i za predikatsku logiku).
z
Teorema 3.20 Formula je teorema sistema prirodne dedukcije za klasi nu logiku ako i
c
samo ako je valjana.

72

3 Logika prvog reda

Zadaci
Zadatak 61

Dokazati da u prirodnoj dedukciji va i A B, A


z

B.

Zadatak 62
Dokazati da je formula (A B) (B A) teorema sistema
prirodne dedukcije za klasi nu logiku.
c

Zadatak 63
Dokazati da je formula (A (B C)) ((A B) (A C)) teorema
sistema prirodne dedukcije za klasi nu logiku.
c

Zadatak 64
Dokazati da je formula (A B) (A B) teorema sistema
prirodne dedukcije za klasi nu logiku.
c

3.4

Sa etak
z

Glava 4

PROLOG
U logi kom programiranju, logika se koristi kao deklaritivni jezik za opisic
vanje problema, a dokaziva teorema kao mehanizam za re avanje problema.
c
s
Re avanje problema je podeljeno izmedju programera koji opisuje problem i
s
dokaziva a teorema koji problem re ava.
c
s
Jezik PROLOG je najzna ajniji predstavnik jezika deskriptivnog i logi kog
c
c
programiranja. Veoma je pogodan za mnoge primene tehnika ve ta ke ins c
teligencije. 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 ne operacije jednostavno implementiraju. Ime PROLOG-a dolazi
c
od engleskih re i PROgramming in LOGic. Mehanizam izvodjenja zaklju aka
c
c
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 iva a Alain Colmerauer-a iz
z c
Marseja i Roberta Kowalskog iz Edinburga. Oni su primetili da se klauzalna
forma mo e koristiti za opisivanje formalnih gramatika i da se dokaziva i zaz
c
snovani na rezoluciji mogu koristiti za parsiranje. Ekasan PROLOG mehanizam omogu en je otkri em LUSH ili SLD rezolucije koju je opisao Kowalski
c
c
1973. godine.
Prakti na upotreba PROLOG-a kao programskog jezika omogu ena je razvoc
c
jem ekasnog kompilatora Davida Warrena, u Edinburgu 1977. godine. Ta
verzija jezika, Edinbur ki PROLOG, detaljno opisana 1980. u knjizi Clocksins
a i Mellish-a nametnula se vremenom kao standardna verzija jezika i najja e
c
uticala na ISO standard za PROLOG.

4.1

Interpretatori i kompilatori

PROLOG sistemi obi no sadr e interaktivni interpretator (sa debagerom). Pored


c
z

toga, neki sistemi omogu vaju i kompiliranje koda koje daje izvr ne verzije
a
s

koje mogu samostalno da se izvr avaju. Izvr ni kod cesto je veoma ekasan
s
s

i uporediv sa izvr nim kodom dobijenim od programa na nekom procedurals


nom jeziku.
Komunikacija sa PROLOG interpretatorom odvija se kroz komandni prozor. Prompt interpretatora obi no izgleda ovako:
c

74

4 PROLOG

?Ve ina PROLOG sistema sadr i uputstva o kori cenju jezika a i samog inc
z
s
terpretatora. Ovo uputstvo se obi no mo e dobiti sa
c
z
?- help(help).
Komanda halt prekida izvr avanje interpretatora (ili kompiliranog pros
grama) i vra a kontrolu operativnom sistemu.
c
Neki od najpopularnijih PROLOG interpretatora su Quintus, Sixtus, SWI
PROLOG itd.

4.2

Sintaksa i semantika u PROLOG-U

Jezik PROLOG-a cine: mala i velika slova engleskog alfabeta, cifre i specijalni
simboli (_, +, *, (, ), [, ], . . ..
Skup termova deni e se na slede i na in:
s
c
c
promenljive su termovi; promenljive se zapisuju po etnim velikim slovom
c

ili simbolom _ (simbolom _ po inju imena anonimnih promenljivih cije


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 inje malim slovom (npr. sokrat).
c
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 eg reda
s
(na primer, man(sokrat) ili ucitelj(sokrat,X)). Ovakve termove vi eg reda
s
u PROLOG-u zovemo i predikati.
Semantika, interpretacija termova odredjena je teku im stanjem baze znanja.
c

Domen interpretacije cine s mi PROLOG termovi. Baza znanja, koju PROLOG


a

odr ava, sastoji se od cinjenica i pravila. Cinjenice su predikati oblika:


z
p(x1,x2,...,xn)
Ukoliko baza znanja sadr i cinjenicu man(sokrat), onda se u prate oj interz
c
pretaciji atomi koj formuli man(sokrat) pridru uje vrednost 1, tj. ona je ta na.
c
z
c
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)

Ukoliko baza znanja sadr i pravilo mortal(sokrat) :- man(sokrat) i cinjenicu


z
man(sokrat), onda iz nje sledi da mortal(sokrat) ima semanti ku vrednost
c
1.
Upiti ili ciljevi (eng. goals) su oblika
q(y1,y2,...,ym),...,r(z1,z2,...,zk)
Postaviti cilj zna i tra iti proveru da li je zadati skup atomi kih formula
c
z
c
za neku valuaciju promenljivih koje sadr i ta an (tj. ima semani ku vrednost
z c
c
1) u odnosu na teku e stanje baze. Ako je taj uslov ispunjen, ka emo da je
c
z

4.3 Po etni primeri


c

75

cilj zadovoljen ili da cilj uspeva (eng. succeed). Valuaciju za koju je zadati cilj
zadovoljen zovemo odgovorom na zadati cilj ili reenjem zadatog cilja.
s
Na primer, ukoliko baza znanja sadr i cinjenicu man(sokrat), i pravilo
z
mortal(X) :- man(X), onda cilj mortal(Y) mo e biti zadovoljen i to za valz
uaciju kojom se promenljiva Y preslikava u vrednost sokrat. Jedini odgovor
na ovaj cilj bi e, dakle, Y = sokrat.
c

U interaktivnom okru enju, nove cinjenice i pravila se zadaju iza prompta,


z
kao argumenti predikata assert(...) i svaki zadati cilj se mora zavr avati
s
ta kom.
c

Cinjenice, pravila i ciljevi, pored navedene, deklarativne semantike, imaju i


odgovaraju u proceduralnu semantiku koja omogu ava kori cenje PROLOG-a
c
c
s

kao programskog jezika. Proceduralna semantika cinjenice man(sokrat) je da


je zadatak man(sokrat) izvr en. Proceduralna semantika pravila mortal(X) :- man(X)
s
je: da bi se izvr io zadatak mortal(X) potrebno je da se izvr i zadatak man(X).
s
s
Proceduralna semantika cilja mortal(X) je: odredi valuaciju takvu da je mortal(X)
ta no. Proceduralna semantika za slo eni cilj, koji se sastoji od vi e pojedc
z
s

ina nih ciljeva, je analogna, s tim sto se podciljevi obradjuju sleva na desno.
c
PROLOG interpretator kao odgovor na neki cilj koji je zadovoljen, ispisuje

jednu valuaciju (zbog speci nog domena, valuaciju cemo zvati i instanciranje)
c
promenljivih za koju je cilj ta an i re Yes (ukoliko ime neke promenljive po inje
c
c
c
simbolom _, onda se njena vrednost ne ispisuje). Ukoliko cilj ne mo e biti
z
zadovoljen, interpretator ispisuje re No. Ukoliko jedan cilj ima vi e odgovora
c
s

(tj. zadovoljavaju ih valuacija), PROLOG ih navodi jedan po jedan, nakon sto


c
korisnik ukuca znak ;. Ukoliko korisnik pritisne Enter, interpretator prestaje
sa daljim navodjenjem re enja. Kada su sva re enja navedena, interpretator
s
s
ispisuje re No.
c

4.3

Po etni primeri
c

Nova cinjenica se mo e zadati kao u slede em primeru:


z
c
?- 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 an na in, na primer:
c
c
?- assert(mortal(X) :- man(X)).
U pravilu mortal(X) :- man(X), predikat mortal(X) je glava pravila a (jedno lani)
c
niz predikata man(X) je rep pravila.
Komandom listing mo emo da dobijemo spisak svih postoje ih cinjenica
z
c
i pravila:
?- listing.
man(sokrat).
mortal(A) :-

76

4 PROLOG
man(A).

Upit
?- mortal(sokrat).
uspeva (daje odgovor Yes). Da bi ovaj upit bio zadovoljen, u pravilu mortal(X) :- man(X)
je promenljiva X bila unikovana sa konstantom sokrat. Nakon toga, cilj mortal(sokrat)

je zamenjen ciljem man(sokrat) i on uspeva jer postoji takva cinjeniva.


Upit
?- mortal(plato).
ne uspeva (daje odgovor No).
Upit
?- mortal(A).
uspeva i daje odgovor
A = sokrat.
To je jedino mogu e re enje i ako ukucamo simbol ; dobi emo odgovor No.
c
s
c
Jednostavan i ilustrativan primer denisanja odnosa u PROLOG-u mo e se
z

dati na primeru porodi nih relacija kao sto su otac, majka, brat, tetka i sli no.
c
c
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

77

brat(X,Y):-musko(X),roditelj(Z,X),roditelj(Z,Y),X\==Y.
sestra(X,Y):-zensko(X),roditelj(Z,X),roditelj(Z,Y),X\==Y.
tetka(X,Y):-sestra(X,Z),roditelj(Z,Y).
ujak(X,Y):-brat(X,Z),majka(Z,Y).
bratodujaka(X,Y):-musko(X),otac(Z,X),ujak(Z,Y).
sestraodujaka(X,Y):-zensko(X),otac(Z,X),ujak(Z,Y).
bratodtetke(X,Y):-musko(X),majka(Z,X),tetka(Z,Y).
sestraodtetke(X,Y):-zensko(X),majka(Z,X),tetka(Z,Y).
U relacijama brat i sestra predikag X\==Y je ima vrednost ta no ako je X
c
razli ito od Y. U suprotnom, ima vrednost neta no.
c
c

4.4

PROLOG i metod rezolucije

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

78

4 PROLOG

Primetimo da u svim PROLOG klauzama najvi e jedan literal nije pod nes
gacijom. Takve klauze zovemo Hornovim klauzama i one omogu avaju ekasan
c
mehanizam izvodjenja prazne klauze.
PROLOG mehanizam je kompletan: on mo e izvesti praznu klauzu iz bilo
z
kog nezadovoljivog skupa.

4.5

Stablo izvodjenja

PROLOG sistem (interpretator ili kompilator) poku ava da zadovolji zadati


s

cilj sistemati nim ispitivanjem svih mogu nosti. Sve mogu nosti cine stablo
c
c
c

izvodjenja (eng. derivation tree) ili stablo pretrage (eng. search tree) cijim listovima 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 enje za zadati cilj.
s
Stablo izvodjenja PROLOG-a ilustrova emo primerom. Pretpostavimo da
c
je u itana PROLOG datoteka koja sadr i kod dat na slici 4.1 (na kraju svakog
c
z
reda, pod komentarom je oznaka klauze). Grane stabla su ozna ene oznakama
c

klauza koje se koriste u izvodjenju. Direktni potomci jednog cvora odgovaraju


svim mogu im izvodjenjima odgovaraju eg podcilja. PROLOG mehanizam
c
c
ih sve ispituje sistemati no. Poredak potomaka direktno odgovara poretku
c
klauza u postoje em programu i on diktira na in izvr avanja upita.
c
c
s
Na slici je prikazano kompletno stablo izvodjenja za cilj ?-p(X).

Svaki cvor stabla je u nekom trenutku teku i cilj koji mo e da cini nekoc
z
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.

PROLOG stablo izvodjenja obilazi u dubinu, sto zna i da ce alternativni izc


bori da budu ispitani onda kada se pretraga vrati do ta ke u kojoj ti izbori
c
postoje. Ovaj postupak pretrage zove se bektreking (eng. backtracking).
U skladu sa prikazanim stablom izvodjenja, upit p(X) da e slede e odgovc
c
ore:
?- p(X).
X = a ;
X = a ;
X = b ;
X = d ;
No

4.6 Operator se enja


c

79

p(a).
p(X) :- q(X), r(X).
p(X) :- u(X).

/* C1 */
/* C2 */
/* C3 */

q(X) :- s(X).

/* C4 */

r(a).
r(b).

/* C5 */
/* C6 */

s(a).
s(b).
s(c).

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

u(d).

/* C10 */
p(X)

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

C7(X=a)
r(a)

C8(X=b)
r(b)

C9(X=c)
r(c)

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 enja
c

Operator se enja (eng. cut operator), koji se zapisuje !, odseca delove stabla prec
trage. Ovaj operator, uspeva kada je on teku i cilj i stablu izvodjenja se odsec
caju svi drugi izvori na putu unzad do ta ke stabla izvodjenja (uklju uju i i
c
c c
nju) gde se nalazi operator.
Za program naveden u poglavlju 4.5, za cilj p(X),!. dobija se samo jedan
odgovor (a odgovaraju e stablo izvodjenja je prikazano na slici 4.2 sivom
c

bojom ozna eni su cvorovi koji se ne obilaze):


c
?- p(X),!.
X = a ;

80

4 PROLOG

No
p(X)

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

C7(X=a)
r(a)

C8(X=b)
r(b)

C9(X=c)
r(c)

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

Figure 4.2: Primer rada operatora se enja


c
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 enja daje samo odgovore (stablo izvodc
jenja je prikazano na slici 4.4):
?- r(X),!,s(Y).

4.6 Operator se enja


c

81
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.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 enja


c
Kona no, upit r(X),s(Y),!, zbog operatora se enja daje samo jedan odgovc
c
ore (stablo izvodjenja je prikazano na slici 4.5):
?- r(X),s(Y),!.
X = a
Y = a ;

82

4 PROLOG

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.5: Stablo izvodjenja sa operatorom se enja


c
Operator se enja ne koristi se samo u ciljevima, ve mo e da se koristi i u
c
c
z

pravilima/klauzama koje cine program. On spre ava kori cenje klauza koje
c
s
postoje iza klauze koja ga sadr i.
z
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 avajna nekog
s

ve eg programa, bi e dobijen (ispravan) odgovor Y=4. Medutim, ukoliko dode


c
c
e poku ati da zadovolji max(3,4,Y) na neki drugi
do bektrektinga program c
s

na in, sto je u ovom slu aju potpuno nepotrebno: maximum brojeva 3 i 4 je


c
c
4 i nema drugog mogu eg rezultata. U gore navedenoj denicije, dve klauze
c

se medusobno isklju uju (ako prva uspeva, onda druga sigurno ne uspeva i
c
obratno), pa je svaki poku aj da cilj bude zadovoljen na dva na ina gubljenje
s
c
vremena.
Opisani problem mo e se prevazi i kori cenjem operatora se enja. Ako je
z
c
s
c
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 e na slede i na in: ukoliko je pozvan
s
c
c
cilj max(X,Y,Y) i ukoliko X =< Y uspeva, onda je drugi argument maksimum i
operator se enja onemogu ava ispitivanje drugih mogu nosti. S druge strane,
c
c
c
(samo) ako X =< Y ne uspeva, prelazi se na slede u klauzu.
c
Primetimo da upotrebljeni operator se enja ne menja zna enje programa i
c
c
skup odgovora (u odnosu na prethodnu verziju). Obe verzije programa su iste,
do na operator se enja i to sugeri e da je njegova upotreba opravdana i prihc
s
valjiva. Takav operator se enja (koji ne menja zna enje programa) zovemo zec
c
leni operator se enja. Operator se enja tog tipa ima za cilj izbegavanje nepotrebc
c
nih izra unavanja popravljanje ekasnosti.
c

4.7 Negacija kao neuspeh

83

Postoji i druga vrsta operatora se enje crveni operator se enja. Crvenim


c
c
zovemo operator se enja koji menja zna enje programa. U principu dobro je
c
c
izbegavati takve operatore, sem ako za njihovu upotebu ne postoji dobar razlog. Razmotrimo slede i primer:
c
max(X,Y,Y) :- X =< Y,!.
max(X,Y,X).
Ovaj predikat je sli an prethodnom, uz razliku da je u drugoj klauzi izostavlc
jen uslov X>Y. Navedni program sa opetorom se enja nije isti ukoliko se izostavi
c
operator se enja. To sugeri e da njegova upotreba zahteva posebnu pa nju (jer
c
s
z
on menja zna enje programa). Za neke upite navedena implementacija je isc
pravna. Na primer, ona ispravno odgovara na upite u kojima je (samo) tre i
c
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 enjam i zna enje predikata
c
c
max je promenjeno. Na primer, ukoliko su sva tri argumenta instancirana, cilj
mo e da bude da se zadovolji max(2,3,2). Ovaj upit ne bi trebalo da uspe,
z
ali u navednoj verziji sa crvenim operatorom se enja on (neo ekivano?) usc
c
peva. Naime, ne uspeva unikovanje sa prvom klauzom, te se prelazi na
drugu. Cilj se uspe no unikuje sa drugom klauzom i biva zadovoljen. Ovaj
s
primer pokazuje kako neoprezna upotreba operatora se enja mo e da dovede
c
z
do neo ekivanog pona anja programa. On je tipi an primer za crveni operc
s
c
ator se enja. Navedena implementacije zapravo ne deni e maksimum, ve
c
s
c
neki drugi predikat i pona a se o ekivano (kao maksimum) samo u nekim
s
c
slu ajevima.
c
Dobra praksa je da se najpre implementira jasan program bez operatora
se enja i da se tek onda njegova ekasnost popravi kori cenjem operatora se enja.
c
s
c

4.7

Negacija kao neuspeh

Termin negacija kao neuspeh se koristi za na in na koji se pretpostavka zatvorenog


c
sveta (eng. closed world assumption) implementira kao vrsta negacije u PROLOG
u. Grubo re eno, pretpostavka zatvorenog sveta govori da je neta no sve sto
c
c
nije eksplicitno navedeno kao ta no. Operator \+ daje efekat negacije kao
c
neuspeha, isto kao predikat not denisan na slede i na in (u nekim implec
c
mentacijama PROLOG-a raspolo iv je i ovakav predikat not):
z
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 i primer u kojem se de e pojam woman preko pojma
c
s
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 nosti bekc

trekinga). S druge strane, cilj woman(ksantipa) uspeva (iako takva cinjenica ne


postoji u bazi). Ipak, cilj
?- woman(X).
ne uspeva. Zaista, ovaj cilj mo e da uspe samo ako cilj man(X) ne uspeva.
z
Ali cilj man(X) mo e da uspe (za X koje se instancira na sokrat). Dakle, cilj
z
woman(X) ne uspeva i X ne postaje vezana.
Upit ?- woman(X) mo emo da smatramo istim kao pitanje da li postoji X
z
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 ne logi ke negacije.
c
c

Razmotrimo jo jedan primer za ilustraciju razlike izmedu negacije kao


s
neuspeha i klasi ne logi ke negacije:
c
c
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 ekivali isto pona anje, medutim dobijamo:
c
s
?- p(X,Y).
X=1
Y=2;
X=2
Y=1;
No.
?- q(X,Y).
No.

4.8 Liste

85

Prvi upit se pona a u skladu sa na im o ekivanjem, ali drugi od njega


s
s
c
odstupa. Prvi podcilj cilja q(X,Y) je not(X=Y). Po to se neinstancirane promenljive
s
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 ekivani rezultat (o ekivani u smislu klasi ne logike prvog
c
c
c
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

prvi zadovoljen, onda ce promenljiva X ostati slobodna, za razliku od cilja

man(X) koji ce biti zadovoljen a promenljiva X ce biti instancirana na sokrat.


Ovo svojstvo mo e da poslu i i kao pogodan test da li su dva terma unikaz
z
bilna bez njihovog unikovanja u bilo kom slu aju. Na primer, cilj \+(\+(X=2))
c
uspeva, a pri tome se X ne instancira na 2.

4.8

Liste

Liste su jedan od klju nih tipova podataka koji se koriste u logi kom programic
c
ranju. Lista je prazna lista ili element za kojim sledi lista. Liste se rekurzivno
deni u, pa se rekurzija prirodno javlja u re enjima problema u kojima se one
s
s
koriste.
Lista mo e da se zapi e kao niz njenih elemenata razdvojenih zarezima
z
s

zapi u izmedu zagrada [ i ]. Lista kao svoj element mo e da sadr i i drugu


s
z
z
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 avamo sa []. Ukoliko je lista neprazna, njen prvi element
c
zovemo glava liste, a nastavak rep liste, takvu listu ozna avamo sa [GlavaListe|RepListe].
c
Slede a tabela pokazuje na primerima da li se i kako mogu unikovati rac
zli ite liste.
c

86

4 PROLOG
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

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 e denisati na slede i na in:


z
c
c
glava([H|_],H).
a prva tri elementa na slede i na in:
c
c
prvatri([X,Y,Z|_],X,Y,Z).
Rep liste se mo e odrediti na slede i na in:
z
c
c
rep([_|T],T).
Predikat koji dodaje element na pocetak liste se mo e denisati na slede i
z
c
na in:
c
dodajnapocetak(Lista,X,[X|Lista]).

Proveru da li je element X clan liste denisa emo na dva na ina:


c
c
clan1([X|_],X):- !.
clan1([_|R],X):- clan1(R,X).
clan2([X|_],X).
clan2([_|R],X):- clan2(R,X).
Prva denicija je ekasnija, po to operator se enja spre ava bektreking posle
s
c
c

uspe nog nala enja tra enog clana (dok se u drugoj verziji pretraga do kraja
s
z
z

liste i kad je tra eni elemente ve pronaden). Medutim, druga verzija se mo e


z
c
z

koristiti i za nabrajanje clanova liste. Upit clan1([1,2,3],X) daje odgovor:


?- clan1([1,2,3],X).
X=1;
No.

4.8 Liste

87

U slu aju upita clan2([1,2,3],X) dobijamo:


c
?- clan2([1,2,3],X).
X=1;
X=2;
X=3;
No.

Jo jedna razlika izmedu ovih predikata se ilustruje slede im primerima:


s
c
?- clan1([1,2,3],X), X>2.
No.
?- clan2([1,2,3],X), X>2.
X=3;
No.
U slu aju prvog predikata, promenljiva X se pomo u prvog pravila za clan1
c
c
unikuje sa prvim elementom liste, a operator se enja onemogu ava bektrekc
c
ing. Stoga ne uspeva cilj X>2 i sistem odgovara No. U drugom slu aju, posle
c
neuspeha cilja X>2, bektrekingom se dolazi do unikacije promenljive X sa
poslednjim elementom liste, kada i cilj X>2 uspeva.
Du ina liste se mo e izra unati slede im predikatom:
z
z
c
c
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 i upit:
c
?- 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 e da se interz


pretira 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 e je koristiti na nekoliko na ina, za izra unavanje
c
c
c
razli itih argumenta:
c
?- 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 enja, za bilo koje argumente navedni predikatu
c
mogu biti zadovoljeni samo na po jedan na in.
c
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 unavanje drugog arguc


menta ako je dat prvi. Nije ga mogu e koristiti za izra unavanje prvog arguc
c
menta 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 ke.
s
Algoritam bubble sort mo e se implementirati na slede i na in:
z
c
c

4.9 Ugradjeni predikati

89

bubblesort(List, Sorted) :swap(List, List1), !,


bubblesort(List1, Sorted).
bubblesort(Sorted, Sorted).
swap([X,Y|R], [Y,X|R]) :- X > Y.
swap([Z|R], [Z|R1]) :- swap(R, R1).
Druga varijanta uklju uje PROLOG operator implikacije -> (a naravno posc
toji i varijanta i bez njega):
bubblesort2(List, Sorted) :append(P, [A, B|T], List),
B < A ->
append(P, [B, A|T], R),
bubblesort2(R, Sorted)
; Sorted = List.

4.9

Ugradjeni predikati

Logi ke konstante Predikat true uvek uspeva kao cilj, predikat false nikad
c
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 i promenljive koje nisu
z
vezane.
Provera tipa
Predikat atom(X) uspeva ako je X vezana za simboli ki atom. Na primer,
c
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 ite vrednosti.
c
Vezivanje promenljive za numeri ku vrednost
c
Cilj V is E vezuje promenljivu V za numeri ku vrednost E. Vrednost E
c

mora biti numeri ka konstanta ili izraz cija je vrednost odredjena.


c
Aritmeti i operatori
c
Za brojeve N i M, dozvoljeni su slede i aritmeti ki operatori: N > M, N < M,
c
c
N =< M, N >= M.

90

4 PROLOG

Pomo ni predikati
c
Cilj help(S) uvek uspeva i daje obja njenje (ako ono postoji) za pojam S
s
(S treba da bude simboli ki atom, na primer, help(var)).
c
Cilj halt uvek uspeva, zaustavlja PROLOG i vra a kontrolu operativnom
c
sistemu.
Cilj trace uvek uspeva i uklju uje pra enje izvr avanja izra unavanja.
c
c
s
c
Cilj notrace uvek uspeva i isklju uje pra enje izvr avanja izra unavanja.
c
c
s
c
Dodavanje u PROLOG bazu i brisanje iz PROLOG baze
Cilj asserta(C) dodaje klauzu C u bazu pre klauza koje imaju isti klju ni
c
predikat (klju ni predikat klauze je prvi predikat sleva nadesno).
c
Cilj assertz(C) (kao i cilj assert(C)) dodaje klauzu C u bazu iza klauza
koje imaju isti klju ni predikat.
c
Cilj retract(C) bri e klauzu C iz baze. Klauza C treba da bude instancis
rana tako da mo e da se odredi klju ni predikat.
z
c
listing prikazuje sadr aj baze.
z
U itavanje PROLOG programa
c
Cilj consult(F) u itava program iz datoteke F.
c

Cilj reconsult(F) u itava program iz datoteke F, s tim sto se denicijom


c
predikata koji se u itava zamenjuje (eventualna) postoje a denicija.
c
c
Cilj [F1,F2,...] ozna ava u itavanje datoteke F1, zatim datoteke F2, itd.
c
c
U PROLOG programima komentari se pi u izmedju znakova /* i */.
s
Ulaz i izlaz
seeing(X) uspeva ako je X vezana za teku i ulazni tok (tzv. port). Na
c
primer, seeing(user) uspeva ako je teku i ulazni tok tastatura.
c
see(X) otvara kao ulazni port datoteku X. Naredni ulazi za predikat read
bi e citan sa tog porta.
c
seen zatvara sve ulazne portove i naredni ulazi za predikat read bi e
c
citani sa porta user.

read(X) cita izraz sa teku eg porta i sme ta ga u X.


c
s
telling(X) uspeva ako X mo e biti vezana za teku i izlazni port. Na
z
c
primer, tellin(user) uspeva ako je teku i izlazni tok ekran.
c
tell(X) otvara kao izlazni port datoteku X. Naredni ulazi predikata write
bi e slati na taj port.
c
told zatvara sve izlazne portove i naredni ulazi za predikat bi\ce bi e
c
slat na porta user.
write(E) ispisuje izraz vezan za E na teku i izlazni port.
c
nl omogu ava prelazak u novi red.
c
tab(N) ispisuje N razmaka na teku i izlazni port.
c
Kontrola toka
call(P) poziva predikat P, uspeva ako i samo ako uspeva P.
! operator se enja.
c

4.9 Ugradjeni predikati

91

Negacija kao neuspeh

not(Q), \+Q daje efekat negacije kao neuspeha (kao sto je obja njeno u
s
poglavlju 4.7.
Obrada PROLOG termova

clause(H,B) vra a klauze iz baze cija glava se uparuje sa H, a telo sa B.


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
lika f(...). F ce biti vezano za f a N za broj argumenat u f(...).
arg(N,E,A) uspeva ako je vrednost E vezana za funkcijski izraz oblika
f(...) i ako N mo e biti vezano za neki redni broj argumenta u f(...).
z

Ukoliko cilj uspe, A ce biti vezano za N-ti argument u f(...).


name(A,L) vr i konvertovanje izmedju atoma i liste. Na primer, upit
s
?- name(.pl,L). daje odgovor L = [46,112,108].
=.. vr i konvertovajne izmedju terma i liste. Na primer, ?- parent(a,X) = .. L.
s
daje odgovor L = [parent, a, _X001].
Operator :- op(P,T,O). uvodi simbol operatora.
P odredjuje prioritet operatora, ve oj vrednost odgovara ni i prioritet
c
z
(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 e pomo u jednostavnih, gore datih, niski karaks
c
tera. Karakter f ozna ava poziciju operatora, a x i y pozicije argumec
nata. Pri tome x zna i da se radi o argumentu sa glavnim operatorom
c
strogo manjeg prioriteta od operatora koji deni emo. y zna i da priors
c
itet glavnog operatora argumenta mo e biti manji ili jednak prioritetu opz
eratora koji deni emo. Pri tome se smatra da atomi i izrazi u zagradama
s
imaju prioritet 0.
Smisao ovakvog denisanja tipa operatora se najbolje ilustruje pomo u
c
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 ujemo da njegovo desno poddrvo
c
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 i kao ((a+b)+c). Da je tip operatora bio xfx ni jedno od
c
ova dva drveta ne bi bilo prihvatljivo, po to se bar u jednom poddrvetu
s
javlja operator + istog prioriteta. Ovo se mo e re iti pomo u zagrada,
z
s
c
po to je prioritet izraza u njima 0. Stoga tip xfx name e kori cenje zagrada,
s
c
s

sto zna i da operator nije asocijativan.


c
Ugradjeni operatori, poredjani po prioritetima:
:?;
,
not
is, =.., <, itd.
+, *, /
^

xfx, fx
fx
xfy
xfy
fy
xfx
yfx, fx
yfx
xfy

Pronala enje svih re enja findall(Things,GoalExpression,Bag) pronalazi


z
s
sve vrednosti za Thing koje zadovoljavaju uslov GoalExpression i sme ta
s

ih u listu Bag. Ako cilj GoalExpression ne uspeva, list Bag ce biti prazna.
Sve promenljive u GoalExpression se smatraju egzistencijalno kvantikovanim.
bagof(Things,GoalExpression,Bag) pronalazi sve vrednosti za Thing
koje zadovoljavaju uslov GoalExpression i sme ta ih u listu Bag. Ne uss
peva ako ne uspeva cilj GoalExpression. Slobodne promenljive u GoalExpression
mogu da se ve u.
z
setof(Things,GoalExpression,Bag) funkioni e isto kao bagof uz razs

liku da ce lista Bag biti sortirana i da ne e sadr ati duplikate.


c
z

4.10

Implementacija KNF algoritma

Kao prvi veci primer PROLOG programa koji ilustruje razne koncepte jezika,

navodimo implementaciju KNF algorima. Kasnije cemo na to nadovezati im-

4.10 Implementacija KNF algoritma

93

plementaciju algoritma DPLL. Radi preglednijeg zapisa, prvo uvodimo logi ke


c
veznike kao nove operatore.
:-op(10,fx,non).
:-op(20,yfy,and).
:-op(30,yfy,or).
:-op(40,xfx,implies).
:-op(50,xfx,equiv).

Operatori and i or su denisani kao asocijativni (yfy), sto dovodi do ispu tanja
s
nepotrebnih zagrada u zapisu i lak e citljivosti.
s
Predikat knf implementira KNF algoritam iz tri koraka. Prvo se elimini u
s
veznici ekvivalencije i implikacije, zatim se vr i primena de Morganovih zas
kona 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 e tra iti vi e od jednog re enja. Osim toga, treba
c
z
s
s

primetiti da je prvo pravilo speci no zato sto elimini u i jedan veznik uvodi
c
s c
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 injeno malo odstupanje od KNF alc
goritma kako je dat na slici 2.1. Naime, dozvoljena je eliminacija dvostruke

negacije i pre nego sto se do kraja primene de Morganovi zakoni.


distributivnost(X and Y, X1 and Y1):-distributivnost(X,X1),distributivnost(Y,Y1).
distributivnost(X or Y, R):-distributivnost(X,X1),distributivnost(Y,Y1),
distributivnost(X1,Y1,R).
distributivnost(non X, non X).
distributivnost(X,X):-atom(X).
distributivnost(X and Y, Z, XZ and YZ):-distributivnost(X,Z,XZ),
distributivnost(Y,Z,YZ),!.
distributivnost(X, Y and Z, XY and XZ):-distributivnost(X,Y,XY),
distributivnost(X,Z,XZ),!.
distributivnost(X,Y,X or Y).

94

4 PROLOG

Kada mu je argument neka konjunkcija, predikat distributivnost omogu ava


c
rekurzivnu primenu na konjunkte, a slu aju disjunkcije primenjuje zakone disc
tributivnosti. Pri tome se uzima u obzir i to da primena ovog zakona mo e
z
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 njih listi koje predstavljaju klauze. Kako bismo ovo
s
implementirali, prvo nam je potreban pomo ni predikat koji spaja dve liste. Za
c

to cemo koristiti predikat append denisan u sekciji 4.8.

Konverzija se vr ti tako sto se prolazi kroz konjunkcije spajaju i liste koje se


s
c
dobijaju rekurzivnom primenom predikata knf_u_listu_listi na konjunkte

(koji su ponovo u konjunktivnoj normalnoj formi) sve dok se ne dode do disjunkcije. U tom trenutku se prelazi na novi predikat disjunkcija_u_listu koji
od disjunkcije formira listu literala analogno na inu na koji knf_u_listu_listi
c
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 ni
c
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 i neki element koristi emo dvostruku
z
c

primenu predikata sadrzi, s tim sto cemo u nastavku predikatima davati nazive
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 emo i slede i predikat:
c
c
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 nje liste. Zamena eles


menta liste listi (literala u celoj formuli) se sad lako vr i:
s
zameni_literal_u_formuli(X,Y,[P|R],[Q|T]):-zameni_u_disjunkciji(X,Y,P,Q),
zameni_literal_u_formuli(X,Y,R,T).
zameni_literal_u_formuli(X,Y,[],[]).

Zamena iskaznog slova p u formuli se mo e uraditi tako sto se zamene oba


z
literala - p i non p odgovaraju im simbolima u celoj formuli.
c
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 imo na slede i na in:
s
c
c
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 e sa praznom listom klauza i
s
ako je tako vra a yes, a u suprotnom, vr i zamene sa i sa , bri e
c
s
s
pojavljivanja literala koji je u na oj implementaciji predstavljen atomom f
s
(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).

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 e da postoji vi e klauza
c
s
koje sadr e literal t. U tom slu aju PROLOG bi prirodno vr io bektreking u poz
c
s
trazi za svim re enjima. Kako to u na oj implementaciji nema svrhe, uba en je
s
s
c
predikat reza koji spre ava ovakvo pona anje. Sli na opaska va i i u pravilima
c
s
c
z
unit propagation i pure literal.
Zamene negiranih literala se vr e jednostavno kad imamo implementirane
s
pomo ne predikate.
c
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 emo dodati jo jedan predikat koji proverava da li je formula
z
s
zadovoljiva:
zadovoljiva(X):-knf(X,Y),knf_u_listu_listi(Y,Z),dpll(Z).

4.12 Pretraga grafa

4.12

97

Pretraga grafa

Kako grafovi predstavljaju binarne relacije nad nekim domenom, PROLOG


omogu ava vrlo jednostavno opisivanje i pretragu grafova. Graf se zadaje lisc
tom 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).

Nala enje putanje se realizuje rekurzivno. Postoji put od cvora A do cvora


z

B ako je A = B ili ako postoji grana od cvora A do cvora X i postoji put od


X do B. Kako grafovi mogu u op tem slu aju sadr ati cikluse, potrebno je
s
c
z

pamtiti i listu pose enih cvorova kako ne bi do lo do prekora enja steka pri
c
s
c
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 avanje jednostavnog problema


s

PROLOG je poznat po svojoj pogodnosti za re avanje problema ve ta ke ins


s c
teligencije. Ilustrova emo to na primeru jednostavne igre.
c
Na levoj obali reke nalaze se tri misionara i tri ljudo dera (eng. missionaries
z
and cannibals). Pomo u camca koji prima dve osobe, svi treba da se prevezu
c
preko reke. Pri tome, ne sme se desiti da na nekoj obali broj ljudo dera bude
z

ve i od broja misionara jer ce ih ovi pojesti. Potrebno je na i neki raspored


c
c

prevo enja tako da svi predu reku.


z

Re avanje ovog problema cemo svesti na pretragu grafa. Izmedu svaka


s

dva poteza, igra se nalazi u odredenom stanju. To stanje se karakteri e bros

jem misionara i ljudo dera na obalama i polo ajem camca. Broj misionara i
z
z
ljudo dera je dovoljno precizirati za levu stranu, jer je tad broj na desnoj strani
z

jednozna no odreden. Primer stanja je


c
state(3, 1, left)

98

4 PROLOG

Potezi predstavljaju prevo enje jedne ili dve osobe na drugu stranu reke.
z

Potpuno su odredeni brojem misionara i ljudo dera koji se prevoze i stranom


z

na koju se camac kre e. Primer poteza je


c
move(1,1,right)

Stanja igre mo emo smatrati cvorovima grafa cije su grane potezi pomo u
z
c
kojih se prelazi iz jednog stanja u drugo. Na ovaj na in se re avanje problema
c
s
svodi na nala enje putanje kroz graf od polaznog stanja state(3,3,left) do
z
zavr nog state(0,0,right). Samo re enje je lista poteza koji odgovaraju granama
s
s

koje spajaju medustanja u toku re avanja.


s
[move(0,2,left), move(0,1,right)|...]
Osnovni predikat za re avanje ovog problema ima formu ve prikazanog
s
c
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 eno stanje koje nasleduje trenutno, potez koji realizuje prelaz se lako
c
izra unava.
c
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 e stanje, potrebno je denisati legalne prelaze
c

camcem
carry(2,
carry(1,
carry(1,
carry(0,
carry(0,

0).
0).
1).
1).
2).

kao i legalna stanja. Pozicija camca je nebitna, ali broj ljudo dera ni na jednoj
z
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 avanje jednostavnog problema


s

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 e biti vi e od tri misionara,
z
s
odnosno ljudo dera.
z
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 i slede e:
z
c
Janko ima psa.
Svaki vlasnik psa voli zivotinje.

Nijedna osoba koja voli zivotinje ne mo e da udari zivotinju.

Janko ili Marko su udarili ma ku cije je ime Tuna.


c
Svaka ma ka je zivotinja.
c

U PROLOG-u zapisati cinjenice i predikate pomo u kojih se mo e utvrditi ko je

c
z
udario Tunu.

Zadatak 66
Denisati predikat koji izra unava sumu prvih N prirodnih brojeva.
c

Zadatak 67
Denisati predikat koji izra unava sumu cifara datog broja.
c

Zadatak 68
Denisati predikat koji izra unava N-ti stepen zadatog broja.
c

Zadatak 69
Denisati predikat koji obr e cifre broja.
c

Zadatak 70
Denisati predikat koji izra unava najve i zajedni ki delilac dva broja.
c
c
c

Zadatak 71
Denisati predikat koji proverava da li je broj prost.

Zadatak 72
Denisati predikat koji izra unava sumu elemenata liste.
c

Zadatak 73
Denisati predikat koji obr e listu.
c

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 konstruie listu koja se sastoji od prvih n eles
menata 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 e na ine.
c
c

Zadatak 79
Denisati predikat koji ispisuje sve podliste date liste.

Zadatak 80
Denisati predikat koji iz date liste brie sva ponavljanja elemenata.
s

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 nu razliku dve liste.
c

Deo II

Pretraga

Glava 5

Re avanje problema kao


s
pretraga
U prethodnom delu prikazani su teorijski okviri i algoritmi pomo u kojih je
c
mogu e sprovoditi logi ko zaklju ivanje. Iako zaklju ci moraju nu no slediti
c
c
c
c
z
iz zadatih pretpostavki, proces njihovog dokazaivanja nije pravolinijski ve
c

uklju uje odredene odluke o pravcu u kome ce se postupak sprovoditi. Drugim


c

re ima, uo ljivo je traganje za dokazom nekog tvrdenja. Primera radi, u pric


c
meni procedure DPLL mogu e je uo iti i korake zaklju ivanja i korake prec
c
c
trage. Kada se uo i jedini na klauza u nekoj formuli, njeno zadovoljenje je
c
c
nu no i predstavlja korak zaklju ivanja. S druge strane kada je nemogu e diz
c
c
rektno zaklju ivanje, potrebno je pretpostaviti vrednost iskazne promenljive.
c

U daljem toku dokazivanja, ta akcija ce se pokazati kao opravdana ili neopravdana. U slu aju da se poka e kao neopravdana, preduzima se alternativna akc
z
cija. Zna i, situacija u kojoj nije mogu e izvr iti direktno zaklju ivanje zahteva
c
c
s
c
primenu pretrage.
Manje apstraktan primer je upravljanje robotskom rukom. Pretpostavimo

da robotska ruka ima nekoliko mehani kih zglobova cije se kretanje kontroli e
c
s
elektri nim impulsima. Pri tom, neki zglobovi omogu avaju rotacije samo oko
c
c
jedne ose (kao ljudski lakat ili zglobovi na pristima), a drugi rotaciju oko ve eg
c
broja osa (kao ljudsko rame ili zglobovi u korenu prstiju). Pokret hvatanja
s
ca e ovakvom robotskom rukom je netrivijalan zadatak, ali se mo e razbiti
z
na sekvencu atomi nih koraka pokreta pojedina nih zglobova oko razli itih
c
c
c

osa za odreden ugao. Mo emo zamisliti da se ovi koraci izvr avaju strogo
z
s
jedan po jedan u kom bi slu aju kretanje ruke bilo zna ajno razli ito od ljudc
c
c
skog i sporo, ali bi problem bio lak i jer ne bi bila potrebna sinhronizacija ras
zli itih zglobova i svaki bi se pojedina no dovodio u zeljeni polo aj. Druga
c
c
z

mogu nost je da se kretanja zglobova izvode simultano, kao kod coveka, pri
c
tom pove avaju i broj mogu ih kombinacija u svakom trenutku.
c
c
c
Dati primeri motivi u razmi ljanje o pretrazi kao o nala enju niza akcija kos
s
z
jima se ostvaruje cilj kada to ne mo e biti ostvareno pojedina nim akcijama. Iako
z
c
u op tem slu aju ovakva denicija ne mora delovati adekvatno, u kontekstu
s
c
ve ta ke inteligencije u kome obi no pretpostavljamo postojanje nekog entiteta
s c
c
koji deluje preduzimanjem nekih akcija (agenta), ona je prirodna.
Pored algoritama koji se u potpunosti mogu podvesti pod ovako denisan

104

5 Re avanje problema kao pretraga


s

pojam pretrage, u ovom delu cemo opisati i neke algoritme optimizacije, koji
su op tiji.
s
Kako bi se neki problem predstavio kao problem pretrage i re io primenom
s

algoritama pretrage potrebno je da ima odredenu strukturu. Kako bi aspekti


ove strukture bili jasnije izlo eni bi e ilustrovani na primeru nala enja puta
z
c
z

izmedu dva grada. Pretpostavlja se da direktan put izmedu njih ne mora pos
tojati, ve da je potreban prolazak kroz ve i broj gradova na putu izmedu njih,
c
c
ali se pretpostavlja da je ciljni grad dostupan iz polaznog.
Elementi problema pretrage koje je potrebno denisati su slede i:
c
Skup mogu ih stanja: U toku procesa pretrage agent koji sprovodi pretragu
c
se mo e na i u razli itim stanjima. Poznavanje stanja pru a sve informaz
c
c
z
cije potrebne za razumevanje procesa pretrage i agenta u datom trenutku.

Za agenta koji nalazi put izmedu dva grada, skup stanja predstavlja skup
gradova koji su dostupni iz polaznog grada.

Polazno stanje: Na po etku re avanja problema agent se nalazi u odredenom


c
s
stanju. Ovo stanje nazivamo polaznim stanjem. U primeru nala enja
z
puta, to je grad iz koga se kre e.
c
Skup mogu ih akcija: U svakom koraku pretrage, agent mo e preduzeti neku
c
z
akciju. Niz akcija preduzetih u odgovaraju im trenucima treba da dovede
c
do re avanja problema. Skup akcija mo e biti isti u svakom stanju ili
s
z
mo e da varira od stanja do stanja. To zavisi od problema koji se re ava.
z
s
Skup akcija mo e biti kretanje ka jednom od susednih gradova. Niz
z
ovakvih izbora treba da dovede agenta do ciljnog grada. Skup akcija u
ovom problemu o ito varira od stanja do stanja jer su za razli ite gradove
c
c
razli iti i skupovi susednih gradova.
c
Fukcija prelaska: Ova funkcija preslikava parove stanje-akcija u stanja koja
slede po to se u datom stanju preduzme data akcija. Ova funkcija omogu ava
s
c
izbor narednog stanja izborom neke akcije. Ukoliko ona nije poznata,

agent ne mo e biti siguran u koje ce stanje dospeti posle preduzimanja


z

odredene akcije i sam proces odlu ivanja postaje kompleksniji. U nekim


c
problemima funkcija prelaska ne mora biti poznata. Na primer u slu aju
c
delovanja u nepoznatoj okolini. Jedan na in re avanja ovakvih probc
s
lema je kori cenjem informacija iz iskustva, odnosno aproksimacijom ove
s
funkcije pomo u procesa koji se zasniva na analizi poku aja i gresaka.
c
s
Jedan na in kojim se re avaju ovakvi problemi je primena algoritama
c
s
u enja uslovljavanjem (eng. reinforcement learning). Jo jedan primer u
c
s
kome funkcija prelaska mo e biti nedenisana je delovanje u promenljivoj
z
okolini. U tom slu aju je potrebno kori cenje prilagodljivih algoritama
c
s

koji takode koriste informacije iz iskustva. Na primer, algoritama u enja


c
uslovljavanjem i genetskih algoritama.

U slu aju primera nala enja puta izmedu dva grada, funkcija prelaska je
c
z

jednozna no odredena putnom kartom datog podru ja koja odreduje u


c
c

kom gradu se agent mo e na i po to iz datog grada krene u odredenom


z
c
s
pravcu.
Test cilja: Ovim testom se ustanovljava da li se do lo do zavr etka procesa
s
s
pretrage. To mo e biti test jednakosti sa zavr nim gradom.
z
s

5.1 Kvalitet algoritama pretrage

105

Cena akcije: Ovo je funkcija koja preslikava par stanje-akcija u numeri ku vredc
nost cenu preduzimanja date akcije u datom stanju. Primer cene ak
cije je du ina puta ili cena goriva potrebnog za prevoz izmedu susednih
z
gradova.
Kod nekih problema se ovi elementi lako i prirodno uo avaju, kao na datom
c
primeru, dok je kod drugih potrebno manje ili ve e modeliranje ili preforc
mulacija problema. U slu aju primera upravljanja robotskom rukom bilo bi
c
potrebno odrediti mogu e ose rotacije za razli ite zglobove i diskretizovati inc
c

tervale u kojima se rotacija obavlja. Na primer po 10 stepeni. Takode bi bilo


potrebno odlu iti da li se pokreti razli itim zglobovima mogu preduzimati sic
c
multano ili ne. Posle toga bi se navedeni elementi mogli lako denisati.
Reenje problema predstavlja niz akcija koji vode od polaznog stanja do stanja
s
u kome je ispunjen test cilja. Svakom re enju se mo e pridru iti njegova cena
s
z
z
kao suma cena akcija koje se preduzimaju. Optimalno reenje je re enje sa najs
s
manjom cenom. Ono ne mora biti jednozna no denisano.
c

Primer 5.1 Slagalica se sastoji od 8 kvadrata rasporedenih na prostoru veli ine 3x3
c
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 em kvadrati 6, 7 i 8 sto cemo kompaktno zapisivati kao [ 12345678].
c

Elementi ovog problema mogu biti denisani na slede i na in.
c
c
1. Skup stanja predstavlja skup svih kombinacija [s1 s2 . . . s9 ] za si { , 1, 2, 3, 4, 5, 6, 7, 8}.
2. Polazno stanje mo e biti bilo koje stanje slagalice. Na primer [7638 1425].
z
3. Skup akcija mo e biti {levo, desno, gore, dole} gde se date akcije odnose na
z
pomeranje praznog polja levo, desno, gore i dole. Iako je naizgled prirodnije
za akcije uzeti pomeranje kvadrata susednih praznom polju na prazno polje, sto

se u stvarnosti i deava, postoji jednozna na korespodencija izmedu tako dens


c
isanih akcija i denicije koja je data, tako da se odlu ujemo za formulaciju koja je
c
jednostavnija.
4. Funkcija prelaska presliakva stanja i akcije u stanja koja nastaju pomeranjem
praznog polja na neku od cetiri mogu e strane.

c
5. Test cilja je test jednakosti sa stanjem [ 12345678].
6. Cena akcije je konstantna (npr. 1) poto ne postoji razlog da se neka pomeranja
s
smatraju skupljim od drugih. Cena reenja je u tom slu aju proporcionalna broju
s
c
pomeranja potrebnih za slaganje slagalice.
Neke od realnih primena algoritama pretrage su nala enje najkra ih puteva,
z
c
igranje igara, navigacija robota, automatsko nala enje redosleda sklapanja u inz

dustriji, dizajn proteina sa odredenim tra enim svojstvima, re avanje logisti kih
z
s
c
problema i sli no.
c

5.1

Kvalitet algoritama pretrage

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

106

5 Re avanje problema kao pretraga


s

dati problem. Osnovni aspekti koji se smatraju bitnim za algoritme pretrage su


slede i:
c

Kompletnost je svojstvo koje garantuje da ce algoritam na i nekakvo re enje


c
s
problema ako ono postoji. Ovo svojstvo je o ito po eljno, ali se u nekim
c
z

slu ajevima izostavlja. Naime, u slu aju vrlo te kih problema cesto je
c
c
s
mogu e formulisati heuristike koje ne garantuju nala enje re enja, ali u
c
z
s
visokom procentu slu ajeva nalaze dobra re enja mnogo br e nego egzac
s
z
ktni algoritmi.
Optimalnost je svojstvo koje garantuje nala enje re enja sa najmanjom cenom.
z
s

Kao i u prethodnom slu aju cesto je mogu e da se uz izostavljanje ovog


c
c

uslova nadu re enja bliska optimalnom u zna ajno kra em vremenu.


s
c
c

Vremenska slo enost govori koliko ce vremena biti potrebno za izvr avanje
z
s
procesa pretrage i kao koncept je prisutna i u analizi drugih vrsta algoritama.
Prostorna slo enost govori koliko je memorije potrebno za izvr avanje prez
s

trage. Takode, se deni e i za druge vrste algoritama.


s

5.2

Neinformisana i informisana pretraga

Prilikom re avanja nekog problema, mogu i su razli iti stepni poznavanja des
c
c
talja samog problema. U primeru nala enja puta od grada do grada, mogu e
z
c
je na primer:

1. potpuno nepoznavanje rastojanja izmedu gradova,

2. poznvanje rastojanja samo izmedu susednih gradova koja se na primer


mogu pro itati sa putokaza,
c
3. dodatno poznavanje vazdu nih rastojanja od svih gradova do ciljnog
s
grada koje se mo e izmeriti lenjirom na putnoj karti,
z

4. ta no poznavanje rastojanja izmedu svih, ne nu no susednih gradova pri


c
z
kretanju putevima koja se mogu izmeriti na karti kori cenjem kurvimes
tra.
Prema dostupnosti informacija koje mogu pomo i u nala enju ciljnog stanja
c
z
u toku pretrage, problemi pretrage se dele na probleme informisane i neinformisane
pretrage. U skladu sa time mogu e je formulisati i algoritme koji mogu da
c
iskoriste dostupne informacije, pa stoga i algoritme delimo na algoritme informisane i neinformisane pretrage.
U slu aju datog primera, prvi slu aj o igledno predstavlja problem neinc
c
c
formisane pretrage. U drugom slu aju je prisutno vi e informacija o problemu,
c
s

medutim ta informacija nam ne omogu ava lak e nala enje cilja, ve samo
c
s
z
c

nala enje najbli eg susednog grada sto ne mora ni sugerisati br e dola enje
z
z
z
z
do cilja. Stoga i drugi slu aj predstavlja problem neinformisane pretrage. Pozc

navanje vazdu nih rastojanja izmedu gradova se mo e iskoristiti za navodenje


s
z
pretrage. Na primer, pri izboru slede eg grada, mo e se izabrati grad za koji
c
z

je zbir direktnog puta do njega i vazdu nog rastojanja izmedu njega i ciljnog
s

5.2 Neinformisana i informisana pretraga

107

grada najmanji. Ovakva heuristika ne mora biti dobra. Na primer, na liniji

izmedu izabranog grada i ciljnog grada se mo e nalaziti duga ak neprohoz


c
dan planinski venac tako da je informacija o vazdu nom rastojanju beskorisna.
s

Medutim, cesto se ovakvo parcijalno znanje mo e upotrebiti za ubrzavanje prez

trage. Stoga ovaj slu aj spada u probleme informisane pretrage. U cetvrtom


c
slu aju je mogu e uvek napraviti optimalan izbor. Za slede i grad treba izc
c
c
abrati onaj za koji je zbir direktnog rastojanja do njega i najkra eg rastojanja
c
od njega do ciljnog grada minimalan. Ovo je o igledno problem informisane
c
pretrage.
U slu aju neinformisane pretrage, mogu e je koristiti standardne algoritme
c
c

za pretragu u sirinu ili u dubinu, dok se u slu aju informisane pretrage mogu
c
napraviti specijalizovani algoritmi u zavisnosti od vrste informacija koje su
na raspolaganju. Za problem nalav enja najkra ih puteva u grafu algoritam
z
c

A* mo e na primer da iskoristi informaciju o euklidskom rastojanju izmedu


z

cvorova u grafu. U slu aju problema igranja saha, egzaktan algoritam pretrage
c
MINIMAX se mo e kombinovati sa heuristi kom procenom stanja. Na primer
z
c
kori cenjem informacije o gurama, mogu nosti mata u 3 poteza i sli no.
s
c
c

108

5 Re avanje problema kao pretraga


s

Glava 6

Pohlepna pretraga
Pohlepnim algoritmom se naziva svaki algoritam koji te i neposrednom pove anju
z
c
vrednosti neke ciljne funkcije, odnosno algoritam koji bira lokalno optimalne
akcije. Lokalna optimalnost zna i da algoritam ne mo e da proceni dugoro ni
c
z
c
kvalitet izabranih akcija, odnosno koliko te akcije doprinose ostvarenju kona nog
c
cilja, ve da bira akciju koja se na osnovu znanja dostupnog u trentuku izbc

ora procenjuje kao najbolja medu raspolo ivim akcijama. Ovakvi algoritmi su
z

cesto zna ajno jednostavniji za formulaciju od algoritama koji garantuju optic



malnost procesa re avanja. Takode, cesto daju prakti no prihvatjiva re enja,
s
c
s

iako cesto ne optimalna.


Pohlepni algoritmi se mogu koristiti i za re avanje op tijih problema od
s
s
pretrage problema matemati ke optimizacije. Ovi problemi pretpostavljaju
c
postojanje funkcije cilja i skupa dopustivih reenja. U zavisnosti od formulacije
s
problema, potrebno je na i dopustivo re enje sa minimalnom ili maksimalnom
c
s
vredno cu funkcije cilja. Takvo re enje se naziva optimalnim reenjem problema
s
s
s
optimizacije. Ovakvi problemi ne moraju pretpostavljati postojanje stanja, akcija i drugih elemenata problema pretrage. U kontekstu matemati ke optic
mizacije, pohlepni algoritmi se obi no nazivaju algoritmima penjanja uzbrdo
c
po to biraju susedna dopustiva re enja koja imaju najvi e vrednosti funkcije
s
s
s
cilja.

Primer 6.1 U primeru nala enja najkra ih puteva izmedu gradova, pohlepni informisani
z
c
algoritam bi mogao za suseda da bira grad za koji je zbir direktnog rastojanja do grada
i vazdunog rastojanja do cilja minimalan. Ovakav algoritam u svakom koraku bira
s
optimalnu akciju s obzirom na raspolo ivo znanje u vreme izbora akcije, pa je stoga
z
pohlepan. U slu aju da vazduna rastojanja nisu poznata, ve samo rastojanja do
c
s
c
susednih gradova, pohlepni algoritam bi uvek birao najbli i susedni grad u nadi da ce
z

se na taj na in na i najkra a putanja do cilja.


c
c
c
Primer 6.2 Problem trgova kog putnika podrazumeva da je dat graf u kome su ivic
cama grafa pridru ene njihove du ine. Cilj je nala i najkra u putanju koja kroz sve
z
z
c
c
cvorove grafa prolazi ta no jednom. Pohlepni algoritam bi mogao biti formulisan tako

c
da u svakom koraku bira ivicu najkra e du ine. Iako je ovo popularan pristup konc
z
struisanju putanja i dobro se ponaa za neke speci ne probleme, u optem slu aju
s
c
s
c

predstavlja lo pristup. Cak je dokazano da za svaki broj cvorova n, postoji instanca


s

problema trgova kog putnika sa n cvorova za koju ovako formulisan pohlepni algoritam
c

bira jedinstvenu najgoru putanju.

110

6 Pohlepna pretraga

Pohlepna pretraga se obi no pona a dobro u slu aju problema kod kojih
c
s
c
kvalitet odluke u nekom stanju pretrage ne zavisi od budu ih odluka ili ako
c
se dati problem mo e aproksimirati problemom za koji ovo va i. Ako navez
z
deno svojstvo va i, lokalno optimalna odluka je stvarno optimalna. Navedeno
z

svojstvo se mo e i druga ije formulisati pohlepna pretraga ce se pona ati


z
c
s
dobro ukoliko se optimalno re enje problema gradi neposredno od optimalnih
s
re enja podproblema.
s

Osnovni kvaliteti pohlepne pretrage su jednostavnost formulisanja i sto

cesto mo e dati prakti no prihvatljiva re enja. S druge strane, mane ovakvog


z
c
s
pristupa su slede e:
c
Opasnost od lokalnih maksimuma: Lokalni mksimumi su ta ke u prostoru
c

pretrage ciji susedi imaju manju vrednost funkcije cilja od nje, ali je njena
vrednost manja od vrednosti globalnog maksimuma. Algoritmim penjanja uzbrdo nemaju na ina da primete da se nalaze u lokalnom maksic
mumu.
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 e razre iti kretanjem u stranu umesto najstrmije uzbrdo, medutim,


z
s
trenutak u kome je takvo kretanje potrebno primeniti se ne mo e lako
z
prepoznati.
Platoi: Platoi predstavljaju oblasti prostora pretrage u kome funkcija cilja ima
konstantnu vrednost. Zbog toga je nemogu e odrediti koji potez je nac

jbolji, a samim tim se mo e desiti da pohlepna pretraga ne nade izlaz sa


z
platoa.
Postoje razne varijacije osnovnog penjanja uzbrdo koje poku avaju da se izs
bore sa navedenim problemima. Takvo je na primer stohasti ko penjanje uzbrdo
c
koje ne bira uvek susedno stanje sa najve om vredno cu, ali verovatno a da
c
s
c

odredeno stanje bude izabrano je utoliko ve a sto je ve a njegova vrednost.


c
c
Druga varijacija je penjanje uzbrdo sa slu ajnim restartovanjem kod koga se posle
c
nala enja lokalnog maksimuma proces pretrage ponovo pokre e iz slu ajno
z
c
c
generisanog polaznog stanja. Ovaj metod omogu ava nala enje globalnog makc
z
simuma sa verovatno om koja se pribli ava 1 sa pove anjem broja poku aja.
c
z
c
s

6.1

Penjanje uzbrdo u slu aju diferencijabilne funkcije


c
cilja

Metode pretrage i matemati ke optimizacije cesto poku avaju da iskoriste neku


c
s
zakonitost u strukturi prostora pretrage, odnosno prostora dupustivih re enja.
s
Tako, penjanje uzbrdo u slu aju diferencijabilne funkcije cilja po iva na kori cenju
c
c
s
koncepta gradijenta. Ukoliko je data diferencijabilna funkcija cilja f : Rn R
gradijent se deni e kao vektor parcijalnih izvoda te funkcije:
s
f=

f
f f
,
,...,
x1 x2
xn

6.1 Penjanje uzbrdo u slu aju diferencijabilne funkcije cilja


c

111

Gradijent izra unat u odredenoj ta ki A Rn predstavlja vektor u prosc


c

toru Rn u cijem pravcu funkcija f najstrmije raste u okolini ta ke A. Stoga


c
se kretanjem u ovom pravcu mo e do i do lokalnog maksimuma. Ovaj prinz
c
cip je osnova algoritma najstrmijeg uspona. Analogno, kretanjem u suprotnom
pravcu se dolazi do lokalnog minimuma.
Prethodne konstatacije omogu avaju skiciranje algoritma najstrmijeg uspona:
c
1. n 0.
2. Izabrati polaznu ta ku x0 .
c
3. Izra unati gradijent funkcije
c

f (xn ) u trenutnoj ta ki.


c

4. Izvr iti kretanje u pravcu gradijenta do slede e ta ke xn+1 .


s
c
c
5. n n + 1.
6. Ukoliko xn nije maksimum, nastaviti od koraka 3.
7. Vratiti xn kao re enje.
s
Da bi se dati algoritam u potpunosti denisao potrebno je precizirati neke

njegove korake. U koraku 2, polazna ta ka se cesto bira slu ajnim izborom.


c
c
Poznavanje gradijenta i kretanje u njegovom pravcu u prkasi ipak ne garantuje
nala enje maksimuma, tako da je u koraku 4 u zavisnosti od du ine koraka
z
z
mogu e pre i preko maksimuma, nastaviti dalje i time ga proma iti. Stoga je
c
c
s
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 )

pri cemu je H matrica parcijalnih izvoda drugog reda funkcije f :


H(xn ) =

2 f (xn )
xi xj

O ito, ova aproksimacija za n se mo e koristiti samo kada su parcijalni


c
z
izvodi drugog reda funkcije denisani.
U koraku 6 se u praksi ne mo e o ekivati nala enje same ta ke lokalnog
z c
z
c
maksimuma s obzirom da se ne radi o diskretnom prostoru. Zbog toga se pos

tupak cesto prekida u trenutku kada razlika izmedu vrednosti dva uzastopna
re enja ne prelazi neku unapred zadatu vrednost .
s
Sada se algoritam najstrmijeg uspona mo e formulisati na slede i na in:
z
c
c
1. n 0.
2. Izabrati polaznu ta ku x0 .
c
3. Izra unati gradijent funkcije
c
4. izra unati vrednost n .
c
5. xn+1 = xn + n f (xn ).
6. n n + 1.

f (xn ) u trenutnoj ta ki.


c

112

6 Pohlepna pretraga

7. Ukoliko va i |f (xn+1 ) f (xn )| , nastaviti od koraka 3.


z
8. Vratiti xn kao re enje.
s
Primer 6.3 Pretpostavimo da je potrebno da se data hemijska reakcija izvri u sto
s
kra em vremenskom roku. Na brzinu hemijske reakcije uti u koli ine dva katalizac
c
c
tora ozna ene sa k1 i k2 . Poznato je da je brzina date reakcije obrnuto proporcionalna
c
4
veli ini (k1 1)2 + k2 . Stoga je potrebno na i maksimum funkcije
c
c
4
f (k1 , k2 ) = (k1 1)2 k2

Odoka se vidi da se taj maksimum posti e u ta ki (1, 0), ali je primer dobar za
z
c
ilustraciju metode najstrmijeg uspona.
Za vrednost mo e se uzeti na primer broj 0.01. Gradijent f se lako mo e
z
z
izra unati:
c
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 ku se mo e uzeti na primer ta ka x0 = (0.5, 0.5). Vrednost gradic


z
c
jenta u toj ta ki je f (x0 ) = (1, 0.5). Zato je
c
f (x0 )

f (x0 ) =

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

1
0.5

0.5

0.5

2
0

= 1.25

0
3

1
0.5

= 2.75

5
c
c
Otuda je vrednost koecijenta 0 jednaka 11 0.45. Stoga, slede a ta ka u pretrazi je
x1 = (0.5, 0.5) + 0.45 (1, 0.5) = (0.95, 0.275)

Mo e se primetiti da su se vrednosti k1 i k2 pribli ile odgovaraju im vrednostima u


z
z
c
reenju. Razlika vrednosti novog i starog reenja je
s
s
0.0025
|f (x1 ) f (x0 )| | 0.3125 (0.0082)| 0.3
sto je ve e od zadatog broja , pa se nastavlja sa slede om iteracijom. Dalje iteracije se

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

Kao sto je re eno, problem nala enja maksimuma u prethodnom primeru


c
z

je lak. Re enje je o igledno i problem se lako re ava i analiti ki. Medutim, ovo
s
c
s
c

nije uvek slu aj. Funkcije ciji je maksimum, odnosno minimum potrebno na i
c
c
mogu biti previ e komplikovane da bi se re enje tra ilo analiti ki i u takvim
s
s
z
c
slu ajevima je kori cenje algoritma najstrmijeg uspona vrlo korisno. Treba
c
s
imati u vidu da algoritam ne garantuje nala enje globalnog maksimuma. U
z
slu aju da funkcija ima ve i broj maksimuma, u zavisnosti od izabrane polazne
c
c

ta ke re enja koja algoritam daje mogu biti razli ita i pronadeni maksimum
c
s
c
mo e biti samo lokalni.
z

Glava 7

Odredivanje puteva u grafu

U mnogi problemima ve ta ke inteligencije potrebno je obi i neki graf ili odreds c


c

iti najkra i put izmedu dva cvora grafa.


c
Op ti problem nala enja puta (eng. path nding) mo e se opisati na slede i
s
z
z
c

na in: dat je graf svojim cvorovima i granama izmedu nekih od njih; ovim
c

granama pridru ene su nenegativne cene; zadatak je na i put izmedu dva data
z
c

cvora (polazni cvor i ciljni cvor) takvu da je zbir svih cena svih grana na stazi

minimalan. Postoji nekoliko algoritama za re avanje ovog problema [?, ?]. Oni
s
imaju mnoge primene, uklju uju i primene u planiranju obilazaka i putovanja,
c c

dizajniranju cipova, rutiranju u ra unarskim mre ama, navigaciji robota, inc


z
udstriji igara, itd. Algoritam A* pretraga ili kra e samo algoritam A* je jedan,
c
verovatno najpopularniji, od algoritama iz te familije. On je uop tenje Dejks

strinog algoritma iste namene. Cesto se koriste i algoritam Belmana i Forda,


kao i algoritam Flojda i Var ala.
s

7.1

Obilazak grafa u dubinu i sirinu

Oblizak grafa u dubinu (eng. depth-rst search DFS) i u sirinu (eng. breadthrst search BFS) su ,,neinformisane (eng. uninformed) metode pretrage

koje ispituju sve cvorove u grafu tra e i re enje (na primer, neki speci an
z c
s
c

cvor). Oni sistematski pretra uju ceo graf, bez ikakve heuristike, tj. bez ikakvog
z

speci nog navodenja


c
c

DFS je pretraga koja napreduje obraduju i najpre polazni cvor i zatim nje

gove potomke i sve dok se ne naide na tra eni cvor i sve dok je ti potomci
z
postoje. Ukoliko vi e nema potomaka koje treba ispitati, pretraga se vra a uns
c

azad do cvora ciji svi potomci nisu ispitani i nastavlja dalje. U nerekurzivnoj

verziji, cvorovi se obi no cuvaju u LIFO listi. Da ne bi do lo do beskona ne


c
s
c

petlje, potrebno je cuvati informaciju o cvorovima koji su ve pose eni. Slika


c
c
7.1 ilustruje obilazak grafa primenom algoritma DFS.

BFS ,,otvara sve cvorove koji su susedni teku em cvoru i kasnije, otvara,
c

redom, sve njihove potomke. U traganju za cvorom koji zadovoljava neki

uslov, bi e pronaden onaj na najmanjem rastojanju od polaznog cvora. Cvorovi


c

koji se razmatraju obi no se cuvaju u redu, tj. u FIFO listi. I u ovom pristupu, da
c

ne bi do lo do beskona ne petlje, potrebno je cuvati informaciju o cvorovima


s
c
koji su ve pose eni. Slika 7.2 ilustruje obilazak grafa primenom algoritma BFS.
c
c

114

7 Odredivanje puteva u grafu

Figure 7.1: Primer obilaska grafa primenom algoritma DFS (oznake cvorova

ukazuju na poredak obilaska cvova)


1

Figure 7.2: Primer obilaska grafa primenom algoritma BFS (oznake cvorova

ukazuju na poredak obilaska cvova)


Prostorna slo enost pretrage DFS je manja nego pretrage BFS. Dodatno, ona
z

je pogodnija za usmeravanje nekom heuristikom koja bira cvorove koji vi e


s

obe avaju. Vremenska slo enost oba algoritma je propocinalna zbiru cvorova i
c
z
grana grafa koji se pretra uje: (O(|V | + |E|)).
z

7.2

Dejkstrin algoritam

Dejksrin algoritam, koji je razvio holandski informati ar Edzger Dejkstra 1959. goc
dine je algoritam za pretragu grafa koji nalazi najkra e puteve u grafu za nenegc
ativnim cenama koje su pridru ene granama. Algoritam se mo e koristiti za
z
z

odredivanje najkra eg puta od datog polaznog cvora do datog ciljnog cvora,


c

ali i za odredivanje najkra ih puteva od svih cvorova grafa do datog ciljnog


c

cvora.
Ideja Dejkstrinog algoritma mo e se ilustrovati na slede i na in. Pretpostavimo
z
c
c

da je niz cvorova vezan nitima (i da cenom puta od jednog do drugog cvora

smatramo du inu niti koja ih vezuje). Uzmimo cvor koji je izabran za polazni
z
i po nimo da podi emo celu konguraciju (tako da nikoje dve niti nisu upc
z

letene). Postepeno se cvorovi, jedan po jedan, odvajaju od tla. Najmanje rasto

janje izmedu nekog od tih cvorova i polaznog cvora je upravo direktno rasto-

7.3 A*

115

janje izmedu njih. Op ta ideja algoritma je sli na: postoje cvorovi koji su ve
s
c
c
podignuti sa tla i oni koji su jo uvek na tlu. Za one koji su podignuti sa tla
s

ve znamo najkra e puteve od polaznog cvora. U svakom koraku mo emo jo


c
c
z
s

jedan cvor ,,podi i sa tla i izra unati njegovo najmanje rastojanje od polaznog
c
c

cvora (ramatraju i samo one cvorove koji su mu susedni i koji su ve iznad tla).
c
c

Ukoliko na kraju ovog postupa na tlu ostanu jo neki cvorovi, to zna i da do


s
c

njih ne postoji put od polaznog cvora.


Dejkstrin algoritam je dat na slici 7.3. U algoritmu, komanda
u := izaberi\_najblizi\_cvor\_cvoru\_source($Q$)

traga za cvorom u u skupu cvorova Q (to su cvorovi koji su ,,na tlu) takvim da

je vrednost dist[u] (teku e najmanje rastojanje od polaznog cvora) najmanja.


c

Taj cvor se tada bri e iz skupa Q. Ukoliko je to ciljni cvor, onda se konstrui e
s
s

tra eni put od polaznog cvora (koriste i informaciju o roditeljskim cvorovima).


z
c

Ina e, za svaki cvor v iz Q koji je susedan cvoru u proverava se da li se (preko


c

u) mo e popraviti teku e najmanje rastojanje od polaznog cvora i, ako mo e,


z
c
z

cvor u se postavlja za roditelja cvora v.


Primer 7.1 Slede a tabela prikazuje efekat primene Dejkstrinog algoritma na graf ilusc
trovan na slici 7.4: cvor A je polazni, a cvor F ciljni cvor.

korak
1
2
3
4
5
6

3
3
3
3
3

2
2
2
2
2

6
6
6
5
5

4
3
3
3
3

8
7
6

cvor u

A
C
B
E
D
F

U najjednostavnijoj implementaciji Dejkstrinog algoritma, skup Q se implementira kao obi na povezana lista ili niz. Slo enost takve implementacije je
c
z

O(|V |2 +|E|) = O(|V |2 ), gde je |E| broj grana, a |V | broj cvorova grafa. Za retke
grafove (koji imaju mnogo manje grana od |V |2 ), Dejkstrin algoritam se mo e
z
implementirati ekasnije. Na primer, varijanta koja koristi binarni min-hip1 za

odredivanje teku eg najbli eg cvora ima slo enost O((|E| + |V |) log |V |).
c
z
z

7.3

A*

Algoritam A* za odredivanje najkra eg puta izmedu dva cvora grafa je jedan


c
od fundamentalnih i najpopularnijih algoritama ve ta ke inteligencije. Zass c

novan je na kori cenju heuristika, ali ipak ima dobra svojstva kao sto su pots
punost i optimalnost.
Prvu verziju algoritma A* su razvili Har, Nilsson i Raphael 1968. godine [?],

a u narednim godinama uvedeno je nekoliko unapredenja [?, ?].

Kori cenje algoritma A* nije uvek jednostavno. Cesto je algoritam potrebno


s
prilagoditi speci nom problemu a uvek je, u kontekstu aplikacija koje rade u
c
realnom vremenu, va no imati u vidu vremensku slo enost, prostornu slo enost,
z
z
z
1 Min-hip je speci na stablolika struktura koja zadovoljava hip-svojstvo: ako je B potomak
c

cvora A, onda je vrednost pridru ena cvoru A manja od vrednosti pridru ene cvoru B. U skladu
z
z
sa tim, najmanji element je uvek koren stabla. Max-hip se deni e analogno.
s

116

7 Odredivanje puteva u grafu

Algoritam: Dejkstrin algoritam


Ulaz: Graf G, polazni vor source i ciljni vor target
c
c
Izlaz: najkrai put od vora source do vora target u grafu G (ako postoji
c
c
c
put izmeu ova dva vora
c
1. Za svaki vor v grafa G:
c
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)
Obrii u iz Q
s
Ako je (u = target)
konstruii put S na sledei nain i prijavi uspeh
s
c
c
S := prazan niz
u := target
Dok god je denisano prethodni[u]
dodaj u na poetak S
c
u := prethodni[u]
Za svaki sused v vora u takav da v koji pripada Q:
c
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 ite dodatne faktore. Neka od dodatnih svojstava
c
algoritma zahtevaju dodatno matemati ko znanje i izra unavanja, speci ne
c
c
c
implementacione tehnike i strukture. Svi ti moduli treba da budu uklopljeni u
kompaktan i ekasan sistem za nala enje puta. Postoji mnogo varijanti algoz

ritma A* prilagodenih speci nim problemima [?].


c
Algoritam A* je uop tenje Dejkstrinog algoritma i obi no smanjuje broj
s
c

cvorova grafa koje treba ispitati. To smanjivanje je zasnovano na kori cenju


s

heuristike koja procenjuje donju granicu daljine do ciljnog cvora. Kao i u Dejk

strinom algoritmu, cvorove koji tek treba obraditi cuvaju se u redu, sortiranom

prema nekom kriterijumu. Sve vreme se odr avaju lista otvorenih cvorova
z

cvorova koji su ve pose eni ali nisu obradeni svi njihovi susedi i zatvorenih
c
c

cvorova cvorova koji su pose eni i kojima su obradeni svi njihovi susedi.
c

7.3 A*

117
3

A
2

B
5

6
4

D
2

1
E

Figure 7.4: Primer primene Dejkstrinog algoritma

Klju na razlika je u tome sto Dejkstrin algoritam (kao ,,neinformisani algoric


tam) uzima u obzir samo cenu od polaznog do teku eg cvora, dok A* (kao
c

,,informisani algoritam) koristi funkciju evaluacije f nad cvorovima grafa,


denisanu na slede i na in:
c
c
f (n) = g(n) + h(n),

gde je g(n) cena puta od polaznog cvora do cvora n, a h(n) je procenjena (heuristi ka)
c

cena najjeftinijeg puta od cvora n do ciljnog cvora. Dok tragamo za najkra im


c

putem, uvek znamo teku u minimalnu cenu od polaznog cvora do cvora n


c
(tj. teku u vrednost za g(n)), ali se vrednost h(n) mo e samo procenjivati. Da
c
z
bi se obezbedila optimalnost A* pretrage, funkcija h mora da bude konzistentna

(eng. consistent), tj. da za bilo koja dva susedna cvora u i v va i:


z
h(u) c(u, v) + h(v)
gde je c(u, v) cena pridru ena grani (u, v). U nekim specijalnim slu ajevima
z
c
dovoljno je da funkcija h bude dopustiva (eng. admissible), tj. da nikada ne precenjuje cenu stizanja do cilja. Svojstvo konzistentnosti ima za posledicu svo
jstvo dopustivosti. Dodatno, dopustive funkcije su cesto i konzistentne.
Opis algoritma A* dat je na slici 7.5.

Sa ravnomernom pretragom (sa funkcijom h = 0), skup otvorenih cvorova

ce se siriti ravnomerno, u ,,koncentri nim krugovima oko polaznog cvora. S


c

druge strane, sa preciznijom heuristikom, skup otvorenih cvorova ce se siriti

ka ciljnom cvoru i bi e bolje usmerena kao optimalnom putu.


c

7.3.1

Primer upotrebe algoritma A*

U slede em grafu zadatak je na i najkra i put od A do E. Pored cvorova grafa


c
c
c

zapisane su procenjene du ine puta do cvora E, tj. vrednosti funkcije h.


z

118

7 Odredivanje puteva u grafu

Algoritam: Algoritam A*
Ulaz: Graf G, polazni vor source i ciljni vor target
c
c
Izlaz: najkrai put od vora source do vora target u grafu G (ako postoji
c
c
c
put izmeu ova dva vora
c
1. Inicijalno je zatvorena lista prazna.
2. Dodaj polazni vor (zajedno sa procenjenom cenom do ciljnog vora,
c
c
koja je odreena funkcijom h) u otvorenu listu vorova koje je
c
potrebno razmotriti.
3. Izvravaj sledeu petlju dok god ima elemenata u otvorenoj listi:
s
c
Izaberi vor n (zvaemo ga tekui vor) iz otvorene liste koji ima
c
c
c c
najmanju vrednost f (n).
Ako je tekui vor ciljni vor, izvesti o uspehu, konstruii put od
c c
c
s
polaznog do ciljnog vora (idui unazad od ciljnog vora) i
c
c
c
zaustavi izvravanje petlje.
s
Ispitaj sve vorove koji su direktno dostupni iz tekueg vora i pri
c
c c
tome ne pripadaju zatvorenoj listi. Za svaki takav vor m uradi
c
sledee:
c
Ako on nije u otvorenoj listi, dodaj ga u otvorenu listu.
Oznai tekui vor kao roditelja ovog vora (to je vano
c
c c
c
s
z
za konstruisanje staze na kraju). Izraunaj i zapamti vredc
nosti f (m), g(m) i h(m) za vor. (Primetimo da se vredc
nosti g(m) mogu izraunati na inkrementalan i ekasan
c
nain: vrednost g(m) jednaka je zbiru vrednosti funkcije
c
g za roditelj vora m i ceni puta od roditelja do m.)
c
Ako je on ve u otvorenoj listi, proveri da li je odgovarajui
c
c
put od polaznog vora do m bolji od tekueg puta (preko
c
c
vora n). Za tu proveru koristi se vrednost g(m). Manja
c
vrednost g znai da je taj put bolji. Ako je tekui put bolji,
c
c
promeni informaciju o roditelju vora m na vor n i auriraj
c
c
z
vrednosti g(m) i f (m).
Izbrii tekui vor iz otvorene liste i dodaj ga u zatvorenu listu
s
c c
vorova (on ne treba da ponovo bude ispitivan).
c
4. Na kraju, ako je petlja zavrena a da nije prijavljen uspeh (tada je
s
otvorena lista prazna), onda ne postoji traeni put. Inae, put je
z
c
pronaen i on se konstruie od dete-roditelj veza (idui unazad od
s
c
ciljnog vora).
c
Figure 7.5: Algoritam A*
5

4
3

5
4

1
3

4
3

7.3 A*

119

Slede a tabela ilustruje primenu algoritma A*.


c
teku i
c

cvor
A
D
G
F
B
H
E

stanje otvorene lista


[ vor(roditelj,g+h)]
c
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)

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

Na kraju primene algoritma, kada je cvor E postao teku i cvor, konstrui e


c
s

se tra eni put (koriste i informacije o roditeljma za cvorove iz zatvorene liste:


z
c

A D F B E. Ovo jeste put od cvora A do cvora E, ali nije najkra i


c
mogu i: naime, kra i je slede i put: A D H B E. Ovaj problem je nastao
c
c
c

zbog toga sto kori ena funkcija h nije konzistentna (iako jeste dopustiva): va i
s
z
h(H) > 2 + h(B).

Ukoliko se za isti zadatak koristi konzistenta funkcija, rezultat ce biti optimalan, najkra i mogu i put od A do E. U narednom primeru se koristi funkcija
c
c

h cija se vrednost razlikuje u odnosu na prethodnu samo za cvor H.


5

4
3

5
4

7.3.2

1
3

A
D
G
H
B
F
E

teku i
c

cvor

stanje otvorene lista


[ vor(roditelj,g+h)]
c
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)

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

Specijalni slu ajevi


c

Obilasci grafa u dubinu i sirinu mogu se smatrati specijalnim slu ajevima alc
goritma A*.

120

7 Odredivanje puteva u grafu

Za obilazak grafa u dubinu, mo e se koristiti algoritam A* sa g = 0 i


z
pogodno odabranom funkcijom h. Na primer, neka je broja C inicijalizovan na
c

neku veoma veliku vrednost. Kad god obradujemo neki cvor dodajemo vrednost C svim njegovim susedima. Nakon svake dodele smanjujemo vrednost

C za jedan. Time ce vrednost h(x) da bude ve a za cvorove na koje se ranije


c
nai lo. Primetimo da ovako denisana funkcija h nije nu no dopustiva.
s
z

Dejkstrin algoritam, kao specijalni slu aj obilaska grafa u sirinu takode je


c

specijalni slu aj algoritma A* gde je h(x) = 0 za svaki cvor x. Ovakva funkcija


c
h je dopustiva i konzistentna i garantuje nala enje optimalnog puta.
z
Za g = 0, algoritam A* pona a se u skladu sa najpre-najboljim, pohleps

nim pristupom koji najpre obraduje cvorove sa najpovoljnijom heursiti kom


c
vredno cu. Ova varijanta algoritma nije nu no optimalna.
s
z

Op ti algoritam A* cesto se primenjuje za nala enje puta na uniformnoj


s
z
mre i cvorova (koja odgovara, na primer, diskretizovanoj mapi). Tada on doz
bija speci nu formu. Pretpostavimo da je mre a pravilna (sa injena od kvadrata)
c
z
c

i da ima pravougaonu formu. Dodatno, pretpostavljamo da neki cvorovi (tj. neki


kvadrati, neka polja mre e) nisu dostupni i da oni predstavljaju prepreke. Svako
z
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

i kao takve nedostupne). U ovoj varijanti problema, cene su pridru ene cvorovima
z

(poljima), a ne granama grafa (vezama izmedu susednih cvorova). U ovom


kontekstu, funkcija g(n) je zbir svih cena polja du puta od polaznog do polja
z
n. Na primer, svakom ,,horizontalnom ili ,,vertikalnom pokretu mo e se
z

pridru iti cena 1 a svakom dijagonalnom cena 1.414 2 (ovakva cena odgoz

vara euklidskom rastojanju izmedu sredi ta polja). Funkcija h mo e se opisati


s
z

na razli ite na ine. Jedan od njih je euklidsko rastojanje izmedu dva cvora, a
c
c

jedan metod Menhetn u kojem se broji ukupan broj polja predenih horizontalno
ili vertikalno da bi se do lo od polaznog polja do teku eg polja2 . Primetimo da
s
c
ukoliko su dozvoljeni dijagonalni potezi, onda Menhetn metod potencijalno

precenjuje rastojanje do ciljnog cvora i zbog toga ne garantuje nala enje naz

jkra eg puta. No, ovaj metod u praksi obi no daje dobre rezultate i nadeni
c
c

putevi su obi no dovoljno dobri, cak i ako nisu najkra i. Kada se odreduje
c
c
vrednost h, mogu da se ignori u sve prepreke jer vrednost h(n) je procenjeno
s
a ne stvarno rastojanje.
Kada se algoritam A* primenjuje za nala enje puta na uniformnoj mre i,
z
z

on daje korake u osam mogu ih smerova sto kasnije cesto dovodi do neprirodc
nih puteva sa injenih od segmenata sa jednim od osam nagiba. Omekavanje
c
s

(eng. smoothing) je tehnika za unapredivanje takvih puteva tako da oni izgledaju prirodnije.

7.3.3

Primer upotrebe algoritma A* na uniformnoj mre i


z

Naredni primer3 ilustruje primer upotrebe algoritma A* na uniformnoj mre i.


z
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 no, zbir
c
2 Metod se zove Menhetn, jer podse a na brojanje gradskih blokova od jednog mesta do drugog,
c

pri cemo nije mogu e prolaziti blokove dijagonalno.


c
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

vrednosti funkcija g i h. Polazni cvor ozna en je zelenom, a ciljni crvenom boc


jom. Otvorena polja su ozna ena tankim zelenim kvadratima, a zatvorena dec
bljim crvenim kvadratima u okviru polja. Strelice ukazuju na teku eg roditelja
c
polja.
Postupak je isti kao kod op teg algoritma: u svakoj iteraciji bira se polje
s
iz otvorene liste sa najmanjom vredno cu funkcije f . To, teku e polje izbacus
c
jemo iz otvorene liste i dodajemo u zatvorenu listu. Proveravamo sve susedna
polja, ne razmatraju i polja koja su u zatvorenoj listi ili nisu dostupna. Ako
c
susedno polje nije ve u otvorenoj listi, izra unavamo vrednosti funkcija g, h
c
c
i f za njega i ozna avamo da je teku e polje njegov roditelj. Ako je susedno
c
c
polje ve u otvorenoj listi, proveravamo da li je put preko teku eg polja bolji,
c
c
tj. proveravamo da li je vrednost funkcije g za to susedno polje manja ako se
do njega dolazi preko teku eg polja. Ukoliko to nije ta no, ne preduzima se
c
c
ni ta, a ako jeste teku e polje postaje novi roditelj tog susegnog polja i njemu
s
c
se pridru uju nove vrednosti g i f .
z
Pretraga kre e od polaznog polja jer je na po etku samo ono u otvorenoj
c
c
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 nom euklidskom rastojanju (pomno enom sa 10 i zaokru enom).
z
z
z
Vrednosti funkcije h se izra unavaju na osnovu Menhetn rastojanja (pomno enog
c
z
sa 10) do ciljnog polja i zanemaruju i prepreku.
c

f
g

h
74

60

54

14 60 10 50 14 40
60

40

10 50
74

10 30
60

54

14 60 10 50 14 40

Polazno polje bri e se iz otvorene liste i dodaje u zatvorenu listu. U otvorenoj


s
listi je samo njegovih osam susednih polja. Od svih njih, bira se ono sa najmanjom vredno cu funkcije f (40), to je polje neposredno desno od polaznog polja
s

i ono ce biti slede e teku e polje.


c
c

122

7 Odredivanje puteva u grafu

74

60

54

14 60 10 50 14 40
60

40

10 50
74

10 30
60

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

listi i nisu prepreke). Preostala cetiri polja su ve u otvorenoj listi, pa je potrebno


c
proveriti da li put preko teku eg cvora popravlja njihove trenutne ocene. Razc
motrimo, na primer, polje neposredno iznad teku eg polja: vrednost funkcije
c
g za njega je 14. Ukoliko bi se do njega dolazilo preko teku eg polja, vredc
nost funkcije g bila bi 20 (10 je cena od polaznog do teku eg cvora i 10 je cena
c
prelaska od teku eg polja). Dakle, na ovaj na in se ne mo e popraviti vrednost
c
c
z
funkcije g u polju iznad i ona ostaje nepromenjena.

Opisani postupak sprovodimo za sva cetiri susegna polja i, u ovom slu aju,
c

utvrdujemo da ocena nijegnog ne mo e da se popravi. Time je obrada teku eg


z
c
polja zavr ena i tra imo novo teku e polje. Od preostalih sedam polja u otvorenoj
s
z
c
listi biramo ono sa najmanjom vredno cu funkcije f . Ukoliko postoji vi e takvih
s
s
svejedno je koji izabrati. Neka je, na primer, izabrano polje neposredno ispod
prethodnog teku eg polja.
c

74

60

54

14 60 10 50 14 40
60

40

10 50
74

10 30
60

54

14 60 10 50 14 40
88

74

28 60 24 50

Za teku e polje ne e se razmatrati susedna polja koja su u zatvorenoj listi i


c
c
koja su nedostupna (tj. prepreke). No, mo e se (iako to nije nu no i zavisi od
z
z
konkretne primene) zabraniti ispitivanje polja koje je desno-dole od teku eg
c
polja. Naime, mo e se smatrati da je dijagonalni potez od teku eg do tog polja
z
c
nemogu zbog prepreke koja se nalazi desno od teku eg polja.
c
c

7.3 A*

123

Ukoliko prihvatimo takvo ograni enje, ostaje jo tri susednih polja koja
c
s
treba razmotriti. Dva polja ispod teku eg polja nisu u otvorenoj listi, pa ih
c
dodajemo zajedno sa izra unatim vrednostima funkcija i informacijom da im
c
je roditelj teku e polje. Za polje levo od teku eg polja se proverava da li se
c
c
mo e smanjiti vrednost funkcije g (odgovor je ne) i time je zavr ena obrada
z
s
teku eg polja.
c
Opisani postupak se nastavlja dok ciljno polje ne postane teku e.
c
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

40

20 60 10 50
94

74

60

82

10 30

60

72 10 68

54

74

94

80

74

82
0 72 10

68

88

54 20 58 10 68 20

24 70 14 60 10 50 14 40
108

68

74

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 aju ona ne uti e na pronadeni put, ali su ovakve izmene u op tem slu aju
c
c
s
c

veoma ceste i uti u na kona no re enje.


c
c
s
Kada se tokom pretrage ciljno polje postane teku e, tra eni put od poc
z

laznog cvora se konstrui e jednostavno. Kre e se od ciljnog cvora i prelazi


s
c

na roditeljski sve dok se ne dode do polaznog cvora. Ovako odreden niz polja
u suporotnom poretku daje tra eni put od polaznog do ciljnog polja.
z
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

40

94

74

60

82

10 30

60

20 60 10 50

72 10 68

54

74

24 70 14 60 10 50 14 40
108

94

80

74

68

82
0 72 10

68

88

54 20 58 10 68 20
74

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

7 Odredivanje puteva u grafu

Svojstva algoritma A*

Mo e se dokazati da je algoritam A* potpun i da je, pod odredenim uslovima


z
optimalan [?]:

Potpunost: Ako postoji put izmedu dva cvor, algoritam A* ce na i jedan takav
c
(naravno, ukoliko je raspolo ivo dovoljno vreme i memorijski prostor).
z

Cak i ako je heuristi ka funkcija veoma lo a, ciljni cvor ce biti dostignut


c
s
u kona nom broju koraka.
c

Optimalnost: Od svih puteva izmedu dva data cvora, bi e izabran najkra i


c
c
put, ukoliko je funkcija heuristike h konzistentna. Ukoliko funkcija h nije
dopustiva, ali ne precenjuje stvarno cenu za vi e od d, onda je cena puta
s

koji ce prona i algoritam A* skuplji od najkra eg za ne vi e od d.


c
c
s

Ukoliko se ne koristi lista zatvorenih cvorova (tj. ukoliko se razmatraju i

susedni cvorovi koji su ve bili teku i), da bi algoritam bio optimalan doc
c
voljno 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

sve cvorove za koje va i f (n) < f (n); i neke cvorove n za koje va i f (n) =
z
z
f (n).
Vremenska slo enost algoritma A* zavisi od heuristike. U najgorem slu aju,
z
c

broj obradenih cvorova je eksponencijalan u odnosu na du inu najkra eg puta,


z
c
ali je polinomijalan ako funkcija heuristike h zadovoljava slede i uslov:
c
|h(x) h (x)| O(log h (x))

gde je h optimalna heuristika, tj. funkcija koja vra a ta nu cenu puta od cvora
c
c

x do ciljnog cvora. Drugim re ima, gre ka funkcije h ne treba da raste br e od


c
s
z
logaritma idealne heuristike.

Prethodna dva tvrdenja sugeri u da algoritam A* najbolje performanse (nas

jmanji broj obradenih cvorova) daje kada je funkcija heuristike bliska idealnoj 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 ljivo konstruisana, tako
z

da bude sto bli a idealnoj funkciji, ali da je nikada ne prema uje.


z
s
Za vi e detalja o svojstvima algoritma A* videti, na primer, [?].
s

7.3.5

Implementaciona pitanja

Algoritam A* se obi no primenjuje u aplikacijama koje rade u realnom vrec


menu, te je neohodno da je ekasno implementiran (kori cenjem pogodnih
s
struktura podataka, ekasnim upravljanjem memorijom, izbegavanjem mno enja
z

i drugih skupih operacija itd.) U ovom poglavlju ukratko cemo prokomentarisati nekoliko na ina koji popravljaju ekasnost implementacije algoritma
c
A*.

Otvorena lista se cesto implementira kao binarni min-hip (kako bi se brzo


dolazilo do elementa sa najmanjom vredno cu funkcije f ), a zatvorena lista kao
s

7.3 A*

125

he tabela4 . Kori cenjem ovih fukcija operacije za dodavanje u i brisanje eles


s

menata iz otvorene liste zahteva vreme O(log V ), gde je V broj cvorova grafa, a

dodavanje cvora u zatvorenu listu i proveravanje da li je ve u zatvorenoj listi


c
zahteva vreme O(1).

Zahtevi za memorijskim prostorom su za algoritam A* cesto jo ve i probs c

lem nego vremenska slo enost. Ipak, ukoliko broj cvora grafa nije preveliki,
z
mo e da bude isplativo i stati ko alociranje potrebnog prostora (ili dinami ko
z
c
c
alociranje ve ih blokova) koji onda mo e da se koristi u savezu sa min-hip
c
z

strukturom, kako bi se izbegle ceste i skupe operacije dinami kog alociranje (i


c
dealociranje) za pojedina ne cvorove. Dodatno, ako se algoritam primenjuje za
c
nala enje puta na uniformnoj mapi dimenzija M M i ako se stati ki rezervi e
z
c
s

prostor za svaki cvor, pristupanje cvorovima je br e ako je M oblika 2m .


z
Potrebno je eliminisati ra un sa decimalnim brojevima i koristiti samo celoc
brojnu aritmetiku. Ukoliko cene imaju decimelne vrednosti (npr. 1.414) potrebno
ih je pomno iti sa, na primer, 1000 i koristiti samo zaokru ene vrednosti.
z
z

Najgori slu aj za algoritam A* je kada ne postoji put izmedu polaznog i


c

ciljnog cvora. U tu svrhu mo e se implementirati brza provera da li uop te


z
s

postoji put izmedu dva cvora: dva cvora su povezana ako i samo ako pripadaju

povezanim delovima grafa. Ako se za svaki cvor mo e lako proveriti kom delu
z
grafa pripada, onda je i navedena provera jednostavna.

Algoritam A* cesto se koristi kao komponenta sirih sistema koji treba da


rade u realnom vremenu. Zbog toga je obi no potrebno implementirati tako
c
da se na zahteva izvr avanje u jednom neprekinutom vremenskom periodu,
s

ve u vremenskim intervalima izmedu kojih se izvr avaju druge komponente


c
s

sistema. Ovakav pristup se cesto zove deljenje vremena na krike (eng. time slics
ing).

4 He tabela je struktura podataka koja povezuje vrednosti i klju eve. Ona omogu ava ekasno
s
c
c
nala enje vrednosti na osnovu klju a. To se posti e preslikavanjem klju a he funkcijom u he
z
c
z
c
s
s
vrednost koja slu i kao indeks niza na kojem se nalazi odgovaraju a vrednost.
z
c

126

7 Odredivanje puteva u grafu

Glava 8

Programiranje logi kih igara


c
Programiranje logi kih igara jedan je od klasi nih problema ve ta ke inteligenc
c
s c
cije i verovatno jedan od najatraktivnijih. Kako logi ke igre zahtevaju odlu ivanje
c
c
koje se mo e smatrati inteligentnim, ova problematika je predmet interesoz
vanja mnogih istra iva a u oblasti ve ta ke inteligencije (i ne samo njih). Mo da
z c
s c
z
su zbog toga neki od najve ih dometa ve ta ke inteligencije upravo u ovom
c
s c

domenu: ra unari su ve pobedili svetske sampione u igrama bekgemon i


c
c

dame, a nedavno je u brzopoteznoj igri sa ra unarom, partiju saha izgubio i


c

svetski sampion Gari Kasparov. Uprkos tim dometima, jo uvek treba zadr ati
s
z
oprez prema programima za logi ke igre, jer njihovi principi odlu ivanja kvalc
c
itativno (po pitanjima apstrahovanja, analogija, pravljenja planova i sl.) jo
s
uvek nisu dovoljno blizu ljudskim. Mogu nosti re avanja ovih problema i
c
s
primene tih tehnika u drugim domenima upravo i motivi u dalja istra ivanja
s
z
ve ta ke inteligencije u ovom pravcu.
s c
U ovoj glavi bi e re i o razvoju strategija za automatsko igranje logi kih
c
c
c
igara, a zatim i o samim strategijama. Ne e biti upu tanja u teorijske analize
c
s
pojedina nih igara, ve ce biti opisani op ti pojmovi i algoritmi koji mogu da
c
c
s

se koriste za sirok spektar igara. Razmatra emo algoritme za igre dva igra a
c
c
bez nepoznate informacije, dakle igre kod kojih svaki igra zna koje poteze
c
na raspolaganju ima protivnik (u ovu kategoriju ne spadaju, na primer, igre u
kojima igra ne zna karte koje ima protivnik, nepoznati broj koji treba pogoditi
c
itd).

Za oznake u sahu, koji ce biti jedna od igara naj e ce uzimanih za primer,


c s

prihvati emo engleske oznake. Tako cemo kralja ozna avati sa K (King), kraljicu
c
c
sa Q (Queen), topa sa R (Rook), lovca sa B (Bishop), konja sa N (Knight) i

pe aka sa P (Pawn). Shodno tome ozna ava emo i sahovske zavr nice (npr.
s
c
c
s
zavr nicu kralj i kraljica protiv kralja i topa ozna ava emo sa KQKR).
s
c
c

8.1

Razvoj automatskog igranja logi kih igara i osc


novni koncepti

Istorija automatskog igranja logi kih igara po inje u devetnaestom veku: spanski
c
c
pronalaza Tores Kevedo (Torres y Quevedo) konstruisao je 1890. godine (i
c

prikazao 1900. na svetskoj izlo bi u Parizu) elektro-mehani ki uredaj koji je


z
c

128

8 Programiranje logi kih igara


c

igrao sahovsku zavr nicu KRK.


s
Op ta teorijska razmatranja zapo eo je Von Nojman (Von Neuman) postavs
c
ljanjem op teg problema (1928): Igra i S1 , S2 , . . . , Sn igraju datu igru . Kako
s
c
treba da igra igra Sm da bi ostvario najbolji mogu i rezultat? Odgovor na ovako
c
c
postavljeno pitanje te ko je dati za ve inu igara. Naravno, nije bilo te ko naslus
c
s

titi da je za puno igara, cak i ako on postoji, te ko ili gotovo nemogu e efeks
c
tivno realizovati optimalni algoritam za proizvoljnu poziciju. U svakom slu aju,
c
ova problematika postala je predmet interesovanja mnogih matemati ara i,
c
posebno, matemati ke discipline teorija igara.
c
Moderna istorija programiranja igara po inje klasi nim tekstom Programc
c
ming a digital computer for playing Chess (Philosophical Magazine, 41) koji je

1950. godine objavio Klod Senon (Claude Shannon). U tom tekstu Senon je

opisao dve op te strategije za izbor poteza: strategije A i B tipa (danas cesto


s

ozna avane kao Senonova A i B strategija):


c

A: Minimaks procedurom vr i se pretra ivanje stabla igre sa odredenom


s
z
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 e, unapred pripremljene tabele.
c

Koncept zasnovan na Senonovoj A strategiji naziva se i gledanje unapred


ili gledanje u dubinu (eng. lookahead) pristupom, a ponegde i ,,sistematskim
pretra ivanjem, ,,dubinskim pretra ivanje ili ,,najpre najdublji. Ako bi se
z
z
kori cenjem ove strategije, minimaks algoritmom, pretra ivanje stabla igre vr ilo
s
z
s
do zavr nih stanja igre, ispitivanjem svih mogu ih tokova partije zaista bi bio
s
c
izabran najbolji legalan potez i taj izbor bi imao savr eno obrazlo enje u samom
s
z

primenjenom algoritmu. Medutim, za ve inu igara nije prakti no mogu e prec


c
c

tra iti kompletno stablo igre. Cak i pretra ivanje stabla igre do dubine od
z
z
svega nekoliko poteza u igrama sa prose no deset ili dvadeset legalnih poteza,
c

zahteva ispitivanje miliona pozicija. Zbog toga, ekasna primena Senonove


A strategije svodi se na pretra ivanje stabla igre do relativno male dubine
z
algoritmima koji su ubrzani heuristikama1 (umesto najjednostavnijim minimaks algoritmom) i uz dobro osmi ljenu, ali jednostavnu funkciju evaluacije za
s
ocenu nezavr nih pozicija igre (umesto jednostavne ,,trovrednosne funkcije
s
za ocenu zavr nih pozicija). Ovakvim pristupom gubi se svojstvo po kome
s
se pretra ivanjem dobija zaista najbolji potez, a obim pretra ivanja i razli itih
z
z
c

izra unavanja ostaje, naj e ce, i dalje veoma velik. Opisani koncept cesto se
c
c s
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 da adekvatnije trenutni pogled (eng. lookup). Ovaj pristup zahteva posz
tojanje unapred pripremljene tabele sa dve kolone: u jednoj su mogu e pozic
cije/situacije igre, a u drugoj optimalni potezi. Jedna od ,,klasi nih implemetacija
c
1 Heuristike su (aproksimativne) metode za usmeravanje i su avanje pretrage u problemz
atici gde se javlja kombinatorna eksplozija. Kvalitet i mogu nosti njihove primene zavise od
c
speci nosti domena i njegove neprekidnosti (malim promenama problema treba da odgovaraju
c
male promene re enja).
s

8.2 Legalni potezi i stablo igre

129

ovog pristupa je program za igranje sahovske zavr nice KQKR koji je 1977.
s
godine napravio Kenet Tompson (Kenneth Thompson, Bell Telephone Laboratories), poznat kao tvorac operativnog sistema UNIX). Tabela koju je koristio
program sadr avala je sve mogu e pozicije za oba igra a i optimalne poteze za
z
c
c

sve te pozicije (pri cemu se pod optimalnim potezom za ja eg igra a (koji ima
c
c
kralja i kraljicu) smatra potez koji vodi pobedi u najmanjem broju poteza, a za
slabijeg, potez koji maksimalno odla e poraz). Tabela je imala oko tri miliona
z
vrsta i program koji se na njoj zasnivao bio je, i u pozicijama koje su teorijski

izgubljene, prakti no nepobediv cak i za vrhunske sahiste. U ovoj strategiji,


c

znanje o igri (u ovom primeru, o sahu) ne nalazi se niti u samom programu


koji igra, niti u tabeli, ve u programu koji je tabelu generisao. Opisani pristup
c
zahteva, pored adekvatne procedure za generisanje lookup tabele i veliku memoriju (za sme tanje svih mogu ih pozicija), ali u samom procesu igre program
s
c
zahteva naj e ce jako malo vremena za pronala enje odgovaraju eg poteza.
c s
z
c

Senonova B strategija mo e se primenjivati i u modikonvanim varijantama


z
po kojima se, na primer, ne bi prepoznavale sve mogu e pozicije, ve citave
c
c
klase pozicija i na sli an na in nalazili optimalni potezi.
c
c
c
Uporeduju i Senonove strategije A i B (odnosno pristupe lookahead i lookup)
vidimo da prva u samom procesu izbora poteza zahteva malo memorije i mnogo
izra unavanja (deep mentality), a druga, obrnuto, malo izra unavanja (shallow
c
c
mentality) i mnogo memorije. Na toj skali odnosa koli ine podataka koji se
c

koriste i obima izra unavanja, covekov na in zaklju ivanja je izmedu ovih krac
c
c

jnosti, a naj e ce se bitno razlikuje i po svojoj prirodi. Upravo priroda covekovog


c s
na ina razmi ljanja i zelja da se on opona a, vodi ka novim pristupima u forc
s
s

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 u
s
se pravila (odnosno saveti) koja treba slediti i to obliku re enja (jednostavnis
jih) potproblema. Takav na in reprezentacije znanja o problemu i o na inima
c
c
njegovog re avanja mo e biti jako blizak ljudskom i pripadati onom segmentu
s
z

skale obim izra unavanja koli ina kori cene memorije koji odgovara coveku.
c
c
s
U nastavku teksta, za izbor poteza u otvaranjima razmatra e se strategije
c

koje su u osnovi Senonovog tipa B tipa, za sredi nicu strategije Senonovog


s
tipa A i za zavr nicu pristupe tipa skupovi pozicija kao klase ekvivalencije
s
ili advice texts.

8.2

Legalni potezi i stablo igre

Legalne poteze deni u pravila igre. Naglasimo da pravimo razliku izmedu ters
mina mogu i potezi i legalni potezi: mogu im potezima nazivamo one koji su
c
c
legalni u bar jednoj regularnoj poziciji igre.
Pretpostavka je da se u svakom trenutku igre mo e jednozna no odredz
c

iti skup legalnih poteza. Dodatno, po eljno je da postoji (cikli no) uredenje
z
c
poteza, pa se za svaki legalan potez mo e jednozna no odrediti slede i legalan
z
c
c
potez.

Stablo igre je stablo u kojem cvorovima odgovaraju regularne pozicije u igri


(u skladu sa pravilima date igre), a granama legalni potezi (u smislu date igre).

Cvor x stabla igre je neposredni predak cvora y ako se iz pozicije/ vora x nekim
c

130

8 Programiranje logi kih igara


c

legalnim potezom dobija pozicija/ vor y (tada ka emo i da je cvor y neposredni


c
z

potomak cvora x). Za cvor x stabla ka emo da je predak cvora y ako postoji niz
z

cvorova stabla x = z0 , z1 , . . . , zn = y (n 1) takvih da je za svako i, 0

i n 1 cvor zi neposredni predak cvora zi+1 . Tada ka emo i da je cvor


z

y potomak cvora x. Legalnim potezom smatramo i prazan potez (u engleskom

jeziku cesto se koristi termin pass) u situaciji kada igra koji je na redu nema na
c
raspolaganju legalnih poteza i preska e svoj red (takve situacije nisu regularne,
c

na primer, u sahu, ali regularne, na primer, u igri reversi). U igri za dva igra a,
c
u ovako denisanom stablu igre, od korena do bilo kog lista naizmeni no se
c
smenjuju grane koje odgovaraju potezima prvog i drugog igra a. Sli no, ako
c
c
se radi o igri za vi e igra a, od korena do bilo kog lista redom se smenjuju
s
c
grane koje odgovaraju potezima svih igra a. Na slici 8.1 ilustrovano je stablo
c
igre za igru iks-oks.

xo

x o

...

...

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

o
xox

o
x

...

...

...

o
o
x x

o
o
o
xo
... ... ...
o
x
x ...
xox xox
xox xxx

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

...

...

...

o
x x

...

...

...

...

...

...

...

...

oo
x x

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

zavr no stanje
s
. ....... .

Figure 8.1: Stablo igre za igru iks-oks


Kompletnim stablom igre zovemo stablo u kojem je koren po etna pozicija
c
igre (u skladu sa pravilima date igre), a listovi su zavr ne pozicije igre. Koms
pletno stablo igre ima onoliko listova koliko data igra ima razli itih regularnih
c
tokova. Taj broj je kod ve ine igara ( ak i kod veoma jednostavnih) ogroman
c
c
i onemogu ava kompletno pretra ivanje u cilju izbora optimalne strategije.
c
z
Zato se u programima za igre (naj e e u sredi nici) za izbor poteza primenc c
s
juju algoritmi koji pretra uju samo delove ovog stabla (videti poglavlje 8.4).
z

Za potpuni opis stabla u ra unarskoj implementaciji nije potrebno cuvati inc

formaciju i cvorovima/pozicijama i o granama/potezima. Naime, kako granama


odgovaraju legalni potezi i kako oni na osnovu teku e pozicije jednozna no
c
c

odreduju slede u poziciju, za opis stabla dovoljan je opis korena stabla (tj. poc
lazne pozicije) i opis grana/legalnih poteza za odgovaraju e cvorove. Na taj
c
na in implicitno mo e biti opisano/generisano celo stablo, a zauzeti memoric
z
jski prostor daleko je manji nego kada bi se eksplicitno pamtile i pozicije koje

odgovaraju cvorovima stabla. Takav na in opisa stabla mo e da se koristi i za


c
z

8.3 Otvaranje i biblioteka partija

131

opis biblioteke partija, o cemu govori naredno poglavlje.

8.3

Otvaranje i biblioteka partija

Potreba za skladi tenjem (i kori cenjem) opisa partija odredene igre mo e da


s
s
z
proisti e bilo iz potrebe da se ti podaci koriste za izbor poteza u samom proc
gramu, bilo iz potrebe da se omogu i jednostavnija analiza pojedinih situacija/pozicija
c

ili citavih partija.


Opisi partija mogu biti posebne, nezavisne celine, ali mogu biti i organizovani tako da korisniku omogu avaju laku uporednu analizu sli nih varijanti u
c
c
igri i da su istovremeno upotrebljivi za pomo u automatskom izboru poteza.
c
Jedna od najpogodnijih reprezentacija biblioteke partija je u obliku stabla igre.
U takvoj reprezentaciji biblioteke partija, dovoljno je da odgovaraju e stablo
c
igre sadr i informacije o potezima (koji odgovaraju granama stabla), jer su
z

njima odredene i odgovaraju e pozicije (koje odgovaraju cvorovima stabla).


c

U programima za logi ke igre cesto je izuzetno zna ajna biblioteka otvaranja


c
c
(opening book) koja je zasnovana na ljudskom iskustvu i koja sadr i inforz

macije o poznatim i kvalitetnim potezima koji se cesto javljaju u otvaranju.


Biblioteka otvaranja, kao i biblioteka partija, naj e ce se reprezentuje stablom
c s

igre. Ta struktura mo e biti stati ka (sadr i odreden, kona an broj varijanti


z
c
z
c

u svakom potezu i informacije o potezima samo do odredene dubine) ili se


pro irivati tokom samog izvr avanja programa.
s
s
U igri programa sledi se tok partije iz biblioteke dok je to mogu e (dok o
c
tome postoje odgovaraju e informacije u biblioteci otvaranja), a onda se prelazi
c
na druge strategije izbora poteza. Ukoliko za neku poziciju postoji u biblioteci

vi e mogu ih nastavaka, izbor mo e da se na ini po odredenim verovatno ama


s
c
z
c
c
koje mogu da se koriguju tokom rada programa (u skladu sa ,,stilom igre programa koji proisti e iz prirode funkcije evaluacije) ili jednim delom i prema
c

du ini koja u stablu sledi iza odredenog poteza (kao te nja da se sto du e osz
z
z
tane u poznatim varijantama). Pomenuta strategija mo e da se realizuje na
z
slede i na in: neka je, na osnovu biblioteke otvaranja, u nekom trenutku na
c
c
raspolaganju n poteza. Svakom od njih neka je pridru ena ocena mi (1 i n)
z
na osnovu empirijske procene i na osnovu dubine biblioteke partija koja sledi
za i-tim potezom (te ocene predstavljaju karakteristi an, dodatni deo biblioteke
c
partija). Ukoliko emprijske procene govore da je i-ti potez bolji, to je ocena mi

ve a. Takode, ocena mi je ve a ukoliko je ve a dubina biblioteke partija koja


c
c
c
sledi za i-tim potezom. Tada se, u toj poziciji, i-ti potez (1 i n) bira sa
verovatno om
c
mi
.
pi = n
j=1 mj
Na taj na in izbegava se deterministi ko pona anje programa u otvaranju: bolji
c
c
s
s
potezi (u smislu neke procene) se biraju ce ce, ali ne uvek. Ocene mi mogu se
tokom igre korigovati na slede i na in: ukoliko je posle izbora i-tog poteza
c
c
(na nekoj dubini d) program dobio (izgubio) partiju, oceni mi dodaje se (oduzima se) neka karakteristi na pozitivna vrednost c. Te korekcije ocena u bibc
lioteci partija vr e se na svim nivoima d na kojima izbor poteza nije bio jeds

nozna no odreden. Na taj na in program ,,u i, popravlja kvalitet svoje igre i


c
c
c

prilagodava je speci nim znanjima o igri koje primenjuje u daljem toku parc
tije.

132

8 Programiranje logi kih igara


c

Poseban problem u otvaranju je situacija u kojoj protivnik svojim potezom


primora program da napusti biblioteku otvaranja, a potom se u igri ponovo

dode do neke pozicije koja postoji u biblioteci otvaranja. Prepoznavanje pozicije koja postoji u razli itim delovima stabla mo e da predstavlja problem i
c
z
iziskuje kompleksniju reprezentaciju podataka o poznatim otvaranjima. Takav

zahtev mo e da vodi i ka re enju koje je tipi no za Senonovu B strategiju:


z
s
c
u lookup tabeli tra i se teku a pozicija i njoj odgovaraju i potez (ili potezi).
z
c
c
Re enje ovog tipa u ve ini igara je neprimereno zbog velikog obima podataka
s
c
koji zahteva (umesto samo pojedina nih poteza, sve pozicije se predstavljaju
c
kompletno i posebno) i vremena potrebnog za izvr avanje (u lookup tabeli, za
s
neke igre, morali bi da budu sme teni podaci o hiljadama, ili milionima reles
vantnih pozicija).

8.4

Sredi njica
s

Velika ve ina savremenih programa za logi ke igre u sredi njici koristi stratec
c
s

giju dubinskog pretra ivanja stabla igre koja odgovara Senonovoj A strategiji.
z
Zbog obima izra unavanja koje zahteva, kao i zbog razlika u odnosu na stratec

gije tipi ne za coveka, ovaj pristup cesto se naziva i ,,metod grube sile sa jedc
nostavnom funkcijom evaluacije (eng. brute-force method plus simple evaluation function). U narednim poglavljima opisa emo smisao i ulogu funkcije
c
evaluacije, kao i neke od algoritama koji se koriste u pretra ivanju stabla igre.
z

8.4.1

Stati ka ocena pozicije i funkcija evaluacije


c

U cilju odredivanja najboljeg poteza za igra a koji je na potezu, cvorovima stac

bla igre se mogu dodeliti neke ocene, na osnovu koje cvorovi tj. pozicije i potezi
mogu da se porede po kvalitetu. Stati ka ocena je vrednost koja se, u skladu
c

sa speci nim karakteristikama konkretne igre, dodelje poziciji pri cemu se ne


c
ispituju mogu i nastavci koji joj odgovaraju. Funkcija evaluacije (eng. evaluac
tion function) je funkcija F koja mogu im, regularnim pozicijama u nekoj igri
c
dodeljuje njihove ocene:
F :P .
Radi ekasnosti, funkcija evaluacije obi no se implementira kao racionalna ili
c
celobrojna funkcija.
Smisao funkcije evaluacije za protivnike u igri za dva igra a je suprotan
c

ono sto je najbolje stanje za jednog igra a najlo ije je za drugog i obratno.
c
s
Funkcije evaluacije razlikuju se od igre do igre (i od programa do programa).
Gotovo sve znanje o igri koje se koristi u sredi njici partije sadr ano je u funkciji
s
z
evaluacije i u najve oj meri od nje zavisi kvalitet igre programa. Potrebno je da
c
sadr i sto vi e relevantnih informacija, ali s druge strane, kako se izra unava
z
s
c
mnogo puta, potrebno je da bude jednostavna, pa je po eljno da se funkcija
z

evaluacije ra una jednostavno i u celobrojnoj aritmetici. Takode, po eljno je


c
z
da funkcija evaluacije za simetri ne pozicije (za zamenjene uloge igra a) daje
c
c
vrednosti koje se razlikuju samo po znaku. Najjednostavnija je tzv. trovrednosna funkcija: ona se primenjuje samo na zavr ne pozicije igre i ima samo tri
s
razli ite vrednosti za pobedu prvog, za pobedu drugog igra a i za nere en
c
c
s
ishod (npr. 1, -1 i 0). Trovrednosna funkcija zahteva pretra ivanje stabla igre
z

8.4 Sredi njica


s

133

do zavr nih cvorova, pa je, zbog potencijalno velike dubine pretra ivanja, ova
s
z
funkcija za ve inu igara prakti no neupotrebljiva. Generalno, funkcija evaluc
c
acije obi no preslikava skup svih mogu ih pozicija preslikava u segment celih
c
c
ili racionalnih brojeva:
F : P [M, M ]

Vrednost M dodeljuje se samo zavr nim cvorovima u kojima je pobednik prvi


s

igra , a vrednost vrednost M samo zavr nim cvorovima u kojima je pobednik


c
s
drugi igra .
c
Ocene zavr nih pozicija igre mogu se korigovati dodavanjem (odnosno oduzs
imanjem) dubine odgovaraju eg cvora u pretra ivanju, kako bi se od svih varc
z
ijanti koje vode u pobedu izabrala ona koja vodi pobedi u najmanjem broju
koraka (odnosno kako bi se, ukoliko je poraz neizbe an, taj poraz maksimalno
z
odgodio).
Funkcija evaluacije mo e biti i slo ene strukture, sastavljena od modula
z
z
koji odgovaraju razli itim fazama partije (npr. sredi njici i zavr nici) ili rac
s
s

zli itim stati kim parametrima (npr. u sahu: vrednost ukupnog materijala,
c
c
pokretljivost gura, pe a ka struktura, rokada i dr.).
s c

8.4.2

Pretra ivanje stabla igre


z

Kod ve ine programa za kompleksnije logi ke igre, pored kvalitetne funkcije


c
c
evaluacije, od klju ne va nosti su algoritmi koji se koriste za pretra ivanje
c
z
z
stabla igre. Pri pretra ivanju stabla igre u sredi njici, funkcija evaluacije se
z
s

izra unava samo za cvorove na nekoj odredenoj dubini, a ostalim cvorovima se


c

pozicija ocenjuje na osnovu ocena nekih od cvorova-potomaka. Pretra ivanje


z

stabla igre u cilju odredivanja najboljeg mogu eg poteza iz datog cvora, kod
c
razli itih logi kih igara (i razli itih programa) realizuje se na razli ite na ine.
c
c
c
c
c
Realizacije se razlikuju po algoritmu pretra ivanja, po dubini pretra ivanja staz
z
bla, po heuristikama koje se primenjuju (nekad se, zbog brzine, odustaje od

zahteva da se pronade najbolji potez za datu dubinu, ve se tra i ,,dovoljno


c
z
dobar potez) itd. Kod kompleksnijih logi kih igara stablo igre naj e ce je
c
c s
ogromno i njegovo pretra ivanje zahteva puno vremena. Zato su heuristike
z
koje ubrzavaju to pretra ivanje od izuzetnog zna aja. Stablo igre se pri prez
c
tra ivanju ne realizuje stati ki, ve se dinami ki realizuje samo put od po etnog
z
c
c
c
c

cvora do pozicije koja se trenutno ispituje. Kako se za pretra ivanje stabla igre
z
koristi rekurzija, to zna i da se za potez dubine d pamte samo podaci proistekli
c
iz d-tostrukog pozivanja funkcije za pretra ivanje (sa povratnim adresama i sl).
z

8.4.3

Algoritam minimaks

Algoritam minimaks je klju ni element Senonove A strategije i on je u osnovi


c
skoro svih algoritama za izbor poteza pretra ivanjem stabla igre. Minimaks alz

goritam pretra ivanjem stabla igre za igra a koji je na potezu odreduje najbolji
z
c

mogu i potez u datoj situaciji (za zadati cvor, zadatu dubinu pretra ivanja i
c
z
za izabranu funkciju evaluacije). Pretra ivanje celog stabla garantuje nala enje
z
z
zaista najboljeg poteza (u navedenom smislu ako se menja dubina pretra ivanja
z
ne mora da se dobija isti rezultat), ali zbog odsustva heuristika (koje bi to pretra ivanje ubrzale) to pretra ivanje mo e da traje jako dugo. Pretpostavimo,
z
z
z
jednostavnosti radi, da se pretra ivanje vr i do ksne dubine (tj. da su iste
z
s

134

8 Programiranje logi kih igara


c

du ine svih puteva iz datog do zavr nih cvorova u pretra ivanju). Pretpostavimo
z
s
z
jo da funkcija evaluacije za igra a koji je na potezu ima pozitivan smisao
s
c

(tj. bolji je potez ako obezbeduje ve u vrednost funkcije). Funkcijom evaluc

acije ocene se dodeljuju samo ,,najdubljim cvorovima u pretra ivanju (prez

tra ivanje se vr i do ksne dubine i ,,najdublji cvorovi ne moraju da predz


s

stavljaju zavr na stanja igre); dalji postupak je rekurzivan: kao ocena cvoru
s

dodeljuje se minimum ocena cvorova-potomaka, ako je u tom cvoru na potezu

protivnik, a kao maksimum ocena cvorova potomaka, u suprotnom (slika 8.2).

Ocena po etnog cvora je maksimum ocena cvorovaneposrednih potomaka i


c
rezultat je potez kojem odgovara taj maksimim. Dakle, algoritam karakteri e
s
maksimizovanje ocene kada je na potezu sam igra i minimizovanje kada je na
c

potezu njegov protivnik, pa otuda i ime algoritma. Pseudokod ovog algoritma


dat je na slici 8.3.
5

max
5

min
5

2 1

max
5

2 1

Figure 8.2: Stablo pretrage sa ilustracijom algoritma minimax


Algoritam minimaks (kao i ostali algoritmi zasnovani na minimaksingu)

vr i izbor poteza samo na osnovu vrednosti koje su pridru ene cvorovima na


s
z
maksimalnoj dubini pretra ivanja. To zna i da se ne ispituju potezi koji dalje
z
c
slede i da se ne koriste informacije o njima (a te informacije mogu biti veoma

va ne i cesto bi promenile odluku o izabranom potezu). Pored toga, kada je


z

neki potez odabran na osnovu cvorova na nekoj dubini, u slede em koraku


c
(pri izboru slede eg poteza) te informacije se ne koriste i ,,zaboravlja se za to
c
s

je odabran taj put (npr. ako je u sahu neki potez izabran zato sto mu odgovara

cvor dubine tri u kojem se protivniku daje sah, u slede em potezu pretra ivanje
c
z

kre e iznova i cesto ne e biti izabran potez kojim se protivniku daje sah
c
c
potez koji je motivisao izbor prethodnog). Dakle, pri pretra ivanju stabla igre
z

,,vide se samo cvorovi na nekoj ksnoj dubini ni oni posle, ni oni pre njih.

Ovaj fenomen cesto se naziva efekat horizonta (eng. horizon effect).

8.4.4

Algoritam alfa-beta

Algoritam alfa-beta otkriven je sredinom dvadesetog veka nezavisno od strane


nekoliko istra iva a. Artur Semjuel sa jedne strane i Ri ards, Hart, Levin i Edz c
c
vards (svi iz SAD) formulisali su nezavisno ranu verziju algoritma po etkom
c

8.4 Sredi njica


s

135

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 zavrna pozicija vrati f (pozicija)
s
2. v :=
3. Za svaku poziciju s do koje se moe doi u jednom potezu:
z
c
Ako je M in(s) > v onda v := M in(s)
4. vrati v
Funkcija: Min
Ulaz: pozicija, funkcija evaluacije f
Izlaz: vrednost pozicije
1. Ako je zavrna pozicija vrati f (pozicija)
s
2. v := +
3. Za svaku poziciju s do koje se moe doi u jednom potezu:
z
c
Ako je M ax(s) < v onda v := M ax(s)
4. vrati v
Figure 8.3: Algoritam minimaks
pedesetih godina. Makarti je sli ne ideje predstavio 1956. godine, tokom znac
menite konferencije u Darmutu. Aleksander Brudno je, ponovo nezavisno,
otkrio alfa-beta algoritam i objavio ga 1963. godine.
Alfa-beta algoritam zasnovan je na tzv. alfa i beta odsecanju stabla igre
i predstavlja heuristikama ubrzan algoritam minimaks. Osnovni postupak

ocenjivanja cvorova je minimaks tipa: vrednosnom funkcijom ocenjuju se samo

cvorovi na nekoj odabranoj dubini, a zatim se rekurzivnim postupkom (mini


maksingom) ocenjuju cvorovi prethodnici. Postupak ,,alfa odsecanje bi opisan
e
pretpostavljaju i da funkcija evaluacije za igra a koji je na potezu ima pozitic
c
van smisao (bolje su ve ocene).
e

Neka je u teku em cvoru na potezu igra A koji tra i najbolji potez; neka
c
c
z
je ocenjeno n od m (n < m) njegovih legalnih poteza i neka su dobijene ocene
w1 , w2 ... wn i neka je wk najve a od njih. Razmatramo n + 1-i legalni potez
c
(slika 8.4); nakon tog poteza protivnik (igra B) ima vi e mogu nosti i igra
c
s
c
c

136

8 Programiranje logi kih igara


c

wn+1 < wk

2 < 5

max
wk

wn

wn+1

wj

odsecanje

7>5

odsecanje

min
1

2 1

odsecanje

max

Figure 8.4: Stablo pretrage sa ilustracijom algoritma alfa-beta

A tra i onu sa najmanjom ocenom; za svaku ocenu wi legalnih poteza u tom


z

cvoru, svakako va i da je ve a ili jednaka zajedni kom minimumu wmin (wi


z
c
c

wmin ) koji predstavlja ocenu cvora; dakle, ako se u tom pretra ivanju dode do
z
ocene wj koja je manja ili jednaka oceni wk (wj wk ) sigurno je da je i ocena

cvora manja ili jednaka oceni wk (wmin wk ). S obzirom da se u po etnom


c

cvoru tra i maksimum ocena mogu ih poteza, to zna i da taj cvor (sa ocenom
z
c
c

wmin wk ) ne uti e na ocenu po etnog cvora (jer je wmin wk wmax ),


c
c

pa se dalje pretra ivanje poteza protivnika u teku em cvoru mo e prekinuti


z
c
z
bez uticaja na rezultat pretra ivanja mo e da se izvr i odsecanje stabla
z
z
s

(slika 8.4). ,,Beta odsecanje je potpuno analogno i primenjuje se na cvorove


u kojima je na potezu protivnik. Naravno, s obzirom na smisao vrednosne
funkcije, maksimumi pominjani u ,,alfa odsecanju zamenjuju se minimumima

i obratno (slika 8.4). Pseudokod algoritma alfa-beta dat je na slici 8.5.

Kako stablo pretra ivanja cesto mo e biti jako veliko, ubrzanje minimaks
z
z
algoritma heuristikama ,,alfa-odsecanje i ,,beta-odsecanje ima izuzetan zna aj.
c
Posebno je va na cinjenica da i alfa-beta algoritam nalazi zaista najbolji mogu i
z
c

potez za zadati cvor i zadatu dubinu pretra ivanja, sto zna i da heuristike koje
z
c
se primenjuju ne naru avaju tu osobinu minimaks algoritma.
s

Ukoliko se u svakom cvoru potezi ispituju od najlo ijeg ka najboljem (u


s
smislu teku eg cvora), tada nema nijednog alfa ili beta odsecanja, pa se alfac
beta algoritam svodi na algoritam minimaks. Obratno, najvi e alfa i beta odses
canja ima kada su potezi ispituju od najboljeg ka najlo ijem u smislu teku eg
s
c

cvora i tada algoritam alfa-beta daje najbolji efekat (tj. ispituje najmanji broj

cvorova stabla). Naravno, takav poredak poteza nije mogu e generisati egzac
ktno u toku pretra ivanja stabla igre, ali se dobrim procenama efekat alfa-beta
z
algoritma tako mo e bitno popraviti. Upravo na toj ideji zasnivaju se i neka
z
pobolj anja alfa-beta algoritma.
s

8.4 Sredi njica


s

137

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 zavrna pozicija vrati f (pozicija)
s
2. v :=
3. Za svaku poziciju s do koje se moe doi u jednom potezu:
z
c
Ako je M in(s, , ) > v 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 zavrna pozicija vrati f (pozicija)
s
2. v :=
3. Za svaku poziciju s do koje se moe doi u jednom potezu:
z
c
Ako je M ax(s, , ) < v 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

8.4.5

Heuristika killer

U prethodnom poglavlju re eno je da se ekasnost algortima mo e popraviti


c
z

ako se u svakom cvoru potezi ispituju, po nekoj proceni, od najboljeg ka najlo

sijem. Sli no, algoritam alfa-beta daje dobre razultate ako se u svakom cvoru
c
najpre ispituje najbolji potez. Naravno, nije mogu e unapred znati koji je potez
c

najbolji u datom cvoru, ali se i dobrim procenama (izborom jednog od boljih


poteza) posti u dobri efekti. Heuristika killer (ponekad se naziv i w-killer) zasz

niva se na navedenim cinjenicama i ne koristi speci na znanja o igri (da bi se


c

138

8 Programiranje logi kih igara


c

procenilo koji potezi su dobri).


Neka se u pretra ivanju stabla alfa-beta algoritmom prvi put ocenjuje neki
z

cvor na dubini d (d 1) i neka je W najbolji pronadeni potez u smislu tog cvora.

Taj potez zva emo killer potezom za dubinu d. U svakom slede em cvoru na
c
c
dubini d, ispitivanje poteza po injemo sa killer potezom za tu dubinu. Ukoliko
c

se poka e da je za taj cvor bolji neki drugi potez (W ), taj potez postaje killer
z
potez za dubinu d.
Ukoliko se pretra ivanje stabla igre vr i do dubine dmax , opisana heuristika
z
s
primenjuje se za sve dubine d takve da je 1 d dmax 1. Alfa-beta algoritam pro iren killer heuristikom zovemo alfa-beta/killer algortimom. Primetimo
s
da se primenom killer heuristike ne menja rezultat alfa-beta algoritma (za istu
vrednosnu funkciju i istu dubinu pretra ivanja) tj. dobija se potez sa istom
z
ocenom (ne nu no i isti potez) kao primenom algoritama alfa-beta ili miniz

maks, i to naj e ce sa bitno manjim brojem ispitanih cvorova stabla.


c s
Smisao killer heuristike je slede i: ukoliko je u jednoj grani stabla na dubini
c
d najbolji potez W , ima izgleda da je on najbolji (ako je legalan) i u drugim

granama stabla na istoj dubini. Ilustrujmo to na primeru saha: neka igra u koji
c
je na redu preti mat u slede em potezu i neka nijedan njegov potez ne mo e
c
z

da otkloni tu pretnju. Pretra ivanjem stabla, u cvoru u kojem je na potezu proz


tivnik, otkriva se matni potez i on postaje killer potez (za dubinu 1). Pri daljem
pretra ivanju stabla, na dubini 1 najpre se ispituje taj potez i kako on vodi
z

pobedi protivnika, alfa odsecanje cini nepotrebnim dalje ispitivanje poteza u

tom cvoru. Time se broj cvorova stabla koje u ovakvoj situaciji treba ispitati
drasti no smanjuje.
c
U poglavlju 8.2 re eno je da mogu i (ne samo legalni) potezi treba da budu
c
c

organizovani u cikli ni niz, tj. da se je za svaki potez jednozna no odreden


c
c
slede i. Taj zahtev je u direktnoj vezi sa killer heuristikom, jer se ispitivanje
c
poteza u skladu sa njom, vr i po ev od killer poteza i, ispitav i (eventaulno)
s
c
s

sve ostale, cikli no vra a do tog istog poteza. Takode, kako je mogu e da killer
c
c
c

potez u nekom cvoru odgovaraju e dubine nije legalan, generator treba da za


c
svaki mogu i potez, bio on u konkretnoj poziciji legalan ili ne, jednozna no
c
c

odreduje slede i legalan potez.


c

8.4.6

Iterativni alfa-beta/killer algoritam

Za dubinu pretra ivanja dmax iterativni alfa-beta/killer algoritam se realizuje


z
na slede i na in: najpre se vr i pretra ivanje stabla igre do dubine 1 (svejedno
c
c
s
z
je kojim algoritmom, jer do dubine 1 nema alfa i beta odsecanja) i najbolji

pronadeni potez postaje killer potez za nivo 0 za po etni cvor. Dalje se,
c
redom za dubine d (2 d dmax ) primenjuje algoritmom alfa-beta/killer. i

dobijeni najbolji potez postaje killer potez za po etni cvor. Kao najbolji potez
c
bira se onaj dobijen zavr nom primenom alfa-beta/killer algoritma za dubinu
s
dmax .
Efekti iterativnog algoritma su, u svakoj iteraciji, sli ni efektima alfa-beta/killer
c

algoritma, s tim sto u iterativnom algoritmu postoji i killer potez za po etni


c

cvor u pretra ivanju. Ima izgleda da je u svakoj iteraciji taj killer potez bolje
z
odabran i da daje bolje rezultate (ve i broj alfa i beta odsecanja). Druga va na
c
z

i dobra osobina iterativnog algoritma je to sto za slu aj prekida pretra ivanja,


c
z

prakti no u svakom trenutku ima smisleni rezultat kao najbolji pronadeni potez
c

za neku kompletno zavr enu iteraciju (videti poglavlje 8.4.8). Ono sto izgleda
s

8.4 Sredi njica


s

139

kao mana algortima vi estruko pretra ivanje nekih cvorova ne uti e bitno
s
z
c
na perofrmanse algoritma. Naime, u odnosu na vreme utro eno za zavr nu its
s
eraciju, vreme utro eno na sve ostale iteracije prakti no je zanemarljivo. Pored
s
c

toga, s obzirom na (naj e ce) dobro odabran killer potez za po etni cvor, zavr na
c s
c
s

iteracija ce obi no zahtevati ispitivanje manjeg broja cvorova od alfa-beta/killer


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

dubinu pretra ivanja sto je va no svojstvo algoritama minimaks, alfa-beta i


z
z
alfa-beta/killer.
Kao modikacija ovog algoritma, mo e se vr iti samo prva i poslednja itz
s

eracija, jer se i prvom iteracijom cesto dobija dovoljno dobar killer potez za
dubinu 0. U razli itim konkretnim situacijama, nekad je bolji jedan, a nekad
c

drugi algoritam, s tim sto je, zbog mogu nosti prekida, u praksi prihvatljiviji
c
kompletni iterativni algoritam.

8.4.7

Stabilno pretra ivanje


z

U prethodnim algoritmima se uvek govorilo o pretra ivanju do ksne dubine.


z

Nedostatak takvog pristupa je u tome sto funkcija evaluacije, koja se primen


juje na cvorove na najve oj dubini, ne razmatra mogu e nastavke za pozicije
c
c
na najve oj dubini. Te ocene, ma koliko funkcija evaluacije bila dobra, mogu
c

da budu varljive i da vode lo em izboru poteza (u sahu se npr. mo e izabrati


s
z

potez zbog nekog, naizgled dobrog, zavr nog cvora u kojem se zarobljava pros
tivnikov top, ali se ne zna da nakon toga mo e da bude izgubljena kraljica ili
z
da sledi mat). Zbog toga se primenjuje ,,stabilno pretra ivanje(eng. quiscence
z
searching): vr i se pretra ivanje do neke ksne dubine, ali se pretra ivanje
s
z
z
nastavlja i dalje ukoliko je, po nekom kriterijumu, zavr ni cvor ,,nestabilan.
s

Maksimalna dubina dodatnog pretra ivanja takode mo e da bude ograni ena.


z
z
c
Stabilno pretra ivanje mo e se primenjivati u kombinaciji sa bilo kojim od do
z
z
sada opisanih algoritama.

Kriterijumi stabilnosti poteza odreduju se u skladu sa speci nostima konkretne


c

igre, ali i za istu igru mogu biti razliki iti. U sahu, na primer, pozicija se mo e
c
z

smatrati stabilnom ukoliko igra koji je na potezu nije pod sahom, ukoliko mu
c
kraljica ne ,,visi, ukoliko ne ,,visi nijedna protivnikova gura i ukoliko ne

preti neposredno izvodenje nekog protivnikovog pe aka. Savremeni programi


s

za sah cesto pretra uju stablo igre do dubine 4 (4 polupoteza tj. dva poteza) sa
z
dodatnim, stabilnim pretra ivanjem do dubine 16 ili vi e.
z
s

8.4.8

Prekidi i vremenska ograni enja


c

Va an problem u programiranju logi kih igara su i prekidi: potrebno je da


z
c
program izabere smislen i dobar potez i ukoliko se pretra ivanje stabla igre
z

prekine pre nego sto se izvr i kompletan algoritam. Potrebno je, dakle, da algos
ritam, i ukoliko je prekinuto njegovo normalno izvr avanje, vrati neki legalan
s

potez. Naravno, po eljno je i da taj potez bude sto bolji. Prekidi mogu biti
z
izazvani akcijom korisnika ili ograni enjima vremena raspolo ivog za jedan
c
z

140

8 Programiranje logi kih igara


c

potez ili za celu partiju2 . Ve ina algoritama koji su do sada opisani u situacic
jama prekida mo e da izabere teku i najbolji potez. Ipak, kad algoritam nije
z
c
kompletno izvr en (i, na primer, ispitani su samo neki, povoljni odgovori pros
tivnika), tako odabran potez mo e biti veoma lo . Za re avanje ovog problema
z
s
s
najpogodniji je iterativni alfa-beta/killer algoritam, jer prakti no u svakom
c

trenutku3 ima neku kompletno zavr enu iteraciju i njen rezultat cesto jeste dos
voljno dobar potez (iako, naravno, obi no slabiji nego potez koji bi bio dobijen
c
kompletno izvr enim algoritmom).
s

8.4.9

Slo enost algoritama za pretra ivanje stabla igre


z
z

Za formulisanje tvrdenja u vezi sa kompleksno cu algoritama za pretra ivanje


s
z
stabla igre, potrebno je uvesti nekoliko denicija.
Denicija 8.1 Uniformno stablo stepena n je stablo ciji svi cvorovi sem zavrnih

s
imaji ta no po n neposrednih potomaka.
c
Denicija 8.2 (d, n, F )-stablo je uniformno stablo dubine d, gde je d paran broj i
stepena n sa zavrnim cvorovima kojima su pridru ene vrednosti po raspodeli F .
s

z
Denicija 8.3 Neka je A deterministi ki algoritam za pretra ivanje (d, n, F )-stabla
c
z
i neka je IA (d, n, F ) o ekivani broj zavrnih cvorova koje algoritam A ispituje. Tada
c
s

vrednost
RA (n, F ) = lim [IA (d, n, F )]1/d
d

zovemo faktor grananja algoritma A.


Faktor grananja je klju na karakteristika algoritama za pretra ivanje stable
c
z

igre jer govori o o ekivanom broju zavr nih cvorova koje nekim algoritmom
c
s
treba ispitati. Naime, ukoliko je R faktor grananja nekog algoritma, onda je

o ekivani broj ispitanih cvorova za dubinu pretra ivanja d jednak Rd .


c
z
Ako se uniformno stablo stepena n i dubine d pretra uje minimaks algoritz

mom, bi e ispitano nd zavr nih cvorova stabla, pa je faktor grananja algoritma


c
s
minimaks o igledno jednak n, tj.
c
Rminimax (n, F ) = n.

Problem odredivanja faktora grananja alfa-beta algoritma mnogo je slo eniji.


z
Slagle i Dixon pokazali su 1969. godine da alfa-beta algoritam mora da ispita

vi e od 2n[d/2] 1 zavr nih cvorova uniformnog stabla stepena n i dubine


s
s
d, ali da u najlo ijoj situaciji mo e da ispita i svih nd [?]. Knuth i Moore su
s
z
1975. godine [?] dokazali da faktor grananja za jednu pojednostavljenu verziju
algoritma alfa-beta (bez dubokih odsecanja) pripada klasi funkcija O(n/ log n).
Kona an odgovor na pitanje o faktoru grananja alfa-beta algoritama daje slede e
c
c
teorema Judea Pearl-a iz 1982. godine [?].
2 Ukoliko je ograni eno vreme raspolo ivo za celu partiju, program mora i da ga ekonomi no
c
z
c
deli na procenjeni broj poteza.
3 Prva iteracija, za gotovo sve igre i na gotovo svim ra unarima, mo e biti zavr ena u deli u
c
z
s
c
sekunde.

8.5 Zavr nica


s

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 ine xn + x 1 = 0.
c
Za n 1000 vrednost
nosti n3/4 , tj.

n
1n

R =

pribli no je jednaka (0.925)n0.747 i, grubo, vredz

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

Posledicu navedene teoreme je i slede e, izuzetno va no tvrdenje [?]).


c
z
Teorema 8.2 Alfa-beta algoritam je asimptotski optimalan algoritam za pretra ivanje
z
stabla igre.

Navedeno tvrdenje zna i da ne postoji algoritam za pretra ivanje stabla


c
z

igre koji, u op tem slu aju, asimptotski ispituje manje zavr nih cvorova nego
s
c
s
algoritam alfa-beta. Algoritmi, koji su opisani u prethodnom delu teksta i

koji predstavljaju unapredenja algoritma alfa-beta u praksi zaista naj e ce daju


c s
bolje rezultate nego algoritam alfa-beta i to je uslovljeno prirodom stabla igre

i funkcijom koja ocenjuje zavr ne cvorove (koja nije slu ajna). Ipak, faktori
s
c
grananja ovih algoritama se ne razlikuju od faktora grananja alfa-beta algo
ritma i u op tem slu aju oni ne garantuju manje ispitanih zavr nih cvorova
s
c
s
stabla nego algoritam alfa-beta.
U praksi, faktor grananja alfa-beta algoritma za ve inu diskretno-vrednosnih
c
stabala jednak je R = n1/2 .

8.5

Zavr nica
s

U igrama kao sto je sah zavr nica se, po svojim karakteristikama i po znans
jima koje se koriste, bitno razlikuje od sredi njice, pa iziskuje i posebne priss
tupe. U nekim od takvih igara, i u zavr nici se uspe no mogu koristiti algos
s
ritmi i tehnike koje se koriste u sredi njici, ali uz kori cenje posebne ili vi e
s
s
s
posebnih funkcija evaluacije. U onim drugim igrama, re enja koja se zasnivaju
s
na dubinskom pretra ivanju ne daju dobre rezultate u zavr nici jer kvalitetna
z
s
igre iziskuje jako veliku dubinu pretra ivanja. Problem zavr nice je jo te i
z
s
s z
ako se postavi zahtev za korektnom ili optimalnom igrom/taktikom4 . Ukoliko
se, tehnikama koje se koriste u sredi nici, sistematsko pretra ivanje vr i do
s
z
s

zavr nih cvorova time se obezbeduje optimalna strategija (naravno, za ve inu


s
c
igara to je u praksi nemogu e izvesti). Tako, na primer, optimalnu igru u
c

sahovskoj zavr nici prakti no je nemogu e obezbediti (za uobi ajena vremens
c
c
c
ska ograni enja), jer su mogu e zavr nice u kojoj igra ima dobijenu pozic
c
s
c
ciju, ali ne mo e da matira protivnika u manje od dvadeset poteza, pa takva
z
4 Za

taktiku ka emo da je korektna ukoliko u dobijenoj poziciji sigurno vodi do pobede i ukoliko
z
pri (teorijskoj) remipoziciji sigurno vodi bar remiju. Za taktiku ka emo da je optimalna ukoliko u
z
dobijenoj poziciji vodi pobedi u najmanjem broju poteza, odnosno ukoliko u izgubljenoj poziciji
poraz maksimalno odla e. O igledno, ako je taktika optimalna, onda je i korektna, ali ne va i
z
c
z
obratno.

142

8 Programiranje logi kih igara


c

zavr nica za optimalnu igru zahteva dubinu pretra ivanja ve u od dvadeset.


s
z
c
Sli ni problemi va e i za korektnu taktiku.
c
z
Neprimenljivost dubinskog pretra ivanja u zavr nici uslovljava razvoj kvalz
s

itativno novih tehnika prilagodenih konkretnim igrama. Neke od njih zasnovane su na tehnikama koje se koriste u re avanju problema (u razli itim
s
c
domenima ve ta ke inteligencije) ili u automatskom dokazivanju teorema. Kako
s c
u ovoj problematici (jo ) nisu data op ta valjana re enja, kako postoje a re enja
s
s
s
c
s

predstavljaju primene citavih matemati kih teorija na domen igara, u nastavku


c

ce biti opisani samo neki od algoritama i ideja koji se mogu ekasno primenji
vati u automatskom izboru poteza u sahovskim zavr nicama.
s

8.5.1

Skupovi pozicija kao klase ekvivalencija

M.A.Bramer (Faculty of Mathematics, Milton Keynes, England) je 1975. (v. [?])


fomulisao slede i op ti algoritam za zavr nicu:
c
s
s
(a) generi i skup svih legalnih poteza skup Q;
s
(b) odaberi najbolje ocenjeni elemenat skupa Q element q;
(c) odigraj potez q;
Klju ni korak algoritma (korak (b)) zasnovan je na slede oj ideji: neka je
c
c
skup Q skup svih regularnih pozicija u igri i neka je svaka od tih pozicija
svrstana u ta no jedan od podskupova koji razla u Q (to razlaganje deni e se
c
z
s
u skladu sa prirodom konkretne igre tako da istom skupu pripadaju su tinski
s

sli ne pozicije npr. u sahu, sve pozicije KPK); svakom od tih skupova (odnosno
c
klasa ekvivalencije) pridru ena je jedinstvena ocena i jedinstvena funkcija evalz
uacije. Ocenjivanje koje se pominje u koraku (b) Bramerovog algoritma svodi
se na sabiranje ocene klase pozicija i ocene pozicije koja toj klasi pripada. Na

taj na in ocenjuju se svi legalni potezi iz datog cvora i to bez ikakvog prec
tra ivanja preko dubine 1. Kao najbolji bira se potez kojem odgovara naz
jve a zbirna ocena. Opisani algoritam ima brojne varijacije (uklju uju i varic
c c

jacije uporedivanja elemenata iz razli itih klasa ekvivalencije, provere izabrac


nog poteza pretra ivanjem u dubinu itd.).
z
Bramerov algoritam, razlaganjem skupa problema na klase sli nih probc

lema, u prili noj meri prirodno odgovara covekovom na inu razmi ljanja. Pored
c
c
s

toga, algoritam mo e biti i veoma ekasan, jer poredenje poteza vr i po klju nim
z
s
c

parametrima za konkretnu zavr nicu (npr, u sahu, po rastojanju izmedu dva


s
kralja), a ne po op tim kriterijumima koji se koriste u sredi nici. Algoritam zas
s
hteva kompleksno denisanje svih relevantnih klasa pozicija u zavr nici i svih
s
odgovaraju ih funkcija evaluacije, ali je i pored toga verovatno najprihvatljivije
c
i naj e ce kori ceno re enje za automatski izbor poteza u zavr nici.
c s
s
s
s

8.5.2

Tekstovi saveta

Jedan od koncepata koji se primenjuju u sahovskim zavr nicama je i tzv. kons


cept tekstova saveta (eng. advice texts; autor Ivan Bratko, Ljubljana, Slovenija;
v. [?]). Navedimo, kao ilustraciju, tekst saveta za zavr nicu KRK kralj i top
s
protiv kralja:

8.6 Implementaciona pitanja

143

1. ,,MAT: Proveri da li je mogu e matirati protivnika u dva poteza;


c

2. ,,STEZANJE: Ako (1) nije mogu e, pronadi na in da topom smanji


c
c
s
prostor na tabli dostupan protivni kom kralju;
c

3. ,,PRIBLIZAVANJE: Ako (1) i (2) nije mogu e, pronadi na in da svog


c
c
kralja pribli i protivni kom;
zs
c

4. ,,ZADRZAVANJE: Ako nisu primenljivi delovi saveta (1), (2) i (3), pronadi
potez koji zadr ava trenutno stanje u smislu (2) i (3) (tj. odaberi potez
z

cekanja);
5. ,,RAZDVAJANJE: Ako nisu primenljivi delovi saveta (1), (2), (3) i (4),

pronadi potez kojim se dobija pozicija u kojoj top razdvaja dva kralja,
bilo vertikalno ili horizontalno.

Nedostatak koncepta ilustrovanog navedenim primerom je u tome sto iziskuje


posebne tekstove saveta za sve su tinski razli ite zavr nice. Pored toga, za
s
c
s
sve tipove zavr nica nije jednostavno (ili nije mogu e) napraviti koncizan i
s
c
ekasan tekst saveta.

8.6

Implementaciona pitanja

U ovom poglavlju bi e re i o polaznim pitanjima u pravljenju programa za


c
c

logi ke igre: o strukturama podataka koje se koriste, o njihovim medusobnim


c

vezama i organizaciji na nivou programa. Takode, bi e re i i o proveri legalc


c
nosti (korektnosti) poteza i o generatorima legalnih poteza. Izbor re enja ovih
s
problema od klju ne je va nosti za svaki pojedina ni program i on determini e
c
z
c
s

gotovo citav koncept programa.


Kao kod gotovo svih oblasti programiranja, i kod programiranja igara izbor
struktura podataka je naj e ce pitanje od izuzetne va nosti. Od pravilnog izbc s
z
ora struktura podataka neposredno zavisi ne samo jednostavnost programa,
ve i njegova ekasnost. Pored toga, dobra po etna organizacija podataka
c
c

cesto prirodno odreduje citav koncept programa i re avanje mnogih drugih


s
su tinskih problema.
s
U programima za ve inu logi kih igara, zbog velikog broja poteza koje je
c
c
potrebno ispitivati, neophodna je velika brzina izvr avanja pojedinih modula
s
(i pored sve br ih ra unara). Zato je potrebno podatke organizovati tako da
z
c

izra unavanja (u sirem smislu te re i) koja se koriste budu sto jednostavnija


c
c
i br a. U tom smislu, kao dobar okvir name e se organizacija podataka koja
z
c
se oslanja na bitovsku aritmetiku (umesto na celobrojnu ili realnu). I za sva
izra unavanja po eljno je koristiti bitovsku aritmetiku, a tamo gde je to nemogu e
c
z
c
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 igledno, u
c
neposrednoj vezi sa strukturom koja opisuje tablu. Tablu igre nm u programu

mo emo opisati kao tabelu, odnosno matricu nm ciji su elementi tipa char ili
z
int5 . U skladu sa navedenom idejom o upotrebi bitovske aritmetike, mo e se
z
5 U daljem tekstu cemo, kada govorimo o nekim konkretnim realizacijama na ra unaru, ako ne

c
naglasimo druga ije, podrazumevati da se radi o re enjima u okviru programskog jezika C.
c
s

144

8 Programiranje logi kih igara


c

kao prihvatljivo re enje za opis table izabrati i niz bitovskih matrica. Tako npr.
s

u sahu mo e se za svaki tip gura (i to za oba igra a) koristiti po jedna bitovska


z
c
tabela 8 8 u kojoj bi vrednost 1 ozna avala da igra na tom polju ima guru
c
c
tog tipa, a vrednost 0 sve ostale mogu nosti. Na taj na in jedna tabela 8 8
c
c

bila bi zamenjena sa 12 (svaki igra ima po sest tipova gura) tabela 8 8 ciji
c

su elementi bitovskog tipa. Dodatna pogodna okolnost u ovom pristupu je sto


opisana bitovska tabela mo e da se opi e jednostavno kao niz osam karaktera
z
s
(jer tipu karakter odgovara jedan bajt, odnosno osam bita). Ovakav pristup
(i analogni u drugim igrama), mada na prvi pogled mo da komplikovaniji,
z
omogu ava brojna jednostavna i brza re enja kod provere legalnosti poteza,
c
s
generisanja legalnih poteza i sl.
Struktura koja opisuje potez treba da sadr i informacije dovoljne da bi se
z
potez odigrao, ali po eljno je (mada ne i neophodno) i da bi se eventualno
z

vratio. Kod jednostavnih igara, kao sto je npr. igra iks-oks dovoljne su informacije o tome koji je igra potez odigrao6 i na kojem polju. Kod igre reversi,
c
to vi e nisu dovoljne informacije, jer na osnovu njih ne mo e biti vra en potez.
s
z
c
Naime, na osnovu informacije o igra u i polju ne mo e se rekonstruisati pozic
z
cija pre tog poteza, pa struktura koja opisuje potez mora da sadr i i listu zetona
z

koji pri tom potezu menjaju boju. Kod saha je situacija jo slo enija, jer gure
s
z
se pomeraju (a ne dolaze niotkuda kao u igrama iks-oks i reversi), pa pored
oznake igra a, struktura koja opisuje potez mora da sadr i informacije i o poc
z
laznom i o odredi nom polju. Pored toga, radi mogu nosti vra anja poteza,
s
c
c
ta struktura mora da sadr i i informaciju o (eventualno) pojedenoj guri, o
z
(eventualno) izvedenom pe aku (i o guri u koju je promovisan), kao i ins

formaciju o (eventualno) primenjenom pravilu en-passant7 . Na in na koji ce


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 anja poteza i sli ne svodi e se na jednosc
c
c
tavne i brze logi ke operacije AND, OR, XOR, NOT i njihove kombinacije.
c
Program za igru mo e biti tako koncipiran da se potezi koji se odigravaju
z

ne pamte niti povezuju na bilo koji na in. Medutim, ukoliko se zeli mogu nost
c
c

vra anja poteza (i ako je ta mogu nost pripremljena pravilnim izborom strukc
c
ture koja opisuje potez tako da sadr i sve potrebne informacije), potezi se
z
tokom partije sme taju u povezanu listu (LIFO tipa, tj. stek). Pored toga, ukos
liko se zeli i mogu nost ponovnog reprodukovanja partije ili njenog memoc

risanja, poteze tokom partije treba sme tati u dvostruko povezanu listu.
s
Na nivou programa, opisane strukture treba da budu organizovane tako

da omogu avaju igru izmedu dva igra a, kao i mogu nost da program zameni
c
c
c
bilo kog igra a (u celom toku partije, u pojedina nom potezu ili samo za dac
c
vanje preporuke).
Provera legalnosti poteza vr i se u skladu sa pravilima pojedine igre, a u
s
konkretnom programu, i u skladu sa izabranim strukturama podataka. Na

samom po etku, naglasimo da pravimo razliku izmedu termina mogu i potezi


c
c
i legalni potezi: mogu im potezima nazivamo one koji su legalni u bar jednoj
c
regularnoj poziciji igre.
Ako sam program u estvuje u partiji kao jedan od igra a i ako treba da
c
c
6 Podatak o tome koji je igra odigrao potez cesto nije neophodan, jer se potezi prvog i drugog

c
igra a smenjuju naizmeni no.
c
c
7 Rokade se mogu opisati samo preko poteza kralja, pa nije potrebno da informacija o rokadi
bude sadr ana u strukturi potez.
z

8.6 Implementaciona pitanja

145

odabere svoj potez, koristi se tzv. generator legalnih poteza. Pre svega u
strategijama koje se koriste u sredi njici partije, vr i se pretra ivanje legalnih
s
s
z
poteza i po nekom kriterujumu bira se najbolji potez. Kako se pri tome ide
i po nekoliko poteza u dubinu, o igledna je neophodnost da generator legalc
nih poteza (koji se oslanja na modul za proveru legalnosti) radi izuzetno brzo.

Moduli za proveru legalnosti i generisanje poteza treba, dakle, da budu sto je


mogu e jednostavniji i br i. Ukoliko izabrane strukture podataka to dozvolc
z
javaju, po eljno je da ovi moduli rade koriste i bitovsku aritmetiku.
z
c
Po eljno je da se legalni potezi generi u cikli no tj. da se za svaki legalan
z
s
c
potez mo e jednozna no odrediti slede i legalan potez. Ovo je potrebno kako
z
c
c
bi se obezbedilo brzo ispitivanje svih legalnih poteza bez obzira na to od kojeg
poteza je ispitivanje po elo. Takva organizacija legalnih poteza bi e kori cena u
c
c
s

algoritmima za sredi njicu partije, o cemu ce biti re i u narednim poglavljima.


s
c

146

8 Programiranje logi kih igara


c

Glava 9

Genetski algoritmi
Genetski algoritmi (GA) su familija op tih heuristi kih algoritama globalne
s
c

pretrage zasnovanih na Darvinovoj ideji evolucije. Oni pripadaju siroj grupi


evolucionih algoritama koji koriste tehnike inspirisane evolucionom biologi

jom, kao sto su nasledivanje, mutacija, selekcija, ukr tanje itd. Genetski algos
ritmi se mogu koristiti za nala enje ta nog ili pribli nog re enja nekog probz
c
z
s
lema optimizacije ili pretrage. Mada je jo pedesetih godina dvadesetog veka
s
bilo ra unarskih simulacija zasnovanih na evoluciji, smatra se da je moderne
c
genetske algoritme uveo D on Holand sedamdesetih godina dvadesetog veka
z
[?], a postali su popularni kasnih osamdesetih godina.
Tokom prethodnih dvadesetak godina ostvaren je veliki napredak u razvoju

genetskih algoritama. Genetski algoritmi se uspe no primenjuju na sirokom


s

skupu problema, cesto NP-kompletnih ili te ih problema, za koje ne postoje


z
ekasna re enja. Neki od tih problema su problem nala enja najkra eg puta
s
z
c
u grafu, problem trgova kog putnika, logi kim igrama itd. Genetski algoritmi
c
c
imaju uspe ne primene u ekonomiji, tehnici, bioinformatici, hemiji, zici itd.
s
Popularnost genetskih algoritama poti e iz njihove uspe nosti, ali i jednosc
s
tavnosti. Naime, ideje na kojima su genetski algoritmi zasnovani su jednostavne za razumevanje i implementiranje, a daju op ti sistem pretrage primens
jljiv na veliki broj problema. Uporedo sa nala enjem brojnih novih primena i
z

unapredivanjem algoritma, razvijaju se i teorijski osnove genetskih algoritama,


ali jo uvek sa nedovoljno uspeha.
s
Genetski algoritmi uspe no se primenjuju u optimizacionim problemima
s

u kojima postoji vi e lokalnih ekstremuma. Ipak, iako cesto nalaze globalne


s
eksremume, za genetske algoritme ne postoji nikakva garancija o tome da li je

u pitanju lokalni estremum niti o tome sa kolikom gre kom je odredeno re enje.
s
s

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 ivljavaju
z

i ostavljaju potomstvo koje je, naj e ce isto tako ili bolje prilagodeno okolini.
c s

Svaka celija svakog zivog organizma sadr i hromozome. Svaki hromozom


z

sadr i skup gena blokove DNK. Svaki gen odreduje neku osobinu orgaz

nizma. Familija gene se cesto naziva genotip, a familija osobina fenotip. Re-

148

9 Genetski algoritmi

produkcija organizama uklju uje kombinovanje gena roditelja i, pored toga,


c

male koli ine mutacije. Jedinka mo e biti manje ili vi e prilagoden okolini.
c
z
s

Jedinka koja je bolje prilagoddena okolini u kojoj zivi ima ve u verovatno u


c
c

pre ivljavanja i ostavljanja potomstva, a time i preno enja svog genetskog maz
s

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

organizama) tako da bude sto bolje prilagoden okolini.

9.2

Osnovni genetski algoritam

Genetski algoritmi se implementiraju kao ra unarska simulacija u kojoj popc


ulacija apstraktno reprezentovanih jedinki (nazvanih hromozomi ili genotip)
koje su kandidati za re enje za optimizacioni problem (to mo e biti numeri ka
s
z
c
vrednost, matemati ka funkcija, put u grafu itd.), treba da se postupno pric
bli ava boljim re enjima. Jedinke su obi no reprezentovane nizovima nula
z
s
c
i jedinica, ali su mogu e i druge reprezentacije (za probleme u kojem binac
rna reprezentacija nije pogodna). Postupak se odvija kroz generacije. Po etna
c
generacija obi no cine slu ajno generisane jedinki ali mo e da se zasniva i na
c
c
z
jedinkama koje su (grubi) rezultat neke druge optimizacione metode.
Obi no u svakoj generaciji postoji isti broj jedinki i za svaku od njih se
c

ra una njen kvalitet (analogon prilagodenosti okolini). Funkcija koja pridru uje
c
z

te vrednosti jedinkama naziva se funkcija prilagodenosti, funkcija kvaliteta, funkcija


evaluacije1 ili funkcija cilja. Ova funkcija ima klju nu ulogu u algoritmu.
c

Iz jedne generacije se stohasti ki, na osnovu vrednosti funkcije prilagodenosti,


c

biraju jedinke (sa ve om verovatno om se biraju one kvalitetnije) koje ce biti


c
c
prenete u slede u generaciju i biti iskori cene za stvaranje novih jedinki (poc
s
tomstva). Ovaj postupak izbora jedinki se naziva selekcija. Nad izabranim
jedinkama primenjuju se genetski operatori ukrtanja2 i mutacije i tako dobis
jaju nove jedinke. Ukr tanjem se od dve jedinke dobija nova (ili dve nove) sa
s
genetskim materijalom koji je dobijen neposredno od roditelja, tj. od polaznih
jedinki. Mutacijom se modikuje deo polazne jedinke (i ona opona a mutacije
s
koje se u prirodi javljaju pod uticajem spoljnih faktora). U svakoj generaciji,
dakle, dolazi do rekombinacije gena zbog koje se javlja sli nost sa roditeljskim
c

jedinkama, ali i razli itost medu jedinkama iste generacije. Generalno, neke
c
jedinke u novoj generaciji mogu biti bolje ali neke mogu biti lo ije od jedinki
s

iz prethodne generacija, ali se o ekuje da se prose na prilagodenost popravlja.


c
c
Tako dobijena nova generacija koristi se za slede u iteraciju algoritma.
c
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 a
c

najkvalitetnija jedinka ima zadovoljavaju u prilagodenost.


c
Op ti genetski algoritam prikazan je na slici .
s
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 enjem koji ima u biologiji.
c

9.3 Reprezentacija jedinki

149

Algoritam: Opti genetski algoritam


s
Ulaz:
Izlaz: najkvalitetnija jedinka u tekuoj populaciji
c
1. Generii poetnu populaciju potencijalnih reenja;
s
c
s
2. Izraunaj prilagoenost svake jedinke u populaciji;
c
3. Izvravaj sledeu petlju sve dok nije zadovoljen uslov zaustavljanja:
s
c
Izaberi iz populacije skup jedinki za reprodukciju;
Generii novu generaciju, primenivi nad izabranim jedinkama
s
s
proces reprodukcije (tj. genetske operatore ukrtanje i mutaciju);
s
Izraunaj prilagoenost novogenerisanih jedinki;
c
Zameni najloije jedinke u populaciji novogenerisanim jedinkama.
s
4. vrati najkvalitetniju jedinku u tekuoj populaciji
c
Figure 9.1: Op ti genetski algoritam
s
Da bi navedeni op ti algoritam bio specikovan potrebno je denisati reprezentaciju
s
domena tj. skupa jedinki i funkciju kvaliteta.
Postoje mnoge varijante genetskih algoritama, pa i navedeni op ti algoris

tam takode mo e biti variran. Na primer, mogu e je ne prenositi jedinke iz


z
c
jedne generacije u drugu, ve citavu novu generaciju dobiti ukr tanjem od izc
s
abranih 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 e
z
da opi e mogu e re enje razmatranog problema i da se nad njim deni u genets
c
s
s
ski operatori (ukr tanje i mutacija). Genetski operatori treba da budu denisani
s
tako da se njima ne dobijaju jedinke koje ne predstavljaju mogu a re enja (na
c
s
primer, nelegalne puteve u grafu), jer bi one samo naru avale performanse als
goritma. Pogodno odabrana reprezentacija mo e bitno uticati na ekasnost
z
algoritma.

9.3.1

Binarna reprezentacija

Naj e ce i najuspe nije kori cena reprezentacija jedinki je u vidu nizova bitova.
c s
s
s
Svaki bit u takvoj reprezentaciji zovemo gen. Dublja priroda binarne reprezentacije
zavisi od konkretnog problema. Na primer, ako je du ina hromozoma n (bitova)
z
i ako je prostor mogu ih re enja interval realnih brojeva [a, b], onda je potrebno
c
s

uspostaviti vezu izmedu nizova n bitova i realnih brojeva iz datog intervala.

Tako ce binarna reprezentacija 000 . . . 0 odgovarati broju a, a binarna reprezentacija


n

150

9 Genetski algoritmi

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


n

odgovara realni broj


a+

x
(x a)
2n 1

S druge strane, realnom broju x iz intervala [a, b] pridru ujemo vektor koji
z
predstavlja binarnu reprezentaciju broja
xa n
(2 1) .
ba
Primer 9.1 Pretpostavimo da naftnu platformu treba postaviti na pogodnom mestu na

putu izmedu ta aka A i B, koji je du ine 5000m. Lokacija platofrme je pogodnija ukoc
z
liko na tom mestu postoje ve e rezerve nafte. U biranju lokacije mogu e je meriti posc
c

toje e rezerve nafte na bilo kojoj ta ki izmedu A i B. Mogu a reenja mogu se reprezenc
c
c s
tovati nizovima bitova du ine 10, tj. brojevima od 0 do 1023. Ta ki A tada odgovara
z
c
broj 0 i reprezentacija 0000000000, a ta ki B broj 1023 i reprezentacija 1111111111.
c
Ta ki C na rastojanju 1320m od ta ke A odgovara vrednost 1023 (1320/5000) 270
c
c
i reprezentacija 0100001110, a ta ki D na rastojanju 3128m od ta ke A odgovara vredc
c
nost 1023 (3128/5000) 640 i reprezentacija 1010000000.

A (0000000000)
0

1000

100

D (1010000000)

C (0100001110)
1320

200 270 300

2000

400

3000 3128

500

600 640 700

B (1111111111)
4000

800

5000

900

1000

Za vrednost funkcije prilagodenosti jedne ta ke mo e se uzeti rezerva nafte izmerc


z
ena u toj ta i.
c

9.4

Funkcija prilagodenosti

Funkcija prilagodenosti daje ocenu kvaliteta jedinke. Ukoliko je zadatak odred


iti maksimum neke funkcije, onda je prirodna funkcija prilagodenosti s ma
a

ta funkcija. Pogodan izbor funkcije prilagodenosti je od izuzetne va nosti


z

9.5 Inicijalizacija i zaustavljanje

151

za ekasnost algoritma. Ne postoje nikakvi op ti uslovi koje funkcija pris

lagodenosti treba da zadovoljava (sem da je denisana za sve mogu e jedinke),


c

mada je algoritam cesto ekasniji za funkcije koje zadovoljavaju neke speci ne


c

uslove. Sto je vrednost funkcije prilagodenosti za neku jedinku ve a, to ce


c
bit ve a verovatno a da se ta jedinka koristi za generisanje slede e generacije.
c
c
c
Tokom rada algoritma (tj. tokom ,,procesa evolucije) generi u se nove gens

eracije, pri cemu se o ekuje da je ukupna prilagodenost (pa i prose na pric


c

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 no ni neprekidna, ni diferenz

cijabilna. Genetski algoritam mogu e je primeniti tako da se za funkciju prilagodenosti


c
koristi upravo funkcija f , a da se za reprezentaciju koristi bitovska reprezentacija (na
na in opisan u poglavlju 9.3.1). Ukoliko je potrebno odrediti minimum funkcije f (x),
c

onda bi za funkciju prilagodenosti mogla da se koristi funkcija f .

9.5

Inicijalizacija i zaustavljanje

Populaciju jedinki jedne generacije, ukoliko se koristi bitovska reprezentacija,

cini vektor binarnih vektora. U toku re avanja jednog problema, obi no sve
s
c
generacije imaju isti broj jedinki. Taj broj, veli ina populacije, je parametar
c

algoritma i on je cesto nekoliko desetina ili stotina.


Proces inicijalizacije, tj. proces generisanja po etne populacije je jednostac

van. Naj e e se po etna populacija generi e slu ajno (tako da pokriva citav
s c
c
s
c
prostor pretrage). Ukoliko se koristi bitovska reprezentacija, jedinke po etne
c
generacije se generi u kao slu ajni brojevi u intervalu [0, 2n 1], gde je n du ina
s
c
z
hromozoma u izabranoj reprezentaciji. Dodatno, u po etnu populaciju mogu
c
biti dodate neke speci ne jedinke (na primer, iz delova prostora pretrage za
c

koje se veruje da sadr i optimalna re enja) ili citava po etna populacija mo e


z
s
c
z
biti generisana koriste i neki drugi optimizacioni metod.
c

9.6

Selekcija

Selekcija obezbeduje cuvanje i preno enje dobrih osobina populacije (tj. dos
brog genetskog materijala) na slede u generaciju. U svakoj generaciji, deo
c
jedinki se izdvaja za reprodukciju i generisanja nove generacije. Izdvajanje

c
jedinki koje ce u estovavati u reprodukciji zasniva se na funkciji prilagodenosti

i, generalno, prilagodenije jedinke imaju ve u verovatno u da imaju potomc


c
stvo. U najjednostavnijim pristupima biraju se jedinke sa najve om vredno cu
c
s

funkcije prilagodenosti. U drugim pristupima se se jedinke biraju slu ajno,


c

ali sa verovatno ama koje su izvedene iz prilagodenosti, pri cemu je mogu e


c
c

da budu izabrane i neke lo ije prilagodene jedinke (to mo e da pomogne u


s
z
odr vanju genetske raznolikosti i, dalje, u spre avanju prerane konvergencije
z
c
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
joj se najbolja jedinka (ili nekoliko najboljih jedinki) u generaciji stiti od eliminisanja ili bilo kakvih izmena i takva prenosi u slede u generaciju.
c

152

9 Genetski algoritmi

9.6.1

Ruletska selekcija

Ruletska selekcija (eng. roulette wheel selection) je proces selekcije u kojem

ve e sanse da u estvuju u reprodukciji imaju prilagodenije jedinke.


c
c

Ako je f (i) vrednost funkcije prilagodenosti za jedinku i, a N broj jedinki u

populaciji, verovatno a da ce jedinka i biti izabrana da u estvuje u reprodukciji


c
c
jednaka je
f (i)
pi = N
j f (j)
Naziv ruletske selekcije poti e od analogije koje se mo e napraviti sa rulec
z

tom. Ukoliko polja ruleta imaju sirine proporcionalne verovatno ama jedinki
c
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 a tabela prikazuje verovatno e izbora


c
c
jedinki u ruletskoj selekciji:
jedinka

prilagodenost
verovatno a izbora
c

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 a slika ilustruje, u formi ruleta, verovatno e izbora koje su pridru ene jedinkama.
c
c
z

0.05

0.03

d c

0.20

0.15

b
a

0.12

0.05

0.10

g
0.30

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 e) po vrednosti funkcije prilagodenosti i onda verovatno e izbc
c
ora mogu da im budu pridru ene po nekoj (opadaju oj) distribuciji.
z
c

9.7 Reprodukcija i genetski operatori

153

U ruletskoj selekciji mogu e je da jedna jedinka bude vi e puta izabrana


c
s
da u estvuje u slede oj generaciji i reprodukciji. Prevelik broj ponavljanja istih
c
c
jedinki lo e uti e na performanse algoritma.
s
c

9.6.2

Turnirska selekcija

U turnirskoj selekciji, jedinke ,,odigravaju turnire u kojima ve e sanse za pobedu


c

(tj. za prelazak u narednu generaciju) imaju one sa boljom prilagodeno cu.


s
Veli ina turnira k i verovatno a p su parametari procesa turnirske selekcije.
c
c
Za jedan turnir bira se slu ajno k jedinki iz populacije. Nakon toga, one se
c

sortiraju po vrednosti funkcije prilagodenosti i i-ta jedinka u tako sortiranom


nizu se bira sa verovatno om p(1 p)i1 .
c
Ukoliko se u procesu selekcije koristi ve a veli ina turnira, onda nekvalitetne
c
c

jedinke imaju manje sanse da budu izabrane. Selekcija sa veli inom turnira 1
c
ekvivalentna je slu ajnoj selekciji. U deterministi koj turnirskoj selekciji (p = 1)
c
c
bira se najbolja jedinka u svakom turniru.
Jedinkama koje su jednom izabrane mo e se zabraniti u estvovanje u daljim
z
c
turnirima.
Turnirska selekcija se mo e ekasno implementirati na paralelnim arhitekz
turama.

9.7

Reprodukcija i genetski operatori

U reprodukciji u estvuju jedinke koje su izabrane u procesu selekcije. Proces


c
reprodukcije kontroli u dva genetska operatora: ukr tanje i mutacija.
s
s

9.7.1

Ukr tanje
s

U ukr tanju (eng. crossover) u estvuju dve jedinke koje se nazivaju roditelji.
s
c
Rezultat ukr tanja je jedna nova jedinka ili dve nove jedinke koje zovemo deca.
s

O ekivano je da deca nasleduju osobine roditelja, uklju uju i njihovu prilagodenost,


c
c c

pa i da imaju bolju prilagodenost od svojih roditelja.


Postoji vi e jednostavnih varijanti ukr tanja kada se koristi binarna reprezentacija.
s
s
U jednoj varijanti dovoljno je izabrati ta ke prekida i prekombinovati nic

zove bitova jedno dete deo od jedne ta ke prekida do slede e nasleduje od


c
c
jednog roditelja, a naredni deo od drugog. Ukr tanje mo e koristiti proizvols
z
jan broj ta aka prekida (s tim da je manji od du ine hromozoma). Slike 9.2 i 9.3
c
z
ilustruju ukr tanje sa jednom i sa dve ta ke prekida.
s
c
roditelj 1
roditelj 2
ta ka prekida
c
dete 1
dete 2

Figure 9.2: Ukr tanje sa jednom ta ke prekida


s
c

154

9 Genetski algoritmi

roditelj 1
roditelj 2
ta ke prekida
c
dete 1
dete 2

Figure 9.3: Ukr tanje sa dve ta ke prekida


s
c
Uniformno ukr tanje tipi no daje dva deteta. Kod ovog ukr tanja svaki bit
s
c
s
prvog roditelja se sa verovatno om p prenosi na prvo dete i sa verovatno om
c
c

1 p na drugo dete (pri cemu dete koje nije izabrano nasleduje bit drugog
roditelja). Verovatno a p je obi no jednaka 0.5, ali mo e biti i druga ija.
c
c
z
c
U poluuniformnom ukr tanju, kombinuju se ta no pola bitova koji se razs
c
likuju kod roditelja. Dakle, najpre se ra una Hamming rastojanje (broj razli itih
c
c

bitova) izmedu roditelja i deli se sa dva. Dobijena vrednost daje broj bitova koji

ce se prenositi na decu kao u shemi uniformnog ukr tanja.


s
Ukr tanje se primenjuje na slede i na in: iz skupa jedinki izabranih u pros
c
c
cesu selekcije biraju se dve razli ite i ukr taju sa zadatom verovatno om (obi no
c
s
c
c

izmedu 0.6 i 0.9. Ta ke prekida se biraju slu ajno iz skupa svih mogu ih ta aka
c
c
c
c
prekida.

9.7.2

Mutacija

Mutacija je operator koji u binarnoj reprezentaciji menja jedan ili vi e slu ajno
s
c
odabranih gena. Od jedne jedinke dobija se jedna nova jedinka. Verovatno a
c

da ce neki bit neke jedinke populacije biti promenjen je parametar algoritma i

cesto je izmedu 0.01 i 0.001. Mutacija se primenjuje nakon procesa ukr tanja.
s
Uloga mutacija u genetskim algoritmima je da spre i da jedinke u popc
ulaciji postanu suvi e sli ne i da pomogne u obnavljanju izgubljenog genets
c
skog materijala. Na primer, ukoliko u jednoj generaciji sve jedinke imaju istu
vrednost jednog gena, onda taj gen samo ukr tanjem nikada ne bi mogao da
s

se promeni. Kontrolisano podsticanje genetske raznolikosti mutacijom cesto


omogu ava izbegavanje lokalnih ekstremuma. Mutacije, naime, omogu avaju
c
c

razmatranje novih delova prostrora pretrage u nadi da ce se nai i na globalnim


c
ekstremum. Dovoljno je da se jedna jedinka pribli i globalnom ekstremumu,
z
pa da za nekoliko generacija sve jedinke budu u tom delu prostora pretrage.
Ukoliko je verovatno a mutacije za svaki bit jednaka jedinici, onda se alc
goritam pretvara u slu ajnu pretragu. Ukoliko je ta verovatno a jednaka nuli,
c
c

onda nema mutacije i algoritam ce verovatno brzo dospeti do nekog lokalnog


ekstremuma.

9.8

Zaustavljanje

Genetski algoritam se izvr ava, tj. evolucioni proces stvaranja novih generacija
s
se ponavlja, sve dok nije zadovoljen neki uslov zaustavljanja. Naj e ce se koc s
riste slede i uslovi zaustavljanja:
c

9.9 Parametri algoritma

155

Pronadeno je re enje koje zadovoljava unapred zadate (minimalne) kris


terijume.
Dostignut je zadati broj generacija.

Funkcija prilagodenosti je upotrebljena zadati broj puta.

Vrednost prilagodenosti najboljih jedinki se u nekoliko generacija ne popravlja.


Kombinacija nekoliko uslova.

9.9

Parametri algoritma

Za ve inu varijanti genetskog algoritma potrebno je specikovati veli inu popc


c
ulacije, verovatno u ukr tanja i verovatno u mutacije.
c
s
c
Verovatno a ukr tanja je u direktnoj vezi sa procentom jedinki koje se na
c
s
kraju jedne iteracije elimini u, tako da je dovoljno zadati jedan od njih. Ukoliko
s

je zadata verovatno a ukr tanja, onda ce za svaki par razli itih jedinki iz skupa
c
s
c
dobijenog selekcijom da budu generisani njihovi potomci sa tom verovatno om
c

i sve tako generisane jedinke zameni e najlo ije prilagodene jedinke iz prethodne
c
s
generacije. Ukoliko je zadat procenat jedinki koje se na kraju jedne iteracije eli
mini u (obi no izmedu 25% i 50%), onda se u fazi ukr tanja parovi razli itih
s
c
s
c
jedinki biraju i ukra taju sve dok nije generisano dovoljno jedinki da zameni
s

one koje ce biti eliminisane.

Izbor parametara genetskog algoritma je cesto od klju ne va nosti za njec


z
gove performanse (brzina dola enja do re enja i kvalitet re enja). Optimizoz
s
s
vanje parametara genetskog algoritma je kompleksan problem koji se naj e ce
c s

re ava izvodenjem velikog broja eksperimenata. Za izbor pogodnih params

etara cesto se koriste s mi genetski algoritmi. Parametri genetskog algoritma


a

ne moraju biti ksirani, ve mogu da se menjaju i prilagodavaju tokom rada (na


c
primer, ukoliko su teku e jedinke raznolike, onda treba pove ati verovatno u
c
c
c
ukr tanja, a smanjiti mutaciju, a ukoliko su sli ne onda treba uraditi obratno,
s
c

kako bi se pove ale sanse za pribli avanje globalnom optimumu).


c
z

9.10

Svojstva genetskih algoritama

Genetski algoritmi imaju sirok domen i uspe no se primenjuju na velikom


s

broju optimizacionih problema, cesto onih koji su NP-kompletni ili te i. S


z
druge strane, jo uvek nema mnogo teorijskih rezultata koji govore o svos

jstvima genetskih algoritama, o kvalitetu re enja koja daju, pa cak ni o tome


s
za to su genetski algoritmi uspe ni. U daljem tekstu, bi e re i o nekim dobrim
s
s
c
c
i lo im stranama genetskih algoritama.
s
Funkcija koja se optimizuje. Funkcija f koja se optimizuje mo e biti potpuno
z
proizvoljna i ne mora da zadovoljava nikakve uslove (na primer, da bude

neprekidna ili diferencijabilna). Ipak, cesto nije lako konstruisati odgo


varaju u funkciju prilagodenosti. Genetski algoritmi se ne mogu uspe no
c
s
primeniti na probleme za koje se mo e re i samo da li je ne to re enje ili
z
c
s
s

nije. Dodatno, cesto, posebno u primenama u ve ta koj inteliegenciji (na


s c

156

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

Parametri algoritma. Parametri genetskih algoritama daju mogu nost uspe nog
c
s

prilagodavanja speci nom problemu. No, upravo ta sloboda izbora


c
parametara je istovremeno i pretnja da mogu da budu kori ceni parametri
s
koji daju veoma lo e performanse.
s

Domen genetskih algoritama. Genetski algoritmi primenljivi su na veoma sirok


skup problema. Ipak, uspe no re avanje spe nih problema zahteva izs
s
c

bor pogodne reprezentacije, kao i izbor pogodnih parametara, sto je te ak


z

problem. Stavi e, cak i ako su parametri dobro izabrani, genetski algos

ritam ce naj e ce davati lo ija re enja od pristupa koji je specijalizovan


c s
s
s
za problem koji se re ava. Otuda i zapa anje da su ,,neuronske mre e i
s
z
z
genetski algoritmi drugo i tre e najbolje re enje za skoro bilo koji optic
s
mizacioni problem.
Kvalitet re enja. Ponavljanjem postupka mo e se dobiti ve a pouzdanost re enja.
s
z
c
s

Ukoliko nije nadeno re enje koje je globalni optimum, cesto je nadeno


s
re enje koje je dovoljno dobro. Dodatno, kao rezultat algoritma mo e se
s
z

smatrati neki skup najboljih re enja, sto je cesto veoma pogodno. S druge
s

strane, genetski algoritam ne daje nikakvu garanciju da je pronadeno

re enje globalni optimum. I zaista, genetski algoritmi cesto imaju tens


denciju da idu ka lokalnim optimumima.
Zahtevani resursi. Genetski algoritmi se jednostavno implementiraju, a postoji i mno tvo raznolikih dostupnih implementacija. Iako su algoritmi
s

i implementacije jednostavni, izvr avanje genetskih algoritama je cesto


s
veoma vremenski i memorijski zahtevno.

9.11

Primer primene genetskih algoritama evolucija agenta

Kao sto je ve re eno, genetski algoritmi predstavljaju heuristi ku metodu za


c c
c
optimizaciju funkcija. Kako na ovako apstraktno opisanom domenu nije o igledna
c

sirina primenljivosti genetskih algoritama, u ovom poglavlju bi e dat jedan


c
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
i udesno. Staza je izdeljena na polja. Vo nju je potrebno zavr iti sto br e.
z
s
z
Agent raspola e sa nekoliko akcija prebacivanje u brzu vo nju, prebacivanje
z
z

u sporu vo nju, skretanje ulevo i skretanje udesno. Takode je mogu e da agent


z
c
ne preduzme nikakvu akciju. Bilo koju akciju da preduzme, agent nastavlja da
se kre e (i) napred. Agent raspola e skupom senzora jednim koji meri brzc
z
inu (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 no jedno slobodno
c
polje levo ili desno. U toku kretanja, agent ne mo e skretati ukoliko se kre e
z
c
brzo.

9.11 Primer primene genetskih algoritama evolucija agenta

157

Kako bi vo nja bila sto pre zavr ena, po eljno je da agent ubrza kada su
z
s
z
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 ev od reprezentacije hromozoma. Zarad jedc
nostavnosti, koristi emo modikovanu binarnu reprezentaciju. Svaki senzor
c
kojim agent raspola e mo e da daje dve vrednosti. Stoga agent ne mo e razz
z
z
likovati vi e od 25 = 32 stranja. Neka od tih stanja se ne e pojavljivati u toku
s
c
vo nje (na primer, prepreke i neposredno napred i levo i desno), ali ne e biti
z
c
unapred odba ena radi jednostavnosti kodiranja i dekodiranja hromozoma.
c
Svako od mogu ih stanja predstavlja e jednu poziciju u hromozomu na kojoj
c
c
se bele i akcija koju agent u tom stanju preduzima. Akcije se mogu kodirati cez
lim brojevima od 0 do 4, na primer, 0 ne preduzimati ni ta, 1 ubrzati, 2
s
usporiti, 3 skrenuti levo i 4 skrenuti desno. Na osnovu ovoga, hromozom
agenta koji u svakom stanju samo skre e desno bio bi predstavljen pomo u
c
c

niza od 32 cetvorke. Dekodiranje hromozoma mo e da se realizuje tako sto bi


z

se svakom od senzora dodelio jedan bit pri cemu bi njegova vrednost u slu aju
c
postojanja prepreke bila 0, a u suprotnom 1 i u slu aju sporog kretanja 0, a u
c

suprotnom 1. Ovi bitovi bi se poredali u ksiranom poretku, na primer, brzina,


polje neposredno ispred, dva polja ispred, polje levo i polje desno. Tada bi se
akcija u slu aju brzog kretanja i sa preprekama levo i desno, a bez prepreka
c
na slede a dva polja nalazila zapisana u hromozomu na mestu sa indeksom
c
(10011)2 = 19.
Ukr tanje mo e da bude sa jednom ta kom prekida, a mutacija mo e da se
s
z
c
z

realizuje tako sto bi na svakoj poziciji svakog hromozoma sa nekom unapred


zadatom malom verovatno om trenutna vrednost bila zamenjena nekom slu ajno
c
c
izabranom od preostalih. Time su denisani genetski operatori.
Selekcija mo e da bude jednostavna ruletska.
z
Funkcija koja se optimizuje u ovom slu aju nije eksplicitna, jer se njena
c
vrednost ne mo e izra unati direktno na osnovu samog hromozoma. Stoga
z
c

ce funkcija prilagodenosti da se izra unava simuliranjem pona anja agenta na


c
s
nekoj stazi koja uklju uje sve pomenute aspekte vo nje (skretanje, ubrzavanje,
c
z


itd.). Vo nja ce biti simulirana tako sto ce agenta u svakom koraku da se
z
pomera po jedno polje du staze u pravcu kretanja. Pri tome se u svakom
z

koraku dekodira hromozom i odreduje se akcija koju agent preduzima. Svako

polje koje agent prede sporo boduje se sa 1, a svako polje koje se prede brzo,
boduje se sa 2. Na taj na in ce prilikom selekcije biti favorizovani agenti koji
c
br e prelaze stazu. Kako je najva nije da agent uop te zavr i trku, a tek onda
z
z
s
s
da je zavr i sto br e, svaki agent koji zavr i trku dobija dodatne poene (na
s
z
s
primer, onoliko koliko staza ima polja). Na taj na in se agenti koji zavr avaju
c
s
trku favorizuju u selekciji u odnosu na ostale, pa se evolucija ubrzava ka njima.
Na navedeni na in je zavr eno dizajniranje svih aspekata genetskog algoc
s
ritma.

9.11.1

Implementaciona pitanja

158

9 Genetski algoritmi

Deo III

Ma insko u enje
s
c

Glava 10

Uvod
Ma insko u enje je oblast ve ta ke inteligencije koja se mo e denisati na ras
c
s c
z
zli ite na ine. Jedna denicija bi mogla biti da je to disciplina koja se bavi izc
c
gradnjom prilagodljivih ra unarskih sisitema koji su sposobni da pobolj avaju
c
s
svoje performanse koriste i informacije iz iskustva. Ma insko u enje bi se
c
s
c
moglo denisati i kao disciplina koja se bavi prou avanjem generalizacije i
c
konstrukcijom i analizom algoritama koji generalizuju.
Prva denicija je bli a in injerskom i prakti nom ra unarskom na inu razmi ljanja
z
z
c
c
c
s
sa akcentom na re avanju konkretnih problema i implementaciji. Druga je bli a
s
z

cistom matemati kom razmi ljanju i statistici. Mi se ne emo ograni iti na samo
c
s
c
c
jedan od njih.

Preciznu deniciju je nezahvalno tra iti, kako zbog cestog preklapanja sa


z

drugim disciplinama, tako i zbog cinjenice da se radi o oblasti koja je ponikla iz


nevezanih razmatranja problema u enja u razli itim domenima, bez zajedni ke
c
c
c
teorijske osnove. Iako su se prva teorijska razmatranja pojavila jo kasnih 60s
ih u radovima Golda, univerzalne teorijske osnove su se po ele u vr civati
c
c s
tek tokom 80-ih godina pro log veka. Najva niji teorijski pristupi su Goldov
s
z
model grani nog u enja (learning in the limit), Valiantov PAC (Probably Approxc
c
imately Correct) model i verovatno najkompletnija statisti ka teorija u enja.
c
c

Ma insko u enje je zanimljivo, izmedu ostalog, i zbog svoje te nje da se


s
c
z
pribli i ljudskom u enju po ekasnosti, kao i da ga objasni, odnosno pru i
z
c
z
teorijski model za njega. Naravno, oba cilja su za sada daleko od ostvarenja u
punom smislu.
Neka od najva nijih pitanja ma inskog u enja su:
z
s
c

Sta se mo e nau iti i pod kojim uslovima?


z
c
Kako se pove ava ekasnost u enja u zavisnosti od obima iskustva?
c
c
Koji su algoritmi pogodni za koje vrste problema?
Odgovore na ova pitanja treba tra iti upravo kroz teorijske modele u enja u
z
c
okviru kojih se u ovom pogledu ve do lo do zna ajnih rezultata.
c s
c
Razlog zbog kojeg su prakti ni rezultati prethodili teorijskim bi lako mogao
c

biti taj sto je ova oblast duboko motivisana prakti nim primenama. Postignuti
c
su rezultati u raznim oblastima.

162

10 Uvod

Jedan od zanimljivijih prakti nih rezultata je postignut od strane sistema


c
ALVINN zasnovanog na neuronskoj mre i, krajem osamdesetih godina dvadez
setog veka, koji je nau en da vozi javnim putem u prisustvu drugih vozila bez
c
ljudske pomo i brzinom od oko 110km/h. Uspe no je vozio na putu du ine
c
s
z
oko 140km.

Sistemi za prepoznavanje govora takode koriste ma insko u enje u nekoj


s
c

formi. Sistem Sphinx, takode sa kraja osamdesetih, se oslanja na neuronske

mre e i skrivene Markovljeve modele u prilagodavanju izgovoru razli itih ljudi,


z
c
karakteristikama mikrofona, pozadinskoj buci i sli no.
c
Jedan od najpoznatijih primera primene ma inskog u enja je sistem TDs
c
Gammon za igranje igre Backgammon konstruisan devedesetih godina. Igraju i
c
protiv sebe preko milion partija i nastavljaju i da u i u igri sa ljudskim igra ima,
c
c
c

dostigao je nivo igre u rangu svetskog sampiona. On kombinuje u enje uslovlc


javanjem (eng. reinforcement learning) sa neuronskom mre om koju koristi za
z
internu reprezentaciju nau enog znanja.
c
Jedan od skorijih rezultata je u enje sistema koji kontroli e robotsku ruku
c
s

da citanjem napona mi i a preko povr ine ko e izvodi zeljenje pokrete.


sc
s
z

Poslednjih godina Microsoft razvojni centar u Srbiji radi na razvoju sistema za prepoznavanje rukom pisanog teksta koji su zasnovani na ma inskom
s

u enju. Sistem se trenira na osnovu uzoraka koje su pisali razli iti ljudi. Takode,
c
c

radi se na prilagodavanju sistema rukopisu korisnika. Posebna pa nja je posve ena


z
c
prepoznavanju u specijalizovanim domenima. Neki od njih su prepoznavanje
matemati kih formula, hemijskih dijagrama i arhitektonskih crte a.
c
z

Takode jedna od najskorijih primena ma inskog u enja je sistem koji je u


s
c
stanju da vodi dijalog sa korisnikom u cilju pru anja informacija koje se odnose
z
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 itih ljudi, da razlikuje pozadinsku buku
c
od re i koje korisnik izgovara i sli no. Ovaj sistem se zasniva na u enju uslovlc
c
c
javanjem.

Problemi koji se pri ovome javljaju su razlike izmedu razli itih ljudi, razlike
c
u polo ajima i pokretima ruke u vreme u enja i u vreme kori cenja, zamor
z
c
s
mi i a, znojenje i sli no. U ovom problemu su se pokazali uspe ni pristupi
sc
c
s
bazirani na neuronskim mre ama i metodi potpornih vektora.
z

Koliko god primene ma inskog u enja bile raznovrsne, postoje odredene


s
c

karakteristike zadataka koje se cesto ponavljaju. Stoga je mogu e govoriti o


c

vrstama zadataka u enja koje se cesto sre u. Klasikacija je verovatno naj e ci


c
c
c s
zadatak u enja u praksi. Ona predstavlja prepoznavanje vrste objekata. Na
c

primer da li odredeno elektronsko pismo predstavlja ne eljenu po tu (eng. spam)


z
s
ili ne. Regresija je zadatak u enja u kome objektima odgovaraju vrednosti iz
c

skupa realnih brojeva. Na primer, predvidanje du ine zivota osobe u zavisz

nosti od njenih zivotnih navika (bavljenjem sportom, pu enje, i sli no).


s
c

10.1

Generalizacija i apstrakcija

Deduktivno zaklju ivanje, vodeno zakonima logike, mo e se smatrati osnovnom


c
z
karakteristikom inteligentnog pona avanja. Ovakvo zaklju ivanje jedan je od
s
c
osnovnih na ina zaklju ivanja kod ljudi. Druga karakteristika inteligentnog
c
c

pona anja koja se mo e primetiti i kod zivotinja je prilagodavanje pona anja


s
z
s

10.2 Primer problema u enja


c

163

jedinke okolini u kojoj se ona nalazi. Kroz evolutivne procese, prilagodljivost


se posti e i kod ni ih organizama, ali je ova sposobnost sa ta ke gledi ta ve ta ke
z
z
c
s
s c
inteligencije posebno zanimljiva kod zivotinja i ljudi kod kojih se manifes

tuje u toku zivota jedinke. Kod njih se prilagodavanje posti e u enjem na osz c

novu primera iz iskustva i primenom nau nog znanja u sli nim situacijama u
c
c
budu nosti. Primera radi, za zivi organizam je zna ajno da uo i klju ne karakc
c
c
c

teristike neke situacije ili skupa situacija u kojima preduzimanje neke akcije
dovodi do po eljnih odnosno nepo eljnih posledica po organizam. Prepoznaz
z
vanje sli nih situacija u budu nosti omogu ava organizmu da preduzimanjem
c
c
c
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 e je govoriti o dono enju zaklju aka o nepozc
s
c
natim slu ajevima, na osnovu znanja o nekim drugim, poznatim, slu ajevima.
c
c
Proces u kome se znanje koje va i za neki skup slu ajeva prenosi na neki njegov
z
c
nadskup, naziva se generalizacijom ili induktivnim zaklju ivanjem. Generalizacija
c
predstavlja jedan od osnovnih koncepata ma inskog u enja.
s
c
Koncept generalizacije je direktno povezan sa konceptom apstrakcije. Naime,

da bi generalizacija bila uspe na, odredeni apsekti entiteta o kojima se rezonuje


s
moraju biti zanemareni ukoliko nisu od su tinskog zna aja za generalizaciju.
s
c
Primera radi, ukoliko je potrebno nau iti ve ta ki sistem da prepoznaje rukom
c
s c
pisani tekst i da ga prevodi u elektronski tekstualni zapis, potrebno je da sistem
zanemari speci nosti koje postoje kod razli itih ljudi u visini i nagibu slova ili
c
c
brzini i o trini poteza prilikom pisanja. Kontrola generalizacije i apstrakcije je
s
jedna od klju nih tema u teorijskom razmatranju ma inskog u enja.
c
s
c
Za jednostavan primer generalizacije mo e se uzeti slede i primer. Sistem
z
c
koji prepoznaje rukom pisani tekst bi na osnovu nekoliko primera mogao da
zaklju i da se broj 0 pi e kao elipsa ili krug koji prilikom pisanja mogu evenuc
s
talno biti malo otvoreni. U ovom slu aju, generalizacija je korektna. Za razliku
c
od deduktivnog zaklju ivanja, proces generalizacije ne pru a garancije da su
c
z
zaklju ci ispravni. Tako, na primer, zaklju ak da se broj 1 uvek pi e podvu en
c
c
s
c
crticom potkrepljen nekolicinom takvih primera ne bi bio korektan iako je kao
induktivni zaklju ak mogu . Iako zaklju ci dobijeni generalizacijom ne moraju
c
c
c
biti ta ni, induktivno zaklju ivanje je i dalje veoma zna ajno. To je jedan od
c
c
c
osnovnih na ina za formiranje predstava o okru enju, situacijama ili uzro no
c
z
c
posledi nim odnosima ili formalnije re eno za pravljenje modela podataka iz
c
c
iskustva. Ukoliko su u nekom domenu gre ke u zaklju ivanju prihvatljive, als
c
goritmi induktivnog zaklju ivanja omogu avaju zaklju ivanje i bez temeljnog
c
c
c
poznavanja i kompletnog formalnog opisivanja domena na koji se primenjuju.

Takode, mogu biti ekasniji od algoritama deduktivnog zaklju ivanja.


c

10.2

Primer problema u enja


c

Pretpostavimo da smo zapo eli izgradnju specijalizovanog pretra iva a Interc


z c
neta i da zelimo da omogu imo korisnicima da pretra uju samo ra unarske
c
z
c

clanke. Da bi ovo bilo mogu e potrebno je da sistem bude u stanju da razlikuje


c

clanke iz oblasti ra unarstva od ostaliih clanaka. Mo emo primetiti da se radi


c
z
o problemu klasikacije. Kako bi sistem nau io da ispravno klasikuje, prvo
c

mu je potreban odredeni skup primera koji bi sadr ao kako ra unarske, tako i


z
c

clanke iz drugih oblasti. Recimo da je unapred sakupljeno 3000 clanaka po

164

10 Uvod

Figure 10.1: Plavi krugovi predstavljaju ra unarske clanke, a crveni ostale. X


c
koordinata predstavlja frekvenciju re i ra unar, a koordinta Y predstavlja
c
c
frekvenciju re i datoteka.
c

1500 iz obe klase. Iz obe klase cemo izdvojiti po 500 clanaka kako bismo posle
u enja procenili kvalitet sistema.
c

Da bi sproveli u enje, potrebno je da ove clanke pretstavimo u nekom obc


liku koji je pogodan za algoritam u enja i koji bi mogao na neki na in da
c
c

reprezentuje osnovne karakteristike na osnovu kojih se clanci iz ove dve kategorije mogu razlikovati. Za to nam je potrebna ideja kako bismo razlikovali

s
clanke. O ekivano je da ce u clancima iz ra unarstva biti ce ce pominjani
c
c

ra unarski pojmovi nego u ostalim clancima. To svojstvo bi se moglo iskoristiti


c

za razlikovanje clanaka.
U skladu sa ovim, mo emo nabrojati sve re i iz nekog re nika ra unarske
z
c
c
c

terminologije koje se pojavljuju u svim clancima koje imamo. Svaki clanak


mo emo predstaviti vektorom frekvencija ovih re i. Frekvencija neke re i u
z
c
c

clanku se ra una tako sto se broj pojavljivanja te re i podeli ukupnim brojem


c
c

pojavljivanja svih re i u clanku. Ako je x vektor koji odgovara nekom clanku,


c

onda cemo frekvencije izabranih re i ozna avati sa xi .


c
c
Posmatrajmo ove vektore geometrijski, kao da su ta ke u euklidskom prosc
toru. Jednostavnosti radi, pretpostavi emo da se u re niku nalaze samo dve
c
c

re i ra unar i datoteka.Ukoliko su u clancima iz jedne kategorije ovi


c
c
ra unarski termini visokofrekventni, a u drugim niskofrekventni, ta ke koje
c
c

odgovaraju ra unarskim clancima ce se grupisati dalje od koordinatnog po etka,


c
c

dok ce se ostale grupisati bli e njemu. Pojednostavljen prikaz je dat na slici


z
10.2.

Izmedu ovih ta aka bi se mogla provu i prava koja bi ih razdvajala kao na


c
c

slici 10.2. Ako nam je ova prava poznata, onda za neki nov, nepoznat clanak
mo emo re i da je iz oblasti ra unarstva ukoliko se vektor koji mu odgovara
z
c
c

nalazi sa iste strane prave kao i vektori ra unarskih clanaka koji su nam pozc

nati. U suprotnom bismo smatrali da clanak nije iz oblasti ra unarstva.


c
Jedna ina prave ima oblik
c

10.2 Primer problema u enja


c

165

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

ax + by + c = 0

Neka je f (x) = 1 ukoliko je x clanak iz oblasti ra unarstva i f (x) = 1 u


c
suprotnom. O igledno, funkcija sgn(ax + by + c), gde sgn(t) ozna ava znak
c
c
vrednosti t, pru a informaciju sa koje strane prave se nalazi ta ka (x, y).
z
c
Pronala enje zeljene prave mo emo posmatrati kao pomeranje neke poz
z

lazne prave dok ona ne bude pozicionirana izmedu ta aka koje treba da razdc

vaja. Formalno, da bismo na li razdvajaju u pravu, potrebno je da nademo


s
c
koecijente a, b i c tako da funkcije f (x) i sgn(ax + by + c) budu jednake ili
makar jednake u ve ini slu ajeva. Kako bismo to uradili potrebno je da forc
c

muli emo algoritam u enja koji ce na osnovu podataka koje imamo do i do tih
s
c
c
koecijenata. Algoritam u enja mo e biti slede i:
c
z
c
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 unati sgn(ax + by + c) koriste i trenutne koecijente a,b i c.
c
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 igledno da a uriranje koecijenata u algoritmu koji korisc
z
timo za u enje vodi pobolj anju nau ene funkcije. Pre svega, vrednost mora
c
s
c
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 a,


c
pove avamo koecijente, tako da se vrednost funkcije sgn(ax + by + c) zbog
c
toga pove ava. Analogno u slu aju da je vrednost funkcije f manja. Kad gre ke
c
c
s
nema, vrednost korekcije je 0. Stoga, ovim se funkcija sgn(ax+by+c) pribli ava
z

funkciji f . Takode se prime uje da su korekcije proporcionalne vrednostima x


c

i y, odnosno ve e su za koecijente cija promena mo e vi e doprineti promeni


c
z
s
vrednosti funkcije sgn(ax + by + c) za dati primer. Teorijsko opravdanje za ovaj

postupak le i u tome sto se radi o gradijentnom spustu kojim se minimizuje


z
srednjekvadratno odstupanje funkcije sgn(ax + by + c) od funkcije f .

Kada su koecijenti a,b i c nadeni, za nepoznati clanak je dovoljno videti


sa koje strane prave se nalazi njegov vektor frekvencija re i, odnosno da li je
c
sgn(ax + by + c) jednako 1 ili -1.
Kada je u enje zavr eno, po eljno je proceniti koliko se sistem dobro pona a.
c
s
z
s

Na po etku smo izdvojili 1000 clanaka koje sad mo emo klasikovati. Kad su
c
z

clanci klasikovani kao meru kvaliteta u enja mo emo izra unati udeo dobro
c
z
c

klasikovanih clanaka u ukupnom broju clanaka. Po eljno je da je on sto ve i.


z
c

10.3

Nadgledano i nenadgledano u enje


c

Postoje dve glavne formulacije problema u enja:


c
Nadgledano u enje je pristup problemu u enja koji se odnosi na situacije u
c
c
kojima se algoritmu zajedno sa podacima iz kojih u i daju i zeljeni izlazi.
c

Algoritam treba da nau i da za date podatke (ne nu no trening podatke)


c
z
pru i odgovaraju e izlaze.
z
c
Nenadgledano u enje je pristup problemu u enja koji se odnosi na situacije
c
c
u kojima se algoritmu koji u i pru aju samo podaci bez izlaza. Od algoc
z
ritma koji u i o ekuje se da sam uo i neke zakonitosti u podacima koji su
c c
c
mu dati.
Naravno, ovi drasti no razli iti pristupi se ne odnose na iste vrste probc
c

lema. Primer nadgledanog u enja je ve pomenuta klasikacija clanaka na


c
c
ra unarske i ostale, kod koje su unapred poznati primeri za razli ite kategorije.
c
c
Primer nenadgledanog u enja je takozvano klasterovanje - uo avanje grupa
c
c
na neki na in sli nih objekata kada nemamo prethodno znanje o tome koliko
c
c
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 e izabrati po jedna boja koja bi ga predstavljala i kojom
z
bi bili obojeni svi pikseli koji pripadaju tom klasteru.

10.4

Ciljna funkcija i modeli podataka

Ono sto je potrebno nau iti se u ma inskom u enju deni e ciljnom funkcijom.
c
s
c
s
Ona deni e zeljeno pona anje sistema koji u i. U slu aju da korisnik zeli
s
s
c
c

da prepozna clanke na Internetu sa sadr ajem iz ra unarstva ciljna funkcija


z
c

takvim clancima pridru uje 1, a ostalim -1. U ranije navedenom primeru, to


z

je bila funkcija f . U u enju igranja saha, ciljna funkcija bi vr ila pridru ivanje
c
s
z

optimalnih poteza pozicijama sahovske table.

10.5 Podaci

167

Kako su gre ke pri u enju mogu e i cak sasvim izvesne, u enje predstavlja
s
c
c
c

pribli no odredivanje ove ciljne funkcije, odnosno mo e biti videno kao aproksimiz
z
ranje funkcija. Funkciju kojom aproksimiramo ciljnu nazivamo modelima podataka ili hipotezama. Koristi emo oba termina. U slu aju prepoznavanja ra unarskih
c
c
c

clanaka model je bila funkcija sgn(ax + by + c) koja je pridru ivala 1 svim


z
ta kama sa jedne strane prave, a -1 ta kama sa druge.
c
c
Skup svih dopustivih hipoteza nazivamo prostorom hipoteza. U ma inskom
s
u enju prostor hipoteza se obi no ne navodi eksplicitno nabrajanjem hipoteza,
c
c

ve je odreden reprezentacijom hipoteze. Drugim re ima, prostor hipoteza


c
c
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 unarskih
c

clanaka hipoteze su reprezentovane pravim denisanim preko vrednosti koecijenata a, b i c.


Nala enje hipoteze koja najbolje aproksimira ciljnu funkciju mo emo videti
z
z

kao pretragu prostora hipoteza koja je vodenja podacima, a koju realizuje algoritam u enja. Stoga se u nekom smislu algoritmi u enja mogu smatrati algoritc
c

mima pretrage, ali u prostoru hipoteza pri cemu je uloga podataka iz iskustva
nov element koji nije bio prisutan u ranije izlo enim op tim pristupima prez
s
trazi.
Izbor prostora hipoteza je od fundamentalnog zna aja za kvalitet u enja.
c
c
Ukoliko prostor hipoteza ne sadr i ciljnu funkciju, onda ona u praksi mo e biti
z
z
samo pribli no nau ena. To u praksi mo e biti dovoljno dobro. Pored toga,
z
c
z
bogatstvo prostora hipoteza je od velikog zna aja. Naizgled paradoksalno,
c
preterano bogatstvo prostora hipoteza po pravilu dovodi do lo ijih rezultata.
s

10.5

Podaci

Jedna od denicija ma inskog u enja koje su navedene ka e da se ma insko


s
c
z
s
u enje bavi generalizacijom, odnosno zaklju ivanjem o nepoznatim objektima,
c
c
s
na osnovu poznatih objekata. Umesto termina objekat, ce ce cemo koristiti

termin instanca ili primerak. U slu aju prepoznavanja ra unarskih clanaka, inc
c

stanca je jedan clanak. Instance ce biti u ra unaru predstavljene pmo u nekih


c
c
podataka koji ih opisuju i kojima ih identikujemo.

10.5.1

Reprezentacija podataka

Instance se na neki na in moraju reprezentovani u obliku koji je pogodan za


c
primenu algoritama u enja. Najpogodniji na in koji se naj e ce koristi kod alc
c
c s
goritama ma inskog u enja uop te je predstavljanje instanci pomo u nekih njis
c
s
c
hovih svojstava, odnosno atributa (eng. feature, attribute). Svojstva ili atributi

predstavljaju karakteristike instanci kao sto su boja, veli ina, te ina i sli no.
c
z
c
Svaki od izabranih atributa mo e imati vrednost koja pripada nekom unapred
z

zadatom skupu. Te vrednosti su cesto numeri ke kao u slu aju te ine koja je
c
c
z
skalarna veli ina i koja se najbolje opisuje brojem. Primer numeri ke vrednosti
c
c

mo e biti i frekvencija re i u nekom clanku kao sto je to bio slu aj u primeru sa


z
c
c

klasikacijom clanaka. Atributi takode mogu biti i kategori ki, odnosno mogu
c
predstavljati imena nekih kategorija kojima se ne mogu jednozna no dodeliti
c

smislene numeri ke vrednosti ili uredenje. Primer kategori kog atributa mo e


c
c
z

168

10 Uvod

biti grad u kome osoba zivi, pol, nacionalnost i sli no. U slu aju prepoznac
c

vanja ra unarskih clanaka, oznaka klase koju treba pogoditi 1 za ra unarkse


c
c

clanke i -1 za ostale je takode kategori ka vrednost iako je predstavljena brojem


c
po to se radi o dve kategorije za koje su ovi brojevi proizvoljno izabrani.
s

Skup atributa koji ce se koristiti u zapisu instance generalno nije unapred


zadat, ve ga je potrebno odabrati u skladu sa time koje su karakteristike inc
stanci bitne za dati problem u enja. Primera radi, ako je potrebno razlikovati
c

clanke o operativnim sistemima od clanaka o bazama podataka poznavanje


frekvencija re i ra unar i datoteka ne nosi korisnu informaciju po to su
c
c
s
ove re i zastupljene u obe kategorije. Stoga te atribute nema svrhe koristiti
c
u ovom problemu u enja. S druge strane, re i proces i indeks nose vi e
c
c
s
informacije po to su u e speci ne za pomenuta polja. Ukoliko je potrebno
s
z
c

razlikovati ra unarske clanke od drugih vrsta clanaka izbor atributa bi mogao


c
da bude upravo obrnut po to re i proces i indeks mogu imati i druga ija
s
c
c
zna enja od onih koja im se pridru uju u ra unarskoj terminologiji. Postoje i
c
z
c

metode za automatski izbor podskupa atributa iz nekog sireg skupa koje su


najrelevantnije za dati problem u enja, ali njih ne opisujemo.
c
Kada su izabrani atributi pomo u kojih se instance opisuju, svaka instanca
c
se mo e predstaviti vektorom vrednosti atributa koje joj odgovaraju.
z

10.5.2

Podaci za trening i podaci za testiranje

Prirodno je da svako u enje polazi od nekih podataka. Podaci na osnovu koc


jih se vr i generalizacija, nazivaju se podacima za trening, a njihov skup trening
s
skup. Testiranje nau enog znanja na podacima na osnovu kojih je u eno obi no
c
c
c
dovodi do zna ajno boljih rezultata od onih koji se mogu kasnije dobiti u pric
menama. Stoga je pre upotrebe potrebno proceniti kvalitet nau enog znanja.
c

To se obi no radi tako sto se razmatra koliko je nau eno znanje u skladu sa
c
c

nekim unapred datim podacima za testiranje. Podaci za testiranje cine test skup.
Test skup treba da bude disjunktan sa trening skupom.

Cesto se prilikom konstrukcije sistema koji uklju uje u enje raspola e ograni enom
c
c
z
c
koli inom podataka koja se mora upotrebiti u obe svrhe. Jedan od standardc
nih na ina je da se jedna tre ina ili neki blizak procenat izdvoji unapred za
c
c
testiranje, a da se trening vr i na ostatku. Takva podela je bila kori cena i
s
s

u primeru prepoznavanja ra unarskih clanaka. Obi no se ova podela vr i


c
c
s
slu ajnim izborom skupa za testiranje.
c

10.6

Dizajn sistema koji u i


c

Zahvaljuju i svom brzom razvoju oblast ma inskog u enja se zna ajno razc
s
c
c

granala, ali i dalje postoje odredene karakteristike re avanja problema u enja


s
c
koje su zajedni ke za ve inu pristupa. Jedna od bitnih zajedni kih odlika je
c
c
c
na in dizajniranja sistema koji u i. Elementi dizajna su ve pomenuti u prethodc
c
c

nim poglavljima i sad cemo ih sumirati:


Formulacija problema u enja:
c
Nadgledano ili nenadgledano u enje
c
Zapis primera

10.6 Dizajn sistema koji u i


c

169

Izbor ciljne funkcije


Izbor prostora hipoteza
Izbor algoritma
Izbor mera kvaliteta u enja
c
Sada je mogu e sumirati kako su dati aspekti dizajna bili izabrani u slu aju
c
c

prepoznavanja ra unarskih clanaka.


c
Primer 10.1
3000 clanaka je razvrstano u dve unapred ksirane kategorije (ra unarski i os
c
tali), tako da je zadatak u enja bio formulisan kao zadatak nadgledanog u enja.
c
c
Svaki clanak je pretstavljen vektorom frekvencija re i iz nekog re nika ra unarske

c
c
c
terminologije. Kako bi se smanjila veli ina zapisa, uzete su u obzir samo one re i
c
c
koje se javljaju bar u jednom clanku.

Ciljna funkcija f pridru uje 1 ra unarskim clancima, a -1 ostalim.


z
c

Prostor hipoteza odgovara skupu svih pravih u odgovaraju em prostoru. Hipoteze


c
su funkcije koje pridru uju 1 ta kama sa jedne strane prave, a -1 ta kama sa
z
c
c
druge strane. Hipoteze se biraju izborom vrednosti koecijenata a, b i c.

Algoritam u enja je bio gradijentni spust za minimizaciju odstupanja izmedu


c
vrednosti ciljne funkcije i hipoteze na datim primerima.
Za meru kvaliteta u enja uzet je udeo ta no klasikovanih clanaka.
c
c

U daljem tekstu bi e opisana dva naj e ca zadatka ma inskog u enja


c
c s
s
c
klasikacija i regresija. Za oba metoda bi e izlo ene i neke metode ma inskog
c
z
s

u enja kojima se ti zadaci cesto re avaju. Takode, uz izlaganje metoda ma inskog


c
s
s
u enja, bi e diskutovani i razni bitni koncepti ma inskog u enja.
c
c
s
c

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 ne koje mogu predstavljati prevaru i nerc

izi ne koje predstavljaju uobi ajene transakcije, odredivanje autorstva tekstova


c
c

pri cemu se tekstu nepoznatog autora pridru uje jedan od nekoliko unapred
z

ponudenih autora, razvrstavanje elektronske po te u zeljenu i ne eljenu (eng. spam)


s
z

i sli no.
c
U navedenim primerima svaka instanca (bankovna transakcija, tekst, elektronska poruka) se mo e predstaviti nekim izabranim skupom njenih atributa.
z

Takode, svakoj instanci se kao atribut mo e dodati i oznaka klase kojoj instanca
z

pripada. Problem klasikacije se sastoji u odredivanju vrednosti atributa klase


na osnovu preostalih atributa instance. Formalnije, problem klasikacije se
mo e videti kao aproksimacija ciljne funkcije koja svakoj instanci dodeljuje ozz
naku klase kojoj ta instanca pripada. Klju no zapa anje je da je ciljna funkcija
c
z
u ovom problemu diskretna. Pri tom, u op tem slu aju, oznakama klasa se
s
c

ne mogu smisleno dodeliti numeri ke vrednosti niti uredenje. Dakle, atribut


c

klase, ciju je vrednost potrebno odrediti, je kategori ki atribut.


c
Postoji veliki broj metoda kojima se ovaj problem re ava. Neke od njih su
s
metode zasnovane na instancama (eng. instance based classication), u enje
c
stabla odlu ivanja (eng. decision tree induction), metoda potpornih vektora
c
(eng. support vector machines) i metode bajesovske klasikacije zasnovane na
verovatno i (eng. bayesian classication). U daljem tekstu opisa emo prve dve
c
c
pomenute metode.

11.1

Metode klasikacije zasnovane na instancama

Osnovna karakteristika metoda zasnovanih na instancama je da ne grade ek


splicitan model podataka u vidu neke funkcije kao sto to radi ve ina metoda
c
ma inskog u enja. Stoga se klasikacija ne vr i na osnovu ve formulisanog
s
c
s
c
modela, nego na osnovu skupa instanci za trening. Umesto izgradnje mod

ela, instance predvidene za treniranje se cuvaju i bivaju upotrebljene tek kad


je potrebno klasikovati nepoznatu instancu. Time se ve ina izra unavanja
c
c
preme ta iz faze u enja u fazu primene.
s
c

172

11 Klasikacija

11.1.1

Metoda n-najbli ih suseda


z

Metoda n-najbli ih suseda (eng. n-nearest neighbours) se zasniva na vrlo jedz

nostavnom principu nepoznatu instancu treba klasikovati u klasu cije su


instance najsli nije nepoznatoj. Koncept sli nosti se najjednostavnije formalc
c
izuje preko funkcija rastojanja.
Denicija 11.1 Neka je X skup instanci. Funkcija d : X X R predstavlja
rastojanje na skupu X ukoliko zadovoljava slede e uslove:
c
1. d(x, y) 0, pri tom d(x, y) = 0 x = y (pozitivna denitnost)
2. d(x, y) = d(y, x) (simetri nost)
c
3. d(x, z) d(x, y) + d(y, z) (nejednakost trougla)
Primer 11.1 Neki primeri rastojanja su:
d(x, y) =

i (xi

yi )n

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


d(x, y) =

0,
1,

xy

xx yy

x=y
x=y

Intuitivno, sto je rastojanje izmedu dva objekta ve e, to je sli nost izmedu


c
c
njih manja i obrnuto. Naravno, po to je mogu e birati razli ite funkcije rastos
c
c
janja, pretpostavka je da izabrana funkcija rastojanja, u smislu relevantnom za

posmatrani domen, stvarno oslikava razli itost izmedu dva objekta.


c
Kada je funkcija rastojanja izabrana, najjednostavniji na in klasikacije je
c
klasikovanje nepoznate instance u klasu iz koje poti e instanca trening skupa
c
najbli a nepoznatoj instanci. Ovo je primer metode n-najbli ih suseda za n = 1.
z
z
U op tem slu aju metoda n-najbli ih suseda se sastoji u nala enju n instanci iz
s
c
z
z
trening skupa koje su najbli e nepoznatoj instanci i njenom klasikovanju u
z

klasu ciji se elementi naj e ce javljaju medu pronadenih n najbli ih suseda.


c s
z

U slu aju izjedna enog ishoda izmedu vi e klasa, nije mogu e doneti odc
c
s
c
luku, ali se u praksi ovaj osnovni algoritam mo e modikovati kako bi se
z
ovakvi slu ajevi razre ili.
c
s
Analizirajmo detaljnije metodu n-najbli ih suseda. Posmatrajmo nepozz
nate instance A i B prikazane na slici 11.6. Metodom n-najbli ih suseda uz
z
kori cenje euklidskog rastojanja instanca A biva klasikovana u crvenu klasu
s

za sve vrednosti n od 1 do 5. Klasikacija instance A je postojana zato sto se


ona nalazi blizu crvenih instanci, a udaljeno od plavih instanci. S druge strane,
klasa instance B mo e da varira u zavisnosti od broja n. Za n = 1 instanca B
z
se klasikuje u crvenu klasu. Za n = 2 ne mo e se odlu iti. Za n = 3 instanca
z
c
B se klasikuje u plavu klasu. Za n = 4 ponovo nije mogu e odlu iti, a za
c
c
n = 5, ona se ponovo klasikuje u crvenu klasu. Klasikacija instance B nije
postojana jer se ona nalazi blizu instanci iz obe klase. Zna i, metoda n-najbli ih
c
z
suseda je postojana u unutra njosti oblasti koju zauzimaju instance jedne klase,
s
ali je nepostojana na obodu te oblasti. Ovo pona anje bi se moglo uo iti i kod
s
c
drugih metoda klasikacije.

Pored toga sto se nepostojanost klasikacije mo e demonstrirati menjanjem


z

parametra n, ona se takode mo e analizirati i za ksiranu vrednost parametra


z

11.1 Metode klasikacije zasnovane na instancama

173

Figure 11.1: Stabilnost klasikacije pomo u algoritma n-najbli ih suseda


c
z
n. Mo e se primetiti da je za manje vrednosti parametra n nepostojanost pri
z
variranju vrednosti atributa instance ve a nego za ve e vrednosti parametra n.
c
c

Odredivanje vrednosti parametra n koja je pogodna za upotrebu se vr i ems


pirijski evaluacijom uspe nosti klasikacije za razli ite vrednosti parametra
s
c
n. Bira se vrednost n za koju je klasikacija bila najuspe nija. Mere i metode
s
pomo u kojih se vr i evaluacija uspe nosti klasikacije bi e izlo ene kasnije u
c
s
s
c
z
ovom poglavlju.

Kao sto se mo e videti u slu aju metode najbli ih suseda, jo jedno bitno
z
c
z
s
svojstvo metoda zasnovanih na instancama je njihova lokalnost. Nepoznata
instanca se klasikuje isklju ivo ili uglavnom na osnovu poznatih instanci koje
c
se nalaze unjenoj blizini. Ovo svojstvo doprinosi eksibilnosti modela koje ove
metode (implicitno) grade.

11.1.2

N-grami

Metode ma inskog u enja su cesto formulisane tako da se jednostavno pris


c
menjuju na numeri ke podatke, ali te ko na podatke u nekom drugom obliku.
c
s
Stoga se tra e na ini da se i drugi podaci predstave u numeri kom obliku. To
z
c
c

cesto podrazumeva i odredeni gubitak informacije. U slu aju problema klasic

kacije tekstova, proteinskih sekvenci i sli nih podataka cesto se u svrhu predc
stavljanja podataka u numeri kom obliku koriste n-gramski proli [?].
c
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 ine
z
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 unata u odnosu na sve n-grame niske. Ovakvi proli predc

stavljaju reprezentaciju pogodnu za metode klasikacije i cesto se koriste zajedno sa metodom n-najbli ih suseda.
z

174

11 Klasikacija

Osnovne prednosti kori cenja n-grama su robusnost (na primer, nisu mnogo
s
osetljivi na gre ke u kucanju ili na pojavljivanje re i u razli itim gramati kim
s
c
c
c
oblicima), nezavisnost od domena koji se analizira, ekasnost (dovoljan je jedan
prolaz kroz tekst) i jednostavnost. Problem je eksponencijalna zavisnost broja
mogu ih n-grama u odnosu na du inu n-grama.
c
z
N-gramski proli su uspe no kori ceni u razli itim primenama koje uklju uju
s
s
c
c
prepoznavanje autorstva tekstova, prepoznavanje jezika kojim je tekst pisan,

prepoznavanje govora i odredene probleme iz oblasti bioinformatike.


Primer 11.2 U ovom primeru razmotri emo klasikaciju tekstova prema jeziku. Srpc
ski i engleski jezik bi e predstavljenim po jednim kra im tekstom ozna enim sa S1 i
c
c
c
E1. Poto se izra unaju frekvencije n-grama za ta dva teksta, njihovi n-gramski pros
c
li cine trening skup. Test skup ce biti dobijen na osnovu cetiri kratka teksta od kojih

su dva na srpskom ozna ena sa S2 i S3, a dva na engleskom jeziku ozna ena sa E2 i
c
c
E3. Klasikacija ce biti izvrena pomo u algoritma 1-najbli ih suseda. U tekstovima

s
c
z
na srpskom jeziku nisu koricena srpska slova kako bi se izbegla laka identikacija na
s
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 koricena je vrednost n = 3. Pri tom je iz tekstova
s
S1 i E1 izdvojeno po 10 najfrekventnijih n-grama. Oni ce ciniti atribute instanci na

osnovu kojih ce biti vreno treniranje i testiranje. Trening i test skup su dati u tabeli

s
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

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

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

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 enje stabala odlu ivanja


c
c

177

Prilikom klasikacije bi e koriceno Euklidsko rastojanje


c
s
n

(xi yi )2

d(x, y) =
i=1

Potrebno je ispitati rastojanja od instanci test skupa do instanci trening skupa.


d(S2, S1) = 0.0124
d(S2, E1) = 0.0417
d(S3, S1) = 0.0133
d(S3, E1) = 0.0450
d(E2, S1) = 0.0482
d(E2, E1) = 0.0149
d(E3, S1) = 0.0397
d(E3, E1) = 0.0141
Poto je rastojanje od instance S2 do S1 manje nego od S2 do E1, zaklju uje se
s
c
da je S1 najbli i sused instance S2. Zbog toga se instanca S2 prepoznaje kao tekst na
z
sprskom jeziku. Sli no se ispravno zaklju uje i da je S3 tekst na srpskom, E2 tekst na
c
c

engleskom i E3 takode, tekst na engleskom jeziku. Posebno je zanimljivo da tekstovi S3


i E2 po svom sadr aju nemaju dodira sa instancama za trening S1 i E1 sto ne ometa
z

postupak klasikacije.

11.2

U enje stabala odlu ivanja


c
c

Razmotrimo igru 20 pitanja. Jedan igra zami lja neki predmet, a drugi treba
c
s
da pogodi o kom je predmetu re . Kako bi pogodio o kom predmetu se radi
c

igra koji pogada ima pravo da postavi 20 pitanja na koje odgovor mo e biti
c
z
da ili ne. Kada misli da je postavio dovoljno pitanja, igra mo e dati svoj sud
c
z
o kom predmetu se radi i igra se zavr ava. O ito, proces ispitivanja se mo e
s
c
z

predstaviti u vidu stabla koje u svakom cvoru ima po jedno pitanje, osim u

listovima u kojima se nalazi sud igra a o nepoznatom predmetu. Svaki cvor


c
osim listova ima dve grane ozna ene sa da ili ne koje vode u podstablo koje
c
odgovara nastavku ispitivanja posle razmatranog pitanja. Ovo je primer stabla
odlu ivanja.
c
Ovakva stabla se mogu uop titi zanemarivanjem ograni enja na 20 pitanja i
s
c

tako sto bi se dozvolilo da odgovori ne moraju biti samo da ili ne, ve da mogu
c

pripadati odredenom unapred denisanom skupu za dato pitanje. Ovakva


stabla se mogu automatski nau iti iz primera koji za svaku instancu uklju uju
c
c
vrednosti njenih atributa i vrednost ciljne funkcije za tu instancu.
U enje stabala odlu ivanja je metod aproksimacije diskretnih ciljnih funkcija
c
c
u kome se nau ena funkcija predstavlja u vidu stabla. Sli no igri 20 pitanja,
c
c

svakom cvoru stabla odgovara test nekog atributa instance, a grane koje izlaze

iz cvora razli itim vrednostima tog atributa. Listovima odgovaraju vrednosti


c
ciljne funkcije. Instance su opisane vrednostima svojih atributa. Klasikuju se
polaze i od korena, spu taju i se niz granu koja odgovara vrednosti testiranog
c
s
c

178

11 Klasikacija

atributa instance koju klasikujemo. Klasa se dodeljuje instanci kad se dode


do lista.
U enje stabala odlu ivanja je ve primenjeno u razli itim problemima. Jedan
c
c
c
c

primer se odnosi na predvidanje budu e potra nje za knjigama u bibliotekama,


c
z
na osnovu nekih njihovih atributa (npr. jezik, datum objavljivanja, datum

poslednjeg iznajmljivanja itd.). Knjige za koje se predvida da ne e biti skoro


c

tra ene se mogu smestiti u magacin. Istra ivanje je radeno u biblioteci uniz
z
verziteta Harvard. Sredinom devedesetih stabla odlu ivanja su primenjena
c
u klasikaciji tumora i prognozi njihovog pona anja. Svaka instanca je opis
sivana pomo u 31 atributa, a klasikacije su date nezavisno od strane vi e
c
s
stru njaka. U astronomiji stabla odlu ivanja su primenjena u cilju razlikovanja
c
c
zvezda i tragova kosmi kih zraka na snimcima teleskopa Habl. Na osnovu 20
c

numeri kih karakteristika, sa stablima dubine do 9 cvorova, postignuta je prec

ciznost klasikacije od 95%. Takode postoje primene i u ekonomiji i drugim


oblastima.
Kori cenje stabla odlu ivanja nije podjednako pogodno za sve probleme
s
c
u enja. Potrebno je da se instance predstavljaju pomo u vrednosti ksnog
c
c
broja atributa. Skup vrednosti bi trebalo da bude diskretan i mali, mada se

na kontinualne atribute mo e primeniti diskretizacija tako sto bi se skup podez


lio u podintervale. Svakom podintervalu se pridru uje oznaka koja zamenjuje
z
vrednosti atributa iz tog intervala u zapisima instanci. Stabla odlu ivanja se
c
pokazuju posebno primenljiva u slu aju kada je neophodno predstavljanje disc
junkcija uslova, kada podaci za trening sadr e gre ke i kada u trening skupu
z
s
postoje instance kojima nedostaju vrednosti nekih atributa.
Ukoliko stablo odlu ivanja instanci dodeljuje neku klasu, to zna i da inc
c
stanca ispunjava sve uslove koji su denisani putanjom od korena do odgovaraju eg lista kroz stablo i oblika su atribut=vrednost. Stoga putanje kroz stac
blo predstavljaju konjunkcije ovakvih uslova. Za svaku klasu mogu e je uo iti
c
c
putanje koje se zavr avaju listovima koji odgovaraju toj klasi. Disjunkcija svih
s
takvih konjunkcija deni e instance koje pripadaju datoj klasi prema datom
s
stablu.
Jedan od najpoznatijih algoritama za u enje stabla odlu ivanja je ID3 [?]
c
c

na koji cemo se skoncentrisati. Ovaj algoritam konstrui e stablo od korena,


s

nani e, pitaju i se u svakom cvoru koji je najbolji atribut koji se u datom cvoru
z
c

mo e testirati. Ovo se odreduje statisti kim kriterijumom koji meri koliko


z
c
dobro neki atribut sam klasikuje podatke. Atribut ne mo e biti dva puta
z
kori cen u jednoj putanji od korena do lista. Za sve vrednosti odabranog atributa
s

kreiraju se grane do cvorova naslednika, a podaci za treniranje se dele izmedu

ovih cvorova tako da svaki od njih nasleduje primere koji imaju odgovaraju u
c

vrednost prethodno testiranog atributa. Za svaki od cvorova naslednika ovaj


postupak se rekurzivno primenjuje sve dok nije ispunjen bar jedan od slede a
c

dva uslova: (1) u putanji od korena do trenutnog cvora iskori ceni su svi atributi,
s

ili (2) sve instance za trening koje su pridru ene trenutnom cvoru imaju istu
z
vrednost ciljnog atributa. Svakom listu se pridru uje naj e ca oznaka instanci
z
c s
za trening koje su mu pridru ene. Algoritam je preciznije dat na slici 11.2.
z

Bitno je pitanje statisti kog kriterijuma koji ce biti kori cen za izbor najbolc
s

jeg atributa za testiranje u nekom cvoru. ID3 bira atribut koji maksimizuje
takozvani dobitak informacije na skupu instanci koje su pridru ene posmatraz

nom cvoru. Dobitak informacije predstavlja razlku entropije u odnosu na ciljni


atribut skupa instanci za trening S pre deljenja i prose ne entropije posle delc

11.2 U enje stabala odlu ivanja


c
c

179

Algoritam: ID3(P rimeri, Atributi)


Ulaz: P rimeri je skup instanci za trening, a Atributi je lista atributa koji
se mogu testirati u vorovima stabla.
c
Izlaz: Stablo odluivanja koje odgovara datim instancama
c
1. Napraviti koreni vor stabla R.
c
2. Ako sve instance iz P rimeri pripadaju istoj klasi, vratiti vor R sa
c
oznakom te klase.
3. Ako je Atributi prazna lista, vrati vor R oznaen oznakom najee
c
c
c sc
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 moguu vrednost vi atributa A
c
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 najee klase u P rimeri
c sc
U suprotnom na dodatu granu nadovezati podstablo
ID3(P rimerivi ,Atributi \ {A})
3. Vratiti R.
* Atribut je najbolji prema nekom statistikom kriterijumu.
c
Figure 11.2: Algoritam ID3

jenja prema nekom atributu A. Entropija predstavlja meru neuredenosti nekog


sistema. Ako sa pi ozna imo verovatno u da instanca pripada i-toj kasi, onda
c
c
se entropija mo e denisati slede im izrazom:
z
c
c

Entropija(S) =

pi log2 pi
i=1

Po deniciji va i 0 log2 0 = 0. Entropija se mo e interpretirati i kao miniz


z
malni o ekivani broj bitova potrebnih za kodiranje klasikacije proizvoljne inc
stance 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

za 1 i c). U tom slu aju je sigurno da ce instanca imati klasikaciju 0


c
i nije potrebno nikakvo kodiranje informacije. U slu aju da je pi = 1/c za
c
0 i c, svi ishodi su jednako verovatni i za kodiranje je potrebno iskoristiti
log2 c bitova. U slu aju raspodele koja nije uniformna, dodeljuju i kra e kodove
c
c
c

s
klasama koje se ce ce javljaju, a du e onima koje se rede javljaju, mo e se doz
z

180

11 Klasikacija

biti manja prose na du ina kodiranja. Dobitak informacije stoga poredstavlja


c
z
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 e na slede i na in:
s
c
c
Dobitak(S, A) = Entropija(S)
vV 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 ih
c
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 ka klasikacije. Ona


s

predstavlja gre ku koja se cini ukoliko se sve instance nekog skupa klasikuju
s
u najbrojniju klasu u tom skupu. Stoga, ako je pi verovatno a da instanca pric
pada i-toj klasi, gre ka klasikacije se deni e izrazom
s
s
Err(S) = 1 max pi
i

Za ovu meru se mo e denisati dobitak analogan opisanom dobitku informaz


cije ukoliko se u izrazu 11.1 entropija zameni gre kom klasikacije.
s
Primer 11.3 U tabeli 11.2 su date instance koje opisuju razli ite zivotinje, sa datom
c
klasikacijom koja ozna ava da li je zivotinja opasna po coveka. Izdvojili smo nekoc

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 ne visine
c
u okviru vrste, izra ene u centimetrima.
z

Zivotinja
Lav
Ma ka
c
Koza
Zec
Komodo zmaj

Veli ina
c
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

Table 11.2: Skup primera za trening


Da bi se izgradilo stablo odlu ivanja, za svaki od atributa je potrebno izra unati
c
c
dobitak informacije pri deljenju skupa podataka prema tom atributu. U prvom koraku,
va i:
z
2
2 3
3
Entropija(S) = log2 log2 = 0.971
5
5 5
5
Ukoliko se izvri podela instanci po vrednosti prvog atributa, dobijamo
s
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

Opasna
Da
Ne
Ne
Ne
Da

11.2 U enje stabala odlu ivanja


c
c

181

Sli no se dobija:
c
Dobitak(S, Ishrana) = 0.42
Dobitak(S, Otrovnost) = 0.322
Dobitak(S, Broj nogu) = 0
Dobitak(S, P arnost visine) = 0.171
Odavde se vidi da je najbolji atribut za testiranje u prvom cvoru atribut Veli ina.

c
Stablo koje se u ovom slu aju dobija primenom algoritma ID3 je dato na slici 11.3. U
c
slu aju datih primera za u enje, dobijeno stablo je bilo o igledan uzbor i bez primene
c
c
c
bilo kakve metodologije.

VELICINA

mala

NE

velika

DA

Figure 11.3: Jednostavno stablo odlu ivanja


c
Neto komplikovanije stablo odlu ivanja mo e se dobiti dodavanjem primera iz
s
c
z
tabele 11.3.

Zivotinja
Zmija
P ela ubica
c
Morska krava

Veli ina
c
Mala
Mala
Velika

Ishrana
Meso
Biljke
Biljke

Otrovnost
Otrovna
Otrovna
Neotrovna

Broj nogu
0
6
0

Parnost visine
Parna
Parna
Parna

Table 11.3: Dodatni primeri za trening


Jedno ru no konstruisano stablo koje je saglasno sa podacima za trening je dato
c
na slici 11.4. Izbor loeg atributa za testiranje u korenom cvoru je namerno u injen.
s

c
To dovodi do potrebe za ponavljanjem istih testova u levom i desnom podstablu, poto
s

informacija dobijena testiranjem u kornenu nije relevantna za odredivanje klase in


stance. Takode, u slu aju zivotinjske vrste sa parnom prose nom visinom koja je otroc

c
vna, imamo nepotreban test vezan za njenu ishranu. U oba slu aja klasa je ista, pa se
c
taj test mo e zameniti listom sa klasom DA. Upotreba ID3 algoritma daje dosta bolje
z
stablo odlu ivanja.
c
Vrednosti entropije i dobitka informacije se sada razlikuju:
1 1
1
1
Entropija(S) = log2 log2 = 1
2
2 2
2
Ukoliko se izvri podela instanci po vrednosti prvog atributa, dobijamo
s

Opasna
Da
Da
Ne

182

11 Klasikacija
PARNOST VISINE
parna

neparna

OTROVNOST
neotrovna

otrovna

VELICINA

NE

ISHRANA

velika biljke

mala

OTROVNOST

DA

ISHRANA
biljke

neotrovna

VELICINA

meso mala
DA

NE

NE DA

DA

velika
ISHRANA
biljke

meso

otrovna

meso

NE DA

Figure 11.4: Ru no konstruisano stablo odlu ivanja


c
c

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

3
5
0.971 0.918 = 0.049
8
8

Sli no se dobija:
c
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 igledno
c
manje od ru no konstruisanog i ima relevantnije atribute pri vrhu stabla, dok se dva
c
nebitna atributa uopte ne testiraju.
s
Kao i drugi metodi u enja, ID3 se mo e shvatiti kao pretraga prostora hipoteza
c
z
za onom koja najbolje odgovara podacima za trening. Prostor pretrage je potpun prostor svih stabala odlu ivanja. Svaka diskretna funkcija se mo e predc
z
staviti nekim stablom odlu ivanja, tako da se ne mo e desiti da ciljna funkcija
c
z

nije u prostoru hipoteza. ID3 u svakom trenutku cuva samo jednu hipotezu,
pa je nemogu e znati koliko ima drugih hipoteza koje su saglasne sa podacima
c
za trening. Po to nema vra anja u pretrazi (backtracking), ve se stablo gradi
s
c
c

11.3 Mere kvaliteta i tehnike evaluacije klasikacije

183

OTROVNOST
neotrovna

otrovna

VELICINA
mala
NE

DA

velika
ISHRANA
biljke

NE

meso

DA

Figure 11.5: Stablo odlu ivanja konstruisano pomo u ID3 algoritma


c
c
od jednostavnijeg ka slo enijem, postoji opasnost od dostizanja lokalnih optiz
muma koji nisu globalni. Jedna vrsta vra anja je odsecanje ili potkresivanje (prunc

ing) stabla koje ce biti obja njeno kasnije. Zahvaljuju i tome sto ID3 u i iz svih
s
c
c
podataka za trening odjednom, gre ke u pojedina nim instancama ne dolaze
s
c
toliko do izra aja.
z
Treba primetiti da ID3 preferira stabla sa manjom dubinom, kao i stabla
u kojima se atributi koji nose ve i dobitak informacije nalaze bli e korenu.
c
z

Ovo je posledica toga sto izgradnja stabla po inje od praznog stabla pri cemu
c
se dodaje nivo po nivo i na ina na koji se biraju atributi koji se pridru uju
c
z

cvorovima. Anitet prema kra im stablima je zanimljiva pretpostavka jer je


c

u skladu sa odavno poznatim lozofskim principom kojim se cesto vode i


nau nici - Okamovom o tricom: entitete ne treba umno avati preko potrebe,
c
s
z
odnosno najjednostavnije obja njenje je verovatno i najbolje. Stabla odlu ivanja
s
c
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 odgovaraju eg cvora, a vi njihove vrednosti za datu instancu. Kako stabla sa manc
jom dubinom, predstaljaju manje skupove ovakvih pravila, mo emo ih smaz
trati jednostavnijim.

11.3

Mere kvaliteta i tehnike evaluacije klasikacije

Kada se govori o tra enju modela koji najbolje aproksimira ciljnu funkciju,
z
potrebno je dati i mere kvaliteta modela, odnosno u enja. Mogu se koristiti
c
razli ite mere u zavisnosti od vrste problema, ali za neke vrste problma ve
c
c
postoje neke op te prihva ene mere. U slu ju problema klasikacije se obi no
s
c
c
c

184

11 Klasikacija

koristi preciznost, odnosno broj ta no klasikovanih instanci podeljen ukupnim


c

brojem instanci. U primeru sa prepoznavanjem ra unarksih clanaka, smo upc

ravo koristili preciznost kao meru kvaliteta. Ako je n ukupan broj clanaka i ako

sa r ozna imo broj ra unarskih clanaka koji su klasikovani kao ra unarski


c
c
c

clanci i sa o broj ostalih clanaka koji su klasikovani kao da nisu ra unarski,


c
tada je preciznost u tom primeru
r+o
n
U nekim slu ajevima preciznost nije adekvatna mera. Ukoliko postoje dve
c
klase i jedna je zna ajno manja od druge, mogu e je dobiti visoku preciznost
c
c

tako sto ce se sve instance klasikovati u ve u grupu. Takav je slu aj sa testovima
c
c
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 ajevima
c
bitna mera osetljivost klasikatora, odnosno njegova mogu nost da primeti inc
stance koje se tra e (npr. bolesne pacijente). Op tije, neka su date dve klase
z
s
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 no pozitivnim podrzaumevamo instance
z
koje su negativne, ali su gre kom u klasikaciji progla ene pozitivnim i pod
s
s
la no negativnim podrazumevamo instance koje su pozitivne, ali su gre kom
z
s
klasikovane kao negativne. Brojeve ovih instanci ozna avamo redom SP ,
c
SN , LP i LN . Ove brojeve obi no zapisujemo u takozvanoj matrici konfuzc
ije 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=

KP
KN

P
SP
LN

N
LP
SN

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 kom klasikovani kao negativni).
s
Udeo stvarno negativnih se analogno deni e
s
U SN =

SN
SN + LP

Udeo la no pozitivnih i la no negativnih se deni u sli no:


z
z
s
c

11.3 Mere kvaliteta i tehnike evaluacije klasikacije

LP
LP + SN
Preciznost se mo e izra unati kao
z
c
U LP =

P rec =

U LN =

185

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 aju 2 osobe koje obe
c
imaju bolest. Matrica konfuzije data je tabelom 11.4

KP
KN

P
2
2

N
0
396

Table 11.5: Matrica konfuzije vezana za klasikaciju obolelih.


Odavde se mogu izra unati mere kvaliteta:
c
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 sugerie odli no ponaanje klasikatora. S druge
s
c
s
strane poznavanje udela stvarno pozitivnih otkriva da je ovaj utisak la an zato sto je
z

identikovan mali broj elemenata pozitivne klase.


P rec =

Pored izbora mere za evaluaciju klasikacije bitno je izabrati i na in na koji


c

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 ivih podataka na podatke za trening i podatke za testiranje
z

vr i slu ajnim izborom podataka za testiranje. Medutim, ovakav na in evalus


c
c
acije mo e dovesti do zna ajnih oscilacija u vrednostima mera kvaliteta u zavz
c
isnosti od toga koji je podskup izabran. Pouzdaniji na in evaluacije nau enog
c
c
znanja je takozvana unakrsna validacija. Ceo skup podataka kojim se raspola e
z
se deli na n pribli no jednakih podskupova. Jedan podskup se izdvaja i trening
z
se vr i na ostalih n 1 podskupova. Posle treninga, kvalitet nau enog znanja
s
c
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 no uzima broj 10. Ovakav
c
postupak daje stabilniju ocenu kvaliteta. Pored toga, prednost ovog metoda je
da se u svakom od n koraka unakrsne validacije koristi velika koli ina poc
dataka pri treniranju, a da sve raspolo ive instance u jednom trenutku budu
z
iskori cene za testiranje.
s

186

11.4

11 Klasikacija

Preterano prilagodavanje modela podacima za

trening

Vrlo zna ajna tema pri evaluaciji nau enog modela je mogu nost da se pric
c
c
likom treninga model previ e prilagodi speci nostima podataka za trening i
s
c
da zbog toga daje lo e rezultate kada se primeni na drugim podacima. Naime,
s

podaci za trening mogu imati odredene karakteristike kao plod ciste slu ajnosti,
c

odnosno suma, ali takode mogu predstavljati i pristrasan uzorak celog skupa

podataka. U praksi, podatke je cesto te ko sakupiti i obi no se mora raditi sa


s
c
podacima koji su raspolo ivi bez obzira na njihove manjkavosti. Stoga, iako
z
je potrebno da se postigne visok nivo preciznosti prilikom treniranja modela,

takode je potrebno paziti da ne dode do preteranog prilagodavanja podacima.

Osnovni razlog zbog koga dolazi do preteranog prilagodavanja podacima


je bogatstvo prostora hipoteza, odnosno skupa dopustivih modela. U bogatijem skupu je lak e na i model koji dobro odgovara podacima. Primera radi,
s
c
ukoliko se pri u enju dopu taju samo stabla dubine 1, koja testiraju samo jedan
c
s
atribut svake instance, jasno je da takva stabla ne mogu lako posti i visoku
c
preciznost klasikacije. Ona predstavljaju previ e grube modele koji ne mogu
s
da opi u zna ajne zakonitosti u podacima. S druge strane, ukoliko se dozvoli
s
c
kori cenje stabala proizvoljne dubine, ukoliko je potrebno, mogu e je na i stas
c
c
blo koje je u stanju da razlikuje bilo koje dve instance, odnosno da postigne

savr enu preciznost na podacima za treniranje. Medutim, stabla koja su vrlo


s
duboka i precizno opisuju svaku i najnebitniju speci nost podataka za trenc
ing, se u praksi pokazuju nepouzdanim, po to siri skupovi podataka ne moraju
s
uvek imati sve speci nosti skupa podataka za trening.
c
Ovde se uo ava zna aj ranije pomenutog koncepta apstrakcije. Adekvatna
c
c
hipoteza bi trebalo da apstrahuje, odnosno zanemari, takve speci nosti. U
c

primeru prepoznavanja ra unarksih clanaka mogli smo izostaviti ograni enje


c
c
da se re i moraju nalaziti u nekom re niku ra unarske terminologije. U tom
c
c
c
slu aju, ukoliko bi se koristile stranice koje pi e mala skupina autora, mogu e
c
s
c
je da bi se njihova imena mogla pokazati kao visokofrekventne re i karakterc

isti ne za ra unarske clanke, sto bi bio vrlo lo kriterijum prepoznavanja cim


c
c
s

bi se pojavili ra unarski clanci koje pi u drugi autori.


c
s
U vezi sa prethodnim razmatranjem treba primetiti dve zakonitosti. Sa
pove anjem dozvoljene dubine stabla, pove ava se mo u enja, odnosno verovatno a
c
c
c c
c

da ce u skupu dopustivih modela biti naden onaj koji dobro opisuje podatke.
Zato se sa pove anjem dozvoljene dubine stabala, smanjuje gre ka klasikacije.
c
s
Dalje, ukoliko stablo dubine, na primer, 1 ima visoku preciznost, to zna i da je
c

u podacima nadena jaka i vrlo jednostavna zakonitost. Stoga je za o ekivati da


c

ona postoji i u sirem skupu podataka, odnosno o ekivano odstupanje gre ke na


c
s

sirem skupu podataka od gre ke koja se prime uje na trening skupu bi trebalo
s
c
da bude malo. S druge strane, ukoliko je stablo visoke preciznosti vrlo duboko,
to zna i da je uo ena zakonitost u podacima vrlo kompleksne prirode i stoga
c
c
mo e biti speci na samo za podatke u trening skupu. Odnosno, o ekivano
z
c
c

odstupanje gre ke na sirem skupu podataka od gre ke na trening skupu mo e


s
s
z
biti veliko. Na slici 11.6 prikazane su tri krive. Jedna, opadaju a, predstavlja
c
pona anje gre ke klasikacije na trening skupu u zavisnosti od dozvoljene dus
s

bine stabla. Druga, rastu a, predstavlja pona anje odstupanja gre ke na sirem
c
s
s
skupu podataka od gre ke na trening podacima u zavisnosti od dozvoljene dus

11.4 Preterano prilagodavanje modela podacima za trening

187

Figure 11.6: Gre ka klasikacije u zavisnosti od bogatsktva skupa dopustivih


s
modela.
bine stabla. Tre a predstavlja gornju granicu gre ke klasikacije u zavisnosti
c
s
od dozvoljene dubine stabla i ona je zbir prethodne dve. O igledno, i prec
male i prevelike vrednosti za dozvoljenu dubinu stabla vode lo im rezultatima.
s
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 inskog u enja. Pri tom u analizi
s
c

ne bi gurisala dozvoljena dubina stabla, ve odredena op ta mera slo enosti


c
s
z
skupa modela o kojoj ne emo detaljnije govoriti. Adekvatno upravljanje bogatc

stvom prostora hipoteza cini klju dobre generalizacije. Neki algoritmi u enja
c
c
kao metoda potpornih vektora su konstruisani tako da prilikom izbora modela
automatski re avaju i ovaj problem.
s
U slu aju kad model koji najbolje aproksimira ciljnu funkciju na raspolo ivim
c
z

instancama, takode najbolje aproksimira ciljnu funkciju na svim mogu im inc


stancama, ka e se da algoritam za u enje dobro generalizuje iz prikazanih primera.
z
c
Kod stabala odlu ivanja, mogu a su dva pristupa re avanju problema preterc
c
s

anog prilagodavanja trening podacima, a to su: zaustavljanje rasta stabla u


toku njegove izgradnje i naknadno odsecanje. Obi no se preferira druga mogu nost.
c
c

Odsecanje stabla u odredenom cvoru predstavlja zamenu celog podstabla ciji

je to koren tim cvorom, s tim sto mu se dodeljuje oznaka klase u koju se po


daci u tom podstablu naj e ce klasikuju. Odsecanje se vr i tako sto se iterac s
s

tivno ponavlja u cvorovima u kojima najvi e pove ava preciznost klasikacije


s
c
na skupu za testiranje sve dok dalje odsecanje ne po ne da smanjuje preciznost
c
klasikacije.

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 e videti kao aproksimacija neprekidne ciljne funkcije. Umesto o atribuz
s
tima, u terminologiji regresije, ce ce se govori o promenljivim. Formalno, regresiona 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 ava matemati ko o ekivanje. Promenljiva Y se naziva odzivnom
c
c
c
promenljivom, a promenljive Xi prediktorima. Problem regresije se svodi na
problem aproksimacije regresione funkcije r. Ovo se mo e raditi razli itim
z
c
metodama koje uvode razli ite pretpostavke o regresionoj funkciji. Najjednosc
tavnije su metode linearne regresije.
Primene regresije su mnogobrojne ve u najjednostavnijoj, linearnoj, varic
janti. One uklju uju procenu rizika u ulaganjima, procenu uticaja prerade rude
c
na ekosistem, procenu smrtnosti u zavisnosti od zivotnih navika i sli no.
c

12.1

Linearna regresija

Linearna regresija predstavlja problem regresije u kome se pretpostavlja lin


earna veza izmedu odzivne promenljive i prediktora. Formalnije, pretpostavlja
se veza oblika
Y = X +
Pri tome je Y slu ajna promenljiva, X je vektor poznatih prediktora, je nepozc
nati vektor koecijenata, a je slu ajna promenljiva koja predstavlja slu ajnu
c
c

gre ku, odnosno sum. Poreklo suma mo e biti nesavr enost opreme kojom se
s
z
s

vr i merenje, slu ajna priroda samog fenomena ili to sto izbor linearne zavs
c
isnosti predstavlja svesnu odluku da se ina e kompleksna zavisnost donekle
c

pojednostavi radi lak e analize. Zadatak linearne regresije je odredivanje kos


koji u nekom smislu najbolje odgovaraju opa anjima iz iskustva,
ecijenata
z
odnosno trening podacima. Kako se gre ka ne modelira, ve se modelira samo
s
c
zakonitost za koju se pretpostavlja da postoji u podacima, rezultuju i model bi
c

190

12 Regresija

trebalo da ima slede i oblik


c

y = 0 + 1 x 1 + 2 x 2 + . . . + n x n

(12.1)

Bitno je naglasiti da se izraz linarna u nazivu linearna regresija odnosi na

linearnost relacije po parametrima , a da prediktorske promenljive mogu biti


nelinearno transformisane.
Primer 12.1 Neki primeri linearnih modela su:

y = 0 + 1 x 1 + 2 x 2

y = 0 + 1 cos(x1 ) + 2 x2 + 3 ex3

2

y = 0 + 1 x 1 + 2 x 2 + 3 x 1 x 2

Slede i primeri ne predstavljaju linearne modele:
c
y=

1 x1
2+x2

y=

cos(1 x1 )2 x2

e3 x3

Pored osnovnog zadatka modeliranja veze izmedu odzivne promenljive i


prediktora radi predikcije odzivne promenljive, linearna regresija je korisna
i za ustanovljavanje ja ine uticaja nekog prediktora na odizvnu promenljivu.
c

Naime, ve e apsolutne vrednosti koecijenata ozna avaju ja i uticaj predikc


c
c

tora uz koji stoje. Znak koecijenta odreduje smer uticaja prediktora. Takode
se mo e meriti statisti ka zna ajnost ovog uticaja, ali se radi jednostavnosti u
z
c
c

nastavku fokusiramo samo na osnovni problem odredivanja koecijenata i


proveru kvaliteta nau enog modela.
c

Najjednostavniji slu aj linearne regresije je predvidanje odzivne promenljive


c
Y na osnovu samo jednog prediktora X. Primera radi, mo emo govoriti o
z

predvidanju telesne te ine u zavisnosti od visine. Primetna je zakonitost da su


z
visoki ljudi uglavnom te i od niskih ljudi. Tu zavisnost je potrebno modelirati.
z

Medutim, postoje i odstupanja. Kako su odstupanja od prose ne te ine utoliko


c
z

redja sto su ve a, ova odstupanja cemo smatrati sumom i ne emo ih modelirati.


c
c
Linearni model je u ovom slu aju oblika
c

y = 0 + 1 x

sto je standardna jedna ina linearne funkcije.


c

Na slici 12.1 je prikazano 100 ta aka pri cemu svaka odgovara jednom ispic
taniku. Koordinata x predstavlja visinu, a y telesnu te inu. Na slici se mo e
z
z
primetiti op ti trend linearnog pove anja telesne te ine u zavisnosti od visine
s
c
z

koji je prikazan pravom. Takode, primetno je i da mali broj ta aka zna ajno
c
c
odstupa. Ovakve ta ke nazivamo izuzecima (eng. outliers). Prikazana prava
c
predstavlja linearni model datih podataka. Metod kojim se do njega dolazi bi e
c
prikazan u nastavku.
U slu aju kori cenja op te jedna ine linearnog modela 12.1, mogu e je uklju iti
c
s
s
c
c
c

ve i broj prediktora pri predvidanju odzivne promenljive. Iz primetne varijac


bilnosti telesne te ine u odnosu na regresioni model, shvata se da visina nije
z
dovoljna da u potpunosti objasni variranje telesne te ine. Novi prediktori koji
z

12.1 Linearna regresija

191

120

q
q
q
q
q

100

q
q
qq

q
q

qq

q
q

80

q
q

qq
q

q
q
q

60

40

q
q

q
q
q

qq

q
q

q
q

q
q

q
q

qqq

q
q

qq

q
q

qq
q

q
qq

q
q

q
q

150

160

170

180

190

200

Figure 12.1: Primer jednostavne regresije kojom se predvida telesna te ina na


z
osnovu visine.

bi vodili ka pobolj avanju predvidanja mogu da se odnose na na in zivota pojes


c
dinaca koliko vremena dnevno provode u sede em polo aju, koliko se bave
c
z
sportom, koliko kalorija unose dnevno i sli no. Umesto prave, u ovakvom
c

slu aju regresioni model bi odredivao jednu hiperpovr .


c
s
Osnovni kriterijum izbora koecijenata linearnog modela je smanjivanje

odstupanja izmedu vrednosti koje model predvida i vrednosti koje odzivna


promenljiva ima u podacima. Ovaj problem se naj e ce se formuli e kao probc s
s
lem minimizacije (nala enja minimuma) srednjekvadratne gre ke
z
s
E() =
y

1
n

(yi yi )2

i=1

pri tome je n broj instanci u trening skupu, yi su vrednosti odzivne promenljive

kod tih instanci, a yi su vrednosti koje predvida regresioni model. Koecijenti

se izra unavaju iz trening podataka (xi1 , xi2 , . . . , xim , yi ) po formuli

= (X X)1 X Y

pri cemu je

x11
x21
.
.
.

x12
x22
..
.

.
.
.

X=

1
1
.
.
.

xn1

xn2

x1m
x2m

xnm

Y =

y1
y2
.
.
.

yn

Osnovni problem pri odredivanju koecijenata je potencijalna lo a uslovls


jenost matrice X. Naime, mogu e je da su neki prediktori linearno zavisni ili
c

192

12 Regresija

da su jako korelirani. U tom slu aju matrica X, pa i X X je neinvertibilna


c
ili lo e uslovljena (za male promene elemenata polazne matrice, mogu e su
s
c
se ne
ogromne promene elemenata inverzne matrice), odnosno, koecijenti
mogu izra unati ili su previ e nestabilni. U takvom slu aju se pribegava takozc
s
c
vanom postupku regularizacije. Matrici X X se dodaje dijagonalna komponenta

= (X X + I)1 X Y
gde je I jedini na matrica. Ova modikacija re ava problem invertibilnosti, ali
c
s
predstavlja namerno uno enje gre ke i time naru ava ta nost postupka. Zbog
s
s
s
c
toga je potrebno da konstanta bude mala, na primer, 0.01 ili 0.001, tako da

je korist od regularizacije ve a nego steta zbog unesene gre ke. Ovakva modic
s

kacija regresije se na engleskom naziva ridge regression i cesto se koristi.

12.2

Pretpostavke linearne regresije

Postoje dve osnovne pretpostavke linearne regresije. Prva je da je broj trening


podataka ve i od broja prediktora. Nju je u praksi uglavnom lako zadovoljiti.
c
Nisu retki domeni u kojima je te ko do i do novih podataka, ali ni broj prediks
c
tora obi no nije preveliki. Druga pretpostavka je da je slu ajna promenljiva
c
c

koja cini sum normalno raspodeljene sa raspodelom


N (0, 2 )
gde je standardna devijacija konstantna. Neformalno, ovo zna i da se pretc
postavlja da se gre ke poni tavaju, odnosno da se prebacivanja i podbacis
s

vanja javljaju jednako cesto, da su pri tom velike gre ke vrlo malo verovatne,
s
kao i da veli ina gre ke ne zavisi od stvarne veli ine promenljive Y . Vi e o
c
s
c
s
ispitivanju ovih poretpostavki bi e re eno u nastavku.
c
c

12.3

Ispitivanje kvaliteta linearne regresije

Ispitivanje kvaliteta linearne regresije uklju uje skup thenika i mera kvaliteta
c
kojima se proverava zadovoljenost uslova primenljivosti tehnike linearne re
gresije, kao i kvalitet samog nau enog modela. Ovaj postupak se cesto naziva
c
i dijagnostikom modela.
Ispitivanje zadovoljenosti uslova za primenu linearne regresije bi formalno

trebalo raditi kori cenjem statisti kih testova. Medutim kako je sama tehnika
s
c

dosta robusna, odnosno cesto daje zadovoljavaju e rezultate i kad su te pretc

postavke donekle naru ene, ove provere se cesto vr e neformalno inspekcis


s

jom podataka pomo u dijagrama. Normalnost raspodele suma se potvrduje


c
inspekcijom histograma gre aka ri = yi yi koje nazivamo rezidualima. Prets

postavka da veli ina gre ke ne zavisi od stvarne veli ine promenljive Y se


c
s
c

obi no potvrduje inspekcijom graka koji prikazuje reziduale ri u zavisnosti


c

od predvidenih vrednosti yi . Ukoliko se na ovom graku ne uo ava zavis


c

nost izmedu te dve veli ine, smatra se da je pretpostavka ispunjena. S druge


c
strane, ukoliko se mo e uo iti zavisnost, smatra se da pretpostavka nije ispunz
c
jena i da se model mo e popraviti dodavanjem novih prediktora ili primenom
z
druga ijih metoda.
c

12.3 Ispitivanje kvaliteta linearne regresije

193

Osnovna mera kvaliteta linearne regresije je srednjekvadratna gre ka, koja


s

meri odstupanje predvidenih vrednosti od stvarnih i ra una se po formuli


c
E() =
y

1
n

(yi yi )2

i=1

Po eljno je da srednjekvadratna gre ka bude sto manja, medutim ukoliko nez


s

mamo konkretan zahtev za postizanjem odredene srednjekvadratne grev ke,


s

te ko je re i da li je u enje uspe no ili ne. Zbog toga se cesto koriste i druge


s
c
c
s

mere. Cesta je upotreba Pirsonovog koecijenta korelacije.

Pirsonov koecijent korelacije izmedu dva uzorka xi i yi , koji odgovaraju


nekim promenljivim X i Y , se ra una po formuli
c
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 ena linija ozna ava prosek uzorka. Izrazi pod korenom se nazivaju
c
c
uzora kim varijansama za X i Y . Vrednosti koecijenta korelacije r(X, Y ) =
c

1 ozna avaju linearnu vezu izmedu promenljivih X i Y pri cemu pozitivan


c
znak zna i da Y raste kako X raste, a negativan zna i da Y opada kako X
c
c
raste. Neformalno, ova mera se mo e shvatiti kao mera linearne zavisnosti
z

izmedu promenljivih X i Y pri cemu vrednost 0 zna i potpuno odsustvo linc


earne korelacije. Jo va nije, ova mera se mo e povezati sa srednjekvadratnom
s z
z

gre kom. Cesto se ka e da r2 (X, Y ) predstavlja udeo varijanse promenljive


s
z

Y koji promenljiva X obja njava. Smisao ovog tvrdenja je slede i. Ukoliko se


s
c

odreknemo kori cenja bilo kakvih metoda predikcije pri predvidanju vrednosti
s
promenljive Y , najmanju srednjekvadratnu gre ku o ekujemo ukoliko uvek
s
c

predvidamo vrednost y. Odnosno, ako kao predikcioni model za Y koristimo


prosek opa enih vrednosti Y . Pri tome je srednjekvadratna gre ka
z
s
E(y) =

1
n

(yi y)2
i=1

odnosno uzora ka varijansa za Y . Rastojanja koja ulaze u ovu gre ku su prikazana


c
s
na slici 12.2. U slu aju kori cenja linearnog regresionog modela, srednjekc
s
vadratna gre ka je
s
n
1
E() =
y
(yi yi )2

n i=1
Rastojanja koja ulaze u ovu gre ku su prikazana na slici 12.3. Ova, preostala,
s
gre ka se ne mo e objasniti zavisno cu od prediktora X, odnosno tu preostalu
s
z
s
gre ku mo emo smatrati neobja njenom. Ispostavlja se da se polazna srednjeks
z
s
vadratna gre ka mo e razlo iti po formuli
s
z
z
E(y) =

1
n

(yi y)2 =
i=1

odnosno da va i
z
1
n

1
n

(yi yi )2 +

i=1

1
n

(i y)2 = E(y) E()


y
y
i=1

(i y)2
y
i=1

194

12 Regresija

Figure 12.2: Grak reziduala u zavisnosti od predvidenih vrednosti telesne


te ine.
z

Figure 12.3: Grak reziduala u zavisnosti od predvidenih vrednosti telesne


te ine.
z

195

10

15

20

12.3 Ispitivanje kvaliteta linearne regresije

30

20

10

10

20

30

Figure 12.4: Histogram reziduala u predvidanju telesne te ine.


z

Dakle, izraz sa leve strane predstavlja razliku izmedu polazne i neobja njene
s
gre ke, odnosno varijanse, iliti obja njeni deo varijanse. Ispostavlja se da za
s
s
koecijent korelacije va i relacija
z
r2 (X, Y ) =

n
y
i=1 (i
n
(yi
i=1

y)2
y)2

sto obja njava zna enje tvrdnje da njegov kvadrat predstavlja udeo varijanse
s
c
promenljive Y koji promenljiva X obja njava. Pomo u ove mere se mo e ocens
c
z
iti koliko je linearni model zaista koristan u odnosu na jednostavno poznavanje
proseka neke veli ine.
c
U slu aju da se radi o op tem slu aju regresije, postoji ve i broj prediktora,
c
s
c
c
pa se koecijent korelacije ne mo e ra unati po istoj formuli. U tom slu aju,
z
c
c

on se ra una kao r(Y , Y ). U slu aju jednog prediktora ova vrednost je jednaka
c
c

r(X, Y ) po to su veli ine X i Y linearno povezane.


s
c
I u slu aju regresije, mogu e je koristiti unakrsnu validaciju na isti na in
c
c
c

kao kod klasikacije, osim sto je mera kvaliteta koja se ra una promenjena.
c
Primer 12.2 U slu aju primera sa predikcijom telesne te ine u zavisnosti od visine na
c
z
slici 12.4 prikazan je histogram reziduala. Prikazana raspodela je bliska normalnoj (to
s

je potvrdeno i statisti kim testom). Na slici 12.5 prikazan je grak zavisnosti reziduc

ala od predivdenih vrednosti. Kako raspodela ne odaje zavisnost izmedu reziduala i

predvidenih vrednosti (to je takode potvrdeno i statisti kim testom), zaklu uje se da
s
c
c
su u tom problemu pretpostavke linearne regresije ispunjene.
Koecijent korelacije iznosi 0.715 sto zna i da promenljiva X objanjava preko pola

c
s
varijanse promenljive Y , ali i da postoji prostor da se predikcija dalje popravi dodavanjem novih prediktora.

196

12 Regresija

q
q

20

q
q
q

q
q

10

q
q

q
q

q
q

qq

q
q

q
q
q

q
q

q
q

q
q

q
q

q
q

10

q
qq
q

qq

q
qq

q
q

q
q
q

q
q

q
q
q

q
q

20

q
q

50

60

70

80

90

100

Figure 12.5: Grak reziduala u zavisnosti od predvidenih vrednosti telesne


te ine.
z

12.4

Preterano prilagodavanje modela podacima za

trening

Fenomen preteranog prilagodavanja podacima za trening koji je obja njen u


s
kontekstu klasikacije, mogu je i u problemu regresije (ne nu no linearne).
c
z

Zbog toga cemo iskoristiti priliku da ga jo jednom prokomentari emo u druga ijem
s
s
c

okviru ma inskog u enja. Osnovni smisao preteranog prilagodavanja trening


s
c
podacima je i dalje isti da se model koji ima dobre mere kvaliteta na trening

podacima, lo e pona a na drugim podacima. Medutim, novi primeri dopris


s

nose razumevanju veze izmedu bogatstva skupa dopustivih modela i kvaliteta


u enja.
c
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 en
c
linearnom regresijom. Mo e se primetiti da on ne prolazi direktno kroz trenz
ing podatke, odnosno za svaki trening podatak postoji manja ili ve a gre ka
c
s

kada se vr i predvidanje odzivne promenljive na osnovu datog prediktora.


s
Druga ije re eno, linearni model se ne mo e potpuno prilagoditi podacima
c
c
z
za trening. Linearne modele mo emo smatrati jednostavnim i neeksibilnim.
z
S druge strane, o igledno je da on dobro opisuje op ti linearni trend koji se u
c
s
podacima vidi. Slika 12.7 prikazuje aproksimaciju datih podataka kori cenjem
s
modela iz skupa svih polinoma proizvoljnog stepena. Izabrani polinom prolazi
kroz sve ta ke koje predstavljaju trening podatke i stoga je gre ka tog modela
c
s

na trening podacima jednaka nuli. Medutim, posmatraju i globalni izgled izc


abranog modela, vidi se da on ne opisuje nikakvu zakonitost u podacima. Os-

12.4 Preterano prilagodavanje modela podacima za trening

197

20

cilacije koje pravi izmedu ta aka cine njegovo kori cenje u predikciji potpuno
c
s

nepouzdanim. Problem je upravo u tome sto proizvoljni polinomi cine previ e


s
bogat skup mogu ih modela. Za svaki trening skup mo e se na i model koji
c
z
c

ga savr eno opisuje. Medutim, prilagodavaju i se trening podacima do kras


c
jnosti, gubi se svaka mo generalizacije. Sli ni zaklju ci va e i za druge previ e
c
c
c
z
s
bogate skupove dopustivih modela, a ne samo za polinome.

q
q

15

q
q
q

10

q
q

q
q
q

q
q

10

15

20

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

12 Regresija

20

198

q
q

15

q
q
q

10

q
q

q
q
q

q
q

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 enja zadataka
s

Glava 14

Re enja zadataka
s
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 (AC) D je tautologija, pa va i
z
Iv ((AC) D) = 1. Kako je Iv (D) = 0, mora da va i Iv (AC) = 0, odakle
z
sledi da je Iv (C) = 0 (jer je Iv (A) = 1). S druge strane, formula A (B C)
je tautologija, pa va i Iv (A (B C)) = 1. Kako je Iv (A) = 1, mora da
z

va i Iv (B C) = 1. Va i Iv (B) = 1, pa mora da va i i Iv (C) = 1, sto je


z
z
z
u kontradikciji sa Iv (C) = 0. Dakle, polazna pretpostavka je bila pogre na,
s
odakle sledi da je formula (D A) B tautologija.
10. Doka imo najpre, metodom istinitosnih tablica, da je formula
z
(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 ((AC) D) ((DA) 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 no, ako je v(p) = 1 i v(q) = 1, onda je Iv (A q) = Iv (A) i Iv (p) = 0, pa je
c

204

14 Re enja zadataka
s

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 i Iv (A) = 1 u slu az


c
jevima v(p) = v(q) = 0, v(p) = 0, v(q) = 1, v(p) = 1, v(q) = 0, dok u slu aju
c
v(p) = v(q) = 1, formula A mo e da ima proizvoljnu vrednost. Dakle, formula
z
A za koju u svakoj valuaciji va i Iv (A) = 1 ispunjava uslov zadatka, pa A mo e
z
z
biti formula .
13 Pretpostavimo da va i A1 , A2 , . . . , An |= B. Pretpostavimo da formula (A1
z
A2 . . . An ) B nije tautologija. Tada postoji valuacija u kojoj je formula
B neta na, a formula (A1 A2 . . . An ) ta na. Ako je u toj valuaciji formula
c
c
(A1 A2 . . . An ) ta na, onda je ta na i svaka od formula A1 , A2 , . . ., An . S
c
c
druge strane, kako va i A1 , A2 , . . . , An |= B, sledi da je u toj valuaciji ta na i
z
c

formula B, sto protivre i prethodnom zaklju ku da formula B nije ta na u toj


c
c
c
valuaciji. Dakle, pogre na je pretpostavka da (A1 A2 . . . An ) B nije
s
tautologija, tj. va i |= (A1 A2 . . . An ) B.
z
Pretpostavimo da va i |= (A1 A2 . . . An ) B. Pretpostavimo da
z
ne va i A1 , A2 , . . . , An |= B. To zna i da postoji valuacija u kojoj je svaka od
z
c
formula A1 , A2 , . . ., An ta na, a formula B nije. U toj valuaciji je ta na i formula
c
c
(A1 A2 . . . An ), a neta na je formula (A1 A2 . . . An ) B. Odatle
c

sledi da formula (A1 A2 . . . An ) B nije tautologija, sto je suprotno

pretpostavci. Dakle, mora da va i A1 , A2 , . . . , An |= B, sto je i trebalo dokazati.


z

14 Pretpostavimo da va i , A |= B i doka imo |= A B. Pretpostavimo


z
z
da su sve formule iz skupa ta ne u nekoj valuaciji v i doka imo da je u toj
c
z
valuaciji ta na i formula A B. Pretpostavimo suprotno, da va i Iv (A
c
z
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,

sto je u suprotnosti sa Iv (B) = 0. Dakle, pretpostavka je bila pogre na, pa sledi


s

Iv (A B) = 1, tj. |= A B, sto je i trebalo dokazati.


Pretpostavimo da va i |= A B i doka imo , A |= B. Pretpostavimo
z
z
da su sve formule iz skupa {A} ta ne u nekoj valuaciji v i doka imo da je
c
z
u toj valuaciji ta na i formula B. U valuaciji v su ta ne sve formule iz skupa
c
c
, 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 ilo Iv (B) = 0, iz Iv (A) = 1 i Iv (B) = 0 bi sledilo
z

Iv (A B) = 0). Dakle, valuacija v je model za formulu B, tj. , A |= B, sto je i


trebalo dokazati.
15 Neka je v proizvoljna valuacija. Tada je Iv (A1 ) = Iv (A2 ) i Iv (B1 ) = Iv (B2 ).

Re enja zadataka
s

205

(a)
=

1, Iv (A1 ) = 0
0, ina e
c

Iv (A1 )

1, Iv (A2 ) = 0
0, ina e
c

Iv (A2 ) .

(b)
=

1, Iv (A1 ) = 1 i Iv (B1 ) = 1
0, ina e
c

Iv (A1 B1 )

1, Iv (A2 ) = 1 i Iv (B2 ) = 1
0, ina e
c

= Iv (A2 B2 ) .
(c)
=

1, Iv (A1 ) = 1 ili Iv (B1 ) = 1


0, ina e
c

Iv (A1 B1 )

1, Iv (A2 ) = 1 ili Iv (B2 ) = 1


0, ina e
c

= Iv (A2 B2 ) .
(d)
=

0, Iv (A1 ) = 1 i Iv (B1 ) = 0
1, ina e
c

Iv (A1 B1 )

0, Iv (A2 ) = 1 i Iv (B2 ) = 0
1, ina e
c

= Iv (A2 B2 ) .
(e)
=

1, Iv (A1 ) = Iv (B1 )
0, ina e
c

Iv (A1 B1 )

1, Iv (A2 ) = Iv (B2 )
0, ina e
c

= Iv (A2 B2 ) .
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 ito je od p1 , p2 , . . ., pn dodeljuje vrednost Iv (p). Indukc
cijom nad skupom iskaznih formula mo e se dokazati da va i Iv (B) = Iw (A).
z
z
Iskazna formula A je tautologija, pa je ona ta na u svakoj valuaciji. Dakle,
c
Iw (A) = 1, odakle je Iv (B) = 1. Kako je v proizvoljna valuacija, sledi da je

206

14 Re enja zadataka
s

formula B ta na u svakoj valuaciji, tj. sledi da je formula B tautologija, sto je i


c
trebalo dokazati.

20. Neka p ozna ava tvrdenje ,,R uvek govori istinu i neka q ozna ava tvrdenje
c
c
,,Levi put vodi u glavni grad. Me taninu R treba postaviti pitanje ,,Da li je
s
ta no P ? (gde je P iskaz izra en u funkciji p i q). Ozna imo sa R(A) odgovor
c
z
c
me tanina na pitanje ,,Da li je ta no A? 0 ako je njegov odgovor ne i 1 ako
s
c
je njegov odgovor da. Postavljeno pitanje treba da bude takvo da je R(P ) u

svakom slu aju jednak vrednosti iskaza q. Odredimo tvrdenje P .


c
Ako je u nekoj valuaciji Iv (p) = 0 (tj. R uvek govori la ) i ako je R(A)
z
jednako 0, onda u toj valuaciji mora da va i Iv (A) = 1. Ako je u nekoj valuaciji
z
Iv (p) = 0 (tj. R uvek govori la ) i ako je R(A) jednako 1, onda u toj valuaciji
z
mora da va i Iv (A) = 0. Ako je u nekoj valuaciji Iv (p) = 1 (tj. R uvek govori
z
istinu) i ako je R(A) jednako 0, onda u toj valuaciji mora da va i Iv (A) = 0. Ako
z
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 i Iv (A) = 1. Dobijeni zaklju ci mogu biti
z
c
prikazani u vidu slede e istinitosne tablice:
c
p
0
0
1
1

R(A)
0
1
0
1

A
1
0
0
1

Iskaz P mo e da ima formu R(B) i onda je potrebno da je u svakoj valuaciji


z

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 oj istinitosnoj tablici:
c
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 igledno, u svakoj valuaciji je Iv (B) = Iv (q), pa zaklju ujemo da tra eno


c
c
z
pitanje mo e da bude ,,Da li je ta no R(q)? ili ,,Da li je ta no da bi mi ti odgovz
c
c
orio potvrdno ako bih te pitao da li levi put vodi u glavni grad?.
25.
(a) Formula A nije kontradikcija, pa postoji valuacija v1 takva da je Iv1 (A) =
1. Formula B nije tautologija, pa postoji valuacija v2 takva da je Iv2 (B) =
0. Pretpostavimo da formule A i B nemaju zajedni ko nijedno iskazno
c
slovo. Tada mo emo da deni emo valuaciju v na slede i na in:
z
s
c
c
v(p) =

v1 (p), ako se p pojavljuje u A


v2 (p), ina e
c

Tada va i Iv (A) = Iv1 (A) = 1 i Iv (B) = Iv2 (B) = 0, pa A B nije tauz

tologija, sto je suprotno zadatim uslovima. Dakle, polazna pretpostavka


je pogre na, pa zaklju ujemo da formule A i B moraju da imaju bar jedno
s
c
zajedni ko iskazno slovo.
c

Re enja zadataka
s

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 ke ekvivalencije (P Q) R (P R) (Q R) i
c
jednostavnog induktivnog argumenta zaklju ujemo da je svaka od forc
mula Ai B (i = 1, 2, . . . , m) tautologija. Analogno, kako je formula
Ai B (i = 1, 2, . . . , m) tautologija, na osnovu logi ke ekvivalencije
c
P (Q R) (P Q) (P R) i jednostavnog induktivnog argumenta zaklju ujemo da je svaka od formula Ai Bj (i = 1, 2, . . . , m,
c
j = 1, 2, . . . , n) tautologija. To je mogu e samo ako za svaki par Ai , Bj
c
postoji literal lij koji se u Ai pojavljuje kao konjunkt, a u Bj kao disjunkt.
Neka je formula C jednaka
m

lij
i=1 j=1
n

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).
Dodatno, kori cenjem tautologije ((P Q) (R S)) (P R
s
Q S) mo e se matemati kom indukcijom dokazati da je formula
z
c
m

A1 A2 . . . Am

lij
i=1 j=1

tautologija, tj. da je formula A C tautologija.


Kako je literal lij (i = 1, 2, . . . , m, j = 1, 2, . . . , n) disjunkt formule Bj ,
sledi da je lij Bj tautologija (jer je formula P P Q tautologija).
Dodatno, kori cenjem tautologije ((P Q) (R S)) (P R Q
s
n
S) mo e se matemati kom indukcijom dokazati da je formula j=1 lij
z
c
B1 B2 . . . Bn tautologija. Kako to va i za svako i (i = 1, 2, . . . , m), na
z
osnovu logi ke ekvivalencije (P R) (Q R) (P Q) R sledi
c
da je i
m

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

cemu je I L (f ) = fI i I L (p) = pI .
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 imo da je D = (D, I L ) model formule A = (x)(p(x)
z
p(f (x)).
Doka imo da je Iv (A) = 1 za svaku valuaciju v. Pretpostavimo suprotno
z
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 enja zadataka
s

da je n paran broj, a n + 2 neparan, sto je neta no za svaki prirodan broj n.


c
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 i Iw (p(x, f (x)) p(f (x), x)) = 1.
z
Dovoljno je razmatrati mogu nosti w(x) = a, w(x) = b i w(x) = c. Vrednosti
c
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 i Iv ((x)(y)(p(x, y) p(y, x))) = 1, tj. za svaku valuaciju
z
w takvu da je v x w va i Iw ((y)(p(x, y) p(y, x))) = 1. Postoje dve
z
mogu nosti: w(x) = a i w(x) = b i za obe treba da va i Iw ((y)(p(x, y)
c
z
p(y, x))) = 1. Va i Iw ((y)(p(x, y) p(y, x))) = 1 ako postoji valuacija w
z
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 i w (y) = a i druga, za koju va i
z
z
w (y) = b (pri tome va i i w (x) = w(x)). Va i Iw (p(x, y) p(y, x)) = 1 ako je
z
z
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 i:
z
(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 enja zadataka
s

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 i (pI (a, a)) = 0
z
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 e proveriti da ima 13 (od ukupno 16) funkcija pI : D2
z
{0, 1} koje zadovoljavaju taj uslov. Svakoj od tih funkcija odgovara po jedan
tra eni model (do na izomorzam).
z

32. Neka je L = (, , ar), pri cemu je = {f, a}, = {p}, ar(f ) = 2, ar(a) = 0
i ar(p) = 2.

Neka je D = Z, I L (f ) = fI , I L (a) = aI i I L (p) = pI , pri cemu je fI (z1 , z2 ) =


z1 + z2 (z1 , z2 Z), aI = 0 i pI (z1 , z2 ) = 1 ako i samo ako je z1 = z2 (z1 , z2 Z).
Doka imo da je D = (D, I L ) model date formule. Doka imo da za proizvoljnu
z
z
valuaciju v va i Iv ((x)(y)p(f (x, y), a)) = 1. Pretpostavimo suprotno pretz
postavimo da postoji valuacija v za koju va i Iv ((x)(y)p(f (x, y), a)) = 0.
z
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 i da za svaku valuaciju w takvu da je w y w (dakle, va i w (x) = z)
c
z

i va i Iw (p(f (x, y), a)) = 0. Medutim, u valuaciji u kojoj je w (y) = z va i


z
z

Iw (p(f (x, y), a)) = pI (fI (z, z), 0) = pI (z + (z), 0) = pI (0, 0) = 1, sto je
u kontradikciji sa Iw (p(f (x, y), a)) = 0. Dakle, polazna pretpostavka je bila
pogre na, te sledi da za proizvoljnu valuaciju v va i Iv ((x)(y)p(f (x, y), a)) =
s
z
1, tj. L-struktura D je model date formule.

Neka je D = N, I L (f ) = fI , I L (a) = aI i I L (p) = pI , pri cemu je fI (n1 , n2 ) =


n1 + n2 (n1 , n2 N), aI = 0 i pI (n1 , n2 ) = 1 ako i samo ako je n1 = n2 (n1 , n2
N). Doka imo da je D = (D, I L ) kontramodel date formule. Doka imo da
z
z
postoji valuacija v za koju va i Iv ((x)(y)p(f (x, y), a)) = 0. Pretpostavimo
z
suprotno da za proizvoljnu valuaciju v va i Iv ((x)(y)p(f (x, y), a)) = 1.
z
Tada, na osnovu denicije 3.10, sledi da za svaku valuaciju w takvu da je
w x v va i Iw ((y)p(f (x, y), a)) = 1. Neka je w proizvoljna valuacija i neka je
z
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 i w (x) = n) i va i Iw (p(f (x, y), a)) =
z
z
1. Pretpostavimo da je w (y) = m, m N. Tada va i Iw (p(f (x, y), a)) =
z

pI (fI (n, m), 0) = pI (n + m, 0). Medutim, pI (n + m, 0) je jednako 1 samo ako je

n + m = 0, sto nije ta no ni za koju vrednost m, m N (jer je n > 0). Dakle, poc


lazna pretpostavka je bila pogre na, te sledi da postoji valuacija v za koju va i
s
z
Iv ((x)(y)p(f (x, y), a)) = 0, tj. L-struktura D je kontramodel date formule.

33. Neka je L = (, , ar), pri cemu je = {f }, = {p}, ar(f ) = 1, ar(p) = 2.

(a) Neka je D = (N, I L ) i I L (f ) = fI , I L (p) = pI , pri cemu je fI (n) =


n + 1 i pI (n1 , n2 ) = 1 ako i samo ako je n1 < n2 . Doka imo da je Lz
struktura D model date formule A, tj. doka imo da za svaku valuaciju
z
v va i Iv (A) = 1. Pretpostavimo suprotno pretpostavimo da postoji
z
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 enja zadataka
s
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))

= 1, tj. da nije n < n + 1 ili da je n < n, sto nije ispunjeno ni za jedan


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 i w (x) = w(x) = n1 ) takva
z
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 i w (x) = w (x) =
z
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 no n1 < n2 , n2 < n3 i da nije ta no n1 < n3 . Medutim,


c
c
to nije ispunjeno ni za koja tri prirodna broja n1 , n2 , n3 .
Dakle, pretpostavka je bila pogre na, te sledi da za svaku valuaciju v va i
s
z
Iv (A) = 1, tj. L-struktura D je model formule A.

(b) Neka je D = ({a}, I L ) i I L (f ) = fI , I L (p) = pI , pri cemu je fI (a) = a


i pI (a, a) = 1. Doka imo da je D kontramodel za formulu A. Pretz
postavimo suprotno pretpostavimo da za proizvoljnu valuaciju v va i
z
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 i Iw ((p(x, f (x)) p(x, x))) = 1. Mora da je
z
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) =

0, sto je neta no, pa sledi da je pretpostavka bila pogre na, odakle dalje
c
s
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 an, tj. pretpostavimo da je D = {d1 , d2 ,
c
. . . , dm }.

Neka je I L (f ) = fI i I L (p) = pI . Neka je di odreden na slede i na in:


c
c
neka je d0 proizvoljan element skupa D;
neka je di+1 = fI (di ) za i 0.
Skup D je kona an, pa u nizu di , i = 0, 1, 2, . . ., mora da postoji bar jedan
c
element koji se ponavlja, tj. postoje vrednosti j i k (j < k) takve da je
dj = dk .

Re enja zadataka
s

211

Na osnovu pretpostavke, D je model za formulu A, pa za proizvoljnu


valuaciju v va i Iv (A) = 1. Odatle, na osnovu denicije 3.10, sledi da va i
z
z
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 i Iw (p(x, f (x)) p(x, x)) = 1. Odatle dalje sledi
z
pI (w(x), fI (w(x))) = 1 i pI (w(x), w(x)) = 0. Valuacija w je proizvoljna,
pa je mo emo odabrati tako da va i w(x) = di . Tada va i pI (di , fI (di )) =
z
z
z
z
1 i pI (di , di ) = 0, tj. za svako i (i = 0, 1, 2, . . .) va i pI (di , di+1 ) = 1 i
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 i Iw ((y)(z)(p(x, y)
z
p(y, z) p(x, z))) = 1. Kako je w proizvoljna valuacija, mo emo je
z
odabrati tako da va i w(x) = d . Iz Iw ((y)(z)(p(x, y)p(y, z) p(x, z)))
z
= 1 sledi da za proizvoljnu valuaciju w takvu da je w y w (dakle, va i
z
w (x) = w(x) = d ) va i Iw ((z)(p(x, y) p(y, z) p(x, z))) = 1. Kako je
z
w proizvoljna valuacija za koju va i w y w, mo emo je odabrati tako
z
z
da va i w (y) = d . Iz Iw ((z)(p(x, y) p(y, z) p(x, z))) = 1 sledi da
z
za proizvoljnu valuaciju w takvu da je w z w (dakle, va i w (x) =
z
w (x) = w(x) = d i w (y) = w (y) = d ) va i Iw (p(x, y) p(y, z)
z
p(x, z)) = 1. Kako je w proizvoljna valuacija za koju va i w z w ,
z
mo emo je odabrati tako da va i w (z) = d . Iz Iw (p(x, y) p(y, z)
z
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 i Iw (p(x, y)) = 0 ili Iw (p(y, z)) = 0 ili Iw (p(x, z)) = 1, tj. da va i
z
z
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 i pI (d , d ) = 0 ili
z
pI (d , d ) = 0 ili pI (d , d ) = 1. Ve smo dokazali da za svako i (i =
c
0, 1, 2, . . .) va i pI (di , di+1 ) = 1, odakle sledi da za d = di , d = di+1 ,
z
d = di+2 (za proizvoljno i, i = 0, 1, 2, . . .) mora da va i pI (d , d ) = 1,
z
tj. pI (di , di+2 ) = 1. Analogno, jednostavno se pokazuje matemati kom
c
indukcijom da va i pI (di , di+l ) = 1 za proizvoljno i, i = 0, 1, 2, . . . i
z
proizvoljno l, l = 1, 2, . . .. Dakle, va i e i pI (dj , dk ) = 1, tj. pI (dj , dj ) = 1
zc

(jer je dj = dk ). Medutim, ve smo pokazali da za svako i (i = 0, 1, 2, . . .)


c

va i pI (di , di ) = 0, sto je u kontradikciji sa pI (dj , dj ) = 1. Dakle, poz


lazna pretpostavka je bila pogre na, odakle sledi da za datu formulu A
s
ne postoji model koji ima kona an domen.
c

34. Neka je D proizvoljna L-struktura, pri cemu za signaturu L = (, , ar)


va i p i ar(p) = 1 i neka je V proizvoljan skup promenljivih takav da je
z
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 imo da va i Iv ((x)(y)(z)(p(x) p(y)
z
z
p(z))) = 1. Pretpostavimo suprotno da va i Iv ((x)(y)(z)(p(x) p(y)
z
p(z))) = 0. To zna i da postoji valuacija vx takva da je vx x v (neka je
c
vx (x) = dx ) i Ivx ((y)(z)(p(x) p(y) p(z))) = 0. To zna i da postoji valc
uacija vy takva da je vy y vx (va i vy (x) = vx (x) = dx ; neka je vy (y) = dy ) i
z
Ivy ((z)(p(x) p(y) p(z))) = 0. To zna i da za svaku valuaciju vz takvu da
c
je vz z vy va i Ivz (p(x) p(y) p(z)) = 0. Odaberimo valuaciju vz takvu da
z
je vz z vy (va i vz (x) = vy (x) = dx i vz (y) = vy (y) = dy ) na slede i na in:
z
c
c

212

14 Re enja zadataka
s

(a) ako je pI (dx ) = 1 i pI (dy ) = 1, neka je vz (z) = dx ;


(b) ako je pI (dx ) = 0, neka je vz (z) = dx ;
(c) ako je pI (dy ) = 0, neka je vz (z) = dy .
U slu aju (a), va i Ivz (p(x)) = 1, Ivz (p(y)) = 1, Ivz (p(z)) = 1, odakle sledi
c
z

Ivz (p(x) p(y)) = 1 i Ivz (p(x) p(y) p(z)) = 1, sto je u suprotnosti sa


Ivz (p(x) p(y) p(z)) = 0. U slu aju (b), va i Ivz (p(x)) = 0, Ivz (p(z)) = 0,
c
z

odakle sledi Ivz (p(x) p(y)) = 0 i Ivz (p(x) p(y) p(z)) = 1, sto je nemogu e.
c
U slu aju (c), va i Ivz (p(y)) = 0 i Ivz (p(z)) = 0, odakle sledi Ivz (p(x)p(y)) = 0
c
z

i Ivz (p(x) p(y) p(z)) = 1, sto je nemogu e. Dakle, u svakom slu aju dolac
c

zimo do kontradikcije, sto zna i da polazna pretpostavka nije bila ispravna.


c
Dakle, mora da va i Iv ((x)(y)(z)(p(x) p(y) p(z))) = 1. Kako je Iv
z
proizvoljna valuacija, sledi da je data formula valjana.
39. Na primer, (x)A (x)A.
40. Va i (x)(A B) (x)(AB) (x)(A)(x)B (x)A(x)B
z
(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 e dokazati indukcijom po slo enosti izraza ili na slede i
c
z
c
na in: pretpostavimo da za date izraze e1 i e2 postoje dva najop tija unikatora
c
s
1 i 2 . Tada postoje supstitucije 1 i 2 takve da va i 1 = 2 2 i 2 = 1 1
z
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 e samo zamene oblika v v (gde su v i v simboli promenljivih), pa
z
su unikatori 1 i 2 jednaki do na preimenovanje promenljivih.
58. Dati uslovi mogu se reprezentovati na slede i na in:
c
c
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 e se dokazati da iz navedenih formula sledi forz
mula udario(M arko, T una).
61.
A
AB

[A]1
E
ef q
B
B

[B]2

E, 1, 2

Re enja zadataka
s

62.

213

[A]2

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

63.
[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

64

[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

A A

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 enja zadataka
s

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 enja zadataka
s

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

215

You might also like