You are on page 1of 223

Predrag Janicic Mladen Nikolic

Vestacka
inteligencija

c Juni 2010

2
Autori:
dr Predrag Janicic, vanredni profesor Matematickog
fakulteta u Beogradu email: janicic@matf.bg.ac.rs
url: www.matf.bg.ac.rs/~janicic
Mladen Nikolic, asistent na Matematickom fakultetu u
Beogradu email: nikolic@matf.bg.ac.rs
url: www.matf.bg.ac.rs/~nikolic

VES TAC KA INTELIGENCIJA

Sva prava zadrzana. Nijedan deo ovog materijala ne moze biti


reprodukovan niti smesten u sistem za pretrazivanje ili transmitovanje u
bilo kom obliku, elektronski, mehanicki, fotokopiranjem, smanjenjem ili na
drugi nacin, bez prethodne pismene dozvole autora.

Sadrz aj
1 Uvod9
1.1 Uska i ops ta ves tac ka inteligencija ................................11

I Logika i logic ko programiranje15


2 Iskazna logika17
2.1 Sintaksa iskazne logike................................................................17
2.2 Semantika iskazne logike............................................................19
2.2.1 Valuacija, interpretacija, model; zadovoljive,
valjane, porecive i kontradiktorne formule
19
2.2.2 Istinitosne tablice..............................................................21
2.2.3 Logic ke posledice, logic ki ekvivalentne formule,
supstitucija
23
2.2.4 Potpuni skupovi veznika...............................................26
2.2.5 Normalne forme...............................................................28
2.2.6 DejvisPatnamLogmanLovelandova procedura.30
2.2.7 Primer modelovanja problema u iskaznoj logici. .31
3 Logika prvog reda35
3.1 Sintaksa logike prvog reda.........................................................36
3.2 Semantika logike prvog reda...................................................39
3.2.1 Valuacija, interpretacija, model; zadovoljive,
valjane, porecive i kontradiktorne formule
39
3.2.2 Logic ke posledice, logic ki ekvivalentne formule,
supstitucija
43
3.2.3 Normalne forme...............................................................48
3.2.4 Unifikacija.............................................................................52
3.2.5 Metod rezolucije...............................................................57
3.3 Prirodna dedukcija........................................................................67
3.4 Saz etak ...........................................................................................72
4 PROLOG73
4.1 Interpretatori i kompilatori.......................................................73
4.2 Sintaksa i semantika u PROLOG-U..........................................74
4.3 Poc etni primeri ...........................................................................75
4.4 PROLOG i metod rezolucije........................................................77
4.5 Stablo izvodjenja..........................................................................78
3

SADRZ

4
AJ

4.6 Operator sec enja .........................................................................79


4.7 Negacija kao neuspeh...................................................................83
4.8 Liste.....................................................................................................85
4.9 Ugradjeni predikati........................................................................89
4.10Implementacija KNF algoritma................................................92
4.11Implementacija DPLL algoritma.............................................94
4.12Pretraga grafa................................................................................97
4.13Primer res avanje jednostavnog problema ........................97

II Pretraga101
5 Res avanje problema kao pretraga103
5.1 Kvalitet algoritama pretrage.....................................................105
5.2 Neinformisana i informisana pretraga..................................106
6 Pohlepna pretraga109
6.1 Penjanje uzbrdo u sluc aju diferencijabilne funkcije cilja 110
7 Odredivanje puteva u grafu113
7.1 Obilazak grafa u dubinu i s irinu ...........................................113
7.2 Dejkstrin algoritam.......................................................................114
7.3 A*.........................................................................................................115
7.3.1 Primer upotrebe algoritma A*....................................................117
7.3.2 Specijalni sluc ajevi ....................................................................119
7.3.3 Primer upotrebe algoritma A* na uniformnoj mrez i. . .
120 7.3.4
Svojstva algoritma A*
124
7.3.5 Implementaciona pitanja.............................................124
8 Programiranje logic kih igara127
8.1 Razvoj automatskog igranja logic kih igara i osnovni koncepti.127
8.2 Legalni potezi i stablo igre.........................................................129
8.3 Otvaranje i biblioteka partija......................................................131
8.4 Sredis njica ....................................................................................132
8.4.1 Static ka ocena pozicije i funkcija evaluacije .......132
8.4.2 Pretraz ivanje stabla igre .............................................133
8.4.3 Algoritam minimaks.........................................................133
8.4.4 Algoritam alfa-beta...........................................................134
8.4.5 Heuristika killer.....................................................................137
8.4.6 Iterativni alfa-beta/killer algoritam...........................138
8.4.7 Stabilno pretraz ivanje .................................................139
8.4.8 Prekidi i vremenska ogranic enja .............................139
8.4.9 Sloz enost algoritama za pretraz ivanje stabla igre
140
8.5 Zavrs nica ........................................................................................141
8.5.1 Skupovi pozicija kao klase ekvivalencija...................142
8.5.2 Tekstovi saveta..................................................................142
8.6 Implementaciona pitanja............................................................143

SADRZ AJ
9 Genetski algoritmi147
9.1 Motivacija za genetske algoritme...........................................147
9.2 Osnovni genetski algoritam......................................................148
9.3 Reprezentacija jedinki................................................................149
9.3.1 Binarna reprezentacija...................................................149
9.4 Funkcija prilagodenosti.............................................................150
9.5 Inicijalizacija i zaustavljanje......................................................151
9.6 Selekcija...........................................................................................151
9.6.1 Ruletska selekcija..............................................................152
9.6.2 Turnirska selekcija...........................................................153
9.7 Reprodukcija i genetski operatori............................................153
9.7.1 Ukrs tanje .........................................................................153
9.7.2 Mutacija................................................................................154
9.8 Zaustavljanje....................................................................................154
9.9 Parametri algoritma.......................................................................155
9.10Svojstva genetskih algoritama.................................................155
9.11Primer primene genetskih algoritama evolucija agenta
9.11.1Implementaciona pitanja.............................................157

III

Mas insko uc enje159

10 Uvod161
10.1Generalizacija i apstrakcija........................................................162
10.2Primer problema uc enja ..........................................................163
10.3Nadgledano i nenadgledano uc enje .....................................166
10.4Ciljna funkcija i modeli podataka.............................................166
10.5Podaci...............................................................................................167
10.5.1Reprezentacija podataka................................................167
10.5.2Podaci za trening i podaci za testiranje..................168
10.6Dizajn sistema koji uc i .............................................................168
11 Klasifikacija171
11.1Metode klasifikacije zasnovane na instancama................171
11.1.1Metoda n-najbliz ih suseda ...........................................172
11.1.2N-grami................................................................................173
11.2Uc enje stabala odluc ivanja ...................................................177
11.3Mere kvaliteta i tehnike evaluacije klasifikacije................183
11.4Preterano prilagodavanje modela podacima za trening 186
12 Regresija189
12.1Linearna regresija..........................................................................189
12.2Pretpostavke linearne regresije..............................................192
12.3Ispitivanje kvaliteta linearne regresije.................................192
12.4Preterano prilagodavanje modela podacima za trening 196
13 Klasterovanje199

156

SADRZ

6
AJ

IV

Res enja zadataka201

14 Res enja zadataka203

Predgovor
Ovo su beleske koji prate predavanja i vezbe iz predmeta
Vestaca inteligen- cija koje smo drzali akademskih godina 2007/08,
2008/09, 2009/10. Funkcija beleski je da olaksaju pracenje
predavanja i da sluze kao podsetnik tokom pripremanja ispita.
Oni ne mogu da zamene pohadanje nastave i koriscenje druge
literature.

Predrag Janicic i Mladen


Nikolic
Beograd, juni 2010.

8
AJ

SADRZ

Glava 1

Uvod
Smatra se da je vestacka inteligencija kao informaticka disciplina
ustanovljena na znamenitoj konferenciji The Dartmouth Summer Research
Conference on Arti- ficial Intelligence u Darmutu (Sjedinjene Americke
Drzave), 1956. godine. Tom prilikom predlozeno je, od strane
Dzona Makartija, i samo ime discipline, ne sasvim srecno, jer je
to ime cesto izazivalo nedumice i podozrenje. Konferencija je
trajala mesec dana i bila je pre svega usmerena ka profilisanju nove
oblasti koja je nastajala.
Konferenciju su organizovali Dzona
Makartija, Marvin Min- ski, Natanijel Rocester i Klod S enon.
Vestacka inteligencija je jedna od oblasti racunarstva koja se
poslednjih decenija najbrze razvija. Paralelno sa tim burnim razvojem
rastu i ocekivanja od ove discipline. Dok se za neke oblasti racunarstva
vec smatra da su zaokruzene i da
se u njima ne ocekuju novi znacajni prodori, od vestacke
inteligencije se rezul- tati tek ocekuju, uprkos tome sto su vec
razvijeni mnogi inteligentni sistemi koji funkcionisu izuzetno
dobro. Ovo mozda mozemo da objasnimo time sto ti
inteligentni sistemi, i pored varljivih spoljnih manifestacija,
funkcionisu na principima koje, najcesce ne mozemo smatrati
zaista inteligentnim. Time, nar- avno, vestacka inteligencija samo
dovbija na atraktivnosti, a novi eksperimenti i teorijska istrazivanja
predstavljaju put ka novim primenama u najrazlicitijim oblastima.
Kako je razvoj vestacke inteligencije oduvek bio zasnovan na komplementarnom povezivanju teorije i eksperimenata, tako i buduci
razvoj za- hteva prosirivanje i ucvrscivanje teorijskih znanja,
pre svega matematickih, ali i znanja o specificnim oblastima
primene, kao i njihovu adekvatnu formal- izaciju.
U uvodnom delu pokusajmo da odgovorimo i na osnovna pitanja
sta je to inteligencija i sta je to vestacka inteligencija.
Uobicajeno pod inteligencijom podrazumevamo sposobnost
usvajanja, pamcenja i obrade odredjenjih znanja. Ipak, nijedna
definicija vestacke inteligencije nije opste prihvacena (bar ne
neka koja bi odgovarala uobicajenom, svakodnevnom smislu i
istovremeno precizno i formalno opisivala pojam). U svakom
slucaju mozemo smatrati da inteligencija podrazumeva bar dve sposobnosti: sposobnost pamcenja,
skladistenja znanja i mogucnost njegove obrade. Osoba (ili
masina) bez ikakvog znanja ne moze biti smatrana inteligentnom.
Takodje, inteligentnom ne moze biti smatrana ni osoba (ili
masina) sa ogromnom kolicinom statickog znanja odnosno podataka, ali bez sposobnosti da to znanje obradjuje i da resava
probleme u vezi sa njim. Postoje i drugi aspekti inteligencije.
Jedan od njih je brzina obrade

10

1 Uvod

znanja, koja je, kada su u pitanju racunari, zavisna ne samo od


procedura za zakljucivanje, vec, naravno, i od tehnickih
karakteristika pojedinog racunara. Sposobnost ucenja - usvajanja
novih znanja takodje je jedan od aspekata in- teligencije, iako je
mozemo uvrstiti u sposobnost resavanja problema.
Aspektom inteligencije mozemo smatrati i sposobnost komunikacije
sa drugim inteligentnim bicima (masinama), koju takodje
mozemo uvrstiti u resavanje problema. Smatracemo, dakle, da
bice ili masina imaju atribute intelignetnog, ako imaju navedena
svojstva. Ako se radi o masini odnosno uredjaju bilo koje vrste sa
navedenim svojstvima, govoricemo o vestackoj inteligenciji.
Podse- timo se i jedne klasicne definicije vestacke
inteligencije: ako su u odvojene dve prostorije smestene jedna
ljudska osoba i neka naprava i ako na identicne probleme one
pruzaju odgovore na osnovu kojih se ne moze pogoditi u ko- joj
sobi je covek, a u kojoj naprava, onda mozemo smatrati da
ta naprava ima atribute vestacke inteligencije. Bez obzira na sve
manjkavosti ovih opisa, necemo pokusavati da pronadjemo bolje
opise pojmova o kojima je rec. Nakon svega, dobro je navesti i
jednu rigorozniju i mozda suvoparniju, ali verovatno najbolju
definiciju vestacke inteligencije to je disciplina koja se bavi
prob- lemima u kojima se javlja kombinatorna eksplozija.
Za pojam inteligencije sustinska su dva pitanja: pitanje znanja i
pitanje za- kljucivanja, koja, kada govorimo o racunarima,
odgovaraju pojmovima baze znanja i komponente zakljucivanja.
Komponenta zakljucivanja (izvodjenja) predstavlja takodje neku
vrstu znanja - to je znanje o procesu izvodjenja novih informacija iz
iz date baze znanja i o pravilima po kojima se to izvodjenje vrsi.
Znanje ovog tipa zvacemo meta-znanjem. Sam pojam znanja,
takodje ima vise aspekata. Po mnogim filozofskim koncepcijama
znanje predstavlja tvrdjenja za koje je utvrdjeno ili moze biti
utvrdjeno da su tacna. Ipak, mi cemo cesto imati potrebu da
radimo i sa informacijama koje ne moraju da budu tacne, pa cemo
prihvatiti siri pojam znanja i pod njim podrazumevati i istinite,
potvrdjene cinjenice, ali i hipoteze, nepotpune informacije i
informacije
date
sa
odredjenim
verovatnocama.
Izbor
reprezentacije znanja je jedan od kljucnih problema i on je u
direktnoj vezi i sa prirodom odredjenog znanja, ali i sa prirodom
meha- nizama za zakljucivanje.
Mehanizmi za zakljucivanje
moraju biti prilagodjeni reprezentaciji znanja i njegovoj prirodi, pa c
e u jednom slucaju biti zasnovani na klasicnoj logici, a u
drugom na modalnoj logici, teoriji verovatnoce, fazi logici itd.
Zakljucivanjem mocemo smatrati proces po kojem se na osnovu
baze znanja moze izvesti informacija koja u njoj nije eksplicitno
sadrzana. Tako, na primer, ako u bazi znanja imamo cinjenice:
I1 : ...
I2 : ...
na osnovu njih moguce je izvesti cinjenicu:
I3 : ...
koja zaista nije bila eksplicitno sadrzana u polaznoj bazi
znanja.
Navedeni primer odgovara uobicajenom zakljucivanju
koje odgovara ljudskom iskustvu. C esto cemo se, medjutim,
susretati sa problemima kod kojih je tesko precizno zasnovati
proces zakljucivanja koji odgovara covekovom i biti prinudjeni da
tragamo za sofisticiranijim tehnikama koje odgovaraju tim
zahtevima. U vezi

1.1 Uska i opsta vestacka inteligencija

11

sa formalizacijom prirodnog toka zakljucivanja su i problemi monotonog i


nemonotonog zakljucivanja. Na kraju uvodnog dela jednostavnim primerom
ilustrovacemo nekoliko razlicitih oblika zakljucivanja. Razmotrimo
odnos veze
(i)x(P (x) Q(x))
i
cinjenic
a

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

Izvodjenje cinjenice Q(a) na osnovu (i) i (ii) je potpuno


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

1.1

Uska i opsta vestacka inteligencija

The advent of a human-level artificial intelligencea machine


capable of the rich- ness of expression and nuance of thought that
we associate with 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 figure that doesnt touch on the wealth that a human-level artificial
intelligence could generate across industries. At present, the worlds
programmers have succeeded in auto mating the delivery of
electricity to our homes, the trad- ing of stocks on exchanges, and
much of the flow of goods and services to stores and offices across
the globe, but, after more than half a century of re- search, they
have yet to reach the holy grail of computer sciencean artificial
general intelligence (AGI). Is the tide turning? At the second annual
Singular- ity Summit in San Francisco last September, I discovered
that the thinkers and researchers at the forefront of the field are
pitched in an intellectual battle over how soon AGI might arrive and
what it might mean for the rest of us. The Not- So-Rapid Progress Of
AI Research The scientific study of artificial intelligence has many
roots, from IBMs development of the first 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 artificial 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.


Marvin Minsky, proclaimed.

In an ebullient moment in 1967,

12

1 Uvod

Within a generation . . . the problem of creating artificial intelligence


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

1.1 Uska i opsta vestacka inteligencija

13

a math problem. The scruffies 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 sci- entific community generally accepted
the premise that AIs could be written to perform specific tasks
reasonably well, but largely resisted the notion of super- human
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 firm Self-Aware Systems.
Back in the early Sixties, people thought that something like
machine vision would be a summer project for a masters stu- dent.
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
logicko
programiranje

Glava 2

Iskazna logika
U iskaznoj logici promenljive reprezentuju iskaze. Iskazi mogu biti
kombino- vani u slozenije iskaze logickim veznicima. Iskazna
logika dovoljno je izrazajna za opisivanje i reprezentovanje mnogih
problema, ukljucujuci mnoge prakticne probleme, kao sto je, na
primer, dizajn integrisanih kola.
Iskazna logika ima tri aspekta: svoju sintaksu (ili jezik), svoju
semantiku (ili znacenje iskaza) i svoje deduktivne sisteme. I
semantika i deduktivni sistemi grade se nad isto definisanom
sintaksom, tj. nad istim skupom formula.
Centralni problemi u iskaznoj logici su ispitivanje da li je data
iskazna for- mula valjana (tautologija) i da li je data iskazna formula
zadovoljiva. Ovaj drugi problem poznat je kao problem SAT i on je
tipican predstavnik skupa NP-kompletnih problema.
Postoji vise metoda i pristupa za ispitivanje valjanosti i
zadovoljivosti. Neki od njih su semanticke, a neki deduktivne (tj.
sintaksno-deduktivne) prirode. Kljucna veza izmedu ova dva
koncepta je tvrdenje da je iskazna formula valja- na (sto je
semanticka kategorija) ako i samo ako je ona teorema (sto je
deduk- tivna kategorija). Zahvaljujuci ovoj vezi, sintaksa iskazne
logike (jezik iskazne logike),
njena semantika (konvencije o
znacenju formula) i njena deduktivna svojstva cine kompaktnu
celinu.

2.1

Sintaksa iskazne logike

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


iskljuci- vo kao o nizovima simbola i ne uzima u obzir bilo kakvo
njihovo (moguce) znacenje.
Definicija 2.1 Skup iskaznih formula (ili jezik iskazne logike) nad
prebrojivim skupom iskaznih slova P je skup za koji vazi:

iskazna slova (iz skupa P ) i logicke konstante (T i ) su iskazne formule;


ako su A i B iskazne formule, onda su i (A), (A B), (A B), (A B) i
(A B) iskazne formule.

iskazne formule mogu se dobiti samo konacnom primenom prethodna dva


prav- ila.

18

2 Iskazna logika

Umesto termina iskazna formula cesto cemo pisati krace formula ili
iskaz.
U daljem tekstu smatracemo (ako nije drugacije naglaseno) da
je skup P fik- siran. Elemente skupa P obicno oznacavamo malim
latinicnim slovima (even- tualno sa indeksima). Iskazne formule
obicno oznacavamo velikim latinicnim slovima (eventualno sa
indeksima). Skupove iskaznih formula obicno oznaca- vamo
velikim slovima grckog alfabeta (eventualno sa indeksima).
Logicke veznike zovemo i bulovskim veznicima ili, krace, veznicima.
Zapis
(A) citamo negacija A ili ne A. Zapis (A B) citamo A konjunkcija B ili A i
B.
ZapisA(A
B) citamo A disjunkcija B ili A ili B. Zapis (A B)
citamo
implikacija
ekvivalencija
B ili A B ili iz A sledi B. Zapis (A B) citamo A
ekvivalentno B.
Iskazna skupova
slova zovemo
i iskazne
iliiskaznim
iskazne varijable.
Elemente
Pa simbol
i {T, }
zovemopromenljive
atomickim
Simbol
T atomicka
citamo te, iskazna
citamo
nete.
Literal je
iskaznaformulama.
formula
koja je ili
formula ili negacija atomicke iskazne formule. Klauza je disjunkcija literala.
Ako su dve iskazne formule A i B sintaksno identicne (tj. ako su
jednake kao nizovi simbola), onda to oznacavamo A = B. Ako dve
iskazne formule A
i B nisu sintaksno identicne, onda to oznacavamo A = B.
Zagrade
se iskazna
koriste kako
bi se izbegla
visesmislenost.
Naime,
bez
zagrada,
formula
c ima dva se
moguca
tumacenja:
((a b) c)
i (a a
(b poljske

c)).b Visesmislenost
moze
izbeci
i
koriscenjem
prefiksne
notacije.
U
toj
notaciji,
iskazna
((a b)a c)
se Ipak,
zapisuje
a b c, a iskazna
formula (a
(b c))formula
se zapisuje
b c.
zbog citljivosti,
koristicemo
infiksni zapis, zapis iskaznih formula koji odgovara prethodnoj
definiciji. Da bismo izbegli koriscenje velikog broja zagrada
obicno izostavljamo spoljne za- grade i usvajamo konvenciju uz
koju u nekim iskaznim formulama neke za- grade mogu biti
izostavljene bez straha od visesmislenosti. Ta konvencija zasnovana je na prioritetu veznika i to na sledeci nacin (veznici su
poredani po
prioritetima od veceg ka manjem):
.
Definicija 2.2 Skup potformula formule A je najmanji skup formula koje zadovoljavaju sledece uslove:

svaka iskazna formula A je potformula sama sebi;


Ako
je A jednako B, onda je svaka potformula formule B istovremeno i
potC, formula formule A. Ako je A jednako B C, B C, B C ili B
onda je svaka potformula formule B i svaka potformula formule C istovremeno
i potformula formule A.
Primer 2.1 Skup potformula formule (p q) r je {p, q, r, p q, (p q) r}.
Definicija 2.3 Funkcija c iz skupa iskaznih formula u skup N (skup prirodnih brojeva) svakoj iskaznoj formuli pridruzuje slozenost na sledeci nacin:
1.ako je A atomicka iskazna formula, onda je c(A) = 0;
2. c(A) = c(A) + 1;
3. c(A B) = c(A) + c(B) + 1;
4. c(A B) = c(A) + c(B) + 1;

2.2 Semantika iskazne logike

19

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


6. c(A B) = c(A) + c(B) + 1.
Funkcijom c svakoj iskaznoj formuli pridruzuje se (jedinstvena)
slozenost.

2.2

Semantika iskazne logike

Semanticki aspekt iskazne logike govori o znacenju formula.


U
nastavku ce biti uvedena semantika iskazne logike u stilu Tarskog
(koji je prvi precizno uveo pojam semantike 1933. godine) [?]. Tako
uvedenu semantiku zovemo i semantika Tarskog.

2.2.1

Valuacija, interpretacija, model; zadovoljive, valjane,


porecive i kontradiktorne formule

Funkcije v iz P u {0, 1} zovemo valuacijama. Skup {0, 1} zovemo domenom


ili univerzumom valuacije. Svaka valuacija v odreduje funkciju Iv koju
zovemo interpretacijom za valuaciju v i koja preslikava skup iskaznih
formula u skup
{0, 1}. Interpretaciju Iv definisemo na sledeci nacin:

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

Iv (T) = 1 i Iv () = 0;
Iv (A) = 1 ako je Iv (A) = 0 i Iv (A) = 0 ako je Iv (A) = 1;
Iv (A B) = 1 ako je Iv (A) = 1 i Iv (B) = 1; Iv (A B) = 0 inace;
Iv (A B) = 0 ako je Iv (A) = 0 i Iv (B) = 0 ; Iv (A B) = 1 inace;
Iv (A B) = 0 ako je Iv (A) = 1 i Iv (B) = 0 ; Iv (A B) = 1 inace;
Iv (A B) = 1 ako je Iv (A) = Iv (B); Iv (A B) = 0 inace.
Vrednost Iv (A) zovemo vrednoscu iskazne formule A u interpretaciji Iv .
Ako za valuaciju v vazi Iv (A) = 1, onda kazemo da je iskazna
formula A tacna u interpretaciji Iv i da je iskazna formula A tacna u
valuaciji v. Ako za valuaciju v vazi Iv (A) = 0, onda kazemo da je
iskazna formula A netacna u interpretaciji Iv . Moze se dokazati da se,
za odredenu valuaciju v, funkcijom Iv definisanom na navedeni
nacin, svakoj formuli pridruzuje (jedinstvena) vrednost (u toj
inter- pretaciji).
Definicija
Valuacija v je zadovoljavajuca
za za
formulu
A akov |je
v (A) = 1.
Kazemo i da2.4
je zadovoljavajuca
valuacija v model
A i pisemo
= IA.
Definicija 2.5 Iskazna formula A je zadovoljiva ako postoji valuacija koja je za nju
zadovoljavajuca. Formula A je valjana ili tautologija1 ako je svaka valuacija za nju
1
Rec tautologija grckog je porekla i sacinjena je od reci tauto (grcki isto) i logos
(grcki rec, reci). U bukvalnom prevodu, ,,tautologija znaci ,,reci isto.
U
lingivstickom smislu, kao i u svakod- nevnom jeziku, oznacava ponavljanje istog, rec
i istu stvar drugim recima, redudantnost (slicno, ali ne isto sto i pleonazam
pleonazam oznacava koriscenje suvisnih reci prilikom ukazivanja na neki pojam).
Opisani pojam tautologije razlikuje se od pojma tautologije u logici. U savremenim
evropskim jezicima rec tautologija prvi put se javlja u sesnaestom veku.

20

2 Iskazna logika

zadovoljavajuca, tj. ako za svaku valuaciju v vazi v |= A i to zapisujemo |= A.


Iskazna formula je nezadovoljiva ili kontradikcija ako ne postoji valuacija
koja je za nju
zadovoljavajuca. Formula je poreciva ako postoji valuacija koja za nju nije
zadovolja- vajuca.
Drugim recima, iskazna formula je zadovoljiva ako postoji
valuacija u kojoj je ta formula tacna. Iskazna formula je valjana
ako je tacna u svakoj valuaciji. Iskazna formula je nezadovoljiva
ako je netacna u svakoj valuaciji. Iskazna formula je poreciva
ako postoji valuacija u kojoj je ta formula netacna.
Primer
2.2 iIskazne
formule
p formula
p i p p
p su
iskazna formula p q je
zadovoljiva
poreciva,
a iskazna
p tautologije;
je kontradikcija.
Problem ispitivanja da li je data iskazna formula zadovoljiva
oznacava se sa SAT (od engleskog satisfiability problem problem
zadovoljivosti). SAT prob- lem je NP-kompletan [?]. S obzirom na to da
se jos uvek ne zna da li su klase P i NP problema jednake, to
znaci da se jos uvek ne zna da li postoji algori- tam za
ispitivanje zadovoljivosti koji je polinomijalne slozenosti. Kako je
opste uverenje da su klase P i NP problema razlicite, veruje se i
da ne postoji poli- nomijalni algoritam za resavanje SAT problema.
I najefikasniji danas poznati algoritmi za resavanje ovog problema
su eksponencijalne slozenosti.
Definicija 2.6 Skup iskaznih formula je zadovoljiv ako postoji valuacija u kojoj
je svaka formula iz tacna. Za valuaciju v koja je zadovoljavajuca za sve formule
iz kazemo da je model za . Skup iskaznih formula je nezadovoljiv ili
kontradiktoran ako ne postoji valuacija u kojoj je svaka formula iz tacna.
Primer 2.3 Skup iskaznih formula {p q, p, q} je kontradiktoran (ali nijedan njegov pravi podskup nije kontradiktoran).
Teorema 2.1 Ako su iskazne formule A i A B tautologije, onda je i B tautologija.
Dokaz: Pretpostavimo da su A i A B tautologije. Pretpostavimo da
postoji valuacija v u kojoj formula B nije tacna. Formula A je
tautologija, pa je
tacna
i u valuaciji
v. U toj valuaciji,
dakle, da
formula
B
nije
tacna,
sto formula
protivreci
pretpostavci
je AA pa
je
B
tautologija.
Dakle,
B jedokazati.
tacna
u svakoj
valuaciji,
ona tautologija,
sto je i trebalo

Zadaci
Zadatak 1

Neka su A, B, C, D iskazne formule takve da su formule A (B

C) i (A C) D tautologije. Dokazati da je i formula (D A) B tautologija.


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

2.2 Semantika iskazne logike

21

Zadatak 3 Dokazati sledeca tvrdenja:


(a) Ako je iskazna formula valjana, onda je ona zadovoljiva.
(b) Ako je iskazna formula kontradikcija, onda je ona poreciva.
(c) Ako iskazna formula nije zadovoljiva, onda je ona kontradikcija i obratno.
(d) Ako iskazna formula nije tautologija, onda je ona poreciva i obratno.
Zadatak 4 Dokazati sledeca tvrdenja:
(a) Iskazna formula A je valjana ako i samo ako je A kontradikcija.
(b) Iskazna formula A je zadovoljiva ako i samo ako je A poreciva.
Zadatak 5 Navesti primer iskazne formule koja je:
(a) zadovoljiva
(b) valjana
(c) poreciva
(d) kontradikcija
(e) zadovoljiva i valjana
(f) zadovoljiva i nije valjana
(g) zadovoljiva i poreciva
(h) zadovoljiva i nije poreciva
(i) zadovoljiva i nije kontradikcija
(j) valjana i nije poreciva
(k) valjana i nije kontradikcija
(l) poreciva i nije zadovoljiva
(m) poreciva i nije valjana
(n) poreciva i kontradikcija
(o) poreciva i nije kontradikcija
(p) kontradikcija i nije zadovoljiva
(q) kontradikcija i nije valjana.
Zadatak 6 Dokazati sledeca tvrdenja ( i su skupovi iskaznih formula, A je
iskazna formula):
(a) Ako je zadovoljiv i , onda je zadovoljiv.
(b) Ako je zadovoljiv i A valjana, onda je {A} zadovoljiv.
(c) Ako je kontradiktoran i , onda je kontradiktoran.
(d) Ako je kontradiktoran i A valjana, onda je \ {A} kontradiktoran.
Zadatak 7 Odrediti (ako postoji) formulu A takvu da je formula ((p (q r))
A) (A ((r q) p)) tautologija.

2.2.2

Istinitosne tablice

Pravila za odredivanje vrednosti iskazne formule u zadatoj valuaciji


(navedena u prethodnom poglavlju) mogu biti reprezentovana
osnovnim istinitosnim tab- licama:
AA
01
10

22

2 Iskazna logika
A
0
0
1
1

B
0
1
0
1

AB

AB

AB

AB

0
0
0
1

0
1
1
1

1
1
0
1

1
0
0
1

Na osnovu navedenih tablica (tj. na osnovu pravila za


odredivanje vred- nosti formule), moze se kontruisati istinitosna
tablica za proizvoljnu iskaznu formulu. U istinitosnoj tablici za neku
formulu svakoj vrsti odgovara jedna valuacija iskaznih slova koje se
pojavljuju u toj formuli. Svakoj koloni odgo- vara jedna potformula te
formule. Istinitosne tablice su pogodne i za ispiti- vanje valjanosti,
zadovoljivosti, nezadovoljivosti i porecivosti. Ukoliko iskazna
formula A sadrzi iskazne varijable p1 , p2 , . . ., pn , istinitosna
tablica treba da sadrzi sve moguce valuacije za ovaj skup varijabli
(valuacije za druge varijable nisu relevantne). U zavisnosti od
vrednosti iskaznih varijabli, izracunavaju
se vrednosti slozenijih iskaznih formula, sve do same iskazne
formule koja se ispituje. Ako su u koloni koja odgovara samoj
iskaznoj formuli sve vred- nosti jednake 1, formula je tautologija;
ako je bar jedna vrednost jednaka 1, formula je zadovoljiva; ako je
bar jedna vrednost jednaka 0, formula je pore- civa; ako su sve
vrednosti jednake 0, formula je kontradikcija. Ovo pokazuje da su
problemi ispitivanja valjanosti, zadovoljivosti, nezadovoljivosti i
pore- civosti odlucivi problemi, tj. postoje algoritmi koji ih mogu
resiti.
Primer 2.4 Iskaznoj formuli (q p) (p q) odgovara sledeca istinitosna
tablica:
p
0
0
1
1

q
0
1
0
1

p
1
1
0
0

q
1
0
1
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 moze biti zapisana u skracenom obliku
zapisivanjem samo zadate iskazne formule i odgovarajucih vrednosti ispod
pojedinacnih iskaznih slova i veznika. Iskaznoj formuli iz prethodnog primera
odgovara sledeca skracena istinitosna tablica (popunjena u nekoliko koraka):
(

q
0
1
0
1

p)
0
0
1
1

(p
0
0
1
1

q)
0
1
0
1

(
1
0
1
0

q
0
1
0
1

1
1
0
0

p)
0
0
1
1

(p
0
0
1
1

1
1
0
1

q)
0
1
0
1

2.2 Semantika iskazne logike

23

( q
1
0
0 1
1 0
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

( q
1 0
0 1
1 0
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
NekaD
su A, B, C, D Dokazati,
iskazne formule
takve da
su formule
A (B

C)
i
(A

C)
koriscenjem
istinitosnih
tablica,
da
je i formula (D
A) tautologije.
B tautologija.

Zadatak 11 Odrediti formulu A takvu da je formula ((A q) p) ((p

q) A) tautologija.
Zadatak
12 Odrediti,
istinitosnih
tablica,
(akotautologija.
postoji) formulu A takvu
da je formula
((p (koriscenjem
q r)) A)
(A ((r
q) p))

2.2.3 Logicke posledice, logicki ekvivalentne


formule, supstitucija
Definicija
2.7 Kazemo
da je iskazna
logicka
skupa
iskaznih
formula
i pisemo
|= A akoformula
je svaki A
model
za skupposledica
istovremeno
i model
za formulu
A.
Kada krace
je skupA , ...,
konacan,
} |logicka
= B (tj. posledica
|= B)
1 , ..., AnA
pisemo
Anonda
|= B. tada
Ako je{Aformula
1
praznog
skupa
formula,
A, onda to
zapisujemo
|= A. to zapisujemo |= A. Ako ne vazi |=
Teorema 2.2
(a) Formula je valjana ako i samo ako je logicka posledica praznog skupa formula.
(b)Ako je skup kontradiktoran, onda je svaka formula njegova logicka
posledica.
Specijalno, svaka formula je logicka posledica skupa {}.
(c)Ako je i |= A, onda je |= A.
Dokaz:

24

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

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


model
formule
A i okvira
za oznacavanje
posledice.
i da u oba
zapis |= A relacije
ima istologicke
znacenje
da je Primetimo
formula A
valjana.

Definicija
2.8 Kazemo Ada su
dve je iskazne
formule A i B logicki
ekvivalentne
ako
i obratno (tj. akoi pisemo
vazi A |= B i B
B |=
A). svaki model formule A model i za B

Akokojoj
je svaki
model
za A istovremeno
i model za
B i obratno,
onda
u
bilo
valuaciji
formule
A i B imaju jednake
vrednosti.
Tvrdenja
oblika
A Bje,
zovemo
Relacija
oci- logickim ekvivalencijama (ili krace ekvivalencijama).
gledno, relacija ekvivalencije nad skupom iskaznih formula.
Teorema 2.3 Vazi A B ako i samo ako je iskazna formula A B tautologija.

Dokaz:formule
Pretpostavimo
daistu
vazi
A B.
proizvoljnoj
valuaciji
A isledi
B imaju
vrednost,
pa jeU formula
A B
tacna
uv
v.
Odatle
da
je je
A
B tautologija.
Pretpostavimo
da je A

B
tautologija.
Ako
u
proizvoljnoj valuaciji v formula A tacna, onda mora da je i B
tacna u v
(jer je formula A B tacna u v). Dakle, svaki model za A je
model i za
B. Analogno vazi obratno svaki model za B je model i za A,
te sledi
A B, sto je i trebalo dokazati.

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

2.2 Semantika iskazne logike

25

valencija) su:

A
A A
AA
AA
AB
AB
AB
A (B C)
A (B C)
A (B C)
A (A B)
A (A B)
A (B C)
(B C) A
A (B C)
(B C) A
(A B)
(A B)
AT
AT
A
A

T
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
T

zakon dvojne negacije


zakon iskljucenja treceg
zakon idempotencije za
zakon idempotencije za
zakon komutativnosti za
zakon komutativnosti za
zakon komutativnosti za
zakon asocijativnosti za
zakon asocijativnosti za
zakon asocijativnosti za
zakon apsorpcije
zakon apsorpcije
zakon distributivnosti u odnosu na
zakon distributivnosti u odnosu na
zakon distributivnosti u odnosu na
zakon distributivnosti u odnosu na
De Morganov zakon
De Morganov zakon
zakon konjunkcije sa tautologijom
zakon disjunkcije sa tautologijom
zakon konjunkcije sa kontradikcijom
zakon disjunkcije sa kontradikcijom

Logicke ekvivalencije navedene u primeru2.6, izme du ostalog,


pokazuju da su konjunkcija i disjunkcija komutativni i asocijativni
veznici. Zato mozemo (uslovno) smatrati da konjunkcija (i
disjunkcija) mogu da povezuju vise od dve formule, pri cemu ne
moramo da vodimo racuna o njihovom poretku. Svaki clan
uopstene konjunkcije zovemo konjunkt, a svaki clan uopstene
disjunkcije zovemo disjunkt. Disjunkciju vise literala (pri cemu
njihov poredak nije bitan) zovemo klauza. Klauza je jedinicna ako
sadrzi samo jedan literal.
Definicija 2.9 Rezultat zamene (supstitucije) svih pojavljivanja iskazne formule C
u iskaznoj formuli A iskaznom formulom D oznacavamo sa A[C D]. Ta zamena
(supstitucija) definise se na sledeci nacin:

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


ako
A i A;
C vazi A = C i A je atomicka iskazna formula,
ondazaje iskazne
A[C formule
D] jednako
ako za iskazne formule A, B i C vazi A = C i A = (B), onda je A[C D] =
(B[C D]);
ako
za iskazne
formule A, B1 , B2 i C vazi A = C i A = (B1 B2 ) (A
=
(B
1 B2), A = (B1 B2), A = (B1 B2)), onda je A[C D] =
(B
1[C D]) (B2[C D]) ((B1[C D]) (B2[C D]), (B1[C
D]) (B2[C D]), (B1[C D]) (B2[C D])).
Definicija
2.10 Uopstena zamena (supstitucija) je skup zamena [C1 D1 ],
[C
2 D2], . . ., [Cn Dn] gde su Ci i Di proizvoljne iskazne formule. Takvu
zamenu
za- pisujemo [C1 D1, C2 D2, . . . , Cn Dn].

26

2 Iskazna logika

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


. . ., Cn u polaznoj formuli i samo na njih (tj. ne primenjuje se na potformule dobijene
zamenama).
U daljem tekstu cemo umesto termina uopstena zamena (uopstena
supstitucija) koristiti termin zamena (supstitucija).
Formulu koja je rezultat primene zamene [C1 D1, C2 D2, . . . ,
C n
Dn ] nad formulom A, oznacavamo sa A[C1 D1 , C2 D2 , . . . , Cn
Dn ].
Primer 2.7
((p q) r)[p q p q] = (p q) r
((p
(pq r))[p
ppqq,
p q r
p]=p
= q)
(
p r q) ( p r) ((p
q)q)r)[p
p q q,
(r]
p
Teorema 2.4 (Teorema o zameni) Ako je C D, onda je A[C D] A.

Zadaci
Zadatak 13
Zadatak 14
Zadatak 15
(a)
(b)
(c)
(d)

A1 , A2 , . . . , An |= B ako i samo ako |= (A1 A2 . . . An ) B.


, A |= B ako i samo ako |= A B.
Ako je A1 A2 i B1 B2, onda je:

A1 A2
A1 B1 A2 B2
A1 B1 A2 B2
A1 B1 A2 B2

(e) A1 B1 A2 B2.

Zadatak 16
Ako je iskazna formula A tautologija koja sadrzi iskazna slova p1 , p2 ,
. . . , pn i ako su A1, A2, . . . , An proizvoljne iskazne formule, onda je iskazna formula
B = A[p1 A1, p2 A2, . . . , pn An] takode tautologija.
Zadatak 17 Ako C nije potformula iskazne formule A, onda je A[C D] = A.
Zadatak 18 Dokazati da iz A A[C D] ne sledi C D.

2.2.4 Potpuni skupovi veznika


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

2.2 Semantika iskazne logike

27

Primer 2.8
x1
1
0
1
0

x2
1
1
0
0

f (x1, x2)
0
1
1
1

A koja generise istinitosnu funkciju f je (p1 p 2 ) (p1 p 2)


(Iskazna
p1 pformula
2).
U bilo kojoj iskaznoj formuli, mogu se, koriscenjem
ekvivalencija
A

A
B
B
(A
AB)
B (B A)
A B (A B)
eliminisati
pojavljivanja
veznika
i . Dobijena
formula
sadrzace,sva
dakle,
samo veznike
i .,Kazemo
da je skup
veznika {, } potpun, jer je
svaka
iskazna
logicki
ekvivalentna
nekoj iskaznoj
formuli
samo
ova formula
dva veznika
i bez
logickih konstanti
T i . Kako
je
skup {nad
, } potpun,
sledi
da
je
svaka
istinitosna
funkcija
generisana
nekom
iskaznom
formulom
potpun. koja sadrzi samo veznike i . Skup {, } je, takode,
i B definisu
se(A
na B).
sledeci
nacin:
B jedefinicije
jednako

(AVeznici
B),
a A
je
jednako
Naglasimo
daAsusmatrati
ove
cisto
sintaksne
prirode
i
da
zapis
A

B
mozemo
samo
kracim zapisom formule (A B). Veznik

zovemo
nili ili Lukasijeviceva funkcija, a veznik zovemo ni ili S eferova
funkcija.
za i . Na osnovu datih definicija mogu se izvesti istinitosne tablice
A
0
0
1
1

B
0
1
0
1

AB
1
0
0
0

AB
1
1
1
0

Lako skup
se pokazuje
A (A sledi
A) i Ada
Bjepotpun
((A A)i
(B {}B)).
Kako
veznikada
{, je
} potpun,
skup
. Isto
vazi je
i za skup
{}.
Teorema 2.5 Veznici i su jedina dva binarna veznika koja sama (pojedinacno)
cine potpun sistem.
Teorema2.5je specijalni slu caj tvrdenja za veznike proizvoljne
arnosti [?].

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

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

28

2 Iskazna logika

Zadatak 21 U racunarstvu se cesto koristi logicki veznik (iskljucivo ili,


iskljuci- va disjunkcija, eksluzivno ili, ekskluzivna disjunkcija) koji
moze biti definisan na
sledeci nacin: AB je jednako (tj. to je kraci zapis za) (A B) ili (A B) (A
B). Ispitati da li je skup {, } potpun skup veznika.

2.2.5 Normalne forme


Definicija 2.11 Iskazna formula je u konjunktivnoj normalnoj formi (KNF) ako
je oblika
A1 A2 . . . An
pri cemu je svaka od formula Ai (1 i n) klauza (tj. disjunkcija literala).
Definicija 2.12 Iskazna formula je u disjunktivnoj normalnoj formi (DNF) ako
je oblika
A1 A2 . . . An
pri cemu je svaka od formula Ai (1 i n) konjunkcija literala.
Ako je iskazna formula A logicki ekvivalentna iskaznoj formuli B i
iskazna formula B je u konjunktivnoj (disjunktivnoj) normalnoj
formi, onda kazemo da je formula B konjunktivna (disjunktivna)
normalna forma formule A.
Koriscenjem pogodnih ekvivalencija, svaka iskazna formula
moze biti trans- formisana u svoju konjunktivnu (disjunktivnu)
normalnu formu. Naglasimo da jedna iskazna formula moze da ima
vise konjunktivnih (disjunktivnih) normalnih
formi
primer,
formula (p
s)
r)
r)
su
(p konjunktivne
s) (q s) i
formula
(sforme
q)(na
for(p
mule
r) i (q
(q
(p
p)
normalne
(p q)r)(r(p
s)).
Slicno,
jedna
formula koja
je u konjunktivnoj
normalnoj
formi moze biti konjunktivna normalna forma za vise iskaznih formula.
Transformisanje iskazne formule u konjunktivnu normalnu
formu moze biti opisano algoritmom prikazanim na slici2.1. Kada
govorimo o ,,primeni neke logicke ekvivalencije mislimo na korisc
enje logicke ekvivalencije na os- novu teoreme o zameni
(teorema2.4).
Teorema
2.6 (Korektnost
Algoritam
KNF seformula
zaustavlja
zadovoljava sledece
svojstvo: akoalgoritma
je F ulaznaKNF)
formula,
onda je izlazna
F r ui konjunktivnoj normalnoj formi i logicki je ekvivalentna sa F .
Zaustavljanje algoritma KNF moze se dokazati koriscenjem pogodno
odabrane
cinjenice da se u
mere formula.2 Tvrdenje F F r sledi na osnovu
teoreme2.4i
algoritmu koriste logicke ekvivalencije.
2

U cilju dokazivanja zaustavljanja postupka transformisanja formule u konjunktivnu


normalnu formu definise se preslikavanje iz skupa iskaznih formula u skup prirodnih
brojeva [?]:
(A)
(A)

2 (gde je A atomicka formula)

= 2

(A)

(A B)

= (A) (B)

(A B)

(A) + (B) + 1

Moze se rjednostavno dokazati da je vrednost (Ar ) uvek manja od (A) ako je


formula A dobijena primenom nekog
pravila prezapisivanja na formulu A (jer, na
primer,
vazida
dase
je postupak
(A B)
= 2 (A)+ (B) manje od ((A B)) = 2 (A)+ (B)+1).
Odatle sledi
transformisanja
proizvoljne formule u konjuktivnu normalnu formu zaustavlja za proizvoljnu ulaznu formulu A
(jer ne postoji beskonacan strogo opadajuci niz prirodnih brojeva ciji je prvi element (A)).

2.2 Semantika iskazne logike

29

Algoritam: KNF
Ulaz: Iskazna formula F
Izlaz: Konjunktivna normalna forma formule F
1. Eliminisati veznik koristeci logicku ekvivalenciju
A B (A B) (B A).
2. Eliminisati veznik koristeci logicku ekvivalenciju
A B A B.
3. Dok god je to moguce, primenjivati logicke ekvivalencije

(A B) A B i (A B) A B.
4. Eliminisati visestruke veznike koristeci logicku
ekvivalenciju

A A.
5. Dok god je to moguce, primenjivati logicke ekvivalencije
(A (B C)) ((A B) (A C)) i
Figure 2.1: Algoritam KNF
Naglasimo da transformisanje formule u njenu konjunktivnu
normalnu for- mu moze da da
formulu cija je duzina
eksponencijalna u funkciji duzine po- lazne formule. Na primer,
transformisanjem formule
(A1 B1) (A2 B2) . . . (An Bn)
(koja ima n disjunkata) u njenu konjunktivnu normalnu formu, dobija
se for- mula koja ima 2n konjunkta.
Transformisanje formule u disjunktivnu normalnu formu opisuje se
algo- ritmom analognim algoritmu KNF.

Zadaci
Zadatak 22 Odrediti konjunktivnu normalnu formu i disjunktivnu normalnu 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 zajednicko iskazno slovo.
(b) Dokazati
dai C
iskazna slova koja su
zajednickadazapostoji
A i B iskazna
i za kojuformula
vazi da Csutakva
AC
C ima
B samo
tautologije.

2.2.6 DejvisPatnamLogmanLovelandova procedura


DejvisPatnamLogmanLovelandova procedura3 (DPLL procedura)
vrsi ispi- tivanje zadovoljivosti iskaznih formula [?]. Ona se
primenjuje na iskazne for- mule u konjunktivnoj normalnoj formi (a
za svaku iskaznu formulu postoji njena konjunktivna normalna
forma). Ulazna formula je konjunkcija klauza. Pri tome (kako su
konjunkcija i disjunkcija komutativne i asocijativne) nije bi- tan
poredak tih klauza niti je u bilo kojoj od tih klauza bitan poredak
literala; zato se ulazna formula moze smatrati skupom (ili,
preciznije, multiskupom4 ) klauza, od kojih se svaka moze smatrati
skupom (ili, preciznije, multiskupom) literala. Ipak, radi odredenosti
rada algoritma, smatracemo da je skup (odnosno multiskup) klauza
ureden.
U proceduri se podrazumevaju sledece konvencije:

prazan skup klauza (zvacemo ga praznom formulom) je zadovoljiv;


klauza koja ne sadrzi nijedan literal (zvacemo je prazna klauza)
je nezado- voljiva; formula koja sadrzi praznu klauzu je
nezadovoljiva.
DejvisPatnamLogmanLovelandova procedura data je na
slici2.2.
Teorema 2.7 (Korektnost DPLL procedure) Za svaku iskaznu formulu DPLL procedura se zaustavlja i vraca odgovor DA ako i samo ako je polazna formula zadovoljiva.
DejvisPatnamLogmanLovelandova procedura je u najgorem
slucaju eks- ponencijalne slozenosti O(2N ), gde je N broj iskaznih
slova u formuli, usled rekurzivne primene split pravila (vise o
slozenosti
izracunavanja
videti
u
do- datku ??). Iste
(eksponencijalne) slozenosti su i svi drugi do sada poznati algoritmi za ispitivanje zadovoljivosti. Ipak, svi ti algoritmi su znatno
efikasniji od metode istinitosnih tablica.
Izbor iskaznog slova u pravilu split je veoma vazan. Neke
varijante ovog pravila su da se bira iskazno slovo sa najvise
pojavljivanja u tekucoj formuli, da se bira neko od iskaznih slova iz
najkrace klauze itd.
Formula je tautologija ako i samo ako njena negacija nije
zadovoljiva, for- mula je kontradikcija ako i samo ako ona nije
zadovoljiva i formula je poreciva ako i samo ako je njena negacija
zadovoljiva. Primetimo da odatle sledi da DPLL proceduru mozemo
iskoristiti i za ispitavanje da li je data formula tau- tologija, poreciva
ili kontradikcija.
3
Na ovu proceduru se, zbog dve njene verzije, ponekad ukazuje kao na Dejvis
Patnamovu (DP) proceduru ili kao na DejvisLogmanLovelandovu (DLL) proceduru.
4
Multiskup je, neformalno, skup u kojem se elementi mogu pojavljivati vise
puta.

2.2 Semantika iskazne logike

31

Algoritam: DPLL
Ulaz: Multiskup klauza D (D = {C1, C2, . . . ,
Cn}) Izlaz: DA, ako je multiskup D
zadovoljiv;
NE, ako multiskup D nije zadovoljiv
1. Ako je D prazan, vrati DA.
2. Zameni sve literale sa T i zameni sve literale
T sa . 3.Obrisi sve literale jednake .
4. Ako D sadrzi praznu klauzu, vrati NE.
5.literal
Ako nekanjegovu
klauza negaciju,
Ci sadrzi
literal
T ili sadrzi
i neki
vrati
vrednost
koju vraca
DPLL(Di \ C
i ) (tautology).
6.slovu
Ako jep,neka
klauza
jedinicna
i jednaka
nekom iskaznom
onda
vrati jevrednost
koju
vraca DPLL(D[p
T]);
ako
je neka
klauza
dinicna
i jednaka
p, gde
je pneko
iskazno
slovo,
onda
vrati
vrednost
koju
vraca
DPLL(D[p

]) (unit propagation).
7.i Ako
D
literalvrednost
p (gde je
p neko
iskazno
slovo),aTne
literal
p,sadrzi
onda
vrati
koju
vraca
DPLL(D[p
]);
ako
D sadrzi
literal

p
(gde
je
p
neko
iskazno
slovo),
a
ne
i
literal
p,
vrati vrednost koju vraca DPLL(D[p T]) (pure onda
literal).
8.vrati
Ako vrednost
DPLL( koju
D[p vraca
T]) vraca
DA, onda
DPLL(D[p
]) vrati
(gde DA;
je p inace
jedno
od iskaznih
slova koje
se javljaju u D) (split).

Figure 2.2: DPLL procedura

Zadaci
Zadatak
26 Primenom
ispitati
zadovoljive:
(a) (p DPLL
r) ((qalgoritma
r) (p
q dar))li su sledece formule
(b) ((p r) ((q r) (p q r)))
Zadatak 27 Primenom DPLL algoritma ispitati da li je formula (p q r) (p
q r) (p q r) zadovoljiva, tautologija, poreciva, kontradikcija.

2.2.7

Primer modelovanja problema u iskaznoj logici

Modeliranja jednog problema bice prikazano na primeru


jednostavne igre - Vumpus.
U pecini u kojoj zivi cudoviste Vumpus nalazi se zlato. Igrac
ulazi u pecinu i trazi ga. Igra se igra na tabli od 4x4 polja.
Vumpus se nalazi na jednom od njih. Na nekima od njih se mogu
nalaziti provalije, a na jednom je zlato. Posto je u pecini mrak
igrac ne vidi sta se nalazi na susednim poljima. Na poljima oko
provalija se oseca povetarac. Kako se Vumpus ne kupa, na
poljima oko njega, oseca se smrad. Ako igrac stane na polje na
kome se nalazi provalija ili

32

2 Iskazna logika

Figure 2.3: Tabla za igru Vumpus


Vumpus, on strada i igra je zavrsena. Igrac ima jednu strelu koju
moze odapeti na susedno polje kako bi ubio Vumpusa. Primer table je
prikazan na slici2.2.7. Znanje o okolini u kojoj se igrac nalazi, moze
se modelirati pravilima oblika
Pravila za slucaj kada nema smrada:
R1 : S11 V11 V12 V21
R2 : S21 V11 V21 V31 V22
R3 : S12 V11 V12 V13 V22
...
Pravila za slucaj kada ima smrada:
R4 : S12 V11 V12 V13 V22
...

2.2 Semantika iskazne logike

33

Na pocetnom polju igrac ne oseca ni smrad ni povetarac, pa


zna da su polja (2,1) i (1,2) bezbedna. Recimo da prvo ode na polje
(2,1). Tu oseca povetarac i zna da se na polju (3,1) ili (2,2) nalazi
provalija, pa se vraca na polje (1,1). Posto je na polju (2,1) upravo
bio, istrazuje polje (1,2). Tu se oseca smrad. Dosadasnja
igraceva znanja se mogu se opisati na sledeci nacin:

S11, S21, S12


P11, P21, P12
Nalazenje Vumpusa je sada
lako. 1.Na osnovu R4 i S12,
dobija se
V11 V12 V13 V22
2. Na osnovu R1 i S11, dobija se
V11 V12 V21
3. Odatl
e

V11 V12 V21

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


V12 V13 V22
5. Na osnovu V12 V13 V22 i V12, dobija se
V13 V22
6. Na osnovu R2 i S21, dobija se
V11 V21 V31 V22
7. Odatl
e

V11 V21 V31 V22

8. Na osnovu V13 V22 i V22, dobija se


V13
Znaci Vumpus se nalazi na polju (1,3).
Da bismo dali primer zapisivanja akcije koju igrac moze da
preduzme uvescemo i orijentaciju igraca. Neka 4 promenljive Oi
oznacavaju orijentaciju igraca ka
4 strane sveta. Npr. O1 znaci da je igrac orijentisan prema
istoku, O2 prema zapadu, O3 prema severu i O4 prema jugu. Kako bi
opis orijentacije bio konzis- tentan, potrebno je zadovoljiti uslov da
igrac ne bude orijentisan na vise strana odjednom

(O1 O2) (O1 O3) (O1 O4) (O2 O3)(O2 O4)(O3 O4).

34

2 Iskazna logika

S druge strane potrebno je da igrac bude orijentisan na neku


stranu sto se izrazava uslovom
O1 O2 O3 O4.
Sada se akcija odapinjanja strele na susedno polje na kome se
nalazi Vum- pus moze zapisati kao:
A11 O1 V21 Pucaj
Ocigledan problem je sto za 16 polja za jednu orijentaciju
postoji 16 pravila ovog tipa. Pomocu predikatskog racuna bi svih
16 moglo biti zapisana jednim pravilom:
ij(Aij O1 Vi+1,j P ucaj).

Glava 3

Logika prvog reda


Logika prvog reda, predikatska logika, znatno je izrazajnija od
iskazne logike. Osnovna novina u odnosu na iskaznu logiku je
uvodenje kvantifikovanja, uni- verzalnog i egzistencijalnog.
Zahvaljujuci kvantifikatorima, u logici prvog reda mogu se
formulisati tvrdenja koja nije moguce formulisati na jeziku
iskazne logike kao, na primer, tvrdenje ,,za svaku valuaciju postoji
klauza iz S koja nije tacna ako i samo ako ne postoji valuacija takva
da je svaka klauza iz S tacna. U logici prvog reda dozvoljeno je
samo kvantifikovanje promenljivih.1 U okviru logike prvog reda
mogu se opisati mnoge matematicke teorije.
Kao i iskazna logika, logika prvog reda ima tri aspekta: svoju
sintaksu (ili jezik), svoju semantiku (ili znacenje iskaza) i svoje
deduktivne sisteme. I semantika i deduktivni sistemi grade se nad
isto definisanom sintaksom, tj. nad istim skupom formula.
Kao i u iskaznoj logici, centralni problemi u predikatskoj logici su
ispiti- vanje da li je data formula valjana i da li je data formula
zadovoljiva. Za raz- liku od iskazne logike, ovi problemi nisu
odlucivi, te ne postoje efektivni algo- ritmi za njihovo resavanje.
No, problem ispitivanja valjanosti za predikatsku logiku je
poluodluciv, pa postoje metode koje za svaku valjanu formulu
mogu da dokazu da je ona valjana (a ne mogu za bilo koju formulu
koja nije valjana da utvrde da nije valjana).
Postoji vise metoda i pristupa za ispitivanje i dokazivanje
valjanosti i zado- voljivosti. Neki od njih su semanticke, a neki
deduktivne (tj. sintaksno-deduk- tivne) prirode. Kao i u iskaznoj
logici, kljucna veza izmedu ova dva koncepta je tvrdenje da je
formula valjana (sto je semanticka kategorija) ako i samo ako je
ona teorema (sto je deduktivna kategorija). Zahvaljujuci ovoj
vezi, sintaksa predikatske logike (jezik predikatske logike), njena
semantika (konvencije o znacenju formula) i njena deduktivna
svojstva cine kompaktnu celinu.

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

36

3 Logika prvog reda

3.1

Sintaksa logike prvog reda

Sintaksni aspekt logike prvog reda govori o njenom jeziku, a o


formulama iskljucivo kao o nizovima simbola i ne uzima u obzir
njihovo moguce znacenje.
Definicija 3.1 Logicki deo jezika prvog reda cine
skupovi: 1.prebrojiv skup promenljivih V ;
2. skup
, i logickih
su binarniveznika
veznici; {, , , , }, pri cemu je unarni veznik, a ,

3.skup kvantifikatora {, }, pri cemu je univerzalni kvantifikator, a


egzistencijalni kvantifikator;
4. skup logickih konstanti {T,

}; 5.skup pomocnih
simbola {(, ), ,}.
Elemente nabrojanih skupova zovemo logicki simboli.
Recnik ili signatura L sastoji se od najvise prebrojivih skupova i , koje
redom
nazivamo
skupom
funkcijskih
simbola
skupom
(relacijskih)
simbola,
kao i od funkcije
ar koja ipreslikava
skuppredikatskih
u skup
nenegativnih
celih
brojeva.
simbola k. Presek
svaka
dvaZa
od k , vrednost ar(k) zovemo stepen ili arnost
skupova , , skupa promenljivih, skupa logickih veznika, skupa kvantifikatora,
skupa logickih konstanti i skupa pomocnih simbola je prazan. Funkcijske simbole
arnosti 0 zovemo simbolima konstanti. Skupovi i cine nelogicki deo
jezika prvog reda, a sve njihove elemente zovemo nelogickim simbolima.
Za datu signaturu
L = (, , ar)
rec nad L je bilo koji niz simbola iz skupova , ili logickog dela jezika.
Uz indeks ili bez indeksa, obicno oznacavamo sa:

a, b, c, . . . simbole konstanti;
f, g, h, . . . funkcijske simbole arnosti vece od 0;
p, q, r, . . . predikatske simbole;
x, y, z, . . . promenljive.
Definicija 3.2 Skup termova nad signaturom L = (, , ar) i skupom promenljivih
V je skup za koji vazi:

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


svaki simbol promenljive je term;
ako je f funkcijski simbol za koji je ar(f ) = n i t1, t2, . . ., tn su termovi,
onda je i f (t1, t2, . . . , tn) term.
termovi se mogu dobiti samo konacnom primenom prethodna dva pravila.
Definicija 3.3 Skup atomickih formula nad signaturom L = (, , ar) i
skupom promenljivih V je skup za koji vazi:

3.1 Sintaksa logike prvog reda

37

logicke konstante T i su atomicke formule;


ako je p predikatski simbol za koji je ar(p) = n i t1, t2, . . ., tn su termovi,
onda je p(t1 , t2 , . . . , tn ) atomicka formula.
atomicke formule se mogu dobiti samo konacnom primenom prethodna dva
prav- ila.
Definicija
3.4 Skup
dobroV zasnovanih
formula
nad Lsignaturom
= koji
(,
,
ar) i skupom
promenljivih
(ili jezik prvog
reda nad
i V ) je skupL za
vazi:
svaka atomicka formula je dobro zasnovana formula;
ako je A dobro zasnovana formula, onda je i (A) dobro zasnovana formula;

ako su A i B dobro zasnovane formule, onda su i (A B), (A B), (A B) i


(A B) dobro zasnovane formule;

ako je A dobro zasnovana formula i x je promenljiva, onda su ((x)A) i ((x)A)


dobro zasnovane formule.
dobro zasnovane formule se mogu dobiti samo konacnom primenom
prethodnih pravila.
Umesto termina dobro zasnovana formula, cesto cemo pisati krace
formula.
Dobro zasnovane formule obicno oznacavamo velikim pisanim
latinicnim slovima (eventualno sa indeksima). Skupove dobro
zasnovanih formula obicno oznacavamo velikim slovima grckog
alfabeta (eventualno sa indeksima).
Logicke veznike zovemo i bulovskim veznicima ili, krace, veznicima.
Veznik

zovemo
negacija,
veznik
citamo
konjunkcija,
disjunkcija,
implikacija

ekvivalencija.
Zapis
)A
negacija
ili neveznik
A. AZapis
(A BBili)i
citamo
A konjunkcija
B)(A
ili
i B . Zapis
(A BA)Bcitamo
disjunkcija
A
ili
B
.
Zapis
(
A

B
citamo
A
implikacija
ili
iz
A
sledi
B
.
Zapis
(citamo
A B )zacitamo
ekvivalencija
ili A ekvivalentno
B . da
Zapis
svako x A.AZapis
((x)A)Bcitamo
postoji x takvo
je A. ((x)A)
Ako su dve
dobro
zasnovane
A i B sintaksno
identicne
(tj. Aako
jednake
kao formule
nizovi simbola),
onda to
oznacavamo
= Bsu
. Ako
dve dobro
zasnovane formule A i B nisu sintaksno identicne, onda to
oznacavamo A = B.
Termove, atomicke formule i dobro zasnovane formule nad
signaturom L
ponekad cemo krace zvati i L-termovi, L-atomicke formule i
L-formule.
Bazni term je term koji ne sadrzi nijednu promenljivu. Bazna formula
je formula koja ne sadrzi nijednu promenljivu.
Literal je atomicka formula ili negacija atomicke formule.
Klauza je dis- junkcija literala.
Da bismo izbegli koriscenje velikog broja zagrada obicno
izostavljamo spolj- ne zagrade i usvajamo konvenciju uz koju u
nekim dobro zasnovanim formu- lama neke zagrade mogu biti
izostavljene i to na isti nacin kao i za iskazne formule, pri cemu
kvantifikatori imaju veci prioritet od svih logickih veznika.
Kazemo
dasadrzi
formula
A odreduje
ili indukuje
signaturu
L, ako
signatura
koja
sve
funkcijske
i predikatske
simbole
iz Ajei L
nijedan vise.
Definicija 3.5 Funkcija c iz skupa dobro zasnovanih formula u N svakoj dobro zasnovanoj formuli pridruzuje slozenost na sledeci nacin:

38

3 Logika prvog reda


1.ako je A atomicka dobro zasnovana formula, onda je c(A) = 0;
2. c(A) = c(A) + 1;
3. c(A B) = c(A) + c(B) + 1;
4. c(A B) = c(A) + c(B) + 1;
5. c(A B) = c(A) + c(B) + 1;
6. c(A B) = c(A) + c(B) + 1;
7. c(xA) = c(A) + 1;
8. c(xA) = c(A) + 1.

Definicija 3.6 Slobodno pojavljivanje i vezano pojavljivanje promenljive


u for- muli definise se na sledeci nacin:

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


svako
pojavljivanje
promenljive
je slobodno
u A je islobodno
pojavljivanje
promenljive
koje jekoje
vezano
u A je vezano
u A; i u A; svako
svako
pojavljivanje
koje je slobodno u
A ili u B koje
je slobodno
AB
, A iBpromenljive
je vezanoi uu
A ili u, A
B
je B
vezano
u, AA BB, ;Asvako
B, pojavljivanje
A B, A Bpromenljive
;
svako
slobodno
pojavljivanje
promenljive
razlicitepojavljivanje
od x u formuli
A je
takode
slobodno
u(vodecim
formuli (kvantifikatorom)
x)
A; svako slobodno
promenljive
x
u
A
je
vezano
u
(

x)
A
(tada
kazemo
da
je xu
u
dosegu
kvantifikatora); pojavljivanje promenljive x u (x)
formuli
(x)Avodeceg
je
vezano; analogno za egzistencijalni kvantifikator.
Definicija 3.7 Promenljiva je vezana (slobodna) u formuli ako i samo ako ima
vezano (slobodno) pojavljivanje u toj formuli.
Primetimo da promenljiva moze biti i slobodna i vezana u jednoj
formuli.
Primer 3.1 U formuli p(x, y), pojavljivanje promenljive x je slobodno i ona je slobodna u ovoj formuli.
U formuli p(x, y) (x)q(x) prvo pojavljivanje promenljive x je slobodno, a
drugo i trece pojavljivanje je vezano. U ovoj formuli, promenljiva x je i slobodna i
vezana.
U formuli (x)p(x, y) (x)q(x), sva pojavljivanja promenljive x su vezana i
promenljiva je vezana u ovoj formuli.
U sva tri primera, pojavljivanja promenljive y su slobodna.
Primer
x)(p(x) (x)q(x))
pojavljivanje
vezano i 3.2
ono U
je uformuli
dosegu(kvantifikatora
x, a ne cetvrto
i kvantifikatora
x. promenljive x je

3.2 Semantika logike prvog reda

39

C esto
pokazivati
da formula A ima slobodne promenljive
x
. ., xcemo
1 , x2 , . da
n zapisom
znaci
formula
A A(x1 , x2 , . . . , xn ). Ovaj zapis, medutim, ne
ne
sadrzi
znaci da
promenljive
xjos
.1,. x.,2, x. n.slobodne
neka vezana niti
pojavljivanja
u
1 , xA
2 ,(xneke
formuli
A. Zapis
.nemaju
, xn) je i promenljive,
pogodan, jer mozemo
da usvojimo
konvenciju da kao A(t1 , t2 , . . . , tn ) zapisujemo formulu dobijenu zamenjivanjem svih slobodnih pojavljivanja promenljivih x1, x2, . . . , xn redom termovima t1, t2, . . . , tn.
L-formulu bez slobodnih promenljivih zovemo zatvorena L-formula ili
Lrecenica.
Za formulu
A kazemo
zatvorena
ako je oblika kao
(x1 )(
(slobodne
xk )Ar , gde
je xi V
(i = 1, 2, .da
. . ,jek)univerzalno
i Ar ne sadrzi
kvantifikatore
nix2 ) . . .
promenljive osim (eventualno) promenljivih x1, x2, . . . , xk. Formula
r
A
je egzis- tencijalno
rako je oblika (x1 )(x2 ) . . . (xk )A gde je
x
1, 2, . (even.zatvorena
. , k) i A
ne sadrzi
kvantifikatore
kao
ni
slobodne
i V (i = osim
promenljive
tualno)
promenljivih
x
,
x
,
.
.
.
,
Ako
formula A ima kao slobodne samo promenljive 1x1 , 2x2 , . . . , xxkk. onda
formulu
(

x
)(

x
)
.
.
.
(

x
)
A
nazivamo
univerzalnim
zatvorenjem
formule
1
2
k
A
i krace
je oznacavamo
. Ako formulu
formula A
kao slobodne
samo
promenljive
x1 , x2 , . .sa
. , xk ,Aonda
(xima
1 )(x2 ) . . . (xk )A
nazivamo
sa A. egzistencijalnim zatvorenjem formule A i krace je oznacavamo

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

3.2

Semantika logike prvog reda

Semanticki aspekt logike prvog reda govori o znacenju formula. U


nastavku ce biti uvedena semantika logike prvog reda u stilu
Tarskog (koji je prvi precizno uveo pojam semantike 1933. godine)
[?]. Tako uvedenu semantiku zovemo i semantika Tarskog.

3.2.1

Valuacija, interpretacija, model; zadovoljive, valjane,


porecive i kontradiktorne formule

U
nastavku cemo da
smatrati
da se
segovori
podrazumeva
(i kada
to onije
eksplicitno
se,signaturu
kada
o formulama,
govori
formulama receno)
za neku fiksnu
L i fiksan
skup promenljivih
V . LDefinicija 3.8 Za datu signaturu L, L-struktura D je par (D, IL), gde je D skup, a
I L funkcija pri cemu vazi sledece:
D je neprazan skup i zovemo ga domen, nosac ili univerzum;

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

40

3 Logika prvog reda

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


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

Valuacija v za skup promenljivih V u odnosu na domen D je


preslikavanje koje svakom elementu iz V dodeljuje jedan element
iz D. Ako je v(xi ) = dj ,
onda
da jeskup
dj vrednost
promenljive
xi u valuaciji
v.domen,
Ako su v i
w
va- kazemo
luacije
promenljivih
i u odnosu
na isti
onda
sa v x za
wdaisti
oznacavamo
je v(y) = w(y) za svaku promenljivu y razlicitu od x.
Ako je D = (D, IL) L-struktura za neku signaturu L i v valuacija za
skup
promenljivih
V i za
domen D,
onda
par (D, v) odreduje
interpretaciju,
tj.
funkciju ID,
preslikava
skup
L-termova
skupom
promenljivih
v koja
V
skup
skup
L-formula
nad
skupom nad
promenljivih
V u skup {0,
1}.uFunkcija
Ivauvodi
se narednim dvema definicijama.
Definicija 3.9

Vrednost (ili znacenje) terma t u interpretaciji Iv , odredenoj L-

strukturom
D i valuacijom v, oznacavamo sa Iv (t) i definisemo na sledeci nacin:

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


ako je t simbol konstante c, onda je Iv (t) = c I;
ako je t jednako f (t1 , t2 , . . . , tn ) (pri cemu je ar(f ) = n) i ako je Iv (ti ) = di za
i = 1, 2, . . . , n (pri cemu je di D), onda je Iv (t) = fI (d1 , d2 , . . . ,
dn ).
Definicija
Vrednost
znacenje)
formule A usainterpretaciji
Iv ,
odredenoj
L3.10
- strukturom
D (ili
i valuacijom
v, oznacavamo
Iv (A) i definisemo
na
sledeci nacin:
ako je A atomicka formula T onda je Iv (A) = 1;
ako je A atomicka formula onda je Iv (A) = 0;

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

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

ako je A = B1 B2, onda je


.
1, ako je Iv (B1) = 1 i Iv (B2) = 1
Iv (A) =
0, inace
ako je A = B1 B2, onda je
.
1, ako je Iv (B1) = 1 ili Iv (B2) = 1
Iv (A) =
0, inace

3.2 Semantika logike prvog reda

41

ako je A = B1 B2, onda je


.
0, ako je Iv (B1) = 1 i Iv (B2) = 0
Iv (A) =
1, inace
ako je A = B1 B2, onda je
.
Iv (A) =

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


0,

inace

ako je A = (x)B, onda je Iv (A) = 1 ako postoji valuacija w sa domenom D


takva da je w x v i Iw (B) = 1; inace je Iv (A) = 0;
ako je A = (x)B, onda je Iv (A) = 0 ako postoji valuacija w sa domenom D
takva da je w x v i Iw (B) = 0; inace je Iv (A) = 1.
Moze se dokazati da je na opisani nacin svakoj formuli A nad
signaturom
L i skupom V pridruzena (jedinstvena) vrednost Iv (A). Primetimo da Iv (A)
zavisi od v(x) samo ako promenljiva x ima slobodna pojavljivanja u formuli
A. Vrednost Iv (A), dakle, zavisi samo od slobodnih promenljivih u formuli
A
Specijalno,
ako je IA (recenica,
od. v,
pa tada umesto
A) pisemovrednost
krace I(IAv ).(A) uopste ne zavisi
v

Definicija
3.11 Ako A
je interpretacija
Iv odredena L-strukturom D i valuacijom v
izadovolako za Ljava
-formulu
vazi
Ije
v (A) = 1, onda kazemo da interpretacija Iv
formulu
A
,
da
formula
A tacna
u interpretaciji
v i da je
L
-struktura
D sa valuacijom
v model
formule
A i pisemo
(D, v)
|= (D,
A. Iv)
Formula
A
je
zadovoljiva
u
L
-strukturi
D
ako
postoji
valuacija
v
takva
da
je
|= A.
L
-formula
(D,
v) |= AA. je zado- voljiva ako postoje L-struktura D i valuacija v takve da je
Ako formula nije zadovoljiva, onda kazemo da je ona kontradiktorna.
Definicija
3.12interpretaciji
Ako je za neku
-strukturu
Dda
formula
A tacna D
za model
svaku valuaciju
v,
tj.
u svakoj
Ivvaljana
,L
onda
kazemo
je L-struktura
formule
A
,
kazemo
da
je
formula
A
u
L
-strukturi
D
i
pisemo
D
|= A.kazemo
Ako je
formula
nad
signaturom
L
valjana
u
svakoj
L
-strukturi,
onda
za
tu
formulu
da jeAko
valjana
i
to
zapisujemo
|
=
A
.
formula nije valjana, onda kazemo da je ona poreciva.
Ako nije D |= A, onda pisemo D |= A i kazemo da je D kontramodel za

A.
Analogne definicije uvodimo za skupove formula.
Definicija 3.13 Skup recenica je konzinstentan ili zadovoljiv ako ima bar
jedan model.
Inace, kazemo da je nekonzistentan, nezadovoljiv,
protivrecan ili kon- tradiktoran.
Teorema
Ako su formule A i A B (nad nekom signaturom L) valjane, onda je i
formula B3.1
valjana.
Dokaz:interpretacija
Pretpostavimo
postoje
L-struktura
D i odgovarajuca
Iv tacna
u da
kojoj
formula
B nije Itacna.
Formula
A je
valjana,
pa
je
i
u
interpretaciji
.
U1toj
interpretaciji,
v
onda,
formula
A

B
nije
tacna
(jer
je
I
(
A
)
=
i
I
(
B
)
=
0),
sto
v
v
protivreci
pretpostavci
da
je formula Ajeformula
B valjana.
Dakle,
polazna
pretpostavka
pogresna,
B dokazati.
tacna
u
svakoj interpretaciji,
tj. je
ona
je valjana,pa
sto je i trebalo

42

3 Logika prvog reda

Teorema
A unad
je formula 3.2
(x)Formula
A valjana
D.signaturom L je valjana u L-strukturi D ako i samo ako
Dokaz:da
Pretpostavimo
je formula
A valjana
u D. Pretpostavimo
formula
(x)A da
nije
uA)D,
da postoji
valuacija
vw takva
dajejevaljana
Iv((x)
=tj.0.Ipretpostavimo
Odatle
sledi
da
postoji
valuacija
za
koju
w
v
i
vazi
(
A
)
=
0,
pa
formula
A
x
w
nije
valjana
u
D,
sto
je
u
suprotnosti
sa
pretpostavkom.
Dakle, formula (x)A je valjana u D.
Pretpostavimo
da je vformula
D. To znaci da
za
svaku
valuaciju
vazi
I(vx)
((postoji
Ax)valjana
A) =valuacija
1.u Pretpostavimo
formula
A
nije
valjana
u
D.
Tada
w takva dada
je
Ipretpostavkom.
w (A) = 0, pa je Iw ((x)A) = 0, sto je u suprotnosti sa
Dakle, formula A je valjana u D.

Teorema 3.3 Formula A je valjana ako i samo ako je formula (x)A valjana.
Dokaz:onda
Nekaje
je ona
A formula
nadu signaturom
L. Ako jeD,formula
valjana,
valjana
svakoj LL-strukturi
-strukturi
pa je Aonda,
na
osnovu
teoreme3.2
, ui svakoj
D valjana
i formula
(samo
x)A. Analogno
vazi
obratno,
pa
je
formula
A
valjana
ako i
ako
je
formula
(x)A
valjana.

Na osnovu teorema3.2i3.3i jednostavnog induktivnog argumenta


slede naredne dve teoreme.
Teorema
A nad
je formula 3.4
Formula
A valjana
u D.signaturom L je valjana u L-strukturi D ako i samo ako
Teorema 3.5 Formula A je valjana ako i samo ako je formula A valjana.
Naredne dve teoreme analogne su (preciznije dualne) prethodnim
teore- mama.
Teorema
3.6 Formula
A nad signaturom
ako je formula
A zadovoljiva
u D. L je zadovoljiva u L-strukturi D ako i samo
Teorema 3.7 Formula A je zadovoljiva ako i samo ako je formula A zadovoljiva.

Zadaci
Zadatak 29
Zadatak 30

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


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

fI
b
a
a

pI
a
b
c

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

a
1
1
0

b c
1 0
0 1
0 1

3.2 Semantika logike prvog reda


Zadatak 31

43

Odrediti sve dvoclane modele formule (x)(y)(p(x, y)p(y, x)).

Zadatak 32 Odrediti jedan model i jedan kontramodel za formulu


(x)(y)(p(f (x, y), a)).

Zadatak 33 Data je 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 beskonacan domen.
Zadatak 34

Dokazati da je formula (x)(y)(z)(p(x) p(y) p(z)) valjana.

Zadatak
35Dokazati
da su
formule valjane:
(a) (x)(
y)A (y)(
x)naredne
A
(b) ((x)(AB )) (A(x)B ), pri cemu promenljiva x nije slobodna u A.
Zadatak
36ADokazati
da naredne formule nisu valjane:
(a) (x)
1 (x)A2 (x)(A1 A2)
(b) (x)A1 (x)A2 (x)(A1 A2 )
Zadatak 37 Dokazati da formula (x)(y)p(x, y) (y)(x)p(x, y) nije valjana.
Zadatak 38 Dokazati da je sledeca formula valjana:
((x)A) B (x)(A B )
pri cemu formula B nema slobodnih pojavljivanja promenljive x. Dokazati da data
formula nije valjana ako se izostavi navedeni dodatni uslov.

3.2.2 Logicke posledice, logicki ekvivalentne


formule, supstitucija
Definicija
Neka A
je logicka
skup formula
i nekaskupa
je A formula
formula nad signaturom
.
Kazemo
da 3.14
je formula
posledica
|= LA
ukoliko za
svaku
D (D,
i svaku
valuaciju
v vazi: akozai pisemo
svaku formulu
B
iz vazi
(D,
v) |=L-strukturu
B, onda vazi
v) |=
A.
Drugim recima, kazemo da je formula A logicka posledica
skupa formula
ako je svaki model za istovremeno i model za A.
Ako je skup konacan, tj. ako je = {B1 , B2 , . . . , Bk }, onda pisemo
B1 , B2 ,
.onda
. . , Bkformulu
|= A. Ako
je prazan svaka
skup, onda
pisemo |=i tada
A. Ako
je |= A,
A zadovoljava
interpretacija
je formula
A valjana.
Ako ne vazi |= A, onda to zapisujemo |= A.
Na osnovu definicije logicke posledice, jednostavno se dokazuje
naredno
tvrdenje (analogno teoremi2.2).
Teorema 3.8
(a)Svaka valjana formula je logicka posledica praznog skupa formula.
(b)

Ako je skup kontradiktoran, onda je svaka formula njegova logicka posledica.

Specijalno, svaka formula je logicka posledica skupa {}.

44

3 Logika prvog reda

(c)Ako je i |= A, onda je |= A.
Definicija 3.15 Kazemo da su formule A i B logicki ekvivalentne i pisemo A B
ako je A logicka posledica formule B i B je logicka posledica formule A.
Akokojoj
je svaki
model
za A istovremeno
i model za
B i obratno,
onda
u bilo
valuaciji
formule
A i B imaju jednake
vrednosti.
Tvrdenja
oblika
B ocigledzovemo logickim ekvivalencijama (ili krace ekvivalencijama).
RelacijaA je,
no, relacija ekvivalencije nad skupom formula.
Teorema 3.9 Ako za L-formule A1 , A2 , B1 i B2 vazi A1 A2 i B1 B2 , onda je:
(a) A1 A2
(b) A1 B1 A2 B2
(c) A1 B1 A2 B2
(d) A1 B1 A2 B2
(e) A1 B1 A2 B2
(f) (x)A1 (x)A2
(g) (x)A1 (x)A2
Teorema
Za datu
signaturu
L, dve L-formule A i B su logicki ekvivalentne ako
i samo ako 3.10
je formula
A
B valjana.
Primer
3.3 Moze
se dokazati
da za proizvoljnu
L-formulu
A Ivazi
(x)A
(i dokazimo
x)A. Neka
jeonda
D proizvoljna
L-struktura.
Pretpostavimo
da vazi
v ((x)A) = 1
da
vazi
i
I
1.
Iz
I
v ((x)A) =
v ((x)tA) = 1 sledi Iv ((x)A) =
r
r
0,
pa uvaluaciji
svakoj valuaciji
v da
, takvoj
je v x Iv,t (vazi
Iv (A) = 0. To znaci da u
svakoj
v r , takvoj
je v rv rda
x v, vazi
v A) = 1, a odatle sledi da u svakoj
rr , takvoj
rr
valuaciji
v
da
je
v
,
vazi
I
x
v tt ((x)A) = 1, pa i u valuaciji v, tj. Iv
((
x)IA()(=x)
1,Asto
sledi
) =je1)i trebalo dokazati. Drugi smer tvrdenja (da iz Iv ((x)A) = 1
v
dokazuje se analogno.
Primer 3.4 Neke od logickih ekvivalencija logike prvog reda (ili, preciznije, neke
od shema logickih ekvivalencija logike prvog reda) su:

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

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

(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 sadrzi slobodna


pojavljivanja promenljive x)
zakon distributivnosti prema
(pri cemu B ne sadrzi slobodna

pojavljivanja promenljive x)

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

3.2 Semantika logike prvog reda

45

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


ako je t = x, onda je t[x tx] = tx;
ako je t = y, gde je y = x, onda je t[x tx ] = t;
ako je t = f (t1, t2, . . . , tn), onda je t[x tx] = f (t1[x tx], t2[x
tx], . . . , tn[x tx]).
Definicija 3.17 Formulu dobijenu zamenom (supstitucijom) promenljive x termom
tx u formuli A oznacavamo sa A[x tx ] i definisemo na sledeci nacin:

T [x tx] = T;
[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
y,)[x
neka
promenljiva
ni u (y)A ni u tx ;
tadajejex(=y A
jetxz] =
(z)A[y koja
z][xsene
tpojavljuje
x ];
ako
y,)[x
neka
promenljiva
ni u (y)A ni u tx ;
tadajejex(=y A
jetxz] =
(z)A[y koja
z][xsene
tpojavljuje
x ].
Primetimona
daprimer,
poslednja
pravila
prethodnoj
obezbeduju,
da dva
((y)p(x,
y))[xu
y] ne budedefiniciji
(y)p(y, y) vec
(z)p(y, z).
Primer 3.5 Vazi:
(x)A

(y)(A[x y])

zakon
o preimenovanju
vezane
promenljive
(pri cemu A
ne sadrzi
slobodna pojavljivanja promenljive y)

(x)A

(y)(A[x y])

zakon o preimenovanju vezane


promenljive (pri cemu A ne sadrzi
slobodna pojavljivanja promenljive y)

U daljem tekstu cemo pod terminom izraz podrazumevati i


termove i for- mule.

46

3 Logika prvog reda

Definicija
3.18[xUopstena
zamena (supstitucija) je skup zamena [x1 t1 ],
[x
n tn ] gde su xi promenljive i ti su proizvoljni termovi i gde je xi
= 2xjzat2i],=. .j.., Takvu
zamenu zapisujemo krace [x1 t1 , x2 t2 , . . . , xn tn ].
Uopstena zamena primenjuje se simultano na sva pojavljivanja promenljivih x1,
x2, . . ., xn u polaznom izrazu i samo na njih (tj. ne primenjuje se na podtermove
dobijene zamenama).
U daljem tekstu cemo umesto termina uopstena zamena (uopstena
supstitucija) koristiti termin zamena (supstitucija).
Izraz koji je rezultat primene zamene nad izrazom E,
oznacavamo sa E.
Ocigledno, iz zamene [x1 t1 , x2 t2 , . . . , xn tn ] se
mogu
xi . (ali ne moraju) izostaviti sve pojedinacne zamene oblika xi
Primer 3.6 Za = [x f (y)] i s = g(a, x) vazi s = g(a, f (y)).
Za = [x f (x)] i s = g(a, x) vazi s = g(a, f (x)).
Za = [x f (y), y a], s = g(a, x) i t = g(y, g(x, y)) vazi s = g(a, f (y))
i
t = g(a, g(f (y), a)).
Ukoliko u zameni = [x1 t1, x2 t2, . . . , xn tn] nijedan od
termova ti ne sadrzi nijednu od promenljivih xj (sem, eventualno,
ako je ti = xi za neko i), onda je efekat te zamene jednak efektu
sukcesivno primenjenih pojedinacnih zamena. Supstitucija je
idempotentna (tj. za bilo koji izraz E vazi E = (E)) ako i
samo ako vazi taj uslov da nijedan od termova ti ne sadrzi
nijednu od promenljivih xj (sem, eventualno, ako je ti = xi za
neko i).
Definicija
3.19 Za supstitucije = [x1 t1, x2 t2, . . . , xn tn] i =
[y
1 s 1, y2 s 2, . . . , ym sm], kompozicija supstitucija je
supstitucija
[x1 su
izbrisane
t1, x2
t2, . . . , xn tn, y1 s1, y2 s2, . . . , ym
s
sm] jeizykoje
, gde
= x za
neko j. zamene oblika xi xi, kao i zamene oblika yi
i

Primer 3.7 Za = [x f (y)] i = [y g(z)], vazi = [x f (g(z)), y


g(z)].
Za = [x f (y)] i = [y g(x)], vazi = [x f (g(x)), y
g(x)]. Za = [x y] i = [y x], vazi = [y x].
Za = [x f (y)] i = [x g(z)], vazi = [x f (y)].
Za = [x f (x)] i = [x a], vazi = [x f (a)].
Moze se dokazati da je kompozicija supstitucija asocijativna, kao
i da vazi
E() = (E).
Definicija 3.20 Ako je E izraz (term ili formula) i ako je supstitucija, onda
kazemo da je E instanca (ili primerak) izraza E. Ako je izraz E bazni, onda
kazemo da je on bazna instanca izraza E.
Definicija
3.21 Neka su
formule
1 i B2 takve da formula B2 nema nijednu
slobodnu
promenljivu
koju
nema Bformula
B1. Formulu dobijenu zamenom
(supstitucijom)
formule
B
1 formulom B2 u formuli A, oznacavamo sa A[B1 B2 ] i
definisemo na sledeci
nacin:

ako je formula A instanca formule B1, tj. ako je A = B1 za neku supstituciju


, onda je A[B1 B2] = B2;

3.2 Semantika logike prvog reda

47

ako
Bje2]formula
= A; A atomicka formula i nije instanca formule B1 , onda je A[B1
(A)[B1 B2] = (A[B1 B2]);
(A B)[B1 B2] = (A[B1 B2] B[B1 B2]);
(A B)[B1 B2] = (A[B1 B2] B[B1 B2]);
(A B)[B1 B2] = (A[B1 B2] B[B1 B2]);
(A B)[B1 B2] = (A[B1 B2] B[B1 B2]);
(xA)[B1 B2 ] = (x)(A[B1 B2 ]);
(xA)[B1 B2 ] = (x)(A[B1 B2 ]).
Naglasimo daproblem
smo u prethodnoj
definiciji datompromenljivih
restrikcijom u
pojednostaslobodnih pojavljivanjima
formulama Bvili
1 i B2. Osnovna svrha koncepta zamene formule formulom je u zameni formule
logicki ekvivalentnom formulom i za tu svrhu je data definicija
dovoljna.
Teorema 3.11 (Teorema o zameni) Ako vazi B1 B2 , onda je A A[B1 B2 ].
Primer 3.8 Neke od logickih ekvivalencija logike prvog reda (koje proizilaze iz iskazne
logike) su (videti i primer2.6):
zakon dvojne negacije
A A
zakon iskljucenja treceg
A A T
(A B) (B A) zakon komutativnosti za
Primer 3.9 Vazi (x)(AB ) (x)(AB) (x)(AB) (x)(A

B)
(x)(A
). Iz
x)(
B)A(Bx)(
A B ), na osnovu teoreme3.10 sledi da
je formula
(B
x)(
A
(B
)A
(x)(
) valjana.

Zadaci
Zadatak 39
Zadatak 40

Navesti primer formule koja je valjana a nije izvod tautologije.


Dokazati da je formula (x)(A B ) ((x)A (x)B) valjana.

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


Zadatak 42 Dokazati da je formula (x)(y)A (y)(A[x y]) valjana.
Zadatak 43 Dokazati sledecu logicku ekvivalenciju:
xA y(A[x y])
pri cemu formula A nema slobodnih pojavljivanja promenljive y. Dokazati da
data logicka ekvivalencija ne vazi ako se izostavi navedeni dodatni uslov.
Zadatak 44 Dokazati da je supstitucija = [x1 t1, x2 t2, . . . , xn
tn] idempotentna (tj. da za bilo koji izraz E vazi E = (E)) ako i samo ako
nijedan od termova ti ne sadrzi nijednu od promenljivih xj (sem, eventualno, ako je
ti = xi za neko i).

48

3 Logika prvog reda

3.2.3 Normalne forme


Definicija 3.22 Kazemo da je formula u preneks formi ili preneks normalnoj
formi
ako je ona oblika
Q1x1Q2x2 . . . QnxnA
pri cemu je Qi ili ili i A ne sadrzi kvantifikatore, kao ni slobodne promenljive
osim (eventualno) promenljivih x1, x2, . . . , xn.
Ako Bjei forrecenica
formula)
A logicki
ekvivalentna
formuli
mula
B (zatvorena
je unormalna
preneks
normalnoj
formi,
kazemo
da
je formula
B
preneks
forma
formule
A. onda
Koriscenjem
pogodnih
logickih
ekvivalencija,
svaka zatvorena formula moze biti transformisana u svoju preneks
normalnu for- mu. Radi jednostavnosti procedure i rezultujuce
formule, obicno se u okviru
transformisanja formule u preneks formu najpre eliminisu veznici i . Naglasimo
daprijedna
formula
moze
da
ima
normalnih
mer,
i formula
(x)(
y)(
Aformule
(x)vise
B (y))(preneks
(y)(
x)
(formi
B (y)A(na
(x))
su formula
preneks
normalne
forme
ix)formula
A(x) (y)
B (y)).
Slicno,
jedna
koja
je u
preneks normalnoj formi moze biti preneks normalna forma za
vise formula. Transformisanje formule u preneks normalnu
formu moze biti opisano procedurom prikazanom na slici3.1(kada govorimo o ,,primeni neke logi
cke ekvi- valencije mislimo na koriscenje ekvivalencije na
osnovu teoreme o zameni (3.11)).
Korektnost navedenog algoritma moze se dokazati slicno kao
korektnost procedure za transformisanje formule u konjunktivnu
normalnu formu (teo- rema2.6). Za slu caj kada (prilikom primene
koraka 4 algoritma) promenljiva
xod,
ima
pojavljivanja
B, formula
izboromu(
nove
naslobodna
primer, formule
(xA) uBformuli
dobija se
A[x promenljive
u] B), pa
je potrebno
dokazati i:
(xA) B u(A[x u] B )
(kao i preostale analogne logicke ekvivalencije). Bez detalja
dokaza, navodimo teoremu o korektnosti algoritma PRENEX.
Teorema
3.12 (Korektnost
algoritma
PRENEX)
Algoritam PRENEX se zaustavlja
zadovoljava
sledece
svojstvo:
akojejeekvivalentna
A ulazna formula,
Ar u ipreneks
normalnoj
formi
i logicki
sa A. onda je izlazna formula
Za transformisanje formule u njenu preneks normalnu formu
mogu se ko- ristiti i logicke ekvivalencije kao sto su
B (xA) (x)(B A),
(x)A B (x)(A B),
pri
cemuako
x nema
slobodnaeliminisani
pojavljivanja
u formuli
potrebno
su na pocetku
veznici
i . B, ali to nije
U nekim
moguce
je primeniti
neki formulu
korak navedenog
algoritma
nasituacijama
visejeodtransformisati
jednog
nacina.
primer,

(((y)q(y)
i u Na
(x)(p(x)
(y)q(y))(ix)p(x)
u (y)
x)p(x) moguce
q(y)). Obe
ove formule su, naravno, logicki ekvivalentne sa polaznom formulom.
Ipak, u situaci- jama kada je moguce ,,pomeriti i univerzalni i
egzistencijalni kvantifikator, uvek cemo radije ,,pomeriti najpre
egzistencijalni, a onda univerzalni. Takav prioritet uvodimo zarad
jednostavnijeg koraka skolemizacije (o kojem ce biti reci u
nastavku). Naglasimo da univerzalni i egzistencijalni kvantifikator
ne

3.2 Semantika logike prvog reda

Algoritam: PRENEX
Ulaz: Zatvorena dobro zasnovana formula A
Izlaz: Preneks normalna forma
formule A
1. Dok god je to moguce, primenjivati logicke ekvivalencije

A B (A B ) (B A ) i
A B A B.
2. Dok god je to moguce, primenjivati sledece logicke
ekvivalencije:

(A B) A B,
(A B) A B,
(x)A (x)A,
(x)A (x)A.
3. Eliminisati visestruke veznike koristeci zakon dvojne
negacije:

A A.
4. Dok god je to moguce, primenjivati sledece logicke
ekvivalencije:
(xA) B (x)(A B),
(xA) B (x)(A B),

B (x)A (x)(B A),


B (x)A (x)(B A),
(xA) B (x)(A B),
(xA) B (x)(A B),

B (x)A (x)(B A),


Figure 3.1: Algoritam PRENEX

49

50

3 Logika prvog reda

mogu, u opstem slucaju, da menjaju mesta, tj. formule (x)(y)A i


(y)(x)A
nisu
u opstem
slucaju logicki
ekvivalentne.
S druge
strane, (dva
kvantifikatora
mogu da
zamene mesta,
tj. formule
x)
(univerzalna
y)A i (y)(x)
A su
logicki
ekvivalentne.
Slicno,
dva
egzistencijalna
kvantifikatora
mogu daekvivalentne.
za- mene mesta,
logicki
To tj. formule (x)(y)A i (y)(x)A su
sustinski znaci da u bloku kvantifikatora istog tipa, njihov poredak
nije bitan.
Primer 3.10 Razmotrimo formulu

x p(x) xy z(q(y, z) r(g(x), y)) .


Nakon
koraka

x(p(x) xy z(q(y, z) r(g(x), y))) ,

kako je promenljiva x slobodna u p(x), najpre cemo preimenovati vezanu promenljivu


x u u (u okviru formule xy z(q(y, z) r(g(x), y))):
x(p(x) uy z(q(y, z) r(g(u), y))) .
Nakon toga kvantifikatori u, y, z mogu, jedan po jedan, biti pomereni na pocetak
formule:
xuy z(p(x) (q(y, z) r(g(u), y))) .
Definicija 3.23 Formula bez kvantifikatora je u konjunktivnoj normalnoj formi ako
je oblika
A1 A2 . . . An
pri cemu je svaka od formula Ai (1 i n) disjunkcija literala.
Konjunktivna normalna forma formule predikatske logike moze
se dobiti na isti nacin kao i u slucaju iskazne logike (videti
poglavlje2.2.5).
Primer 3.11 Konjunktivna normalna forma formule
p(x) (q(y, z) r(g(u), y))
je
formula

p(x) (q(y, z) r(g(u), y)) .

Definicija 3.24 Formula je u klauzalnoj formi ako je oblika

x1 x2 . . . xn A
gde je A formula bez kvantifikatora koja je u konjunktivnoj normalnoj formi i A
nema slobodnih promenljivih osim, eventualno, promenljivih x1, x2, . . . , xn.
Ako izostavljaju
je formula xkvantifikatori
formi,
onda se cesto u
1 x2 . . . xn A ui klauzalnoj
zapisu
piseformule
samo
A
da se misli
na uni- verzalno zatvorenje
A,. podrazumevajuci
Ne postoji
za
svaku recenicu
formula
je u klauzalnoj
formi
i(x)p(x)
koja
joj
logicki
ekvivalentna.
Nakoja
primer,
za recenicu
nejepostoji
formula
koja
je u moze
klauzalnoj
formi i koja
je logicki
ekvivalentna.
Medutim,
se dokazati
da da
zajojjesvaku
recenicu
A ipostoji
formula
B u klauzalnoj
formi
takva
ATozadovoljiva
ako
samo
ako je B zadovoljiva
(videti
teoremu3.15).

3.2 Semantika logike prvog reda

51

je dovoljno
i pogodno recenice
za ispitivanje
zadovoljivosti
formula
ako se
ispituje
A, dovoljno
je ispitati
zadovoljivost
formule zadovoljivost
B koja je u
klauzalnoj
(pogodnoj
za neke
metode)
zadovoljiva
je ako i
samo
ako jeformi
zadovoljiva
A. Uslov
da je iformula
A zadovoljiva
ako
i samo
ako
B slaba formula
zadovoljiva
zovejese
ekvivalencija.
Transformisanje
recenice
formulu
B koja
u klauzalnoj
formi
i kojaeliminisanje
je zadovoljiva
akoA u
i samo
ako
je Ajezadovoljiva
ukljucuje
egzistencijalnih kvantifikatora. Ono se zasniva na izmeni polazne
signature doda- vanjem novih funkcijskih simbola. Te dodatne
funkcijske simbole zovemo Skolemovim konstantama (za funkcijske
simbole arnosti 0) i Skolemovim funkci- jama, a proces eliminisanja
egzistencijalnih
kvantifikatora
zovemo
skolemizacijom
(po
matematicaru Skolemu koji ih je prvi koristio). Prvi korak je transformisanje formule u preneks normalnu formu. Drugi korak je
transformisanje dela formule bez kvantifikatora u konjunktivnu
normalnu formu. Nakon toga, postupkom skolemizacije eliminisu
se egzistencijalni kvantifikatori, jedan po jedan, sleva nadesno.
Pretpostavimo da recenica pocinje egzistencijalnim
kvantifikatorom: y A.
Treba
izabrati
novi
simbol konstante
koji se ne y pojavljuje
u
signaturi,
obrisati
kvantifikator
i zamenitid promenljivu
simbolom
d.
Na
taj nacin
formula
y A
transformise
se u formulu
A
[y ako
d].
Moze
se
dokazati
da
je
formula

y
A
zadovoljiva
ako
i
samo
je formula A[y d] zadovoljiva.
Ako recenica pocinje nizom univerzalnih kvantifikatora: x1 x2 . . .
xn y A,
onda
uvodimo
novi funkcijski
simbol bice
f arnosti
do tada nije
postojao
Polazna
ondan koji
transformisana
u
formulu
xu1 xsignaturi.
[yn yAf zadovoljiva
(xformula
se dokazati
da
1 , x2 , . . . , x
n )]. i Moze
je
x21[y. x. 2.. xf.n(x
. Ax
ako
samo ako
je formula
x1 formula
x2 . . . xnA
,
x
,
.
.
.
,
x
)]
1
2
n
zadovoljiva. (Primetimo da je uvodenje nove konstante samo
specijalni slucaj uvodenja novog funkcijskog simbola.)
Teorema
3.13 (Teorema
o skolemizaciji)
Ako je formula
signaturom
Lr dobijena
skolemizacijom
od recenice
A nad
L kojaBjenad
u preneks
normalnoj
formi, onda
je A zadovoljiva
ako i samo
akosignaturom
je B zadovoljiva.
Primer 3.12 Skolemizacijom se formula

xuy z(p(x) (q(y, z) r(g(u), y)))


transformise u formulu
p(x) (q(h(x, u), z) r(g(u), h(x, u))) .
Teorema 3.14 Neka je formula B (u klauzalnoj formi) dobijena od recenice A
uza- stopnom primenom sledecih postupaka:
transformisanje formule u preneks normalnu formu;
transformisanje dela formule bez kvantifikatora u konjunktivnu normalnu formu;
skolemizacija.
Tada je formula A zadovoljiva ako i samo ako je B zadovoljiva.

52

3 Logika prvog reda

Dokaz: Transformacija formule u preneks normalnu formu i


transformacija dela formule bez kvantifikatora u konjunktivnu
normalnu formu zasnovane
su
na
logickim
ekvivalencijama,
pa ako je formula
B dobijena
od
formule
A vazi
uzastopnom
primenom
navedene
dve
transformacije,
A i samo
B , sto
je je
jaci
da je A zadovoljiva
ako
ako
B uslov nego uslov
zadovoljiva. Na osnovu teoreme3.13sledi da skolemizacija
cuva zadovoljivost i nezadovoljivost, pa je formula B zadovoljiva ako i
samo ako je
A zadovoljiva.

Na osnovu prethodne teoreme neposredno sledi naredno


tvrdenje.
Teorema 3.15 Za svaku recenicu A postoji formula B u klauzalnoj formi takva da je

A zadovoljiva ako i samo ako je B zadovoljiva.


Klauzalna
forma
je pogodna
zadovoljno
dokazivanje
pobijanjem.
bi se
dokazalo
da je
formula
valjana,
je da
dokazati
da jeDa
formula
A
nezadovoljiva,
pa jeA dovoljno
i dokazati
je klauzalna
forma
formule
A nezadovoljiva.
Primer 3.13 Formula A = (x)p(x, x) (y)p(y, y) nad signaturom L je valjana.
To se moze dokazati na sledeci nacin.
Formula
je jednaka
x)p(x,
(y)p(y, y))
i njenaformulu
preneksp(x,
normalna
forma
je (y)(A
x)(p(x,
x) ((
p(y,
y)). x)
Skolemizacijom
dobijamo
x)
r signatura dobijena prosirivanjem

p(c,
c),
gde
je
c
novi
simbol
konstante.
Neka
je
L
signature L simbolom c. Pokazimo da je formula p(x, x) p(c, c) nezadovoljiva.
Pretpostavimo suprotno pretpostavimo
da navedena formula
ima model. t Neka je
t
t
to Lr-struktura D = (D, IL ) sa valuacijom v. Neka je IL (p) = pI i IL (c) = cI.
Vazi
Iv (p(x, x)
p(c,dac))
1 tj. Iv ((x)(p(x, x) p(c, c))) = 1, pa za
svaku
valuaciju
w
takvu
je wje=w(x)
x v vazi Iw (p(x, x) p(c, c)) = 1. To, dakle,
vazi
i
za
valuaciju
w
u
kojoj
= cI . Iz Iw (p(x, x) p(c, c)) = 1 sledi Iw
(p(x, x)) = 1
isledi
Iw (p(c,
= 0.
Iz sto
Iw (p(x,
x)) = 1 slediDakle,
pI (cI, formula
cI ) = 1,p(x,
a iz x)
Iw
(p(c,
c)) c)
= je
0
pI (cc))
= je
0,
je kontradikcija.
p(c,
I , cI )pa
nezadovoljiva,
polazna
formula A valjana.

Zadaci
Zadatak
45 Odrediti
klauzalne
forme
za formule:
(a)
(b) ((x)
x)A
A11 ((x)
x)A
A22
((x)(
x)(A
A11 AA22))
(c) (x)(y)A (y)A(f (y), y)

3.2.4 Unifikacija
Problem unifikacije je problem ispitivanja da li postoji supstitucija koja
cini dva izraza (dva terma ili dve formule) jednakim. Unifikacija se
prvi put pominje u radovima Posta, a zatim i u radovima Erbrana.
Definicija 3.25 Ako su e1 i e2 izrazi i ako postoji supstitucija takva da vazi e1 =
e2 , onda kazemo da su izrazi e1 i e2 unifikabilni i da je supstitucija unifikator
za ta dva izraza.

3.2 Semantika logike prvog reda

53

Dva unifikabilna izraza mogu da imaju vise unifikatora. Za dva


unifikatora
1 i 2 kazemo da su jednaka do na preimenovanje promenljivih
ako postoji
supstitucija
koja je oblika [v r v rr , v r v rr , . . . , v r v rr ], pri cemu su
v r i v rr
1

simboli promenljivih i vazi 1 = 2 .


Primer
3.14 Neka
z),jeneka
t2 jednak
g(y,
f (y))pai su
neka
je
supstitucija
[y jeterm
x, zat1jednak
(x)].g(x,
Tada
iunifikator.
t1jei term
t2 jednako
g(x,
f (x)),
termovi
t1 i t2 unifikabilni,
jef(jedan)
njihov
Unifikator
termova
t1 i t2
je npr. i [x a, y a, z f (a)]. Termovi g(x, x) i g(y, f (y)) nisu unifikabilni.
Definicija 3.26 Supstitucija je najopstiji unifikator za izraze e1 i e2 ako
svaki unifikator izraza e1 i e2 moze biti predstavljen u obliku = za neku
supstituciju
.
Na osnovu definicije, svaki unifikator izraza e1 i e2 moze biti
dobijen od najopstijeg unifikatora primenom neke supstitucije.
Svaka dva unifikabilna izraza imaju najopstiji unifikator. Moze
se dokazati da za dva izraza postoji najvise jedan najopstiji
unifikator (do na preimenovanje promenljivih).
Unifikacija ima mnoge primene.
Jedna od najznacajnijih je u
metodu re- zolucije.
Na slici3.2dat je opis op steg algoritma za odredivanje
najopstijeg unifikatora. Pretpostavimo da je dat niz parova izraza
(s1, t1), (s2, t2), . . . , (sn, tn)
i da se trazi supstitucija takva da vazi
s1 = t1, s2 = t2, . . . , sn = tn .
Algoritam unifikacije ili vraca trazenu supstituciju ili se zaustavlja
neuspesno, ukazujuci na to da trazena supstitucija ne postoji.
Ukoliko postoji bar jedna supstitucija koja zadovoljava trazeni
uslov, algoritam unifikacije vraca najopsti- ji unifikator (za date
parove izraza). Ulaz za algoritam unifikacije za parove (s1 , t1 ), (s2 ,
t2 ), . . . , (sn , tn ) se obicno zadaje u vidu niza jednakosti s1 = t1 , s2 =
t2, . . . , sn = tn.
Primetimo da je korak 6 algoritma moguce u opstem slucaju
primeniti na
vise nacina. Bilo koji od tih nacina vodi istom rezultatu
neuspehu (ako ne postoji trazeni unifikator) ili jednom od
unifikatora koji se mogu razlikovati samo do na preimenovanje
promenljivih.
U koracima 5 i 6 se primenjuje tzv. provera pojavljivanja cime se
obezbeduje zaustavljanje procedure (tj. sprecava pojavljivanje
beskonacnih petlji).
Primer 3.15 Ilustrujmo rad algoritma za odredivanje na primeru sledece dve
jed- nakosti:
g(y) = x
f (x, h(x), y) = f (g(z), w, z)
Polazni niz jednakosti je
g(y) = x, f (x, h(x), y) = f (g(z), w, z).
Primenom koraka 3 dobijamo
x = g(y), f (x, h(x), y) = f (g(z), w, z).

54

3 Logika prvog reda

Algoritam: Najopstiji unifikator


Ulaz: Niz jednakosti s1 = t1, s2 = t2, . . . , sn = tn
Izlaz: Najopstiji unifikator (ako on postoji)
Primenjuj, dok je to moguce, sledece korake:
1.
Ako postoje jednakosti koje imaju vise od jednog
pojavljivanja, obrisi za svaku od njih sva pojavljivanja
osim jednog (factoring).
2.

Obrisi sve jednakosti oblika t = t (tautology).

3.
Ako je x promenljiva i t term koji nije
promenljiva i ako se t = x pojavljuje u nizu jednakosti,
zameni jednakost t = x sa x = t. Ovo uraditi za sve
jednakosti tog oblika (orientation).
4.Pretpostavimo da je jednakost s = t element niza jednakosti i da ni s
ni t nisu promenljive. Razmotri sledece slucajeve:
(a) Ako je s jednako (u1, u2, . . . , uk) i
t je
jednako (v1, v2, . . . , vk) (gde je funkcijski ili
predikatski sim- bol), onda dodaj jednakosti u1 =
v1, u2 = v2, . . ., uk = vk i zatim obrisi jednakost s = t
(decomposition).
(b) Ako su s i t bilo koje druge forme, zaustavi rad i
kao rezultat vrati neuspeh (ovo se odnosi na slucajeve
kada je jedan od ter- mova simbol konstante, a drugi
nije; kada se u s i t razlikuju vodeci funkcijski
(odnosno predikatski) simboli i kada su vodeci
funkcijski (odnosno predikatski) simboli s i t razlicite
arnosti) (collision).
5.
Ako je x promenljiva, t term koji sadrzi x i x = t se
pojavljuje u nizu jednakosti, zaustavi rad i kao rezultat
vrati neuspeh (cycle).
6.
Ako je x promenljiva, t term koji ne sadrzi x, x se
pojavljuje i u nekim drugim jednakostima i x = t se
pojavljuje u nizu jednakosti, onda
primeni supstituciju [x t] na sve druge jednakosti
(application).
Ako nije moguce primeniti nijedan od navedenih koraka vrati
tekuci skup jednakosti kao najopstiji unifikator.
Figure 3.2: Algoritam Najopstiji unifikator

3.2 Semantika logike prvog reda

55

Primenom koraka 4(a) dobijamo


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

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

tj.
vazi

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

Primer 3.16 Razmotrimo sledecu jednakost:


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

primenom koraka za jednakost x = y; tada se dobija x = y, y = f (y),


odakle se, primenom koraka 5 dolazi do neuspeha.
primenom koraka za jednakost x = f (y); tada se dobija f (y) = y, x = f
(y), odakle se, primenom koraka 3 i koraka 5 dolazi do neuspeha.
Bez dokaza navodimo teoremu o korektnosti navedenog
algoritma za odre- divanje najopstijeg unifikatora (videti, na
primer, [?, ?]).
Teorema 3.16 (Korektnost algoritma Najopstiji unifkator) Algoritam
Najopsti- ji unifikator zadovoljava sledece uslove:

zaustavlja se;
ako vrati supstituciju, onda je ona najopstiji unifikator za dati niz parova izraza;
ako se algoritam zaustavi sa neuspehom, onda ne postoji unifikator za dati niz
parova izraza.

56

3 Logika prvog reda

Navedeni algoritam nije efikasan. Postoje znatno efikasniji


algoritmi za unifikaciju. Mnogi od njih zasnovani su na koriscenju
pogodnih struktura po- dataka i implicitnom primenjivanju
supstitucije (iz koraka 6). Neki od tih algo- ritama imaju linearnu
slozenost (po broju polaznih jednakosti), ali, u opstem slucaju,
najopstiji unifikator moze imati i eksponencijalnu duzinu (po
broju po- laznih jednakosti), te ga nije moguce eksplicitno
predstaviti u linearnom vre- menu. To ilustruje sledeci primer.
Primer 3.17 Za skup jednakosti
x1 = f (x0,
x0) x2 = f
(x1, x1)
...
xn = f (xn1, xn1)
Najopstiji unifikator sadrzi zamenu xn t, gde je t term koji sadrzi samo simbole x0
i f , pri cemu ima 2n 1 pojavljivanja simbola f .
Primetimo da je problem ispitivanja da li je neka formula instanca
neke aksiomske sheme blizak problemu unifikacije. Navedeni
algoritam za odredi- vanje najopstijeg unifikatora moze se
koristiti i za unifikovanje dobro zasno- vanih formula. Prilikom
ispitivanja da li neka formula cini instancu neke aksi- omske
sheme, medutim, vrsi se samo jednosmerno uparivanje i varijable u
for- mulama se smatraju konstantama koje nije moguce
instancirati. Postoje i drugi algoritmi za jednosmerno uparivanje.
Primer 3.18 Za testiranje da li je p(f (s(a), f (u, v)), s(f (a, f (u, v))))
instanca for- mule p(f (s(x), y), s(f (x, y))) moze se primeniti algoritam za
odredivanje najopstijeg unifikatora 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 moguce supstituisati. Time se dobija
najopstiji unifikator
= [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))), sim- boli y u prvoj i drugoj formuli ne smatraju se jednakim, te je
najopstiji unifikator za ove dve formule
= [x a, y f (u, y)] .

Zadaci
Zadatak 46 Odrediti najopstiji unifikator za sledeci skup parova termova:
{(g(x, h(y, z)), g(u, x)), (f (x), f (h(c, v))), (g(z, u), g(y, u))} .
Zadatak 47 Ispitati da li je relacija unifikabilnosti tranzitivna.

Zadatak 48 Dokazati da za dva izraza postoji najvise jedan najopstiji unifikator


(do na preimenovanje promenljivih).

3.2 Semantika logike prvog reda

3.2.5

57

Metod rezolucije

Metod rezolucije formulisao je Alan Robinson 1965. godine [?], sledeci


mnogobrojne prethodne rezultate. Metod rezolucije je postupak za ispitivanje
(ne)zadovoljivosti skupa klauza logike prvog reda, a moze se pojednostaviti
tako da je primenjljiv
za ispitivanje (ne)zadovoljivosti skupa klauza iskazne logike. Metod
rezolucije za iskaznu logiku primenjuje se na iskazne formule koje su
u konjunktivnoj normalnoj formi, a metod za logiku prvog reda
primenjuje se na formule koje su u klauzalnoj formi.
Formula se reprezentuje kao skup klauza od kojih je svaka skup
literala. Na osnovu asocijativnosti i komutativnosti konjunkcije i
disjunkcije, kao i na
osnovu logickih ekvivalencija A A A i A A A, formula koja je u konjunktivnoj normalnoj moze da se zameni (logicki ekvivalentnom)
formulom koja je skup (razlicitih) klauza od kojih je svaka skup
(razlicitih) literala. Sve
klauze koje sadrze logicke konstante T ili mogu biti eliminisane ili zamenjene
tako
da se ne promeni zadovoljivost polaznog skupa klauza i da
se ove
konstante
sadrzi
literal T je ne pojavljuju u skupu klauza. Zaista, klauza koja
u
svakoj valuaciji
tacna,
pa moze
biti Ako
eliminisana C
(jersadrzi
ne utice
na
zadovoljivost
polaznog
skupa
klauza).
literal

, ondavaluaciji
taj literal
moze
biti obrisan,
dajuciklauza
novu klauzu
C r (jer
je u
svakoj
klauza
C tacna
ako
i samo ako je tacna klauza C r ).
Klauza je iz
zadovoljiva
ako
postoji
interpretacija
kojoj je
jedan
te klauze
tacan.
Prazna
klauza, uu oznaci
, bar
ne
sadrziliteral
nijedan literal
i nije zadovoljiva. Formula koja je skup klauza je zadovoljiva ako postoji
interpretacija u kojoj su sve klauze te formule tacne, a inace je
nezadovoljiva.
U slucaju
logike, ako je
literalp;l jednak
slovu
p, negaciji
onda iskazne
sa l oznacavamo
literal
ako je iskaznom
literal l
jednak
slova
(tj. literalu
oznacavamo
literaliskaznog
p. Za literale
l i l pkazemo
da sup), onda sa l
medusobno
U slucaju
logike prvog literal
reda, ako
ltnjednak
p(t1literal
, komplementni.
t2 , . . . ,jednak
tn ), onda
l oznacavamo
p(t1je
, t2literal
,...,
); ako
p(tsa
1 , t2 , . . . , tn ), onda sa l oznacavamo
literal
p(t1je
, t2 , . . . , tln ).
Za literale l i l kazemo da su (medusobno) komplementni.
Metod rezolucije za iskaznu logiku
U metodu rezolucije za iskaznu logiku primenjuje se pravilo
rezolucije slede- ceg oblika:
C rl rl Crr

C Crr
Klauzu Cr Crr zovemo rezolventom klauza Cr l i Crr l, a klauze Cr l i
C rr l roditeljima rezolvente. Kazemo da klauze C r l i C rr l rezolviramo pravilom
rezolucije.
Metod rezolucije je postupak za ispitivanje zadovoljivosti skupa
klauza koji se sastoji od uzastopnog primenjivanja pravila
rezolucije. Pravilom rezolu- cije se roditelji rezolvente ne zamenjuju
rezolventom, vec se rezolventa dodaje u skup tekuci skup klauza.
Neka je S pocetni skup, neka je S0 = S i neka je Si+1 rezultat
primene pravila rezolucije na skup Si. Postupak se zaustavlja na
jedan od sledeca dva nacina:

58

3 Logika prvog reda

ako u nekom koraku skup Si sadrzi praznu klauzu (), onda zaustavi
primenu procedure i vrati odgovor da je skup klauza S
nezadovoljiv;
ako ne postoji mogucnost da se primeni pravilo rezolucije
tako da se skupovi Si i Si+1 razlikuju, onda zaustavi primenu
procedure i vrati odgovor da je skup klauza S zadovoljiv.
Niz klauza (polaznih i izvedenih) oznacavacemo obicno sa Ci (i
= 1, 2, . . .). Iza izvedene klauze zapisivacemo oznake klauza iz kojih
je ona izvedena, kao i redne brojeve literala nad kojim je primenjeno
pravilo rezolucije. Literale u
klauzama razdvajacemo obicno simbolom , (umesto simbolom ).
Primer 3.19 Metodom rezolucije se iz skupa {{p, q, r}, {p, q }, {p}, {r}} moze
izvesti prazna klauza:
C
p, qq,
r 1C2: :
p,
C3 : p
C
C45 ::
rp, r
(C1, 2; C2, 2)
C6 : p
(C4, 1; C5, 2)
C7 :
(C3, 1; C6, 1)
Skup klauza {{p, q, r}, {p, q}, {p}, {r}} je, dakle, nezadovoljiv.
Primer 3.20 Metodom rezolucije se iz skupa {{p, q, r}, {p, q }, {p}} ne moze izvesti
prazna klauza. Ovaj skup klauza je, dakle, zadovoljiv.
Teorema 3.17 (Teorema o metodu rezolucije) Metod rezolucije se zaustavlja za svaku
iskaznu formulu i u zavrsnom skupu klauza postoji prazna klauza ako i samo ako je polazna formula nezadovoljiva.
Metod rezolucije moze na razne nacine biti modifikovan tako da
bude efikas- niji.
U svom osnovnom obliku, metod rezolucije proverava da li je dati
skup klauza (ne)zadovoljiv. Medutim, metod rezolucije moze se
koristiti i za ispitivanje
valjanosti.
Naime,
ako je
potrebnoutvrditi
ispitatida
da li jeformula
formulaA
valjana,
dovoljno je
metodom
rezolucije
A
nezadovoljiva
cemu normalnu
je potrebno
najpreli jeformulu
A
transformisati u (pri
konjuktivnu
formu). Ovaj vid dokazivanja da je formula A valjana zovemo
dokazivanje pobi- janjem. Za metod rezolucije primenjen na ovaj nacin,
saglasnost govori da nije moguce rezolucijom pogresno utvrditi
(pobijanjem) da je neka formula val- jana, a potpunost govori da
je za svaku valjanu formulu metodom rezolucije moguce dokazati
(pobijanjem) da je valjana.
Metod rezolucije za logiku prvog reda
U logici prvog reda, pravilo rezolucije je opstije nego u
iskaznom slucaju, i umesto da zahteva da u dve klauze postoje
komplementni literali, zahteva da
u dve klauze postoje literali Ar i Arr takvi da su atomicke formule Ar i Arr
unifikabilne. Pravilo rezolucije za logiku prvog reda (u njegovom osnovnom
obliku, tzv. binarna rezolucija) moze se prikazati na sledeci nacin:
r Ar

rr Arr

(r rr )

3.2 Semantika logike prvog reda

59

gde su r i rr klauze, a je najopstiji unifikator za Ar i Arr .


Obe klauze na koje se primenjuje pravilo rezolucije su (implicitno)
univerzalno kvantifikovane. Zbog toga se svaka od njihovih varijabli
moze preimenovati (jer su formule xA(x) i xr A(xr ) logicki ekvivalentne).
S tavise,
to je neophodno uraditi za sve deljene varijable, jer bi, inace,
primene
pravila
rezolucije
bile
(pogresno)
onemogucene
(jer
odgovarajuci literali ne bi bili unifikabilni).
Preimenovanje
varijabli moze se primeniti pre primene pojedinacnog pravila
rezolucije ili unapred, pre primene samog metoda re- zolucije.
Ako se preimenovanje varijabli primenjuje unapred, pre primene
metoda rezolucije, onda ono treba da obezbedi da nikoje dve klauze
nemaju za- jednicku promenljivu. Dodatno, u svakoj novoizvedenoj
klauzi treba preime- novati promenljive tako da se novi simboli
promenljivih ne pojavljuju ni u jed- noj drugoj klauzi.
Primer 3.21 Nad klauzama
i

p(x, y) p(z, y) p(x, z)


p(b, a)

se
moze primeniti
suRezolventa
literali p(x,ove
z) dve
i p(b,
a) unifikabilni
najopstiji
unifikatorpravilo
= [x rezolucije,
b, z jera]).
klauze
je klauza (uz
p(b, y) p(a, y).
Ako se pravilo rezolucije primenjuje dalje, onda u dobijenoj klauzi sve promenljive
treba da budu preimenovane (treba da dobiju imena koja do tada nisu koriscena):
p(b, yr ) p(a, yr ).
Definicija 3.27 Forma Kovalskog klauze
A1 A2 . . . Am B1 B2 . . . Bn
je
formula

A1 A2 . . . Am B1 B2 . . . Bn .

Specijalno, forma Kovalskog klauze


B1 B 2 . . . B n
je
formula a

B1 B 2 . . . B n ,
A1 A2 . . . Am

A1 A2 . . . Am .

klauze
formula

Ako
je u A
1 A2 . . . Am B1 B2 . . . Bn i m = 0 i n = 0, onda je
to prazna
klauza,
koju oznacavamo ili .
Precizno govoreci, forme Kovalskog B1 B2 . . .Bn , A1 A2 . .
.Am
i nisu dobro zasnovane formule, ali cine zapis klauza koji je
intuitivan i
blizak zapisu u PROLOG-u.
Pravilo rezolucije moze da se reprezentuje i koristeci formu Kovalskog:
r Br Ar

rr Arr Brr

(r rr Br Brr )

neke

60

3 Logika prvog reda

gde je najopstiji unifikator za formule Ar , A1rr .


Zaista, primenom supstitucije na prvu formulu (r Br Ar ) dobija se
r Br A ,
gde
jerrA=BArrr) dobija
= Arr. se
Primenom supstitucije na drugu formulu
(rr A
A rr Brr .
Iz r Br A i A rr Brr dobija se
r Br rr Brr ,
sto je logicki ekvivalentnto sa
(r rr Br Brr ) .
Primer
3.22
Razmotrimo
klauze
p(x,
y) p(z, y)[x
p(x,b,z)z
i
p(b,a, u)
. Literali
p(x,
z)sledece
i p(b,
u)dve
mogu
bitiKovalskog:
unifikovani
supstitucijom
u

a].
Tada
je
forma
Kovalskog
rezolvente
date
dve
klauze:
p(b,
y)

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

ako u nekom koraku skup Si sadrzi praznu klauzu (), onda


zaustavi primenu procedure i vrati odgovor da je skup
klauza S nezadovoljiv;
ako ne postoji mogucnost da se primeni pravilo rezolucije
tako da se skupovi Si i Si+1 razlikuju, onda zaustavi primenu
procedure i vrati odgovor da je skup klauza S zadovoljiv.
Da bi se dokazalo da je neka formula A valjana, njena negacija se transformise
u metod
klauzalnu
formu Ako
i onda
na dobijeni
skup klauza
primenjuje
se se
izvede
prazna
onda
to
znaci da
je rezolucije.
formula
A nezadovoljiva,
pa
je A klauza,
valjana;
ako
u
nekom
koraku
ne
moze
da
se
izvede
nijedna
nova
klauza,
onda to znaci je formula A zadovoljiva, pa A nije valjana. Moguc je i ishod da nove klauze mogu da se izvode
beskonacno, a da se pri tome ne izvede prazna klauza.
Da bi se dokazalo da je neka formula A logicka posledica formula
B1 , B2 ,
.valjana,
. ., Bn potrebno
je dokazati
da je
formula
B1 . B.2 . . B
. .
BAn)
A
tj. Potrebno
dokazati
dadakle,
formula
(B1 da
Bformula
nije
2
n
zadovoljiva.
je,
dokazati
B

.
.
.

B
1
2
n
A nije zadovoljiva.
Primer
3.23
Dokazati da formuli
je formula
p(a)
valjana.
Negacijaprimenjujemo
date formule
je
logicki
ekvivavalentna
p(a)
(x)(x)p(x)
p(x).
Metod
rezolucije
na
skupklauza
{p(a),
ip(x)
}. Pravilo
rezolucije
moguce
je[xprimeniti
samo se
na dobija
jedan
nacin
literali
p(a)

p(x)
se
unifikuju
supstitucijom

a]
i
njime
prazna klauza. Odatle sledi da je formula p(a) (x)p(x) valjana.
2
Primetimo da u opstem metodu nije specifikovano kako se, od svih mogucih,
bira par klauza nad kojim se primenjuje pravilo rezolucije.

3.2 Semantika logike prvog reda

61

Primer
3.24 jeFormula
(ekvivalentna
x)(y)p(x, y)
(y)(x)p(x,
y) nije y)
valjana.
Negacija
date
formule
logicki
sa formulom
(x)(
y)(p(x,
(y)(x)
p(x,
y))
i
sa
formulom
(

x)(

y)(

u)(

v)(p(x,
y)

p(v,
u)).
Skolemizacijom
dobija
skup
od dve
klauze:
{p(x,
f (x)),
p(g(x,
u), jeu)formula
}. Pravilo
rezolucije
nijey)se
moguce
primeniti
na
ove
dve
klauze,
odakle
sledi
da
(

x)(

y)
(p(x,

(y)
(x)p(x, y))
zadovoljiva, tj. polazna formula nije valjana.
Niz klauza (polaznih i izvedenih) oznacavacemo obicno sa Ci (i
= 1, 2, . . .). Izvedene klauze oznacavacemo ponekad i sa Ri (i =
1, 2, . . .). Iza izvedene klauze zapisivacemo oznake klauza iz kojih
je ona izvedena, redne brojeve lit- erala u tim klauzama, iskorisc
eni najopstiji unifikator, kao i supstituciju kojom
se
preimenuju
promenljive.
Literale
u klauzama
razdvajacemo
obicno
sim- bolom
, (umesto
simbolom
).
Primer 3.25 Dokazimo da je formula
(x)(y)q(x, y)
logicka posledica skupa formula

{(x)(y)p(x, y), (x)(y)(p(x, y) q(x, y))} .


Dovoljno je dokazati da je formula

A = ((x)(y)p(x, y) (x)(y)(p(x, y) q(x, y))) (x)(y)q(x, y)


valjana. Preneks normalna forma negacije ove formule je
(w)(x)(y)(u)(v)(z)(p(x, y) (p(u, v) q(u, v)) q(w, z)) .
Nakon skolemizacije, ova formula dobija oblik:
(x)(u)(v)(z)(p(x, g(x)) (p(u, v) q(u, v)) q(c, z)) ,
pri cemu je c nova Skolemova konstanta, a g nova Skolemova funkcija. Konjunktivna
normalna forma formule
p(x, g(x)) (p(u, v) q(u, v)) q(c, z)
je
p(x, g(x)) (p(u, v) q(u, v)) q(c, z) .
Elementi pocetnog skupa klauza su:
H1 : p(x, g(x))
(prvi deo hipoteze)
H2 : p(u, v), q(u, v) (drugi deo hipoteze)
C1 : q(c, z)
(zakljucak)
Prazna klauza se izvodi na sledeci nacin.
R1 : q(xr, g(xr )) (H1, 1; H2, 1), [v g(x), u x];
preimenovanje: [x xr ]
R2 :

(C1, 1; R1, 1), [xr c, z g(c)]

62

3 Logika prvog reda

Primer
3.26 Dokazati
formula
=
xyz(x
y yy))
z(simboli
x z)
posledica
= da
xje
2y(x
y A
infiksno).
w(w
x w
ilogicka
su
predikatskiformule
simboliBarnosti
zapisani
Transformisanjem formule (B A) B A dobija se sledeci skup klauza:
H1 : (x1 y1), (w1 x1), w1 y1
(deo formule B)
H2 : x2 y2, f (x2, y2) x2
(dva dela formule B,
H
f(tri
je dela
Skolemova
funkcija
za A
w),
C13 :: x
a 3by3 , (f (x3 , y3 ) y3 )
negacije
formule
C2 : b c
a, b, c su Skolemove konstante za
C3 : (a c)
promenljive x, y, z u formuli A)
Izvedene klauze oznacavacemo sa Ri (i = 1, 2, . . .).
R1 : (w2 a), w2 b
(H1, 1; C1, 1), [x1 a, y1 b];
preimenovanje: [w1 w2]
R2 : (w3 b), w3 c
(H1, 1; C2, 1), [x1 b, y1 c];
preimenovanje: [w1 w3]
R3 : a y4, f (a, y4) b
(H2, 2; R1, 1), [x2 a, w2 f (a,
y2)];
preimenovanje: [y2 y4]
R4 : x4 c, (f (x4 , c) b) (H3 , 2; R2 , 2), [y3 c, w3 f (x3 ,
c)];
preimenovanje: [x3 x4]
R5 : a c, a c
(R3, 2; R4, 2), [x4 a, y4 c];
R6 :

(R5, 1, 2; C3, 1)

Hornove klauze su klauze u kojima postoji najvise jedan literal koji


nije pod negacijom. U PROLOG-u se koriste upravo Hornove klauze. C
etiri tipa Hornovih klauza prikazana su u sledecoj tabeli.
Tip
implikaciona
klauzaklauza
ciljna
cinjenica
prazna klauza

standardna forma
A1 . . . An A
A1 . . . An
A

forma Kovalskog
A1 . . . An A
A1 . . . An
A

PROLOG

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

Moze se dokazati da svaki nezadovoljiv skup Hornovih klauza


sadrzi bar jednu cinjenicu i bar jednu ciljnu klauzu. Programski
jezik PROLOG zasnovan je na metodu rezolucije i na koriscenju
Hornovih klauza. Postoji polinomijalni 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 pocetnim slovom, a
promenljive velikim pocetnim slovom.) Ako se zada upit:
? - mortal(sokrat).
onda se metodom rezolucije pokusava izvodenje prazne klauze iz skupa klauza:

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


U ovom slucaju, prazna klauza se izvodi jednostavno (koristeci unifikaciju {X

sokrat}) i PROLOG vraca rezultat:

3.2 Semantika logike prvog reda

63

Yes
Primetimo da, na primer, upit
? - mortal(platon).
ne moze da uspe (sem ako nije zadata i cinjenica man(platon)).
Da bi se pokazalo da je neka formula nezadovoljiva, dovoljno je,
primenom metoda rezolucije, iz njenog skupa klauza izvesti praznu
klauzu. Dodatno, metod
rezolucije
ima
svojstvo
da
iz
zadovoljivog skupa klauza ne moze da izvede nezadovoljiv skup
klauza. Ova dva svojstva dokazacemo kao teoremu o potpunosti i
teoremu o saglasnosti za rezoluciju (teoreme ?? i3.18). Metod
rezolucije, dakle, ima sledece karakteristike:

metod rezolucije je saglasan: ako je primenom metoda


dobijena prazna klauza, onda je i polazni skup klauza
nezadovoljiv (ili, drugim recima, iz zadovoljivog skupa klauza
moze se dobiti samo zadovoljiv skup klauza);
metod rezolucije nije potpun, ali je potpun za pobijanje: iz
svakog nezado- voljivog skupa klauza moguce je izvesti praznu
klauzu;
logika prvog reda nije odluciva, pa najvise sto moze metod
rezolucije da bude je procedura poluodlucivanja (za problem
ispitivanja valjanosti).
Teorema 3.18 (Potpunost (za pobijanje) metoda rezolucije) Ako je nezadovoljiv skup klauza, onda se iz njega metodom rezolucije moze izvesti prazna klauza.
Primer 3.28 Formula xy (p(x, y) p(y, x)) je logicka posledica formula x p(x, x)
i uv w (p(u, v) p(w, v) p(u, w)), pa je formula
A = (x p(x, x)) (uv w (p(u, v) p(w, v) p(u, w)))
(xy (p(x, y) p(y, x)))
valjana.
C1 :
C2 :
C3 :
C4 :
C5 :
C6 :
C7 :

p(x, x)
p(u, v), p(w, v), p(u, w)
p(a, b)
p(b, a)
p(ur, b), p(ur, a)

p(b, b)

(C2, 2; C3, 1) [w a, v b];


preimenovanje: [u ur ]
(C4, 1; C5, 2) [ur b]
(C1, 1; C6, 1) [x b]

Primetimo da u opisu metoda rezolucije nije specifikovan nacin


na koji se biraju klauze nad kojim se primenjuje pravilo rezolucije.
Takode, teorema o potpunosti (teorema3.18) tvrdi da se iz svakog
nezadovoljivog skupa klauza moze izvesti prazna klauza, a ne tvrdi
da se iz svakog nezadovoljivog skupa klauza mora izvesti prazna
klauza bez obzira na izbor klauza za rezolviranje. Naime, u
zavisnosti od izbora klauza na koje se primenjuje pravilo rezolucije
moguce je da se i za nezadovoljiv skup klauza metod rezolucije ne
zaustavlja. Nacin na koji se biraju klauze na koje se primenjuje
pravilo rezolucije cini strate- giju ili strategiju za upravljanje konkretne
verzije metoda rezolucije. Strategija je od sustinske vaznosti za
obezbedivanje nuznog izvodenja prazne klauze iz nezadovoljivog
skupa, ali i za efikasnost metoda.

64

3 Logika prvog reda

Jedna od mogucnosti za obezbedivanje potpunosti metoda


rezolucije u stro- zijem smislu (da postoji strategija za upravljanje
metoda rezolucije takva da se iz svakog nezadovoljivog skupa klauza
nuzno izvodi prazna klauza u konacno mnogo koraka) je
sistematsko izvodenje svih rezolventi iz skupa klauza koji se siri
tokom primene metoda. Sistematski metod rezolucije moze se definisati
na sledeci nacin: metod se primenjuje u stupnjevima; prvi
stupanj cini kreiranje pocetnog skupa klauza; neka pre i-tog
stupnja tekuci skup klauza cine klauze
C1 , C2 , . . ., Cn , i-ti stupanj sastoji se od izvodenja (i dodavanja tekuc
em skupu klauza) svih mogucih rezolventi iz po svake dve klauze iz
skupa C1 , C2 , . . ., Cn (broj tih klauza je konacan); metod se zaustavlja
ako se u nekom koraku izvede prazna klauza ili ako se u nekom
stupnju ne moze izvesti nijedna nova klauza.
Teorema 3.19 (Potpunost sistematskog metoda rezolucije) Ako je nezadovoljiv
skup klauza, onda se iz njega sistematskim metodom rezolucije mora izvesti prazna
klauza.
Dokaz: Ako je skup klauza nezadovoljiv, onda se, na osnovu
teoreme o pot- punosti metoda rezolucije (teorema3.18) iz
njega metodom rezolucije moze izvesti prazna klauza, tj.
postoji niz rezolventi R1 , R2 , . . ., Rn (koje se izvode iz
pocetnih i izvedenih klauza) od kojih je poslednja u nizu
prazna klauza. Ako se na skup klauza primeni sistematski
metod re- zolucije, u nekom stupnju bice (ako vec pre toga
nije izvedena prazna klauza) izvedene sve klauze iz skupa R1,
R2, . . ., Rn, pa i prazna klauza.

Ocigledno je da je sistematski metod rezolucije izuzetno


neefikasan.
Po- stoji vise strategija koje obezbeduju nuzno
izvodenje prazne klauze iz nezado- voljivog skupa klauza (tj.
sprecavaju beskonacne petlje), ali na efikasniji nacin. Te
strategije su od sustinske vaznosti i za broj klauza koje se izvode i,
shodno tome, za efikasnost metoda. Smanjivanje izvodenja
nepotrebnih klauza jedan je od najvaznijih problema metoda
rezolucije. U daljem tekstu bice ukratko opisane neke od strategija
koje se koriste u razlicitim varijantama metoda re- zolucije.
Razmotrimo sledeci primer: potrebno je dokazati da je formula
xy(p(x, y)

p(y,
logicka
posledica
formula xp(x,
x) i uvxw(p(u,
(p(w,

p(u,v)x))
w)).
Dovoljno
dokazati
x)v)x)))

unije
v v)
w
(p(u,
p(w,
v) je
p(u,navedene
w))) (da
x
yformula
(p(x, transformisanjem
y) p(x,
p(y,
zadovoljiva.
Negacija
formule,
u
klauzalnu
formu,
dobija
p(x, x)
(p(u, v) p(w, v) p(u, w))
p(a, b) p(b,
a) (gde
su aoblik:
i b nove,
Skolemove
konstante). Primenimo metod rezolucije na ovako dobijen skup
klauza:
p(x1, x1)
p(u1, v1), p(w1, v1), p(u1, w1)
p(a, b)
p(b, a)
p(b, v2), p(a, v2)

(prva hipoteza)
(druga hipoteza)
(prvi deo zaljucka)
(drugi deo zakljucka)
(C4, 1; C2, 3) [u1 b, w1
a];
preimenovanje: [v1 v2]
C6 : p(b, b)
(C5, 2; C3, 1) [v2 b]
C7 :
(C6, 1; C1, 1) [x1 b]
Primetimo da se u navedenom primeru u svakoj primeni pravila rezolucije
koristi poslednja klauza u nizu (osim u prvom koraku, to je uvek rezolventa iz
C1 :
C2 :
C3 :
C4 :
C5 :

3.2 Semantika logike prvog reda

65

prethodno primenjenog pravila rezolucije) i rezolvira sa nekom od


originalnih klauza. Ovaj vid pobijanja je veoma prirodan. On, u
izvesnom smislu, oponasa rezonovanje matematicara koji krece
od tvrdenja koje treba dokazati i u dokazu koristi aksiome i date
hipoteze. Ova strategija za upravljanje metodom rezolu- cije zove
se linearna ulazna rezolucija linearna, jer se u svakoj primeni pravila
rezolucije koristi poslednja klauza u nizu; ulazna, jer se u svakoj
primeni prav- ila rezolucije koristi jedna od pocetnih klauza.
Linearna ulazna rezolucija je jedna od varijanti opsteg metoda
rezolucije. S obzirom na to da ona iskljucuje mnoge puteve
izvodenja novih klauza, ona je obicno znatno efikasnija nego
opsti metod rezolucije. Medutim, iz istog razlo- ga, linearna ulazna
rezolucija nema svojstvo potpunosti (kao sto ga ima opsti metod
rezolucije).
Nepotpunost linearne ulazne rezolucije ilustruje
sledeci 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 moze se rezolvirati samo sa klauzom C2 ili sa
klauzom C4 . Re- zolucija sa C2 daje q(x), sto vodi u beskonacnu
petlju. Rezolucija sa C4 daje
q(x), sto, dalje, daje simetricnu situaciju. Slicno vazi i za sve ostale
mogucnosti, te praznu klauzu nije moguce izvesti ukoliko se koristi linearna
ulazna
strategija.
Linearna ulazna rezolucija ima svojstvo potpunosti za pobijanje
za neke klase formula. Na primer, linearna ulazna rezolucija ima
svojstvo potpunosti za pobijanje skupova Hornovih klauza, tj.
linearna ulazna rezolucija moze do- vesti do prazne klauze za svaki
kontradiktoran skup Hornovih klauza (u nave- denom 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
najznacajnijih strategija za upravljanje metodom rezolucije su
prednost jedinicnim klauzama, skup potpore, itd. U cilju efikasnijeg
primenjivanja metodu, pored pravila re- zolucije, koriste se i
dodatna pravila, kao na primer paramodulacija. Sa ciljem da zameni
veliki broj (cesto komplikovanih i neprirodnih koraka) u koriscenju
aksioma jednakosti, uvodi se pravilo paramodulacije. Ono povecava
efikasnost metoda rezolucije, ali nije nuzno njegov deo (jer pravilo
paramodulacije moze biti izvedeno pravilom rezolucije). Pravilo
paramodulacije moze biti reprezen- tovano na sledeci nacin:

A t = s r B ( ili s = t B)
(A[t s] B)
gde je najopstiji unifikator za termove t i tr i gde je A formula koja sadrzi term
tr . Na primer, iz klauza h(a) = b i c = a moze da se izvede klauza h(c) = b

66

3 Logika prvog reda

primenom pravila paramodulacije (u jednom koraku) na sledeci


nacin:

h(a) = b c = a
((h(a) = b)[a c]) [ ]

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

Zadaci
Zadatak
49 Dati
P od
dva podskupa,
S1 isu
S2skup
, skupa
C. n (n 1) iskaznih slova, skup C svih klauza nad P i
(a) Koliko elemenata
ima skup C?
(b) Da li je skup C zadovoljiv?
(c) Ako su skupovi S1 i S2 zadovoljivi, da li je i skup S1 S2 zadovoljiv?
(d) Ako su skupovi S1 i S2 zadovoljivi, da li je i skup S1 S2 zadovoljiv?
(e) Ako je skup S1 zadovoljiv, da li skup C \ S1 moze da bude zadovoljiv?
(f) Ako je skup S1 zadovoljiv, da li skup C \ S1 mora da bude zadovoljiv?
Zadatak
50 Dati
P od
dva podskupa,
S1 isu
S2skup
, skupa
C. n (n 1) iskaznih slova, skup C svih klauza nad P i
(a) Da li je skup C kontradiktoran?
(b) Ako su skupovi S1 i S2 kontradiktorni, da li skup S1 S2 moze da bude kontradiktoran?
(c) Ako su skupovi S1 i S2 kontradiktorni, da li skup S1 S2 mora da bude kontradiktoran?
(d) Ako su skupovi S1 i S2 kontradiktorni, da li skup S1 S2 moze da bude kontradiktoran?
(e) Ako su skupovi S1 i S2 kontradiktorni, da li skup S1 S2 mora da bude kontradiktoran?
Zadatak 51 Dokazati metodom rezolucije za iskaznu logiku da su naredne formule
tautologije:
(a) q (p q)
(b) ((p q) (q r)) (p r)
(c) ((p q) (p r)) (p (q r))
(d) (((p r) (q r)) (p q)) r
(e) (p q) (p q)
(f) (p q) (p q)
(g) (p q) (p q)
(h) (p (q r)) ((p q) (p r))
Zadatak 52 Koristeci metod rezolucije za logiku prvog reda dokazati da vazi:
(x)(p(x) q(x)), p(c) |= q(c) .
Zadatak 53 Metodom rezolucije za logiku prvog reda dokazati da je naredna formula
valjana:
(x)(y)p(x, y) (y)(x)p(x, y) .

3.3 Prirodna dedukcija

67

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


valjana:
(a) (y)((x)p(x) p(y))
(b) (x)p(x) (x)p(x)
(c) (y)p(y) (y)((x)p(x) p(y))
(d) (x)p(x) (y)p(y)
(e) (x)(p(x) q(x)) (x)p(x) (x)q(x)
(f) (x)p(x) (x)q(x) (x)(p(x) q(x))
(g) (x)(p(x) q(x)) (x)p(x) (x)q(x)
(h) (x)(p(x) q(x)) (x)p(x) (x)q(x)
Zadatak 55
Metodom rezolucije za logiku prvog reda dokazati da je formula (H
K) L valjana, gde je
H = (x)(y)(p(x, y) p(y, x))
K = (x)(y)(z)((p(x, y) p(y, z)) p(x, z))
L = (x)(y)(p(x, y) p(x, x)).
Zadatak
56 Metodom
rezolucije
za logiku
prvog reda
dokazati
da jeformula
(x(r(x)
x)s(x) logicka
posledica
skupa}. formula
{x(p(x)
q(x)),
x(q(x)
s(x)),
s(x)), x(p(x)
r(x))
Zadatak 57 Metodom rezolucije za logiku prvog reda dokazati da je formula xy (x =
y y = x) logicka posledica formula x (x = x) i uv w (u = v w = v u =
w).

Zadatak 58
Vazi sledec
e: Janko ima psa.
Svaki vlasnik psa voli zivotinje.
Nijedna osoba koja voli zivotinje ne moze da udari
zivotinju. Janko ili Marko su udarili macku cije je ime
Tuna.
Svaka macka je zivotinja.
Metodom rezolucije za logiku prvog reda dokazati da je Marko udario Tunu.
Zadatak 59 Za narednu formulu metodom rezolucije za logiku prvog reda dokazati
da je valjana:
(x)(A(x) C) ((x)A(x) C)
pri cemu je C recenica. (Ovaj zadatak ilustruje kako metod rezolucije moze biti
oslabljen tako da se primenjuje i na formule koje nisu u klauzalnoj formi.)
Zadatak 60 Prevesti na jezik logike prvog reda i dokazati metodom rezolucije za
logiku prvog reda sledece tvrdenje: Ako su svi politicari lukavi i ako su samo
pokvareni ljudi politicari, onda, ako postoji bar jedan politicar, onda je neki pokvaren
covek lukav.

3.3

Prirodna dedukcija

Pojam valjanosti je semanticke prirode, a koncept dokazivanja i


sistema za de- dukciju vodi do pojma teoreme koji je sintaksnodeduktivne prirode. Kao sto je teorija modela vezana za semantiku,
tako su deduktivni sistemi i teorija dokaza vezani za sintaksu. Pojam
teoreme je deduktivni pandan pojma valjane formule, koji je semanticke
prirode. Izmedu ova dva pojma postoji veza i deduktivni

68

3 Logika prvog reda

sistemi obicno imaju svojstvo potpunosti i saglasnosti: ako je


neka formula valjana, onda ona moze biti dokazana u okviru
deduktivnog sistema, a ako za neku formulu postoji dokaz u okviru
deduktivnog sistema, onda je ona sig- urno valjana.
Sistemi za dedukciju su cisto sintaksne prirode primenjuju se
kroz kom- binovanje simbola, ne ulazeci u semantiku formula.
Sisteme za dedukciju za iskaznu logiku zovemo i racun (iskazni racu u
slucaju iskazne logike i predikatski racu u slucaju logike prvog reda).
Postoji vise razlicitih deduktivnih sistema, a u nastavku ce biti
opisan samo jedan prirodna dedukcija.
Sistem prirodne dedukcije (racun prirodne dedukcije) uveo je,
1935. godine, Gerhard Gencen sa namerom da prirodnije opise
uobicajeno zakljucivanje ma- tematicara [?].
3
U prirodnoj
dedukciji
koristeAse
veznici
, (A,
, B), kao
logicka
konstanta
. Formula
Blogicki
je. Skup
kraci
zapis za
i
A
),
a
formula
T
kraci
zapis
za
A
A
formula
definise
se(Bna
uobicajeni nacin.
Pravila izvodenja sistema prirodne dedukcije data su u tabeli3.1.
Prime- timo da za svaki logicki veznik i svaki kvantifikator postoje
pravila koja ga uvode (pravila I-tipa) i pravila koja ga eliminisu
(pravila E-tipa). Pravilo ef q (Ex falso quodlibet) je jedino pravilo koje
ne uvodi niti eliminise neki logicki veznik. Skup pravila
sistema prirodne dedukcije za iskaznu logiku cine sva pravila iz
tabele3.1izuzev onih koja uklju cuju kvantifikatore.
Postoji sistem prirodne dedukcije za klasicnu logiku (koji
zovemo sistem NK) i sistem prirodne dedukcije za intuicionisticku
logiku (koji zovemo sistem
NJ).
U sistemu
prirodne
dedukcije
za klasicnu
logiku postoji
aksiomska
shema:
A (tertium
non datur).
Sistemjedna
za
intuicionisticku
logikuA nema
aksioma.
U pravilima izvodenja prikazanim u tabeli3.1simbol t oznacava
proizvol- jan term. Simbol y oznacava tzv. eigenvariable (pravu
promenljivu) simbol
promenljive
za vazi
koju vazi tzv. eigenvariable uslov.
Ovaj uslov za
pravilo
u A, kaoIi je
dada
vazi dada je x = y ili da promenljiva y nije slobodna
yformule
nije slobodna
ni u Eigenvariable
jednoj neoslobodenoj
u izvodenju
uslov
zapretpostavci
pravilo
E ije
vazi
da
je slobodna
x A=[x y
ili y].
da
promenljiva
ykojoj
nije
slobodna
u A, kao
dada
vazi
da
yizvodenju
nije
u
B
niti
u
bilo
neoslobodenoj
pretpostavci
u
formule B osim, eventualno, u formuli A[x y].
Tokom izvodenja dokaza u sistemu prirodne dedukcije mogu se
koristiti (nedokazane) pretpostavke, ali one moraju biti eliminisane
(,,oslobodene) pre kraja izvodenja. U zapisu pravila, [F ] oznacava
da se nekoliko (mozda i nula) pojavljivanja pretpostavke F
oslobada, brise (kao nedokazane, neraspolozive pretpostavke)
neposredno nakon primene pravila. Pri tome, moze ostati i
nekoliko
neoslobodenih
pojavljivanja
pretpostavke
F
.
Pretpostavkama su pri- druzene oznake (obicno prirodni brojevi),
koje se zapisuju i u okviru zapisa primenjenog pravila (kako bi se
znalo koja pretpostavka je oslododena u kom koraku).
U sistemu prirodne dedukcije dokaz (dedukcija, izvod) je stablo cijem
je svakom cvoru pridruzena formula, a svakom listu ili
pretpostavka ili aksioma. For- mula A je teorema prirodne dedukcije
ako postoji dokaz u cijem je korenu A i
3

Iz sistema prirodne dedukcije moguce je eliminisati veznik smatrajuci


formulu A
skracenim zapisom za A .

3.3 Prirodna dedukcija

69

[A ]u
.
..
.

I, u
A

A B
AB

A I
AB

A A

AB

B I
AB

AB

[ B] v
..
..

[A ]u
.
..
AB
C.
CC

[A ]u
.
..
.
B

AB

E, u, v

A AB
I, u

B
(x)A

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

A[x t]

[A[x

A[x t]
(x)A

(x)A

...
.
B

y]]u

E, u
B
uz dodatni uslov

efq
D
Table 3.1: Pravila izvodenja sistema prirodne dedukcije

koji nema neoslobodenih pretpostavki i tada pisemo A i


kazemo da je for- mula A dokaziva u sistemu prirodne dedukcije.
Ako postoji dokaz, u cijem je korenu formula A i koji ima
neoslobodene pretpostavke koje pripadaju nekom nizu , onda
kazemo da je formula A deduktivna posledica niza i tada pisemo

A. Elemente niza tada zovemo i premisama ili hipotezama


dokaza.
Bn A. Ako je niz jednak B1 , B2 , . . . , Bn , onda pisemo B1 , B2 , . . . ,
Dokaz u sistemu prirodne dedukcije se obicno prikazuje u vidu
stabla ciji su listovi na vrhu, a koren na dnu. To stablo se prikazuje
pojednostavljeno, stilizovano (videti sliku3.3).
Naredni primeri ilustruju
dokazivanje u iskaznoj logici.

primenu

prirodne

dedukcije

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

dedukcije,

za

70

3 Logika prvog reda


.

. .
. .
.. ..
A B
C

D.
...

D
.

Figure 3.3: Deo dokaza i njegov pojednostavljeni


prikaz
tj. vazi (A B) (B A) :

[A]2
I
BA

[B]3
I
BA

[A B]1
I,
1 E, 2, 3
BA

(A B) (B A)
Primer 3.30 U sistemu prirodne dedukcije vazi: A B, B C A C:
[A]1 A B
E
B

BC

I, 1 E
A C C
Primer 3.31 U sistemu prirodne dedukcije vazi A (A B) (A C):
[A]1
I
AB

[A]1
I
AC
I
(A B) (A C)
A (A B) (A C)

I, 1

U prethodnom dokazu, primenom pravila I nisu morala da budu oslobodena sva


pojavljivanja pretpostavke A. Na primer:
[A]1
A
I
I
AB
AC
I
(A B) (A C)
A (A B) (A C)

I, 1

Ovaj
dokaz je
dokaz
A AC)).
(A B) (A C) (sto je slabije tvrdenje
od tvrdenja
A
(Atvrdenja
B) (A
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 klasicnu i za intuicionisticku logiku). Neki matematicar bi
ovu formulu (neformalno) dokazao na sledeci nacin:

3.3 Prirodna dedukcija

71

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


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

(y)(x)p(x, y).
Ovaj dokaz moze se precizno opisati u vidu dokaza u sistemu prirodne dedukcije
(i za klasicnu i za intuicionisticku logiku):
1

r
[(y)p(x
r
r , y)] E
p(x
,
y
) r II
[(x)(y )p(x, y )]
((y)(x)p(x,
x)p(xy, )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 klasicnu i za intuicionisticku logiku):
[p(z)]1
I
(x)p(x)

[(x)p(x)]2

E
I, 2

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

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

xA A

x(A B )
E
AB
E
B
I
xB

Naredna teorema povezuje semanticka i deduktivna svojstva


klasicne logike (ona vazi i za iskaznu i za predikatsku logiku).
Teorema 3.20 Formula je teorema sistema prirodne dedukcije za klasicnu logiku ako i
samo ako je valjana.

72

3 Logika prvog reda

Zadaci
Zadatak 61

Dokazati da u prirodnoj dedukciji vazi A B, A B.

Zadatak 62 Dokazati da je formula (A B) (B A) teorema sistema


prirodne dedukcije za klasicnu logiku.

Zadatak 63 Dokazati da je formula (A (B C)) ((A B) (A C)) teorema


sistema prirodne dedukcije za klasicnu logiku.

Zadatak 64 Dokazati da je formula (A B) (A B) teorema


sistema prirodne dedukcije za klasicnu logiku.

3.4

Sazetak

Glava 4

PROLOG
U logickom programiranju, logika se koristi kao deklaritivni
jezik
za
opisi- vanje problema, a dokazivac teorema kao
mehanizam za resavanje problema. Resavanje problema je
podeljeno izmedju programera koji opisuje problem i dokazivaca
teorema koji problem resava.
Jezik PROLOG je najznacajniji predstavnik jezika deskriptivnog i
logickog programiranja. Veoma je pogodan za mnoge primene
tehnika vestacke in- teligencije. Pogodan je za obrade prirodnog
jezika, ali i za brz razvoj pro- totipova drugih inteligentnih
programa, jer se obrada ulaza i izlaza, parsiranje i druge slicne
operacije jednostavno implementiraju.
Ime PROLOG-a dolazi od
engleskih reci PROgramming in LOGic. Mehanizam izvodjenja
zakljucaka 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
istrazivaca Alain Colmerauer-a iz Marseja i Roberta Kowalskog iz
Edinburga. Oni su primetili da se klauzalna forma moze koristiti za
opisivanje formalnih gramatika i da se dokazivaci za- snovani na
rezoluciji mogu koristiti za parsiranje. Efikasan PROLOG mehanizam omogucen je otkricem LUSH ili SLD rezolucije koju je opisao
Kowalski 1973. godine.
Prakticna upotreba PROLOG-a kao programskog jezika omoguc
ena je razvo- jem efikasnog kompilatora Davida Warrena, u
Edinburgu 1977. godine. Ta verzija jezika, Edinburski PROLOG,
detaljno opisana 1980. u knjizi Clocksin- a i Mellish-a nametnula se
vremenom kao standardna verzija jezika i najjace uticala na ISO
standard za PROLOG.

4.1

Interpretatori i kompilatori

PROLOG sistemi obicno sadrze interaktivni interpretator (sa


debagerom). Pored toga, neki sistemi omoguavaju i kompiliranje
ko da koje daje izvrsne verzije koje mogu samostalno da se
izvrsavaju. Izvrsni ko d cesto je veoma efikasan
i uporediv sa izvrsnim ko dom dobijenim od programa na nekom
procedural- nom jeziku.
Komunikacija sa PROLOG interpretatorom odvija se kroz
komandni pro- zor. Prompt interpretatora obicno izgleda ovako:

74

4 PROLOG

?Vecina PROLOG sistema sadrzi uputstva o koriscenju jezika a i


samog in- terpretatora. Ovo uputstvo se obicno moze dobiti sa
?- help(help).
Komanda halt prekida izvrsavanje interpretatora (ili
kompiliranog pro- grama) i vraca kontrolu operativnom sistemu.
Neki od najpopularnijih PROLOG interpretatora su Quintus, Sixtus,
SWI PROLOG itd.

4.2

Sintaksa i semantika u PROLOG-U

Jezik PROLOG-a cine: mala i velika slova engleskog alfabeta, cifre i


specijalni simboli (_, +, *, (, ), [, ], . . ..
Skup termova definise se na sledeci nacin:
promenljive su termovi; promenljive se zapisuju pocetnim
velikim slovom ili simbolom _ (simbolom _ pocinju imena
anonimnih promenljivih cije vrednosti nisu bitne).
konstante su termovi; konstante su zapisi brojevnih konstanti
(celobro- jnih i realnih, npr. -123, 3.14) ili atomi. Atom je:
niz slova, cifara i simbola _ koji pocinje malim slovom (npr.
sokrat).
slovna niska u jednostrukim znacima navoda (npr. sokrat).
niz specijalnih simbola (npr. :-).
Ako je f atom, a A1, . . ., An termovi, onda je f(A1,...,An) term
viseg reda (na primer, man(sokrat) ili ucitelj(sokrat,X)). Ovakve
termove viseg reda u PROLOG-u zovemo i predikati.
Semantika, interpretacija termova odredjena je tekucim stanjem
baze znanja. Domen interpretacije cine sami PROLOG termovi. Baza
znanja, koju PROLOG odrzava, sastoji se od cinjenica i pravila. C
injenice su predikati oblika:
p(x1,x2,...,xn)
Ukoliko baza znanja sadrzi cinjenicu man(sokrat), onda se u
pratecoj inter- pretaciji atomickoj formuli man(sokrat) pridruzuje
vrednost 1, tj. ona je tacna.
Pravila u bazi znanja su oblika:
p(x1,x2,...,xn) :- q(y1,y2,...,ym),...,r(z1,z2,...,zk)
U navedenom pravilu, predikat p(x1,x2,...,xn) zovemo glava pravila (eng.
head of the rule) a niz predikata q(y1,y2,...,ym),...r(z1,z2,...zk)
zovemo rep pravila (eng. tail of the rule) ili telo pravila (eng. body of the
rule). Navedeno pravilo interpretira se kao implicitno univerzalno
kvantifikovana implikacija:
q(y1,y2,...,ym) . . . r(z1,z2,...,zk) p(x1,x2,...,xn)
Ukoliko baza znanja sadrzi pravilo mortal(sokrat) :- man(sokrat) i
cinjenicu
man(sokrat), onda iz nje sledi da mortal(sokrat) ima semanticku
vrednost
1.
Upiti ili ciljevi (eng. goals) su oblika
q(y1,y2,...,ym),...,r(z1,z2,...,zk)
Postaviti cilj znaci traziti proveru da li je zadati skup
atomickih formula za neku valuaciju promenljivih koje sadrzi
tacan (tj. ima semanicku vrednost
1) u odnosu na tekuce stanje baze. Ako je taj uslov ispunjen,
kazemo da je

4.3 Pocetni primeri

75

cilj zadovoljen ili da cilj uspeva (eng. succeed). Valuaciju za koju je


zadati cilj zadovoljen zovemo odgovorom na zadati cilj ili resenjem zadatog
cilja.
Na
primer,
ukoliko
baza
znanja
sadrzi
cinjenicu
man(sokrat), i pravilo mortal(X) :- man(X), onda cilj mortal(Y)
moze biti zadovoljen i to za val- uaciju kojom se promenljiva Y
preslikava u vrednost sokrat. Jedini odgovor na ovaj cilj bice, dakle,
Y = sokrat.
U interaktivnom okruzenju, nove cinjenice i pravila se zadaju
iza prompta, kao argumenti predikata assert(...) i svaki zadati
cilj se mora zavrsavati tackom.
C injenice, pravila i ciljevi, pored navedene, deklarativne semantike,
imaju i
odgovarajucu proceduralnu semantiku koja omogucava korisc
enje PROLOG-a kao programskog jezika. Proceduralna semantika
cinjenice man(sokrat) je da
je zadatak man(sokrat) izvrsen. Proceduralna semantika pravila mortal(X)
:- man(X)
je: da bi se izvrsio zadatak mortal(X) potrebno je da se izvrsi zadatak
man(X). Proceduralna semantika cilja mortal(X) je: odredi valuaciju takvu da
je mortal(X) tacno. Proceduralna semantika za slozeni cilj, koji se
sastoji od vise pojed- inacnih ciljeva, je analogna, s tim sto se
podciljevi obradjuju sleva na desno.
PROLOG interpretator kao odgovor na neki cilj koji je zadovoljen,
ispisuje jednu valuaciju (zbog specificnog domena, valuaciju cemo
zvati i instanciranje) promenljivih za koju je cilj tacan i rec Yes
(ukoliko ime neke promenljive pocinje simbolom _, onda se njena
vrednost ne ispisuje). Ukoliko cilj ne moze biti zadovoljen,
interpretator ispisuje rec No. Ukoliko jedan cilj ima vise odgovora
(tj. zadovoljavajucih valuacija), PROLOG ih navodi jedan po jedan,
nakon sto korisnik ukuca znak ;. Ukoliko korisnik pritisne Enter,
interpretator prestaje sa daljim navodjenjem resenja.
Kada su
sva resenja navedena, interpretator ispisuje rec No.

4.3

Pocetni primeri

Nova cinjenica se moze zadati kao u sledecem primeru:


?- assert(man(sokrat)).
Nakon ovoga, upit
?- man(sokrat).
uspeva, tj. daje rezultat Yes.
Naravno, upit
?- man(plato).
ne uspeva, tj. daje odgovor No.
Novo pravilo se zadaje na slican nacin, na primer:
?- assert(mortal(X) :- man(X)).
U pravilu mortal(X) :- man(X), predikat mortal(X) je glava pravila a
(jednoclani) niz predikata man(X) je rep pravila.
Komandom listing mozemo da dobijemo spisak svih postojecih
cinjenica i pravila:
?- listing.
man(sokrat).
mortal(A) :-

76

4 PROLOG
man(A).

Upit
?- mortal(sokrat).
uspeva (daje odgovor Yes). Da bi ovaj upit bio zadovoljen, u pravilu
mortal(X) :- man(X) je promenljiva X bila unifikovana sa konstantom sokrat.
Nakon toga, cilj mortal(sokrat) je zamenjen ciljem man(sokrat) i on uspeva jer
postoji takva cinjeniva.
Upit
?- mortal(plato).
ne uspeva (daje odgovor No).
Upit
?- mortal(A).
uspeva i daje odgovor
A = sokrat.
To je jedino moguce resenje i ako ukucamo simbol ; dobicemo odgovor No.
Jednostavan i ilustrativan primer definisanja odnosa u PROLOG-u
moze se dati na primeru porodicnih relacija kao sto su otac,
majka, brat, tetka i slicno.
zensko(jelena).
zensko(milica).
zensko(milena).
zensko(mina).
zensko(maja).
zensko(senka).
musko(mladen).
musko(stevan).
musko(mihajlo).
musko(rajko).
musko(petar).
roditelj(stevan,mladen).
roditelj(stevan,jelena).
roditelj(milica,mladen).
roditelj(milica,jelena).
roditelj(mihajlo,milica).
roditelj(milena,milica).
roditelj(milena,senka).
roditelj(mihajlo,senka).
roditelj(milena,rajko).
roditelj(mihajlo,rajko).
roditelj(rajko,petar).
roditelj(rajko,mina).
roditelj(maja,petar).
roditelj(maja,mina).
majka(X,Y):-zensko(X),roditelj(X,Y).
otac(X,Y):-musko(X),roditelj(X,Y).
predak(X,Y):-roditelj(X,Y).
predak(X,Y):-roditelj(X,Z),predak(Z,Y).

4.4 PROLOG i metod rezolucije

77

brat(X,Y):-musko(X),roditelj(Z,X),roditelj(Z,Y),X\==Y.
sestra(X,Y):-zensko(X),roditelj(Z,X),roditelj(Z,Y),X\==Y.
tetka(X,Y):-sestra(X,Z),roditelj(Z,Y).
ujak(X,Y):-brat(X,Z),majka(Z,Y).
bratodujaka(X,Y):-musko(X),otac(Z,X),ujak(Z,Y).
sestraodujaka(X,Y):-zensko(X),otac(Z,X),ujak(Z,Y).
bratodtetke(X,Y):-musko(X),majka(Z,X),tetka(Z,Y).
sestraodtetke(X,Y):-zensko(X),majka(Z,X),tetka(Z,Y).
U relacijama brat i sestra predikag X\==Y je ima vrednost
tacno ako je X
razlicito od Y. U suprotnom, ima vrednost netacno.

4.4

PROLOG i metod rezolucije

Pravilo oblika:
p(x1,x2,...,xn) :- q1(y1,y2,...,ym),...qm(z1,z2,...zk)
moze se smatrati implikacijom
q1(y1,y2,...,ym) . . . qm(z1,z2,...zk) p(x1,x2,...,xn)
ili klauzom
q1(y1,y2,...,ym) . . . qm(z1,z2,...zk) p(x1,x2,...,xn)
C injenica oblika:
p(x1,x2,...,xn)
moze se smatrati klauzom
p(x1,x2,...,xn).
Cilj oblika:
q1(y1,y2,...,ym),...qm(z1,z2,...zk)
moze se smatrati klauzom
q1(y1,y2,...,ym) . . . qm(z1,z2,...zk)
U primeru iz poglavlja4.3, ako postoje slede ce cinjenice i
pravila:
man(sokrat).
mortal(A) :man(A).
upitu
?- mortal(X).
odgovara ispitivanje nezadovoljivosti skupa klauza:
man(sokrat)
man(X) mortal(X)
mortal(Y)
Primetimo da je u trecoj klauzi promenljive preimenovana u
Y, da ne bi
doslo
do preklapanja
imena u dve klauze. Ciljna klauza moze da
se
rezolvira
sa drugom
sokrat
] dajuci
novi ciljklauzom, koriscenjem unifikatora [ Y
man(sokrat)
Rezolviranjem
ove klauze
iz pocetnog
skupa,
koriscenjem
unifikatora
[ Xsa
prvom
sokrat klauzom
] 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 najvise jedan literal nije


pod ne- gacijom. Takve klauze zovemo Hornovim klauzama i one
omogucavaju efikasan mehanizam izvodjenja prazne klauze.
PROLOG mehanizam je kompletan: on moze izvesti praznu
klauzu iz bilo kog nezadovoljivog skupa.

4.5

Stablo izvodjenja

PROLOG sistem (interpretator ili kompilator) pokusava da


zadovolji zadati cilj sistematicnim ispitivanjem svih mogucnosti.
Sve mogucnosti cine stablo izvodjenja (eng. derivation tree) ili
stablo pretrage (eng. search tree) cijim lis- tovima odgovaraju
odgovori za zadati cilj. Ukoliko svakom od listova odgo- vara
neuspeh, zadati cilj je nezadovoljen. Ukoliko bar jednom listu
odgovara uspeh, cilj je zadovoljen i unifikacija koja vodi do tog lista
predstavlja jedno resenje za zadati cilj.
Stablo izvodjenja PROLOG-a ilustrovacemo primerom.
Pretpostavimo da je ucitana PROLOG datoteka koja sadrzi ko d
dat na slici4.1(na kraju svakog reda, pod komentarom je oznaka
klauze). Grane stabla su oznacene oznakama klauza koje se koriste
u izvodjenju. Direktni potomci jednog cvora odgovaraju svim
mogucim izvodjenjima odgovarajuceg podcilja. PROLOG
mehanizam ih sve ispituje sistematicno. Poredak potomaka
direktno odgovara poretku klauza u postojecem programu i on
diktira nacin izvrsavanja upita.
Na slici je prikazano kompletno stablo izvodjenja za cilj ?-p(X).
Svaki cvor stabla je u nekom trenutku tekuci cilj koji moze
da cini neko- liko podciljeva. Ukoliko se krajnji levi podcilj unifikuje
sa glavom neke klauze, onda se taj podcilj zamenjuje telom klauze
instanciranim tom istom unifikaci- jom. Ako je telo klauze prazno,
onda se podcilj samo izostavlja. Ako se svi podciljevi mogu obrisati
tokom izvodjenja, onda je polazni cilj zadovoljen, a instanciranje
promenljivih odredjeno usput daje odgovor.
PROLOG stablo izvodjenja obilazi u dubinu, sto znaci da ce
alternativni iz- bori da budu ispitani onda kada se pretraga vrati
do tacke u kojoj ti izbori postoje. Ovaj postupak pretrage zove
se bektreking (eng. backtracking).
U skladu sa prikazanim stablom izvodjenja, upit p(X) dace sledec
e odgov- ore:
?- p(X).
X =a;
X =a;
X =b;
X =d ;
No

4.6 Operator
enja
sec
p(a).
p(X) :- q(X), r(X).
p(X) :- u(X).

79
/* 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)

C2
q(X),r(
X)

true
X=a

C4
s(X),r(X)

C3
u(X)

C10(X=d)
tru
e
X=d

C7(X=a)
C8(X=b)
C9(X=c)
r(a)
r(b)
r(c)
C5
tru
e
X=a

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

Figure 4.1: Primer stabla izvodjenja

4.6

Operator secenja

Operator secenja (eng. cut operator), koji se zapisuje !, odseca delove


stabla pre- trage. Ovaj operator, uspeva kada je on tekuci cilj i
stablu izvodjenja se odse- caju svi drugi izvori na putu unzad do
tacke stabla izvodjenja (ukljucujuci i nju) gde se nalazi operator.
Za program naveden u poglavlju4.5, za cilj p(X),!. dobija se samo
jedan odgovor (a odgovarajuce stablo izvodjenja je prikazano na
slici4.2 sivom bojom oznaceni su cvorovi koji se ne obilaze):
?- p(X),!.
X=a ;

80

4 PROLOG

No
p(X)

C1 (X=a)
tru
e
X=a

q(X),r(
X) C2

C3
u(X)

C4
s(X),r(
X)

C10(X=d)
tru
e
X=d

C7(X=a)
C8(X=b)
C9(X=c)
r(a)
r(b)
r(c)
C5
tru
e
X=a

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

Figure 4.2: Primer rada operatora secenja


Za isti program, upit r(X),s(Y) daje odgovore (stablo izvodjenja je
prikazano na slici4.3):
?- r(X),s(Y).
X =a
Y = a;
X =a
Y = b;
X =a
Y = c;
X =b
Y = a;
X =b
Y = b;
X =b
Y = c;
No
Upit r(X),!,s(Y), zbog operatora secenja daje samo odgovore
(stablo izvod- jenja je prikazano na slici4.4):
?- r(X),!,s(Y).

4.6 Operator secenja

81
r(X),s(Y)

C5(X=a
) s(Y)
C5(X=b)
s(Y)

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

Figure 4.3: Stablo izvodjenja

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

C5(X=a
) s(Y)

C5(X=b)
s(Y)

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

Figure 4.4: Stablo izvodjenja sa operatorom secenja


Konacno, upit r(X),s(Y),!, zbog operatora secenja daje samo
jedan odgov- ore (stablo izvodjenja je prikazano na slici4.5):
?- r(X),s(Y),!.
X =a
Y = a;

82

4 PROLOG

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

C5(X=a
) s(Y)

C5(X=b)
s(Y)

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

C7(Y=b)

C7(Y=c)

true
X=b,Y=c

Figure 4.5: Stablo izvodjenja sa operatorom secenja


Operator secenja ne koristi se samo u ciljevima, vec moze da
se koristi i u pravilima/klauzama koje cine program. On sprecava
koriscenje klauza koje postoje iza klauze koja ga sadrzi.
Razmotrimo primer predikata koji opisuje maksimum dva
broja:
max(X,Y,Y) :- X =< Y.
max(X,Y,X) :- X>Y.
Naravno, ovako implementiran predikat je sasvim ispravan. No,
on nije do- voljno efikasan. Ukoliko je cilj max(3,4,Y) pozvan u okviru
izvrsavajna nekog veceg programa, bice dobijen (ispravan)
odgovor Y=4. Medutim, ukoliko dode do bektrektinga program ce
pokusati da zadovolji max(3,4,Y) na neki drugi nacin, sto je u
ovom slucaju potpuno nepotrebno: maximum brojeva 3 i 4 je 4 i
nema drugog moguceg rezultata. U gore navedenoj definicije, dve
klauze se medusobno iskljucuju (ako prva uspeva, onda druga
sigurno ne uspeva i obratno), pa je svaki pokusaj da cilj bude
zadovoljen na dva nacina gubljenje vremena.
Opisani problem moze se prevazici koriscenjem operatora
secenja. Ako je prva klauza zadovoljena, potrebno je obezbediti da
se nikad ne ispituje druga:
max(X,Y,Y) :- X =< Y,!.
max(X,Y,X) :- X>Y.
Navedena implementacija funkcionise na sledeci nacin:
ukoliko je pozvan cilj max(X,Y,Y) i ukoliko X =< Y uspeva, onda je
drugi argument maksimum i operator secenja onemogucava
ispitivanje drugih mogucnosti. S druge strane, (samo) ako X =< Y ne
uspeva, prelazi se na sledecu klauzu.
Primetimo da upotrebljeni operator secenja ne menja znacenje
programa i skup odgovora (u odnosu na prethodnu verziju). Obe
verzije programa su iste, do na operator secenja i to sugerise da
je njegova upotreba opravdana i prih- valjiva. Takav operator
secenja (koji ne menja znacenje programa) zovemo ze- leni
operator secenja. Operator secenja tog tipa ima za cilj izbegavanje
nepotreb- nih izracunavanja popravljanje efikasnosti.

4.7 Negacija kao neuspeh

83

Postoji i druga vrsta operatora secenje crveni operator


secenja. Crvenim zovemo operator secenja koji menja znacenje
programa. U principu dobro je izbegavati takve operatore, sem ako
za njihovu upotebu ne postoji dobar ra- zlog. Razmotrimo sledeci
primer:
max(X,Y,Y) :- X =< Y,!.
max(X,Y,X).
Ovaj predikat je slican prethodnom, uz razliku da je u drugoj
klauzi izostavl- jen uslov X>Y. Navedni program sa opetorom secenja
nije isti ukoliko se izostavi operator secenja. To sugerise da
njegova upotreba zahteva posebnu paznju (jer on menja znacenje
programa). Za neke upite navedena implementacija je is- pravna.
Na primer, ona ispravno odgovara na upite u kojima je (samo) trec
i argument promenljiva:
?- max(100,101,X).
X = 101
Yes
?- max(3,2,X).
X=3
Yes
Ipak, situacija nije ista kao sa zelenim operatorom secenjam i
znacenje predikata max je promenjeno. Na primer, ukoliko su sva tri
argumenta instancirana, cilj moze da bude da se zadovolji
max(2,3,2). Ovaj upit ne bi trebalo da uspe,
ali u navednoj verziji sa crvenim operatorom secenja on
(neocekivano?)
us- peva. Naime, ne uspeva unifikovanje sa
prvom klauzom, te se prelazi na drugu. Cilj se uspesno unifikuje
sa drugom klauzom i biva zadovoljen. Ovaj primer pokazuje kako
neoprezna upotreba operatora secenja moze da dovede do
neocekivanog ponasanja programa.
On je tipican primer za
crveni oper- ator secenja. Navedena implementacije zapravo ne
definise maksimum, vec neki drugi predikat i ponasa se
ocekivano (kao maksimum) samo u nekim slucajevima.
Dobra praksa je da se najpre implementira jasan program bez
operatora secenja i da se tek onda njegova efikasnost popravi korisc
enjem operatora secenja.

4.7

Negacija kao neuspeh

Termin negacija kao neuspeh se koristi za nacin na koji se pretpostavka


zatvorenog sveta (eng. closed world assumption) implementira kao vrsta
negacije u PROLOGu. Grubo receno, pretpostavka zatvorenog sveta govori da je
netacno sve sto nije
eksplicitno
navedeno
kao
tacno.
Operator \+ daje efekat negacije kao neuspeha, isto kao
predikat not definisan na sledeci nacin (u nekim implementacijama PROLOG-a raspoloziv je i ovakav predikat not):
not(Q) :- call(Q), !, fail.
not(Q).

84

4 PROLOG

Dakle, cilj not(Q) uspeva ako i samo ako cilj Q ne uspeva.


Razmotrimo sledeci primer u kojem se defise pojam woman
preko pojma
man:
man(sokrat).
man(platon).
woman(X):- \+( man(X) ).
Za tako definisan predikat dobija se:
?- woman(sokrat).
no
Naime, da bi bio zadovoljen cilj woman(sokrat) ispituje se cilj man(sokrat).
Ovaj cilj uspeva i zato cilj woman(sokrat) ne uspeva (i nema moguc
nosti bek- trekinga). S druge strane, cilj woman(ksantipa) uspeva
(iako takva cinjenica ne postoji u bazi). Ipak, cilj
?- woman(X).
ne uspeva. Zaista, ovaj cilj moze da uspe samo ako cilj
man(X) ne uspeva. Ali cilj man(X) moze da uspe (za X koje se
instancira na sokrat). Dakle, cilj woman(X) ne uspeva i X ne postaje
vezana.
Upit ?- woman(X) mozemo da smatramo istim kao pitanje da li
postoji X takvo da je woman(X). Ovaj upit ne uspeva a znamo da upit
woman(ksantipa) uspeva. Dakle, ovaj oblik negacije (negacija kao
neuspeh) se bitno razlikuje od obicne logicke negacije.
Razmotrimo jos jedan primer za ilustraciju razlike izmedu
negacije kao neuspeha i klasicne logicke negacije:
a(1).
a(2).
p(X,Y) :- a(X),a(Y),\+(X=Y).
q(X,Y) :- \+(X=Y),a(X),a(Y).
Od upita p(X,Y) i q(X,Y) bismo ocekivali isto ponasanje, medutim
dobijamo:
?- p(X,Y).
X=1
Y=2;
X=2
Y=1;
No.
?- q(X,Y).
No.

4.8 Liste

85

Prvi upit se ponasa u skladu sa nasim ocekivanjem, ali


drugi od njega odstupa. Prvi podcilj cilja q(X,Y) je not(X=Y). Posto se
neinstancirane promenljive X i Y uvek mogu unifikovati, cilj X=Y uvek
uspeva. Stoga cilj not(X=Y) ne us- peva, pa ni upit q(X,Y).
Generalno, ocekivani rezultat (ocekivani u smislu klasicne
logike prvog reda) dobija se samo ako nema slobodnih promenljivih
u upitu, tj. ako je ar- gument operatora \+ vezan u trenutku kada je
ovaj operator pozvan.
Primetimo i da se cilj \+(\+(man(X))) razlikuje od cilja man(X) jer ako
je prvi zadovoljen, onda ce promenljiva X ostati slobodna, za
razliku od cilja man(X) koji ce biti zadovoljen a promenljiva X ce
biti instancirana na sokrat. Ovo svojstvo moze da posluzi i kao
pogodan test da li su dva terma unifika- bilna bez njihovog
unifikovanja u bilo kom slucaju. Na primer, cilj \+(\+(X=2)) uspeva,
a pri tome se X ne instancira na 2.

4.8 Liste
Liste su jedan od kljucnih tipova podataka koji se koriste u
logickom programi- ranju. Lista je prazna lista ili element za kojim
sledi lista. Liste se rekurzivno definisu, pa se rekurzija prirodno
javlja u resenjima problema u kojima se one koriste.
Lista moze da se zapise kao niz njenih elemenata
razdvojenih zarezima zapisu izmedu zagrada [ i ]. Lista kao
svoj element moze da sadrzi i drugu listu. Navedimo nekoliko
primera listi:

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

Praznu listu oznacavamo sa []. Ukoliko je lista neprazna, njen prvi


element
zovemo glava liste, a nastavak rep liste, takvu listu oznacavamo sa [GlavaListe|
RepListe].
Sledeca tabela pokazuje na primerima da li se i kako mogu
unifikovati ra- zlicite liste.

86

4 PROLOG
Term 1

Term 2

unifikabilni unifikator

[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]

[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]

ne
ne
da
da
da
da
da
ne
da
da
da
da
da
da
da
da

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

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

Predikat koji odreduje prvi element liste se moze definisati na


sledeci nacin:
glava([H|_],H).
a prva tri elementa na sledeci nacin:
prvatri([X,Y,Z|_],X,Y,Z).
Rep liste se moze odrediti na sledeci nacin:
rep([_|T],T).
Predikat koji dodaje element na pocetak liste se moze
definisati na sledeci nacin:
dodajnapocetak(Lista,X,[X|Lista]).
Proveru da li je element X clan liste definisacemo na dva
nacina:
clan1([X|_],X):- !.
clan1([_|R],X):- clan1(R,X).
clan2([X|_],X). clan2([_|
R],X):- clan2(R,X).
Prva definicija je efikasnija, posto operator secenja sprecava
bektreking posle uspesnog nalazenja trazenog clana (dok se u
drugoj verziji pretraga do kraja liste i kad je trazeni elemente vec
pronaden). Medutim, druga verzija se moze koristiti i za
nabrajanje clanova liste. Upit clan1([1,2,3],X) daje odgovor:
?- clan1([1,2,3],X).
X=1;
No.

4.8 Liste

87

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


?- clan2([1,2,3],X).
X=1;
X=2;
X=3;
No.
Jos jedna razlika izmedu ovih predikata se ilustruje sledecim
primerima:
?- clan1([1,2,3],X), X>2.
No.
?- clan2([1,2,3],X), X>2.
X=3;
No.
U slucaju prvog predikata, promenljiva X se pomocu prvog pravila
za clan1 unifikuje sa prvim elementom liste, a operator secenja
onemogucava bektrek- ing. Stoga ne uspeva cilj X>2 i sistem
odgovara No.
U drugom slucaju, posle neuspeha cilja X>2,
bektrekingom se dolazi do unifikacije promenljive X sa poslednjim
elementom liste, kada i cilj X>2 uspeva.
Duzina liste se moze izracunati sledecim predikatom:
duzina([],0).
duzina([_|R],M):-duzina(R,M1), M is M1+1.
Predikat brisi_jedno_pojavljivanje izbacuje jedno pojavljivanje datog
elementa iz date liste:
brisi_jedno_pojavljivanje(X,[X|R],R). brisi_jedno_pojavljivanje(X,[F|R],[F|
S]) :- brisi_jedno_pojavljivanje(X,R,S).
Ovo je primer upotrebe navedenog predikata:
?- brisi_jedno_pojavljivanje(X,[1,2,3],L).
X=1 L=[2,3] ;
X=2 L=[1,3] ;
X=3 L=[1,2] ;
No
Sledeci upit:
?- brisi_jedno_pojavljivanje(3,L,[a,b,c]).
L = [3,a,b,c] ;
L = [a,3,b,c] ;
L = [a,b,3,c] ;
L = [a,b,c,3] ;
No

88

4 PROLOG

pokazuje da predikat brisi_jedno_pojavljivanje(X,L,R) moze da se


inter- pretira i kao ,,ubaci element X u listu L koja tako daje listu R.
Dakle, predikat ubaci mogao bi da se jednostavno implementira:
ubaci(X,L,R) :- brisi_jedno_pojavljivanje(X,R,L).
Navedimo definiciju predikata za dopisivanje dve liste jednu na
drugu:
append([X|Y],Z,[X|W]) :append(Y,Z,W). append([],X,X).
Predikat append moguce je koristiti na nekoliko nacina, za
izracunavanje razlicitih argumenta:
?- append([1,2,3],[4,5],[1,2,3,4,5]).
Yes
?- append([1,2,3],[4,5],A).
A = [1,2,3,4,5]
?append([1,2,3],A,[1,2,3,4,5]).
A = [4,5]
?- append(A,[4,5],[1,2,3,4,5]).
A = [1,2,3]
Ilustrujmo primene listi i kroz dva algoritma za sortiranje.
Primetimo da u narednoj implementaciji algoritma mergesort
nema potrebe za primenom operatora secenja, za bilo koje
argumente navedni predikatu mogu biti zadovoljeni samo na po
jedan nacin.
mergesort([],[]).
mergesort([A],[A]).
mergesort([A,B|R],S) :split([A,B|R],L1,L2),
mergesort(L1,S1),
mergesort(L2,S2),
merge(S1,S2,S).
split([],[],[]).
split([A],[A],[]).
split([A,B|R],[A|Ra],[B|Rb]) :- split(R,Ra,Rb).
merge(A,[],A).
merge([],B,B).
merge([A|Ra],[B|Rb],[A|M]) :merge([A|Ra],[B|Rb],[B|M]) :-

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

Ovaj predikat je definisan tako da se koristi za izracunavanje


drugog argu- menta ako je dat prvi. Nije ga moguce koristiti za
izracunavanje prvog argu- menta ako je dat drugi. Naime, na
primer, upit mergesort(A,[1,2,3]) bi pri- likom poziva predikata merge
doveo do nedovoljno instanciranih promenljivih i do greske.
Algoritam bubble sort moze se implementirati na sledeci
nacin:

4.9 Ugradjeni predikati

89

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


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

4.9

Ugradjeni predikati

Logicke konstante Predikat true uvek uspeva kao cilj, predikat false
nikad ne uspeva kao cilj.
Provera promenljive
Predikat var(X) proverava da li je X promenljiva koja nije vezana.
Predikat ground(G) proverava da li je G ne sadrzi promenljive
koje nisu vezane.
Provera tipa
Predikat atom(X) uspeva ako je X vezana za simbolicki atom.
Na primer, atom(foot) i atom(foot) uspevaju, a atom("foot") i
atom(3) ne us- pevaju.
Predikat integer(X) proverava da li je X vezana za ceo
broj. Predikat real(X) proverava da li je X vezana za
realan broj.
Predikat string(X) proverava da li je X vezana za karaktersku nisku.
Unifikabilnost i jednakost
Upit X = Y proverava da li su X i Y unifikabilni, upit X \= Y
proverava da li X i Y nisu unifikabilni,
Upit X == Y proverava da li su X i Y imaju jednake vrednosti upit X \== Y
proverava da li X i Y imaju razlicite vrednosti.
Vezivanje promenljive za numericku vrednost
Cilj V is E vezuje promenljivu V za numericku vrednost E. Vrednost E
mora biti numericka konstanta ili izraz cija je vrednost odredjena.
Aritmetici operatori
Za brojeve N i M, dozvoljeni su sledeci aritmeticki operatori: N
> M, N < M, N =< M, N >= M.

90

4 PROLOG

Pomocni predikati
Cilj help(S) uvek uspeva i daje objasnjenje (ako ono postoji) za
pojam S
(S treba da bude simbolicki atom, na primer, help(var)).
Cilj halt uvek uspeva, zaustavlja PROLOG i vraca kontrolu
operativnom sistemu.
Cilj trace uvek uspeva i ukljucuje pracenje izvrsavanja
izracunavanja. Cilj notrace uvek uspeva i iskljucuje pracenje
izvrsavanja izracunavanja.
Dodavanje u PROLOG bazu i brisanje iz PROLOG baze
Cilj asserta(C) dodaje klauzu C u bazu pre klauza koje imaju isti
kljucni predikat (kljucni predikat klauze je prvi predikat sleva
nadesno).
Cilj assertz(C) (kao i cilj assert(C)) dodaje klauzu C u bazu iza
klauza koje imaju isti kljucni predikat.
Cilj retract(C) brise klauzu C iz baze. Klauza C treba da bude
instanci- rana tako da moze da se odredi kljucni predikat.
listing prikazuje sadrzaj baze.
Ucitavanje PROLOG programa
Cilj consult(F) ucitava program iz datoteke F.
Cilj reconsult(F) ucitava program iz datoteke F, s tim sto se
definicijom predikata koji se ucitava zamenjuje (eventualna)
postojeca definicija.
Cilj [F1,F2,...] oznacava ucitavanje datoteke F1, zatim
datoteke F2, itd. U PROLOG programima komentari se pisu
izmedju znakova /* i */.
Ulaz i izlaz
seeing(X) uspeva ako je X vezana za tekuci ulazni tok (tzv.
port). Na primer, seeing(user) uspeva ako je tekuci ulazni tok
tastatura.
see(X) otvara kao ulazni port datoteku X. Naredni ulazi za
predikat read bice citan sa tog porta.
seen zatvara sve ulazne portove i naredni ulazi za predikat
read bice citani sa porta user.
read(X) cita izraz sa tekuceg porta i smesta ga u X.
telling(X) uspeva ako X moze biti vezana za tekuci izlazni
port. Na primer, tellin(user) uspeva ako je tekuci izlazni tok
ekran.
tell(X) otvara kao izlazni port datoteku X. Naredni ulazi
predikata write bice slati na taj port.
told zatvara sve izlazne portove i naredni ulazi za predikat
bi\ce bice slat na porta user.
write(E) ispisuje izraz vezan za E na tekuci izlazni port.
nl omogucava prelazak u novi red.
tab(N) ispisuje N razmaka na tekuci izlazni port.
Kontrola toka
call(P) poziva predikat P, uspeva ako i samo ako uspeva P.
! operator secenja.

4.9 Ugradjeni predikati

91

Negacija kao neuspeh


not(Q), \+Q daje efekat negacije kao neuspeha (kao sto je
objasnjeno u poglavlju4.7.
Obrada PROLOG termova
clause(H,B) vraca klauze iz baze cija glava se uparuje sa H,
a telo sa B. Vrednost H mora biti dovoljno instancirana da
odredjuje glavni predikat glave.
functor(E,F,N) uspeva ako je vrednost E vezana za funkcijski
izraz ob- lika f(...). F ce biti vezano za f a N za broj
argumenat u f(...).
arg(N,E,A) uspeva ako je vrednost E vezana za funkcijski
izraz oblika f(...) i ako N moze biti vezano za neki redni broj
argumenta u f(...). Ukoliko cilj uspe, A ce biti vezano za N-ti
argument u f(...).
name(A,L) vrsi konvertovanje izmedju atoma i liste.
upit
?- name(.pl,L). daje odgovor L = [46,112,108].

Na primer,

=.. vrsi konvertovajne izmedju terma i liste. Na primer, ?- parent(a,X)


= .. L.
daje odgovor L = [parent, a, _X001].
Operator :- op(P,T,O). uvodi simbol operatora.
P odredjuje prioritet operatora, vecoj vrednost odgovara
nizi prioritet (prioriteti za ugradjene operatore zavisi od
konkretnog sistema).
T je tip operatora:
xfx za infiksni neasocijativni;
xfy za infiksni desno
asocijativni; yfx za infiksni
levo asocijativni; fx za
prefiksni neasocijativni;
fy za prefiksni desno asocijativni;
xf za postfiksni
neasocijativni; yf za
postfiksni levo asocijativni;
O je ime operatora.
Tip operatora se definise pomocu jednostavnih, gore datih,
niski karak- tera. Karakter f oznacava poziciju operatora, a
x i y pozicije argume- nata. Pri tome x znaci da se radi o
argumentu sa glavnim operatorom strogo manjeg prioriteta od
operatora koji definisemo. y znaci da prior- itet glavnog
operatora argumenta moze biti manji ili jednak prioritetu operatora koji definisemo. Pri tome se smatra da atomi i izrazi u
zagradama imaju prioritet 0.
Smisao ovakvog definisanja tipa operatora se najbolje ilustruje
pomocu drveta operatora. Neka je operator + tipa yfx i neka je
dat izraz a+b+c. Postoje dva drveta izraza koja mu potencijalno
mogu odgovarati. Data su na slici4.6.
Ako posmatramo desno drvo, primecujemo da njegovo desno
poddrvo ima operator + u korenu koji nije strogo manjeg
prioriteta od operatora
+ u korenu celog drveta. Medutim, njegov tip yfx to zahteva, pa stoga

92

4 PROLOG

Figure 4.6: Dva drveta koja mogu odgovarati izrazu


a+b+c

desno drvo moramo odbaciti. Odnosno, operator je levo


asocijativan i izraz se tumaci kao ((a+b)+c). Da je tip
operatora bio xfx ni jedno od ova dva drveta ne bi bilo
prihvatljivo, posto se bar u jednom poddrvetu javlja operator +
istog prioriteta. Ovo se moze resiti pomocu zagrada,
posto je prioritet izraza u njima 0. Stoga tip xfx namece
koriscenje zagrada, sto znaci da operator nije asocijativan.
Ugradjeni operatori, poredjani po prioritetima:
:xfx, fx
?fx
;
xfy
,
xfy
not
fy
is, =.., <, itd. xfx
+, yfx, fx
*, /
yfx
^
xfy
Pronalazenje svih resenja
findall(Things,GoalExpression,Bag)
pronalazi sve vrednosti za Thing koje zadovoljavaju uslov
GoalExpression i smesta ih u listu Bag. Ako cilj GoalExpression
ne uspeva, list Bag ce biti prazna. Sve promenljive u
GoalExpression se smatraju egzistencijalno kvantifiko- vanim.
bagof(Things,GoalExpression,Bag) pronalazi sve vrednosti za
Thing
koje zadovoljavaju uslov GoalExpression i smesta ih u listu Bag. Ne uspeva ako ne uspeva cilj GoalExpression. Slobodne promenljive u
GoalExpression mogu da se vezu.
setof(Things,GoalExpression,Bag) funkionise isto kao bagof uz
raz- liku da ce lista Bag biti sortirana i da nece sadrzati
duplikate.

4.10

Implementacija KNF algoritma

Kao prvi veci primer PROLOG programa koji ilustruje razne koncepte
jezika, navodimo implementaciju KNF algorima. Kasnije cemo na to
nadovezati im-

4.10 Implementacija KNF algoritma

93

plementaciju algoritma DPLL. Radi preglednijeg zapisa, prvo uvodimo


logicke veznike kao nove operatore.
:-op(10,fx,non).
:-op(20,yfy,and).
:-op(30,yfy,or).
:-op(40,xfx,implies).
:-op(50,xfx,equiv).
Operatori and i or su definisani kao asocijativni (yfy), sto dovodi do
ispustanja nepotrebnih zagrada u zapisu i lakse citljivosti.
Predikat knf implementira KNF algoritam iz tri koraka. Prvo se
eliminisu veznici ekvivalencije i implikacije, zatim se vrsi primena
de Morganovih za- kona uz eliminisanje dvostrukih negacija, a na
kraju primena zakona distribu- tivnosti disjunkcije i konjunkcije.
knf(X,Y):-eliminacija(X,Z),demorgan(Z,T),distributivnost(T,Y).
eliminacija(X equiv Y,R):-eliminacija((X implies Y) and (Y implies X),R).
eliminacija(X implies Y,non X1 or Y1):-eliminacija(X,X1),eliminacija(Y,Y1).
eliminacija(X or Y,X1 or Y1):-eliminacija(X,X1),eliminacija(Y,Y1).
eliminacija(X and Y,X1 and Y1):-eliminacija(X,X1),eliminacija(Y,Y1).
eliminacija(non X,non X1):-eliminacija(X,X1).
eliminacija(X,X):-atom(X).
Primetimo da je pri svakom pozivu primenljivo samo jedno
pravilo za elim- inaciju, tako da PROLOG nece traziti vise od
jednog resenja. Osim toga, treba primetiti da je prvo pravilo
specificno zato sto eliminisuci jedan veznik uvodi novi koji je
potrebno eliminisati.
demorgan(non (X and Y),X1 or Y1):-demorgan(non X,X1),demorgan(non Y,Y1).
demorgan(non (X or Y),X1 and Y1):-demorgan(non X,X1),demorgan(non Y,Y1).
demorgan(non non X,X1):-demorgan(X,X1).
demorgan(X or Y,X1 or Y1):-demorgan(X,X1),demorgan(Y,Y1).
demorgan(X and Y,X1 and Y1):-demorgan(X,X1),demorgan(Y,Y1).
demorgan(non X,non X):-atom(X).
demorgan(X,X):-atom(X).
Primetimo da je jednostavnosti radi ucinjeno malo odstupanje od
KNF al- goritma kako je dat na slici2.1. Naime, dozvoljena je
eliminacija dvostruke negacije i pre nego sto se do kraja primene de
Morganovi zakoni.
distributivnost(X and Y, X1 and Y1):-distributivnost(X,X1),distributivnost(Y,Y1).
distributivnost(X or Y,
R):-distributivnost(X,X1),distributivnost(Y,Y1),
distributivnost(X1,Y1,R).
distributivnost(non X, non X).
distributivnost(X,X):-atom(X).
distributivnost(X and Y, Z, XZ and YZ):-distributivnost(X,Z,XZ),
distributivnost(Y,Z,YZ),!.
distributivnost(X, Y and Z, XY and XZ):-distributivnost(X,Y,XY),
distributivnost(X,Z,XZ),!.
distributivnost(X,Y,X or Y).

94

4 PROLOG

Kada mu je argument neka konjunkcija, predikat distributivnost


omogucava rekurzivnu primenu na konjunkte, a slucaju disjunkcije
primenjuje zakone dis- tributivnosti. Pri tome se uzima u obzir i to da
primena ovog zakona moze dovesti do stvaranja novih uslova za
njegovu primenu u okviru podformula dobijenog izraza.

4.11

Implementacija DPLL algoritma

Posle transformacije formule u konjunktivnu normalnu formu, u cilju


primene DPLL algoritma, potrebno ju je konvertovati u listu listi
literala gde je spoljna lista konjunkcija unutrasnjih listi koje
predstavljaju klauze. Kako bismo ovo implementirali, prvo nam je
potreban pomocni predikat koji spaja dve liste. Za to cemo
koristiti predikat append definisan u sekciji4.8.
Konverzija se vrsti tako sto se prolazi kroz konjunkcije spajajuci
liste koje se dobijaju rekurzivnom primenom predikata
knf_u_listu_listi na konjunkte (koji su ponovo u konjunktivnoj
normalnoj formi) sve dok se ne dode do dis- junkcije. U tom
trenutku se prelazi na novi predikat disjunkcija_u_listu koji od
disjunkcije formira listu literala analogno nacinu na koji
knf_u_listu_listi gradi listu listi.
knf_u_listu_listi(X,[[X]]):-atom(X).
knf_u_listu_listi(non X, [[non X]]):-atom(X).
knf_u_listu_listi(X and Y,R):-knf_u_listu_listi(X,R1),knf_u_listu_listi(Y,R2),
append(R1,R2,R).
knf_u_listu_listi(X or Y,[R]):-disjunkcija_u_listu(X or Y, R).
disjunkcija_u_listu(X,[X]):-atom(X).
disjunkcija_u_listu(non X,[non X]).
disjunkcija_u_listu(X or Y,R):-disjunkcija_u_listu(X,R1),disjunkcija_u_listu(Y,R2),
append(R1,R2,R).
U cilju implementacije DPLL algoritma, prvo su nam potrebni
pomocni 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 sadrzi neki element koristicemo
dvostruku 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,
ko- risticemo i sledeci predikat:
zameni_u_disjunkciji(X,Y,[X|R],[Y|T]):-zameni_u_disjunkciji(X,Y,R,T),!.
zameni_u_disjunkciji(X,Y,[Z|R],[Z|T]):-zameni_u_disjunkciji(X,Y,R,T).
zameni_u_disjunkciji(X,Y,[],[]).

4.11 Implementacija DPLL algoritma

95

Pri tome se podrazumeva da su disjunkcije unutrasnje liste.


Zamena ele- menta liste listi (literala u celoj formuli) se sad lako
vrsi:
zameni_literal_u_formuli(X,Y,[P|R],[Q|T]):-zameni_u_disjunkciji(X,Y,P,Q),
zameni_literal_u_formuli(X,Y,R,T).
zameni_literal_u_formuli(X,Y,[],[]).
Zamena iskaznog slova p u formuli se moze uraditi tako sto se
zamene oba literala - p i non p odgovarajucim simbolima u celoj formuli.
zameni_slovo_u_formuli(X,Y,P,Q):-zameni_literal_u_formuli(X,Y,P,R),
zameni_literal_u_formuli(non X, non Y,R,Q).
Brisanje svih pojavljivanja elementa liste vrsimo na sledeci
nacin:
brisi_sve(X,[X|R],R1):-brisi_sve(X,R,R1),!.
brisi_sve(X,[Y|R],[Y|R1]):-brisi_sve(X,R,R1). brisi_sve(X,[],
[]).
DPLL algoritam
prvo
proverava
li operisevrsi
sa praznom
listom
klauza
vraca
yes, a uda
suprotnom,
zamene
T sa

i i ako
sa je
T, tako
brise
pojavljivanja
literala
u nasoj
implementaciji
predstavljen
atomom
(dok
jekojiT uje
predstavljen
atomom
t) i proverava
da li se
prazna f
klauza
nalazi
skupu klauza. Posle toga se pokusava sa koracima tautology, unit
propagation, pure literal i split.
Provera da li je argument prazna klauza
dpll([]):-!.

Zamene literala non t sa f i non f sa t


dpll(X):-formula_sadrzi_literal(X,non t),!,zameni_negacije_literala(X,Y),dpll(Y).
dpll(X):-formula_sadrzi_literal(X,non f),!,zameni_negacije_literala(X,Y),dpll(Y).

Brisanje literala f
dpll(X):-formula_sadrzi_literal(X,f),!,brisi_f(X,Y),dpll(Y).

Ako formula sadrzi praznu klauzu, onda je polazna formula nezadovoljiva


dpll(X):-sadrzi_praznu_klauzu(X),!,fail.

Korak tautology
dpll(X):-sadrzi(X,Y),sadrzi(Y,t),!,brisi_sve(Y,X,Z),dpll(Z).
dpll(X):-sadrzi(X,Y),sadrzi(Y,L),atom(L),sadrzi(Y,
non
L),!,brisi_sve(Y,X,Z),dpll(Z).

96

4 PROLOG

Korak unit propagation


dpll(X):-sadrzi(X,[Y]),atom(Y),!,zameni_slovo_u_formuli(Y,t,X,Z),dpll(Z).
dpll(X):-sadrzi(X,[non Y]),!,zameni_slovo_u_formuli(Y,f,X,Z),dpll(Z).

Korak pure literal


dpll(X):-formula_sadrzi_literal(X,Y),atom(Y),not(formula_sadrzi_literal(X,non Y)),!,
zameni_slovo_u_formuli(Y,t,X,Z),dpll(Z).
dpll(X):-formula_sadrzi_literal(X,non Y),not(formula_sadrzi_literal(X,Y)),!,
zameni_slovo_u_formuli(Y,f,X,Z),dpll(Z).

Korak split
dpll([[X|R1]|R2]):-atom(X),zameni_slovo_u_formuli(X,t,[[X|R1]|R2],Y),dpll(Y),!.
dpll([[X|R1]|R2]):-atom(X),zameni_slovo_u_formuli(X,f,[[X|R1]|R2],Y),dpll(Y).
dpll([[non X|R1]|R2]):-zameni_slovo_u_formuli(X,t,[[non X|R1]|R2],Y),dpll(Y),!.
dpll([[non X|R1]|R2]):-zameni_slovo_u_formuli(X,f,[[non X|R1]|R2],Y),dpll(Y).
Primetimo da je recimo u koraku tautology moguce da postoji
vise klauza koje sadrze literal t. U tom slucaju PROLOG bi
prirodno vrsio bektreking u po- trazi za svim resenjima. Kako to u
nasoj implementaciji nema svrhe, ubacen je predikat reza koji
sprecava ovakvo ponasanje. Slicna opaska vazi i u pravilima
unit propagation i pure literal.
Zamene negiranih literala se vrse jednostavno kad imamo
implementirane pomocne predikate.
zameni_negacije_literala(X,Y):-zameni_literal_u_formuli(non
t,f,X,Z),
zameni_literal_u_formuli(non f,t,Z,Y).
Brisanje literala f:
brisi_f([X|R],[Y|R1]):-brisi_sve(f,X,Y),brisi_f(R,R1). brisi_f([],
[]).
Predikat sadrzi_praznu_klauzu se trivijalno implementira.
sadrzi_praznu_klauzu(X):-sadrzi(X,[]).
Sada mozemo dodati jos jedan predikat koji proverava da
li je formula zadovoljiva:
zadovoljiva(X):-knf(X,Y),knf_u_listu_listi(Y,Z),dpll(Z).

4.12 Pretraga grafa

4.12

97

Pretraga grafa

Kako grafovi predstavljaju binarne relacije nad nekim domenom,


PROLOG omogucava vrlo jednostavno opisivanje i pretragu grafova.
Graf se zadaje lis- tom svojih grana.
edge(1,
edge(1,
edge(2,
edge(2,
edge(3,
edge(3,
edge(4,
edge(4,
edge(5,
edge(6,
edge(6,
edge(7,
edge(8,
edge(8,

5).
7).
1).
7).
1).
6).
3).
5).
8).
4).
5).
5).
6).
7).

Nalazenje putanje se realizuje rekurzivno. Postoji put od cvora


A do cvora B ako je A = B ili ako postoji grana od cvora A do
cvora X i postoji put od X do B. Kako grafovi mogu u opstem
slucaju sadrzati cikluse, potrebno je pamtiti i listu posecenih
cvorova kako ne bi doslo do prekoracenja steka pri rekurzili.
path(Start, Finish, Visited, Path)
path(Node, Node, _, [Node]).
path(Start, Finish, Visited, [Start|Path]):edge(Start, X), not(sadrzi(Visited,X)), path(X,Finish,[X|Visited],Path).

4.13

Primer resavanje jednostavnog problema

PROLOG je poznat po svojoj pogodnosti za resavanje problema


vestacke in- teligencije. Ilustrovacemo to na primeru jednostavne
igre.
Na levoj obali reke nalaze se tri misionara i tri ljudozdera (eng.
missionaries and cannibals).
Pomocu camca koji prima dve
osobe, svi treba da se prevezu preko reke. Pri tome, ne sme se
desiti da na nekoj obali broj ljudozdera bude veci od broja
misionara jer ce ih ovi pojesti. Potrebno je naci neki raspored
prevozenja tako da svi predu reku.
Resavanje ovog problema cemo svesti na pretragu grafa.
Izmedu svaka dva poteza, igra se nalazi u odredenom stanju. To
stanje se karakterise bro- jem misionara i ljudozdera na obalama
i polozajem camca.
Broj misionara i ljudozdera je dovoljno
precizirati za levu stranu, jer je tad broj na desnoj strani
jednoznacno odreden. Primer stanja je
state(3, 1, left)

98

4 PROLOG

Potezi predstavljaju prevozenje jedne ili dve osobe na drugu


stranu reke. Potpuno su odredeni brojem misionara i ljudozdera
koji se prevoze i stranom na koju se camac krece. Primer poteza
je
move(1,1,right)
Stanja igre mozemo smatrati cvorovima grafa cije su grane
potezi pomocu kojih se prelazi iz jednog stanja u drugo. Na ovaj
nacin se resavanje problema svodi na nalazenje putanje kroz graf
od polaznog stanja state(3,3,left) do zavrsnog state(0,0,right).
Samo resenje je lista poteza koji odgovaraju granama koje spajaju
medustanja u toku resavanja.
[move(0,2,left), move(0,1,right)|...]
Osnovni predikat za resavanje ovog problema ima formu vec
prikazanog predikata za pretragu grafa.
mandc(state(0, 0, right), _, []).
mandc(CurrentState, Visited, [Move | RestOfMoves]) :newstate(CurrentState, NextState),
not(sadrzi(NextState, Visited)),
make_move(CurrentState, NextState, Move),
mandc(NextState, [NextState | Visited],
RestOfMoves).
Za uoceno stanje koje nasleduje trenutno, potez koji realizuje
prelaz se lako izracunava.
make_move(state(M1, C1, left), state(M2, C2, right), move(M, C, right)) :M is M1 - M2,
C is C1 - C2.
make_move(state(M1, C1, right), state(M2, C2, left), move(M, C, left)) :M is M2 - M1,
C is C2 - C1.
Da bismo konstruisali sledece stanje, potrebno je definisati
legalne prelaze 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 ljudozdera


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

4.13 Primer resavanje jednostavnog problema

99

Prilikom konstrukcije novog stanja, moramo paziti i da pre prelaska


na desnu obalu, na levoj strani mora biti dovoljno osoba koje su
planirane za prelazak, i da posle prelaska na levu obalu na njoj ne
moze biti vise od tri misionara, odnosno ljudozdera.
newstate(state(M1, C1, left), state(M2, C2, right)) :carry(M, C),
M =< M1,
C =< C1,
M2 is M1 - M,
C2 is C1 - C,
legal(M2, C2).
newstate(state(M1, C1, right), state(M2, C2, left)) :carry(M, C),
M2 is M1 + M,
C2 is C1 + C,
M2 =< 3,
C2 =< 3,
legal(M2, C2).

Zadaci

Zadatak 65
Vazi sledec
e: Janko ima psa.
Svaki vlasnik psa voli zivotinje.
Nijedna osoba koja voli zivotinje ne moze da udari
zivotinju. Janko ili Marko su udarili macku cije je ime
Tuna.
Svaka macka je zivotinja.
U PROLOG-u zapisati cinjenice i predikate pomocu kojih se moze utvrditi ko je
udario Tunu.
Zadatak 66
Zadatak 67
Zadatak 68

Definisati predikat koji izracunava sumu prvih N prirodnih brojeva.


Definisati predikat koji izracunava sumu cifara datog broja.
Definisati predikat koji izracunava N-ti stepen zadatog

broja. Zadatak 69
Zadatak 70

Definisati predikat koji obrce cifre broja.

Definisati predikat koji izracunava najveci zajednicki delilac dva

broja.
Zadatak 71
Zadatak 72
Zadatak 73
Zadatak 74

Definisati predikat koji proverava da li je broj prost.


Definisati predikat koji izracunava sumu elemenata liste.
Definisati predikat koji obrce listu.
Definisati predikat koji dodaje element na kraj liste.

Zadatak 75 Definisati predikat koji proverava da li se tri zadata elementa


nalaze na uzastopnim pozicijama u listi.

100

4 PROLOG

Zadatak 76 Definisati predikat koji konstruise listu koja se sastoji od prvih n elemenata zadate liste.

Zadatak 77 Definisati predikat koji deli datu listu brojeva na listu negativnih i
nenegativnih elemenata.
Zadatak 78

Zadatak 79

Zadatak 80
Zadatak 81

Definisati predikat koji deli datu listu na dve na sve moguce nacine.
Definisati predikat koji ispisuje sve podliste date liste.
Definisati predikat koji iz date liste brise sva ponavljanja elemenata.

Definisati predikat koji nalazi uniju dve

liste. Zadatak 82
Definisati predikat koji nalazi presek

dve liste. Zadatak 83


Definisati predikat koji nalazi
razliku dve liste.
Zadatak 84

Definisati predikat koji nalazi simetricnu razliku dve liste.

Deo II

Pretraga

Glava 5

Resavanje problema
kao pretraga
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
pri- meni procedure DPLL moguce je uociti i korake
zakljucivanja i korake pre- trage. Kada se uoci jedinicna
klauza u nekoj formuli, njeno zadovoljenje je nuzno i
predstavlja korak zakljucivanja. S druge strane kada je nemoguce
di- rektno zakljucivanje, potrebno je pretpostaviti vrednost iskazne
promenljive. U daljem toku dokazivanja, ta akcija ce se pokazati
kao opravdana ili neoprav- dana. U slucaju da se pokaze kao
neopravdana, preduzima se alternativna ak- cija. Znaci, situacija u
kojoj nije moguce izvrsiti direktno zakljucivanje 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
ljud- skog i sporo, ali bi problem bio laksi jer ne bi bila potrebna
sinhronizacija ra- zlicitih zglobova i svaki bi se pojedinacno
dovodio u zeljeni polozaj. Druga mogucnost je da se kretanja
zglobova izvode simultano, kao kod coveka, pri tom povecavajuc
i broj mogucih kombinacija u svakom trenutku.
Dati primeri motivisu razmisljanje o pretrazi kao o nalazenju
niza akcija ko- jima se ostvaruje cilj kada to ne moze biti ostvareno
pojedinacnim akcijama. Iako u opstem slucaju ovakva definicija ne
mora delovati adekvatno, u kontekstu vestacke inteligencije u
kome obicno pretpostavljamo postojanje nekog entiteta koji deluje
preduzimanjem nekih akcija (agenta), ona je prirodna.
Pored algoritama koji se u potpunosti mogu podvesti pod ovako
definisan

104

5 Resavanje problema kao pretraga

pojam pretrage, u ovom delu cemo opisati i neke algoritme


optimizacije, koji su opstiji.
Kako bi se neki problem predstavio kao problem pretrage i resio
primenom algoritama pretrage potrebno je da ima odredenu
strukturu. Kako bi aspekti ove strukture bili jasnije izlozeni bice
ilustrovani na primeru nalazenja puta izmedu dva grada.
Pretpostavlja se da direktan put izmedu njih ne mora pos- tojati,
vec da je potreban prolazak kroz veci broj gradova na putu
izmedu njih, ali se pretpostavlja da je ciljni grad dostupan iz
polaznog.
Elementi problema pretrage koje je potrebno definisati su
sledeci:
Skup mogucih stanja: U toku procesa pretrage agent koji sprovodi
pretragu se moze naci u razlicitim stanjima. Poznavanje
stanja pruza sve informa- cije potrebne za razumevanje
procesa pretrage i agenta u datom trenutku. Za agenta koji
nalazi put izmedu dva grada, skup stanja predstavlja skup
gradova koji su dostupni iz polaznog grada.
Polazno stanje: Na pocetku resavanja problema agent se nalazi u
odredenom stanju. Ovo stanje nazivamo polaznim stanjem.
U primeru nalazenja puta, to je grad iz koga se krece.
Skup mogucih akcija: U svakom koraku pretrage, agent moze
preduzeti neku akciju. Niz akcija preduzetih u odgovarajucim
trenucima treba da dovede do resavanja problema. Skup
akcija moze biti isti u svakom stanju ili moze da varira od
stanja do stanja. To zavisi od problema koji se resava. Skup
akcija moze biti kretanje ka jednom od susednih gradova.
Niz ovakvih izbora treba da dovede agenta do ciljnog grada.
Skup akcija u ovom problemu ocito varira od stanja do stanja
jer su za razlicite gradove razliciti i skupovi susednih gradova.
Fukcija prelaska: Ova funkcija preslikava parove stanje-akcija u stanja
koja slede posto se u datom stanju preduzme data akcija. Ova
funkcija omogucava izbor narednog stanja izborom neke akcije.
Ukoliko ona nije poznata, agent ne moze biti siguran u koje ce
stanje dospeti posle preduzimanja odredene akcije i sam proces
odlucivanja postaje kompleksniji. U nekim problemima funkcija
prelaska ne mora biti poznata. Na primer u slucaju delovanja u
nepoznatoj okolini. Jedan nacin resavanja ovakvih problema je koriscenjem informacija iz iskustva, odnosno
aproksimacijom ove funkcije pomocu procesa koji se zasniva na
analizi pokusaja i gresaka.
Jedan nacin kojim se resavaju ovakvi problemi je
primena
algoritama
ucenja
uslovljavanjem
(eng.
reinforcement learning). Jos jedan primer u kome funkcija
prelaska moze biti nedefinisana je delovanje u promenljivoj
okolini. U tom slucaju je potrebno koriscenje prilagodljivih
algoritama koji takode koriste informacije iz iskustva. Na
primer, algoritama ucenja uslovljavanjem i genetskih
algoritama.
U slucaju primera nalazenja puta izmedu dva grada, funkcija
prelaska je jednoznacno odredena putnom kartom datog
podrucja koja odreduje u kom gradu se agent moze naci
posto iz datog grada krene u odredenom pravcu.
Test cilja: Ovim testom se ustanovljava da li se doslo do
zavrsetka procesa pretrage. To moze biti test jednakosti sa
zavrsnim gradom.

5.1 Kvalitet algoritama pretrage

105

Cena akcije: Ovo je funkcija koja preslikava par stanje-akcija u


numericku vred- nost cenu preduzimanja date akcije u
datom stanju. Primer cene ak- cije je duzina puta ili cena
goriva potrebnog za prevoz izmedu susednih gradova.
Kod nekih problema se ovi elementi lako i prirodno uocavaju,
kao na datom primeru, dok je kod drugih potrebno manje ili vec
e modeliranje ili prefor- mulacija problema. U slucaju primera
upravljanja robotskom rukom bilo bi potrebno odrediti moguce ose
rotacije za razlicite zglobove i diskretizovati in- tervale u kojima se
rotacija obavlja. Na primer po 10 stepeni. Takode bi bilo potrebno
odluciti da li se pokreti razlicitim zglobovima mogu preduzimati simultano ili ne. Posle toga bi se navedeni elementi mogli lako
definisati.
Resenje problema predstavlja niz akcija koji vode od polaznog stanja
do stanja u kome je ispunjen test cilja. Svakom resenju se moze
pridruziti njegova cena kao suma cena akcija koje se preduzimaju.
Optimalno resenje je resenje sa naj- manjom cenom. Ono ne mora biti
jednoznacno definisano.
Primer 5.1 Slagalica se sastoji od 8 kvadrata rasporedenih na prostoru velicine
3x3 polja. Kvadrati su numerisani brojevima od 1 do 8. Slagalicu je potrebno tako
urediti da se u prvom redu nalazi prazno polje, a zatim kvadrati 1 i 2, u drugom
kvadrati 3, 4 i 5, a u trecem kvadrati 6, 7 i 8 sto cemo kompaktno zapisivati kao [
12345678]. Elementi ovog problema mogu biti definisani na sledeci nacin.
1.Skup stanja predstavlja skup svih kombinacija [s1s2 . . . s9] za si { , 1, 2, 3, 4, 5, 6, 7, 8}.
2.Polazno stanje moze biti bilo koje stanje slagalice. Na primer [7638 1425].
3.Skup akcija moze biti {levo, desno, gore, dole} gde se date akcije odnose
na pomeranje praznog polja levo, desno, gore i dole. Iako je naizgled
prirodnije za akcije uzeti pomeranje kvadrata susednih praznom polju na
prazno polje, sto se u stvarnosti i desava, postoji jednoznacna korespodencija
izmedu tako defin- isanih akcija i definicije koja je data, tako da se odlucujemo
za formulaciju koja je jednostavnija.
4.Funkcija prelaska presliakva stanja i akcije u stanja koja nastaju pomeranjem
praznog polja na neku od cetiri moguce strane.
5.Test cilja je test jednakosti sa stanjem [ 12345678].
6.Cena akcije je konstantna (npr. 1) posto ne postoji razlog da se neka pomeranja
smatraju skupljim od drugih. Cena resenja je u tom slucaju proporcionalna
broju pomeranja potrebnih za slaganje slagalice.
Neke od realnih primena algoritama pretrage su nalazenje
najkracih puteva, igranje igara, navigacija robota, automatsko
nalazenje redosleda sklapanja u in- dustriji, dizajn proteina sa
odredenim trazenim svojstvima, resavanje logistickih problema i
slicno.

5.1

Kvalitet algoritama pretrage

Kao i kod drugih vrsta algoritama i kod algoritama pretrage


potrebno je poz- navati njihova svojstva kako bi se lakse izvrsio
izbor pogodnog algoritma za

106

5 Resavanje problema kao pretraga

dati problem. Osnovni aspekti koji se smatraju bitnim za algoritme


pretrage su sledeci:
Kompletnost je svojstvo koje garantuje da ce algoritam naci
nekakvo resenje problema ako ono postoji. Ovo svojstvo je
ocito pozeljno, ali se u nekim slucajevima
izostavlja.
Naime, u slucaju vrlo teskih problema cesto je moguce
formulisati heuristike koje ne garantuju nalazenje resenja, ali
u visokom procentu slucajeva nalaze dobra resenja mnogo
brze nego egza- ktni algoritmi.
Optimalnost je svojstvo koje garantuje nalazenje resenja sa
najmanjom cenom. Kao i u prethodnom slucaju cesto je
moguce da se uz izostavljanje ovog uslova nadu resenja
bliska optimalnom u znacajno kracem vremenu.
Vremenska slozenost govori koliko ce vremena biti potrebno za
izvrsavanje procesa pretrage i kao koncept je prisutna i u
analizi drugih vrsta algori- tama.
Prostorna slozenost govori koliko je memorije potrebno za
izvrsavanje pre- trage. Takode, se definise i za druge vrste
algoritama.

5.2

Neinformisana i informisana pretraga

Prilikom resavanja nekog problema, moguci su razliciti stepni


poznavanja de- talja samog problema. U primeru nalazenja puta
od grada do grada, moguce je na primer:
1. potpuno nepoznavanje rastojanja izme du gradova,
2. poznvanje rastojanja samo izme du susednih gradova koja se
na primer mogu procitati sa putokaza,
3. dodatno poznavanje vazdu snih rastojanja od svih
gradova do ciljnog grada koje se moze izmeriti lenjirom na
putnoj karti,
4. ta
cno poznavanje rastojanja izmedu svih, ne nuzno
susednih gradova pri kretanju putevima koja se mogu izmeriti
na karti koriscenjem kurvime- tra.
Prema dostupnosti informacija koje mogu pomoci u nalazenju
ciljnog stanja u toku pretrage, problemi pretrage se dele na probleme
informisane i neinformisane pretrage. U skladu sa time moguce je
formulisati i algoritme koji mogu da iskoriste dostupne informacije,
pa stoga i algoritme delimo na algoritme in- formisane i
neinformisane pretrage.
U slucaju datog primera, prvi slucaj ocigledno predstavlja
problem nein- formisane pretrage. U drugom slucaju je prisutno
vise informacija o problemu, medutim ta informacija nam ne
omogucava lakse nalazenje cilja, vec samo nalazenje
najblizeg susednog grada sto ne mora ni sugerisati brze
dolazenje do cilja. Stoga i drugi slucaj predstavlja problem
neinformisane pretrage. Poz- navanje vazdusnih rastojanja izmedu
gradova se moze iskoristiti za navodenje pretrage. Na primer, pri
izboru sledeceg grada, moze se izabrati grad za koji je zbir
direktnog puta do njega i vazdusnog rastojanja izmedu njega i
ciljnog

5.2 Neinformisana i informisana pretraga

107

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


liniji izmedu izabranog grada i ciljnog grada se moze nalaziti
dugacak neproho- dan planinski venac tako da je informacija o
vazdusnom rastojanju beskorisna. Medutim, cesto se ovakvo
parcijalno znanje moze upotrebiti za ubrzavanje pre- trage. Stoga
ovaj slucaj spada u probleme informisane pretrage. U cetvrtom
slucaju je moguce uvek napraviti optimalan izbor. Za sledeci
grad treba iz- abrati onaj za koji je zbir direktnog rastojanja do
njega i najkraceg rastojanja od njega do ciljnog grada minimalan.
Ovo je ocigledno problem informisane pretrage.
U slucaju neinformisane pretrage, moguce je koristiti
standardne algoritme za pretragu u sirinu ili u dubinu, dok se u
slucaju informisane pretrage mogu napraviti specijalizovani
algoritmi u zavisnosti od vrste informacija koje su na raspolaganju.
Za problem nalavzenja najkracih puteva u grafu algoritam A*
moze na primer da iskoristi informaciju o euklidskom rastojanju
izmedu cvorova u grafu. U slucaju problema igranja saha,
egzaktan algoritam pretrage MINIMAX se moze kombinovati sa
heuristickom procenom stanja.
Na primer koriscenjem
informacije o figurama, mogucnosti mata u 3 poteza i slicno.

108

5 Resavanje problema kao pretraga

Glava 6

Pohlepna pretraga
Pohlepnim algoritmom se naziva svaki algoritam koji tezi neposrednom
povecanju vrednosti neke ciljne funkcije, odnosno algoritam koji bira
lokalno optimalne akcije. Lokalna optimalnost znaci da algoritam ne
moze da proceni dugorocni kvalitet izabranih akcija, odnosno koliko
te akcije doprinose ostvarenju konacnog cilja, vec da bira akciju koja
se na osnovu znanja dostupnog u trentuku izb- ora procenjuje kao
najbolja medu raspolozivim akcijama. Ovakvi algoritmi su cesto
znacajno jednostavniji za formulaciju od algoritama koji garantuju
opti- malnost procesa resavanja. Takode, cesto daju prakticno
prihvatjiva resenja, iako cesto ne optimalna.
Pohlepni algoritmi se mogu koristiti i za resavanje opstijih
problema od pretrage problema matematicke optimizacije. Ovi
problemi pretpostavljaju postojanje funkcije cilja i skupa dopustivih
resenja. U zavisnosti od formulacije problema, potrebno je naci
dopustivo resenje sa minimalnom ili maksimalnom vrednoscu
funkcije cilja. Takvo resenje se naziva optimalnim resenjem problema
optimizacije. Ovakvi problemi ne moraju pretpostavljati postojanje
stanja, ak- cija i drugih elemenata problema pretrage.
U
kontekstu matematicke opti- mizacije, pohlepni algoritmi se
obicno nazivaju algoritmima penjanja uzbrdo posto biraju
susedna dopustiva resenja koja imaju najvise vrednosti funkcije
cilja.
Primer 6.1 U primeru nalazenja najkracih puteva izmedu gradova, pohlepni
informisani algoritam bi mogao za suseda da bira grad za koji je zbir direktnog
rastojanja do grada
i vazdusnog rastojanja do cilja minimalan. Ovakav algoritam u svakom koraku bira
optimalnu akciju s obzirom na raspolozivo znanje u vreme izbora akcije, pa je
stoga pohlepan. U slucaju da vazdusna rastojanja nisu poznata, vec samo
rastojanja do susednih gradova, pohlepni algoritam bi uvek birao najblizi susedni
grad u nadi da ce se na taj nacin naci najkraca putanja do cilja.
Primer 6.2 Problem trgovackog putnika podrazumeva da je dat graf u kome su
ivi- cama grafa pridruzene njihove duzine. Cilj je nalaci najkracu putanju koja
kroz sve cvorove grafa prolazi tacno jednom. Pohlepni algoritam bi mogao biti
formulisan tako da u svakom koraku bira ivicu najkrace duzine. Iako je ovo
popularan pristup kon- struisanju putanja i dobro se ponasa za neke specificne
probleme, u opstem slucaju
predstavlja los pristup. C ak je dokazano da za svaki broj cvorova n, postoji instanca
problema trgovackog putnika sa n cvorova za koju ovako formulisan pohlepni
algoritam bira jedinstvenu najgoru putanju.

110

6 Pohlepna pretraga

Pohlepna pretraga se obicno ponasa dobro u slucaju


problema kod kojih kvalitet odluke u nekom stanju pretrage ne
zavisi od buducih odluka ili ako se dati problem moze
aproksimirati problemom za koji ovo vazi.
Ako nave- deno
svojstvo vazi, lokalno optimalna odluka je stvarno optimalna.
Navedeno svojstvo se moze i drugacije formulisati pohlepna
pretraga ce se ponasati dobro ukoliko se optimalno resenje
problema gradi neposredno od optimalnih resenja podproblema.
Osnovni
kvaliteti
pohlepne
pretrage
su
jednostavnost
formulisanja i sto cesto moze dati prakticno prihvatljiva
resenja. S druge strane, mane ovakvog pristupa su sledece:
Opasnost od lokalnih maksimuma: Lokalni mksimumi su tacke u
prostoru pretrage ciji susedi imaju manju vrednost funkcije
cilja od nje, ali je njena vrednost manja od vrednosti globalnog
maksimuma. Algoritmim pen- janja uzbrdo nemaju nacina da
primete da se nalaze u lokalnom maksi- mumu.
Grebeni: Grebeni predstavljaju nizove nadovezanih lokalnih
maksimuma kod kojih najstrmije penjanje uzbrdo vodi ka
jednom lokalnom maksimumu umesto u pravcu rasta niza
lokalnih maksimuma. Ovakva situacija se moze razresiti
kretanjem u stranu umesto najstrmije uzbrdo, medutim,
trenutak u kome je takvo kretanje potrebno primeniti se ne
moze lako prepoznati.
Platoi: Platoi predstavljaju oblasti prostora pretrage u kome funkcija
cilja ima konstantnu vrednost.
Zbog toga je nemoguce
odrediti koji potez je na- jbolji, a samim tim se moze desiti da
pohlepna pretraga ne nade izlaz sa platoa.
Postoje razne varijacije osnovnog penjanja uzbrdo koje
pokusavaju da se iz- bore sa navedenim problemima. Takvo je na
primer stohasticko penjanje uzbrdo koje ne bira uvek susedno stanje sa
najvecom vrednoscu, ali verovatnoca da odredeno stanje bude
izabrano je utoliko veca sto je veca njegova vrednost. Druga
varijacija je penjanje uzbrdo sa slucajnim restartovanjem kod koga se posle
nalazenja lokalnog maksimuma proces pretrage ponovo pokrec
e iz slucajno generisanog polaznog stanja. Ovaj metod omoguc
ava nalazenje globalnog mak- simuma sa verovatnocom koja se
priblizava 1 sa povecanjem broja pokusaja.

6.1

Penjanje uzbrdo u slucaju diferencijabilne


funkcije cilja

Metode pretrage i matematicke optimizacije cesto pokusavaju da


iskoriste neku zakonitost u strukturi prostora pretrage, odnosno
prostora dupustivih resenja. Tako, penjanje uzbrdo u slucaju
diferencijabilne funkcije cilja pociva na koriscenju
koncepta gradijenta. Ukoliko je data diferencijabilna funkcija cilja f : Rn
R
gradijent se definise kao vektor parcijalnih izvoda te funkcije:

f = .

,
,...,
xn
f
x2
x1

6.1 Penjanje uzbrdo u slucaju diferencijabilne funkcije cilja

111

Gradijent izracunat u odredenoj tacki A Rn predstavlja


vektor u pros- toru Rn u cijem pravcu funkcija f najstrmije raste
u okolini tacke A. Stoga se kretanjem u ovom pravcu moze doc
i do lokalnog maksimuma. Ovaj prin- cip je osnova algoritma
najstrmijeg uspona. Analogno, kretanjem u suprotnom pravcu se
dolazi do lokalnog minimuma.
Prethodne konstatacije omogucavaju skiciranje algoritma
najstrmijeg uspona: 1. n 0.
2. Izabrati polaznu ta cku x0 .
3. Izra cunati gradijent funkcije f (xn ) u trenutnoj
tacki. 4.Izvr siti kretanje u pravcu gradijenta do
sledece tacke xn+1 .
5. n n + 1.
6.Ukoliko xn nije maksimum, nastaviti od
koraka 3. 7.Vratiti xn kao resenje.
Da bi se dati algoritam u potpunosti definisao potrebno je
precizirati neke njegove korake. U koraku 2, polazna tacka se
cesto bira slucajnim izborom. Poznavanje gradijenta i kretanje u
njegovom pravcu u prkasi ipak ne garantuje nalazenje
maksimuma, tako da je u koraku 4 u zavisnosti od duzine koraka
moguce preci preko maksimuma, nastaviti dalje i time ga
promasiti. Stoga je u svakom koraku potrebno odrediti konstantu
n takvu da se umesto samog
gradijenta koristi vektor n f (xn ). Dobra aproksimacija ove konstante
je:
T
f (xn )f (xn )
n =
f (xn )H(xn )f (xn )T
pri cemu je H matrica parcijalnih izvoda drugog reda funkcije f :
. 2
.
f (x n)
H(xn) = xixj
Ocito, ova aproksimacija za n se moze koristiti samo kada su
parcijalni izvodi drugog reda funkcije definisani.
U koraku 6 se u praksi ne moze ocekivati nalazenje same
tacke lokalnog maksimuma s obzirom da se ne radi o diskretnom
prostoru. Zbog toga se pos- tupak cesto prekida u trenutku kada
razlika izmedu vrednosti dva uzastopna resenja ne prelazi neku
unapred zadatu vrednost s.
Sada se algoritam najstrmijeg uspona moze formulisati na
sledeci nacin: 1. n 0.
2. Izabrati polaznu ta cku x0 .
3. Izra cunati gradijent funkcije f (xn ) u
trenutnoj tacki. 4.izra cunati vrednost n .
5. xn+1 = xn + n f (xn ).
6. n n + 1.

112

6 Pohlepna pretraga

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


8. Vratiti xn kao resenje.
Primer 6.3 Pretpostavimo da je potrebno da se data hemijska reakcija izvrsi u sto krac
em vremenskom roku. Na brzinu hemijske reakcije uticu kolicine dva
kataliza- tora oznacene sa k1 i k2 . Poznato je da je brzina date reakcije obrnuto
proporcionalna
velicini (k1 1)2 + k24 . Stoga je potrebno naci maksimum funkcije
f (k1, k2) = (k1 1)2 k4
2
Odoka se vidi da se taj maksimum postize u tacki (1, 0), ali je primer dobar za
ilustraciju metode najstrmijeg uspona.
Za vrednost s moze se uzeti na primer broj 0.01. Gradijent f se lako
moze
izracunati:

f (k1 , k2 ) = (2k1 + 2, 4k 32)


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

Za jenta
polaznu
na primer
tacka
gradiu tojtacku
tackiseje moze
f (x0uzeti
) = (1,
0.5). Zato
je x0 = (0.5, 0.5). Vrednost
.
.
.
f (x0 ) f (x0 ) = 1 0.5 .
1
= 1.25
0.5
.
2 0 . .
.
.
.
1
T
0

0.5
= 2.75
f (x0 )H(x0 )f (x0 ) = 1 0.5
5
Otuda je vrednost koeficijenta 0 jednaka 11
0.45. Stoga, sledeca tacka u pretrazi
x1 = (0.5, 0.5) + 0.45 (1, 0.5) = (0.95, 0.275)
je

Moze se primetiti da su se vrednosti k1 i k2 priblizile odgovarajucim vrednostima u


resenju. Razlika vrednosti novog i starog resenja je
0.0025
|f (x1 ) f (x0 )| | 0.3125 (0.0082)| 0.3
sto je vece od zadatog broja s, pa se nastavlja sa sledecom iteracijom. Dalje iteracije se
izvode po istom principu.
Kako data funkcija ima samo jedan maksimum, optimalna vrednost dobijena
lokalnom otimizacijom je i globalni maksimum, pa je u ovom primeru metoda
najstrmijeg uspona adekvatna.
Kao sto je receno, problem nalazenja maksimuma u
prethodnom primeru je lak. Resenje je ocigledno i problem se lako
resava i analiticki. Medutim, ovo nije uvek slucaj. Funkcije ciji
je maksimum, odnosno minimum potrebno naci mogu biti previse
komplikovane da bi se resenje trazilo analiticki i u takvim
slucajevima je koriscenje algoritma najstrmijeg uspona vrlo
korisno. Treba imati u vidu da algoritam ne garantuje nalazenje
globalnog maksimuma.
U slucaju da funkcija ima veci broj
maksimuma, u zavisnosti od izabrane polazne tacke resenja koja
algoritam daje mogu biti razlicita i pronadeni maksimum moze
biti samo lokalni.

Glava 7

Odredivanje puteva u grafu


U mnogi problemima vestacke inteligencije potrebno je obici neki
graf ili odred- iti najkraci put izmedu dva cvora grafa.
Opsti problem nalazenja puta (eng. path finding) moze se
opisati na sledeci nacin: dat je graf svojim cvorovima i
granama izmedu nekih od njih; ovim granama pridruzene su
nenegativne cene; zadatak je naci put izmedu dva data cvora
(polazni cvor i ciljni cvor) takvu da je zbir svih cena svih grana na
stazi minimalan. Postoji nekoliko algoritama za resavanje ovog
problema [?, ?]. Oni imaju mnoge primene, ukljucujuci primene u
planiranju obilazaka i putovanja, dizajniranju cipova, rutiranju u
racunarskim mrezama, navigaciji robota, in- udstriji igara, itd.
Algoritam A* pretraga ili krace samo algoritam A* je jedan,
verovatno najpopularniji, od algoritama iz te familije.
On je
uopstenje Dejkstrinog algoritma iste namene. C esto se koriste i algoritam
Belmana i Forda, kao i algoritam Flojda i Varsala.

7.1

Obilazak grafa u dubinu i sirinu

Oblizak grafa u dubinu (eng. depth-first search DFS) i u sirinu


(eng. breadth- first search BFS) su ,,neinformisane (eng.
uninformed) metode pretrage koje ispituju sve cvorove u grafu
trazeci resenje (na primer, neki specifican cvor). Oni
sistematski pretrazuju ceo graf, bez ikakve heuristike, tj. bez
ikakvog specificnog navodenja
DFS je pretraga koja napreduje obradujuci najpre polazni cvor i
zatim nje- gove potomke i sve dok se ne naide na trazeni cvor i
sve dok je ti potomci postoje. Ukoliko vise nema potomaka koje
treba ispitati, pretraga se vraca un- azad do cvora ciji svi potomci
nisu ispitani i nastavlja dalje. U nerekurzivnoj verziji, cvorovi se
obicno cuvaju u LIFO listi. Da ne bi doslo do beskonacne petlje,
potrebno je cuvati informaciju o cvorovima koji su vec poseceni.
Slika 7.1ilustruje obilazak grafa primenom algoritma DFS.
BFS ,,otvara sve cvorove koji su susedni tekucem cvoru i
kasnije, otvara, redom, sve njihove potomke.
U traganju za
cvorom koji zadovoljava neki uslov, bice pronaden onaj na
najmanjem rastojanju od polaznog cvora. C vorovi koji se
razmatraju obicno se cuvaju u redu, tj. u FIFO listi. I u ovom
pristupu, da ne bi doslo do beskonacne petlje, potrebno je cuvati
informaciju o cvorovima koji su vec poseceni. Slika7.2ilustruje
obilazak grafa primenom algoritma BFS.

114

7 Odredivanje puteva u grafu

Figure 7.1: Primer obilaska grafa primenom algoritma DFS (oznake


cvorova ukazuju na poredak obilaska cvova)
1

Figure 7.2: Primer obilaska grafa primenom algoritma BFS (oznake


cvorova ukazuju na poredak obilaska cvova)

Prostorna slozenost pretrage DFS je manja nego pretrage BFS.


Dodatno, ona je pogodnija za usmeravanje nekom heuristikom
koja bira cvorove koji vise obecavaju. Vremenska slozenost
oba algoritma je propocinalna zbiru cvorova i
grana grafa koji se pretrazuje: (O(|V | + |E |)).

7.2

Dejkstrin algoritam

Dejksrin algoritam, koji je razvio holandski informaticar Edzger


Dejkstra 1959. go- dine je algoritam za pretragu grafa koji nalazi
najkrace puteve u grafu za neneg- ativnim cenama koje su
pridruzene granama. Algoritam se moze koristiti za odredivanje
najkraceg puta od datog polaznog cvora do datog ciljnog cvora, ali
i za odredivanje najkracih puteva od svih cvorova grafa do datog
ciljnog cvora.
Ideja Dejkstrinog algoritma moze se ilustrovati na sledeci nacin.
Pretpostavimo da je niz cvorova vezan nitima (i da cenom puta od
jednog do drugog cvora smatramo duzinu niti koja ih vezuje).
Uzmimo cvor koji je izabran za polazni
i pocnimo da podizemo celu konfiguraciju (tako da nikoje dve
niti nisu up- letene). Postepeno se cvorovi, jedan po jedan,
odvajaju od tla. Najmanje rasto- janje izmedu nekog od tih
cvorova i polaznog cvora je upravo direktno rasto-

7.3 A*

115

janje izmedu njih. Opsta ideja algoritma je slicna: postoje


cvorovi koji su vec podignuti sa tla i oni koji su jos uvek na tlu. Za
one koji su podignuti sa tla vec znamo najkrace puteve od
polaznog cvora. U svakom koraku mozemo jos jedan cvor
,,podici sa tla i izracunati njegovo najmanje rastojanje od
polaznog cvora (ramatrajuci samo one cvorove koji su mu
susedni i koji su vec iznad tla). Ukoliko na kraju ovog postupa na
tlu ostanu jos neki cvorovi, to znaci da do njih ne postoji put od
polaznog cvora.
Dejkstrin algoritam je dat na slici7.3. U algoritmu, komanda
u := izaberi\_najblizi\_cvor\_cvoru\_source($Q$)
traga za cvorom u u skupu cvorova Q (to su cvorovi koji su ,,na
tlu) takvim da je vrednost dist[u] (tekuce najmanje rastojanje od
polaznog cvora) najmanja. Taj cvor se tada brise iz skupa Q.
Ukoliko je to ciljni cvor, onda se konstruise trazeni put od
polaznog cvora (koristeci informaciju o roditeljskim cvorovima).
Inace, za svaki cvor v iz Q koji je susedan cvoru u proverava se
da li se (preko
u) moze popraviti tekuce najmanje rastojanje od polaznog cvora
i, ako moze, cvor u se postavlja za roditelja cvora v.
Primer 7.1 Sledeca tabela prikazuje efekat primene Dejkstrinog algoritma na graf
ilus- trovan na slici7.4: cvor A je polazni, a cvor F ciljni cvor.
korak

1
2
3
4
5
6

3
3
3
3
3

2
2
2
2
2

6
6
6
5
5

4
3
3
3
3

8
7
6

cvor
u
A
C
B
E
D
F

U najjednostavnijoj implementaciji Dejkstrinog algoritma, skup Q


se im- plementira kao obicna povezana lista ili niz. Slozenost
takve implementacije je
O(
|Vretke
|2 + |Egrafove
|) = O(|V (koji
|2 ), gde
je |E
| broj grana,
|V | broj
grafa.
Za
imaju
mnogo
manje agrana
odcvorova
|V |2 ), Dejkstrin
algoritam
se moze
1
implementirati
efikasnije.tekuceg
Na primer,
varijanta
koja ima
koristi
binarni
min-hip
odredivanje
najblizeg
cvora
slozenost
O((|E | + |Vza
|) log
|V |).

7.3

A*

Algoritam A* za odredivanje najkraceg puta izmedu dva cvora


grafa je jedan od fundamentalnih i najpopularnijih algoritama
vestacke inteligencije. Zas- novan je na koriscenju heuristika,
ali ipak ima dobra svojstva kao sto su pot- punost i optimalnost.
Prvu verziju algoritma A* su razvili Har, Nilsson i Raphael 1968.
godine [?], a u narednim godinama uvedeno je nekoliko
unapredenja [?, ?].
Koriscenje algoritma A* nije uvek jednostavno. C esto je
algoritam potrebno prilagoditi specificnom problemu a uvek je, u
kontekstu aplikacija koje rade u
realnom vremenu, vazno imati u vidu vremensku slozenost, prostornu
slozenost,
1
Min-hip je specificna stablolika struktura koja zadovoljava hip-svojstvo: ako je
B potomak cvora A, onda je vrednost pridruzena cvoru A manja od vrednosti
pridruzene cvoru B. U skladu sa tim, najmanji element je uvek koren stabla. Maxhip se definise analogno.

116

7 Odredivanje puteva u grafu

Algoritam: Dejkstrin algoritam


Ulaz: Graf tt, polazni cvor source i ciljni cvor target
Izlaz: najkraci put od cvora source do cvora target u grafu tt
(ako postoji put izmeu ova dva cvora
1. Za svaki cvor v grafa tt:

rastojanje[v] :=
prethodni[v] := nedefinisano
2. rastojanje[source] := 0
3.Q := tt
4. Dok skup Q nije prazan:

u := izaberi najblizi cvor cvoru source(Q)


Obrisi u iz Q
Ako je (u = target)
konstruisi put S na sledeci nacin i prijavi uspeh
S := prazan niz
u := target
Dok god je definisano prethodni[u]
dodaj u na pocetak S
u := prethodni[u]
Za svaki sused v cvora u takav da v koji pripada Q:
alt := rastojanje[u] + cena(u, v)
Ako je alt < dist[v]
rastojanje[v] := alt

prethodni[v] := u
5. prijavi neuspeh
Figure 7.3: Dejkstrin algoritam

upravljanje memorijom i razlicite dodatne faktore. Neka od


dodatnih svojstava algoritma zahtevaju dodatno matematicko
znanje i izracunavanja, specificne implementacione tehnike i
strukture. Svi ti moduli treba da budu uklopljeni u kompaktan i
efikasan sistem za nalazenje puta. Postoji mnogo varijanti algoritma A* prilagodenih specificnim problemima [?].
Algoritam A* je uopstenje Dejkstrinog algoritma i obicno
smanjuje broj cvorova grafa koje treba ispitati. To smanjivanje je
zasnovano na koriscenju 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 odrzavaju lista otvorenih cvorova
cvorova koji su vec poseceni ali nisu obradeni svi njihovi susedi
i zatvorenih cvorova cvorova koji su poseceni i kojima su
obradeni svi njihovi susedi.

7.3 A*

117
3

25
6
C4D5
2
11

Figure 7.4: Primer primene Dejkstrinog algoritma

Kljucna razlika je u tome sto Dejkstrin algoritam (kao


,,neinformisani algori- tam) uzima u obzir samo cenu od polaznog
do tekuceg cvora, dok A* (kao
,,informisani algoritam) koristi funkciju evaluacije f nad
cvorovima grafa, definisanu na sledeci nacin:
f (n) = g(n) + h(n),
gde je g(n) cena puta od polaznog cvora do cvora n, a h(n) je procenjena
(heuristicka) cena najjeftinijeg puta od cvora n do ciljnog cvora. Dok
tragamo za najkracim putem, uvek znamo tekucu minimalnu cenu
od polaznog cvora do cvora n
(tj. tekucu vrednost za g(n)), ali se vrednost h(n) moze samo
procenjivati. Da bi se obezbedila optimalnost A* pretrage, funkcija
h mora da bude konzistentna (eng. consistent), tj. da za bilo koja dva
susedna cvora u i v vazi:
h(u) c(u, v) + h(v)
gde je c(u, v) cena pridruzena grani (u, v). U nekim specijalnim
slucajevima dovoljno je da funkcija h bude dopustiva (eng.
admissible), tj. da nikada ne pre- cenjuje cenu stizanja do cilja.
Svojstvo konzistentnosti ima za posledicu svo- jstvo dopustivosti.
Dodatno, dopustive funkcije su cesto i konzistentne.
Opis algoritma A* dat je na slici7.5.
Sa ravnomernom pretragom (sa funkcijom h = 0), skup otvorenih
cvorova ce se siriti ravnomerno, u ,,koncentricnim krugovima
oko polaznog cvora. S druge strane, sa preciznijom heuristikom,
skup otvorenih cvorova ce se siriti ka ciljnom cvoru i bice bolje
usmerena kao optimalnom putu.

7.3.1 Primer upotrebe algoritma A*


U sledecem grafu zadatak je naci najkraci put od A do E. Pored
cvorova grafa zapisane su procenjene duzine puta do cvora E, tj.
vrednosti funkcije h.

118

7 Odredivanje puteva u grafu

Algoritam: Algoritam A*
Ulaz: Graf tt, polazni cvor source i ciljni cvor target
Izlaz: najkraci put od cvora source do cvora target u grafu tt
(ako postoji put izmeu ova dva cvora
1.

Inicijalno je zatvorena lista prazna.

2.
Dodaj polazni cvor (zajedno sa procenjenom cenom
do ciljnog cvora, koja je odreena funkcijom h) u
otvorenu listu cvorova koje je potrebno razmotriti.
3.

Izvrsavaj sledecu petlju dok god ima elemenata u otvorenoj listi:

Izaberi cvor n (zvacemo ga tekuci cvor) iz otvorene


liste koji ima najmanju vrednost f (n).
Ako je tekuci cvor ciljni cvor, izvesti o uspehu,
konstruisi put od polaznog do ciljnog cvora (iduci
unazad od ciljnog cvora) i zaustavi izvrsavanje
petlje.
Ispitaj sve cvorove koji su direktno dostupni iz tekuceg
cvora i pri tome ne pripadaju zatvorenoj listi. Za svaki
takav cvor m uradi sledece:
Ako on nije u otvorenoj listi, dodaj ga u otvorenu
listu. Oznaci tekuci cvor kao roditelja ovog
cvora (sto je vazno za konstruisanje staze na
kraju). Izracunaj i zapamti vred- nosti f (m), g(m)
i h(m) za cvor. (Primetimo da se vred- nosti g(m)
mogu izracunati na inkrementalan i efikasan
nacin: vrednost g(m) jednaka je zbiru vrednosti
funkcije g za roditelj cvora m i ceni puta od
roditelja do m.)
Ako je on vec u otvorenoj listi, proveri da li je
odgovarajuci put od polaznog cvora do m bolji
od tekuceg puta (preko
cvora n). Za tu proveru koristi se vrednost g(m).
Manja vrednost g znaci da je taj put bolji. Ako je
tekuci put bolji, promeni informaciju o roditelju
cvora m na cvor n i azuriraj vrednosti g(m) i f
(m).

Izbrisi tekuci cvor iz otvorene liste i dodaj ga u zatvorenu listu


cvorova (on ne treba da ponovo bude ispitivan).
4.
Na kraju, ako je petlja zavrsena a da nije
prijavljen uspeh (tada je otvorena lista prazna), onda ne
postoji trazeni put. Inace, put je pronaen i on se
konstruise od dete-roditelj veza (iduci unazad od ciljnog
cvora).
5

Figure
Att 7.5: Algoritam A*

66
64

54
4
C

32
DH

B
5
F

2
E

7.3 A*

119

Sledeca tabela ilustruje primenu algoritma A*.


tekuc
i
cvor
A
D
G
F
B
H
E

stanje otvorene lista


[cvor(roditelj,g+h)]

cvor(roditelj)
dodaje
se u zatvorenu

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

A(-)
D(A)
G(A)
F(D)
B(F)
H(D)
E(B)

Na kraju primene algoritma, kada je cvor E postao tekuci


cvor, konstruise se trazeni put (koristeci informacije o
roditeljma za cvorove iz zatvorene liste:
A
D F moguci:
B E. naime,
Ovo jeste
putjeodsledeci
cvora put:
A doAcvora
nije
najkraci
kraci
D H E,
Bali
E.
Ovaj problem
je nastao
zbog toga sto korisena funkcija h nije konzistentna (iako jeste
dopustiva): vazi
h(H) > 2 + h(B).
Ukoliko se za isti zadatak koristi konzistenta funkcija, rezultat ce
biti opti- malan, najkraci moguci put od A do E. U narednom
primeru se koristi funkcija h cija se vrednost razlikuje u odnosu na
prethodnu samo za cvor H.
5
Att

66
64

53
4

32
DH

B
5

6
tekuc
i
cvor
A
D
G
H
B
F
E

stanje otvorene lista


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

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

7.3.2 Specijalni slucajevi


Obilasci grafa u dubinu i sirinu mogu se smatrati specijalnim
slucajevima al- goritma A*.

120

7 Odredivanje puteva u grafu

Za obilazak grafa u dubinu, moze se koristiti algoritam A*


sa g = 0 i pogodno odabranom funkcijom h. Na primer, neka je
brojac C inicijalizovan na neku veoma veliku vrednost. Kad god
obradujemo neki cvor dodajemo vred- nost C svim njegovim
susedima. Nakon svake dodele smanjujemo vrednost C za jedan.
Time ce vrednost h(x) da bude veca za cvorove na koje se
ranije naislo. Primetimo da ovako definisana funkcija h nije nuzno
dopustiva.
Dejkstrin algoritam, kao specijalni slucaj obilaska grafa u
sirinu takode je specijalni slucaj algoritma A* gde je h(x) = 0 za
svaki cvor x. Ovakva funkcija h je dopustiva i konzistentna i
garantuje nalazenje optimalnog puta.
Za g = 0, algoritam A* ponasa se u skladu sa najprenajboljim, pohlep- nim pristupom koji najpre obraduje cvorove sa
najpovoljnijom heursitickom vrednoscu. Ova varijanta algoritma
nije nuzno optimalna.
Opsti algoritam A* cesto se primenjuje za nalazenje puta
na uniformnoj mrezi cvorova (koja odgovara, na primer,
diskretizovanoj mapi). Tada on do- bija specificnu formu.
Pretpostavimo da je mreza pravilna (sacinjena od kvadrata) i da ima
pravougaonu formu. Dodatno, pretpostavljamo da neki cvorovi (tj.
neki kvadrati, neka polja mreze) nisu dostupni i da oni predstavljaju
prepreke. Svako polje je povezano sa svakim susednim poljem (osim sa
preprekama), te ima (izuzev polja na rubu) osam susednih polja (ali
neka od njih mogu biti prepreke
i kao takve nedostupne). U ovoj varijanti problema, cene su
pridruzene cvorovima (poljima), a ne granama grafa (vezama
izmedu susednih cvorova). U ovom kontekstu, funkcija g(n) je zbir
svih cena polja duz puta od polaznog do polja
n.
Na primer,
svakom ,,horizontalnom ili ,,vertikalnom pokretu
moze
se
pridruziti cena 1 a svakom dijagonalnom cena 1.414

2 (ovakva

cena odgovara euklidskom rastojanju izmedu sredista polja). Funkcija h


moze se opisati na razlicite nacine. Jedan od njih je euklidsko
rastojanje izmedu dva cvora, a jedan metod Menhetn u kojem se broji
ukupan broj polja predenih horizontalno ili vertikalno da bi se doslo
od polaznog polja do tekuceg polja2 . Primetimo da ukoliko su
dozvoljeni dijagonalni potezi, onda Menhetn metod potencijalno
precenjuje rastojanje do ciljnog cvora i zbog toga ne garantuje
nalazenje na- jkraceg puta. No, ovaj metod u praksi obicno
daje dobre rezultate i nadeni putevi su obicno dovoljno dobri,
cak i ako nisu najkraci. Kada se odreduje vrednost h, mogu da
se ignorisu sve prepreke jer vrednost h(n) je procenjeno a ne
stvarno rastojanje.
Kada se algoritam A* primenjuje za nalazenje puta na
uniformnoj mrezi, on daje korake u osam mogucih smerova sto
kasnije cesto dovodi do neprirod- nih puteva sacinjenih od
segmenata sa jednim od osam nagiba.
Omeksavanje (eng.
smoothing) je tehnika za unapredivanje takvih puteva tako da oni
iz- gledaju prirodnije.

7.3.3 Primer upotrebe algoritma A* na uniformnoj mrezi


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

7.3 A*

121

vrednosti funkcija g i h. Polazni cvor oznacen je zelenom, a ciljni


crvenom bo- jom. Otvorena polja su oznacena tankim zelenim
kvadratima, a zatvorena de- bljim crvenim kvadratima u okviru
polja. Strelice ukazuju na tekuceg roditelja polja.
Postupak je isti kao kod opsteg algoritma: u svakoj iteraciji
bira se polje iz otvorene liste sa najmanjom vrednoscu funkcije f .
To, tekuce polje izbacu- jemo iz otvorene liste i dodajemo u
zatvorenu listu. Proveravamo sve susedna polja, ne razmatrajuci
polja koja su u zatvorenoj listi ili nisu dostupna. Ako susedno polje
nije vec u otvorenoj listi, izracunavamo vrednosti funkcija g, h i f
za njega i oznacavamo da je tekuce polje njegov roditelj. Ako je
susedno polje vec u otvorenoj listi, proveravamo da li je put preko
tekuceg polja bolji, tj. proveravamo da li je vrednost funkcije g za
to susedno polje manja ako se do njega dolazi preko tekuceg
polja. Ukoliko to nije tacno, ne preduzima se nista, a ako jeste
tekuce polje postaje novi roditelj tog susegnog polja i njemu se
pridruzuju nove vrednosti g i f .
Pretraga krece od polaznog polja jer je na pocetku samo ono u
otvorenoj listi. U poljima levo, desno, gore i dole od polaznog polja,
vrednost funkcije g je 10. U dijagonalnim poljima vrednost funkcije g
je 14. Ove vrednosti odgo- varaju pribliznom euklidskom rastojanju
(pomnozenom sa 10 i zaokruzenom). Vrednosti funkcije h se
izracunavaju na osnovu Menhetn rastojanja (pomnozenog sa 10) do
ciljnog polja i zanemarujuci prepreku.

f
g

h
74

60

54

14 60 10 50 14 40
60

40

10 50
74

10 30
60

54

14 60 10 50 14 40

Polazno polje brise se iz otvorene liste i dodaje u zatvorenu listu.


U otvorenoj listi je samo njegovih osam susednih polja. Od svih njih,
bira se ono sa najman- jom vrednoscu funkcije f (40), to je polje
neposredno desno od polaznog polja i ono ce biti sledece tekuce
polje.

122

7 Odredivanje puteva u grafu

74

60

54

14 60 10 50 14 40
40
10 30

60
10

50

60
54
14 60 10 50 14 40
74

To polje izbacujemo iz otvorene liste, dodajemo ga u zatvorenu


listu i onda proveravamo njegova susedna polja (naravno, samo ona
koja nisu u zatvorenoj listi i nisu prepreke). Preostala cetiri polja su
vec u otvorenoj listi, pa je potrebno proveriti da li put preko tekuc
eg cvora popravlja njihove trenutne ocene. Raz- motrimo, na
primer, polje neposredno iznad tekuceg polja: vrednost funkcije g
za njega je 14.
Ukoliko bi se do njega dolazilo preko tekuceg
polja, vred- nost funkcije g bila bi 20 (10 je cena od polaznog do
tekuceg cvora i 10 je cena prelaska od tekuceg polja). Dakle, na
ovaj nacin se ne moze popraviti vrednost funkcije g u polju iznad i
ona ostaje nepromenjena.
Opisani postupak sprovodimo za sva cetiri susegna polja i, u ovom
slucaju, utvrdujemo da ocena nijegnog ne moze da se popravi.
Time je obrada tekuceg polja zavrsena i trazimo novo tekuce
polje. Od preostalih sedam polja u otvorenoj listi biramo ono sa
najmanjom vrednoscu funkcije f . Ukoliko postoji vise takvih
svejedno je koji izabrati. Neka je, na primer, izabrano polje
neposredno ispod prethodnog tekuceg polja.

74

60

54

14 60 10 50 14 40
40
10 30

60
10

50

60
54
14 60 10 50 14 40
74

74
28 60 24 50
88

Za tekuce polje nece se razmatrati susedna polja koja su u


zatvorenoj listi i koja su nedostupna (tj. prepreke). No, moze se
(iako to nije nuzno i zavisi od konkretne primene) zabraniti
ispitivanje polja koje je desno-dole od tekuceg polja. Naime,
moze se smatrati da je dijagonalni potez od tekuceg do tog polja
nemoguc zbog prepreke koja se nalazi desno od tekuceg polja.

7.3 A*

123

Ukoliko prihvatimo takvo ogranicenje, ostaje jos tri


susednih polja koja treba razmotriti. Dva polja ispod tekuceg
polja nisu u otvorenoj listi, pa ih dodajemo zajedno sa
izracunatim vrednostima funkcija i informacijom da im je roditelj
tekuce polje. Za polje levo od tekuceg polja se proverava da li
se moze smanjiti vrednost funkcije g (odgovor je ne) i time je
zavrsena obrada tekuceg polja.
Opisani postupak se nastavlja dok ciljno polje ne postane
tekuce.
108

94

80

74

28 80 24 70 20 60 24 50
94

74

60

54

24 70 14 60 10 50 14 40
80

60

20 60 10 50
94

74

60

40

82

10 30

72 10 68 0

72 10

54

74

88

94

80

74

68

82

54 20 58 10 68 20

24 70 14 60 10 50 14 40
108

68

74

74

74

102

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

94

88

88

88

38 70 34 60 38 50 48 40 58 30

Primetimo da su se, nakon nekoliko iteracija, vrednosti


funkcija g i f , kao i roditeljsko polje promenili za polje dva polja
ispod polaznog polja. Ranije je ovo polje imalo vrednost funkcije
g jednaku 28 (i vrednost funkcije f jednaku
88) i roditeljsko polje je bilo gore-desno. Kasnije, ovo isto polje ima
vrednost funkcije g jednaku 20 (i vrednost funkcije f jednaku 80), a
roditeljsko polje je gore. Ova izmena dogodila se u nekoj iteraciji u
meduvremenu. U ovom slucaju ona ne utice na pronadeni put,
ali su ovakve izmene u opstem slucaju veoma ceste i uticu na
konacno resenje.
Kada se tokom pretrage ciljno polje postane tekuce,
trazeni put od po- laznog cvora se konstruise jednostavno.
Krece se od ciljnog cvora i prelazi na roditeljski sve dok se ne
dode do polaznog cvora. Ovako odreden niz polja u suporotnom
poretku daje trazeni put od polaznog do ciljnog polja.
108

94

80

74

28 80 24 70 20 60 24 50
94

74

60

54

24 70 14 60 10 50 14 40
80

60

20 60 10 50
94

74

60

40

82

10 30

72 10 68 0

72 10

54

74

88

94

80

74

68

82

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

124

7 Odredivanje puteva u grafu

7.3.4 Svojstva algoritma A*


Moze se dokazati da je algoritam A* potpun i da je, pod odredenim
uslovima optimalan [?]:
Potpunost: Ako postoji put izmedu dva cvor, algoritam A* ce naci
jedan takav (naravno, ukoliko je raspolozivo dovoljno vreme i
memorijski prostor). C ak i ako je heuristicka funkcija veoma
losa, ciljni cvor ce biti dostignut u konacnom broju koraka.
Optimalnost: Od svih puteva izmedu dva data cvora, bice
izabran najkraci put, ukoliko je funkcija heuristike h
konzistentna. Ukoliko funkcija h nije dopustiva, ali ne precenjuje
stvarno cenu za vise od d, onda je cena puta koji ce pronaci
algoritam A* skuplji od najkraceg za ne vise od d.
Ukoliko se ne koristi lista zatvorenih cvorova (tj. ukoliko se
razmatraju i susedni cvorovi koji su vec bili tekuci), da bi
algoritam bio optimalan do- voljno je da funkcije h bude
dopustiva (nije neophodno da bude konzis- tentna).
Ukoliko se koristi nad stablima, da bi algoritam bio optimalan
dovoljno je da funkcije h bude nenegativna i dopustiva.
Ukolikosve
funkcija
f odgovara
optimalnom
algoritam
A*n
obraduje
za koje vazi
f (n) < putu,
f (n);onda
i neke
cvorove
za koje vazi
fcvorove
(n) = f(n).
Vremenska slozenost algoritma A* zavisi od heuristike. U
najgorem slucaju, broj obradenih cvorova je eksponencijalan u
odnosu na duzinu najkraceg puta, ali je polinomijalan ako funkcija
heuristike h zadovoljava sledeci uslov:
|h(x) h (x)| O(log h (x))
gde je h optimalna heuristika, tj. funkcija koja vraca tacnu cenu
puta od cvora x do ciljnog cvora. Drugim recima, greska
funkcije h ne treba da raste brze od logaritma idealne heuristike.
Prethodna dva tvrdenja sugerisu da algoritam A* najbolje
performanse (na- jmanji broj obradenih cvorova) daje kada je
funkcija heuristike bliska ideal- noj funkciji heuristike. S druge
strane, optimalnost je garantovana samo ako funkcija heuristike
nikada ne precenjuje stvarnu cenu puta. Zajedno, to govori da
dobra funkcija heuristke mora da bude veoma pazljivo
konstruisana, tako da bude sto bliza idealnoj funkciji, ali da je
nikada ne premasuje.
Za vise detalja o svojstvima algoritma A* videti, na primer,
[?].

7.3.5 Implementaciona pitanja


Algoritam A* se obicno primenjuje u aplikacijama koje rade u
realnom vre- menu, te je neohodno da je efikasno implementiran
(koriscenjem pogodnih struktura podataka, efikasnim upravljanjem
memorijom, izbegavanjem mnozenja i drugih skupih operacija itd.)
U ovom poglavlju ukratko cemo prokomen- tarisati nekoliko
nacina koji popravljaju efikasnost implementacije algoritma A*.
Otvorena lista se cesto implementira kao binarni min-hip (kako
bi se brzo dolazilo do elementa sa najmanjom vrednoscu funkcije
f ), a zatvorena lista kao

7.3 A*

125

hes tabela4 . Koriscenjem ovih fukcija operacije za dodavanje u i


brisanje ele- menata iz otvorene liste zahteva vreme O(log V ), gde je
V broj cvorova grafa, a dodavanje cvora u zatvorenu listu i
proveravanje da li je vec u zatvorenoj listi zahteva vreme O(1).
Zahtevi za memorijskim prostorom su za algoritam A* cesto jos
veci prob- lem nego vremenska slozenost. Ipak, ukoliko broj
cvora grafa nije preveliki, moze da bude isplativo i staticko
alociranje potrebnog prostora (ili dinamicko alociranje
vecih
blokova) koji onda moze da se koristi u savezu sa min-hip
strukturom, kako bi se izbegle ceste i skupe operacije dinamickog
alociranje (i
dealociranje)
pojedinacne cvorove. Dodatno, ako se algoritam
primenjuje
za za
nalazenje
ako se staticki
rezerviseputa na uniformnoj mapi dimenzija M M i
prostor za svaki cvor, pristupanje cvorovima je brze ako je M oblika 2m .
Potrebno je eliminisati racun sa decimalnim brojevima i koristiti
samo celo- brojnu aritmetiku. Ukoliko cene imaju decimelne vrednosti
(npr. 1.414) potrebno ih je pomnoziti sa, na primer, 1000 i koristiti
samo zaokruzene vrednosti.
Najgori slucaj za algoritam A* je kada ne postoji put izmedu
polaznog i ciljnog cvora.
U tu svrhu moze se implementirati
brza provera da li uopste postoji put izmedu dva cvora: dva
cvora su povezana ako i samo ako pripadaju povezanim delovima
grafa. Ako se za svaki cvor moze lako proveriti kom delu grafa
pripada, onda je i navedena provera jednostavna.
Algoritam A* cesto se koristi kao komponenta sirih sistema koji
treba da rade u realnom vremenu. Zbog toga je obicno potrebno
implementirati tako da se na zahteva izvrsavanje u jednom
neprekinutom vremenskom periodu, vec u vremenskim intervalima
izmedu kojih se izvrsavaju druge komponente sistema. Ovakav
pristup se cesto zove deljenje vremena na kriske (eng. time slic- ing).

4
Hes tabela je struktura podataka koja povezuje vrednosti i kljuceve. Ona
omogucava efikasno nalazenje vrednosti na osnovu kljuca.
To se postize
preslikavanjem kljuca hes funkcijom u hes vrednost koja sluzi kao indeks niza na
kojem se nalazi odgovarajuca vrednost.

126

7 Odredivanje puteva u grafu

Glava 8

Programiranje logickih igara


Programiranje logickih igara jedan je od klasicnih problema
vestacke inteligen- cije i verovatno jedan od najatraktivnijih. Kako
logicke igre zahtevaju odlucivanje koje se moze smatrati
inteligentnim, ova problematika je predmet intereso- vanja mnogih
istrazivaca u oblasti vestacke inteligencije (i ne samo njih).
Mozda su zbog toga neki od najvecih dometa vestacke
inteligencije upravo u ovom domenu: racunari su vec pobedili
svetske sampione u igrama bekgemon i dame, a nedavno je u
brzopoteznoj igri sa racunarom, partiju saha izgubio i svetski
sampion Gari Kasparov. Uprkos tim dometima, jos uvek treba
zadrzati oprez prema programima za logicke igre, jer njihovi principi
odlucivanja kval- itativno (po pitanjima apstrahovanja, analogija,
pravljenja planova i sl.) jos uvek nisu dovoljno blizu ljudskim.
Mogucnosti resavanja ovih problema i primene tih tehnika u
drugim domenima upravo i motivisu dalja istrazivanja vestacke
inteligencije u ovom pravcu.
U ovoj glavi bice reci o razvoju strategija za automatsko
igranje logickih igara, a zatim i o samim strategijama. Nece biti
upustanja u teorijske analize pojedinacnih igara, vec ce biti
opisani opsti pojmovi i algoritmi koji mogu da se koriste za sirok
spektar igara. Razmatracemo algoritme za igre dva igraca bez
nepoznate informacije, dakle igre kod kojih svaki igrac zna koje
poteze na raspolaganju ima protivnik (u ovu kategoriju ne spadaju,
na primer, igre u kojima igrac ne zna karte koje ima protivnik,
nepoznati broj koji treba pogoditi itd).
Za oznake u sahu, koji ce biti jedna od igara najcesce
uzimanih za primer, prihvaticemo engleske oznake. Tako cemo
kralja oznacavati sa K (King), kraljicu sa Q (Queen), topa sa R
(Rook), lovca sa B (Bishop), konja sa N (Knight) i pesaka sa P
(Pawn). Shodno tome oznacavacemo i sahovske zavrsnice (npr.
zavrsnicu kralj i kraljica protiv kralja i topa oznacavacemo sa
KQKR).

8.1

Razvoj automatskog igranja logickih igara i


os- novni koncepti

Istorija automatskog igranja logickih igara pocinje u devetnaestom


veku: spanski pronalazac Tores Kevedo (Torres y Quevedo)
konstruisao je 1890. godine (i prikazao 1900. na svetskoj izlozbi u
Parizu) elektro-mehanicki uredaj koji je

128

8 Programiranje logickih igara

igrao sahovsku zavrsnicu KRK.


Opsta teorijska razmatranja zapoceo je Von Nojman (Von
Neuman) postav- ljanjem opsteg problema (1928): Igraci S1 , S2 , . . .
, Sn igraju datu igru . Kako treba da igra igrac Sm da bi ostvario najbolji
moguci rezultat? Odgovor na ovako
postavljeno pitanje tesko je dati za vecinu igara. Naravno, nije bilo
tesko naslu- titi da je za puno igara, cak i ako on postoji, tesko ili
gotovo nemoguce efek- tivno realizovati optimalni algoritam za
proizvoljnu poziciju. U svakom slucaju, ova problematika postala
je predmet interesovanja mnogih matematicara i, posebno,
matematicke discipline teorija igara.
Moderna istorija programiranja igara pocinje klasicnim
tekstom Program- ming a digital computer for playing Chess (Philosophical
Magazine, 41) koji je 1950. godine objavio Klod S enon (Claude
Shannon). U tom tekstu S enon je opisao dve opste strategije za
izbor poteza: strategije A i B tipa (danas cesto oznacavane kao
S enonova A i B strategija):
A: Minimaks procedurom vrsi se pretrazivanje stabla igre sa
odredenom vrednosnom funkcijom i ocenjivanje legalnih
poteza; bira se potez sa na- jboljom ocenom (videti
poglavlje8.4.3).
B: Potez se bira na osnovu trenutne pozijice/situacije u igri i na
osnovu odgovarajuce, unapred pripremljene tabele.
Koncept zasnovan na S enonovoj A strategiji naziva se i
gledanje unapred ili gledanje u dubinu (eng. lookahead) pristupom, a
ponegde i ,,sistematskim pretrazivanjem, ,,dubinskim
pretrazivanje ili ,,najpre najdublji. Ako bi se koriscenjem ove
strategije, minimaks algoritmom, pretrazivanje stabla igre vrsilo do
zavrsnih stanja igre, ispitivanjem svih mogucih tokova partije zaista
bi bio izabran najbolji legalan potez i taj izbor bi imao savrseno
obrazlozenje u samom primenjenom algoritmu. Medutim, za vecinu
igara nije prakticno moguce pretraziti kompletno stablo C ak i pretrazivanje stabla igre do dubine
igre.
od
svega nekoliko poteza u igrama sa prosecno deset ili dvadeset
legalnih poteza, zahteva ispitivanje miliona pozicija. Zbog toga,
efikasna primena S enonove A strategije svodi se na
pretrazivanje stabla igre do relativno male dubine algoritmima
koji su ubrzani heuristikama1 (umesto najjednostavnijim mini- maks
algoritmom) i uz dobro osmisljenu, ali jednostavnu funkciju
evaluacije za ocenu nezavrsnih pozicija igre (umesto jednostavne
,,trovrednosne funkcije za ocenu zavrsnih pozicija). Ovakvim
pristupom gubi se svojstvo po kome se pretrazivanjem dobija
zaista najbolji potez, a obim pretrazivanja i razlicitih
izracunavanja ostaje, najcesce, i dalje veoma velik. Opisani
koncept cesto se naziva konceptom ,,gruba sila plus jednostavna
vrednosna funkcija (eng. brute- force method plus simple evaluation
function). Precizni opisi funkcije evalu- acije, algoritama minimaks i
srodnih dati su u poglavlju8.4.
S enonovoj strategiji B tipa odgovara koncept koji zovemo
gledanje uvis ili
mozda adekvatnije trenutni pogled (eng. lookup). Ovaj pristup
zahteva pos- tojanje unapred pripremljene tabele sa dve kolone: u
jednoj su moguce pozi- cije/situacije igre, a u drugoj optimalni potezi.
Jedna od ,,klasicnih implemetacija

1
Heuristike su (aproksimativne) metode za usmeravanje i suzavanje pretrage
u problem- atici gde se javlja kombinatorna eksplozija. Kvalitet i mogucnosti
njihove primene zavise od specificnosti domena i njegove neprekidnosti (malim
promenama problema treba da odgovaraju male promene resenja).

8.2 Legalni potezi i stablo igre

129

ovog pristupa je program za igranje sahovske zavrsnice


KQKR koji je 1977. godine napravio Kenet Tompson (Kenneth
Thompson, Bell Telephone Labora- tories), poznat kao tvorac
operativnog sistema UNIX). Tabela koju je koristio program
sadrzavala je sve moguce pozicije za oba igraca i optimalne
poteze za sve te pozicije (pri cemu se pod optimalnim potezom za
jaceg igraca (koji ima kralja i kraljicu) smatra potez koji vodi
pobedi u najmanjem broju poteza, a za slabijeg, potez koji
maksimalno odlaze poraz). Tabela je imala oko tri miliona vrsta i
program koji se na njoj zasnivao bio je, i u pozicijama koje su
teorijski izgubljene, prakticno nepobediv cak i za vrhunske
sahiste. U ovoj strategiji, znanje o igri (u ovom primeru, o sahu)
ne nalazi se niti u samom programu koji igra, niti u tabeli, vec u
programu koji je tabelu generisao. Opisani pristup zahteva, pored
adekvatne procedure za generisanje lookup tabele i veliku mem- oriju
(za smestanje svih mogucih pozicija), ali u samom procesu igre
program zahteva
najcesce
jako
malo
vremena
za
pronalazenje odgovarajuceg poteza.
S enonova B strategija moze se primenjivati i u modifikonvanim
varijantama
po kojima se, na primer, ne bi prepoznavale sve moguce pozicije,
vec citave klase pozicija i na slican nacin nalazili optimalni
potezi.
Uporedujuci S enonove strategije A i B (odnosno pristupe
lookahead i lookup) vidimo da prva u samom procesu izbora poteza
zahteva malo memorije i mnogo izracunavanja (deep mentality), a
druga, obrnuto, malo izracunavanja (shallow mentality) i mnogo
memorije. Na toj skali odnosa kolicine podataka koji se koriste i
obima izracunavanja, covekov nacin zakljucivanja je izmedu ovih
kra- jnosti, a najcesce se bitno razlikuje i po svojoj prirodi. Upravo
priroda covekovog nacina razmisljanja i zelja da se on oponasa,
vodi ka novim pristupima u for- malizaciji igara i njihovom
programiranju. Neki od njih su koncept skupovi pozicija kao klase
ekvivalencije i koncept advice texts (tekstovi saveta). Po ovom kon- ceptu, za
odredenu klasu problema (odnosno klasu pozicija u igri) formulisu
se pravila (odnosno saveti) koja treba slediti i to obliku resenja
(jednostavni- jih) potproblema. Takav nacin reprezentacije znanja o
problemu i o nacinima njegovog resavanja moze biti jako blizak
ljudskom i pripadati onom segmentu skale obim izracunavanja
kolicina koriscene memorije koji odgovara coveku.
U nastavku teksta, za izbor poteza u otvaranjima razmatrace
se strategije koje su u osnovi S enonovog tipa B tipa, za
sredisnicu strategije S enonovog tipa A i za zavrsnicu pristupe
tipa skupovi pozicija kao klase ekvivalencije ili advice texts.

8.2

Legalni potezi i stablo igre

Legalne poteze definisu pravila igre. Naglasimo da pravimo razliku


izmedu ter- mina moguci potezi i legalni potezi: mogucim potezima
nazivamo one koji su legalni u bar jednoj regularnoj poziciji igre.
Pretpostavka je da se u svakom trenutku igre moze
jednoznacno odred- iti skup legalnih poteza. Dodatno, pozeljno
je da postoji (ciklicno) uredenje poteza, pa se za svaki legalan
potez moze jednoznacno odrediti sledeci legalan potez.
Stablo igre je stablo u kojem cvorovima odgovaraju regularne
pozicije u igri (u skladu sa pravilima date igre), a granama legalni
potezi (u smislu date igre). C vor x stabla igre je neposredni predak
cvora y ako se iz pozicije/cvora x nekim

130

8 Programiranje logickih igara

legalnim potezom dobija pozicija/cvor y (tada kazemo i da je cvor y


neposredni
potomak
cvora
Za cvor
x stabla
predak
y
ako
postoji
niz x).
cvorova
= kazemo
z10 ,cvor
z1 , . . z.ida
, neposredni
znje =
y cvora
(n
1)
takvih
svako
i, 0stabla
ii da
x n
predak
cvora da
zi+1je
. za
Tada
kazemo
je cvor
y potomak cvora x. Legalnim potezom smatramo i prazan potez (u
engleskom jeziku cesto se koristi termin pass) u situaciji kada igrac
koji je na redu nema na raspolaganju legalnih poteza i preskace
svoj red (takve situacije nisu regularne,
na primer, u sahu, ali regularne, na primer, u igri reversi). U igri za
dva igraca, u ovako definisanom stablu igre, od korena do bilo kog
lista naizmenicno se smenjuju grane koje odgovaraju potezima
prvog i drugog igraca. Slicno, ako se radi o igri za vise igraca,
od korena do bilo kog lista redom se smenjuju grane koje odgovaraju
potezima svih igraca. Na slici8.1ilustrovano je stablo igre za igru
iks-oks.

xo

x o

...

...

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

o
x

...

...

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

o
xox

...

o
x x

...

o
o
x x

oo . . .
x oo . . . . . . . . .
x
x o x x ox x x oox x x x

...

...

... ... ...

...

oo
x x

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

zavrsno stanje

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

. ....... .

Figure 8.1: Stablo igre za igru iks-oks


Kompletnim stablom igre zovemo stablo u kojem je koren pocetna
pozicija igre (u skladu sa pravilima date igre), a listovi su zavrsne
pozicije igre. Kom- pletno stablo igre ima onoliko listova koliko data
igra ima razlicitih regularnih tokova. Taj broj je kod vecine igara
(cak i kod veoma jednostavnih) ogroman i
onemogucava
kompletno pretrazivanje u cilju izbora optimalne strategije.
Zato se u programima za igre (najcece u sredisnici) za izbor
poteza primen- juju algoritmi koji pretrazuju samo delove ovog
stabla (videti poglavlje8.4).
Za potpuni opis stabla u racunarskoj implementaciji nije potrebno
cuvati in- formaciju i cvorovima/pozicijama i o granama/potezima.
Naime, kako granama odgovaraju legalni potezi i kako oni na osnovu
tekuce pozicije jednoznacno odreduju sledecu poziciju, za opis
stabla dovoljan je opis korena stabla (tj. po- lazne pozicije) i opis
grana/legalnih poteza za odgovarajuce cvorove. Na taj nacin
implicitno moze biti opisano/generisano celo stablo, a zauzeti
memori- jski prostor daleko je manji nego kada bi se eksplicitno
pamtile i pozicije koje odgovaraju cvorovima stabla. Takav nacin
opisa stabla moze da se koristi i za

8.3 Otvaranje i biblioteka partija

131

opis biblioteke partija, o cemu govori naredno poglavlje.

8.3

Otvaranje i biblioteka partija

Potreba za skladistenjem (i koriscenjem) opisa partija odredene igre


moze da proistice bilo iz potrebe da se ti podaci koriste za izbor poteza
u samom pro- gramu, bilo iz potrebe da se omoguci jednostavnija analiza
pojedinih situacija/pozicija ili citavih partija.
Opisi partija mogu biti posebne, nezavisne celine, ali mogu biti i
organizo- vani tako da korisniku omogucavaju laku uporednu
analizu slicnih varijanti u igri i da su istovremeno upotrebljivi za
pomoc u automatskom izboru poteza. Jedna od najpogodnijih
reprezentacija biblioteke partija je u obliku stabla igre. U takvoj
reprezentaciji biblioteke partija, dovoljno je da odgovarajuce
stablo igre sadrzi informacije o potezima (koji odgovaraju
granama stabla), jer su njima odredene i odgovarajuce pozicije
(koje odgovaraju cvorovima stabla).
U programima za logicke igre cesto je izuzetno znacajna
biblioteka otvaranja (opening book) koja je zasnovana na ljudskom
iskustvu i koja sadrzi infor- macije o poznatim i kvalitetnim
potezima koji se cesto javljaju u otvaranju. Biblioteka otvaranja,
kao i biblioteka partija, najcesce se reprezentuje stablom igre.
Ta struktura moze biti staticka (sadrzi odreden, konacan broj
varijanti
u svakom potezu i informacije o potezima samo do odredene dubine)
ili se prosirivati tokom samog izvrsavanja programa.
U igri programa sledi se tok partije iz biblioteke dok je to moguc
e (dok o tome postoje odgovarajuce informacije u biblioteci
otvaranja), a onda se prelazi na druge strategije izbora poteza.
Ukoliko za neku poziciju postoji u biblioteci vise mogucih
nastavaka, izbor moze da se nacini po odredenim verovatnoc
ama koje mogu da se koriguju tokom rada programa (u skladu sa
,,stilom igre pro- grama koji proistice iz prirode funkcije
evaluacije) ili jednim delom i prema duzini koja u stablu sledi iza
odredenog poteza (kao teznja da se sto duze os- tane u
poznatim varijantama).
Pomenuta strategija moze da se
realizuje
na sledeci nacin:
neka je, na osnovu biblioteke
otvaranja, u nekom trenutku na
raspolaganju n poteza. Svakom od njih neka je pridruzena ocena mi
(1 i n)
na osnovu empirijske procene i na osnovu dubine biblioteke partija
koja sledi
za i-tim potezom (te ocene predstavljaju karakteristican, dodatni
deo biblioteke partija). Ukoliko emprijske procene govore da je i-ti
potez bolji, to je ocena mi veca. Takode, ocena mi je veca
ukoliko je veca dubina biblioteke partija koja
sledi za i-tim potezom. Tada se, u toj poziciji, i-ti potez (1 i n)
bira sa
verovatnoc
mi
pi = .
.
om
m
j
n
j=1
Na taj nacin izbegava se deterministicko ponasanje programa u
otvaranju: bolji potezi (u smislu neke procene) se biraju cesce,
ali ne uvek. Ocene mi mogu se tokom igre korigovati na sledeci
nacin: ukoliko je posle izbora i-tog poteza (na nekoj dubini d)
program dobio (izgubio) partiju, oceni mi dodaje se (oduz- ima se)
neka karakteristicna pozitivna vrednost c. Te korekcije ocena u
bib- lioteci partija vrse se na svim nivoima d na kojima izbor
poteza nije bio jed- noznacno odreden. Na taj nacin program
,,uci, popravlja kvalitet svoje igre i prilagodava je specificnim
znanjima o igri koje primenjuje u daljem toku par- tije.

132

8 Programiranje logickih igara

Poseban problem u otvaranju je situacija u kojoj protivnik svojim


potezom primora program da napusti biblioteku otvaranja, a potom
se u igri ponovo dode do neke pozicije koja postoji u biblioteci
otvaranja. Prepoznavanje pozi- cije koja postoji u razlicitim
delovima stabla moze da predstavlja problem i iziskuje
kompleksniju reprezentaciju podataka o poznatim otvaranjima.
Takav zahtev moze da vodi i ka resenju koje je tipicno za
S enonovu B strategiju: u lookup tabeli trazi se tekuca pozicija
i njoj odgovarajuci potez (ili potezi). Resenje ovog tipa u vec
ini igara je neprimereno zbog velikog obima podataka koji zahteva
(umesto samo pojedinacnih poteza, sve pozicije se predstavljaju
kompletno i posebno) i vremena potrebnog za izvrsavanje (u
lookup tabeli, za neke igre, morali bi da budu smesteni podaci o
hiljadama, ili milionima rele- vantnih pozicija).

8.4

Sredisnjica

Velika vecina savremenih programa za logicke igre u sredisnjici


koristi strate- giju dubinskog pretrazivanja stabla igre koja
odgovara S enonovoj A strategiji. Zbog obima izracunavanja koje
zahteva, kao i zbog razlika u odnosu na strate- gije tipicne za
coveka, ovaj pristup cesto se naziva i ,,metod grube sile sa jednostavnom funkcijom evaluacije (eng. brute-force method plus
simple eval- uation function). U narednim poglavljima opisacemo
smisao i ulogu funkcije evaluacije, kao i neke od algoritama koji se
koriste u pretrazivanju stabla igre.

8.4.1

Staticka ocena pozicije i funkcija evaluacije

U cilju odredivanja najboljeg poteza za igraca koji je na potezu,


cvorovima sta- bla igre se mogu dodeliti neke ocene, na osnovu
koje cvorovi tj. pozicije i potezi mogu da se porede po kvalitetu.
Staticka ocena je vrednost koja se, u skladu sa specificnim
karakteristikama konkretne igre, dodelje poziciji pri cemu se ne
ispituju moguci nastavci koji joj odgovaraju. Funkcija evaluacije
(eng. evaluation function) je funkcija F koja mogucim, regularnim pozicijama u nekoj igri
dodeljuje njihove ocene:
F : P R.
Radi efikasnosti, funkcija evaluacije obicno se implementira kao
racionalna ili celobrojna funkcija.
Smisao funkcije evaluacije za protivnike u igri za dva igraca je
suprotan
ono sto je najbolje stanje za jednog igraca najlosije je za
drugog i obratno. Funkcije evaluacije razlikuju se od igre do igre (i
od programa do programa). Gotovo sve znanje o igri koje se koristi u
sredisnjici partije sadrzano je u funkciji evaluacije i u najvecoj
meri od nje zavisi kvalitet igre programa. Potrebno je da sadrzi sto
vise relevantnih informacija, ali s druge strane, kako se
izracunava mnogo puta, potrebno je da bude jednostavna, pa je
pozeljno da se funkcija evaluacije racuna jednostavno i u
celobrojnoj aritmetici. Takode, pozeljno je da funkcija evaluacije
za simetricne pozicije (za zamenjene uloge igraca) daje vrednosti
koje se razlikuju samo po znaku. Najjednostavnija je tzv. trovrednosna funkcija: ona se primenjuje samo na zavrsne pozicije igre i
ima samo tri razlicite vrednosti za pobedu prvog, za pobedu
drugog igraca i za neresen ishod (npr. 1, -1 i 0). Trovrednosna
funkcija zahteva pretrazivanje stabla igre

8.4 Sredisnjica

133

do zavrsnih cvorova, pa je, zbog potencijalno velike dubine


pretrazivanja, ova funkcija za vecinu igara prakticno
neupotrebljiva. Generalno, funkcija evalu- acije obicno preslikava
skup svih mogucih pozicija preslikava u segment celih ili
racionalnih brojeva:
F : P [M, M ]
Vrednost
M
dodeljuje
samo zavrsnim cvorovima u kojima je
pobednik
prvi
igrac, je
asevrednost
cvorovima
u kojima
pobednikvrednost M samo zavrsnim
drugi igrac.
Ocene zavrsnih pozicija igre mogu se korigovati dodavanjem
(odnosno oduz- imanjem) dubine odgovarajuceg cvora u
pretrazivanju, kako bi se od svih var- ijanti koje vode u pobedu
izabrala ona koja vodi pobedi u najmanjem broju koraka (odnosno
kako bi se, ukoliko je poraz neizbezan, taj poraz maksimalno
odgodio).
Funkcija
evaluacije
moze
biti
i
slozene
strukture,
sastavljena od modula koji odgovaraju razlicitim fazama partije
(npr. sredisnjici i zavrsnici) ili ra- zlicitim statickim
parametrima (npr. u sahu:
vrednost ukupnog materijala,
pokretljivost figura, pesacka struktura, rokada i dr.).

8.4.2 Pretrazivanje stabla igre


Kod vecine programa za kompleksnije logicke igre, pored
kvalitetne funkcije evaluacije, od kljucne vaznosti su algoritmi
koji se koriste za pretrazivanje stabla igre. Pri pretrazivanju
stabla igre u sredisnjici, funkcija evaluacije se izracunava
samo za cvorove na nekoj odredenoj dubini, a ostalim cvorovima
se pozicija ocenjuje na osnovu ocena nekih od cvorova-potomaka.
Pretrazivanje stabla igre u cilju odredivanja najboljeg moguceg
poteza iz datog cvora, kod razlicitih logickih igara (i razlicitih
programa) realizuje se na razlicite nacine. Realizacije se razlikuju
po algoritmu pretrazivanja, po dubini pretrazivanja sta- bla, po
heuristikama koje se primenjuju (nekad se, zbog brzine, odustaje od
zahteva da se pronade najbolji potez za datu dubinu, vec se
trazi ,,dovoljno dobar potez) itd. Kod kompleksnijih logickih
igara stablo igre najcesce je ogromno i njegovo pretrazivanje
zahteva puno vremena.
Zato su heuristike koje ubrzavaju to
pretrazivanje od izuzetnog znacaja.
Stablo igre se pri pretrazivanju ne realizuje staticki, vec se dinamicki realizuje samo
put od pocetnog cvora do pozicije koja se trenutno ispituje. Kako
se za pretrazivanje stabla igre koristi rekurzija, to znaci da se za
potez dubine d pamte samo podaci proistekli iz d-tostrukog pozivanja
funkcije za pretrazivanje (sa povratnim adresama i sl).

8.4.3 Algoritam minimaks


Algoritam minimaks je kljucni element S enonove A strategije i on
je u osnovi skoro svih algoritama za izbor poteza pretrazivanjem
stabla igre. Minimaks al- goritam pretrazivanjem stabla igre za
igraca koji je na potezu odreduje najbolji moguci potez u datoj
situaciji (za zadati cvor,
zadatu dubinu pretrazivanja i za
izabranu funkciju evaluacije). Pretrazivanje celog stabla garantuje
nalazenje
zaista najboljeg poteza (u navedenom smislu ako se menja dubina
pretrazivanja ne mora da se dobija isti rezultat), ali zbog odsustva
heuristika (koje bi to pre- trazivanje ubrzale) to pretrazivanje moze
da traje jako dugo. Pretpostavimo, jednostavnosti radi, da se
pretrazivanje vrsi do fiksne dubine (tj. da su iste

134

8 Programiranje logickih igara

duzine svih puteva iz datog do zavrsnih cvorova u pretrazivanju).


Pretpostavimo jos da funkcija evaluacije za igraca koji je na
potezu ima pozitivan smisao (tj. bolji je potez ako obezbeduje vec
u vrednost funkcije). Funkcijom evalu- acije ocene se dodeljuju
samo ,,najdubljim cvorovima u pretrazivanju (pre- trazivanje se
vrsi do fiksne dubine i ,,najdublji cvorovi ne moraju da predstavljaju zavrsna stanja igre); dalji postupak je rekurzivan: kao
ocena cvoru dodeljuje se minimum ocena cvorova-potomaka, ako je
u tom cvoru na potezu protivnik, a kao maksimum ocena cvorova
potomaka, u suprotnom (slika8.2).
Ocena pocetnog cvora je maksimum ocena cvorova
neposrednih potomaka i rezultat je potez kojem odgovara taj
maksimim. Dakle, algoritam karakterise maksimizovanje ocene
kada je na potezu sam igrac i minimizovanje kada je na potezu
njegov protivnik, pa otuda i ime algoritma. Pseudoko d ovog
algoritma dat je na slici8.3.
5

max
1

min

max

2 1

1
57

22 1

7 1

Figure 8.2: Stablo pretrage sa ilustracijom algoritma


minimax
Algoritam minimaks (kao i ostali algoritmi zasnovani na
minimaksingu) vrsi izbor poteza samo na osnovu vrednosti koje su
pridruzene cvorovima na maksimalnoj dubini pretrazivanja. To
znaci da se ne ispituju potezi koji dalje slede i da se ne koriste
informacije o njima (a te informacije mogu biti veoma vazne i
cesto bi promenile odluku o izabranom potezu). Pored toga, kada
je neki potez odabran na osnovu cvorova na nekoj dubini, u
sledecem koraku (pri izboru sledeceg poteza) te informacije se ne
koriste i ,,zaboravlja se zasto 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 sledecem potezu pretrazivanje
krece iznova i cesto nece biti izabran potez kojim se
protivniku daje sah potez koji je motivisao izbor prethodnog).
Dakle, pri pretrazivanju stabla igre
,,vide se samo cvorovi na nekoj fiksnoj dubini ni oni posle, ni
oni pre njih. Ovaj fenomen cesto se naziva efekat horizonta (eng.
horizon effect).

8.4.4 Algoritam alfa-beta


Algoritam alfa-beta otkriven je sredinom dvadesetog veka
nezavisno od strane nekoliko istrazivaca. Artur Semjuel sa jedne
strane i Ricards, Hart, Levin i Ed- vards (svi iz SAD) formulisali su
nezavisno ranu verziju algoritma pocetkom

8.4 Sredisnjica

135

Algoritam: Minimax
Ulaz: pozicija
Izlaz: potez
1. v := Max(pozicija)
2.vrati potez kojem odgovara vrednost v
Funkcija: Max
Ulaz: pozicija, funkcija evaluacije f
Izlaz: vrednost pozicije
1.Ako je zavrsna pozicija vrati f (pozicija)
2. v :=
3. Za svaku poziciju s do koje se moze doci u jednom potezu:
Ako je Min(s) > v onda v := Min(s)
4.vrati v
Funkcija: Min
Ulaz: pozicija, funkcija evaluacije f
Izlaz: vrednost pozicije
1.Ako je zavrsna pozicija vrati f (pozicija)
2. v := +
3. Za svaku poziciju s do koje se moze doci u jednom potezu:
Ako je Max(s) < v onda v := Max(s)
4.vrati v

Figure 8.3: Algoritam minimaks

pedesetih godina. Makarti je slicne ideje predstavio 1956. godine,


tokom zna- menite konferencije u Darmutu. Aleksander Brudno je,
ponovo nezavisno, otkrio alfa-beta algoritam i objavio ga 1963.
godine.
Alfa-beta algoritam zasnovan je na tzv. alfa i beta odsecanju
stabla igre
i predstavlja heuristikama ubrzan algoritam
minimaks. Osnovni postupak ocenjivanja cvorova je minimaks tipa:
vrednosnom funkcijom ocenjuju se samo cvorovi na nekoj odabranoj
dubini, a zatim se rekurzivnim postupkom (mini- maksingom)
ocenjuju cvorovi prethodnici. Postupak ,,alfa odsecanje bie opisan
pretpostavljajuci da funkcija evaluacije za igraca koji je na potezu
ima poziti- van smisao (bolje su vee ocene).
Neka je u tekucem cvoru na potezu igrac A koji trazi
najbolji potez; neka je ocenjeno n od m (n < m) njegovih legalnih
poteza i neka su dobijene ocene w1 , w2 ... wn i neka je wk najvec
a od njih. Razmatramo n + 1-i legalni potez (slika8.4); nakon tog
poteza protivnik (igra c B) ima vise mogucnosti i igrac

136

8 Programiranje logickih igara

wn+1 < wk

ma
x
wk

wn

wn+1

odsecanje

wj

1
7>
5

odsecanje

min

o
5

2 < 5

m a x
dseca

nje

2 1

Figure 8.4: Stablo pretrage sa ilustracijom algoritma alfa-beta

A trazi onu sa najmanjom ocenom; za svaku ocenu wr legalnih poteza u tom


i

cvoru, svakako vazi da je veca ili jednaka zajednickom minimumu


min
i
wr
(wr
r
wmin
) koji predstavlja ocenu cvora; dakle, ako se u tom
pretrazivanju
dode do
ocene wr koja je manja ili jednaka oceni wk (wr wk) sigurno je da je i
ocena j
j
r
cvora manja ili jednaka oceni wmin
k (w

wk ). S obzirom da se u

pocetnom
cvoru trazi maksimum ocena mogucih poteza, to znaci da taj cvor (sa ocenom
min wk ) ne utice na ocenu pocetnog cvora (jer je wmin wk wmax ),
r
wr
pa se dalje pretrazivanje poteza protivnika u tekucem cvoru
moze prekinuti bez uticaja na rezultat pretrazivanja moze da
se izvrsi odsecanje stabla
(slika8.4). ,,Beta odsecanje je potpuno analogno i primenjuje se na
cvorove
u kojima je na potezu protivnik. Naravno, s obzirom na smisao
vrednosne funkcije, maksimumi pominjani u ,,alfa odsecanju
zamenjuju se minimumima i obratno (slika8.4). Pseudok o d
algoritma alfa-beta dat je na slici8.5.
Kako stablo pretrazivanja cesto moze biti jako veliko, ubrzanje
minimaks algoritma heuristikama ,,alfa-odsecanje i ,,betaodsecanje ima izuzetan znacaj. Posebno je vazna cinjenica da i
alfa-beta algoritam nalazi zaista najbolji moguci potez za zadati
cvor i zadatu dubinu pretrazivanja, sto znaci da heuristike koje se
primenjuju ne narusavaju tu osobinu minimaks algoritma.
Ukoliko se u svakom cvoru potezi ispituju od najlosijeg ka
najboljem (u smislu tekuceg cvora), tada nema nijednog alfa ili
beta odsecanja, pa se alfa- beta algoritam svodi na algoritam
minimaks. Obratno, najvise alfa i beta odse- canja ima kada su
potezi ispituju od najboljeg ka najlosijem u smislu tekuceg cvora
i tada algoritam alfa-beta daje najbolji efekat (tj. ispituje najmanji
broj cvorova stabla). Naravno, takav poredak poteza nije moguce
generisati egza- ktno u toku pretrazivanja stabla igre, ali se dobrim

procenama efekat alfa-beta algoritma tako moze bitno popraviti.


Upravo na toj ideji zasnivaju se i neka poboljsanja alfa-beta
algoritma.

8.4 Sredisnjica

137

Algoritam: Alfa-beta
Ulaz: pozicija
Izlaz: potez
1. v = Max(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 zavrsna pozicija vrati f (pozicija)
2. v :=
3. Za svaku poziciju s do koje se moze doci u jednom potezu:

Ako je Min(s, , ) > v onda v := Min(s, , )


Ako je v onda vrati v
Ako je v > onda := v
4.vrati v
Funkcija: Min
Ulaz: pozicija, alfa vrednost , beta vrednost , funkcija evaluacije f
Izlaz: vrednost pozicije
1.Ako je zavrsna pozicija vrati f (pozicija)
2. v :=
3. Za svaku poziciju s do koje se moze doci u jednom potezu:

Ako je Max(s, , ) < v onda v := Min(s, , )


Ako je v onda vrati v
Ako je v < onda := v
4.vrati v
Figure 8.5: Algoritam alfa-beta

8.4.5 Heuristika killer


U prethodnom poglavlju receno je da se efikasnost algortima
moze popraviti ako se u svakom cvoru potezi ispituju, po nekoj
proceni, od najboljeg ka najlo- sijem. Slicno, algoritam alfa-beta
daje dobre razultate ako se u svakom cvoru najpre ispituje najbolji
potez. Naravno, nije moguce unapred znati koji je potez najbolji u
datom cvoru, ali se i dobrim procenama (izborom jednog od boljih
poteza) postizu dobri efekti. Heuristika killer (ponekad se naziv i wkiller) zas- niva se na navedenim cinjenicama i ne koristi specificna
znanja o igri (da bi se

138

8 Programiranje logickih igara

procenilo koji potezi su dobri).


Neka neki
se u pretrazivanju
algoritmom
prvi put
ocenjuje
na dubini dstabla
(d 1)alfa-beta
i neka je W
najbolji pronadeni
potez
u smislucvor
tog cvora.
Taj potez zvacemo killer potezom za dubinu d. U svakom sledec
em cvoru na dubini d, ispitivanje poteza pocinjemo sa killer
potezom za tu dubinu. Ukoliko
se pokaze da je za taj cvor bolji neki drugi potez (W r ), taj potez postaje
killer
potez za dubinu d.
Ukoliko
se pretrazivanje
vrsi
do dubine
heuristika
primenjuje sestabla
za sveigre
dubine
d takve
da je 1 dmax
d ,
dopisana
max 1. Alfa-beta algoritam prosiren killer heuristikom zovemo alfa-beta/killer algortimom.
Primetimo da se primenom killer heuristike ne menja rezultat alfabeta algoritma (za istu vrednosnu funkciju i istu dubinu
pretrazivanja) tj. dobija se potez sa istom ocenom (ne nuzno
i isti potez) kao primenom algoritama alfa-beta ili mini- maks, i
to najcesce sa bitno manjim brojem ispitanih cvorova stabla.
Smisao killer heuristike je sledeci: ukoliko je u jednoj grani
stabla na dubini d najbolji potez W , ima izgleda da je on najbolji (ako
je legalan) i u drugim granama stabla na istoj dubini. Ilustrujmo to
na primeru saha: neka igracu koji je na redu preti mat u sledec
em potezu i neka nijedan njegov potez ne moze da otkloni tu
pretnju. Pretrazivanjem stabla, u cvoru u kojem je na potezu protivnik, otkriva se matni potez i on postaje killer potez (za dubinu 1).
Pri daljem pretrazivanju stabla, na dubini 1 najpre se ispituje
taj potez i kako on vodi pobedi protivnika, alfa odsecanje cini
nepotrebnim dalje ispitivanje poteza u tom cvoru. Time se broj
cvorova stabla koje u ovakvoj situaciji treba ispitati drasticno
smanjuje.
U poglavlju8.2re ceno je da moguci (ne samo legalni) potezi
treba da budu organizovani u ciklicni niz, tj. da se je za svaki
potez jednoznacno odreden sledeci. Taj zahtev je u direktnoj
vezi sa killer heuristikom, jer se ispitivanje poteza u skladu sa
njom, vrsi pocev od killer poteza i, ispitavsi (eventaulno) sve
ostale, ciklicno vraca do tog istog poteza. Takode, kako je moguc
e da killer potez u nekom cvoru odgovarajuce dubine nije
legalan, generator treba da za svaki moguci potez, bio on u
konkretnoj poziciji legalan ili ne, jednoznacno odreduje sledeci
legalan potez.

8.4.6 Iterativni alfa-beta/killer algoritam


Za dubinu pretrazivanja dmax iterativni alfa-beta/killer algoritam se
realizuje na sledeci nacin: najpre se vrsi pretrazivanje stabla
igre do dubine 1 (svejedno je kojim algoritmom, jer do dubine 1
nema alfa i beta odsecanja) i najbolji pronadeni potez postaje
killer potez za nivo 0 za pocetni cvor. Dalje se,
redom za dubine d (2 d dmax) primenjuje algoritmom alfa-beta/killer. i
dobijeni najbolji potez postaje killer potez za pocetni cvor. Kao najbolji
potez
bira se onaj dobijen zavrsnom primenom alfa-beta/killer algoritma za
dubinu
dmax.
Efekti iterativnog algoritma su, u svakoj iteraciji, slicni efektima
alfa-beta/killer algoritma, s tim sto u iterativnom algoritmu postoji i
killer potez za pocetni cvor u pretrazivanju. Ima izgleda da je u
svakoj iteraciji taj killer potez bolje odabran i da daje bolje rezultate
(veci broj alfa i beta odsecanja). Druga vazna
i dobra osobina iterativnog algoritma je to sto za slucaj prekida
pretrazivanja, prakticno u svakom trenutku ima smisleni rezultat
kao najbolji pronadeni potez
za neku kompletno zavrsenu iteraciju (videti poglavlje8.4.8). Ono
sto izgleda

8.4 Sredisnjica

139

kao mana algortima visestruko pretrazivanje nekih cvorova


ne utice bitno na perofrmanse algoritma. Naime, u odnosu na vreme
utroseno za zavrsnu it- eraciju, vreme utroseno na sve ostale
iteracije prakticno je zanemarljivo. Pored toga, s obzirom na
(najcesce) dobro odabran killer potez za pocetni cvor, zavrsna
iteracija ce obicno zahtevati ispitivanje manjeg broja cvorova od
alfa-beta/killer algoritma za istu dubinu.
Naglasimo da se i primenom iterativnog alfa-beta/killer algoritma
dobija najbolji potez (potez sa najboljom ocenom) za datu
vrednosnu funkciju i datu dubinu pretrazivanja sto je vazno
svojstvo algoritama minimaks, alfa-beta i alfa-beta/killer.
Kao modifikacija ovog algoritma, moze se vrsiti samo prva i
poslednja it- eracija, jer se i prvom iteracijom cesto dobija dovoljno
dobar killer potez za dubinu 0. U razlicitim konkretnim situacijama,
nekad je bolji jedan, a nekad drugi algoritam, s tim sto je, zbog
mogucnosti prekida, u praksi prihvatljiviji kompletni iterativni
algoritam.

8.4.7 Stabilno pretrazivanje


U prethodnim algoritmima se uvek govorilo o pretrazivanju do
fiksne dubine. Nedostatak takvog pristupa je u tome sto funkcija
evaluacije, koja se primen- juje na cvorove na najvecoj dubini, ne
razmatra moguce nastavke za pozicije na najvecoj dubini. Te
ocene, ma koliko funkcija evaluacije bila dobra, mogu da budu
varljive i da vode losem izboru poteza (u sahu se npr. moze
izabrati potez zbog nekog, naizgled dobrog, zavrsnog cvora u
kojem se zarobljava pro- tivnikov top, ali se ne zna da nakon toga
moze da bude izgubljena kraljica ili da sledi mat). Zbog toga se
primenjuje ,,stabilno pretrazivanje(eng. quiscence searching):
vrsi se pretrazivanje do neke fiksne dubine, ali se
pretrazivanje nastavlja i dalje ukoliko je, po nekom kriterijumu,
zavrsni cvor ,,nestabilan. Maksimalna dubina dodatnog
pretrazivanja takode moze da bude ogranicena. Stabilno
pretrazivanje moze se primenjivati u kombinaciji sa bilo kojim od
do sada opisanih algoritama.
Kriterijumi stabilnosti poteza odreduju se u skladu sa
specificnostima konkretne igre, ali i za istu igru mogu biti razlikiciti. U
sahu, na primer, pozicija se moze smatrati stabilnom ukoliko igrac
koji je na potezu nije pod sahom, ukoliko mu kraljica ne ,,visi, ukoliko
ne ,,visi nijedna protivnikova figura i ukoliko ne preti neposredno
izvodenje nekog protivnikovog pesaka. Savremeni programi
za sah cesto pretrazuju stablo igre do dubine 4 (4 polupoteza tj.
dva poteza) sa dodatnim, stabilnim pretrazivanjem do dubine 16 ili
vise.

8.4.8 Prekidi i vremenska ogranicenja


Vazan problem u programiranju logickih igara su i prekidi:
potrebno je da program izabere smislen i dobar potez i ukoliko se
pretrazivanje stabla igre prekine pre nego sto se izvrsi
kompletan algoritam. Potrebno je, dakle, da algo- ritam, i ukoliko je
prekinuto njegovo normalno izvrsavanje, vrati neki legalan potez.
Naravno, pozeljno je i da taj potez bude sto bolji. Prekidi mogu
biti izazvani akcijom korisnika ili ogranicenjima vremena
raspolozivog za jedan

140

8 Programiranje logickih igara

potez ili za celu partiju2 . Vecina algoritama koji su do sada opisani


u situaci- jama prekida moze da izabere tekuci najbolji potez.
Ipak, kad algoritam nije kompletno izvrsen (i, na primer, ispitani su
samo neki, povoljni odgovori pro- tivnika), tako odabran potez
moze biti veoma los. Za resavanje ovog problema najpogodniji
je iterativni alfa-beta/killer algoritam, jer prakticno u svakom
trenutku3 ima neku kompletno zavrsenu iteraciju i njen rezultat
cesto jeste do- voljno dobar potez (iako, naravno, obicno slabiji
nego potez koji bi bio dobijen kompletno izvrsenim algoritmom).

8.4.9 Slozenost algoritama za pretrazivanje stabla igre


Za formulisanje tvrdenja u vezi sa kompleksnoscu algoritama za
pretrazivanje stabla igre, potrebno je uvesti nekoliko definicija.
Definicija 8.1 Uniformno stablo stepena n je stablo ciji svi cvorovi sem
zavrsnih imaji tacno po n neposrednih potomaka.
Definicija 8.2 (d, n, F )-stablo je uniformno stablo dubine d, gde je d paran broj i
stepena n sa zavrsnim cvorovima kojima su pridruzene vrednosti po raspodeli F .
Definicija 8.3 Neka je A deterministicki algoritam za pretrazivanje (d, n, F )stabla i neka je IA (d, n, F ) ocekivani broj zavrsnih cvorova koje algoritam A
ispituje. Tada vrednost
RA(n, F ) = lim [IA(d, n, F )]1/d
d

zovemo faktor grananja algoritma A.


Faktor grananja je kljucna karakteristika algoritama za
pretrazivanje stable igre jer govori o ocekivanom broju zavrsnih
cvorova koje nekim algoritmom treba ispitati. Naime, ukoliko je R
faktor grananja nekog algoritma, onda je ocekivani broj ispitanih
cvorova za dubinu pretrazivanja d jednak Rd .
Ako se uniformno stablo stepena n i dubine d pretrazuje
minimaks algorit- mom, bice ispitano nd zavrsnih cvorova stabla,
pa je faktor grananja algoritma minimaks ocigledno jednak n, tj.
Rminimax(n, F ) = n.
Problem odredivanja faktora grananja alfa-beta algoritma mnogo je
slozeniji. Slagle i Dixon pokazali su 1969. godine da alfa-beta
algoritam mora da ispita
vise od 2n[d/2] 1 zavrsnih cvorova uniformnog stabla stepena n i
dubine
d, ali da u najlosijoj situaciji moze da ispita i svih nd [?]. Knuth i
Moore su 1975. godine [?] dokazali da faktor grananja za jednu
pojednostavljenu verziju algoritma alfa-beta (bez dubokih
odsecanja) pripada klasi funkcija O(n/ log n).
Konacan odgovor na pitanje o faktoru grananja alfa-beta algoritama
daje sledece teorema Judea Pearl-a iz 1982. godine [?].
2
Ukoliko je ograniceno vreme raspolozivo za celu partiju, program mora i da ga
ekonomicno deli na procenjeni broj poteza.
3
Prva iteracija, za gotovo sve igre i na gotovo svim racunarima, moze biti
zavrsena u delicu sekunde.

8.5 Zavrsnica

141

Teorema 8.1 Faktor grananja alfa-beta algoritma za neprekidno-vrednosno uniformno


stablo stepena n jednak je
n

n
gde je n pozitivni koren jednacine x + x=11 = 0.

Rn

Za n 1000 vrednost
vred-
nosti n3/4 ,
tj.

priblizno je jednaka (0.925)n0.747 i, grubo,

1n

n
R=

(0.925)n

3/4

0.747

Posledicu navedene teoreme je i sledece, izuzetno vazno


tvrdenje [?]).
Teorema 8.2
Alfa-beta algoritam je asimptotski optimalan algoritam za
pretrazivanje stabla igre.
Navedeno tvrdenje znaci da ne postoji algoritam za
pretrazivanje stabla igre koji, u opstem slucaju, asimptotski
ispituje manje zavrsnih cvorova nego algoritam alfa-beta.
Algoritmi, koji su opisani u prethodnom delu teksta i koji
predstavljaju unapredenja algoritma alfa-beta u praksi zaista
najcesce daju bolje rezultate nego algoritam alfa-beta i to je
uslovljeno prirodom stabla igre i funkcijom koja ocenjuje zavrsne
cvorove (koja nije slucajna).
Ipak, faktori grananja ovih
algoritama se ne razlikuju od faktora grananja alfa-beta algo- ritma
i u opstem slucaju oni ne garantuju manje ispitanih zavrsnih
cvorova stabla nego algoritam alfa-beta.
U praksi, faktor grananja alfa-beta algoritma za vecinu diskretno1/2 je R = n
vrednosnih stabala jednak
.

8.5

Zavrsnica

U igrama kao sto je sah zavrsnica se,


po svojim
karakteristikama i po znan- jima koje se koriste, bitno razlikuje od
sredisnjice, pa iziskuje i posebne pris- tupe. U nekim od takvih
igara, i u zavrsnici se uspesno mogu koristiti algo- ritmi i tehnike
koje se koriste u sredisnjici, ali uz koriscenje posebne ili vise
posebnih funkcija evaluacije. U onim drugim igrama, resenja koja
se zasnivaju na dubinskom pretrazivanju ne daju dobre rezultate u
zavrsnici jer kvalitetna igre iziskuje jako veliku dubinu
pretrazivanja.
Problem zavrsnice je jos tezi ako se postavi
zahtev za korektnom ili optimalnom igrom/taktikom4. Ukoliko se,
tehnikama
koje
se
koriste
u
sredisnici,
sistematsko
pretrazivanje vrsi do zavrsnih cvorova time se obezbeduje
optimalna strategija (naravno, za vecinu igara to je u praksi
nemoguce izvesti).
Tako, na primer, optimalnu igru u
sahovskoj zavrsnici prakticno je nemoguce obezbediti (za
uobicajena vremen- ska
ogranicenja),
jer
su
moguce
zavrsnice u kojoj igrac ima dobijenu pozi- ciju, ali ne moze da
matira protivnika u manje od dvadeset poteza, pa takva
4
Za taktiku kazemo da je korektna ukoliko u dobijenoj poziciji sigurno vodi do
pobede i ukoliko pri (teorijskoj) remipoziciji sigurno vodi bar remiju. Za taktiku
kazemo da je optimalna ukoliko u dobijenoj poziciji vodi pobedi u najmanjem broju
poteza, odnosno ukoliko u izgubljenoj poziciji poraz maksimalno odlaze.
Ocigledno, ako je taktika optimalna, onda je i korektna, ali ne vazi obratno.

142

8 Programiranje logickih igara

zavrsnica za optimalnu igru zahteva dubinu pretrazivanja vecu


od dvadeset. Slicni problemi vaze i za korektnu taktiku.
Neprimenljivost dubinskog pretrazivanja u zavrsnici uslovljava
razvoj kval- itativno novih tehnika prilagodenih konkretnim igrama.
Neke od njih zas- novane su na tehnikama koje se koriste u
resavanju problema (u razlicitim domenima vestacke
inteligencije) ili u automatskom dokazivanju teorema. Kako u ovoj
problematici (jos) nisu data opsta valjana resenja, kako postojeca
resenja predstavljaju primene citavih matematickih teorija na
domen igara, u nastavku ce biti opisani samo neki od algoritama i
ideja koji se mogu efikasno primenji- vati u automatskom izboru
poteza u sahovskim zavrsnicama.

8.5.1 Skupovi pozicija kao klase ekvivalencija


M.A.Bramer (Faculty of Mathematics, Milton Keynes, England) je
1975. (v. [?]) fomulisao sledeci opsti algoritam za zavrsnicu:
(a)generi si skup svih legalnih poteza skup Q;
(b)odaberi najbolje ocenjeni elemenat skupa Q
element q; (c)odigraj potez q;
Kljucni
korak
(korak
(b)) zasnovan
jeu igri
na sledecoj
ideji:
neka
je skupalgoritma
Qsvrstana
skup svih
pozicija
i nekakoji
je
svaka
odQtih
u regularnih
tacno
jedan
od podskupova
(topozicija
razlazu
razlaganje
definise
se
u skladu sa prirodom konkretne igre tako da istom skupu pripadaju
sustinski slicne pozicije npr. u sahu, sve pozicije KPK); svakom
od tih skupova (odnosno klasa ekvivalencije) pridruzena je jedinstvena
ocena i jedinstvena funkcija eval- 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 nacin ocenjuju
se svi legalni potezi iz datog cvora i to bez ikakvog pretrazivanja preko dubine 1. Kao najbolji bira se potez kojem
odgovara na- jveca zbirna ocena. Opisani algoritam ima brojne
varijacije (ukljucujuci vari- jacije uporedivanja elemenata iz
razlicitih klasa ekvivalencije, provere izabra- nog poteza
pretrazivanjem u dubinu itd.).
Bramerov algoritam, razlaganjem skupa problema na klase
slicnih prob- lema, u prilicnoj meri prirodno odgovara covekovom
nacinu razmisljanja. Pored toga, algoritam moze biti i veoma
efikasan, jer poredenje poteza vrsi po kljucnim parametrima za
konkretnu zavrsnicu (npr, u sahu, po rastojanju izmedu dva
kralja), a ne po opstim kriterijumima koji se koriste u sredisnici.
Algoritam za- hteva kompleksno definisanje svih relevantnih klasa
pozicija u zavrsnici i svih odgovarajucih funkcija evaluacije, ali je i
pored toga verovatno najprihvatljivije
i najcesce korisceno resenje za automatski izbor poteza u
zavrsnici.

8.5.2

Tekstovi saveta

Jedan od koncepata koji se primenjuju u sahovskim zavrsnicama je i


tzv. kon- cept tekstova saveta (eng. advice texts; autor Ivan Bratko,
Ljubljana, Slovenija;
v. [?]). Navedimo, kao ilustraciju, tekst saveta za zavrsnicu KRK
kralj i top protiv kralja:

8.6 Implementaciona pitanja

143

1.,,MAT: Proveri da li je mogu ce matirati protivnika u dva


poteza; 2.,,STEZANJE: Ako (1) nije mogu ce, pronadi
nacin da topom smanjis
prostor na tabli dostupan protivnickom kralju;
3.,,PRIBLI Z AVANJE: Ako (1) i (2) nije moguce, pronadi
nacin da svog kralja priblizis protivnickom;
4.,,ZADR Z AVANJE: Ako nisu primenljivi delovi saveta (1), (2) i (3),
pronadi potez koji zadrzava trenutno stanje u smislu (2) i (3) (tj.
odaberi potez cekanja);
5.,,RAZDVAJANJE: Ako nisu primenljivi delovi saveta (1), (2), (3) i
(4), pronadi potez kojim se dobija pozicija u kojoj top razdvaja
dva kralja, bilo vertikalno ili horizontalno.
Nedostatak koncepta ilustrovanog navedenim primerom je u tome
sto iziskuje posebne tekstove saveta za sve sustinski razlicite
zavrsnice. Pored toga, za sve tipove zavrsnica nije jednostavno
(ili nije moguce) napraviti koncizan i efikasan tekst saveta.

8.6

Implementaciona pitanja

U ovom poglavlju bice reci o polaznim pitanjima u pravljenju


programa za logicke igre: o strukturama podataka koje se koriste,
o njihovim medusobnim vezama i organizaciji na nivou programa.
Takode, bice reci i o proveri legal- nosti (korektnosti) poteza i o
generatorima legalnih poteza. Izbor resenja ovih problema od
kljucne je vaznosti za svaki pojedinacni program i on
determinise gotovo citav koncept programa.
Kao kod gotovo svih oblasti programiranja, i kod programiranja
igara izbor struktura podataka je najcesce pitanje od izuzetne
vaznosti. Od pravilnog izb- ora struktura podataka neposredno
zavisi ne samo jednostavnost programa, vec i njegova efikasnost.
Pored toga, dobra pocetna organizacija podataka cesto
prirodno odreduje citav koncept programa i resavanje
mnogih drugih sustinskih problema.
U programima za vecinu logickih igara, zbog velikog broja
poteza koje je potrebno ispitivati, neophodna je velika brzina
izvrsavanja pojedinih modula (i pored sve brzih racunara). Zato
je potrebno podatke organizovati tako da izracunavanja (u sirem
smislu te reci) koja se koriste budu sto jednostavnija i brza. U
tom smislu, kao dobar okvir namece se organizacija podataka koja
se oslanja na bitovsku aritmetiku (umesto na celobrojnu ili realnu).
I za sva
izracunavanja pozeljno je koristiti bitovsku aritmetiku, a tamo gde je
to nemoguce ili nepodesno celobrojnu.
Kod svih igara, jedna od osnovnih struktura podataka je struktura
koja odgovara potezu. Kod igara koje se igraju na tabli, ta struktura
je, ocigledno, u
neposrednoj
vezi sa strukturom
koja opisuje
tablu.
Tablu igre
mu
programu
mozemo
kao tabelu,
odnosno
matricu
n mn
ciji
su elementi
tipa charopisati
ili
int5 . U skladu sa navedenom idejom o upotrebi bitovske aritmetike,
moze se

5
U daljem tekstu cemo, kada govorimo o nekim konkretnim realizacijama na
racunaru, ako ne naglasimo drugacije, podrazumevati da se radi o resenjima u
okviru programskog jezika C.

144

8 Programiranje logickih igara

kao prihvatljivo resenje za opis table izabrati i niz bitovskih matrica. Tako
npr.
u
sahu
moze se
za svaki
tip
(ibitovrednost
za oba igraca)
koristiti po
jedna
bitovska
tabela
8 figuru
8 ufigura
kojoj
1 oznacavala
da
igrac
na tom polju
ima
tog tipa,
a vrednost
0 sve ostale
mogucnosti.
tajpo
nacin
8 bila8 bi
sa
12
(svaki igracNaima
sestjedna
tipovatabela
figura)8 tabela
8zamenjena
ciji
su elementi bitovskog tipa. Dodatna pogodna okolnost u ovom
pristupu je sto opisana bitovska tabela moze da se opise
jednostavno kao niz osam karaktera (jer tipu karakter odgovara
jedan bajt, odnosno osam bita). Ovakav pristup (i analogni u
drugim igrama), mada na prvi pogled mozda komplikovaniji,
omogucava brojna jednostavna i brza resenja kod provere
legalnosti poteza, generisanja legalnih poteza i sl.
Struktura koja opisuje potez treba da sadrzi informacije
dovoljne da bi se potez odigrao, ali pozeljno je (mada ne i
neophodno) i da bi se eventualno vratio. Kod jednostavnih
igara, kao sto je npr. igra iks-oks dovoljne su infor- macije o tome
koji je igrac potez odigrao6 i na kojem polju. Kod igre reversi, to
vise nisu dovoljne informacije, jer na osnovu njih ne moze biti vrac
en potez. Naime, na osnovu informacije o igracu i polju ne moze
se rekonstruisati pozi- cija pre tog poteza, pa struktura koja opisuje
potez mora da sadrzi i listu zetona koji pri tom potezu menjaju
boju. Kod saha je situacija jos slozenija, jer figure se pomeraju
(a ne dolaze niotkuda kao u igrama iks-oks i reversi), pa pored
oznake igraca, struktura koja opisuje potez mora da sadrzi
informacije i o po- laznom i o odredisnom polju. Pored toga, radi
mogucnosti vracanja poteza, ta struktura mora da sadrzi i
informaciju o (eventualno) pojedenoj figuri, o (eventualno)
izvedenom pesaku (i o figuri u koju je promovisan), kao i informaciju o (eventualno) primenjenom pravilu en-passant7 . Nacin
na koji ce navedeni podaci da budu opisani direktno je uslovljen
strukturom koja opisuje tablu igre. Ukoliko je odabran pristup sa
bitovskom reprezentacijom table i poteza, operacije odigravanja i
vracanja poteza i slicne svodice se na jednos- tavne i brze
logicke operacije AND, OR, XOR, NOT i njihove kombinacije.
Program za igru moze biti tako koncipiran da se potezi koji se
odigravaju ne pamte niti povezuju na bilo koji nacin. Medutim,
ukoliko se zeli mogucnost vracanja poteza (i ako je ta moguc
nost pripremljena pravilnim izborom struk- ture koja opisuje
potez tako da sadrzi sve potrebne informacije), potezi se
tokom partije smestaju u povezanu listu (LIFO tipa, tj. stek). Pored
toga, uko- liko se zeli i mogucnost ponovnog reprodukovanja
partije ili njenog memo- risanja, poteze tokom partije treba
smestati u dvostruko povezanu listu.
Na nivou programa, opisane strukture treba da budu
organizovane tako da omogucavaju igru izmedu dva igraca, kao i
mogucnost da program zameni bilo kog igraca (u celom toku
partije, u pojedinacnom potezu ili samo za da- vanje preporuke).
Provera legalnosti poteza vrsi se u skladu sa pravilima pojedine
igre, a u konkretnom programu, i u skladu sa izabranim strukturama
podataka. Na samom pocetku, naglasimo da pravimo razliku
izmedu termina moguci potezi i legalni potezi: mogucim potezima
nazivamo one koji su legalni u bar jednoj regularnoj poziciji igre.
Ako sam program ucestvuje u partiji kao jedan od igraca i
ako treba da
6

Podatak o tome koji je igrac odigrao potez cesto nije neophodan, jer se potezi
prvog i drugog igraca smenjuju naizmenicno.
7
Rokade se mogu opisati samo preko poteza kralja, pa nije potrebno da
informacija o rokadi bude sadrzana u strukturi potez.

8.6 Implementaciona pitanja

145

odabere svoj potez, koristi se tzv. generator legalnih poteza. Pre


svega u strategijama koje se koriste u sredisnjici partije, vrsi se
pretrazivanje legalnih poteza i po nekom kriterujumu bira se
najbolji potez. Kako se pri tome ide i po nekoliko poteza u dubinu,
ocigledna je neophodnost da generator legal- nih poteza (koji se
oslanja na modul za proveru legalnosti) radi izuzetno brzo. Moduli
za proveru legalnosti i generisanje poteza treba, dakle, da budu
sto je moguce jednostavniji i brzi. Ukoliko izabrane strukture
podataka to dozvol- javaju, pozeljno je da ovi moduli rade koristec
i bitovsku aritmetiku.
Pozeljno je da se legalni potezi generisu ciklicno tj. da se za
svaki legalan potez moze jednoznacno odrediti sledeci legalan
potez. Ovo je potrebno kako bi se obezbedilo brzo ispitivanje svih
legalnih poteza bez obzira na to od kojeg poteza je ispitivanje
pocelo. Takva organizacija legalnih poteza bice koriscena u
algoritmima za sredisnjicu partije, o cemu ce biti reci u
narednim poglavljima.

146

8 Programiranje logickih igara

Glava 9

Genetski algoritmi
Genetski algoritmi (GA) su familija opstih heuristickih
algoritama
globalne pretrage zasnovanih na Darvinovoj ideji
evolucije. Oni pripadaju siroj grupi evolucionih algoritama koji
koriste tehnike inspirisane evolucionom biologi- jom, kao sto su
nasledivanje, mutacija, selekcija, ukrstanje itd. Genetski algoritmi se mogu koristiti za nalazenje tacnog ili pribliznog resenja
nekog prob- lema optimizacije ili pretrage. Mada je jos pedesetih
godina dvadesetog veka bilo racunarskih simulacija zasnovanih na
evoluciji, smatra se da je moderne genetske algoritme uveo Dzon
Holand sedamdesetih godina dvadesetog veka [?], a postali su
popularni kasnih osamdesetih godina.
Tokom prethodnih dvadesetak godina ostvaren je veliki napredak
u razvoju genetskih algoritama. Genetski algoritmi se uspesno
primenjuju na sirokom skupu problema, cesto NP-kompletnih ili
tezih problema, za koje ne postoje efikasna resenja. Neki od tih
problema su problem nalazenja najkraceg puta u grafu, problem
trgovackog putnika, logickim igrama itd. Genetski algoritmi imaju
uspesne primene u ekonomiji, tehnici, bioinformatici, hemiji, fizici
itd. Popularnost
genetskih
algoritama
potice
iz
njihove
uspesnosti, ali i jednos- tavnosti. Naime, ideje na kojima su
genetski algoritmi zasnovani su jednos- tavne za razumevanje i
implementiranje, a daju opsti sistem pretrage primen- jljiv na veliki
broj problema. Uporedo sa nalazenjem brojnih novih primena i
unapredivanjem algoritma, razvijaju se i teorijski osnove genetskih
algoritama, ali jos uvek sa nedovoljno uspeha.
Genetski algoritmi uspesno se primenjuju u optimizacionim
problemima u kojima postoji vise lokalnih ekstremuma. Ipak, iako
cesto nalaze globalne eksremume, za genetske algoritme ne
postoji nikakva garancija o tome da li je u pitanju lokalni estremum
niti o tome sa kolikom greskom je odredeno resenje.

9.1

Motivacija za genetske algoritme

Genetski algoritmi motivisani su prirodnim evolucionim procesima. U


prirodi, evolucija je proces u kojem jedinke koje su najbolje prilagodene
okolini prezivljavaju i ostavljaju potomstvo koje je, najcesce isto tako
ili bolje prilagodeno okolini.
Svaka celija svakog zivog organizma sadrzi hromozome. Svaki
hromozom sadrzi skup gena blokove DNK. Svaki gen
odreduje neku osobinu orga- nizma. Familija gene se cesto
naziva genotip, a familija osobina fenotip. Re-

148

9 Genetski algoritmi

produkcija organizama ukljucuje kombinovanje gena roditelja i,


pored toga, male kolicine mutacije. Jedinka moze biti manje
ili vise prilagoden okolini. Jedinka koja je bolje prilagoddena
okolini u kojoj zivi ima vecu verovatnocu prezivljavanja i
ostavljanja potomstva, a time i prenosenja svog genetskog materijala. Genetski materijal prilagodenih jedinki uglavnom opstaje,
dok genet- ski materijal neprilagodenih jedinki uglavnom nestaje
kroz generacije. Dakle, evolucioni procesi u prirodi su, u odredenom
smislu, optimizacioni procesi procesi u kojima se kroz generacije
optimizuje genetski materijal (tj. osobine organizama) tako da bude
sto bolje prilagoden okolini.

9.2

Osnovni genetski algoritam

Genetski algoritmi se implementiraju kao racunarska simulacija u


kojoj pop- ulacija apstraktno reprezentovanih jedinki (nazvanih
hromozomi ili genotip) koje su kandidati za resenje za optimizacioni
problem (to moze biti numericka vrednost,
matematicka
funkcija, put u grafu itd.), treba da se postupno pri- blizava
boljim resenjima. Jedinke su obicno reprezentovane nizovima
nula i jedinica, ali su moguce i druge reprezentacije (za
probleme
u
kojem
bina- rna reprezentacija nije pogodna).
Postupak se odvija kroz generacije. Pocetna generacija obicno
cine slucajno generisane jedinki ali moze da se zasniva i na
jedinkama koje su (grubi) rezultat neke druge optimizacione
metode.
Obicno u svakoj generaciji postoji isti broj jedinki i za
svaku od njih se racuna njen kvalitet (analogon prilagodenosti
okolini). Funkcija koja pridruzuje te vrednosti jedinkama naziva se
funkcija prilagodenosti, funkcija kvaliteta, funkcija evaluacije1 ili funkcija cilja. Ova
funkcija ima kljucnu ulogu u algoritmu.
Iz jedne generacije se stohasticki, na osnovu vrednosti funkcije
prilagodenosti, biraju jedinke (sa vecom verovatnocom se biraju
one kvalitetnije) koje ce biti prenete u sledecu generaciju i biti
iskoriscene za stvaranje novih jedinki (po- tomstva). Ovaj postupak
izbora jedinki se naziva selekcija. Nad izabranim jedinkama primenjuju
se genetski operatori ukrstanja2 i mutacije i tako dobi- jaju nove
jedinke. Ukrstanjem se od dve jedinke dobija nova (ili dve nove) sa
genetskim materijalom koji je dobijen neposredno od roditelja, tj. od
polaznih jedinki. Mutacijom se modifikuje deo polazne jedinke (i ona
oponasa mutacije koje se u prirodi javljaju pod uticajem spoljnih
faktora). U svakoj generaciji, dakle, dolazi do rekombinacije gena zbog
koje se javlja slicnost sa roditeljskim jedinkama, ali i razlicitost
medu jedinkama iste generacije. Generalno, neke jedinke u novoj
generaciji mogu biti bolje ali neke mogu biti losije od jedinki iz
prethodne generacija, ali se ocekuje da se prosecna prilagodenost
popravlja.
Tako dobijena nova generacija koristi se za sledecu iteraciju algoritma.
Postupak se zauastavlja kada je dostignut zadati broj generacija,
kada je dostignut zadati nivo kvaliteta populacije (najprilagodenije
jedinke u njoj ili nekog procenta najprilagodenijih jedinki) ili kada je
ispunjen neki drugi uslov. Ukoliko je dostignut zadati broj generacija,
nema nikakvih garancija da tekuca najkvalitetnija jedinka ima
zadovoljavajucu prilagodenost.
Opsti genetski algoritam prikazan je na slici .
1
Ponekad se termin funkcija evaluacije koristi za funkciju koja meri performanse
genetskog al- goritma sa nekim fiksiranim parametrima.
2
Ovaj termin nije sasvim u skladu sa znacenjem koji ima u biologiji.

9.3 Reprezentacija jedinki

149

Algoritam: Opsti genetski algoritam


Ulaz:
Izlaz: najkvalitetnija jedinka u tekucoj populaciji
1.Generisi pocetnu populaciju potencijalnih
resenja; 2.Izracunaj prilago

enost

svake

jedinke u populaciji;
3. Izvrsavaj sledecu petlju sve dok nije zadovoljen uslov
zaustavljanja:

Izaberi iz populacije skup jedinki za reprodukciju;


Generisi novu generaciju, primenivsi nad izabranim
jedinkama proces reprodukcije (tj. genetske operatore
ukrstanje i mutaciju);
Izracunaj prilagoenost novogenerisanih jedinki;
Zameni najlosije jedinke u populaciji novogenerisanim
Figure 9.1: Opsti genetski algoritam

Da bi navedeni opsti algoritam bio specifikovan potrebno je definisati


reprezentaciju domena tj. skupa jedinki i funkciju kvaliteta.
Postoje mnoge varijante genetskih algoritama, pa i navedeni
opsti algori- tam takode moze biti variran. Na primer, moguce
je ne prenositi jedinke iz jedne generacije u drugu, vec citavu novu
generaciju dobiti ukrstanjem od iz- abranih jedinki iz prethodne
generacije.

9.3

Reprezentacija jedinki

Jedinke mogu biti reprezentovane proizvoljnom strukturom podataka koja


opisuje njihova svojstva (koju zovemo hromozom). Neophodno je da
hromozom moze
da opise moguce resenje razmatranog problema i da se nad njim
definisu genet- ski operatori (ukrstanje i mutacija). Genetski
operatori treba da budu definisani tako da se njima ne dobijaju
jedinke koje ne predstavljaju moguca resenja (na primer,
nelegalne puteve u grafu), jer bi one samo narusavale performanse
al- goritma.
Pogodno odabrana reprezentacija moze bitno
uticati na efikasnost algoritma.

9.3.1 Binarna reprezentacija


Najcesce i najuspesnije koriscena reprezentacija jedinki je u vidu
nizova bitova. Svaki bit u takvoj reprezentaciji zovemo gen. Dublja
priroda binarne reprezentacije zavisi od konkretnog problema. Na
primer, ako je duzina hromozoma n (bitova)
i ako je prostor mogucih resenja interval realnih brojeva [a, b], onda
je potrebno uspostaviti vezu izmedu nizova n bitova i realnih brojeva
iz datog intervala.
Tako ce binarna reprezentacija 0 00 . . . 0 odgovarati broju a, a binarna
reprezentacija
s n
x

150

9 Genetski algoritmi

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


...1
x
s
x s
x
n
n
s
x
(x

a)
odgovara realni
a+
2n 1
broj
S druge strane, realnom broju x iz intervala [a, b] pridruzujemo
vektor koji predstavlja binarnu reprezentaciju broja
.
.
xa n
(2 1) .
ba
Primer 9.1 Pretpostavimo da naftnu platformu treba postaviti na pogodnom mestu
na putu izmedu tacaka A i B, koji je duzine 5000m. Lokacija platofrme je
pogodnija uko- liko na tom mestu postoje vece rezerve nafte. U biranju lokacije
moguce je meriti pos- tojece rezerve nafte na bilo kojoj tacki izmedu A i B. Moguc
a resenja mogu se reprezen- tovati nizovima bitova duzine 10, tj. brojevima od 0
do 1023. Tacki A tada odgovara
broj
0 i reprezentacija 0000000000, a tacki B broj 1023 i reprezentacija 1111111111.
Tacki
270 C na rastojanju 1320m od tacke A odgovara vrednost 1023 (1320/5000)
ivredreprezentacija
a tacki
na rastojanju 1010000000.
3128m od tacke A odgovara
nost 1023 0100001110,
(3128/5000)
640Di reprezentacija

A (0000000000)
1000

100

D (1010000000)

C (0100001110)
1320

200 270 300

2000

400

30003128

500

600 640 700

B (1111111111)
40005000

800

900

1000

Za vrednost funkcije prilagodenosti jedne tacke moze se uzeti rezerva nafte


izmer- ena u toj taci.

9.4

Funkcija prilagodenosti

Funkcija prilagodenosti daje ocenu kvaliteta jedinke. Ukoliko je


zadatak odred- iti maksimum neke funkcije, onda je prirodna
funkcija prilagodenosti sama ta funkcija.
Pogodan izbor
funkcije prilagodenosti je od izuzetne vaznosti

9.5 Inicijalizacija i zaustavljanje

151

za efikasnost algoritma. Ne postoje nikakvi opsti uslovi koje


funkcija pri- lagodenosti treba da zadovoljava (sem da je definisana
za sve moguce jedinke), mada je algoritam cesto efikasniji za
funkcije koje zadovoljavaju neke specificne
uslove S to je vrednost funkcije prilagodenosti za neku jedinku veca,
.
to ce
bit veca verovatnoca da se ta jedinka koristi za generisanje
sledece generacije. Tokom rada algoritma (tj. tokom ,,procesa
evolucije) generisu se nove gen- eracije, pri cemu se ocekuje
da je ukupna prilagodenost (pa i prosecna pri- lagodenost, jer
je broj jedinki u svim generacijama jednak) sve bolji i bolji.
Primer 9.2 Potrebno je odrediti maksimum funkcije f (x) na intervalu [a, b].
Funkcija je definisana za sve elemente datog intervala, ali nije nuzno ni neprekidna,
ni diferen- cijabilna. Genetski algoritam moguce je primeniti tako da se za funkciju
prilagodenosti koristi upravo funkcija f, a da se za reprezentaciju koristi bitovska
reprezentacija (na
nacin
opisan
poglavlju9.3.1).
Ukolikomogla
je potrebno
odrediti
minimum
(x), onda
bi zaufunkciju
prilagodenosti
da se koristi
funkcija
f. funkcije f

9.5

Inicijalizacija i zaustavljanje

Populaciju jedinki jedne generacije, ukoliko se koristi bitovska


reprezentacija, cini vektor binarnih vektora. U toku resavanja
jednog problema, obicno sve generacije imaju isti broj jedinki.
Taj broj, velicina populacije, je parametar algoritma i on je
cesto nekoliko desetina ili stotina.
Proces inicijalizacije, tj. proces generisanja pocetne populacije
je jednosta- van.
Najsece se pocetna populacija generise
slucajno (tako da pokriva citav prostor pretrage). Ukoliko se
koristi bitovska reprezentacija, jedinke pocetne
generacije se generisu kao slucajni brojevi u intervalu [0, 2n 1], gde je n
duzina
hromozoma u izabranoj reprezentaciji. Dodatno, u pocetnu populaciju
mogu
biti dodate neke specificne jedinke (na primer, iz delova prostora
pretrage za koje se veruje da sadrzi optimalna resenja) ili citava
pocetna populacija moze biti generisana koristeci neki drugi
optimizacioni metod.

9.6

Selekcija

Selekcija obezbeduje cuvanje i prenosenje dobrih osobina


populacije (tj. do- brog genetskog materijala) na sledecu
generaciju.
U svakoj generaciji, deo jedinki se izdvaja za
reprodukciju i generisanja nove generacije. Izdvajanje jedinki koje c
e ucestovavati u reprodukciji zasniva se na funkciji prilagodenosti
i, generalno, prilagodenije jedinke imaju vecu verovatnocu da
imaju potom- stvo. U najjednostavnijim pristupima biraju se jedinke
sa najvecom vrednoscu funkcije prilagodenosti.
U drugim
pristupima se se jedinke biraju slucajno, ali sa verovatnocama
koje su izvedene iz prilagodenosti, pri cemu je moguce da budu
izabrane i neke losije prilagodene jedinke (to moze da pomogne
u odrzvanju genetske raznolikosti i, dalje, u sprecavanju prerane
konvergencije ka nekom lokalnom optimumu). Najpopularnije
strategije selekcije su ruletska i turnirska selekcija.
U bilo kojoj strategiji selekcije postoji opasnost da se neka
kvalitetna jedinka izgubi tokom evolucionog procesa. Elitizam je
varijacija procesa selekcije u ko- joj se najbolja jedinka (ili nekoliko

najboljih jedinki) u generaciji stiti od elimin- isanja ili bilo kakvih


izmena i takva prenosi u sledecu generaciju.

152

9 Genetski algoritmi

9.6.1 Ruletska selekcija


Ruletska selekcija (eng. roulette wheel selection) je proces selekcije
u kojem vece sanse da ucestvuju u reprodukciji imaju
prilagodenije jedinke.
Ako je f (i) vrednost funkcije prilagodenosti za jedinku i, a N
broj jedinki u populaciji, verovatnoca da ce jedinka i biti izabrana
da ucestvuje u reprodukciji jednaka je
f (i)
pi = .
N
j f (j)
Naziv ruletske selekcije potice od analogije koje se
napraviti sa rule- tom.
Ukoliko polja ruleta imaju
proporcionalne verovatnocama jedinki populacije, onda je
biranja m jedinki za reprodukciju analogan odigra- vanja m
ruleta.

moze
sirine
proces
partija

Primer 9.3 Pretpostavimo da populacija ima osam jedinki: a, b, c, d, e, f, g, h i da su


njihove prilagodenosti redom 0.10, 0.30, 0.06, 0.10, 0.40, 0.24, 0.60, 0.20.
Ukupna prilogodenost generacije jednaka je 2.00. Sledeca tabela prikazuje
verovatnoce izbora jedinki u ruletskoj selekciji:
jedinka
prilagodenost
verovatnoca izbora

0.10
0.05

0.30
0.15

0.06
0.03

0.10
0.05

0.40
0.20

0.24
0.12

0.60
0.30

0.20
0.10

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

0.05 0.03

dc

0.20

0.15

eb
a
0.12

0.05

0.10

g
0.30

U opisanom pristupu, podrazumeva da funkcija prilagodenosti


ima samo pozitivne vrednosti. Ukoliko funkcija ne ispunjava taj
uslov, mora se trans- formisati u drugu funkciju prilagodenosti.
Alternativno, jedinke se mogu sor- tirati (opadajuce) po vrednosti
funkcije prilagodenosti i onda verovatnoce izb- ora mogu da im
budu pridruzene po nekoj (opadajucoj) distribuciji.

9.7 Reprodukcija i genetski operatori

153

U ruletskoj selekciji moguce je da jedna jedinka bude vise


puta izabrana da ucestvuje u sledecoj generaciji i reprodukciji.
Prevelik broj ponavljanja istih jedinki lose utice na performanse
algoritma.

9.6.2 Turnirska selekcija


U turnirskoj selekciji, jedinke ,,odigravaju turnire u kojima vece
sanse za pobedu (tj. za prelazak u narednu generaciju) imaju one sa
boljom prilagodenoscu.
Velicina turnira k i verovatnoca p su parametari procesa
turnirske selekcije. Za jedan turnir bira se slucajno k jedinki iz
populacije.
Nakon toga, one se sortiraju po vrednosti funkcije
prilagodenosti i i-ta jedinka u tako sortiranom
nizu se bira sa verovatnocom p(1 p)i1 .
Ukoliko se u procesu selekcije koristi veca velicina turnira, onda
nekvalitetne jedinke imaju manje sanse da budu izabrane.
Selekcija sa velicinom turnira 1 ekvivalentna je slucajnoj selekciji.
U deterministickoj turnirskoj selekciji (p = 1) bira se najbolja jedinka
u svakom turniru.
Jedinkama koje su jednom izabrane moze se zabraniti
ucestvovanje u daljim turnirima.
Turnirska selekcija se moze efikasno implementirati na
paralelnim arhitek- turama.

9.7

Reprodukcija i genetski operatori

U reprodukciji ucestvuju jedinke koje su izabrane u procesu


selekcije. Proces reprodukcije kontrolisu dva genetska operatora:
ukrstanje i mutacija.

9.7.1 Ukrstanje
U ukrstanju (eng. crossover) ucestvuju dve jedinke koje se nazivaju
roditelji. Rezultat ukrstanja je jedna nova jedinka ili dve nove jedinke
koje zovemo deca. Ocekivano je da deca nasleduju osobine roditelja,
ukljucujuci njihovu prilagodenost, pa i da imaju bolju prilagodenost
od svojih roditelja.
Postoji vise jednostavnih varijanti ukrstanja kada se koristi binarna
reprezentacija. U jednoj varijanti dovoljno je izabrati tacke prekida i
prekombinovati nizove bitova jedno dete deo od jedne tacke prekida do sledece
nasleduje od jednog roditelja, a naredni deo od drugog. Ukrstanje
moze koristiti proizvol- jan broj tacaka prekida (s tim da je manji
od duzine hromozoma). Slike9.2i9.3 ilustruju ukrstanje sa jednom i
sa dve tacke prekida.
roditelj 1
roditelj 2
tacka prekida
dete 1
dete 2

Figure 9.2: Ukrstanje sa jednom tacke prekida

154

9 Genetski algoritmi

roditelj 1
roditelj 2

dete 1

tacke
prekida

dete 2

Figure 9.3: Ukrstanje sa dve tacke prekida


Uniformno ukrstanje tipicno daje dva deteta. Kod ovog
ukrstanja svaki bit prvog roditelja se sa verovatnocom p prenosi
na prvo dete i sa verovatnocom
1 p na drugo dete (pri cemu dete koje nije izabrano nasleduje bit
drugog
roditelja). Verovatnoca p je obicno jednaka 0.5, ali moze biti i drugacija.
U poluuniformnom ukrstanju, kombinuju se tacno pola bitova
koji se raz- likuju kod roditelja. Dakle, najpre se racuna Hamming
rastojanje (broj razlicitih bitova) izmedu roditelja i deli se sa dva.
Dobijena vrednost daje broj bitova koji ce se prenositi na decu kao
u shemi uniformnog ukrstanja.
Ukrstanje se primenjuje na sledeci nacin: iz skupa jedinki
izabranih u pro- cesu selekcije biraju se dve razlicite i ukrstaju sa
zadatom verovatnocom (obicno izmedu 0.6 i 0.9. Tacke prekida se
biraju slucajno iz skupa svih mogucih tacaka prekida.

9.7.2 Mutacija
Mutacija je operator koji u binarnoj reprezentaciji menja jedan ili
vise slucajno odabranih gena. Od jedne jedinke dobija se jedna
nova jedinka. Verovatnoca da ce neki bit neke jedinke populacije
biti promenjen je parametar algoritma i cesto je izmedu 0.01 i 0.001.
Mutacija se primenjuje nakon procesa ukrstanja.
Uloga mutacija u genetskim algoritmima je da spreci da
jedinke u pop- ulaciji postanu suvise slicne i da pomogne u
obnavljanju izgubljenog genet- skog materijala. Na primer, ukoliko u
jednoj generaciji sve jedinke imaju istu vrednost jednog gena, onda
taj gen samo ukrstanjem nikada ne bi mogao da se promeni.
Kontrolisano podsticanje genetske raznolikosti mutacijom cesto
omogucava izbegavanje lokalnih ekstremuma. Mutacije, naime,
omogucavaju razmatranje novih delova prostrora pretrage u nadi
da ce se naici na globalnim ekstremum. Dovoljno je da se jedna
jedinka priblizi globalnom ekstremumu, pa da za nekoliko
generacija sve jedinke budu u tom delu prostora pretrage.
Ukoliko je verovatnoca mutacije za svaki bit jednaka jedinici,
onda se al- goritam pretvara u slucajnu pretragu. Ukoliko je ta
verovatnoca jednaka nuli, onda nema mutacije i algoritam ce
verovatno brzo dospeti do nekog lokalnog ekstremuma.

9.8

Zaustavljanje

Genetski algoritam se izvrsava, tj. evolucioni proces stvaranja


novih generacija se ponavlja, sve dok nije zadovoljen neki uslov
zaustavljanja. Najcesce se ko- riste sledeci uslovi zaustavljanja:

9.9 Parametri algoritma

155

Pronadeno je resenje koje zadovoljava unapred zadate


(minimalne) kri- terijume.
Dostignut je zadati broj generacija.
Funkcija prilagodenosti je upotrebljena zadati broj puta.
Vrednost prilagodenosti najboljih jedinki se u nekoliko generacija ne
popravlja.
Kombinacija nekoliko uslova.

9.9 Parametri algoritma


Za vecinu varijanti genetskog algoritma potrebno je specifikovati
velicinu pop- ulacije, verovatnocu ukrstanja i verovatnocu
mutacije.
Verovatnoca ukrstanja je u direktnoj vezi sa procentom jedinki
koje se na kraju jedne iteracije eliminisu, tako da je dovoljno zadati
jedan od njih. Ukoliko je zadata verovatnoca ukrstanja, onda ce
za svaki par razlicitih jedinki iz skupa dobijenog selekcijom da budu
generisani njihovi potomci sa tom verovatnocom
i sve tako generisane jedinke zamenice najlosije prilagodene
jedinke iz prethodne generacije. Ukoliko je zadat procenat jedinki koje
se na kraju jedne iteracije eli- minisu (obicno izmedu 25% i 50%),
onda se u fazi ukrstanja parovi razlicitih jedinki biraju i ukrastaju
sve dok nije generisano dovoljno jedinki da zameni one koje ce biti
eliminisane.
Izbor parametara genetskog algoritma je cesto od kljucne
vaznosti za nje- gove performanse (brzina dolazenja do resenja
i kvalitet resenja).
Optimizo- vanje parametara genetskog
algoritma je kompleksan problem koji se najcesce resava
izvodenjem velikog broja eksperimenata.
Za izbor pogodnih
param- etara cesto se koriste sami genetski algoritmi. Parametri
genetskog algoritma ne moraju biti fiksirani, vec mogu da se
menjaju i prilagodavaju tokom rada (na primer, ukoliko su tekuce
jedinke raznolike, onda treba povecati verovatnocu ukrstanja, a
smanjiti mutaciju, a ukoliko su slicne onda treba uraditi obratno,
kako bi se povecale sanse za priblizavanje globalnom optimumu).

9.10 Svojstva genetskih algoritama


Genetski algoritmi
imaju sirok domen i uspesno se
primenjuju na velikom broju optimizacionih problema, cesto
onih koji su NP-kompletni ili tezi. S druge strane, jos uvek
nema mnogo teorijskih rezultata koji govore o svo- jstvima
genetskih algoritama, o kvalitetu resenja koja daju, pa cak ni o
tome zasto su genetski algoritmi uspesni. U daljem tekstu, bice
reci o nekim dobrim i losim stranama genetskih algoritama.
Funkcija koja se optimizuje. Funkcija f koja se optimizuje moze biti
potpuno proizvoljna i ne mora da zadovoljava nikakve uslove
(na primer, da bude neprekidna ili diferencijabilna). Ipak,
cesto nije lako konstruisati odgo- varajucu funkciju
prilagodenosti. Genetski algoritmi se ne mogu uspesno
primeniti na probleme za koje se moze reci samo da li je
nesto resenje ili nije. Dodatno, cesto, posebno u primenama
u vestackoj inteliegenciji (na

156

9 Genetski algoritmi
primer, kretanje robota), funkcija koju treba optimizovati nije
zadata ek- splicitno vec implicitno, kroz veci broj kriterijuma.

Parametri algoritma. Parametri genetskih algoritama daju mogucnost


uspesnog prilagodavanja specificnom problemu. No,
upravo ta sloboda izbora parametara je istovremeno i pretnja
da mogu da budu korisceni parametri koji daju veoma lose
performanse.
Domen genetskih algoritama. Genetski algoritmi primenljivi su na
veoma sirok skup problema. Ipak, uspesno resavanje
speficnih problema zahteva iz- bor pogodne reprezentacije, kao
i izbor pogodnih parametara, sto je tezak
proble S tavise, cak i ako su parametri dobro izabrani, genetski
m.
algoritam ce najcesce davati losija resenja od pristupa koji je
specijalizovan za problem koji se resava. Otuda i zapazanje
da su ,,neuronske mreze i genetski algoritmi drugo i trece
najbolje resenje za skoro bilo koji opti- mizacioni problem.
Kvalitet resenja. Ponavljanjem postupka moze se dobiti veca pouzdanost
resenja.
Ukoliko nije nadeno resenje koje je globalni optimum,
cesto je nadeno resenje koje je dovoljno dobro. Dodatno,
kao rezultat algoritma moze se smatrati neki skup najboljih
resenja, sto je cesto veoma pogodno. S druge strane,
genetski algoritam ne daje nikakvu garanciju da je pronadeno
resenje globalni optimum.
I zaista, genetski algoritmi
cesto imaju ten- denciju da idu ka lokalnim optimumima.
Zahtevani resursi. Genetski algoritmi se jednostavno implementiraju,
a pos- toji i mnostvo raznolikih dostupnih implementacija.
Iako su algoritmi i implementacije jednostavni, izvrsavanje
genetskih algoritama je cesto veoma vremenski i memorijski
zahtevno.

9.11 Primer primene genetskih algoritama evolucija agenta


Kao sto je vec receno, genetski algoritmi predstavljaju heuristicku
metodu za optimizaciju funkcija. Kako na ovako apstraktno opisanom
domenu nije ocigledna sirina primenljivosti genetskih algoritama, u
ovom poglavlju bice dat jedan konkretan, jednostavan, ali
ilustrativan primer.
Neka je potrebno opisati agenta koji je u stanju da brzo vozi
automobil po stazi za karting. Staza ima start koji je ujedno i cilj i
ima krivine ulevo i udesno. Staza je izdeljena na polja. Voznju
je potrebno zavrsiti sto brze. Agent raspolaze sa nekoliko
akcija prebacivanje u brzu voznju, prebacivanje u sporu voznju,
skretanje ulevo i skretanje udesno. Takode je moguce da agent ne
preduzme nikakvu akciju. Bilo koju akciju da preduzme, agent
nastavlja da se krece (i) napred.
Agent raspolaze skupom
senzora jednim koji meri brz- inu (sporo, brzo) i senzorima za
prepreke levo, desno, jedno polje napred i dva polja napred.
Pretpostavljamo da staza nema slepih krakova niti grananja, pa ako
postoji prepreka na polju ispred, onda postoji tacno jedno
slobodno polje levo ili desno. U toku kretanja, agent ne moze
skretati ukoliko se krece brzo.

9.11 Primer primene genetskih algoritama evolucija agenta

157

Kako bi voznja bila sto pre zavrsena, pozeljno je da agent


ubrza kada su oba polja ispred njega slobodna, da uspori kad
primeti prepreku dva polja is- pred i da skrene na slobodno polje
kada primeti prepreku na polju neposredno ispred.
Prilikom modelovanja ovog problema, potrebno je specifikovati
osnovne el- emente genetskog algoritma, pocev od reprezentacije
hromozoma. Zarad jed- nostavnosti, koristicemo modifikovanu
binarnu reprezentaciju. Svaki senzor
kojim agent raspolaze moze da daje dve vrednosti. Stoga agent
ne moze raz- likovati vise od 25 = 32 stranja. Neka od tih stanja
se nece pojavljivati u toku voznje (na primer, prepreke i
neposredno napred i levo i desno), ali nece biti unapred
odbacena
radi
jednostavnosti
kodiranja
i
dekodiranja
hromozoma.
Svako od mogucih stanja predstavljace jednu poziciju u
hromozomu na kojoj se belezi akcija koju agent u tom stanju
preduzima. Akcije se mogu kodirati ce- lim brojevima od 0 do 4, na
primer, 0 ne preduzimati nista, 1 ubrzati, 2 usporiti, 3
skrenuti levo i 4 skrenuti desno. Na osnovu ovoga, hromozom
agenta koji u svakom stanju samo skrece desno bio bi
predstavljen pomocu niza od 32 cetvorke.
Dekodiranje
hromozoma moze da se realizuje tako sto bi se svakom od
senzora dodelio jedan bit pri cemu bi njegova vrednost u slucaju
postojanja prepreke bila 0, a u suprotnom 1 i u slucaju sporog
kretanja 0, a u suprotnom 1. Ovi bitovi bi se poredali u fiksiranom
poretku, na primer, brzina, polje neposredno ispred, dva polja
ispred, polje levo i polje desno. Tada bi se akcija u slucaju brzog
kretanja i sa preprekama levo i desno, a bez prepreka na sledeca
dva polja nalazila zapisana u hromozomu na mestu sa indeksom
(10011)2 = 19.
Ukrstanje moze da bude sa jednom tackom prekida, a mutacija moze
da se
realizuje tako sto bi na svakoj poziciji svakog hromozoma sa nekom
unapred zadatom malom verovatnocom trenutna vrednost bila
zamenjena nekom slucajno izabranom od preostalih. Time su
definisani genetski operatori.
Selekcija moze da bude jednostavna ruletska.
Funkcija koja se optimizuje u ovom slucaju nije eksplicitna,
jer se njena vrednost ne moze izracunati direktno na osnovu
samog hromozoma. Stoga ce funkcija prilagodenosti da se
izracunava simuliranjem ponasanja agenta na nekoj stazi koja
ukljucuje sve pomenute aspekte voznje (skretanje, ubrzavanje,
itd.). Voznja ce biti simulirana tako sto ce agenta u
svakom koraku da se pomera po jedno polje duz staze u
pravcu kretanja. Pri tome se u svakom koraku dekodira
hromozom i odreduje se akcija koju agent preduzima. Svako polje
koje agent prede sporo boduje se sa 1, a svako polje koje se prede
brzo, boduje se sa 2. Na taj nacin ce prilikom selekcije biti
favorizovani agenti koji brze prelaze stazu. Kako je najvaznije da
agent uopste zavrsi trku, a tek onda da je zavrsi sto brze,
svaki agent koji zavrsi trku dobija dodatne poene (na primer,
onoliko koliko staza ima polja). Na taj nacin se agenti koji
zavrsavaju trku favorizuju u selekciji u odnosu na ostale, pa se
evolucija ubrzava ka njima. Na navedeni nacin je zavrseno
dizajniranje svih aspekata genetskog algoritma.

9.11.1

Implementaciona pitanja

158

9 Genetski algoritmi

Deo III

Masinsko ucenje

Glava 10

Uvod
Masinsko ucenje je oblast vestacke inteligencije koja se moze
definisati na ra- zlicite nacine. Jedna definicija bi mogla biti da je
to disciplina koja se bavi iz- gradnjom prilagodljivih racunarskih
sisitema koji su sposobni da poboljsavaju svoje
performanse
koristeci informacije iz iskustva.
Masinsko ucenje bi se
moglo definisati i kao disciplina koja se bavi proucavanjem
generalizacije
i konstrukcijom i analizom algoritama koji
generalizuju.
Prva definicija je bliza inzinjerskom i prakticnom racunarskom
nacinu razmisljanja sa akcentom na resavanju konkretnih problema i
implementaciji. Druga je bliza cistom matematickom razmisljanju i
statistici. Mi se necemo ograniciti na samo
jedan od njih.
Preciznu definiciju je nezahvalno traziti, kako zbog cestog
preklapanja sa drugim disciplinama, tako i zbog cinjenice da se radi
o oblasti koja je ponikla iz nevezanih razmatranja problema ucenja
u razlicitim domenima, bez zajednicke teorijske osnove. Iako su se
prva teorijska razmatranja pojavila jos kasnih 60- ih u radovima
Golda, univerzalne teorijske osnove su se pocele ucvrscivati
tek tokom 80-ih godina proslog veka. Najvazniji teorijski pristupi
su Goldov model granicnog ucenja (learning in the limit), Valiantov
PAC (Probably Approx- imately Correct) model i verovatno najkompletnija
statisticka teorija ucenja.
Masinsko ucenje je zanimljivo, izmedu ostalog, i zbog svoje
teznje da se priblizi ljudskom ucenju po efikasnosti, kao i da
ga objasni, odnosno pruzi teorijski model za njega. Naravno, oba
cilja su za sada daleko od ostvarenja u punom smislu.
Neka od najvaznijih pitanja masinskog ucenja su:

S ta se moze nauciti i pod kojim uslovima?


Kako se povecava efikasnost ucenja u zavisnosti od obima iskustva?
Koji su algoritmi pogodni za koje vrste problema?
Odgovore na ova pitanja treba traziti upravo kroz teorijske
modele ucenja u okviru kojih se u ovom pogledu vec doslo do
znacajnih rezultata.
Razlog zbog kojeg su prakticni rezultati prethodili teorijskim bi
lako mogao biti taj sto je ova oblast duboko motivisana prakticnim
primenama. Postignuti su rezultati u raznim oblastima.

162

10 Uvod

Jedan od zanimljivijih prakticnih rezultata je postignut od


strane sistema ALVINN zasnovanog na neuronskoj mrezi, krajem
osamdesetih godina dvade- setog veka, koji je naucen da vozi
javnim putem u prisustvu drugih vozila bez ljudske pomoci brzinom
od oko 110km/h. Uspesno je vozio na putu duzine oko 140km.
Sistemi za prepoznavanje govora takode koriste masinsko
ucenje u nekoj formi. Sistem Sphinx, takode sa kraja osamdesetih,
se oslanja na neuronske mreze i skrivene Markovljeve modele u
prilagodavanju izgovoru razlicitih ljudi, karakteristikama mikrofona,
pozadinskoj buci i slicno.
Jedan od najpoznatijih primera primene masinskog ucenja
je sistem TD- Gammon za igranje igre Backgammon konstruisan
devedesetih godina. Igrajuci protiv sebe preko milion partija i
nastavljajuci da uci u igri sa ljudskim igracima, dostigao je nivo
igre u rangu svetskog sampiona. On kombinuje ucenje uslovljavanjem (eng. reinforcement learning) sa neuronskom mrezom
koju koristi za internu reprezentaciju naucenog znanja.
Jedan od skorijih rezultata je ucenje sistema koji kontrolise
robotsku ruku da citanjem napona misica preko povrsine koze
izvodi zeljenje pokrete.
Poslednjih godina Microsoft razvojni centar u Srbiji radi na razvoju
sis- tema za prepoznavanje rukom pisanog teksta koji su zasnovani na
masinskom ucenju. Sistem se trenira na osnovu uzoraka koje su pisali
razliciti ljudi. Takode, radi se na prilagodavanju sistema rukopisu
korisnika. Posebna paznja je posvecena prepoznavanju u
specijalizovanim domenima. Neki od njih su prepoznavanje
matematickih formula, hemijskih dijagrama i arhitektonskih crteza.
Takode jedna od najskorijih primena masinskog ucenja je
sistem koji je u stanju da vodi dijalog sa korisnikom u cilju pruzanja
informacija koje se odnose na primer na ugostiteljske objekte u
gradu u kome se korisnik nalazi. U ovom problemu je potrebno da
sistem u odredenom smislu razume zahteve koris- nika, da se
prilagodi izgovorima razlicitih ljudi, da razlikuje pozadinsku buku od
reci koje korisnik izgovara i slicno. Ovaj sistem se zasniva na
ucenju uslovl- javanjem.
Problemi koji se pri ovome javljaju su razlike izmedu razlicitih
ljudi, razlike u polozajima i pokretima ruke u vreme ucenja i
u vreme koriscenja, zamor misica, znojenje i slicno.
U
ovom problemu su se pokazali uspesni pristupi bazirani na
neuronskim mrezama i metodi potpornih vektora.
Koliko god primene masinskog ucenja bile raznovrsne, postoje
odredene karakteristike zadataka koje se cesto ponavljaju. Stoga
je moguce govoriti o vrstama zadataka ucenja koje se cesto srec
u. Klasifikacija je verovatno najcesci zadatak ucenja u praksi.
Ona predstavlja prepoznavanje vrste objekata. Na primer da li
odredeno elektronsko pismo predstavlja nezeljenu postu (eng.
spam) ili ne. Regresija je zadatak ucenja u kome objektima
odgovaraju vrednosti iz skupa realnih brojeva. Na primer,
predvidanje duzine zivota osobe u zavis- nosti od njenih zivotnih
navika (bavljenjem sportom, pusenje, i slicno).

10.1

Generalizacija i apstrakcija

Deduktivno zakljucivanje, vodeno zakonima logike, moze se


smatrati osnovnom karakteristikom inteligentnog ponasavanja.
Ovakvo zakljucivanje jedan je od osnovnih nacina zakljucivanja
kod ljudi. Druga karakteristika inteligentnog ponasanja koja se
moze primetiti i kod zivotinja je prilagodavanje ponasanja

10.2 Primer problema ucenja

163

jedinke okolini u kojoj se ona nalazi. Kroz evolutivne procese,


prilagodljivost se postize i kod nizih organizama, ali je ova
sposobnost sa tacke gledista vestacke inteligencije posebno
zanimljiva kod zivotinja i ljudi kod kojih se manifes- tuje u toku
zivota jedinke. Kod njih se prilagodavanje postize ucenjem na
os- novu primera iz iskustva i primenom naucnog znanja u slicnim
situacijama u buducnosti. Primera radi, za zivi organizam je
znacajno da uoci kljucne karak- teristike neke situacije ili skupa
situacija u kojima preduzimanje neke akcije dovodi do pozeljnih
odnosno nepozeljnih posledica po organizam. Prepozna- vanje
slicnih situacija u buducnosti omogucava organizmu da
preduzimanjem adekvatne akcije u situaciji u kojoj se nalazi
predupredi ishode nepovoljne po njega ili dovede do ishoda koje su
za njega povoljni.
Apstraktnije razmatrano, moguce je govoriti o donosenju
zakljucaka o nepoz- natim slucajevima, na osnovu znanja o nekim
drugim, poznatim, slucajevima. Proces u kome se znanje koje vazi
za neki skup slucajeva prenosi na neki njegov nadskup, naziva se
generalizacijom ili induktivnim zakljucivanjem. Generalizacija predstavlja
jedan od osnovnih koncepata masinskog ucenja.
Koncept generalizacije je direktno povezan sa konceptom
apstrakcije. Naime, da bi generalizacija bila uspesna, odredeni
apsekti entiteta o kojima se rezonuje moraju biti zanemareni ukoliko
nisu od sustinskog znacaja za generalizaciju. Primera radi, ukoliko
je potrebno nauciti vestacki sistem da prepoznaje rukom pisani
tekst i da ga prevodi u elektronski tekstualni zapis, potrebno je da
sistem zanemari specificnosti koje postoje kod razlicitih ljudi u
visini i nagibu slova ili brzini i ostrini poteza prilikom pisanja.
Kontrola generalizacije i apstrakcije je jedna od kljucnih tema u
teorijskom razmatranju masinskog ucenja.
Za jednostavan primer generalizacije moze se uzeti sledeci
primer. Sistem koji prepoznaje rukom pisani tekst bi na osnovu
nekoliko primera mogao da zakljuci da se broj 0 pise kao elipsa ili
krug koji prilikom pisanja mogu evenu- talno biti malo otvoreni. U
ovom slucaju, generalizacija je korektna. Za razliku od deduktivnog
zakljucivanja, proces generalizacije ne pruza garancije da su
zakljucci ispravni. Tako, na primer, zakljucak da se broj 1 uvek
pise podvucen crticom potkrepljen nekolicinom takvih primera ne
bi bio korektan iako je kao induktivni zakljucak moguc. Iako
zakljucci dobijeni generalizacijom ne moraju biti tacni, induktivno
zakljucivanje je i dalje veoma znacajno. To je jedan od osnovnih
nacina za formiranje predstava o okruzenju, situacijama ili
uzrocno posledicnim odnosima ili formalnije receno za
pravljenje modela podataka iz iskustva. Ukoliko su u nekom domenu
greske u zakljucivanju prihvatljive, al- goritmi induktivnog
zakljucivanja omogucavaju zakljucivanje i bez temeljnog
poznavanja i kompletnog formalnog opisivanja domena na koji se
primenjuju. Takode, mogu biti efikasniji od algoritama deduktivnog
zakljucivanja.

10.2

Primer problema ucenja

Pretpostavimo da smo zapoceli izgradnju specijalizovanog


pretrazivaca Inter- neta i da zelimo da omogucimo korisnicima
da pretrazuju samo racunarske clanke. Da bi ovo bilo moguce
potrebno je da sistem bude u stanju da razlikuje clanke iz oblasti
racunarstva od ostaliih clanaka. Mozemo primetiti da se radi o
problemu klasifikacije.
Kako bi sistem naucio da ispravno
klasifikuje, prvo mu je potreban odredeni skup primera koji bi
sadrzao kako racunarske, tako i clanke iz drugih oblasti. Recimo
da je unapred sakupljeno 3000 clanaka po

164

10 Uvod

Figure 10.1: Plavi krugovi predstavljaju racunarske clanke, a


crveni ostale.
X koordinata
predstavlja
frekvenciju
reci
racunar, a koordinta Y predstavlja frekvenciju reci datoteka.

1500 iz obe klase. Iz obe klase cemo izdvojiti po 500 clanaka kako
bismo posle ucenja procenili kvalitet sistema.
Da bi sproveli ucenje, potrebno je da ove clanke pretstavimo u
nekom ob- liku koji je pogodan za algoritam ucenja i koji bi
mogao na neki nacin da reprezentuje osnovne karakteristike na
osnovu kojih se clanci iz ove dve kate- gorije mogu razlikovati. Za
to nam je potrebna ideja kako bismo razlikovali clanke.
Ocekivano je da ce u clancima iz racunarstva biti cesce
pominjani racunarski pojmovi nego u ostalim clancima. To
svojstvo bi se moglo iskoristiti za razlikovanje clanaka.
U skladu sa ovim, mozemo nabrojati sve reci iz nekog recnika
racunarske terminologije koje se pojavljuju u svim clancima
koje imamo.
Svaki clanak mozemo predstaviti vektorom
frekvencija ovih reci. Frekvencija neke reci u clanku se racuna
tako sto se broj pojavljivanja te reci podeli ukupnim brojem
pojavljivanja svih reci u clanku. Ako je x vektor koji odgovara
nekom clanku, onda cemo frekvencije izabranih reci oznacavati
sa xi .
Posmatrajmo ove vektore geometrijski, kao da su tacke u
euklidskom pros- toru. Jednostavnosti radi, pretpostavicemo da se
u recniku nalaze samo dve reci racunar i datoteka.Ukoliko
su u clancima iz jedne kategorije ovi racunarski termini
visokofrekventni, a u drugim niskofrekventni, tacke koje
odgovaraju racunarskim clancima ce se grupisati dalje od
koordinatnog pocetka, dok ce se ostale grupisati blize njemu.
Pojednostavljen prikaz je dat na slici 10.2.
Izmedu ovih tacaka bi se mogla provuci prava koja bi ih
razdvajala kao na
slici10.2. Ako nam je ova prava poznata, onda za neki nov,
nepoznat clanak
mozemo reci da je iz oblasti racunarstva ukoliko se vektor koji
mu odgovara nalazi sa iste strane prave kao i vektori racunarskih
clanaka koji su nam poz- nati. U suprotnom bismo smatrali da
clanak nije iz oblasti racunarstva.
Jednacina prave ima oblik

10.2 Primer problema ucenja

165

Figure 10.2: Osim krugova koji predstavljaju clanke, prikazana je i


prava koja ih razdvaja

ax + by + c = 0
Neka je f (x) = 1 ukoliko je x clanak iz oblasti racunarstva i f
(x) = 1 u suprotnom. Ocigledno, funkcija sgn(ax + by + c), gde
sgn(t) oznacava znak vrednosti t, pruza informaciju sa koje strane
prave se nalazi tacka (x, y).
Pronalazenje zeljene prave mozemo posmatrati kao
pomeranje neke po- lazne prave dok ona ne bude pozicionirana
izmedu tacaka koje treba da razd- vaja.
Formalno, da bismo
nasli razdvajajucu pravu, potrebno je da nademo koeficijente a,
b i c tako da funkcije f (x) i sgn(ax + by + c) budu jednake ili makar
jednake u vecini slucajeva. Kako bismo to uradili potrebno je da
for- mulisemo algoritam ucenja koji ce na osnovu podataka koje
imamo doci do tih koeficijenata. Algoritam ucenja moze biti
sledeci:
1. Neka je a = 0, b = 0 i c = 0 za svako i i = 0.01.
2. Za svaki trening primer < x, y > za koji nam je poznata
vrednost f (< x, y >):
(a) Izra cunati sgn(ax + by + c) koristeci trenutne koeficijente
a,b i c. (b)Za koeficijente 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 ocigledno da azuriranje koeficijenata u algoritmu
koji koris- timo za ucenje vodi poboljsanju naucene funkcije. Pre
svega, vrednost mora biti mala kako bi korekcije bile male i
postepene. Drugo, primetimo da su x i y uvek pozitivni ili jednaki 0 i
da stoga znak korekcije zavisi od razlike izmedu

166

10 Uvod

vrednosti funkcija f i sgn(ax + by + c). Ukoliko je vrednost funkcije f


veca, povecavamo koeficijente, tako da se vrednost funkcije
sgn(ax + by + c) zbog toga povecava. Analogno u slucaju da je
vrednost funkcije f manja. Kad greske nema, vrednost korekcije je
0. Stoga, ovim se funkcija sgn(ax+by+c) priblizava funkciji f .
Takode se primecuje da su korekcije proporcionalne vrednostima
x i y, odnosno vece su za koeficijente cija promena moze vise
doprineti promeni vrednosti funkcije sgn(ax + by + c) za dati primer.
Teorijsko opravdanje za ovaj postupak lezi u tome sto se radi o
gradijentnom spustu kojim se minimizuje srednjekvadratno
odstupanje funkcije sgn(ax + by + c) od funkcije f .
Kada su koeficijenti a,b i c nadeni, za nepoznati clanak je
dovoljno videti sa koje strane prave se nalazi njegov vektor
frekvencija reci, odnosno da li je sgn(ax + by + c) jednako 1 ili -1.
Kada je ucenje zavrseno, pozeljno je proceniti koliko se sistem
dobro ponasa. Na pocetku smo izdvojili 1000 clanaka koje sad
mozemo klasifikovati. Kad su clanci klasifikovani kao meru
kvaliteta ucenja mozemo izracunati udeo dobro klasifikovanih
clanaka u ukupnom broju clanaka. Pozeljno je da je on sto veci.

10.3

Nadgledano i nenadgledano ucenje

Postoje dve glavne formulacije problema ucenja:


Nadgledano ucenje je pristup problemu ucenja koji se odnosi na
situacije u kojima se algoritmu zajedno sa podacima iz kojih
uci daju i zeljeni izlazi. Algoritam treba da nauci da za date
podatke (ne nuzno trening podatke) pruzi odgovarajuce
izlaze.
Nenadgledano ucenje je pristup problemu ucenja koji se odnosi na
situacije u kojima se algoritmu koji uci pruzaju samo podaci
bez izlaza. Od algo- ritma koji uci ocekuje se da sam uoci
neke zakonitosti u podacima koji su mu dati.
Naravno, ovi drasticno razliciti pristupi se ne odnose na iste
vrste prob- lema.
Primer nadgledanog ucenja je vec
pomenuta klasifikacija clanaka na racunarske i ostale, kod koje
su unapred poznati primeri za razlicite kategorije. Primer
nenadgledanog ucenja je takozvano klasterovanje - uocavanje
grupa na neki nacin slicnih objekata kada nemamo prethodno
znanje o tome koliko grupa postoji ili koje su njihove karakteristike.
Jedan primer primene klas- terovanja bi mogao da bude redukcija
skupa boja slike. Pikseli slike se mogu grupisati klasterovanjem po
njihovoj blizini u RGB prostoru boja, a potom se iz svakog klastera
moze izabrati po jedna boja koja bi ga predstavljala i kojom bi bili
obojeni svi pikseli koji pripadaju tom klasteru.

10.4

Ciljna funkcija i modeli podataka

Ono sto je potrebno nauciti se u masinskom ucenju definise


ciljnom funkcijom. Ona definise zeljeno ponasanje sistema koji
uci.
U slucaju da korisnik zeli da prepozna clanke na
Internetu sa sadrzajem iz racunarstva ciljna funkcija takvim
clancima pridruzuje 1, a ostalim -1.
U ranije navedenom
primeru, to je bila funkcija f . U ucenju igranja saha, ciljna
funkcija bi vrsila pridruzivanje optimalnih poteza pozicijama
sahovske table.

10.5 Podaci

167

Kako su greske pri ucenju moguce i cak sasvim izvesne, ucenje


predstavlja priblizno odredivanje ove ciljne funkcije, odnosno moze biti
videno kao aproksimi- ranje funkcija. Funkciju kojom aproksimiramo
ciljnu nazivamo modelima po- dataka ili hipotezama. Koristicemo oba termina.
U slucaju prepoznavanja racunarskih clanaka model je bila funkcija
sgn(ax + by + c) koja je pridruzivala 1 svim tackama sa jedne strane
prave, a -1 tackama sa druge.
Skup svih dopustivih hipoteza nazivamo prostorom hipoteza. U
masinskom ucenju prostor hipoteza se obicno ne navodi
eksplicitno
nabrajanjem
hipoteza,
vec
je
odreden
reprezentacijom hipoteze.
Drugim recima, prostor hipoteza
predstavlja skup svih hipoteza koje se mogu predstaviti u zadatom
obliku.
Potencijalne
reprezentacije
su
raznovrsne.
Mogu
predstavljati pravila oblika IF...THEN, linearne funkcije, i druge. U
primeru prepoznavanja racunarskih clanaka hipoteze su
reprezentovane pravim definisanim preko vrednosti ko- eficijenata
a, b i c.
Nalazenje hipoteze koja najbolje aproksimira ciljnu funkciju
mozemo videti kao pretragu prostora hipoteza koja je vodenja
podacima, a koju realizuje algo- ritam ucenja. Stoga se u nekom
smislu algoritmi ucenja mogu smatrati algorit- mima pretrage, ali u
prostoru hipoteza pri cemu je uloga podataka iz iskustva nov
element koji nije bio prisutan u ranije izlozenim opstim
pristupima pre- trazi.
Izbor prostora hipoteza je od fundamentalnog znacaja za
kvalitet ucenja. Ukoliko prostor hipoteza ne sadrzi ciljnu funkciju,
onda ona u praksi moze biti samo priblizno naucena. To u
praksi moze biti dovoljno dobro. Pored toga, bogatstvo prostora
hipoteza je od velikog znacaja.
Naizgled paradoksalno,
preterano bogatstvo prostora hipoteza po pravilu dovodi do losijih
rezultata.

10.5

Podaci

Jedna od definicija masinskog ucenja koje su navedene kaze da


se
masinsko
ucenje
bavi
generalizacijom,
odnosno
zakljucivanjem o nepoznatim objektima, na osnovu poznatih
objekata.
Umesto termina objekat, cesce cemo koristiti
termin instanca ili primerak. U slucaju prepoznavanja racunarskih
clanaka, in- stanca je jedan clanak. Instance ce biti u racunaru
predstavljene pmocu nekih podataka koji ih opisuju i kojima ih
identifikujemo.

10.5.1 Reprezentacija podataka


Instance se na neki nacin moraju reprezentovani u obliku koji je
pogodan za primenu algoritama ucenja. Najpogodniji nacin koji se
najcesce koristi kod al- goritama masinskog ucenja uopste je
predstavljanje instanci pomocu nekih nji- hovih svojstava, odnosno
atributa (eng. feature, attribute). Svojstva ili atributi predstavljaju
karakteristike instanci kao sto su boja, velicina, tezina i
slicno. Svaki od izabranih atributa moze imati vrednost koja
pripada nekom unapred zadatom skupu. Te vrednosti su cesto
numericke kao u slucaju tezine koja je skalarna velicina i koja
se najbolje opisuje brojem. Primer numericke vrednosti moze biti i
frekvencija reci u nekom clanku kao sto je to bio slucaj u
primeru sa klasifikacijom clanaka. Atributi takode mogu biti i
kategoricki, odnosno mogu predstavljati imena nekih kategorija
kojima se ne mogu jednoznacno dodeliti smislene numericke
vrednosti ili uredenje. Primer kategorickog atributa moze

168

10 Uvod

biti grad u kome osoba zivi, pol, nacionalnost i slicno.


U
slucaju prepozna- vanja racunarskih clanaka, oznaka klase koju
treba pogoditi 1 za racunarkse clanke i -1 za ostale je takode
kategoricka vrednost iako je predstavljena brojem posto se radi o
dve kategorije za koje su ovi brojevi proizvoljno izabrani.
Skup atributa koji ce se koristiti u zapisu instance generalno
nije unapred zadat, vec ga je potrebno odabrati u skladu sa time
koje su karakteristike in- stanci bitne za dati problem ucenja.
Primera radi, ako je potrebno razlikovati clanke o operativnim
sistemima od clanaka o bazama podataka poznavanje
frekvencija reci racunar i datoteka ne nosi korisnu
informaciju posto su ove reci zastupljene u obe kategorije.
Stoga te atribute nema svrhe koristiti u ovom problemu ucenja.
S druge strane, reci proces i indeks nose vise informacije
posto su uze specificne za pomenuta polja.
Ukoliko je
potrebno razlikovati racunarske clanke od drugih vrsta clanaka
izbor atributa bi mogao da bude upravo obrnut posto reci
proces i indeks mogu imati i drugacija znacenja od onih koja
im se pridruzuju u racunarskoj terminologiji. Postoje i metode za
automatski izbor podskupa atributa iz nekog sireg skupa koje su
najrelevantnije za dati problem ucenja, ali njih ne opisujemo.
Kada su izabrani atributi pomocu kojih se instance opisuju,
svaka instanca se moze predstaviti vektorom vrednosti atributa
koje joj odgovaraju.

10.5.2 Podaci za trening i podaci za testiranje


Prirodno je da svako ucenje polazi od nekih podataka. Podaci na
osnovu ko- jih se vrsi generalizacija, nazivaju se podacima za trening,
a njihov skup trening skup. Testiranje naucenog znanja na podacima
na osnovu kojih je uceno obicno dovodi do znacajno boljih
rezultata od onih koji se mogu kasnije dobiti u pri- menama. Stoga
je pre upotrebe potrebno proceniti kvalitet naucenog znanja. To
se obicno radi tako sto se razmatra koliko je nauceno znanje u
skladu sa nekim unapred datim podacima za testiranje. Podaci za
testiranje cine test skup. Test skup treba da bude disjunktan sa
trening skupom.
C esto se prilikom konstrukcije sistema koji ukljucuje ucenje raspolaze
ogranicenom
kolicinom podataka koja se mora upotrebiti u obe svrhe. Jedan od
standard- nih nacina je da se jedna trecina ili neki blizak
procenat izdvoji unapred za testiranje, a da se trening vrsi na
ostatku.
Takva podela je bila koriscena i u primeru
prepoznavanja racunarskih clanaka. Obicno se ova podela
vrsi slucajnim izborom skupa za testiranje.

10.6

Dizajn sistema koji uci

Zahvaljujuci svom brzom razvoju oblast masinskog ucenja se


znacajno raz- granala, ali i dalje postoje odredene karakteristike
resavanja problema ucenja koje su zajednicke za vecinu
pristupa. Jedna od bitnih zajednickih odlika je nacin dizajniranja
sistema koji uci. Elementi dizajna su vec pomenuti u prethod- nim
poglavljima i sad cemo ih sumirati:
Formulacija problema ucenja:
Nadgledano ili nenadgledano ucenje

Zapis primera

10.6 Dizajn sistema koji uci

169

Izbor ciljne funkcije


Izbor prostora hipoteza
Izbor algoritma
Izbor mera kvaliteta ucenja

Sada je moguce sumirati kako su dati aspekti dizajna bili


izabrani u slucaju prepoznavanja racunarskih clanaka.
Primer 10.1

3000 clanaka je razvrstano u dve unapred fiksirane kategorije (racunarski i


os- tali), tako da je zadatak ucenja bio formulisan kao zadatak nadgledanog
ucenja.
Svaki clanak je pretstavljen vektorom frekvencija reci iz nekog recnika
racunarske terminologije. Kako bi se smanjila velicina zapisa, uzete su u obzir
samo one reci koje se javljaju bar u jednom clanku.
Ciljna funkcija f pridruzuje 1 racunarskim clancima, a -1 ostalim.
Prostor hipoteza odgovara skupu svih pravih u odgovarajucem prostoru.
Hipoteze su funkcije koje pridruzuju 1 tackama sa jedne strane prave, a -1
tackama sa druge strane. Hipoteze se biraju izborom vrednosti koeficijenata a, b
i c.
Algoritam ucenja je bio gradijentni spust za minimizaciju odstupanja
izmedu vrednosti ciljne funkcije i hipoteze na datim primerima.
Za meru kvaliteta ucenja uzet je udeo tacno klasifikovanih clanaka.

U daljem tekstu bice opisana dva najcesca zadatka


masinskog ucenja klasifikacija i regresija. Za oba metoda bice
izlozene i neke metode masinskog ucenja kojima se ti zadaci
cesto resavaju. Takode, uz izlaganje metoda masinskog ucenja,
bice diskutovani i razni bitni koncepti masinskog ucenja.

170

10 Uvod

Glava 11

Klasifikacija
Problem klasifikacije je problem razvrstavanja nepoznate instance u
jednu od unapred ponudenih kategorija klasa. Neki od primera
klasifikacije su razvrsta- vanje bankovnih transakcija u rizicne koje
mogu predstavljati prevaru i ner- izicne koje predstavljaju
uobicajene transakcije, odredivanje autorstva tekstova pri cemu se
tekstu nepoznatog autora pridruzuje jedan od nekoliko unapred
ponudenih autora, razvrstavanje elektronske poste u zeljenu i
nezeljenu (eng. spam) i slicno.
U navedenim primerima svaka instanca (bankovna transakcija,
tekst, elek- tronska poruka) se moze predstaviti nekim izabranim
skupom njenih atributa. Takode, svakoj instanci se kao atribut
moze dodati i oznaka klase kojoj instanca pripada. Problem
klasifikacije se sastoji u odredivanju vrednosti atributa klase na
osnovu
preostalih
atributa
instance.
Formalnije,
problem
klasifikacije se moze videti kao aproksimacija ciljne funkcije koja
svakoj instanci dodeljuje oz- naku klase kojoj ta instanca pripada.
Kljucno zapazanje je da je ciljna funkcija u ovom problemu
diskretna. Pri tom, u opstem slucaju, oznakama klasa se ne
mogu smisleno dodeliti numericke vrednosti niti uredenje. Dakle,
atribut klase, ciju je vrednost potrebno odrediti, je kategoricki
atribut.
Postoji veliki broj metoda kojima se ovaj problem resava. Neke
od njih su metode zasnovane na instancama (eng. instance based
classification), ucenje stabla odlucivanja (eng. decision tree
induction),
metoda
potpornih
vektora (eng. support vector
machines) i metode bajesovske klasifikacije zasnovane na
verovatnoci (eng. bayesian classification). U daljem tekstu opisac
emo prve dve pomenute metode.

11.1

Metode klasifikacije zasnovane na instancama

Osnovna karakteristika metoda zasnovanih na instancama je da ne


grade ek- splicitan model podataka u vidu neke funkcije kao sto to
radi vecina metoda masinskog ucenja. Stoga se klasifikacija ne
vrsi na osnovu vec formulisanog modela, nego na osnovu skupa
instanci za trening. Umesto izgradnje mod- ela, instance
predvidene za treniranje se cuvaju i bivaju upotrebljene tek kad
je potrebno klasifikovati nepoznatu instancu. Time se vecina
izracunavanja premesta iz faze ucenja u fazu primene.

172

11 Klasifikacija

11.1.1 Metoda n-najblizih suseda


Metoda n-najblizih suseda (eng. n-nearest neighbours) se zasniva
na vrlo jed- nostavnom principu nepoznatu instancu treba
klasifikovati u klasu cije su instance najslicnije nepoznatoj.
Koncept slicnosti se najjednostavnije formal- izuje preko funkcija
rastojanja.
Definicija 11.1 Neka je X skup instanci. Funkcija d : X X R predstavlja
rastojanje na skupu X ukoliko zadovoljava sledece uslove:
1. d(x, y) 0, pri tom d(x, y) = 0 x = y (pozitivna definitnost)
2. d(x, y) = d(y, x) (simetricnost)
3. d(x, z) d(x, y) + d(y, z) (nejednakost trougla)
Primer 11.1 Neki primeri rastojanja su:
, .
n
n
d(x, y) =
i (xi yi )

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


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

xy

xx yy

Intuitivno, sto je rastojanje izmedu dva objekta vece, to je


slicnost izmedu njih manja i obrnuto. Naravno, posto je moguce
birati razlicite funkcije rasto- janja, pretpostavka je da izabrana
funkcija rastojanja, u smislu relevantnom za posmatrani domen,
stvarno oslikava razlicitost izmedu dva objekta.
Kada je funkcija rastojanja izabrana, najjednostavniji nacin
klasifikacije je klasifikovanje nepoznate instance u klasu iz koje
potice instanca trening skupa najbliza nepoznatoj instanci. Ovo je
primer metode n-najblizih suseda za n = 1. U opstem slucaju
metoda n-najblizih suseda se sastoji u nalazenju n instanci iz
trening skupa koje su najblize nepoznatoj instanci i njenom
klasifikovanju u klasu ciji se elementi najcesce javljaju medu
pronadenih n najblizih suseda.
U slucaju izjednacenog ishoda izmedu vise klasa, nije moguc
e doneti od- luku, ali se u praksi ovaj osnovni algoritam moze
modifikovati kako bi se ovakvi slucajevi razresili.
Analizirajmo
detaljnije
metodu
n-najblizih
suseda.
Posmatrajmo nepoz- nate instance A i B prikazane na slici11.1.1.
Metodom n-najblizih suseda uz koriscenje euklidskog rastojanja
instanca A biva klasifikovana u crvenu klasu za sve vrednosti n od 1
do 5. Klasifikacija instance A je postojana zato sto se ona nalazi
blizu crvenih instanci, a udaljeno od plavih instanci. S druge
strane, klasa instance B moze da varira u zavisnosti od broja n.
Za n = 1 instanca B se klasifikuje u crvenu klasu. Za n = 2 ne moze
se odluciti. Za n = 3 instanca B se klasifikuje u plavu klasu. Za n
= 4 ponovo nije moguce odluciti, a za n = 5, ona se ponovo
klasifikuje u crvenu klasu. Klasifikacija instance B nije postojana
jer se ona nalazi blizu instanci iz obe klase. Znaci, metoda nnajblizih suseda je postojana u unutrasnjosti oblasti koju
zauzimaju instance jedne klase, ali je nepostojana na obodu te
oblasti. Ovo ponasanje bi se moglo uociti i kod drugih metoda
klasifikacije.
Pored toga sto se nepostojanost klasifikacije moze
demonstrirati menjanjem parametra n, ona se takode moze
analizirati i za fiksiranu vrednost parametra

11.1 Metode klasifikacije zasnovane na instancama

173

Figure 11.1: Stabilnost klasifikacije pomocu algoritma n-najblizih


suseda

n. Moze se primetiti da je za manje vrednosti parametra n


nepostojanost pri variranju vrednosti atributa instance veca nego za
vece vrednosti parametra n. Odredivanje vrednosti parametra n koja
je pogodna za upotrebu se vrsi em- pirijski evaluacijom
uspesnosti klasifikacije za razlicite vrednosti parametra
n. Bira se vrednost n za koju je klasifikacija bila najuspesnija. Mere
i metode pomocu kojih se vrsi evaluacija uspesnosti klasifikacije
bice izlozene kasnije u ovom poglavlju.
Kao sto se moze videti u slucaju metode najblizih suseda,
jos jedno bitno svojstvo metoda zasnovanih na instancama je
njihova lokalnost. Nepoznata instanca se klasifikuje iskljucivo ili
uglavnom na osnovu poznatih instanci koje se nalaze unjenoj blizini.
Ovo svojstvo doprinosi fleksibilnosti modela koje ove metode
(implicitno) grade.

11.1.2 N-grami
Metode masinskog ucenja su cesto formulisane tako da se
jednostavno pri- menjuju na numericke podatke, ali tesko na
podatke u nekom drugom obliku. Stoga se traze nacini da se i
drugi podaci predstave u numerickom obliku.
To cesto
podrazumeva i odredeni gubitak informacije. U slucaju problema
klasi- fikacije tekstova, proteinskih sekvenci i slicnih podataka
cesto se u svrhu pred- stavljanja podataka u numerickom obliku
koriste n-gramski profili [?].
Ako jesimbolja
databroj,
niska
S = sniske
. sza
azbukom
, gde
je N
1s2 . .S,
N nad
pozitivan
ceo
n-gram
nN
, je bilo koja
podniska
susednih
duzine
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. 3grami bi bili: sad, ad_, d_i, _il, ili, li_, i_n, _ni, nik, ika, kad, itd.
N-gramski profil niske je lista uredenh parova (n-gram, frekvencija)
gde je frekvencija izracunata u odnosu na sve n-grame niske.
Ovakvi profili pred- stavljaju reprezentaciju pogodnu za metode
klasifikacije i cesto se koriste za- jedno sa metodom n-najblizih
suseda.

174

11 Klasifikacija

Osnovne prednosti koriscenja n-grama su robusnost (na primer,


nisu mnogo osetljivi na greske u kucanju ili na pojavljivanje reci u
razlicitim gramatickim oblicima), nezavisnost od domena koji se
analizira, efikasnost (dovoljan je jedan prolaz kroz tekst) i
jednostavnost. Problem je eksponencijalna zavisnost broja mogucih
n-grama u odnosu na duzinu n-grama.
N-gramski profili su uspesno korisceni u razlicitim primenama
koje ukljucuju prepoznavanje autorstva tekstova, prepoznavanje
jezika kojim je tekst pisan, prepoznavanje govora i odredene
probleme iz oblasti bioinformatike.
Primer 11.2 U ovom primeru razmotricemo klasifikaciju tekstova prema jeziku. Srpski i engleski jezik bice predstavljenim po jednim kracim tekstom oznacenim sa S1 i
E1. Posto se izracunaju frekvencije n-grama za ta dva teksta, njihovi n-gramski profili cine trening skup. Test skup ce biti dobijen na osnovu cetiri kratka teksta od
kojih su dva na srpskom oznacena sa S2 i S3, a dva na engleskom jeziku oznacena sa
E2 i E3. Klasifikacija ce biti izvrsena pomocu algoritma 1-najblizih suseda. U
tekstovima na srpskom jeziku nisu koriscena srpska slova kako bi se izbegla laka
identifikacija na osnovu pisma.
S1: U prethodnom delu prikazani su teorijski okviri i algoritmi pomocu kojih je
moguce sprovoditi logicko zakljucivanje. Iako zakljucci moraju nuzno slediti iz
zadatih pretpostavki, proces njihovog dokazaivanja nije pravolinijski vec ukljucuje
odredene odluke o pravcu u kome ce se postupak sprovoditi. Drugim recima, uocljivo
je tra- ganje 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 neo- pravdana. 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
robot- ska ruka ima nekoliko mehanickih zglobova cije se kretanje kontrolise
elektricnim im- pulsima. Pri tom, neki zglobovi omogucavaju rotacije samo oko jedne
ose (kao 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 netrivi- jalan zadatak, ali se moze razbiti na sekvencu atomicnih
koraka pokreta pojedinacnih zglobova oko razlicitih osa za odreden ugao. Mozemo
zamisliti da se ovi koraci izvr- savaju strogo jedan po jedan u kom bi slucaju kretanje
ruke bilo znacajno razlicito 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 definicija 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 firm Adaptive A.I. Inc. One way, he says, is to continue
developing

11.1 Metode klasifikacije zasnovane na instancama

175

narrow AI, and the systems will become generally competent. It will become obvious
how to do that. When that will happen or how it will come about, whether through
simbots or some DARPA challenge or something, I dont know. It would be a combination of those kinds of things. The other approach is to specifically engineer a system
that can learn and think. Thats the approach that [my firm] is taking. Absolutely I
think thats possible, and I think its closer than most people think five 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 scruffies. J. Storrs Hall, author of Beyond
AI: Creating the Conscience of the Machine (Prometheus Books, 2007), reduces this
dichotomy to a scientific approach vs. an engineering mind-set. The neats are after a
single, elegant solution to the answer of human intelligence, Hall says. Theyre trying
to explain the human mind by turning it into a math problem. The scruffies just want
to build some- thing, write narrow AI codes, make little machines, little
advancements, use 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 scientific community generally accepted the premise that
AIs could be written to perform specific tasks rea- sonably 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 definisanjem 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 definisati (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
pre- poroda. Rodjen je u rumunskom delu Banata tadasnje Austrije. Skolovao se za
kalud- jera, ali je napustio taj poziv i krenuo na putovanja po celoj Evropi, gde je
primio ideje evropskog prosvetiteljstva i racionalizma. Ponesen takvim idejama radio
je na prosve- civanju 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 na- jpoznatije 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 Klasifikacija

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 first published in three volumes in 1910,
1912 and 1913. Written as a defense of logicism (the view that mathematics is in
some significant 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 influential books on logic ever written.
Prilikom izdvajanja n-grama koriscena je vrednost n = 3. Pri tom je iz tekstova
S1 i E1 izdvojeno po 10 najfrekventnijih n-grama. Oni ce ciniti atribute instanci na
osnovu kojih ce biti vrseno treniranje i testiranje. Trening i test skup su dati u
tabeli 11.1.
N-gram

Trening skup
Test skup
S1
E1
S2
S3
E2
E3
JE
0.012 0
0.013 0.020 0
0
9
1
1
PR
0.012
0.002 0.009
0.014
0
0
5
3
8
8
ANJ
0.007
0
0.008
0.002
0
0
6
2
7
KO
0.007
0
0.001
0.002
0
0
6
6
7
JA
0.007
0
0.003
0.004
0
0
6
3
0
JE
0.006
0
0.008
0.012
0
0
7
2
1
PO
0.006
0.000 0.014
0.008
0
0.001
7
9
7
0
6
SE
0.006
0.001
0.004
0.002
0.001 0.003
2
8
9
7
6
2
NJE
0.005
0
0.006
0.002
0
0
8
5
7
U
0.005
0
0.003
0.006
0
0
8
3
7
TH
0
0.021 0
0
0.027 0.017
2
0
5
THE
0
0.014
0
0
0.020
0.019
8
2
1
HE
0
0.012
0
0
0.018
0.012
0
5
7
ING
0
0.008
0
0
0.001
0.003
8
7
2
NG
0
0.007
0
0
0.003
0.004
8
4
8
CO
0.000 0.007
0
0
0.005
0
4
4
1
ER
0.000
0.006
0
0
0.005
0.003
9
9
1
2
ND
0
0.006
0
0
0.010
0.007
5
1
9
TO
0.001 0.006
0.004 0
0.003
0.001
8
5
9
4
6
TO
0.000
0.006
0.003
0
0.003
0.001
9
5
3
4
6
Table 11.1: Trening i test skup za klasifikaciju tekstova prema jeziku.
Za svaki 3-gram prikazana je njegova frekvencija u tekstu S1 i E1.

11.2 Ucenje stabala odlucivanja

177

Prilikom klasifikacije bice korisceno Euklidsko rastojanje

..
.
n
d(x, y) =
(xi yi )
,
2
i=1

Potrebno je ispitati rastojanja od instanci test skupa do instanci trening skupa.


d(S2, S1) = 0.0124
d(S2, E1) = 0.0417
d(S3, S1) = 0.0133
d(S3, E1) = 0.0450
d(E2, S1) = 0.0482
d(E2, E1) = 0.0149
d(E3, S1) = 0.0397
d(E3, E1) = 0.0141
Posto je rastojanje od instance S2 do S1 manje nego od S2 do E1, zakljucuje
se da je S1 najblizi sused instance S2. Zbog toga se instanca S2 prepoznaje kao tekst
na sprskom jeziku. Slicno se ispravno zakljucuje i da je S3 tekst na srpskom, E2
tekst na engleskom i E3 takode, tekst na engleskom jeziku. Posebno je zanimljivo da
tekstovi S3 i E2 po svom sadrzaju nemaju dodira sa instancama za trening S1 i E1
sto ne ometa postupak klasifikacije.

11.2

Ucenje stabala odlucivanja

Razmotrimo igru 20 pitanja. Jedan igrac zamislja neki predmet, a


drugi treba da pogodi o kom je predmetu rec. Kako bi pogodio o
kom predmetu se radi igrac koji pogada ima pravo da postavi 20
pitanja na koje odgovor moze biti da ili ne. Kada misli da je
postavio dovoljno pitanja, igrac moze dati svoj sud o kom
predmetu se radi i igra se zavrsava. Ocito, proces ispitivanja se
moze predstaviti u vidu stabla koje u svakom cvoru ima po
jedno pitanje, osim u listovima u kojima se nalazi sud igraca o
nepoznatom predmetu. Svaki cvor osim listova ima dve grane
oznacene sa da ili ne koje vode u podstablo koje odgovara
nastavku ispitivanja posle razmatranog pitanja. Ovo je primer stabla
odlucivanja.
Ovakva stabla se mogu uopstiti zanemarivanjem ogranicenja
na 20 pitanja i tako sto bi se dozvolilo da odgovori ne moraju biti
samo da ili ne, vec da mogu pripadati odredenom unapred
definisanom skupu za dato pitanje. Ovakva stabla se mogu
automatski nauciti iz primera koji za svaku instancu ukljucuju
vrednosti njenih atributa i vrednost ciljne funkcije za tu instancu.
Ucenje stabala odlucivanja je metod aproksimacije diskretnih
ciljnih funkcija u kome se naucena funkcija predstavlja u vidu
stabla. Slicno igri 20 pitanja, svakom cvoru stabla odgovara test
nekog atributa instance, a grane koje izlaze iz cvora razlicitim
vrednostima tog atributa. Listovima odgovaraju vrednosti ciljne
funkcije. Instance su opisane vrednostima svojih atributa. Klasifikuju
se polazeci od korena, spustajuci se niz granu koja odgovara
vrednosti testiranog

178

11 Klasifikacija

atributa instance koju klasifikujemo. Klasa se dodeljuje instanci kad


se dode do lista.
Ucenje stabala odlucivanja je vec primenjeno u razlicitim
problemima. Jedan primer se odnosi na predvidanje buduce
potraznje za knjigama u bibliotekama, na osnovu nekih njihovih
atributa (npr. jezik, datum objavljivanja, datum poslednjeg
iznajmljivanja itd.). Knjige za koje se predvida da nece biti skoro
trazene se mogu smestiti u magacin. Istrazivanje je radeno u
biblioteci uni- verziteta Harvard. Sredinom devedesetih stabla
odlucivanja su primenjena u klasifikaciji tumora i prognozi
njihovog ponasanja. Svaka instanca je opi- sivana pomocu 31
atributa, a klasifikacije su date nezavisno od strane vise
strucnjaka. U astronomiji stabla odlucivanja su primenjena u cilju
razlikovanja zvezda i tragova kosmickih zraka na snimcima
teleskopa Habl. Na osnovu 20 numerickih karakteristika, sa
stablima dubine do 9 cvorova, postignuta je pre- ciznost klasifikacije
od 95%. Takode postoje primene i u ekonomiji i drugim oblastima.
Koriscenje stabla odlucivanja nije podjednako pogodno za
sve probleme ucenja. Potrebno je da se instance predstavljaju
pomocu vrednosti fiksnog broja atributa. Skup vrednosti bi trebalo
da bude diskretan i mali, mada se na kontinualne atribute moze
primeniti diskretizacija tako sto bi se skup pode- lio u podintervale.
Svakom podintervalu se pridruzuje oznaka koja zamenjuje
vrednosti atributa iz tog intervala u zapisima instanci. Stabla
odlucivanja se pokazuju posebno primenljiva u slucaju kada je
neophodno predstavljanje dis- junkcija uslova, kada podaci za
trening sadrze greske i kada u trening skupu postoje instance
kojima nedostaju vrednosti nekih atributa.
Ukoliko stablo odlucivanja instanci dodeljuje neku klasu, to
znaci da in- stanca ispunjava sve uslove koji su definisani putanjom
od korena do odgo- varajuceg lista kroz stablo i oblika su
atribut=vrednost. Stoga putanje kroz sta- blo predstavljaju konjunkcije
ovakvih uslova. Za svaku klasu moguce je uociti putanje koje se
zavrsavaju listovima koji odgovaraju toj klasi. Disjunkcija svih
takvih konjunkcija definise instance koje pripadaju datoj klasi
prema datom stablu.
Jedan od najpoznatijih algoritama za ucenje stabla odlucivanja je
ID3 [?]
na koji cemo se skoncentrisati. Ovaj algoritam konstruise stablo
od korena, nanize, pitajuci se u svakom cvoru koji je najbolji
atribut koji se u datom cvoru moze testirati. Ovo se odreduje
statistickim kriterijumom koji meri koliko dobro neki atribut sam
klasifikuje podatke. Atribut ne moze biti dva puta koriscen u
jednoj putanji od korena do lista. Za sve vrednosti odabranog atributa
kreiraju se grane do cvorova naslednika, a podaci za treniranje se
dele izmedu ovih cvorova tako da svaki od njih nasleduje primere
koji imaju odgovarajucu vrednost prethodno testiranog atributa. Za
svaki od cvorova naslednika ovaj postupak se rekurzivno primenjuje
sve dok nije ispunjen bar jedan od sledeca dva uslova: (1) u putanji
od korena do trenutnog cvora iskorisceni su svi atributi, ili (2) sve
instance za trening koje su pridruzene trenutnom cvoru imaju istu
vrednost ciljnog atributa. Svakom listu se pridruzuje najcesca
oznaka instanci za trening koje su mu pridruzene. Algoritam je
preciznije dat na slici11.2.
Bitno je pitanje statistickog kriterijuma koji ce biti koriscen za
izbor najbol- jeg atributa za testiranje u nekom cvoru. ID3 bira
atribut koji maksimizuje takozvani dobitak informacije na skupu
instanci koje su pridruzene posmatra- nom cvoru. Dobitak
informacije predstavlja razlku entropije u odnosu na ciljni atribut
skupa instanci za trening S pre deljenja i prosecne entropije posle
del-

11.2 Ucenje stabala odlucivanja

179

Algoritam: ID3(Primeri, Atributi)


Ulaz: Primeri je skup instanci za trening, a Atributi je lista
atributa koji se mogu testirati u cvorovima stabla.
Izlaz: Stablo odlucivanja koje odgovara datim instancama
1.Napraviti koreni cvor stabla R.
2. Ako sve instance iz P rimeri pripadaju istoj klasi, vratiti cvor
R sa
oznakom te
klase.
3. Ako je Atributi prazna lista, vrati cvor R oznacen
oznakom najcesce klase koja se javlja u Primeri.
4. U suprotnom
Neka je A Atributi najbolji* atribut za testiranje u odnosu
na
Primeri
Neka je A atribut koji se testira u R
Za svaku mogucu vrednost vi atributa A
Dodaj granu iz R koja odgovara testu A = vi

Neka je Primerivi podskup od Primeri takav da svi njegovi elementi imaju vrednost vi atributa A
Ako je Primerivi prazan, onda na dodatu granu iz
R dodati list sa oznakom najcesce klase u
P rimeri
U
suprotnom
na dodatu
granu nadovezati
podstablo
ID3(Primeri
v ,Atributi \ {A})
i

3.Vratiti R.

Figure 11.2: Algoritam ID3

jenja prema nekom atributu A. Entropija predstavlja meru


neuredenosti nekog sistema. Ako sa pi oznacimo verovatnocu da
instanca pripada i-toj kasi, onda se entropija moze definisati sledec
im izrazom:
c

Entropija(S) =

pi log2 pi

i=1

Po definiciji vazi 0 log2 0 = 0. Entropija se moze interpretirati i


kao mini- malni ocekivani broj bitova potrebnih za kodiranje
klasifikacije proizvoljne in- stance iz S. Primera radi, neka je
potrebno poslati informaciju o klasi instance udaljenom primaocu.
Neka je broj klasa c i neka je p0
= 1 (tada je pi = 0
za 1 i c). U tom slucaju je sigurno da ce instanca imati klasifikaciju
0
i nije potrebno nikakvo kodiranje informacije. U slucaju da je pi =
1/c za
0 i c, svi ishodi su jednako verovatni i za kodiranje je potrebno iskoristiti
log2 c bitova. U slucaju raspodele koja nije uniformna, dodeljujuci
krace kodove klasama koje se cesce javljaju, a duze onima
koje se rede javljaju, moze se do-

180

11 Klasifikacija

biti manja prosecna duzina kodiranja. Dobitak informacije stoga


poredstavlja smanjenje u potrebnom broju bitova za kodiranje klase
proizvoljne instance, kada je poznata vrednost koju na njoj ima
atribut A. Dobitak informacije se formalno definise na sledeci
nacin:
.
| Sv |
Dobitak(S, A) = Entropija(S)
Entropija(S )
(11.1)
v
|S|
vV red(A)

gde je c broj klasa, odnosno vrednosti ciljnog atributa, pi udeo elemenata


skupa
S koji
pripadaju
klasi i uA,celom
S, V =red(A)
ih
vrednosti
atributa
a Sv =skupu
{s S|A(s)
v}. predstavlja skup svih moguc
Pored entropije, postoje i druge mere koje se mogu koristiti za
merenje neuredenosti nekog skupa. Jedna jednostavna mera je
greska klasifikacije. Ona predstavlja gresku koja se cini ukoliko se
sve instance nekog skupa klasifikuju u najbrojniju klasu u tom
skupu. Stoga, ako je pi verovatnoca da instanca pri- pada i-toj
klasi, greska klasifikacije se definise izrazom
Err(S) = 1 max pi
i
Za ovu meru se moze definisati dobitak analogan opisanom
dobitku informa- cije ukoliko se u izrazu11.1entropija zameni gre
skom klasifikacije.
Primer 11.3 U tabeli11.2su date instance koje opisuju razlicite zivotinje, sa datom
klasifikacijom koja oznacava da li je zivotinja opasna po coveka. Izdvojili smo
neko- liko karakteristika koje bi mogle biti relevantne u odredivanju ciljne funkcije, ali
smo namerno dodali dva atributa koji nisu relevantni broj nogu i parnost
prosecne visine u okviru vrste, izrazene u centimetrima.
Z ivotinja
Lav
Macka
Koza
Zec
Komodo
zmaj

Velici
na
Velika
Mala
Mala
Mala
Velika

Ishran
a
Meso
Meso
Biljke
Biljke
Meso

Otrovnost

Broj
nogu
4
4
4
4
4

Neotrovn
Neotrovn
a
Neotrovn
a
Neotrovn
a
Otrovna

Parnost
visine
Neparna
Neparna
Parna
Neparna
Neparna

Table 11.2: Skup primera za trening

Da bi se izgradilo stablo odlucivanja, za svaki od atributa je potrebno


izracunati dobitak informacije pri deljenju skupa podataka prema tom atributu. U
prvom koraku, vazi:
2
2 3
3
Entropija(S) = log2 log2 = 0.971
5
5 5
5
Ukoliko se izvrsi podela instanci po vrednosti prvog atributa, dobijamo
Entropija(S|Mala) = 1 log2 1 0 log2 0 = 0 Entropija(S |V
elika) = 0 log2 0 1 log2 1 = 0
Dobitak(S, V elicina) = 0.971

2
0

3
0 = 0.971

Opasn
a
Da
Ne
Ne
Ne
Da

11.2 Ucenje stabala odlucivanja

181

Slicno se dobija:
Dobitak(S, Ishrana) = 0.42
Dobitak(S, Otrovnost) = 0.322
Dobitak(S, Broj nogu) = 0
Dobitak(S, Parnost visine) =
0.171
Odavde se vidi da je najbolji atribut za testiranje u prvom cvoru atribut
Velicina. Stablo koje se u ovom slucaju dobija primenom algoritma ID3 je dato na
slici11.3. U slucaju datih primera za ucenje, dobijeno stablo je bilo ocigledan uzbor
i bez primene bilo kakve metodologije.
VELIC INA

mala

NE

velika

DA

Figure 11.3: Jednostavno stablo odlucivanja


Nesto komplikovanije stablo odlucivanja moze se dobiti dodavanjem
primera iz tabele11.3.
Z ivotinja
Zmija
Pcela ubica
Morska
krava

Velici
na
Mala
Mala
Velika

Ishran
a
Meso
Biljke
Biljke

Otrovnost
Broj
nogu
Otrovna
0
Otrovna
6
Neotrovn
0
a
Table 11.3: Dodatni primeri za trening

Parnost
visine
Parna
Parna
Parna

Jedno rucno konstruisano stablo koje je saglasno sa podacima za trening je dato


na slici11.4. Izbor loseg atributa za testiranje u korenom cvoru je namerno
ucinjen. To dovodi do potrebe za ponavljanjem istih testova u levom i desnom
podstablu, posto informacija dobijena testiranjem u kornenu nije relevantna za
odredivanje klase in- stance. Takode, u slucaju zivotinjske vrste sa parnom
prosecnom visinom koja je otro- vna, imamo nepotreban test vezan za njenu ishranu.
U oba slucaja klasa je ista, pa se taj test moze zameniti listom sa klasom DA.
Upotreba ID3 algoritma daje dosta bolje stablo odlucivanja.
Vrednosti entropije i dobitka informacije se sada razlikuju:
1
1 1
1
Entropija(S) = log2 log2 = 1
2
2 2
2
Ukoliko se izvrsi podela instanci po vrednosti prvog atributa, dobijamo

Opasn
a
Da
Da
Ne

182

11 Klasifikacija
PARNOST VISINE
parna

neparna

OTROVNOST
neotrovn
a

otrovn
a

VELIC
INA
mala

ISHRANA

mes
o

biljke

mes
o

DA

otrovna

neotrovna

ISHRANA

velika
biljke

NE

OTROVNOST

DA

VELIC INA

mal
a

DA

velika

NE

ISHRANA

biljke

NE DA

meso

NE DA

Figure 11.4: Rucno konstruisano stablo odlucivanja

3
3 2
2
Entropija(S|Mala) = log2 log2 = 0.971
5
5 5
5
1
1 2
2
Entropija(S|V elika) = log2 log2 = 0.918
3
3 3
3
5
3
Dobitak(S, V elicina) = 1 0.971 0.918 = 0.049
8
8
Slicno se dobija:
Dobitak(S, Ishrana) = 0.189
Dobitak(S, Otrovnost) = 0.549
Dobitak(S, Broj nogu) = 0
Dobitak(S, Parnost visine) =
0.156
Posle dodavanja novih instanci, najbolji atributi za testiranje su Otrovnost i
Ishrana. Rekurzivnom primenom ovog postupka dobija se stablo na slici11.5. Ono je
ocigledno manje od rucno konstruisanog i ima relevantnije atribute pri vrhu stabla,
dok se dva nebitna atributa uopste ne testiraju.
Kao i drugi metodi ucenja, ID3 se moze shvatiti kao pretraga
prostora hipoteza za onom koja najbolje odgovara podacima za
trening. Prostor pretrage je pot- pun prostor svih stabala odlucivanja.
Svaka diskretna funkcija se moze pred- staviti nekim stablom
odlucivanja, tako da se ne moze desiti da ciljna funkcija nije u
prostoru hipoteza. ID3 u svakom trenutku cuva samo jednu
hipotezu, pa je nemoguce znati koliko ima drugih hipoteza koje su
saglasne sa podacima za trening. Posto nema vracanja u pretrazi
(backtracking), vec se stablo gradi

11.3 Mere kvaliteta i tehnike evaluacije klasifikacije

183

OTROVNOST

neotrovna

otrovna

VELIC INA

mala
NE

DA

velika
ISHRANA
biljke
NE

meso
DA

Figure 11.5: Stablo odlucivanja konstruisano pomocu ID3 algoritma


od jednostavnijeg ka slozenijem, postoji opasnost od dostizanja
lokalnih opti- muma koji nisu globalni. Jedna vrsta vracanja je
odsecanje ili potkresivanje (prun- ing) stabla koje ce biti objasnjeno
kasnije. Zahvaljujuci tome sto ID3 uci iz svih podataka za trening
odjednom, greske u pojedinacnim instancama ne dolaze toliko do
izrazaja.
Treba primetiti da ID3 preferira stabla sa manjom dubinom, kao i
stabla u kojima se atributi koji nose veci dobitak informacije
nalaze blize korenu. Ovo je posledica toga sto izgradnja stabla
pocinje od praznog stabla pri cemu se dodaje nivo po nivo i
nacina na koji se biraju atributi koji se pridruzuju cvorovima.
Afinitet prema kracim stablima je zanimljiva pretpostavka jer je u
skladu sa odavno poznatim filozofskim principom kojim se
cesto vode i naucnici - Okamovom ostricom: entitete ne treba
umnozavati preko potrebe, odnosno najjednostavnije objasnjenje
je verovatno i najbolje. Stabla odlucivanja sa manjom dubinom
imaju manji broj listova. Svakoj putanji od krena do nekog od listova
odgovara po jedno pravilo oblika
IF A1 = v1 A2 = v2 ... An = vn THEN
Klasa = klasa koja odgovara listu
gde su Ai 0 i n tributi koji se testiraju na putanji od korena do
odgo- varajuceg cvora, a vi njihove vrednosti za datu instancu.
Kako stabla sa man- jom dubinom, predstaljaju manje skupove
ovakvih pravila, mozemo ih sma- trati jednostavnijim.

11.3

Mere kvaliteta i tehnike evaluacije klasifikacije

Kada se govori o trazenju modela koji najbolje aproksimira


ciljnu funkciju, potrebno je dati i mere kvaliteta modela, odnosno
ucenja.
Mogu se koristiti razlicite mere u zavisnosti od vrste
problema, ali za neke vrste problma vec postoje neke opste
prihvacene mere. U slucju problema klasifikacije se obicno

184

11 Klasifikacija

koristi preciznost, odnosno broj tacno klasifikovanih instanci podeljen


ukupnim brojem instanci.
U primeru sa prepoznavanjem
racunarksih clanaka, smo up- ravo koristili preciznost kao meru
kvaliteta. Ako je n ukupan broj clanaka i ako sa r oznacimo broj
racunarskih clanaka koji su klasifikovani kao racunarski
clanci i sa o broj ostalih clanaka koji su klasifikovani kao da nisu
racunarski, tada je preciznost u tom primeru
p=

r+o

n
U nekim slucajevima preciznost nije adekvatna mera. Ukoliko
postoje dve klase i jedna je znacajno manja od druge, moguce je
dobiti visoku preciznost tako sto ce se sve instance klasifikovati u
vecu grupu. Takav je slucaj sa testovima koji ustanovljavaju da li je
pacijent oboleo od neke bolesti. Neka bolest ima samo 1% ljudi u
populaciji. Test koji bi uvek prijavljivao da pacijent nema bolest bi imao
preciznost od 99%, ali je neupotrebljiv. Stoga je u takvim slucajevima
bitna mera osetljivost klasifikatora, odnosno njegova mogucnost da
primeti in- stance koje se traze (npr. bolesne pacijente). Opstije,
neka su date dve klase C+ i C koje smatramo pozitivnim i
negativnim primerima neke kategorije.
Na primer pacijenti koji imaju i pacijenti koji nemaju neku bolest.
Tada pod
stvarno pozitivnim instancama podrazumevamo pozitivne instance
kojie su prepoznate kao pozitivne. Pod stvarno negatinvim, instance
koje su negativne i prepoznate kao negativne.
Pod lazno
pozitivnim podrzaumevamo instance koje su negativne, ali su
greskom u klasifikaciji proglasene pozitivnim i pod lazno
negativnim podrazumevamo instance koje su pozitivne, ali su
greskom klasifikovane kao negativne.
Brojeve ovih instanci
oznacavamo redom SP , SN , LP i LN . Ove brojeve obicno
zapisujemo u takozvanoj matrici konfuz- ije koja po vrstama prikazuje
kako su instance klasifikovane, a po kolonama prikazuje koje su
stvarne klase instanci. Ova matrica je prikazana tabelom11.4.
KP
KN

P
SP
LN

N
LP
SN

Table 11.4: Vrste matrice konfuzije u zbiru daju broj instanci koje su
klasi- fikovane pozitivno (KP) i broj instanci koje su klasifikovane
negativno (KN). Kolone u zbiru daju broj instanci koje su stvarno
pozitivne (P) ili negativne (N).
Kada su poznati ovi brojevi, udeo stvarno pozitivnih instanci,
odnosno os- etljivost je definisana kao:
USP =

SP
SP +
LN

odnosno broj stvarno pozitivnih podeljen brojem svih pozitivnih (i


onih koji su klasifikovani kao pozitivni i onih koji su greskom
klasifikovani kao negativni). Udeo stvarno negativnih se analogno
definise
SN
USN = SN + LP
Udeo lazno pozitivnih i lazno negativnih se definisu slicno:

11.3 Mere kvaliteta i tehnike evaluacije klasifikacije

185

ULP =
LP
LP +
SN
Preciznost se moze
izracunati kao
Prec =

ULN =

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 klasifikaciju u slucaju 2 osobe koje obe
imaju bolest. Matrica konfuzije data je tabelom11.4
N
0
39
6
Table 11.5: Matrica konfuzije vezana za klasifikaciju obolelih.
KP
KN

P
2
2

Odavde se mogu izracunati mere kvaliteta:


398
Prec = 400 = 0.995
2
USP = = 0.5
4
USN = 396
=1
396
ULP = 0 = 0
396
2
ULN = = 0.5
4
Preciznost je izuzetno visoka i sugerise odlicno ponasanje klasifikatora. S druge
strane poznavanje udela stvarno pozitivnih otkriva da je ovaj utisak lazan zato sto je
identifikovan mali broj elemenata pozitivne klase.
Pored izbora mere za evaluaciju klasifikacije bitno je izabrati i
nacin na koji se ta mera ocenjuje. C esta praksa je da se model
trenira na jednom skupu po- dataka, a da se evaluira na odvojenom
skupu podataka za testiranje. Pri tome se podela raspolozivih
podataka na podatke za trening i podatke za testiranje vrsi
slucajnim izborom podataka za testiranje.
Medutim, ovakav
nacin evalu- acije moze dovesti do znacajnih oscilacija u
vrednostima mera kvaliteta u zav- isnosti od toga koji je podskup
izabran.
Pouzdaniji nacin evaluacije naucenog znanja je
takozvana unakrsna validacija. Ceo skup podataka kojim se raspolaze
se
deli natrening
n priblizno
jednakih
podskupova.
Jedan podskup
se
izdvaja
se vrsi
na
ostalih
n 1 podskupova.
Posle
treninga,i kvalitet
naucenog
znanja
se ocenjuje na izdvojenom podskupu. Ovaj posupak se ponavlja za
sve ostale izdvojene podskupove i kao finalna ocena kvaliteta se
uzima prosek dobijenih ocena za svaki od podskupova. Za vrednost
n se obicno uzima broj 10. Ovakav postupak daje stabilniju ocenu
kvaliteta. Pored toga, prednost ovog metoda je da se u svakom
od n koraka unakrsne validacije koristi velika kolicina podataka pri treniranju, a da sve raspolozive instance u jednom
trenutku budu iskoriscene za testiranje.

186

11 Klasifikacija

11.4
Preterano prilagodavanje modela podacima
za trening
Vrlo znacajna tema pri evaluaciji naucenog modela je moguc
nost da se pri- likom treninga model previse prilagodi
specificnostima podataka za trening i da zbog toga daje lose
rezultate kada se primeni na drugim podacima. Naime, podaci za
trening mogu imati odredene karakteristike kao plod ciste
slucajnosti, odnosno suma, ali takode mogu predstavljati i
pristrasan uzorak celog skupa podataka. U praksi, podatke je cesto
tesko sakupiti i obicno se mora raditi sa podacima koji su
raspolozivi bez obzira na njihove manjkavosti. Stoga, iako je
potrebno da se postigne visok nivo preciznosti prilikom treniranja
modela, takode je potrebno paziti da ne dode do preteranog
prilagodavanja podacima.
Osnovni razlog zbog koga dolazi do preteranog prilagodavanja
podacima je bogatstvo prostora hipoteza, odnosno skupa dopustivih
modela. U bogati- jem skupu je lakse naci model koji dobro
odgovara podacima. Primera radi, ukoliko se pri ucenju dopustaju
samo stabla dubine 1, koja testiraju samo jedan atribut svake
instance, jasno je da takva stabla ne mogu lako postici visoku
preciznost klasifikacije. Ona predstavljaju previse grube modele
koji ne mogu da opisu znacajne zakonitosti u podacima. S druge
strane, ukoliko se dozvoli koriscenje stabala proizvoljne dubine,
ukoliko je potrebno, moguce je naci sta- blo koje je u stanju da
razlikuje bilo koje dve instance, odnosno da postigne savrsenu
preciznost na podacima za treniranje. Medutim, stabla koja su vrlo
duboka i precizno opisuju svaku i najnebitniju specificnost
podataka za tren- ing, se u praksi pokazuju nepouzdanim, posto
siri skupovi podataka ne moraju uvek imati sve specificnosti skupa
podataka za trening.
Ovde se uocava znacaj ranije pomenutog koncepta apstrakcije.
Adekvatna hipoteza bi trebalo da apstrahuje, odnosno zanemari,
takve specificnosti.
U primeru prepoznavanja racunarksih
clanaka mogli smo izostaviti ogranicenje da se reci moraju
nalaziti u nekom recniku racunarske terminologije.
U tom
slucaju, ukoliko bi se koristile stranice koje pise mala skupina
autora, moguce je da bi se njihova imena mogla pokazati kao
visokofrekventne reci karakter- isticne za racunarske clanke,
sto bi bio vrlo los kriterijum prepoznavanja cim bi se pojavili
racunarski clanci koje pisu drugi autori.
U vezi sa prethodnim razmatranjem treba primetiti dve zakonitosti. Sa
povecanjem dozvoljene dubine stabla, povecava se moc ucenja,
odnosno verovatnoca da ce u skupu dopustivih modela biti naden onaj
koji dobro opisuje podatke.
Zato se sa povecanjem dozvoljene dubine stabala, smanjuje
greska klasifikacije. Dalje, ukoliko stablo dubine, na primer, 1 ima
visoku preciznost, to znaci da je u podacima nadena jaka i vrlo
jednostavna zakonitost. Stoga je za ocekivati da ona postoji i u
sirem skupu podataka, odnosno ocekivano odstupanje greske na
sirem skupu podataka od greske koja se primecuje na trening
skupu bi trebalo da bude malo. S druge strane, ukoliko je stablo
visoke preciznosti vrlo duboko, to znaci da je uocena zakonitost u
podacima vrlo kompleksne prirode i stoga moze biti specificna
samo za podatke u trening skupu.
Odnosno, ocekivano
odstupanje greske na sirem skupu podataka od greske na trening
skupu moze
biti veliko. Na slici11.6prikazane su tri krive. Jedna, opadaju ca,
predstavlja

ponasanje greske klasifikacije na trening skupu u zavisnosti od


dozvoljene du- bine stabla. Druga, rastuca, predstavlja ponasanje
odstupanja greske na sirem skupu podataka od greske na trening
podacima u zavisnosti od dozvoljene du-

11.4 Preterano prilagodavanje modela podacima za trening

187

Figure 11.6: Greska klasifikacije u zavisnosti od bogatsktva skupa


dopustivih modela.
bine stabla. Treca predstavlja gornju granicu greske klasifikacije
u zavisnosti od dozvoljene dubine stabla i ona je zbir prethodne
dve. Ocigledno, i pre- male i prevelike vrednosti za dozvoljenu
dubinu stabla vode losim rezultatima. Prve usled nefleksibilnosti
dozvoljenih modela, a druge zbog preteranog pri- lagodavanja
modela trening podacima. Bitno je naglasiti da je isto rezonovanje
moglo biti sprovedeno i za druge metode masinskog ucenja. Pri
tom u analizi ne bi figurisala dozvoljena dubina stabla, vec
odredena opsta mera slozenosti skupa modela o kojoj necemo
detaljnije govoriti. Adekvatno upravljanje bogat- stvom prostora
hipoteza cini kljuc dobre generalizacije. Neki algoritmi ucenja
kao metoda potpornih vektora su konstruisani tako da prilikom
izbora modela automatski resavaju i ovaj problem.
U slucaju kad model koji najbolje aproksimira ciljnu funkciju na
raspolozivim instancama, takode najbolje aproksimira ciljnu
funkciju na svim mogucim in- stancama, kaze se da algoritam za
ucenje dobro generalizuje iz prikazanih primera.
Kod stabala odlucivanja, moguca su dva pristupa resavanju
problema preter- anog prilagodavanja trening podacima, a to su:
zaustavljanje rasta stabla u toku njegove izgradnje i naknadno odsecanje.
Obicno se preferira druga mogucnost.
Odsecanje stabla u odredenom cvoru predstavlja zamenu celog
podstabla ciji je to koren tim cvorom, s tim sto mu se dodeljuje
oznaka klase u koju se po- daci u tom podstablu najcesce
klasifikuju. Odsecanje se vrsi tako sto se itera- tivno ponavlja u
cvorovima u kojima najvise povecava preciznost klasifikacije na
skupu za testiranje sve dok dalje odsecanje ne pocne da smanjuje
preciznost klasifikacije.

188

11 Klasifikacija

Glava 12

Regresija
Problem regresije predstavlja problem predvidanja vrednosti
neprekidnog atributa neke instance na osnovu vrednosti njenih drugih
atributa. Dakle, regresija se moze videti kao aproksimacija
neprekidne ciljne funkcije. Umesto o atribu- tima, u terminologiji
regresije, cesce se govori o promenljivim. Formalno, re- gresiona
funkcija koja povezuje zavisnu promenljivu Y i nezavisne promenljive X1,
X2, . . . , Xn je definisana izrazom
r(x1 , x2 , . . . , xn ) = E(Y |X1 = x1 , X2 = x2 , . . . , Xn = xn )
gde E oznacava matematicko ocekivanje. Promenljiva Y se
naziva odzivnom promenljivom, a promenljive Xi prediktorima.
Problem regresije se svodi na problem aproksimacije regresione
funkcije r. Ovo se moze raditi razlicitim metodama koje uvode
razlicite pretpostavke o regresionoj funkciji. Najjednos- tavnije su
metode linearne regresije.
Primene regresije su mnogobrojne vec u najjednostavnijoj,
linearnoj, vari- janti. One ukljucuju procenu rizika u ulaganjima,
procenu uticaja prerade rude na ekosistem, procenu smrtnosti u
zavisnosti od zivotnih navika i slicno.

12.1 Linearna regresija


Linearna regresija predstavlja problem regresije u kome se
pretpostavlja lin- earna veza izmedu odzivne promenljive i
prediktora. Formalnije, pretpostavlja se veza oblika
Y = X +
Pri tome je Y slucajna promenljiva, X je vektor poznatih prediktora,
je nepoz- nati vektor koeficijenata, a je slucajna promenljiva
koja predstavlja slucajnu gresku, odnosno sum. Poreklo suma
moze biti nesavrsenost opreme kojom se vrsi merenje,
slucajna priroda samog fenomena ili to sto izbor linearne zavisnosti predstavlja svesnu odluku da se inace kompleksna
zavisnost donekle pojednostavi radi lakse analize.
Zadatak

linearne regresije je odredivanje ko- eficijenata koji u nekom


smislu najbolje odgovaraju opazanjima iz iskustva, odnosno trening
podacima. Kako se greska ne modelira, vec se modelira samo
zakonitost za koju se pretpostavlja da postoji u podacima, rezultujuc
i model bi

190

12 Regresija

trebalo da ima sledeci oblik


y = 0 + 1 x1 + 2 x2 + . . . + n xn

(12.1)

Bitno je naglasiti da se izraz linarna u nazivu linearna regresija


odnosi na linearnost relacije po parametrima , a da prediktorske
promenljive mogu biti nelinearno transformisane.
Primer 12.1 Neki primeri linearnih modela su:

y = 0 + 1 x1 + 2 x2
y = 0 + 1 cos(x1 ) + 22 x2 + 3 ex3
y = 0 + 1 x1 + 2 x2 + 3 x1 x2
Sledeci primeri ne predstavljaju linearne modele:
1 x1

y 2+x2
=

cos(1 x1 )2 x2
y

e 3 x3
=
Pored osnovnog zadatka modeliranja veze izmedu odzivne
promenljive i prediktora radi predikcije odzivne promenljive,
linearna regresija je korisna i za ustanovljavanje jacine uticaja
nekog prediktora na odizvnu promenljivu. Naime, vece apsolutne
vrednosti koeficijenata oznacavaju jaci uticaj predik- tora uz koji
stoje. Znak koeficijenta odreduje smer uticaja prediktora. Takode se
moze meriti statisticka znacajnost ovog uticaja, ali se radi
jednostavnosti u nastavku fokusiramo samo na osnovni problem
odredivanja koeficijenata i proveru kvaliteta naucenog modela.
Najjednostavniji slucaj linearne regresije je predvidanje odzivne
promenljive Y na osnovu samo jednog prediktora X. Primera
radi, mozemo govoriti o predvidanju telesne tezine u zavisnosti
od visine. Primetna je zakonitost da su visoki ljudi uglavnom tezi od
niskih ljudi. Tu zavisnost je potrebno modelirati. Medutim, postoje i
odstupanja. Kako su odstupanja od prosecne tezine utoliko redja
sto su veca, ova odstupanja cemo smatrati sumom i necemo ih
modelirati.
Linearni model je u ovom slucaju oblika
y = 0 + 1 x
sto je standardna jednacina linearne funkcije.
Na slici12.1je prikazano 100 ta caka pri cemu svaka odgovara
jednom ispi- taniku. Koordinata x predstavlja visinu, a y telesnu
tezinu. Na slici se moze primetiti opsti trend linearnog povec
anja telesne tezine u zavisnosti od visine koji je prikazan pravom.
Takode, primetno je i da mali broj tacaka znacajno odstupa.
Ovakve tacke nazivamo izuzecima (eng. outliers). Prikazana prava
predstavlja linearni model datih podataka. Metod kojim se do njega
dolazi bice prikazan u nastavku.
U slucaju koriscenja opste jednacine linearnog modela12.1,
mogu ce je ukljuciti veci broj prediktora pri predvidanju odzivne
promenljive. Iz primetne varija- bilnosti telesne tezine u odnosu na
regresioni model, shvata se da visina nije dovoljna da u potpunosti
objasni variranje telesne tezine. Novi prediktori koji

191

100

120

12.1 Linearna regresija

60

40

80

150

160

170

180

190

200

Figure 12.1:
Primer jednostavne regresije kojom se predvida
telesna tezina na osnovu visine.
bi vodili ka poboljsavanju predvidanja mogu da se odnose na
nacin zivota poje- dinaca koliko vremena dnevno provode u
sedecem polozaju, koliko se bave sportom, koliko kalorija unose
dnevno i slicno. Umesto prave, u ovakvom slucaju regresioni
model bi odredivao jednu hiperpovrs.
Osnovni kriterijum izbora koeficijenata linearnog modela je
smanjivanje odstupanja izmedu vrednosti koje model predvida i
vrednosti koje odzivna promenljiva ima u podacima. Ovaj problem
se najcesce se formulise kao prob- lem minimizacije (nalazenja
minimuma) srednjekvadratne greske
n
1.
(yi yi )2
E(y) =
n
i=1

pri tome je n broj instanci u trening skupu, yi su vrednosti odzivne


promenljive kod tih instanci, a yi su vrednosti koje predvida
regresioni model. Koeficijenti se izracunavaju iz trening
podataka (xi1 , xi2 , . . . , xim , yi ) po formuli
= (X T X)
1 T
X Y
pri cemu
je

1 x11
X = 1 x21
. .
.. ..
1 xn1

x1m
x2m

.
..
. .
xn2 xnm

.
x12
x22

1
yy
2
Y = .
..
yn

Osnovni problem pri odredivanju koeficijenata je potencijalna


losa uslovl- jenost matrice X. Naime, moguce je da su neki
prediktori linearno zavisni ili

192

12 Regresija

da su jako korelirani. U tom slucaju matrica X, pa i X T X je


neinvertibilna
ili lose uslovljena (za male promene elemenata polazne
matrice, moguce su ogromne promene elemenata inverzne
matrice), odnosno, koeficijenti se ne
mogu
izracunati
ili su previse
nestabilni.
U takvom
slucaju
pribegava
takoz- vanom
postupku
regularizacije.
Matrici
X T X se
se
dodaje dijagonalna
komponenta
= (X T X + I)1 X T Y
gde je I jedinicna matrica. Ova modifikacija resava problem
invertibilnosti, ali predstavlja namerno unosenje greske i time
narusava tacnost postupka. Zbog toga je potrebno da konstanta
bude mala, na primer, 0.01 ili 0.001, tako da je korist od
regularizacije veca nego steta zbog unesene greske. Ovakva
modi- fikacija regresije se na engleskom naziva ridge regression i cesto
se koristi.

12.2

Pretpostavke linearne regresije

Postoje dve osnovne pretpostavke linearne regresije. Prva je da je


broj trening podataka veci od broja prediktora. Nju je u praksi
uglavnom lako zadovoljiti. Nisu retki domeni u kojima je tesko doci
do novih podataka, ali ni broj predik- tora obicno nije preveliki.
Druga pretpostavka je da je slucajna promenljiva koja cini sum
normalno raspodeljene sa raspodelom
N (0, 2)
gde je standardna devijacija konstantna. Neformalno, ovo znaci
da se pret- postavlja da se greske ponistavaju, odnosno da se
prebacivanja i podbaci- vanja javljaju jednako cesto, da su pri tom
velike greske vrlo malo verovatne, kao i da velicina greske ne
zavisi od stvarne velicine promenljive Y . Vise o ispitivanju ovih
poretpostavki bice receno u nastavku.

12.3

Ispitivanje kvaliteta linearne regresije

Ispitivanje kvaliteta linearne regresije ukljucuje skup thenika i mera


kvaliteta kojima se proverava zadovoljenost uslova primenljivosti
tehnike linearne re- gresije, kao i kvalitet samog naucenog modela.
Ovaj postupak se cesto naziva i dijagnostikom modela.
Ispitivanje zadovoljenosti uslova za primenu linearne regresije bi
formalno trebalo raditi koriscenjem statistickih testova.
Medutim kako je sama tehnika dosta robusna, odnosno cesto daje
zadovoljavajuce rezultate i kad su te pret- postavke donekle
narusene, ove provere se cesto vrse neformalno inspekcijom
podataka inspekcijom
pomocu dijagrama. Normalnost raspodele suma
se
potvrduje
nazivamo
rezidualima. Pret- histograma gresaka ri = yi yi koje
postavka da velicina greske ne zavisi od stvarne velicine
promenljive Y
se obicno potvrduje inspekcijom grafika koji
prikazuje reziduale ri u zavisnosti od predvidenih vrednosti yi .
Ukoliko se na ovom grafiku ne uocava zavis- nost izmedu te
dve velicine, smatra se da je pretpostavka ispunjena. S druge
strane, ukoliko se moze uociti zavisnost, smatra se da
pretpostavka nije ispun- jena i da se model moze popraviti
dodavanjem novih prediktora ili primenom drugacijih metoda.

12.3 Ispitivanje kvaliteta linearne regresije

193

Osnovna mera kvaliteta linearne regresije je srednjekvadratna


greska, koja meri odstupanje predvidenih vrednosti od stvarnih i
racuna se po formuli
n

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

Pozeljno je da srednjekvadratna greska bude sto manja,


medutim ukoliko ne- mamo konkretan zahtev za postizanjem
odredene srednjekvadratne grevske, tesko je reci da li je
ucenje uspesno ili ne. Zbog toga se cesto koriste i druge mere.
C esta je upotreba Pirsonovog koeficijenta korelacije.
Pirsonov koeficijent korelacije izmedu dva uzorka xi i yi, koji
odgovaraju nekim promenljivim X i Y , se racuna po formuli
1 .n
r(X, Y ) = .

1
n

.x)(yi y)
1 .n
2
2
(x

x)
i=1 i
i=1(yi y)
n

.nn

i=1(xi

gde nadvucena linija oznacava prosek uzorka. Izrazi pod korenom


se nazivaju uzorackim varijansama za X
i Y .
Vrednosti
koeficijenta korelacije r(X, Y ) =
1 oznacavaju linearnu vezu izmedu promenljivih X i Y pri cemu
pozitivan
znak znaci da Y raste kako X raste, a negativan znaci da Y opada kako
X
raste.
Neformalno, ova mera se moze shvatiti kao mera
linearne zavisnosti izmedu promenljivih X i Y pri cemu vrednost 0
znaci potpuno odsustvo lin- earne korelacije. Jos vaznije, ova
mera se moze povezati sa srednjekvadratnom
gresko C esto se kaze da r2 (X, Y ) predstavlja udeo varijanse
m.
promenljive
Y koji promenljiva X objasnjava. Smisao ovog tvrdenja je sledec
i. Ukoliko se odreknemo koriscenja bilo kakvih metoda predikcije
pri predvidanju vrednosti promenljive
Y ,
najmanju
srednjekvadratnu gresku ocekujemo ukoliko uvek predvidamo
vrednost y. Odnosno, ako kao predikcioni model za Y koristimo
prosek opazenih vrednosti Y . Pri tome je srednjekvadratna greska
n
.
1
(yi y)2
E(y) =
n i=1
odnosno uzoracka varijansa za Y . Rastojanja koja ulaze u ovu gresku
su prikazana na slici12.2. U slu caju koriscenja linearnog
regresionog modela, srednjek- vadratna greska je
n

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

Rastojanja koja ulaze u ovu gresku su prikazana na slici12.3. Ova,


preostala, greska se ne moze objasniti zavisnoscu od prediktora
X,
odnosno
tu
preostalu
gresku
mozemo
smatrati
neobjasnjenom. Ispostavlja se da se polazna srednjek- vadratna
greska moze razloziti po formuli
n
n
n
.
1.
1.
2
2
1
(yi y) =
(yi yi )
(yi y)2
E(y) =
n
n
i=1
n i=1
+
i=1

odnosno da vazi
n

1.

(yi y)2 = E(y)


E(y)

n
i=1

194

12 Regresija

Figure 12.2: Grafik reziduala u zavisnosti od predvidenih vrednosti


telesne tezine.

Figure 12.3: Grafik reziduala u zavisnosti od predvidenih vrednosti


telesne tezine.

195

10

15

20

12.3 Ispitivanje kvaliteta linearne regresije

30

20

10

10

20

30

Figure 12.4: Histogram reziduala u predvidanju telesne


tezine.
Dakle, izraz sa leve strane predstavlja razliku izmedu polazne i
neobjasnjene greske, odnosno varijanse, iliti objasnjeni deo
varijanse. Ispostavlja se da za koeficijent korelacije vazi relacija
.n (y y)
i
i=1
2
r (X, Y ) = .
2 n
2
i=1(yi y)
sto objasnjava znacenje tvrdnje da njegov kvadrat predstavlja
udeo varijanse promenljive Y koji promenljiva X objasnjava. Pomoc
u ove mere se moze ocen- iti koliko je linearni model zaista
koristan u odnosu na jednostavno poznavanje proseka neke
velicine.
U slucaju da se radi o opstem slucaju regresije, postoji veci
broj prediktora, pa se koeficijent korelacije ne moze racunati po
istoj formuli. U tom slucaju, on se racuna kao r(Y , Y ). U slucaju
jednog prediktora ova vrednost je jednaka r(X, Y ) posto su
velicine X i Y linearno povezane.
I u slucaju regresije, moguce je koristiti unakrsnu validaciju
na isti nacin kao kod klasifikacije, osim sto je mera kvaliteta koja
se racuna promenjena.
Primer 12.2 U slucaju primera sa predikcijom telesne tezine u zavisnosti od visine
na slici12.4prikazan je histogram reziduala. Prikazana raspodela je bliska normalnoj
(sto je potvrdeno i statistickim testom). Na slici12.5prikazan je grafik zavisnosti
rezidu- ala od predivdenih vrednosti. Kako raspodela ne odaje zavisnost izmedu
reziduala i predvidenih vrednosti (sto je takode potvrdeno i statistickim testom),
zaklucuje se da su u tom problemu pretpostavke linearne regresije ispunjene.
Koeficijent korelacije iznosi 0.715 sto znaci da promenljiva X objasnjava preko
pola varijanse promenljive Y , ali i da postoji prostor da se predikcija dalje popravi
dodavan- jem novih prediktora.

12 Regresija

10

20

196

10

20

50

60

70

80

90

100

Figure 12.5: Grafik reziduala u zavisnosti od predvidenih vrednosti


telesne tezine.

12.4
Preterano prilagodavanje modela podacima
za trening
Fenomen preteranog prilagodavanja podacima za trening koji je
objasnjen u kontekstu klasifikacije, moguc je i u problemu regresije
(ne nuzno linearne). Zbog toga cemo iskoristiti priliku da ga jos
jednom prokomentarisemo u drugacijem okviru masinskog ucenja.
Osnovni smisao preteranog prilagodavanja trening podacima je i dalje
isti da se model koji ima dobre mere kvaliteta na trening podacima,
lose ponasa na drugim podacima. Medutim, novi primeri doprinose razumevanju veze izmedu bogatstva skupa dopustivih modela i
kvaliteta ucenja.
Na slici12.6prikazan je jedan skup od 20 instanci za trening koje
se sas- toje od jednog prediktora i odzivne promenljive.
Linearni model je naucen linearnom regresijom. Moze se
primetiti da on ne prolazi direktno kroz tren- ing podatke, odnosno
za svaki trening podatak postoji manja ili veca greska kada se
vrsi predvidanje odzivne promenljive na osnovu datog
prediktora. Drugacije receno, linearni model se ne moze
potpuno prilagoditi podacima za trening. Linearne modele
mozemo smatrati jednostavnim i nefleksibilnim. S druge strane,
ocigledno je da on dobro opisuje opsti linearni trend koji se u
podacima vidi. Slika12.7prikazuje aproksimaciju datih podataka kori
scenjem modela iz skupa svih polinoma proizvoljnog stepena.
Izabrani polinom prolazi kroz sve tacke koje predstavljaju trening
podatke i stoga je greska tog modela na trening podacima jednaka
nuli. Medutim, posmatrajuci globalni izgled iz- abranog modela,
vidi se da on ne opisuje nikakvu zakonitost u podacima. Os-

12.4 Preterano prilagodavanje modela podacima za trening

197

15

20

cilacije koje pravi izmedu tacaka cine njegovo koriscenje u


predikciji potpuno nepouzdanim. Problem je upravo u tome sto
proizvoljni polinomi cine previse bogat skup mogucih modela.
Za svaki trening skup moze se naci model koji ga savrseno
opisuje. Medutim, prilagodavajuci se trening podacima do krajnosti, gubi se svaka moc generalizacije. Slicni zakljucci vaze i
za druge previse bogate skupove dopustivih modela, a ne samo za
polinome.

10

10

15

20

Figure 12.6: Linearni model sa najmanjom srednjekvadratnom


greskom na in- stancama za trening.

12 Regresija

15

20

198

10

10

15

20

Figure 12.7: Polinomijalni model sa najmanjom srednjekvadratnom


greskom na instancama za trening

Glava 13

Klasterovanje

200

13 Klasterovanje

Deo IV

Resenja zadataka

Glava 14

Resenja zadataka
1.
suprotno pretpostavimo da formula (D A)

B Pretpostavimo
nije
tautologija,
da
je Iv ((D
A) tj. pretpostavimo da postoji valuacija v takva

B) = 0.I Iz(D)
Iv ((D
A)
=
B) 1= i0Isledi
Iv (D
A) = 1 (A
i Iv(C)
B) =D
0, je
a
odatle
=
1,
IIv (A)
=
1. Formula
v
v (B)
tautologija,
pa =
vazi
C) da
D)
= 1.
Kako
je
Iv (D)
=
0,
mora
da
v ((A sledi
vazi
I
(A

C)
0,
odakle
je
I
(C)
=
0
(jer
je
I
(A)
=
1).
S
vstrane, formula A (B C) je vtautologija, pa vazi
v
druge
Iv (A

(B

C))
=
1.
Kako
je
I
(A)
=
1,
mora
da
vazi
I
(B

C)
=
1.
v
v
Vazi Iv (B) = 1, pa mora da vazi i Iv (C) = 1, sto je
u kontradikciji
sa Iv sledi
(C) =da
0. jeDakle,
polazna
je bila
pogresna,
odakle
formula
(D A)pretpostavka
B tautologija.
10.

Dokazimo najpre, metodom istinitosnih tablica, da je formula


(A (B C)) (((A C) D) ((D A) B))

tautologija:
(A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1

(B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1

C))
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

(((A

0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

C)
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1

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

D)
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0

0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

((D
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1

0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

A)

0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1

0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

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

0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

Formula
(A
(B
C)) (((A
C) D) formula
((D A) A
B))(Bje,dakle,
tautologija
i,pa,
nana
osnovu
pretpostavke,
C) je
tautologija,
osnovu
teoreme2.1Formula
, sledi da
je
i
formula
((A

C)

D)

((D

A)

B)
tautologija.
((A
C)
D) (A

((D

A)

B)
je
tautologija
i,
na
osnovu
pretpostavke,
formula

C) (D
D je
tautologija,
pa na osnovu teoreme2.1, sledi da je i
formula
A)
B tautologija.
11.Slicno,
Ako je v(p) = 0 i v(q) = 0, onda je Iv (A q) = 0 i Iv ((A q) p) = 1.
0, pa je ako je v(p) = 1 i v(q) = 1, onda je Iv (A q) = Iv (A) i Iv (p) =

204

14 Resenja zadataka

Iv ((A q) p) = 1 Iv (A). Analogno odredujemo istinitosnu vrednost date


formule za svaku kombinaciju vrednosti v(p) i v(q). Te vrednosti
prikazane su
u narednoj tablici:
((A

0
Iv (A)
0
Iv (A)

q)
0
1
0
1

1
1
1
1 Iv (A)

1
1
0
0

p)
0
0
1
1

Iv (A)
Iv (A)
Iv (A)
1

((p
0
0
1
1

1
1
1
0

1
0
1
0

q)
0
1
0
1

Iv (A)
Iv (A)
Iv (A)
1

A)

Dakle, da bi data formula bila tautologija mora da vazi Iv (A) = 1


u sluca- jevima v(p) = v(q) = 0, v(p) = 0, v(q) = 1, v(p) = 1, v(q) = 0,
dok u slucaju v(p) = v(q) = 1, formula A moze da ima proizvoljnu
vrednost. Dakle, formula A za koju u svakoj valuaciji vazi Iv (A) = 1
ispunjava uslov zadatka, pa A moze
biti formula T.
13Pretpostavimo
va
. , Atautologija.
da
n |= B. Pretpostavimo
formula
(Au1 kojoj
A2 da
.formula
. .zi
A
An1B), A
2 , B. .nije
Tada
postoji
valuacija
je
netacna,
a formula
(A
AA)2 tacna,
...
1
A
)
tacna.
Ako
je
u
toj
valuaciji
formula
(A

.
.
.

n
1
2
n
onda
je tacna
A2 ,u .toj
. ., valuaciji
An . S druge
strane,
1 , je
kako vazi
A1 , Ai2 ,svaka
. . . , Anod|= formula
B, sledi Ada
tacna
i
formula
B,
sto
protivreci
prethodnom
zakljucku
da
formula
B
tacna
Dakle, pogresna
da (A1 nije
A2

. . . Aun )toj
valuaciji.
B nije tautologija,
tj. vazi |=je
(Apretpostavka
1 A2 . . . An ) B.
Pretpostavimo
da
vazi
|
=
(A

.
.
.

A
)

B.
1
2
n
Pretpostavimo
vaziodA1 , A2 , . . . , An |= B. To znaci da postoji
valuacija u kojojdajene
svaka
formula A1 , A2 , . . ., An tacna, a formula B nije. U toj valuaciji je tacna i
formula
(A
. . .da
Aformula
formula (A1 A2 . . . An ) B.
1 A2sledi
n ), a netacna
Odatle
(A1 Aje
2 . . . An ) B nije tautologija,
sto
je je
suprotno
pretpostavci.
B, sto
i trebalo
dokazati. Dakle, mora da vazi A1 , A2 , . . . , An |=

14Pretpostavimo da va zi , A |= B i dokazimo |= A B. Pretpostavimo


da
formule
iz skupa
tacne
u nekoj
valuaciji
v i dokazimo
da su
je sve
u toj
tacna
i formula
A
B.
Pretpostavimo
suprotno,
da valuaciji
vazi Iv (A

B)
= 0. za
Odatle
sledi
I (A) {=A}1
i Iviz(B)
0.BDakle,
v je
model
skup
formula
, pa
, A= |=
sledi davaluacija
je valuacija
v
model
formulu
B,sav I (B)
sto je iuzasuprotnosti
= 0. Dakle, pretpostavka je bila pogresna, pa
v
sledi
Iv (A B) = 1, tj. |= A B, sto je i trebalo dokazati.
Pretpostavimo
vaziformule
|= Aiz skupa
B i dokazimo
, Au |nekoj
= B.
Pretpostavimo
da da
su sve
{A} tacne
valuaciji
v i dokazimo
je
u toj valuaciji
tacna idaformula
B. U valuaciji v su tacne sve formule iz
skupa
, pa iz |= A B sledi Iv (A B) = 1. Iz Iv (A) = 1 i Iv (A B) = 1
sledi Iv (B) = 1 (ako bi vazilo Iv (B) = 0, iz Iv (A) = 1 i Iv (B) = 0 bi sledilo
Iv (A B) = 0). Dakle, valuacija v je model za formulu B, tj. , A |= B, sto je i
trebalo dokazati.
15Neka je v proizvoljna valuacija. Tada je Iv (A1) = Iv (A2) i Iv (B1) = Iv (B2).

Resenja zadataka

205
.

(a)

Iv (A1) = .
=

1, Iv (A1) = 0
0, inace
1, Iv (A2) = 0
0, inace

= Iv (A2) .
.

(b)

Iv (A1 B1) = .
=

1, Iv (A1) = 1 i Iv (B1) = 1
0, inace
1, Iv (A2) = 1 i Iv (B2) = 1
0, inace

= Iv (A2 B2) .
.

(c)

Iv (A1 B1) = .
=

1, Iv (A1) = 1 ili Iv (B1) = 1


0, inace
1, Iv (A2) = 1 ili Iv (B2) = 1
0, inace

= Iv (A2 B2) .
.

(d)

Iv (A1 B1) = .
=

0, Iv (A1) = 1 i Iv (B1) = 0
1, inace
0, Iv (A2) = 1 i Iv (B2) = 0
1, inace

= Iv (A2 B2) .
.

(e)
Iv (A1 B1) =
=

1, Iv (A1) = Iv (B1)
0, inace
1, Iv (A2) = Iv (B2)
0, inace

= Iv (A2 B2) .
16Pretpostavimo da je A tautologija. Neka je v proizvoljna
valuacija. Neka je w valuacija u kojoj su iskaznim slovima p1, p2, .
. ., pn dodeljene redom vred- nosti Iv (A1), Iv (A2), . . ., Iv (An) i u kojoj
je svakom iskaznom slovu p koje se pojavljuje u A, a razlicito je
od p1 , p2 , . . ., pn dodeljuje vrednost Iv (p). Indukcijom nad skupom iskaznih formula moze se dokazati da vazi Iv
(B) = Iw (A). Iskazna formula A je tautologija, pa je ona tacna
u svakoj valuaciji. Dakle, Iw (A) = 1, odakle je Iv (B) = 1.
Kako je
v proizvoljna valuacija, sledi da je

206

14 Resenja zadataka

formula B tacna u svakoj valuaciji, tj. sledi da je formula B


tautologija, sto je i trebalo dokazati.
20. Neka p oznacava tvrdenje ,,R uvek govori istinu i neka q oznacava
tvrdenje
,,Levi put vodi u glavni grad. Mestaninu R treba postaviti pitanje
,,Da li je tacno P ? (gde je P iskaz izrazen u funkciji p i q).
Oznacimo sa R(A) odgovor mestanina na pitanje ,,Da li je tacno
A? 0 ako je njegov odgovor ne i 1 ako je njegov odgovor da.
Postavljeno pitanje treba da bude takvo da je R(P ) u svakom
slucaju jednak vrednosti iskaza q. Odredimo tvrdenje P .
Ako je u nekoj valuaciji Iv (p) = 0 (tj. R uvek govori laz) i
ako je R(A) jednako 0, onda u toj valuaciji mora da vazi Iv (A) = 1.
Ako je u nekoj valuaciji Iv (p) = 0 (tj. R uvek govori laz) i ako je
R(A) jednako 1, onda u toj valuaciji mora da vazi Iv (A) = 0. Ako je
u nekoj valuaciji Iv (p) = 1 (tj. R uvek govori istinu) i ako je R(A)
jednako 0, onda u toj valuaciji mora da vazi Iv (A) = 0. Ako je u
nekoj valuaciji Iv (p) = 1 (tj. R uvek govori istinu) i ako je R(A)
jednako 1, onda u toj valuaciji mora da vazi Iv (A) = 1. Dobijeni
zakljucci mogu biti prikazani u vidu sledece istinitosne tablice:
p
0
0
1
1

R(A)
0
1
0
1

A
1
0
0
1

Iskaz P moze da ima formu R(B) i onda je potrebno da je u


svakoj valuaciji vrednost R(R(B)) jednaka q. Odredimo tvrdenje B.
Vrednosti za iskaze R(B) i B dobijaju se na osnovu prethodne
istinitosne tablice. Te vrednosti prikazane su u sledecoj istinitosnoj
tablici:
p
0
0
1
1

q
0
1
0
1

R(R(B))
0
1
0
1

R(B)
1
0
0
1

B
0
1
0
1

Ocigledno, u svakoj valuaciji je Iv (B) = Iv (q), pa zakljucujemo


da trazeno pitanje moze da bude ,,Da li je tacno R(q)? ili ,,Da li
je tacno da bi mi ti odgov- orio potvrdno ako bih te pitao da li levi
put vodi u glavni grad?.
25.
(a) Formula A nije kontradikcija, pa postoji valuacija v1 takva da je Iv1
(A) =
1. Formula B nije tautologija, pa postoji valuacija v2 takva da je Iv2
(B) =
0. Pretpostavimo da formule A i B nemaju zajednicko nijedno
iskazno
slovo. Tada mozemo da definisemo valuaciju v na sledec
i nacin:
.
v1(p), ako se p pojavljuje u A
v(p) =
v2 (p), inace
Tada vazi Iv (A) = Iv1 (A) = 1 i Iv (B) = Iv2 (B) = 0, pa A B nije
tau- tologija, sto je suprotno zadatim uslovima.
Dakle,
polazna pretpostavka je pogresna, pa zakljucujemo da
formule A i B moraju da imaju bar jedno zajednicko iskazno
slovo.

Resenja zadataka

207

(b)jednaka
Neka jeAkanonska
forma
formule A
A2
. .disjunktivna
. ABmjednaka
i nekanormalna
je
1
normalna
forma
formule
B1 kanonska
B2 ekvivalencije
. . . konjunktivna
Bn. Formula
A

B
je
tautologija,
pa
na
osnovu
logicke
(P
Q) R (P R) (Q R) i
jednostavnog
induktivnog
zakljucujemo
da je
svaka
od formula
Ai Bargumenta
(iA = 1,
Analogno,
kako
je formula
2,B . .(i. ,=m)
1,tautologija.
2,
. .R).
, m)
i ekvivalencije
tautologija,
na
osnovu
logicke
P

(Q
(P

Q) (P R)
induktivnog
arguzakljucujemo
da ijejednostavnog
svaka od formula
Ai Bj (i =
1, 2, .menta
. . , m,
j = 1, 2, . . . , n) tautologija. To je moguce samo ako za svaki
par Ai , Bj postoji literal lij koji se u Ai pojavljuje kao
konjunkt, a u Bj kao disjunkt. Neka je formula C jednaka
m

_ ^
i=1 j=1

lij podskup skupa literala formule Ai sledi

Kako je skup literala


Vn

ij

j=1

Vn
da je Ai j=1 lij tautologija (jer je formula P Q P
tautologija).
Dodatno, koriscenjem tautologije ((P Q) (R S)) (P R

Q S) moze se matematickom indukcijom dokazati da je


formula
A1 A2 . . . Am

m
_ n^

lij

i=1 j=1

tautologija, tj. da je formula A C tautologija.


Kako
je literal
lij (ida= je
1, l2,
. . . ,tautologija
m, j = 1, 2,(jer
. . . je
, n)formula
disjunkt
formule
Bj , sledi
P
ij Bjkoriscenjem

tautologije
((P
Q)P
(RQtautologija).
S)) (P R Dodatno,
Q
S) moze se matematickom indukcijom dokazati da je formula
j=1
Vn
lij
B1 B2 . . . Bn tautologija. Kako to vazi za svako i (i = 1, 2, . . . ,
m), na
osnovu logicke ekvivalencije (P R) (Q R) (P Q) R
sledi
da je i
m ^
n
_
lij B1 B2 . . . Bn
i=1 j=1

tautologija, tj. da je formula C B tautologija.


29. Neka je L = (, , ar), gde je = L{f }, = {p} i ar(f ) = 1 i ar(p) = 1.
Odredimo
takvu
formule, priL-strukturu
cemu je I LD
(f )==(D,
fI iI I)L (p)
= pI .da je ona model date
Neka
je
D
=
N,
f
I (n) = n + 2 (gde je n N) iL pI (n) = 1 ako i samo
ako
je n paran broj. Dokazimo da je D = (D, I ) model formule A =
(p(f
x)(p(x)
(x)).
Dokazimo da je Iv (A) = 1 za svaku valuaciju v. Pretpostavimo
suprotno

pretpostavimo
da postoji
v takva
da je Ivvaluacija
(A) = 0. Na
osnovu
definicije3.10
, iz Iv valuacija
(A) = 0 sledi
da postoji
w
takva
je vda
xje
w Ii I(p(x))
w (p(x)= p(f (x))) = 0. Na osnovu iste definicije,
odatle da
sledi
w
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 Resenja zadataka

da
je n parann. broj,
a Ivn(A+) =2 1neparan,
sto je netacno
za svaki
prirodan
Dakle,
za Asvaku
valuaciju
v, tj. L-struktura
D = (N, I Lbroj
) je model
date
formule
.
30. Neka
je ako
v proizvoljna
valuacija.
L-struktura
D
je ako
model
date
formule
je Ivda
((je
x)(p(x,
(x)) I p(f
(x), x)) =
1, tj.
za
svaku
valuaciju
w takvu
v xmogucnosti
wf vazi
p(f
(x),
= 1.
w (p(x,
Dovoljno
je razmatrati
w(x)f (x))
= a,
w(x)
=
b ix))
w(x)
= c.
Vrednosti
Iw (p(x, f (x)) p(f (x), x)) = 1 mogu tada biti prikazane i u vidu tablice:
w(x)
a
b
c

fI (w(x))
b
a
a

pI (w(x), fI
(w(x)))
1
0

pI (fI (w(x)), w(x))


1
1
0

Iw (p(x, f (x)) p(f (x),


x))
1
1

Dakle,
proizvoljnu
je Iv(p(f
x)(p(x,
f (x)) p(f (x), x)) =
1, pa
je D za
model
formulevaluaciju
(x)(p(x, fv (x))
(x), x)).

31. Neka
(, bi
, ar),
(D,
= {}I,L ) bio
= {pmodel
} i ar(p) formule
= 2, D = A{a,treba
b} i neka
je
L (p) =jepL .=Da
Iproizvoljnu
D =
za
I
valuaciju
vtakvu
vazi
Iv ((je
x)(vy)(p(x,
y)
p(y,
x)))
= da
1,
tj.
za
svaku
valuaciju
w
da

w
vazi
I
((

y)(p(x,
y)

x
w

p(y, treba
x))) =da1.vazi
Postoje
mogucnosti:
w(x) = a i w(x) = b i za
obe
Iw ((dve
y)(p(x,
y)

p(y, x))) w=r takva


1. Vazi
((
y)p(y,
x))) x))
= =1 1.ako
valuacija
dadve
jeIwwtakve
yy)(p(x,
wr valuacije
i Iwrt y)
(p(x,

p(y,
Za postoji
svaku
valuaciju
w
postoje
w
jedna,vazi
za koju
r
w
(y)
=
a
i
druga,
za
koju
vazi
w
(y)
=
b
(pri
tome
i wr vazi
(x) =
t (p(x, y) p(y, x)) = 1 ako je Iwt (p(x, y)) = 0 ili Iwt (p(y, x))
w(x)).
Vazi
I
w
= 1, tj. ako je Iwt (p(x, y)) = 0 ili Iwt (p(y, x)) =
0. Dakle, vazi:
(w(x) = a i Iw ((y)(p(x, y) p(y, x))) = 1) i (w(x) = b i Iw ((y)(p(x, y)
p(y, x))) = 1)
odakle sledi
(w(x) = a i ((wr (y) = a i Iwt (p(x, y) p(y, x)) = 1) ili (wr (y) = b
i Iwt (p(x, y) p(y, x)) = 1))) i (w(x) = b i ((wr (y) = a i Iwt (p(x, y)
p(y, x)) = 1) ili (wr (y) = b i Iwt (p(x, y) p(y, x)) = 1)))
odakle sledi
((w(x) = a i wr (y) = a i Iwt (p(x, y) p(y, x)) = 1) ili (w(x) = a i
r
w (y) = b i Iwt (p(x, y) p(y, x)) = 1)) i ((w(x) = b i wr (y) = a i Iwt (p(x, y)
p(y, x)) = 1) ili (w(x) = b i wr (y) = b i Iwt (p(x, y) p(y, x)) = 1))
odakle sledi
((wr (x) = a i wr (y) = a i Iwt (p(x, y) p(y, x)) = 1) ili (wr (x) = a i
r
w (y) = b i Iwt (p(x, y) p(y, x)) = 1)) i ((wr (x) = b i wr (y) = a i Iwt (p(x, y)
p(y, x)) = 1) ili (wr (x) = b i wr (y) = b i Iwt (p(x, y) p(y, x)) = 1))
odakle sledi
((wr (x) = a i wr (y) = a i (Iwt (p(x, y)) = 0 ili Iwt (p(y, x)) = 0)) ili (wr (x) = a
r
i w (y) = b i (Iwt (p(x, y)) = 0 ili Iwt (p(y, x)) = 0))) i ((wr (x) = b i wr (y) = a i
(Iwt (p(x, y)) = 0 ili Iwt (p(y, x)) = 0)) ili (wr (x) = b i wr (y) = b i (Iwt (p(x, y)) = 0
ili Iwt (p(y, x)) = 0)))
odakle sledi
((pI (a, a)) = 0 ili pI (a, a)) = 0) ili (pI (a, b) = 0 ili pI (b, a) = 0)) i ((pI
(b, a)) = 0 ili pI (a, b) = 0) ili (pI (b, b) = 0 ili pI (b, b) = 0))

Resenja zadataka

209

odakle sledi
(pI (a, a)) = 0 ili pI (a, b) = 0 ili pI (b, a) = 0) i (pI (b, a)) = 0 ili pI (a, b) = 0 ili
pI (b, b) = 0)
Da bi L-struktura D bila model za datu formulu mora da vazi (pI (a, a))
=0
ili
pI (a, b) = 0se
ili moze
pI (b, a) proveriti
= 0) i (pI da
(b, a))
= 13
0 ili
pI ukupno
(a, b) = 016)
ili funkcija
pI (b, b) =p0).
Neposredno
ima
(od
I :
D2
{0, 1} koje zadovoljavaju taj uslov. Svakoj od tih funkcija odgovara po jedan
trazeni model (do na izomorfizam).
32. Neka je L = (, , ar), pri cemu je = {f, a}, = {p}, ar(f ) = 2, ar(a) = 0
i ar(p) = 2.
Neka je D = Z, I L (f ) = fI , I L (a) = aI i I L (p) = pI , pri cemu je fI (z1 , z2 )
=
zz1 +
z2 (zDokazimo
1, z2 Z), aI = 0 i pI (z1, z 2)L = 1 ako i samo ako je z1 = z2 (z1,
Z).
da
je D = (D,
I ) model
formule.
Dokazimo
2 za
da
proizvoljnu
valuaciju
v vazi
Iv ((date
x)(
y)p(f
(x, y),
a)) = 1.v
Pretpostavimo
suprotno
y)p(f
pretpostavimo
da
postoji
valuacija
za
koju
vazi
I
((

x)(
(x,
y),
a))
=
0.
Tada,
na
osnovu
v
definicije3.10
,
sledi
da
postoji
valuacija
w
takva
da
je
w
Iw
x v i To
((
y)p(f
(x, y),da
a)) za= svaku
0 (neka
je u tojwvaluaciji
w(x)
=
z wZ).
r takvu da
r z,
dalje
znaci
valuaciju
je
w

(dakle,
r
y
t
vazi
w
(x)
=
z)
i
vazi
I
(p(f
(x,
y),
a))
=
0.
Medutim,
u
valuaciji
u
r
kojoj
je =
w (y)
=0)z=vazi
Iwwt (p(f
(z), 0)
p (0,
1, sto
je (x, y), a)) = pI (fI (z, z), 0) = pI (z +
I

u
kontradikciji bila
sa Iwt (p(f (x, tey),
a))da=za0.proizvoljnu
Dakle, valuaciju
polazna
pretpostavka
vformule.
vazi Iv ((x)(je
y)p(f (x,pogresna,
y), a)) = 1, tj.sledi
L-struktura
D je model
date
L
L
L
Neka je D = N, I (f ) = fI , I (a) = aI i I (p) = pI , pri cemu je fI (n1 , n2 )
=
n
1 + n2 (n1, n2 N), aI = 0 i pI (n1, n2) = 1 ako i Lsamo ako je n1 = n2
(n
Dokazimo
da jevaluacija
D = (D,
) koju
kontramodel
1, n2 N).
formule.
Dokazimo
da
postoji
v Iza
vazi
Iv date
((x)
(valuaciju
y)p(f (x, vy),
a))
=
0.
Pretpostavimo
suprotno
da
za
proizvoljnu
vazi Iv ((x)(y)p(f (x, y), a)) = 1.
T
ada, na
sledi (x,
da za svaku
valuaciju
takvu
daosnovu
je
w xdefinicije3.10
vi neka
vazijeIww(x)
((,y)p(f
je Iw
w
proizvoljna
valuacija
=
n, uacija
gdey),jewa))
=N 1.ida
nNeka
>
0.
rntakva
r Iz
((

y)p(f
(x,
y),
a))
=
1
sledi
da
postoji
valje
w
y ww
r
t (p(f (x, y), a)) =
(dakle, vazi w (x) = n) i vazi
I
w
1. Pretpostavimo da je wr (y) = m, m N. Tada vazi Iwt (p(f (x, y), a))
=
pI (fI (n, m), 0) = pI (n + m, 0). Medutim, pI (n + m, 0) je jednako 1 samo
ako je
n + m = 0, sto nije tacno ni za koju vrednost m, m N (jer je n > 0). Dakle,
polazna pretpostavka je bila pogresna, te sledi da postoji valuacija v za koju
vazi
Iv ((x)(y)p(f (x, y), a)) = 0, tj. L-struktura D je kontramodel date formule.
33. Neka je L = (, , ar), pri cemu je = {f }, = {p}, ar(f ) = 1, ar(p) =
2. (a)Neka je D = (N, I L ) i I L (f ) = fI , I L (p) = pI , pri cemu
je fI (n) =
n + 1 i pI (n1 , n2 ) = 1 ako i samo ako je n1 < n2 . Dokazimo da je Lstruktura
D
date
tj. dokazimo suprotno
da za svaku
valuaciju
v model
vazi
Iv (A)formule
= 1. A,Pretpostavimo

pretpostavimo
da postoji
valuacija
v takva
da je
Iv (A) =p(x,
0.
Na
osnovu
definicije3.10
,
sledi
da
I
((

x)(p(x,
f
(x))
v
x))) = 0 ili Iv ((x)(y)(z)(p(x, y) p(y, z)
p(x, z))) = 0.
Pretpostavimo da je Iv (x)(p(x, f (x)) p(x, x)) = 0. Odatle sledi

210

14 Resenja zadataka
da postoji valuacija w takva da je w x v takva da je Iw ((p(x, f (x))
p(x, x))) = 0. Pretpostavimo da je u toj valuaciji w(x) = n, gde 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))
=
tj. dabroj
nijen,n n<n N.
+ 1 ili da je n < n, sto nije ispunjeno ni
za1,jedan
0.
Pretpostavimo
da jepostoji
Iv ((x)(valuacija
y)(z)(p(x, y)
takva
p(y, z) da
p(x,
z)))
Odatle
sledi
w
x=v
takva
da
je. IwIz((da
y)(
z)(p(x,
y) y)
p(y,
z)
z)
p(x,z)))
= je
0. wNeka
je
w(x)
=
n
I
((
y)(

z)(p(x,

p(y,
r
r p(x, z))) = 0
1
w
sledi
da
postoji
valuw da
takva
da jez)(p(x,
w y y)
w (dakle,
r (x)
vazi
wz)))
= w(x)
= n1acija
) je
takva
p(y,

p(x,
=
0. Neka
wr da
(y) postoji
=jen2I.wt ((
Iz Iwt ((z)(p(x,
y) z)

rr takva
p(y,
z)

p(x,
z)))
=
0
sledi
valuacija
w
rr
r
rr
r
rr
da
je
w

w
(dakle,
vazi
w
(x)
=
w
(x)
=
w(x)
=
n
i
w=
r
z
1
tt
(y)
=
w
(y)
=
n
)
takva
da
je
I
((p(x,
y)

p(y,
z)

p(x,
z)))
rr
2 (z) = n . Iz I tt ((p(x,
w
0.
Neka
je
w
y)

p(y,
z)

p(x,
z)))
=
0
sledi da je Iwtt (p(x, y)3 p(y,wz)) = 1 i Iwtt (p(x, z)) =
0 i, dalje, Iwtt (p(x, y)) = 1, Iwtt (p(y, z)) = 1 i Iwtt (p(x, z)) = 0,
tj. pI (wrr (x), wrr (y)) = 1, pI (wrr (y), wrr (z)) = 1 i pI (wrr (x), wrr (z)) =
0. Odatle sledi pI (n1, n2) = 1, pI (n2, n3) = 1 i pI (n1, n3) = 0 i,
dalje, sledi da je tacno n1 < n2 , n2 < n3 i da nije tacno n1
< n3 . Medutim, to nije ispunjeno ni za koja tri prirodna
broja n1, n2, n3.
Dakle, pretpostavka je bila pogresna, te sledi da za svaku valuaciju v
vazi
Iv (A) = 1, tj. L-struktura D je model formule A.

(b)Neka je D = ({a}, I L ) i I L (f ) = fI , I L (p) = pI , pri cemu je fI (a) = a


i pI (a, a) = 1. Dokazimo da je D kontramodel za formulu A.
Pretpostavimo
Ipretpostavimo
da je,
za na
proizvoljnu
valuaciju
v suprotno
vazi
je
(A) = 1. Tada
osnovu
definicije3.10
, Iv ((da
x)(p(x,
fv(x))

p(x,
x)))
=
1
i
I
((

x)(

y)(

z)(p(x,
y)

p(y,
z)

p(x,
z)))
= 1. Iz
v p(x, x)))
Ivaluaciju
((

x)(p(x,
f
(x))
=
1
sledi
da
za
proizvoljnu
v
w takvu
da je= aw(jer
x vjevazi
p(x,
x)))
=
Mora
da= je
D = {aI}w),((p(x,
pa jef (x))
Iw (p(x,
f (x)))
=
1 i 1.
Iw (
p(x, x))
1. w(x)
Iz
Iw (p(x, x)) = 1 sledi Iw (p(x, x)) = 0, tj. pI (w(x), w(x)) = 0, tj. pI (a, a) =
0,
sto je netacno,
sledi da
je pretpostavka
bilajepogresna,
odakle
dapa
postoji
valuacija
takva da
Iv (A) = 0,
tj. sledidalje
da jesledi
D kontramodel
za datu vformulu
A.
(c) Pretpostavimo
da je L-struktura
D = (D, I L ) model date
formule
A i pretpostavimo
pretpostavimo
da je D = {d1da
, d2je
, skup D konacan, tj.
. . . , dm}.
Neka je I L (f ) = fI i I L (p) = pI . Neka jei dr odreden na sledeci nacin:
neka je dr proizvoljan element skupa D;
0

neka je i+
dr = fI (dir ) za i 0.
1

Skup D je konacan, pa u nizu dr , i = 0, 1, 2, . . ., mora da postoji


bar jedan element koji se iponavlja, tj. postoje vrednosti j i
k (j=<d k)
takve da je
j
k.
r
r
d

Resenja zadataka

211

Na
osnovu pretpostavke,
D jev model
za Odatle,
formulu A, osnovu
pa za
proizvoljnu
valuaciju
vvavazi
A) = f1.
definicije3.10
, sledi
ziIvI((
(x)(p(x,
(x)) p(x,na
x))) = 1 i
Iv ((x)(y)(z)(p(x,
y) da
p(y,
z)
p(x, z))) = 1.
Iz Iv ((x)(p(x, f (x)) p(x, x))) = 1 sledi da za proizvoljnu valuaciju w
takvu da je w x v vazi Iw (p(x, f (x)) p(x, x)) = 1. Odatle dalje sledi
p
=
1 i pI (w(x),
w(x))
= da
0. vazi
Valuacija
w dje
r
I (w(x), fI (w(x)))
proizvoljna,
par , je
mozemo
odabrati
tako
w(x) =
.
r )) =
Tada
(d
(d
1 i pI vazi
(dr , dr )pI=
0,fItj.
za svako i (i = 0,i 1, 2, . . .) vazii pI (di r , dr
) = 1i
i i
i i+1
pI (dr , dr ) = 0.
i

S
druge
strane, iz valuaciju
Iv ((x)(y)(
z)(p(x, da
y) p(y,
z)))
sledi
da
zay)proizvoljnu
wtakvu
w z)
x je
v p(x,
vazi
Iw=((1y)(
z)
(p(x,
p(y,
z) p(x,
z)))
= tako
1. je
Kako
w proizvoljna
r . Iz I
valuacija,
mozemo
je
odabrati
da
vazi
w(x)
=
d
w
((y)(z)(p(x, y)p(y, z) p(x, z)))
=
1 sledi
da wza
wtr ((takvu
day)je p(y,
wr z)
w
r proizvoljnu valuaciju
r
y
(dakle,
vazi
(x)
=
w(x)
=
d
)
vazi
I

z)(p(x,
r
w
p(x,
z))) = 1. Kako
je wr proizvoljna
valuacija
koju
w,
mozemo
je
odabrati
tako da vazi
wr (y)za=
drr . vazi
Izvaluaciju
Iwtw((z)yr
(p(x,
y)

p(y,
z)
rr
rr p(x, rz))) = 1 sledi darr za proizvoljnu
r
w
dawrje
w z w
rr (dakle, vazi w (x) = w (x) = w(x) = d
iKako
wrrtakvu
(y)je =w
rr (y) = d ) vazi Iwtt (p(x, y) p(y, z) p(x,
rr z)) = r1.
proizvoljna
valuacija
za
koju
z y)
w ,
rrr
mozemo
je
odabrati
tako
da
vazi
wrr (z)
= dvazi
. Iz wI tt (p(x,
tt (p(x, y) p(y, z)) = 0 iliw Iwtt (p(x, z))
p(y,
z)

p(x,
z))
=
1
sledi
da
je
I
w
= 1, tj. da
tt (p(x,
vazi
y))
ili0Iw
0 (z))
ili I=
(p(x,
tj.
da
rr
rr =
rr= 1, w
rr (z))
wtt0
vazi
pIw
wsvaka
(y))0 =
ilitt (p(y,
pI (wrrz))
(y),d=rw, rr
ili pz))
I (w (x),
I (w D(x),
=
za
elementa
drrr, ,drrr
drrr) skupa
vazi
pI
r1. Dakle,
rr
rrtri
rrr
(d
,
d
)
=
0
ili
p
(d
,
d
)
=
0
ili
p
(d
=
1.
V
ec
smo
I
I
dokazali
za svako
0,rr 1, 2, . . .)da
vazi
pI (dr , di r(i =
) = 1, odakle sledi da za dr = dr ,
d = di+1 ,
i

i+1

drrr = di+2 (za proizvoljno i, i = 0, 1, 2, . . .) mora da vazi pI (dr , drrr )


= 1, r r
tj. pI (d , d ) = 1. Analogno, jednostavno se pokazuje
matematickom
i i+2
indukcijom
da vazi pI (dr , dr ) = 1 za proizvoljno i, i = 0, 1,
2, . . . i
i

i+l

proizvoljno
l, l = 1, 2, . . .. Dakle, vazice i pI (dr , dr ) = 1, tj. pI (dr ,
dr ) = 1
j
k
j
j
(jer je dr = dr ). Medutim, vec smo pokazali da za svako i (i = 0, 1,
2, . . .)
j
k
vazi pI (dr , dr ) = 0, sto je u kontradikciji sa pI (dr , dr ) = 1.
Dakle, poi

lazna pretpostavka je bila pogresna, odakle sledi da za datu


formulu A
ne postoji model koji ima konacan domen.

34.(,Neka
je vazi
D proizvoljna
-struktura,
pri
cemu
za
signaturu skup
L =
, ar)
p
jei Lx,
ar(p)
=
1 .i Neka
neka
je IVL(p)
proizvoljan
promenljivih
takav
da
y,
z

V
je
=
p
(gde
je
pI
I
funkcija
iz D
skup I{0, ((1}x)(
) i neka
je v proizvoljna
valuacija.
Dokazimo
da u
vazi
z)(p(x)
p(y)
p(z)))
= 1.
v da y)(
Pretpostavimo
suprotno
vazi
I
((

x)(

y)(

z)(p(x)

p(y)

v
p(z)))
= 0. To znaci da postoji valuacija vx takva da je vx
znaci
x v (neka je vx (x) = dx ) i Ivx ((y)(z)(p(x) p(y) p(z))) = 0. To
da postoji val- uacija vy takva da je vy y vx (vazi vy (x) =
vznaci
x (x) = dx ; neka je vy (y) = dy ) i Ivy ((z)(p(x) p(y) p(z))) = 0. To
da za svaku valuaciju vz takvu da je vz z vy vazi Ivz (p(x)
p(y)

p(z))
= d0. iOdaberimo
valuaciju vz takvu da je vz z vy (vazi vz
(x) = vy (x) =
x vz (y) = vy (y) = dy ) na sledeci nacin:

212

14 Resenja zadataka

(a)ako je pI (dx) = 1 i pI (dy ) = 1, neka je vz (z) =


dx; (b)ako je pI (dx) = 0, neka je vz (z) = dx;
(c)ako je pI (dy ) = 0, neka je vz (z) = dy .
U slucaju (a), vazi Ivz (p(x)) = 1, Ivz (p(y)) = 1, Ivz (p(z)) = 1, odakle
sledi
Isuprotnosti
vz (p(x) p(y)) = 1 i Ivz (p(x) p(y) p(z)) = 1, sto je u
sa
Ivz (p(x)
p(y) sledi
p(z))I =(p(x)
0.
U p(y))
slucaju
vazi Iv
(p(x))
==0,1,Ivsto
(p(z))
= 0, odakle
= I0 i (p(y))
I(b),
vz
vz (p(x) p(y)z
z

p(z))
je
nemoguce.
U
slucaju
(c),
vazi
= 0=
i I1,
vz
vz
(p(z)) = 0, odakle sledi Ivz (p(x) p(y)) = 0 i Ivz (p(x) p(y) p(z))
sto je nemoguce. Dakle, u svakom slucaju dolazimo
do kontradikcije,
sto znaci da polazna pretpostavka nije
bila
Dakle,
p(z)))ispravna.
= 1. Kako
je Ivmora da vazi Iv ((x)(y)(z)(p(x) p(y)
proizvoljna valuacija, sledi da je data formula valjana.
39. Na primer, (x)A (x)A.
40. Vazi (x)(A B ) (x)(A B) (x)(A) (x)B (x)A (x)B
(x)A (x)B. Iz (x)(A B) (x)A (x)B, na osnovu teoreme3.10
sledi da je data formula valjana.
48. Tvrdenje je moguce dokazati indukcijom po slozenosti izraza
ili na sledeci nacin: pretpostavimo da za date izraze e1 i e2 postoje
dva najopstija unifikatora 1 i 2 . Tada postoje supstitucije 1 i 2
takve da vazi 1 = 2 2 i 2 = 1 1 odakle sledi 2 = (22)1 i 2 =
2(21). Dakle, 21 je trivijalna supstitucija [ ], pa, na osnovu
definicije kompozicije supstitucija sledi da 1 i 2 mogu da
sadrze samo zamene oblika v r v rr (gde su v r i v rr simboli promenljivih), pa
su unifikatori 1 i 2 jednaki do na preimenovanje promenljivih.
58. Dati uslovi mogu se reprezentovati na sledeci
nacin: C1: vlasnikpsa(Janko)
C2: x(vlasnikpsa(x) volizivotinje(x))
C3: x(volizivotinje(x) (y(zivotinja(y) udario(x, y))))
C4: udario(Janko, Tuna) udario(Marko, Tuna)
C5: macka(Tuna)
C6: x(macka(x) zivotinja(x))
Metodom rezolucije moze se dokazati da iz navedenih formula
sledi for- mula udario(Marko, Tuna).
61.

A [A]1

AB

efq
B

[B]2

E, 1, 2

Resenja zadataka

213

62.
[B]1

[A]2

[A B]3
B

E
E

I, 2
A
I, 3
I, 1
BB
AA)
(A
B) (

63.

[A]2
I
AC

[A]
I
AB
[A (B C)]1

[B C]3

E A B

(A B) (A C)
I

E A C

(A B) (A C)

(A B) (A C )

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


64

[B C]3

[A]2 [B]1
I
[(A B)]
AB
E

I, 1I

ABB

I
E, 2, 3

I, 1

A A

A B

(A B) (A B)

[A]3
I
A B

E, 2, 3

I,
4

65.
vlasnikpsa(janko).
macka(tuna).
mozda_udario(janko,tuna).
mozda_udario(marko,tuna).
volizivotinje(X):-vlasnikpsa(X).
zivotinja(X):-macka(X).
ne_bi_udario(X,Y):-volizivotinje(X), zivotinja(Y).
udario(X,Y):-mozda_udario(X,Y), not ne_bi_udario(X,Y).
66.
suma(N,S):-N>0, N1 is N-1, suma(N1,S1), S is
suma(0,0).

S1+N.

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 Resenja zadataka

stepen(M,N,S):-N>0, N1 is N-1, stepen(M,N1,S1), S is S1*M.


stepen(M,0,1).

69.
obrni(M,N):-obrni(M,0,N).
obrni(M,I,N):-M>0, M1 is M//10, I1 is 10*I+(M mod 10), obrni(M1,I1,N).
obrni(0,I,I).

70.
nzd(M,N,R):-N>0, T is M mod N, nzd(N,T,R).
nzd(M,0,M).

71.
prost(N):-T is N//2, nedeljivsvim(N,T).
nedeljivsvim(N,T):-T>1, T1 is T-1, N mod T=\=0, nedeljivsvim(N,T1).
nedeljivsvim(N,1).

72.
suma([],0).
suma([X|R],M):-suma(R,M1), M is M1+X.

73.
obrni(X,Y):-obrni(X,[],Y).
obrni([X|R],L,T):-obrni(R,[X|L],T).
obrni([],X,X).

74.
dodajnakraj([H|R],X,[H|R1]):-dodajnakraj(R,X,R1).
dodajnakraj([],X,[X]).

75.
uzastopni(X,Y,Z,[X,Y,Z|R]):-!.
uzastopni(X,Y,Z,[_|R]):-uzastopni(X,Y,Z,R).

76.
prvih_n(L,N,_):-broj_elemenata(L,B),B<N,!,fail.
prvih_n(L,0,[]):-!.
prvih_n([G|R],N,[G|R1]):-N1 is N-1, prvih_n(R,N1,R1).

Resenja zadataka

77.
dvadela([],[],[]).
dvadela([G|R],[G|R1],R2):-G>=0, dvadela(R,R1,R2),!.
dvadela([G|R],R1,[G|R2]):-dvadela(R,R1,R2).

78.
podeli([],[],[]).
podeli([G|R],[G|R1],R2):-podeli(R,R1,R2).
podeli([G|R],R1,[G|R2]):-podeli(R,R1,R2).

79.
podliste(L,P):-podeli(L,P,_).

80.
razliciti([],[]).
razliciti([X|R],[X|R1]):-not(sadrzi(R,X)),razliciti(R,R1),!.
razliciti([X|R],R1):-razliciti(R,R1).

81.
unija(X,Y,U):-append(X,Y,W),razliciti(W,U).

82.
presek([],L,[]).
presek([G|R],L,[G|P]):-sadrzi(L,G),presek(R,L,P),!.
presek([G|R],L,P):-presek(R,L,P).

83.
razlika([],L,[]).
razlika([G|R],L,R1):-sadrzi(L,G),razlika(R,L,R1),!.
razlika([G|R],L,[G|R1]):-razlika(R,L,R1).

84.
sim_razlika(X,Y,Z):-unija(X,Y,T),presek(X,Y,P),razlika(T,P,Z).

215

You might also like