Professional Documents
Culture Documents
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
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 . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
. .
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
Pohlepna pretraga
6.1 Penjanje uzbrdo u slu aju diferencijabilne funkcije cilja . . . . .
c
109
110
.
.
.
.
.
.
.
.
113
113
114
115
117
119
120
124
124
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
127
127
129
131
132
132
133
133
134
137
138
139
139
140
141
142
142
143
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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 . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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 . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12 Regresija
12.1 Linearna regresija . . . . . . . . . . . . . . . . . . . . . .
12.2 Pretpostavke linearne regresije . . . . . . . . . . . . . .
12.3 Ispitivanje kvaliteta linearne regresije . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
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
tati tek o ekuju, uprkos tome sto su ve razvijeni mnogi inteligentni sistemi
c
c
10
1 Uvod
koje je utvrdjeno ili mo e biti utvrdjeno da su ta na. Ipak, mi cemo cesto imati
z
c
11
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
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
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
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
2.1
i ) su iskazne formule;
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
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
19
2.2
2.2.1
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
20
2 Iskazna logika
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.
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.
21
2.2.2
Istinitosne tablice
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
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
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
Primer 2.6 Neke od logi kih ekvivalencija (ili, preciznije, neke od shema logi kih ekvic
c
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
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
Zadaci
Zadatak 13
Zadatak 14
Zadatak 15
(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
2.2.4
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 .
27
Primer 2.8
x1
1
0
1
0
x2
1
1
0
0
f (x1 , x2 )
0
1
1
1
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
potpun sistem.
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
(A)
(A)
2 (A)
(A B)
(A) (B)
(A B)
(A) + (B) + 1
(jer ne postoji beskona an strogo opadaju i niz prirodnih brojeva ciji je prvi element (A)).
c
c
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
literala. Ipak, radi odredenosti rada algoritma, smatra emo da je skup (odnosno
c
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
sa .
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
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
32
2 Iskazna logika
33
34
2 Iskazna logika
Glava 3
Osnovna novina u odnosu na iskaznu logiku je uvodenje kvantikovanja, univerzalnog i egzistencijalnog. Zahvaljuju i kvantikatorima, u logici prvog reda
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
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.1
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
37
i su atomi ke formule;
c
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
formule, pri cemu kvantikatori imaju ve i prioritet od svih logi kih veznika.
c
c
38
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;
39
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
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
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
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
onda je Iv (A) = 1;
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) =
ako je A = B1 B2 , onda je
Iv (A) =
41
ako je A = B1 B2 , onda je
Iv (A) =
ako je A = B1 B2 , onda je
Iv (A) =
42
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
Zadaci
Zadatak 29
Zadatak 30
fI
b
a
a
pI
a
b
c
a b
1 1
1 0
0 0
c
0
1
1
43
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.
3.2.2
44
(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)
45
[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 ].
(y)(A[x y])
(x)A
(y)(A[x y])
z
slobodna pojavljivanja promenljive y)
zakon o preimenovanju vezane
promenljive (pri cemu A ne sadr i
z
slobodna pojavljivanja promenljive y)
46
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).
47
Zadaci
Zadatak 39
Zadatak 40
48
3.2.3
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
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
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
51
52
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
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
53
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.
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
55
56
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.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
58
59
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
61
62
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
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).
63
Yes
Primetimo da, na primer, upit
? - mortal(platon).
ne mo e da uspe (sem ako nije zadata i cinjenica man(platon)).
z
:
:
:
:
:
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]
64
po etnog skupa klauza; neka pre i-tog stupnja teku i skup klauza cine klauze
c
c
65
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
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
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
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) .
67
Zadatak 58
Va i slede e:
z
c
Janko ima psa.
Svaki vlasnik psa voli zivotinje.
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
koji je semanti ke prirode. Izmedu ova dva pojma postoji veza i deduktivni
c
68
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
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.
nekoliko neoslobodenih pojavljivanja pretpostavke F . Pretpostavkama su pridru ene oznake (obi no prirodni brojevi), koje se zapisuju i u okviru zapisa
z
c
cvoru pridru ena formula, a svakom listu ili pretpostavka ili aksioma. Forz
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
70
.
.
.
.
.
.
.
A
.
.
.
.
B
C
D
.
.
.
.
D
.
.
.
(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
A C:
AB
E
B
BC
E
C
I, 1
AC
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)
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
71
[(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)
xB:
x(A B)
E
AB
E
B
I
xB
72
Zadaci
Zadatak 61
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
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
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
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
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
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
4.3
Po etni primeri
c
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)
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).
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
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
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
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.
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
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
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
81
r(X),s(Y)
C5(X=a)
s(Y)
C5(X=b)
s(Y)
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)
82
4 PROLOG
No
r(X),s(Y),!
C5(X=a)
s(Y)
C5(X=b)
s(Y)
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
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
83
4.7
84
4 PROLOG
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
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
[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=[]
uspe nog nala enja tra enog clana (dok se u drugoj verziji pretraga do kraja
s
z
z
4.8 Liste
87
88
4 PROLOG
split(R,Ra,Rb).
A =< B, merge(Ra,[B|Rb],M).
A > B, merge([A|Ra],Rb,M).
89
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
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
91
not(Q), \+Q daje efekat negacije kao neuspeha (kao sto je obja njeno u
s
poglavlju 4.7.
Obrada PROLOG termova
92
4 PROLOG
xfx, fx
fx
xfy
xfy
fy
xfx
yfx, fx
yfx
xfy
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
4.10
Kao prvi veci primer PROLOG programa koji ilustruje razne koncepte jezika,
93
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
94
4 PROLOG
4.11
(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,[],[]).
95
% Brisanje literala f
dpll(X):-formula_sadrzi_literal(X,f),!,brisi_f(X,Y),dpll(Y).
% 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 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
97
Pretraga grafa
5).
7).
1).
7).
1).
6).
3).
5).
8).
4).
5).
5).
6).
7).
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
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
98
4 PROLOG
Potezi predstavljaju prevo enje jedne ili dve osobe na drugu stranu reke.
z
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
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).
99
Zadaci
Zadatak 65
Va i slede e:
z
c
Janko ima psa.
Svaki vlasnik psa voli zivotinje.
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
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
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
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.
U slu aju primera nala enja puta izmedu dva grada, funkcija prelaska je
c
z
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
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
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
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
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
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
5.2
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:
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
je zbir direktnog puta do njega i vazdu nog rastojanja izmedu njega i ciljnog
s
107
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
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
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
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
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
problema trgova kog putnika sa n cvorova za koju ovako formulisan pohlepni algoritam
c
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
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
6.1
f
f f
,
,...,
x1 x2
xn
111
f (xn ) f (xn )
f (xn )H(xn ) f (xn )
2 f (xn )
xi xj
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.
112
6 Pohlepna pretraga
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 )
2
0
0
2
12k2
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)
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.
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
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
7.1
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
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
BFS ,,otvara sve cvorove koji su susedni teku em cvoru i kasnije, otvara,
c
koji se razmatraju obi no se cuvaju u redu, tj. u FIFO listi. I u ovom pristupu, da
c
114
Figure 7.1: Primer obilaska grafa primenom algoritma DFS (oznake cvorova
Figure 7.2: Primer obilaska grafa primenom algoritma BFS (oznake cvorova
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
cvora.
Ideja Dejkstrinog algoritma mo e se ilustrovati na slede i na in. Pretpostavimo
z
c
c
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
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
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
traga za cvorom u u skupu cvorova Q (to su cvorovi koji su ,,na tlu) takvim da
Taj cvor se tada bri e iz skupa Q. Ukoliko je to ciljni cvor, onda se konstrui e
s
s
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*
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 [?],
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
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
gde je g(n) cena puta od polaznog cvora do cvora n, a h(n) je procenjena (heuristi ka)
c
7.3.1
118
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
cvor
A
D
G
F
B
H
E
cvor(roditelj) dodaje
se u zatvorenu listu
A(-)
D(A)
G(A)
F(D)
B(F)
H(D)
E(B)
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
4
3
5
4
7.3.2
1
3
A
D
G
H
B
F
E
teku i
c
cvor
cvor(roditelj) dodaje
se u zatvorenu listu
A(-)
D(A)
G(A)
H(D)
B(H)
F(D)
E(B)
Obilasci grafa u dubinu i sirinu mogu se smatrati specijalnim slu ajevima alc
goritma A*.
120
neku veoma veliku vrednost. Kad god obradujemo neki cvor dodajemo vrednost C svim njegovim susedima. Nakon svake dodele smanjujemo vrednost
i kao takve nedostupne). U ovoj varijanti problema, cene su pridru ene cvorovima
z
pridru iti cena 1 a svakom dijagonalnom cena 1.414 2 (ovakva cena odgoz
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
7.3 A*
121
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
122
74
60
54
14 60 10 50 14 40
60
40
10 50
74
10 30
60
54
14 60 10 50 14 40
Opisani postupak sprovodimo za sva cetiri susegna polja i, u ovom slu aju,
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
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
slu aju ona ne uti e na pronadeni put, ali su ovakve izmene u op tem slu aju
c
c
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
Svojstva algoritma A*
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
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.
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
gde je h optimalna heuristika, tj. funkcija koja vra a ta nu cenu puta od cvora
c
c
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
7.3.5
Implementaciona pitanja
i drugih skupih operacija itd.) U ovom poglavlju ukratko cemo prokomentarisati nekoliko na ina koji popravljaju ekasnost implementacije algoritma
c
A*.
7.3 A*
125
menata iz otvorene liste zahteva vreme O(log V ), gde je V broj cvorova grafa, a
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
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.
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
Glava 8
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).
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
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
128
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
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
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
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
koriste i obima izra unavanja, covekov na in zaklju ivanja je izmedu ovih krac
c
c
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
8.2
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.
Cvor x stabla igre je neposredni predak cvora y ako se iz pozicije/ vora x nekim
c
130
potomak cvora x). Za cvor x stabla ka emo da je predak cvora y ako postoji niz
z
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
. ....... .
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
131
8.3
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
prilagodava je speci nim znanjima o igri koje primenjuje u daljem toku parc
tije.
132
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
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
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
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
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 ]
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
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
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
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
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
stavljaju zavr na stanja igre); dalji postupak je rekurzivan: kao ocena cvoru
s
max
5
min
5
2 1
max
5
2 1
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.
8.4.4
Algoritam alfa-beta
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
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
wn+1 < wk
2 < 5
max
wk
wn
wn+1
wj
odsecanje
7>5
odsecanje
min
1
2 1
odsecanje
max
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
cvoru tra i maksimum ocena mogu ih poteza, to zna i da taj cvor (sa ocenom
z
c
c
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
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
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
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
138
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
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
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
sve ostale, cikli no vra a do tog istog poteza. Takode, kako je mogu e da killer
c
c
c
8.4.6
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
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
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
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
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
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
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
8.4.8
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
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
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
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
141
n
1n
R =
n
(0.925)n0.747 n3/4 .
1 n
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
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
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
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
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
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
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
8.5.2
Tekstovi saveta
143
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.
8.6
Implementaciona pitanja
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
kao prihvatljivo re enje za opis table izabrati i niz bitovskih matrica. Tako npr.
s
bila bi zamenjena sa 12 (svaki igra ima po sest tipova gura) tabela 8 8 ciji
c
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
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
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
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.
146
Glava 9
Genetski algoritmi
Genetski algoritmi (GA) su familija op tih heuristi kih algoritama globalne
s
c
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
u pitanju lokalni estremum niti o tome sa kolikom gre kom je odredeno re enje.
s
s
9.1
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
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
male koli ine mutacije. Jedinka mo e biti manje ili vi e prilagoden okolini.
c
z
s
pre ivljavanja i ostavljanja potomstva, a time i preno enja svog genetskog maz
s
9.2
ra una njen kvalitet (analogon prilagodenosti okolini). Funkcija koja pridru uje
c
z
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
nekog procenta najprilagodenijih jedinki) ili kada je ispunjen neki drugi uslov.
Ukoliko je dostignut zadati broj generacija, nema nikakvih garancija da teku a
c
149
9.3
Reprezentacija jedinki
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
150
9 Genetski algoritmi
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
2000
400
3000 3128
500
B (1111111111)
4000
800
5000
900
1000
9.4
Funkcija prilagodenosti
151
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
9.5
Inicijalizacija i zaustavljanje
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
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
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
152
9 Genetski algoritmi
9.6.1
Ruletska selekcija
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
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
153
9.6.2
Turnirska selekcija
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
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
154
9 Genetski algoritmi
roditelj 1
roditelj 2
ta ke prekida
c
dete 1
dete 2
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
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
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
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
155
9.9
Parametri algoritma
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
9.10
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
smatrati neki skup najboljih re enja, sto je cesto veoma pogodno. S druge
s
9.11
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
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
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
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.
biti taj sto je ova oblast duboko motivisana prakti nim primenama. Postignuti
c
su rezultati u raznim oblastima.
162
10 Uvod
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
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
10.1
Generalizacija i apstrakcija
163
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,
10.2
164
10 Uvod
1500 iz obe klase. Iz obe klase cemo izdvojiti po 500 clanaka kako bismo posle
u enja procenili kvalitet sistema.
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
za razlikovanje clanaka.
U skladu sa ovim, mo emo nabrojati sve re i iz nekog re nika ra unarske
z
c
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
165
Figure 10.2: Osim krugova koji predstavljaju clanke, prikazana je i prava koja
ih razdvaja
ax + by + c = 0
lazne prave dok ona ne bude pozicionirana izmedu ta aka koje treba da razdc
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
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
10.3
10.4
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
je bila funkcija f . U u enju igranja saha, ciljna funkcija bi vr ila pridru ivanje
c
s
z
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
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
termin instanca ili primerak. U slu aju prepoznavanja ra unarskih clanaka, inc
c
10.5.1
Reprezentacija podataka
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
klasikacijom clanaka. Atributi takode mogu biti i kategori ki, odnosno mogu
c
predstavljati imena nekih kategorija kojima se ne mogu jednozna no dodeliti
c
168
10 Uvod
biti grad u kome osoba zivi, pol, nacionalnost i sli no. U slu aju prepoznac
c
10.5.2
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
10.6
Zahvaljuju i svom brzom razvoju oblast ma inskog u enja se zna ajno razc
s
c
c
169
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.
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
pri cemu se tekstu nepoznatog autora pridru uje jedan od nekoliko unapred
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
11.1
172
11 Klasikacija
11.1.1
i (xi
yi )n
0,
1,
xy
xx yy
x=y
x=y
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
173
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
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.
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,
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
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.
177
(xi yi )2
d(x, y) =
i=1
postupak klasikacije.
11.2
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
tako sto bi se dozvolilo da odgovori ne moraju biti samo da ili ne, ve da mogu
c
svakom cvoru stabla odgovara test nekog atributa instance, a grane koje izlaze
178
11 Klasikacija
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
nani e, pitaju i se u svakom cvoru koji je najbolji atribut koji se u datom cvoru
z
c
ovih cvorova tako da svaki od njih nasleduje primere koji imaju odgovaraju u
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
179
Entropija(S) =
pi log2 pi
i=1
s
klasama koje se ce ce javljaju, a du e onima koje se rede javljaju, mo e se doz
z
180
11 Klasikacija
|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
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
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
2
3
0 0 = 0.971
5
5
Opasna
Da
Ne
Ne
Ne
Da
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
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
c
To dovodi do potrebe za ponavljanjem istih testova u levom i desnom podstablu, poto
s
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
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
183
OTROVNOST
neotrovna
otrovna
VELICINA
mala
NE
DA
velika
ISHRANA
biljke
NE
meso
DA
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
11.3
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
ravo koristili preciznost kao meru kvaliteta. Ako je n ukupan broj clanaka i ako
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
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
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
186
11.4
11 Klasikacija
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
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
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
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
187
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
188
11 Klasikacija
Glava 12
Regresija
12.1
Linearna regresija
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
190
12 Regresija
y = 0 + 1 x 1 + 2 x 2 + . . . + n x n
(12.1)
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
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
y = 0 + 1 x
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
191
120
q
q
q
q
q
100
q
q
qq
q
q
q
q
80
q
q
qq
q
q
q
q
60
40
q
q
q
q
q
q
q
q
q
q
q
q
q
qqq
q
q
q
q
qq
q
q
qq
q
q
q
q
150
160
170
180
190
200
1
n
(yi yi )2
i=1
= (X X)1 X Y
pri cemu je
x11
x21
.
.
.
x12
x22
..
.
.
.
.
X=
1
1
.
.
.
xn1
xn2
x1m
x2m
xnm
Y =
y1
y2
.
.
.
yn
192
12 Regresija
= (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
12.2
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 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
193
1
n
(yi yi )2
i=1
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
odreknemo kori cenja bilo kakvih metoda predikcije pri predvidanju vrednosti
s
promenljive Y , najmanju srednjekvadratnu gre ku o ekujemo ukoliko uvek
s
c
1
n
(yi y)2
i=1
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
y
i=1
194
12 Regresija
195
10
15
20
30
20
10
10
20
30
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
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
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
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
10
q
qq
q
q
qq
q
q
q
q
q
q
q
q
q
q
q
q
20
q
q
50
60
70
80
90
100
12.4
trening
Zbog toga cemo iskoristiti priliku da ga jo jednom prokomentari emo u druga ijem
s
s
c
197
20
cilacije koje pravi izmedu ta aka cine njegovo kori cenje u predikciji potpuno
c
s
q
q
15
q
q
q
10
q
q
q
q
q
q
q
10
15
20
12 Regresija
20
198
q
q
15
q
q
q
10
q
q
q
q
q
q
q
10
15
20
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
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
204
14 Re enja zadataka
s
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)
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)
=
Iv (A1 B1 )
= 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
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
R(A)
0
1
0
1
A
1
0
0
1
q
0
1
0
1
R(R(B))
0
1
0
1
R(B)
1
0
0
1
B
0
1
0
1
Re enja zadataka
s
207
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
lij B1 B2 . . . Bn
i=1 j=1
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
fI (w(x))
b
a
a
pI (w(x), fI (w(x)))
1
1
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.
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.
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))
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 }.
Re enja zadataka
s
211
212
14 Re enja zadataka
s
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
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
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