Professional Documents
Culture Documents
Vestacka Inteligencija, Prof. Predrag Janicic PDF
Vestacka Inteligencija, Prof. Predrag Janicic PDF
le
kt
ro
n
sk
o
iz
d
an
je
(2
01
6)
E
le
kt
ro
n
sk
o
iz
d
an
je
(2
01
6)
Predrag Janičić Mladen Nikolić
6)
01
(2
VEŠTAČKA INTELIGENCIJA je
an
d
iz
o
sk
n
ro
kt
le
E
Beograd
2016.
Autori:
dr Predrag Janicic, redovni profesor na Matematickom fakultetu u Beogradu
dr Mladen Nikolic, docent na Matematickom fakultetu u Beogradu
VEŠTAČKA INTELIGENCIJA
...
...
6)
01
(2
je
an
d
iz
o
sk
n
ro
kt
le
E
Sadržaj 5
6)
1 Uvod 9
01
(2
I Pretraga 11
2 Rešavanje problema korišćenjem pretrage 13
2.1
2.2 je
Elementi problema pretrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Rešenje problema i kvalitet algoritama pretrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
an
2.3 Neinformisana i informisana pretraga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 Neinformisana pretraga 19
d
4 Informisana pretraga 27
o
5.3 Otvaranje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.4 Središnjica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
le
5.5 Završnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.6 Implementaciona pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
E
6 Genetski algoritmi 63
6.1 Opšti genetski algoritam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.2 Komponente genetskog algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.3 Svojstva genetskih algoritama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.4 Primeri primene genetskih algoritama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8 Iskazna logika 79
8.1 Sintaksa iskazne logike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
8.2 Semantika iskazne logike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5
8.3 Istinitosne tablice i odlučivost problema zadovoljivosti . . . . . . . . . . . . . . . . . . . . . . . . 85
8.4 Logičke posledice i logički ekvivalentne formule . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
8.5 Normalne forme i potpuni skupovi veznika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
8.6 Problem SAT i DPLL procedura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
8.7 Rešavanje problema svodenjem na SAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6)
10 PROLOG 137
01
10.1 Metod rezolucije i PROLOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
10.2 Sintaksa i semantika u PROLOG-U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
10.3 Stablo izvodenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
(2
10.4 Operator sečenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
10.5 Negacija kao neuspeh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
10.6 Liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
10.7
10.8
Ugradeni predikati . . . . . . . . . . . . . . . . . .
Primeri rešavanja problema primenom PROLOG-a
.
.
je
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
151
154
an
d
6
E
le
kt
ro
n
sk
o
7
iz
d
Predgovor
an
je
(2
01
6)
E
le
kt
ro
n
sk
o
iz
d
an
je
(2
01
6)
E
le
kt
ro
n
sk
o
9
iz
Glava 1
Uvod
d
an
je
(2
01
6)
E
le
kt
ro
n
sk
o
iz
d
an
je
(2
01
6)
E
le
kt
ro
n
sk
o
Deo I
iz
d
Pretraga
an
je
(2
01
6)
E
le
kt
ro
n
sk
o
iz
d
an
je
(2
01
6)
Glava 2
Veštačka inteligencija bavi se, prevashodno, problemima u kojima se javlja kombinatorna eksplozija, pro-
6)
blemima čije rešavanje zahteva razmatranje ogromnog broja mogućnosti. Rešavanje takvih problema obično se
svodi na neku vrstu pretrage, sistematičnog postupka obrade velikog broja mogućnosti. Kako je sve mogućnosti
01
često nemoguće razmotriti u razumnom vremenu, potrebno je pretragu usmeravati kako bi se razmotrile mogućnosti
koje su izglednije da daju rešenje problema. Neke od realnih primena algoritama pretrage su pronalaženje naj-
(2
kraćih puteva, igranje logičkih igara, navigacija robota, automatsko nalaženje redosleda sklapanja delova u
industriji, dizajn proteina sa odredenim traženim svojstvima, rešavanje logističkih problema i slično.
Problemi pretrage često zahtevaju pronalaženje niza koraka ili akcija kojima se ostvaruje cilj kada to ne može
je
biti ostvareno pojedinačnim koracima ili akcijama. Pretraga može biti shvaćena i šire, pa će u daljem tekstu
biti opisani i neki problemi i algoritmi optimizacije.
an
Problemi i algoritmi pretrage mogu se opisati i u terminima agenata. U tom slučaju, smatra se da pretragu
sprovodi agent, da se agent tokom pretrage može naći u različitim stanjima, da agent pokušava da dode do
završnog stanja, itd. Takva formulacija ne menja ništa suštinski u problemu ili algoritmima, ali može biti
d
Primer 2.1. Slagalica 15 (ili Lojdova slagalica) sastoji se od 15 kvadrata rasporedenih na tabli veličine 4x4
polja. Kvadrati su numerisani brojevima od 1 do 15. Slagalicu je potrebno urediti tako da su polja poredana
o
redom od prvog reda i da je poslednje polje u četvrtom redu prazno. Taj raspored polja može se kompaktno
sk
zapisati kao [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, _] i prikazan je na slici 2.1.
n
ro
1 2 3 4
5 6 7 8
kt
9 10 11 12
le
13 14 15
E
Kada je dat proizvoljan raspored polja na tabli, u svakom koraku može se pomeriti jedno od dva ili jedno od
tri ili jedno od četiri polja. Dakle, za svaki raspored broj mogućih akcija je izmedu dva i četiri.
Slagalicu je moguće složiti tako što se razmatraju svi mogući koraci, a zatim svi mogući koraci u dobijenim
stanjima i tako dalje, sve dok se ne naide na traženi, ciljni raspored (razmatranje svih mogućih koraka za početni
raspored [_, 2, 3, 4, 6, 5, 10, 12, 9, 1, 8, 15, 13, 14, 7, 11] ilustrovano je na slici 2.2). Očigledno, ovaj pristup sigurno
dovodi do rešenja za bilo koju početnu poziciju. Isto tako, očigledno je da je ovaj pristup potpuno nepraktičan
i zahteva razmatranje ogromnog broja mogućnosti. Zaista, za proizvoljnu početnu poziciju, slagalicu je moguće
složiti u najviše 80 koraka, pri čemu postoje početne pozicije za koje ne postoji rešenje u manje od 80 koraka. To
znači da je za garantovano pronalaženje rešenja potrebno ispitati više od 280 mogućnosti, što je naravno praktično
neizvodivo. Zbog toga, praktično sprovodivo rešenje zahteva neku dodatnu ideju i usmeravanje pretrage, kako
ne bi bile razmatrane sve mogućnosti. Jedna moguća ideja bi bila da se razmatraju samo koraci koji vode do
pozicija koje su bliže rešenju, pri čemu se za odredivanje „rastojanja pozicije od ciljne pozicije“ može uzeti zbir
13
14
2 3 4
6 5 1012
9 1 8 15
1314 7 11
6 2 3 4 2 3 4
5 1012 6 5 1012
9 1 8 15 9 1 8 15
1314 7 11 1314 7 11
2 3 4 6 2 3 4 6 2 3 4 2 3 4 2 5 3 4 2 3 4
6 5 1012 5 1012 9 5 1012 6 5 1012 6 1012 6 5 1012
9 1 8 15 9 1 8 15 1 8 15 9 1 8 15 9 1 8 15 9 1 8 15
1314 7 11 1314 7 11 1314 7 11 1314 7 11 1314 7 11 1314 7 11
6)
...
01
1 2 3 4
(2
5 6 7 8
9 101112
131415
je
Slika 2.2: Stablo pretrage za slagalicu „15“
an
Budimpešta
d
iz
340
300 380
840
Zagreb 320
o
640
390
sk
190
450 360
Sarajevo 430
ro
350
Podgorica 170
190
Skoplje
le
rastojanja svakog polja od njegove ciljne pozicije. Medutim, ova jednostavna ideja ne dovodi do rešenja. Naime,
u nekim pozicijama nema koraka koji vodi ka boljoj pozicijama (pozicija u korenu stabla na slici 2.2, je jedna
takva pozicija).
Primer 2.2. U skupu gradova od kojih su neki medusobno povezani putevima, zadatak je od jednog grada stići
do nekog drugog zadatog grada. Ovaj problem može se razmatrati kao problem pretrage: pretraga može da kreće
od početnog grada, da se zatim razmatraju svi gradovi do kojih se može doći neposredno, i tako dalje, sve dok
se ne dode do ciljnog grada. Primer ovakvog problema ilustrovan je na slici 2.3. Konkretan zadatak može biti,
na primer, nalaženje puta od Zagreba do Bukurešta.
Bitno su različite varijante problema u kojoj jesu i u kojoj nisu unapred poznati svi gradovi i putevi izmedu
njih. U prvom slučaju, bitno je i da li su poznate dužine puteva izmedu gradova ili vazdušna rastojanja.
Primer 2.3. Jednu od najstarijih grupa matematičkih problema čine geometrijski konstruktivni problemi. Zada-
tak je lenjirom i šestarom, na osnovu datih ograničenja ili datih početnih tačaka, konstrusati traženu geometrijsku
figuru. Lenjirom i šestarom može se konstruisati prava koja je odredena dvema tačkama, krug čije je središte
15 2. Rešavanje problema korišćenjem pretrage
jedna tačka i koji sadrži drugu tačku, moguće je konstruisati presek dve prave i moguće je konstruisati presek
prave i kruga — ovo su takozvane elementarne konstrukcije. I ovaj problem može se razmatrati kao problem
pretrage: pretraga može da kreće od početnih figura, zatim se razmatraju svi mogući koraci (sve moguće primene
elementarnih konstrukcija nad postojećim figurama), i tako dalje, sve dok se ne dobije tražena figura.
Primer 2.4. Kao problem pretrage može da se opiše kretanje robota od polazne do ciljne tačke u nepoznatnom
okruženju. Robot u većini trenutaka može da promeni smer i brzinu kretanja i u zavisnosti od tih akcija može
do cilja da stigne pre ili kasnije.
Problemi pretrage obično mogu da se pogodno reprezentuju grafovima (a i da se vizualizuju na odgovarajući
način). Graf može da opisuje prostor stanja i mogućih akcija i tada je svakom čvoru grafa pridruženo jedno
stanje, a svakoj grani jedna akcija. Graf koji opisuje prostor stanja može da bude usmeren ili neusmeren.
Neusmeren je ako za svako stanje 𝐴 iz kojeg se može nekom akcijom doći do stanja 𝐵 , postoji odgovarajuća
akcija iste cene kojom se iz stanja 𝐵 može doći do stanja 𝐴. U primeru slagalice, graf prostora stanja je
neusmeren i svakom čvoru grafa pridružen je jedan raspored. I u primeru gradova, graf prostora stanja je
neusmeren, a svakom čvoru pridružen je jedan grad (slika 2.3). Za igru šah, medutim, graf bi bio usmeren (jer
6)
postoje pozicije 𝐴 i 𝐵 takve da se iz 𝐴 može jednim potezom doći do 𝐵 , ali ne i obratno).
Pretraživanjem, obilaskom grafa prostora stanja nastaje stablo pretraživanja ili stablo pretrage (slika 2.2). U
stablu pretrage svakom čvoru pridruženo je jedno stanje, ali jedno stanje može da bude posećeno više puta tokom
01
obilaska, te može da se nalazi u više čvorova stabla pretrage. Zato stablo pretrage može da bude beskonačno
i onda kada je prostor stanja konačan. Kada se kaže „čvor“, obično je iz konteksta jasno da li se misli na čvor
(2
prostora stanja ili na čvor u stablu pretrage, a često se isto označavaju čvor i stanje koje mu je pridruženo.
U mnogim problemima veštačke inteligencije potrebno je obići neki graf ili odrediti najkraći put izmedu dva
čvora grafa i ovi problemi se, dakle, prirodno razmatraju kao problemi pretrage. Opšti problem nalaženja puta
je
(eng. path finding) može se opisati na sledeći način: dat je graf svojim čvorovima i granama izmedu nekih od
njih i zadatak je naći put izmedu dva zadata čvora (polazni čvor i ciljni čvor). Granama grafa mogu da budu
an
pridružene nenegativne cene i zadatak može da bude nalaženje puta izmedu zadata dva čvora takvog da je zbir
cena svih grana koje pripadaju putu minimalan. Postoji mnogo algoritama za rešavanje ovog problema i oni
d
imaju mnoge primene, uključujući primene u planiranju obilazaka i putovanja, dizajniranju čipova, rutiranju u
računarskim mrežama, navigaciji robota, industriji igara, itd.
iz
Da bi se neki problem razmatrao kao problem pretrage i rešavao primenom algoritama pretrage, on treba
sk
Skup mogućih stanja: U toku procesa pretrage razmatraju se različita stanja. Za odlučivanje u datom tre-
ro
Test cilja: Problem je rešen ako se dode do ciljnog stanja, završnog stanja. Potrebno je da postoji raspoloživ
le
efektivan test koji proverava da li se došlo do ciljnog stanja tj. do završetka procesa pretrage.
Skup mogućih akcija: U svakom koraku pretrage može se preduzeti neki korak, neka akcija. Niz akcija
E
preduzetih u odgovarajućim trenucima treba da dovede do rešenja problema. Skup mogućih akcija može
biti isti u svakom stanju ili može da se razlikuje od stanja do stanja, što zavisi od problema koji se rešava.
Funkcija prelaska: Ova funkcija preslikava par stanje-akcija u novo stanje, dobijeno izborom neke akcije u
nekom stanju. Ukoliko ova funkcija nije poznata, nije poznato u koje će se stanje dospeti posle preduzima-
nja odredene akcije i proces odlučivanja postaje kompleksniji. Funkcija prelaska nije poznata, na primer,
u slučaju delovanja u nepoznatoj ili promenljivoj okolini. Jedan način rešavanja ovakvih problema je
korišćenjem informacija iz iskustva, odnosno aproksimiranjem ove funkcije pomoću procesa koji se zasniva
na analizi pokušaja i grešaka.
Cena akcije: Ovo je funkcija koja preslikava par stanje-akcija u numeričku vrednost — cenu preduzimanja
date akcije u datom stanju.
Kod nekih problema nabrojani elementi se lako i prirodno uočavaju, dok je kod drugih najpre potrebno
preformulisanje problema.
Stanja koja su neposredno dostupna iz nekog stanja zovemo i susedima tog stanja a ponekad i decom tog
stanja.
2.2. Rešenje problema i kvalitet algoritama pretrage 16
Primer 2.5. Elementi problema iz primera 2.1 mogu biti definisani na sledeći način:
Polazno stanje i završno stanje: polazno stanje može biti bilo koje stanje slagalice (za neke od njih ciljni
raspored nije moguće dobiti).
Test cilja: provera da li je stanje jednako [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, _].
Skup akcija: može biti {𝑙𝑒𝑣𝑜, 𝑑𝑒𝑠𝑛𝑜, 𝑔𝑜𝑟𝑒, 𝑑𝑜𝑙𝑒}, gde se date akcije odnose na pomeranje praznog polja levo,
desno, gore i dole. Iako je naizgled prirodnije kao akcije razmatrati pomeranje kvadrata susednih praznom
polju na prazno polje, ovakva formulacija je jednostavnija zbog uniformnosti.
Funkcija prelaska: preslikava stanja i akcije u stanja koja nastaju pomeranjem praznog polja na neku od
četiri moguće strane.
Cena akcije: može biti konstantna za svaku akciju (na primer, 1), pošto se sva pomeranja mogu smatrati
6)
jednako skupim. Cena rešenja je u tom slučaju jednaka ukupnom broju pomeranja potrebnih za slaganje
slagalice.
01
Primer 2.6. Elementi problema stizanja iz jednog grada u drugi (primer 2.2) su:
(2
Skup stanja: skup gradova koji su dostupni iz polaznog grada (neposredno ili posredno).
Funkcija prelaska: odredena je vezama izmedu gradova (i smerom u kojem se kreće iz tekućeg grada).
Cena akcije: na primer, dužina puta ili cena goriva potrebnog za prevoz izmedu susednih gradova.
o
Primer 2.7. U slučaju kretanja robota (primer 2.4), bilo bi potrebno odrediti moguće smerove kretanja i diskre-
sk
tizovati intervale u kojima se menja smer kretanja. Takode, bilo bi potrebno odlučiti da li se pokreti različitim
delovima robota mogu preduzimati simultano ili ne. Posle toga bi se navedeni elementi problema mogli lako
n
definisati.
ro
Rešenje problema pretrage je niz koraka (akcija) koji vode od polaznog stanja do ciljnog stanja. Svakom
le
rešenju se može pridružiti njegova cena kao suma cena akcija koje se preduzimaju. Optimalno rešenje je rešenje
sa najmanjom cenom. Ono ne mora biti jednoznačno definisano.
E
Kao i kod drugih vrsta algoritama, kod algoritama pretrage potrebno je poznavati njihova svojstva kako bi
se lakše izvršio izbor pogodnog algoritma za dati problem. Najvažnija opšta svojstva koje algoritmi pretrage
mogu da imaju su sledeća:
Potpunost je svojstvo koje garantuje da će algoritam naći neko rešenje problema ako rešenja uopšte postoje.
Ovo svojstvo je očito poželjno, ali se u nekim slučajevima ne zahteva. Naime, u slučaju vrlo teških
problema često je moguće formulisati heuristike koje ne garantuju pronalaženje rešenja, ali u visokom
procentu slučajeva nalaze dobra rešenja mnogo brže nego potpuni algoritmi.
Optimalnost je svojstvo koje garantuje nalaženje rešenja sa najmanjom cenom. Moguće je da algoritam koji
nema ovo svojstvo često pronalazi rešenja bliska optimalnim, ali u značajno kraćem vremenu.
Vremenska složenost govori, kao i za druge vrste algoritama, o tome koliko će vremena biti potrebno za
sprovodenje procesa pretrage. Obično se razmatra vremenska složenost najgoreg i prosečnog slučaja.
Prostorna složenost govori, kao i za druge vrste algoritama, o tome koliko je memorije potrebno za sprovodenje
procesa pretrage. Obično se razmatra prostorna složenost najgoreg i prosečnog slučaja.
17 2. Rešavanje problema korišćenjem pretrage
2. poznavanje rastojanja samo izmedu susednih gradova (koja se, na primer, mogu pročitati sa putokaza);
3. poznavanje vazdušnih rastojanja od svih gradova do ciljnog grada (koja se, na primer, mogu proceniti na
osnovu mape);
4. tačno poznavanje putnog rastojanja izmedu svih parova (ne nužno susednih) gradova.
Prema dostupnosti informacija koje mogu pomoći u pronalaženju ciljnog stanja u toku pretrage, problemi
pretrage se dele na probleme informisane i neinformisane pretrage. U skladu sa tim, moguće je formulisati i
algoritme koji mogu da iskoriste dostupne informacije, pa stoga i algoritme delimo na algoritme informisane i
6)
neinformisane pretrage.
U problemu iz primera 2.2, ako su raspoložive samo informacije o direktno dostupnim stanjima, u pitanju
01
je problem neinformisane pretrage i za rešavanje je moguće koristiti standardne algoritme za pretragu u širinu
ili u dubinu. Ukoliko su poznata vazdušna rastojanja izmedu gradova, ona bi se mogla iskoristiti kao procena
korisna za navodenje pretrage i u tom slučaju bi problem pripadao grupi problema informisane pretrage. U
(2
tom slučaju mogu se koristiti specijalizovani algoritmi u zavisnosti od vrste informacija koje su na raspolaganju.
Za problem pronalaženja najkraćih puteva u grafu, algoritam A* može da iskoristi, na primer, informaciju o
euklidskom rastojanju izmedu čvorova u grafu. U slučaju problema igranja šaha, egzaktan algoritam pretrage
je
minimax se može kombinovati sa heurističkom procenom pozicije (na primer, korišćenjem informacije o figurama,
mogućnosti mata u malom broju poteza i slično).
an
Pitanja i zadaci
d
Pitanje 2.1. Navesti barem pet opštih elemenata svakog problema pretrage.
iz
Pitanje 2.2. Kako se, prema dostupnosti informacija koje mogu pomoći u pronalaženju ciljnog stanja u toku
pretrage, dele problemi pretrage?
o
sk
n
ro
kt
le
E
E
le
kt
ro
n
sk
o
iz
d
an
je
(2
01
6)
Glava 3
Neinformisana pretraga
6)
U svim problemima pretrage, podrazumeva se da je moguće opaziti tekuće stanje, preduzimati akcije i
prepoznati ciljno stanje. Specifično za „neinformisanu pretragu“ (eng. uninformed) je to što nema dodatnih
informacija koje mogu pomoći u pronalaženju ciljnog stanja. U primeru pronalaženja puta izmedu dva grada,
01
scenario neinformisane pretrage odgovara situaciji u kojoj se u svakom gradu zna koji je to grad, moguće je
izabrati jedan od puteva ka drugim gradovima, moguće je pamtiti posećene gradove i prepoznati odredišni,
(2
ali nema nikakvih informacija o rastojanjima izmedu gradova (karte, putna signalizacija, itd). Tipičan primer
problema neinformisane pretrage je i problem lavirinta koji je opisan u nastavku.
Primer 3.1. Lavirint se sastoji od skupa povezanih hodnika kojima je moguće kretati se. Svaki hodnik ima
je
jedno ili više polja i dva kraja. Jedno polje je ulaz, a jedno izlaz iz lavirinta. Ulaz, izlaz, krajeve hodnika, kao i
an
polja koja su zajednička za dva hodnika zovemo čvorovima lavirinta. Cilj je pronaći put od ulaza do izlaza preko
čvorova lavirinta. Elementi ovog problema su sledeći:
d
Skup mogućih akcija: izbor puta (tj. sledećeg čvora lavirinta) u svakom koraku.
Jedan način pronalaženja izlaza (koji će u nastavku biti preciznije formulisan algoritmom pretrage) je držati
se leve strane hodnika i pratiti zidove dok se ne naide na izlaz.
kt
Elementi problema pretrage (stanja i relacija prelaska), pa i problema neinformisane pretrage se najčešće
prirodno izražavaju pomoću grafova, tako da su i algoritmi neinformisane pretrage najčešće formulisani u vidu
le
algoritama obilaska grafova. Na primeru lavirinta, radi se o grafu čiji čvorovi su čvorovi lavirinta, a grane putevi
izmedu tih čvorova lavirinta (slika 3.1 (desno)). Ukoliko je graf koji odgovara lavirintu stablo, kaže se da je
E
lavirint savršen.
19
3.1. Obilazak grafa u dubinu i širinu 20
1 2 22 19 20
4 3 11 12
6 5 10 21
9 14 13 17
7 8 15 16 18
1
2
3
4 5
6 9 10
7 11
6)
8 12
13 19
01
14 22
17 20
15
18 21
16
(2
Slika 3.1: Primer lavirinta (gore levo), čvorovi lavirinta i veze medu njima (gore desno), graf prostora stanja
koji odgovara lavirintu (dole)
je
an
Algoritam: DFS (pretraga u dubinu)
Izlaz: Put od polaznog ciljnog čvora u grafu 𝐺 (ako postoji takav put)
iz
1. Inicijalno, stek 𝑝𝑢𝑡 i skup posećenih čvorova sadrže samo polazni čvor.
U suprotnom, izaberi prvog takvog potomka 𝑚 i dodaj ga na vrh steka 𝑝𝑢𝑡 i u skup posećenih
čvorova.
kt
1 5
2 6
3 4
Slika 3.3: Primer obilaska grafa primenom algoritma DFS (oznake čvorova ukazuju na poredak obilaska čvorova)
na slici 3.2 a slika 3.3 ilustruje obilazak jednog grafa primenom algoritma DFS. Prikazani algoritam, ukoliko
pronade ciljni čvor, u tom trenutku na steku 𝑝𝑢𝑡 sadrži redom čvorove koji čine traženi put.
21 3. Neinformisana pretraga
Primer 3.2. Algoritam DFS se može upotrebiti za nalaženje izlaza iz lavirinta (pri čemu algoritam vraća ceo
put od ulaza do izlaza). U slučaju savršenog lavirinta, graf koji se pretražuje je stablo. Praćenje hodnika lavirinta
držeći se leve strane predstavlja upravo pretragu u dubinu.
Primer 3.3. Ukoliko se, pošavši od Zagreba traži put do Bukurešta primenom algoritma DFS i ukoliko se
prilikom izbora sledećeg grada prednost daje južnijem, bio bi pronaden put Zagreb-Sarajevo-Podgorica-Skoplje-
Sofija-Bukurešt. Ovaj put je po dužini vrlo loš izbor, što je i bilo očekivano pošto algoritam ne uzima u obzir
dužine puteva izmedu gradova. Kako se može naći najkraći put, biće prikazano kasnije.
Budimpešta
1
Zagreb
Beograd
6)
Bukurešt
2 6
01
Sarajevo
5
3
(2
Sofija
Podgorica 4
Skoplje
je
Slika 3.4: Traženje puta od Zagreba do Bukurešta primenom algoritma DFS
an
d
Bektreking (eng. backtracking) je modifikovana varijanta pretrage u dubinu. Modifikacija se sastoji u tome
iz
da se bektrekingom ne mora obići ceo graf, već se napredovanje u dubinu prekida i ranije ako se ustanovi da
se ciljni čvor ne nalazi medu potomcima tekućeg čvora i tada nastupa vraćanje na prethodni čvor. Prirodan
primer za bektreking je rešavanje problema osam dama.
o
Primer 3.4. Problem osam dama formulisan je 1848. godine i od tada je bio predmet mnogih matematičkih
sk
i informatičkih istraživanja. Problem ima jednostavnu formulaciju: rasporediti osam dama na šahovskoj tabli
tako da se nikoje dve dame ne napadaju. Skup polja koja jedna dama napada definisan je u skladu sa opštim
n
pravilima šaha i ilustrovan je na slici 3.5 (levo). Jedno moguće rešenje ovog problema prikazano je na slici 3.5
ro
(sredina). Problem „ 𝑛 dama” je uopštenje problema na 𝑛 dama koje treba rasporediti na tabli dimenzija 𝑛 × 𝑛
tako da se nikoje dve ne napadaju.
kt
U svakom rešenju, očigledno, u jednoj koloni ne mogu biti dve dame, pa se problem može preformulisati na
sledeći način: na tabli 𝑛 × 𝑛 rasporediti 𝑛 dama tako da u svakoj koloni bude po jedna i da se nikoje dve ne
napadaju.
le
Pored problema lavirinta, problem dama predstavlja jedan od tipičnih problema koji se rešavaju primenom
E
bektrekinga. Prostor stanja koji se analizira u ovom slučaju čine svi različiti rasporedi 0 do 8 dama. Postoji grana
od jednog stanja (rasporeda) ka drugom ukoliko se drugi može dobiti od prvog dodavanjem jedne dame na slobodno
polje na tabli. Neki raspored moguće je dobiti različitim redosledima dodavanja dama polazeći od prazne table,
Slika 3.5: Problem osam dama: kretanje dame u šahu (levo), jedno rešenje problema (sredina), situacija kada
je u pretrazi nužno vratiti se na prethodni izbor (desno)
3.1. Obilazak grafa u dubinu i širinu 22
/ \ ...
4 0Z0Z 4 0Z0Z
3 Z0Z0 3 Z0Z0
2 0Z0Z 2 QZ0Z
1 L0Z0 1 Z0Z0
a b c d a b c d
/ \ \
4 0Z0Z 4 0L0Z 4 0L0Z
3 ZQZ0 3 Z0Z0 3 Z0Z0
2 0Z0Z 2 0Z0Z 2 QZ0Z
1 L0Z0 1 L0Z0 1 Z0Z0
a b c d a b c d a b c d
/ / \ \
4 0Z0Z 4 0L0Z 4 0L0Z 4 0L0Z
3 ZQZ0 3 Z0Z0 3 Z0Z0 3 Z0Z0
2 0Z0Z 2 0ZQZ 2 0Z0Z 2 QZ0Z
6)
1 L0Z0 1 L0Z0 1 L0Z0 1 Z0L0
a b c d a b c d a b c d a b c d
| |
01
4 0L0Z 4 0L0Z
3 Z0Z0 3 Z0ZQ
(2
2 0ZQZ 2 QZ0Z
1 L0Z0 1 Z0L0
a b c d a b c d
je
Slika 3.6: Prikaz dela stabla pretrage za rešavanja problema četiri dame primenom bektrekinga. Oznaka X
an
označava polja na kojima je pokušano postavljanje dame, ali je ustanovljeno da se u tom slučaju napada
sa nekom od već postavljenih dama. Eksplicitno su prikazani samo rasporedi u kojima se postavljene dame
d
medusobno ne napadaju.
iz
ali se dodavanjem dama ne može dobiti tabla sa manjim brojem dama. Dakle, radi se o usmerenom acikličnom
o
grafu. Polazno stanje je prazna tabla, a ciljno stanje je bilo koje stanje koje zadovoljava uslove problema (za
sk
Kako se duž puteva kroz stablo pretrage dame samo dodaju, postupak pretrage se ne isplati nastavljati nakon što
ro
se naide na takav raspored. Na slici 3.5 (desno) prikazan je jedan raspored koji nema smisla ispitivati dalje. Na
slici 3.6, prikazan je deo stabla pretrage koja koristi bektreking za problem četiri dame (za problem osam dama
kt
Na prethodnom primeru mogu se uočiti neke tipične osobine bektrekinga. Bektreking se zasniva na proširivanju
le
tekućeg parcijalnog rešenja. Polazno parcijalno rešenje je prazno rešenje. U prethodnom primeru, to je prazna
E
šahovska tabla, a u slučaju lavirinta, to je ulaz. Proširivanje parcijalnog rešenja se u slučaju problema dama vrši
dodavanjem dame na tablu, a u slučaju lavirinta prelaskom na sledeći čvor lavirinta. Proširivanje parcijalnog
rešenja u nekim slučajevima nije isplativo ili nije moguće i tada se pretraga vraća unazad, odakle dolazi i ime
tehnike. U problemu dama, nije isplativo nastaviti pretragu ukoliko je dostignut raspored u kojem se dve dame
napadaju, a u slučaju lavirinta nije moguće nastaviti pretragu kada se dode do čvora lavirinta koji nije povezan
ni sa jednim drugim čvorom lavirinta (sem sa onim iz kojeg se došlo). Prilikom izbora naredne grane u pretrazi,
prati se neki poredak izbora. U slučaju lavirinta, to može biti sledeći hodnik nadesno u odnosu na poslednji
posećeni čvor lavirinta, a u slučaju problema dama, sledeće prazno polje u skladu sa nekom numeracijom polja.
6)
3. Obavesti da traženi put ne postoji.
01
Slika 3.7: BFS — algoritam pretrage u širinu.
(2
1
je 5
an
2 4
d
3 6
iz
Slika 3.8: Primer obilaska grafa primenom algoritma BFS (oznake čvorova ukazuju na poredak obilaska čvorova)
o
sk
Primer 3.5. U slučaju pronalaženja puta od Zagreba do Bukurešta, biće pronaden put Zagreb-Beograd-Bukurešt
n
(slika 3.9). Na početku, tekući grad je Zagreb. Iz Zagreba, pronalaze se Sarajevo, Beograd i Budimpešta. Oni
ro
čine novi red 𝑆 i za njih se pamti da je prethodni grad Zagreb, koji se uklanja iz reda. Iz Sarajeva se pronalazi
put do Podgorice koja se dodaje na kraj reda 𝑆 , a Sarajevo se iz njega uklanja. Iz Beograda se pronalazi put do
kt
Skoplja i Bukurešta, koji se dodaju na kraj reda 𝑆 , a Beograd se iz njega uklanja. Iz Budimpešte se ne pronalazi
put ni do jednog grada koji već nije obraden. Budimpešta se uklanja iz reda. Iz Podgorice se ne pronalazi put ni
do jednog grada koji već nije obraden. Podgorica se uklanja iz reda. Iz Skoplja se pronalazi put do Sofije koja
le
se dodaje na kraj reda 𝑆 , a Skoplje se iz njega uklanja. Kada Bukurešt postane grad koji se analizira, konstatuje
E
DFS pretraga je pogodnija od BFS pretrage za usmeravanje koje bira čvorove koji više obećavaju. Vremenska
složenost oba algoritma je proporcionalna zbiru čvorova i grana grafa koji se pretražuje (𝑂(|𝑉 | + |𝐸|)), a
prostorna je proporcionalna broju čvorova (𝑂(|𝑉 |)).
4 Budimpešta
1
Zagreb
3 Beograd
Bukurešt
2 7
Sarajevo
Sofija
Podgorica 5 6
Skoplje
Zagreb
6)
01
(2
Sarajevo Beograd
Budimpešta
je
an
Podgorica Skoplje Bukurešt
d
iz
Slika 3.9: Traženje puta od Zagreba do Bukurešta primenom algoritma BFS: gore je prikazan graf prostora
stanja, a dole stablo pretrage
o
sk
sa tla i oni koji su još uvek na tlu. Za one koji su podignuti sa tla već znamo najkraće puteve od polaznog
n
čvora. U svakom koraku možemo još jedan čvor „podići sa tla“ i izračunati njegovo najmanje rastojanje od
ro
polaznog čvora (razmatrajući samo one čvorove koji su mu susedni i koji su već iznad tla). Ukoliko na kraju
ovog postupka na tlu ostanu još neki čvorovi, to znači da do njih ne postoji put od polaznog čvora.
kt
Izlaz: Najkraći put od polaznog do ciljnog čvora u grafu 𝐺 (ako postoji takav put)
1. Skup 𝑄 inicijalno sadrži sve čvorove grafa.
Dejkstrin algoritam prikazan je na slici 3.10. U svakoj iteraciji, bira se čvor 𝑛 iz skupa čvorova 𝑄 (to su
čvorovi koji su „na tlu“) takav da je vrednost tekućeg najmanjeg rastojanja od polaznog čvora do njega najmanje.
Taj čvor se tada briše iz skupa 𝑄. Ukoliko je to ciljni čvor, onda se konstruiše traženi put od polaznog čvora
(koristeći informaciju o roditeljskim čvorovima). Inače, za svaki čvor 𝑚 iz 𝑄 koji je susedan čvoru 𝑛 proverava se
da li se (preko 𝑛) može popraviti tekuće najmanje rastojanje od polaznog čvora i, ako može, čvor 𝑛 se postavlja
za roditelja čvora 𝑚. Invarijanta petlje je da se za čvorove koji nisu u 𝑄 zna najkraće rastojanje od ciljnog
čvora.
U najjednostavnijoj implementaciji Dejkstrinog algoritma, skup 𝑄 se implementira kao obična povezana lista
ili niz. Složenost algoritma sa takvom implementacijom skupa 𝑄 je 𝑂(|𝑉 |2 + |𝐸|) = 𝑂(|𝑉 |2 ), gde je |𝐸| broj
grana, a |𝑉 | broj čvorova grafa. Za retke grafove (koji imaju mnogo manje grana od |𝑉 |2 ), Dejkstrin algoritam
se može implementirati efikasnije. Na primer, varijanta koja koristi binarni min-hip1 za odredivanje tekućeg
najbližeg čvora ima složenost 𝑂((|𝐸| + |𝑉 |) log |𝑉 |).
Primer 3.6. Na slici 3.11 tabela prikazuje efekat primene Dejkstrinog algoritma na prikazani graf. U ovom
primeru, čvor 𝐴 je polazni, a čvor 𝐹 ciljni čvor. Polje tabele za neki čvor prikazuje vrednost najmanjeg nadenog
rastojanja od polaznog do tog čvora.
6)
3
01
𝐴 𝐵
2 5
6
(2
𝐶 4 𝐷 5
2
1 1
𝐸 𝐹
korak B C
4
D E
jeF čvor 𝑛
an
1 ∞ ∞ ∞ ∞ ∞ 𝐴
2 3 2 6 4 ∞ 𝐶
d
3 3 2 6 3 ∞ 𝐵
4
iz
3 2 6 3 8 𝐸
5 3 2 5 3 7 𝐷
6 3 2 5 3 6 𝐹
o
sk
Primer 3.7. Slika 3.12 i prateća tabela ilustruje izvršavanje Dejkstrinog algoritma na problemu nalaženja puta
od Bukurešta do Podgorice (najkraći put je Bukurešt-Sofija-Skoplje-Podgorica).
kt
le
E
1 Min-hip je specifična stablolika struktura koja zadovoljava hip-svojstvo: ako je 𝐵 potomak čvora 𝐴, onda je vrednost pridružena
čvoru 𝐴 manja od vrednosti pridružene čvoru 𝐵 . U skladu sa tim, najmanji element je uvek koren stabla. Max-hip se definiše
analogno.
3.2. Dejkstrin algoritam 26
6)
5 Budimpešta
01
340
(2
380
840
Zagreb
390
3 Beograd
400
290 je
590
Bukurešt
1
an
6
450 360
Sarajevo 430
230
2
d
7 240 Sofija
350
iz
Podgorica 4
Skoplje
korak Bg So Bud Sk Pg Sa Zg čvor 𝑛
o
1 ∞ ∞ ∞ ∞ ∞ ∞ ∞ Bukurešt
sk
Informisana pretraga
6)
Informisana (ili heuristička) pretraga koristi ne samo informaciju o mogućim akcijama (koracima) u svakom
stanju, već i dodatno znanje o konkretnom problemu koje može da usmerava pretragu ka stanjima koja više
01
obećavaju, za koje postoji nekakvo očekivanje da brže vode ciljnom stanju, tj. rešenju problema. Ta informacija
može biti nekakva ocena, mera „kvaliteta“ stanja, a može da bude zasnovana i na informacijama vezanim za
početno ili ciljno stanje. Ta mera kvaliteta često nije egzaktna, nego predstavlja nekakvu procenu, heurističku
(2
meru.1
U nastavku ćemo funkciju koja ocenjuje kvalitet stanja zvati funkcija evaluacije i označavati sa 𝑓 , pa će 𝑓 (𝑛)
označavati ocenu stanja 𝑛. Smatraćemo i da su cene akcija (ili cene grana grafa) nenegativne. Već je rečeno da
je
probleme pretrage obično reprezentujemo grafovima koji opisuju prostor stanja, pa ćemo često umesto „stanja“
i „ocena stanja“ govoriti i „čvor” i „ocena čvora“.
an
Prilikom rešavanja problema pretragom, generiše se stablo pretrage (obično samo implicitno) čijim su
čvorovima pridružena stanja. Pošto kroz jedno isto stanje može da se prode više puta tokom pretrage može
d
da bude više čvorova stabla pretrage sa istim tim stanjem. Pošto ocena stanja može da zavisi od trenutnog
konteksta procesa pretrage, obično je preciznije reći „ocena čvora (stabla pretrage)“ nego „ocena stanja“.
iz
Pohlepnim algoritmom naziva se algoritam koji bira lokalno optimalne akcije, tj. teži neposrednom povećanju
vrednosti neke ciljne funkcije. Ovakav algoritam ne procenjuje dugoročni kvalitet izabranih akcija, tj. koliko
n
one doprinose ostvarenju konačnog cilja, već bira akciju koja se na osnovu znanja dostupnog u trenutku izbora
procenjuje kao najbolja medu raspoloživim akcijama.
ro
Primer 4.1. U primeru pronalaženja najkraćih puteva izmedu gradova (primer 2.2), ako je u svakom gradu
kt
moguće videti tablu sa tačnim rastojanjima do susednih gradova, pohlepni informisani algoritam bi kao funkciju
evaluacije 𝑓 (𝑛) mogao da koristi zbir tačnog rastojanja od tekućeg čvora do čvora 𝑛 (tj. da uvek za sledeći
le
grad bira najbliži grad). Ukoliko su poznata vazdušna rastojanja izmedu gradova na osnovu mape, pohlepni
informisani algoritam bi kao funkciju evaluacije 𝑓 (𝑛) mogao da koristi vazdušno rastojanje od 𝑛 do ciljnog
E
grada (tj. da uvek za sledeći grad bira onaj koji je najbliži ciljnom vazdušnim putem).
Ako je u svakom gradu moguće i videti tablu sa tačnim rastojanjima do susednih gradova i poznata su
vazdušna rastojanja izmedu gradova, pohlepni informisani algoritam bi kao funkciju evaluacije 𝑓 (𝑛) mogao da
koristi zbir tačnog rastojanja od tekućeg čvora do čvora 𝑛 i vazdušnog rastojanja od 𝑛 do ciljnog grada. Dakle,
tada se, u svakom koraku, kao sledeći grad, kao grad koji najviše obećava, bira grad 𝑛 za koji je zbir tačnog
rastojanja od tekućeg grada do 𝑛 i vazdušnog rastojanja od 𝑛 do ciljnog grada najmanji. Ovaj pristup biće
ilustrovan primerom traženja puta od Podgorice do Budimpešte (slika 4.2). Iz Podgorice su neposredno dostupni
Sarajevo, Beograd i Skoplje, a ocene dužina puteva do cilja preko tih gradova su 640km, 770km i 990km, te se
ide u Sarajevo. Iz Sarajeva su neposredno dostupni Zagreb, Beograd i Podgorica, a ocene dužina puteva preko tih
gradova su 700km, 610km i 790km, te se ide u Beograd. Iz Beograda su neposredno dostupni Sarajevo, Zagreb,
Budimpešta, Bukurešt, Skoplje, Podgorica, a ocene dužina puteva preko tih gradova su 700km 690km, 380km,
1 Heuristike su tehnike za usmeravanje i sužavanje pretrage u problemima u kojima se javlja kombinatorna eksplozija. Reč
„heuristika“ potiče od grčke reči „heurisko“ koja znači „tražiti“ ili „otkrivati“. Srodna grčka reč „heureka“ ili „eureka“ znači „našao
sam“ ili „otkrio sam“ i obično se vezuje za Arhimeda i njegov uzvik kada je došao do jednog znamenitog otkrića. Aristotel je koristio
termin „heuristika“ za otkrivanje novog znanja (ili demonstriranje postojećeg) kroz komunikaciju i interakciju izmedu izlagača i
slušalaca. Perl (1984) pod heuristikama smatra „kriterijume, metode ili principe za izbor izmedu nekoliko mogućih akcija onu koja
obećava da će biti najkorisnija za postizanje nekog cilja”.
27
4.1. Pohlepna pretraga 28
Ako je 𝑛 ciljni čvor, izvesti o uspehu i vrati rešenje konstruišući put od polaznog do ciljnog čvora.
Ako nema direktno dostupnih čvorova iz tekućeg čvora, izvesti o neuspehu.
Od čvorova koji su direktno dostupni iz tekućeg čvora kao novi tekući čvor izaberi čvor 𝑛 koji ima
najbolju ocenu 𝑓 (𝑛).
6)
Budimpešta
01
340
(2
300 380
840
Zagreb 320
410 640
390
400
290
370
290
640
Beograd
je
590
450
Bukurešt
an
190
450 360
Sarajevo 430
230 280 300
320
d
170
240 Sofija
iz
350
Podgorica 170
190
Skoplje
Podgorica
o
sk
Sarajevo
Beograd Skoplje
ro
Zagreb Podgorica
Beograd
le
380
E
Budimpešta
Slika 4.2: Traženje puta od Podgorice do Budimpešte primenom pohlepnog algoritma: na slici gore je prikazan
graf koji opisuje prostor stanja, a na slici dole prikazano je stablo pretrage
1230km, 1070km i 1010km, te se ide u Budimpeštu. Pronadeni put je, dakle, Podgorica-Sarajevo-Beograd-
Budimpešta i njegova stvarna dužina je 900km. Medutim, stvarna dužina puta Podgorica-Beograd-Budimpešta
je manja i iznosi 830km, što znači da je napravljeni izbor pogrešan, tj. nije najbolji mogući. Ovaj ishod ilustruje
opšti problem pohlepne pretrage, a to je da je moguće pronaći rešenje koje nije najbolje. Štaviše, u opštem
slučaju, moguće je ne pronaći rešenje i ako ono postoji, a moguće je i ostati u beskonačnoj petlji.
Primer 4.2. U slučaju Lojdove slagalice, kao ocena rastojanja od tekućeg do ciljnog stanja može se koristiti zbir
Menhetn rastojenja svakog od 15 polja slagalice do njegovog ciljnog mesta. Menhetn rastojanje izmedu dva polja
𝐴 i 𝐵 definiše se kao najmanji broj polja koji je potrebno preći kako bi se došlo od 𝐴 do 𝐵 , krećući se isključivo
29 4. Informisana pretraga
horizontalno ili vertikalno2 . U slučaju stanja slagalice u korenu levog stabla na slici 4.3, Menhetn rastojanje
polja 1 do njegovog pravog mesta je 3, zato što je na tom putu potrebno preći preko dva polja krećući se naviše,
a potom jedno polje krećući se nalevo. Mogući su i drugi putevi, ali njihova dužina nije manja. Ukupna ocena
rastojanja za to stanje slagalice je 0+0+0+1+1+2+1+0+3+2+2+0+0+2+2=16. Pohlepna pretraga se može
formulisati tako da se u svakom koraku preduzima potez koji vodi ka najmanjoj oceni rastojanja u odnosu na
tekuće stanje.
2 3 4 1 2 3
6 5 10 12 15 5 10 4
9 1 8 15 9 12 6 8
13 14 7 11 13 14 7 11
6 2 3 4 2 3 4 1 2 3 1 2 3 4
6)
5 10 12 6 5 10 12 15 5 10 4 15 5 10
9 1 8 15 9 1 8 15 9 12 6 8 9 12 6 8
13 14 7 11 13 14 7 11 13 14 7 11 13 14 7 11
01
Slika 4.3: Stanje slagalice (levo) u kojem nema poteza koji vodi u stanje sa boljom ocenom rastojanja i stanje
(2
slagalice (desno) iz kojeg postoji niz koraka koji poboljšavaju ocenu rastojanja (pomeranjem praznog polja
naniže), ali se završava u stanju iz kojeg svi potezi pogoršavaju ocenu.
je
U slučaju stanja slagalice u korenu slike 4.3 (levo), pohlepna pretraga ne može da nastavi pošto dato stanje
predstavlja lokalni minimum ocene rastojanja jer se bilo kojim potezom ta ocena uvećava za 1.
an
S druge strane, ukoliko je polazna konfiguracija 4.3 (desno) ocena rastojanja se smanjuje pomeranjem polja
4 naviše a zatim i pomeranjem naviše polja 8 i 11. Nakon toga se dolazi do stanja koje je lokalni minimum i
d
pretraga se zaustavlja.
Navedeni primeri pokazuju da predloženom jednostavnom pohlepnom pretragom nije moguće rešiti Lojdovu
iz
slagalicu.
Pohlepni algoritmi se mogu koristiti i za rešavanje opštijih problema od pretrage — problema matematičke
o
optimizacije. Ovi problemi pretpostavljaju postojanje funkcije cilja i skupa dopustivih rešenja. U zavisnosti od
sk
formulacije problema, potrebno je naći dopustivo rešenje sa minimalnom ili maksimalnom vrednošću funkcije
cilja. Takvo rešenje se naziva optimalnim rešenjem problema optimizacije. Ovakvi problemi ne moraju pretpo-
n
stavljati postojanje stanja, akcija i drugih elemenata problema pretrage. U kontekstu matematičke optimizacije,
ro
pohlepni algoritmi se obično nazivaju algoritmima penjanja uzbrdo pošto biraju susedna dopustiva rešenja koja
imaju najviše vrednosti funkcije cilja.
Pohlepna pretraga obično se ponaša dobro u slučaju problema kod kojih kvalitet odluke u nekom stanju
kt
pretrage ne zavisi od budućih odluka ili ako se dati problem može aproksimirati problemom za koji ovo važi. Ako
navedeno svojstvo važi, lokalno optimalna odluka je stvarno optimalna. Navedeno svojstvo se može i drugačije
le
formulisati — pohlepna pretraga će se ponašati dobro ukoliko se optimalno rešenje problema gradi neposredno
od lokalno optimalnih rešenja potproblema.
E
Algoritmi zasnovani na pohlepnoj pretrazi su obično znatno jednostavniji od algoritama koji garantuju
optimalnost ili potpunost procesa rešavanja. Medutim, iako obično ne garantuju optimalnost rešenja, često
daju rešenja koja su praktično prihvatljiva. S druge strane, mane ovog pristupa su sledeće:
Opasnost od lokalnih maksimuma: Lokalni maksimumi su tačke u prostoru pretrage čiji susedi imaju ma-
nju vrednost funkcije cilja od nje, ali je njena vrednost manja od vrednosti globalnog maksimuma. Algo-
ritmi penjanja uzbrdo nemaju načina da utvrde da se nalaze u lokalnom maksimumu (slika 4.4, levo)
Neefikasnost u slučaju grebena: Grebeni predstavljaju uske staze koje opadaju ili rastu duž nekog pravca
(slika 4.4, desno). U takvim problemima, penjanje uzbrdo ne vodi u pravcu rasta staze, već je potrebno
da napravi mnogo cik-cak koraka da se uspne uz greben (ili da se spusti niz greben).
Platoi: Platoi predstavljaju oblasti prostora pretrage u kome funkcija cilja ima konstantnu vrednost. Zbog
toga je nemoguće odrediti koji potez je najbolji, a samim tim se može desiti da pohlepna pretraga ne nade
izlaz sa platoa.
2 Rastojanje se zove Menhetn, jer podseća na kretanje ulicama Menhetna koje su medusobno normalne ili paralelne: od jednog
do drugog bloka moguće je kretati se ulicama, ali nije moguće prolaziti blokove dijagonalno.
4.1. Pohlepna pretraga 30
Slika 4.4: Situacija u kojoj pohlepna pretraga može da vrati samo lokalni maksimum (levo) i greben (desno)
6)
Postoje razne varijacije osnovnog penjanja uzbrdo koje pokušavaju da se izbore sa navedenim problemima.
Takvo je na primer stohastičko penjanje uzbrdo koje ne bira uvek susedno stanje koje ima najveću vrednost, ali
01
verovatnoća da odredeno stanje bude izabrano je veća što je veća njegova vrednost. Druga varijacija je penjanje
uzbrdo sa slučajnim restartovanjem kod kojeg se posle pronalaženja lokalnog maksimuma proces pretrage ponovo
pokreće iz slučajno generisanog polaznog stanja. Ovaj metod omogućava pronalaženje globalnog maksimuma
(2
sa verovatnoćom koja se približava 1 kada se povećava broj pokušaja.
(︂ )︂
𝜕𝑓 𝜕𝑓 𝜕𝑓
∇𝑓 = , ,...,
𝜕𝑥1 𝜕𝑥2 𝜕𝑥𝑛
o
Gradijent izračunat u odredenoj tački 𝐴 ∈ R𝑛 predstavlja vektor u prostoru R𝑛 u čijem pravcu funkcija 𝑓
sk
najstrmije raste u okolini tačke 𝐴. Stoga se kretanjem u ovom pravcu može doći do lokalnog maksimuma.
Kretanjem u suprotnom pravcu, može se doći do lokalnog minimuma. U tradiciji matematičke optimizacije,
n
češće se koristi formulacija traženja minimuma, a metoda za traženje minimuma se može upotrebiti i za nalaženje
maksimuma ukoliko se primeni na funkciju −𝑓 umesto na funkciju 𝑓 . Princip kretanja u smeru suprotnom od
ro
gradijenta je osnova algoritma najstrmijeg spusta ili gradijentnog spusta. Algoritam najstrmijeg spusta prikazan
je na slici 4.5.
kt
2. Ponavljati
U praksi se ne može očekivati nalaženje same tačke lokalnog minimuma, s obzirom na to da se ne radi o
31 4. Informisana pretraga
diskretnom prostoru, te se opisani postupak prekida kada razlika u vrednosti funkcije 𝑓 u odnosu na njenu
prethodnu vrednost postane dovoljno mala.
Da bi se dati algoritam u potpunosti definisao potrebno ga je dodatno precizirati. Poznavanje gradijenta
i kretanje u suprotnom pravcu u praksi ipak ne garantuje nalaženje minimuma, jer je u zavisnosti od dužine
koraka moguće preći preko minimuma, nastaviti dalje i doći i do goreg rešenja od tekućeg. Stoga je u svakom
koraku potrebno odrediti konstantu 𝜆𝑛 takvu da se za novu tačku uzima vrednost
xn+1 = xn − 𝜆𝑛 ∇𝑓 (xn )
Ova konstanta se može naći Armiho-Goldštajnovom pretragom duž pravca gradijenta koja je formulisana algo-
ritmom 4.6. Poenta Armiho-Goldštajnove pretrage je smanjivanje koraka dok se ne steknu uslovi dovoljni za
konvergenciju.
6)
Izlaz: Koeficijent 𝜆
1. Postaviti 𝜆 na 1.
01
𝜆‖∇𝑓 (x)‖2
2. Dok važi 𝑓 (x − 𝜆∇𝑓 (x)) > 𝑓 (x) − 2
(2
Postaviti 𝜆 na 2.
𝜆
je
Slika 4.6: Armiho-Goldštajnova pretraga duž pravca gradijenta.
an
Primer 4.3. Potrebno je izgraditi lekarsku stanicu koja bi opsluživala četiri sportske lokacije. Stanica bi trebalo
d
da bude relativno blizu svim lokacijama. Jedan povoljan izbor njene lokacije bi bila tačka x takva da je zbir
iz
4
∑︁
𝑓 (x) = ‖x − s(𝑖) ‖2
o
𝑖=1
sk
𝑓 (x) = (𝑥1 − 0)2 + (𝑥2 − 0)2 + (𝑥1 − 0)2 + (𝑥2 − 1)2 + (𝑥1 − 2)2 + (𝑥2 − 0)2 + (𝑥1 − 3)2 + (𝑥2 − 3)2
𝑧
le
35
E
30
25
20
15
10
5
−1
s1
−1
s3 0
1 s2
2 −5
𝑥3 x1 x0 1
2
3
𝑦
s4
Gradijent funkcije 𝑓 je
∇𝑓 (x) = (8𝑥1 − 10, 8𝑥2 − 8)
Neka je polazna tačka x0 = (1, 1) i 𝜀 = 0.01. Vrednost gradijenta ∇𝑓 (x0 ) u prvoj iteraciji je (−2, 0). Vrednost
parametra 𝜆0 odreduje se Armiho-Goldštajnovom pretragom. Za vrednost 𝜆 = 1, evaluira se uslov 𝑓 ((1, 1) −
1 · (−2, 0)) > 𝑓 (1, 1) − 2, odnosno 25 > 13 − 2. Kako je uslov ispunjen, 𝜆 se postavlja na 0.5 i evaluira se
𝑓 ((1, 1) − 0.5 · (−2, 0)) > 𝑓 (1, 1) − 1, odnosno 15 > 13 − 1. Kako je uslov ispunjen, 𝜆 se postavlja na 0.25 i
evaluira se 𝑓 ((1, 1) − 0.25 · (−2, 0)) > 𝑓 (1, 1) − 0.5, odnosno 13 > 13 − 0.5. Kako je uslov ispunjen, 𝜆 se postavlja
na 0.125 i evaluira se 𝑓 ((1, 1) − 0.125 · (−2, 0)) > 𝑓 (1, 1) − 0.25, odnosno 12.75 > 13 − 0.25. Kako uslov nije
ispunjen, petlja se prekida i vraća se vrednost 0.125, što se uzima za vrednost parametra 𝜆0 . Za tačku x1 , uzima
se tačka x0 − 𝜆0 ∇𝑓 (x0 ), odnosno (1, 1) − 0.125 · (−2, 0), što je (1.25, 1).
Kako važi |𝑓 (x0 ) − 𝑓 (x1 )| = |13 − 12.75| = 0.25 > 0.01 · |13|, prelazi se na novu iteraciju. Gradijent je
∇𝑓 (1.25, 1) = (0, 0). Za datu tačku Armiho-Goldštajnova pretraga se zaustavlja odmah i vraća 𝜆 = 1. Kako je
gradijent jednak (0, 0), važi x2 = x1 i algoritam se zaustavlja sa tačnim rešenjem (1.25, 1).
U opštem slučaju retko se dešava zaustavljanje sa tačnim rešenjem.
U ovom slučaju, rešenje se moglo naći i analitički — rešavanjem jednačina ∇𝑓 (x) = 0, ali to u opštem
6)
slučaju nije moguće.
01
Za diferencijabilne funkcije postoje i drugi metodi lokalne optimizacije, medu kojima je algoritam najstrmijeg
spusta najjednostavniji. Problem ovog algoritma je što je konvergencija često spora. Brže alternative su ili
(2
komplikovanije ili prave dodatne pretpostavke o svojstvima funkcije (poput konveksnosti) ili zahtevaju dodatne
informacije o ciljnoj funkciji (poput parcijalnih izvoda drugog reda).
Treba imati u vidu da diskutovani algoritam ne garantuje nalaženje globalnog minimuma. U slučaju da
je
funkcija ima veći broj minimuma, u zavisnosti od izabrane polazne tačke, rešenja koja algoritam daje mogu biti
različita i pronadeni minimum može biti samo lokalni.
an
Pristup pretrage prvo najbolji (engl. best-first search) predstavlja osnovu za različite algoritme pretrage grafa
(pri čemu je u vidu grafa opisan prostor stanja i akcija za neki problem). Rešenjem se smatra niz čvorova (tj. put)
od polaznog do ciljnog čvora u grafu. U toku primene algoritma, svakom čvoru stabla pretrage pridružuje se
o
informacija o njegovom prethodniku (roditelju) u mogućem rešenju, isto kao u Dejkstrinom algoritmu.
sk
Da bi se izbegle beskonačne petlje (tj. beskonačno obradivanje istog stanja, tj. beskonačni nizovi čvorova
stabla pretrage u kojima je isto stanje), održavaju se dve liste stanja/čvorova:
n
zatvorena lista (ili lista zatvorenih stanja) – lista stanja za koje su već ispitani svi susedi (tj. sva neposredno
ro
dostupna stanja);
kt
otvorena lista (ili lista otvorenih stanja) – lista stanja koja su već posećena, ali nisu obradeni svi njihovi
susedi.
le
Implementacija otvorene liste treba da omogućava efikasan pristup elementu sa najboljom ocenom 𝑓 (𝑛). Jed-
E
nostavnosti radi, u nastavku ćemo često isto označavati čvor stabla pretrage i njegovo stanje.
Na početku je u otvorenoj listi samo polazno stanje, a zatvorena lista je prazna. Suštinska ideja je da se u
svakoj iteraciji, analizira element otvorene liste sa najboljom ocenom i obraduju se iz njega neposredno dostupna
stanja. Ukoliko se naide na ciljno stanje – zadatak je rešen i algoritam završava rad. Precizniji opis algoritma
dat je na slici 4.8.
Algoritam Prvo najbolji ne pretenduje da daje optimalno rešenje (tj. da otkrije najbolji put do ciljnog
čvora) niti pruža ikakve garancije u tom smislu. Ipak, da bi se uvećale šanse da se pronade što kraći put
izmedu dva čvora, kada se analizira čvor 𝑚 koji je direktno dostupan iz tekućeg čvora 𝑛 (u skladu sa prikazanim
algoritmom), u slučaju da je čvor 𝑚 već u otvorenoj ili zatvorenoj listi, može se proveriti da li je put od polaznog
čvora do čvora 𝑚 preko čvora 𝑛 bolji od postojećeg puta do 𝑚; ako jeste, treba promeniti informaciju o roditelju
čvora 𝑚 na čvor 𝑛, a ako je 𝑚 bio u zatvorenoj listi, prebaciti ga u otvorenu.
Ako je broj stanja i akcija konačan, algoritam se očigledno zaustavlja i ima svojstvo potpunosti, o čemu
govori naredna teorema.
Teorema 4.1. Ako je broj stanja i akcija konačan, algoritam Prvo najbolji se zaustavlja i nalazi traženi
put uvek kada on postoji.
33 4. Informisana pretraga
Izaberi čvor 𝑛 (tekući čvor) iz otvorene liste koji ima najbolju ocenu 𝑓 (𝑛).
Ako je 𝑛 ciljni čvor, izvesti o uspehu i vrati rešenje konstruišući put od polaznog do ciljnog čvora
(idući unazad — od ciljnog čvora).
Za svaki čvor 𝑚 koji je direktno dostupan iz 𝑛 uradi sledeće:
– Ako 𝑚 nije ni u otvorenoj ni u zatvorenoj listi, dodaj ga u otvorenu listu i označi 𝑛 kao njegovog
roditelja.
Izbaci 𝑛 iz otvorene liste i dodaj ga u zatvorenu listu.
6)
3. Izvesti da traženi put ne postoji (otvorena lista je prazna i uspeh nije prijavljen).
01
Slika 4.8: Algoritam Prvo najbolji.
(2
Ako funkcija 𝑓 (𝑛) vraća dubinu čvora 𝑛 (u DFS obilasku grafa počev od polaznog čvora), onda se navedeni
je
algoritam ponaša kao algoritam obilaska u širinu. Ako funkcija 𝑓 (𝑛) vraća zbir cena od polaznog čvora do čvora
an
𝑛, onda se navedeni algoritam ponaša kao Dejkstrin algoritam.
Opšti algoritam Prvo najbolji predstavlja bitnu modifikaciju algoritma jednostavnog pohlepnog pristupa.
Iako oba u jednom čvoru biraju (najpre) najbolji susedni čvor (tj. čvor 𝑛 sa najboljom vrednošću 𝑓 (𝑛)) algoritam
d
Prvo najbolji, za razliku od jednostavnog pohlepnog pristupa omogućava vraćanje na čvorove koji nisu ispitani
iz
jer je neka od alternativa obećavala više. Takode, ovim pristupom se omogućava nastavak pretrage i u slučaju
kada pohlepna pretraga naide na plato ili lokalni optimum (zahvaljujući alternativama u otvorenoj listi) i
eliminiše se mogućnost beskonačnih petlji (zahvaljujući pamćenju obradenih čvorova u zatvorenoj listi).
o
sk
Primer 4.4. U slučaju prethodno diskutovanog primera slagalice, ponovljenog na slici 4.9, situacija prikazana
levo predstavlja lokalni minimum, zbog čega se pohlepna pretraga zaustavlja. Algoritam Prvo najbolji će
n
odabrati jedan od mogućih poteza, ali će alternativno stanje čuvati u otvorenoj listi i možda ga obraditi kasnije.
ro
U situaciji prikazanoj desno, pohlepnom pretragom se prazno polje spušta do donjeg desnog ugla, čime se dolazi
do lokalnog optimuma i pohlepna pretraga ne može da nastavi. Medutim, u slučaju algoritma Prvo najbolji,
kt
stanja koja su bila alternative ispitanim stanjima su i dalje u otvorenoj listi i ispituju se dalje. Stoga je algoritam
Prvo najbolji u stanju da reši slagalicu, ali ne garantuje nalaženje rešenja koje se sastoji od najmanjeg broja
poteza.
le
E
2 3 4 1 2 3
6 5 10 12 15 5 10 4
9 1 8 15 9 12 6 8
13 14 7 11 13 14 7 11
6 2 3 4 2 3 4 1 2 3 1 2 3 4
5 10 12 6 5 10 12 15 5 10 4 15 5 10
9 1 8 15 9 1 8 15 9 12 6 8 9 12 6 8
13 14 7 11 13 14 7 11 13 14 7 11 13 14 7 11
Slika 4.9: Stanje slagalice (levo) u kojem svi potezi pogoršavaju ocenu rastojanja i stanje slagalice (desno) iz
kojeg postoji niz koraka koji poboljšavaju ocenu rastojanja (pomeranjem praznog polja naniže), ali se završava
u stanju iz kojeg svi potezi pogoršavaju ocenu.
4.3. Algoritam A* 34
4.3 Algoritam A*
Algoritam A* pretraga ili, kraće, algoritam A* (čita se „a zvezda“, engl. „a star“) za odredivanje najkraćeg
puta izmedu dva čvora grafa, jedan je od fundamentalnih i najpopularnijih algoritama veštačke inteligencije.
Zasnovan je na korišćenju heuristika, ali ipak ima svojstva kao što su potpunost i optimalnost. Prvu verziju
algoritma A* su razvili Hart, Nilsson i Raphael 1968. godine, a u narednim godinama uvedeno je nekoliko
modifikacija.
Algoritam A* je varijanta algoritma Prvo najbolji u kojoj se koristi funkciju evaluacije 𝑓 definisana na
sledeći način:
𝑓 (𝑛) = 𝑔(𝑛) + ℎ(𝑛),
gde je 𝑔(𝑛) cena puta od polaznog čvora do čvora 𝑛, a ℎ(𝑛) je procenjena (heuristička) cena najjeftinijeg puta
od čvora 𝑛 do ciljnog čvora. Dok se traga za najkraćim putem, uvek se zna tekuća minimalna cena (a može
se menjati tokom primene algoritma) od polaznog čvora do čvora 𝑛 (tj. tekuća vrednost 𝑔(𝑛)), ali se vrednost
ℎ(𝑛) može samo procenjivati. Od kvaliteta heuristike zavisi ponašanje i efikasnost algoritma. Izbor kvalitetne
heuristike jedan je od najvažnijih i najtežih izazova u dizajniranju konkretnih implementacija algoritma A*.
6)
Algoritam A* traži optimalno rešenje (tj. otkriva najbolji put do ciljnog čvora) i zato za svaki čvor na koji
naide proverava da li je do njega ranije već bio pronaden neki lošiji put i, ako jeste, zamenjuje ga novim, boljim
01
putem. Takva provera je u algoritmu Prvo najbolji bila opciona, a u algoritmu A* je obavezna.
Pored toga što je specijalan slučaj metoda Prvo najbolji, algoritam A* je uopštenje Dejkstrinog algoritma.
(2
Kao i u Dejkstrinom algoritmu, čvorovi koje tek treba obraditi čuvaju se u listi, sortiranoj prema nekom
kriterijumu. Algoritam A* često ispituje manje čvorova nego Dejkstrin algoritam. To smanjenje proističe
iz korišćenja heuristike koja procenjuje donju granicu daljine do ciljnog čvora. Ključna razlika izmedu dva
je
algoritma je u tome što Dejkstrin algoritam (kao algoritam neinformisane pretrage) uzima u obzir samo cenu
od polaznog do tekućeg čvora — vrednost 𝑔(𝑚), a A* (kao algoritam informisane pretrage) koristi vrednost
an
funkcije evaluacije 𝑓 (𝑚) = 𝑔(𝑚) + ℎ(𝑚).
Opis algoritma A* dat je na slici 4.10. Prilikom dodavanja čvora 𝑚 u otvorenu listu vrednost 𝑔(𝑚) može se
izračunati na inkrementalan i efikasan način: vrednost 𝑔(𝑚) jednaka je zbiru vrednosti funkcije 𝑔 za roditelja
d
Algoritam: A*
o
Izlaz: najkraći put od polaznog do ciljnog čvora (ako postoji put izmedu ova dva čvora)
1. Zatvorena lista je inicijalno prazna, a otvorena lista sadrži samo polazni čvor.
n
ro
Izaberi čvor 𝑛 (tekući čvor) iz otvorene liste koji ima najbolju ocenu 𝑓 (𝑛).
kt
Ako je 𝑛 ciljni čvor, izvesti o uspehu i vrati rešenje konstruišući put od polaznog do ciljnog čvora
(idući unazad — od ciljnog čvora).
le
– Ako 𝑚 nije ni u otvorenoj ni u zatvorenoj listi, dodaj ga u otvorenu listu i označi 𝑛 kao njegovog
roditelja. Izračunaj i pridruži vrednost 𝑓 (𝑚) čvoru 𝑚.
– Inače, proveri da li je put od polaznog čvora do čvora 𝑚 preko čvora 𝑛 bolji (kraći ili jeftiniji)
od postojećeg puta do 𝑚 (trenutna vrednost 𝑔(𝑚)). Ako jeste, promeni informaciju o roditelju
čvora 𝑚 na čvor 𝑛 i ažuriraj vrednosti 𝑓 (𝑚), a ako je 𝑚 bio u zatvorenoj listi, prebaci ga u
otvorenu.
Izbaci 𝑛 iz otvorene liste i dodaj ga u zatvorenu listu.
3. Izvesti da traženi put ne postoji (otvorena lista je prazna i uspeh nije prijavljen).
Ako algoritam naide na čvor 𝑚 koji je već u otvorenoj ili zatvorenoj listi, to znači da je pronaden novi
put do čvora 𝑚. Tada se proverava da li je put od polaznog čvora do već posećenog čvora 𝑚 preko čvora 𝑛
bolji od postojećeg puta. Ako jeste bolji, potrebno je ažurirati vrednost 𝑔(𝑚). To može da se desi i za čvor 𝑚
35 4. Informisana pretraga
koji pripada zatvorenoj listi: ako to jeste slučaj, potrebno je čvor 𝑚 ponovo ispitati kao otvoreni čvor. Ovo je
neophodno kako bi se obezbedilo pronalaženje najboljeg puta od polaznog do ciljnog čvora.
Korišćenje algoritma A* nije uvek jednostavno. Često je algoritam potrebno prilagoditi specifičnom problemu
a uvek je, u kontekstu aplikacija koje rade u realnom vremenu, važno imati u vidu vremensku složenost, prostornu
složenost, upravljanje memorijom i različite dodatne faktore. Neki od dodatnih, specifičnih zahteva mogu da
iziskuju dodatno matematičko znanje i izračunavanja i specifične implementacione tehnike i strukture. Svi ti
moduli treba da budu uklopljeni u kompaktan i efikasan sistem za nalaženje puta.
Potpunost: Ako su broj čvorova i broj akcija konačni, ako postoji put izmedu dva čvora, algoritam A* će, kao
i svaki Prvo najbolji algoritam, naći jedan takav (ukoliko je raspoloživo dovoljno vremena i memorijskog
prostora). Čak i ako je heuristička funkcija veoma loša, ciljni čvor će biti dostignut u konačnom broju
koraka.
6)
Optimalnost: Od svih puteva izmedu dva data čvora, algoritam A* vratiće najkraći (tj. vratiće optimalno
01
rešenje) ako je funkcija ℎ dopustiva (eng. admissible). Funkcija ℎ je dopustiva ako nikada ne precenjuje
stvarno rastojanje izmedu tekućeg čvora i ciljnog čvora, tj. ako za svaki čvor važi:
(2
0 ≤ ℎ(𝑛) ≤ ℎ* (𝑛),
gde je 𝑐(𝑛, 𝑚) cena pridružena (moguće usmerenoj) grani (𝑛, 𝑚). Svaka konzistentna funkcija je dopu-
stiva, ali obratno ne važi. Ako je funkcija ℎ konzistentna, nije potrebno proveravati da li je put preko
tekućeg čvora do jednom zatvorenog čvora bolji od postojećeg (jer sigurno nije). Dakle, ako je funkcija
o
ℎ konzistentna, algoritam A* je optimalan i još jednostavniji nego u opštem slučaju. Dokaz optimalnosti
sk
primene algoritma, ali u stablu pretrage svaki čvor ima vrednosti 𝑔 i 𝑓 koje se ne menjaju. Može da bude
ro
Dokaz: Ako je u nekom trenutku primene algoritma čvor stabla pretrage 𝑚 tekući i ako je njegov roditelj
E
Lema 4.2. Ako je ℎ konzistentna heuristika, za niz čvorova redom proglašenih za tekuće, niz vrednosti
𝑓 (𝑛) u stablu pretrage čini neopadajući niz.
Dokaz: U svakoj iteraciji, algoritam bira za tekući čvor čvor iz otvorene liste sa najmanjom vrednošću
𝑓 (𝑛) (te svi preostali čvorovi u skupu otvorenih čvorova imaju veće ili jednake vrednosti 𝑓 ). Svi
budući tekući čvorovi su preostali čvorovi iz otvorene liste, potomci tih čvorova ili potomci njihovih
potomaka. Na osnovu prethodne leme onda sledi da svi budući čvorovi imaju vrednosti 𝑓 veće ili
jednake 𝑓 (𝑛). Kako ovo važi za svaki tekući čvor 𝑛, sledi tvrdenje leme, tj. algoritam proglašava
čvorove tekućim u neopadajućem poretku po 𝑓 (𝑛).
4.3. Algoritam A* 36
Lema 4.3. Ako je ℎ konzistentna heuristika, kad neki čvor stabla pretrage 𝑛 postane tekući, do njego-
vog stanja je već pronaden optimalan put. Drugim rečima, svaki čvor koji postaje tekući biće čvor sa
najmanjom cenom za to stanje.
Dokaz: Kada algoritam proglasi neki čvor tekućim, pri čemu je to prvi takav čvor za odgovarajuće stanje
𝑛, on ima neke vrednosti 𝑔(𝑛) = 𝑔0 i 𝑓 (𝑛) = 𝑓0 . Pretpostavimo da 𝑔(𝑛) nije optimalan put i
pretpostavimo da je optimalan put do istog stanja moguće dostići u nekoj kasnijoj iteraciji, u nekom
budućem čvoru koji ima vrednosti 𝑔1 i 𝑓1 . Kako je 𝑔1 cena optimalnog puta do 𝑛, važi 𝑔0 > 𝑔1 , pa
i 𝑔0 + ℎ(𝑛) > 𝑔1 + ℎ(𝑛), tj. 𝑓0 > 𝑓1 . S druge strane, na osnovu prethodne leme, važi 𝑓0 ≤ 𝑓1 , što je
kontradikcija.
Teorema 4.2. Ako je ℎ konzistentna heuristika, ako je pronaden put do ciljnog čvora, on je sigurno
optimalan.
6)
Dokaz: Algoritam vraća nadeni put čim ciljni čvor po prvi put postane tekući. Na osnovu prethodne
01
leme, ako je ℎ konzistentna heuristika, kad ciljni čvor postane tekući, do njega je već pronaden
optimalan put, što daje tvrdenje teoreme.
(2
Upravo lema 4.3 govori da za čvorove dostupne iz tekućeg čvora koji su već zatvoreni, ne mora da se
proverava da li njihova vrednost 𝑔 treba da bude ažurirana. Ovo tvrdenje u slučaju konzistentne heuristike
obezbeduje jednostavniju i efikasniju implementaciju algoritma A*. je
an
Ako je funkcija ℎ konzistentna, onda je ona i dopustiva. Obratno ne važi nužno: funkcija ℎ može da bude
dopustiva, a da ne bude konzistentna.
d
Složenost: Vremenska složenost algoritma A* zavisi od heuristike. U najgorem slučaju, broj obradenih
čvorova je eksponencijalan u odnosu na dužinu najkraćeg puta. U tom slučaju, i prostorna i vremen-
iz
uslov:
sk
Ukoliko funkcija 𝑓 * odgovara optimalnom putu, onda algoritam A* obraduje sve čvorove za koje važi
ro
𝑓 (𝑛) < 𝑓 * (𝑛), kao i neke čvorove 𝑛 za koje važi 𝑓 (𝑛) = 𝑓 * (𝑛).
kt
Prethodna tvrdenja sugerišu da algoritam A* najbolje performanse (najmanji broj obradenih čvorova) daje
kada je funkcija heuristike bliska idealnoj funkciji heuristike. S druge strane, optimalnost je garantovana samo
le
ako funkcija heuristike nikada ne precenjuje stvarnu cenu puta. Zajedno, to govori da dobra funkcija heuristike
mora da bude veoma pažljivo konstruisana, tako da bude što bliža idealnoj funkciji, ali da je nikada ne premašuje.
E
Primer 4.5. U sledećem grafu zadatak je naći najkraći put od 𝐴 do 𝐸 . Pored čvorova grafa zapisane su
procenjene dužine puta do čvora 𝐸 , tj. vrednosti funkcije ℎ. Sledeća tabela ilustruje primenu algoritma A*
(odgovarajuće stablo pretrage prikazano je na slici 4.11). .
𝐴 5 𝐺
6 6
6 4
𝐷 3 𝐻 2 𝐵
5 4 1
4 3 5 3 2
𝐶 𝐹 𝐸
6 3 0
37 4. Informisana pretraga
6𝐴1
11 𝐷 11 𝐺
6𝐴1
11 𝐷 2 11 𝐺
6𝐴 16 𝐶 12 𝐹 13 𝐻
6𝐴1
11 𝐷 2 11 𝐺 3
6𝐴 16 𝐶 12 𝐹 13 𝐻 6𝐴 13 𝐻
6𝐴1
11 𝐷 2 11 𝐺 3
6𝐴 16 𝐶 12 𝐹 4 13 𝐻 6𝐴 13 𝐻
12 𝐷 13 𝐻 13 𝐵
6)
6𝐴1
11 𝐷 2 11 𝐺 3
01
6𝐴 16 𝐶 12 𝐹 4 13 𝐻 6𝐴 13 𝐻
(2
12 𝐷 13 𝐻 13 𝐵 5
𝐻𝐹 𝐸
6𝐴1
11 𝐷 2
je
11 𝐺 3
an
6𝐴 16 𝐶 12 𝐹 4 13 𝐻 6 6𝐴 13 𝐻
12 𝐷 13 𝐻 12 𝐵 5 𝐺 𝐷 𝐹 𝐵
d
𝐻𝐹𝐸
iz
6𝐴1
11 𝐷 2 11 𝐺 3
o
6𝐴 16 𝐶 12 𝐹 4 13 𝐻 6 6𝐴 13 𝐻
sk
12 𝐷 13 𝐻 12 𝐵 5 𝐺 𝐷 𝐹 𝐵7
𝐻𝐹𝐸 𝐻𝐹𝐸
n
6𝐴1
ro
11 𝐷 2 11 𝐺 3
kt
6𝐴 16 𝐶 12 𝐹 4 13 𝐻 6 6𝐴 13 𝐻
12 𝐷 13 𝐻 12 𝐵 5 𝐺 𝐷 𝐹 𝐵7
le
𝐻𝐹𝐸 𝐻𝐹𝐸 8
E
Slika 4.11: Stablo pretrage tokom primene algoritma A* na problem iz primera 4.5 (levo od čvora je zapisana
njegova 𝑓 vrednost, a desno redni broj u nizu tekućih čvorova)
Na kraju primene algoritma, kada je čvor 𝐸 postao tekući čvor, konstruiše se traženi put (koristeći infor-
macije o roditeljma za čvorove iz zatvorene liste: 𝐴 − 𝐷 − 𝐻 − 𝐵 − 𝐸 . Korišćena heuristika je dopustiva, pa je
pronadeni put optimalan.
S druge strane, heuristika nije konzistentna jer važi 𝑐(𝐻, 𝐵) + ℎ(𝐵) = 2 + 1 < 4 = ℎ(𝐻) (primetimo da
vrednosti 𝑓 za čvorove koji postaju tekući nisu neopadajuće). Zato je nužno i za zatvorene čvorove proveravati
da li se put do njih može popraviti. To i jeste bio slučaj za čvor 𝐵 : u koraku u kojem se 𝐻 briše iz zatvorene
liste, u nju se dodaje čvor 𝐵 jer je do njega pronaden bolji put (preko 𝐻 ) od ranije postojećeg. Ukoliko to ne bi
bilo radeno, algoritam bi se ponašao na sledeći način:
𝐴 5 𝐺
6 6
6 4
6)
𝐷 3 𝐻 2 𝐵
01
5 4 1
4 5 2
(2
3 3
𝐶 𝐹 𝐸
6 3 0
tekući stanje otvorene liste
je u zatvorenu listu
an
čvor [čvor(roditelj,g+h)] se dodaje
A(-, 0+6)
d
Na kraju primene algoritma, kada je čvor 𝐸 postao tekući čvor, konstruiše se put: 𝐴 − 𝐷 − 𝐹 − 𝐵 − 𝐸 . Ovo
kt
jeste put od čvora 𝐴 do čvora 𝐸 , ali nije najkraći mogući. Ovo ponašanje posledica je činjenice da funkcija ℎ
nije konzistentna: kada heuristika nije konzistentna, neophodno je proveravati i zatvorene čvorove.
le
Ukoliko se za isti problem koristi konzistentna funkcija, rezultat će biti optimalan put od 𝐴 do 𝐸 , a neće biti
potrebno proveravati jednom zatvorene čvorove. U narednom primeru se koristi konzistentna heuristika ℎ čija
E
𝐴 5 𝐺
6 6
6 4
𝐷 3 𝐻 2 𝐵
5 3 1
4 3 5 3 2
𝐶 𝐹 𝐸
6 3 0
39 4. Informisana pretraga
Primer 4.6. U primeru pronalaženja najkraćih puteva izmedu gradova (primer 2.2), ako su poznata rastojanja
izmedu gradova vazdušnim putem, algoritam A* može kao heurističku funkciju ℎ(𝑛) da koristi vazdušno rasto-
janje od čvora 𝑛 do ciljnog čvora, kao i u primeru 4.1. Tabela na slici 4.12 ilustruje izvršavanje algoritma A*
na primeru puta Podgorica-Budimpešta. Nadeni put je Podgorica-Beograd-Budimpešta, za razliku od pohlepne
6)
pretrage koja pronalazi put Podgorica-Sarajevo-Beograd-Budimpešta.
Budimpešta
01
340
(2
300 380
840
Zagreb 320
640
390410
400
290
370 560
290
640
Beograd
je
590
450
Bukurešt
an
190
450 360
Sarajevo 430
230 280 300
320
d
170
240 Sofija
iz
350
Podgorica 170
190
Skoplje
o
dodaje
Pg(-,0+560)
n
Primer 4.7. Slika 4.13 prikazuje stanje slagalice i tri moguća naslednika, koja imaju ocenu rastojanja istu
kao i polazno stanje ili veću. Stoga, kako se polazno stanje nalazi na platou, pristup čiste pohlepne pretrage je
nemoćan već na početku.
Za isto polazno stanje, algoritam A* pronalazi rešenje od pet poteza – levo, gore, desno, dole, dole. Stablo
pretrage vršene algoritmom A* je prikazano na slici 4.14 i odgovara procesu pretrage u kojem se medu stanjima
naslednicima prvo razmatra pogrešan, ali po proceni rastojanja, jednako obećavajuć potez nadole.
5
1 2 3 4
5 6 11 7
9 10 8
13 14 15 12
4 4 6
1 2 3 4 1 2 3 4 1 2 3 4
5 6 11 7 5 6 11 7 5 6 11
9 10 8 12 9 10 8 9 10 8 7
13 14 15 13 14 15 12 13 14 15 12
Slika 4.13: Stablo pohlepne pretrage na primeru slagalice u kojem se polazno stanje nalazi na platou.
6)
01
0 + 5 (1)
(2
1 2 3 4
5 6 11 7
9 10 8
13 14 15 12 je
an
1 + 4 (2) 1+4 (3) 1+6
1 2 3 4 1 2 3 4 1 2 3 4
d
5 6 11 7 5 6 11 7 5 6 11
9 10 8 12 9 10 8 9 10 8 7
iz
13 14 15 13 14 15 12 13 14 15 12
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
sk
5 6 11 7 5 6 11 7 5 6 7 5 6 11 7
9 10 8 12 9 10 8 9 10 11 8 9 10 15 8
n
13 14 15 13 14 15 12 13 14 15 12 13 14 12
ro
5 6 7 5 6 7 5 6 3 7
9 10 11 8 9 10 11 8 9 10 11 8
le
13 14 15 12 13 14 15 12 13 14 15 12
E
4+3 4 + 1 (6)
1 2 3 1 2 3 4
5 6 7 4 5 6 7 8
9 10 11 8 9 10 11
13 14 15 12 13 14 15 12
5+2 5 + 0 (7)
1 2 3 4 1 2 3 4
5 6 7 8 5 6 7 8
9 10 11 9 10 11 12
13 14 15 12 13 14 15
Slika 4.14: Stablo pretrage vršene algoritmom A*, na primeru slagalice u kojem se polazno stanje nalazi na
platou. U prikazu stabla, medu naslednicima svakog stanja su samo stanja koja nisu već dodata u zatvorenu
listu. U zagradama su navedeni redni brojevi pod kojim stanja postaju tekuća.
41 4. Informisana pretraga
Za 𝑔(𝑛) = 0, algoritam A* predstavlja specijalnu varijantu pristupa Prvo najbolji, koja najpre obraduje
čvorove sa najboljom heurističkom vrednošću. Ova varijanta algoritma nije nužno optimalna.
Dejkstrin algoritam, kao specijalni slučaj obilaska grafa u širinu, takode je specijalni slučaj algoritma A* u
kojem je ℎ(𝑛) = 0 za svaki čvor 𝑛. Ovakva funkcija ℎ je konzistentna i garantuje nalaženje optimalnog puta.
Skup otvorenih čvorova širi se ravnomerno, slično koncentričnim krugovima oko polaznog čvora, baš kao kod
Dejkstrinog algoritma. S druge strane, sa boljom heuristikom, skup otvorenih čvorova će se brže širiti ka ciljnom
čvoru.
Opšti algoritam A* često se primenjuje za pronalaženje puta na uniformnoj mreži čvorova (koja odgovara, na
primer, diskretizovanoj mapi). Tada on dobija specifičnu formu. Pretpostavimo da je mreža pravilna (sačinjena
od kvadrata) i da ima pravougaonu formu. Dodatno, pretpostavljamo da neki čvorovi (tj. neki kvadrati, neka
polja mreže) nisu dostupni i da oni predstavljaju prepreke. Svako polje je povezano sa svakim susednim poljem
(osim sa preprekama), te ima (izuzev polja na rubu) četiri susedna polja (ali neka od njih mogu biti prepreke
i kao takve nedostupne). Svakom horizontalnom ili vertikalnom pokretu obično se pridružuje (stvarna) cena 1.
Funkcija heuristike ℎ može se zadati na različite načine. Kada se izračunava vrednost ℎ, obično se, jednostavnosti
i efikasnosti radi, ignorišu sve prepreke jer vrednost ℎ(𝑛) je procenjeno a ne stvarno rastojanje, a ignorisanjem
prepreka biće potcenjeno stvarno rastojanje (što upravo i jeste poželjan uslov). Jedan način zadavanja heuristike
6)
ℎ je euklidsko rastojanje izmedu dva polja. Ova funkcija je konzistentna (te obezbeduje optimalnost), ali je
zahtevna što se tiče vremena izračunavanja (posebno na mapama sa milionima čvorova). Drugi primer funkcije
01
heuristike je Menhetn rastojanje u kojem se broji ukupan broj polja predenih horizontalno ili vertikalno da bi
se došlo od jednog do drugog polja. Ova heuristika je dopustiva (jer nikad ne precenjuje stvarno rastojanje), te
(2
garantuje pronalaženje optimalnog puta. Ukoliko su na mreži dozvoljeni i dijagonalni potezi, onda se svakom
horizontalnom
√ ili vertikalnom potezu obično pridružuje stvarna cena 1, a svakom dijagonalnom potezu stvarna
cena 2 ≈ 1.414 (ovakva cena odgovara euklidskom rastojanju izmedu središta polja; zbog efikasnije primene,
je
ove vrednosti se obično množe nekom konstantom, na primer, 10, i zaokružuju na ceo broj). U ovom slučaju,
Menhetn rastojanje potencijalno precenjuje rastojanje do ciljnog čvora, te nije dopustiva heuristika i zbog toga
an
ne garantuje pronalaženje najkraćeg puta. No, ovaj metod u praksi ipak obično daje dobre rezultate i pronadeni
putevi su obično dovoljno dobri, čak i ako nisu najkraći. I kada heuristika nije konzistentna, mogu da se ne
ažuriraju (i otvaraju ponovo) zatvoreni čvorovi. I ovakav pristup često daje dovoljno dobra i efikasna rešenja,
d
Primer 4.8. Vrednosti funkcija 𝑓 , 𝑔 i ℎ su napisane u svakom polju uniformne mreže: vrednost funkcije 𝑓
je zapisana gore-levo, vrednost funkcije 𝑔 dole-levo, a vrednost funkcije ℎ dole-desno. Vrednost funkcije 𝑓 za
o
svako polje je, kao i obično, zbir vrednosti funkcija 𝑔 i ℎ. Polazni čvor označen je zelenom, a ciljni crvenom
sk
bojom. Dozvoljeni su horizontalni, vertikalni i dijagonalni potezi. Otvorena polja su označena tankim zelenim
kvadratima, a zatvorena debljim crvenim kvadratima u okviru polja. Strelice ukazuju na tekućeg roditelja polja.
n
Postupak je isti kao kod opšteg algoritma: u svakoj iteraciji bira se polje iz otvorene liste sa najmanjom
ro
vrednošću funkcije 𝑓 . To, tekuće polje izbacuje se iz otvorene liste i dodaje u zatvorenu listu. Proveravaju se
sva susedna polja, ne razmatrajući polja koja su u zatvorenoj listi ili nisu dostupna. Ako susedno polje nije već
u otvorenoj listi, izračunavaju se vrednosti funkcija 𝑔 , ℎ i 𝑓 za njega i označava se da je tekuće polje njegov
kt
roditelj. Ako je susedno polje već u otvorenoj listi, proverava se da li je put preko tekućeg polja bolji, tj. proverava
se da li je vrednost funkcije 𝑔 za to susedno polje manja ako se do njega dolazi preko tekućeg polja. Ukoliko to
le
nije tačno, ne preduzima se ništa, a ako jeste, tekuće polje postaje novi roditelj tog susednog polja i njemu se
pridružuju nove vrednosti 𝑔 i 𝑓 .
E
Pretraga kreće od polaznog polja jer je na početku samo ono u otvorenoj listi. U poljima levo, desno, gore
i dole od polaznog polja, vrednost funkcije 𝑔 je 10. U dijagonalnim poljima vrednost funkcije 𝑔 je 14. Ove
vrednosti odgovaraju približnom euklidskom rastojanju (pomnoženom sa 10 i zaokruženom). Vrednosti funkcije
ℎ izračunavaju se na osnovu Menhetn rastojanja (pomnoženog sa 10) do ciljnog polja i zanemarujući prepreku.
Polazno polje briše 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 najmanjom vrednošću funkcije 𝑓 (40), to je polje neposredno desno
od polaznog polja i ono će biti sledeće tekuće polje.
Tekuće polje izbacuje se iz otvorene liste, dodaje se u zatvorenu listu i onda se proveravaju njegova susedna
polja (naravno, samo ona koja nisu u zatvorenoj listi i nisu prepreke). Preostala četiri polja su već u otvorenoj
listi, pa je potrebno proveriti da li put preko tekućeg čvora popravlja njihove trenutne ocene. Razmotrimo, na
primer, polje neposredno iznad tekućeg polja: vrednost funkcije 𝑔 za njega je 14. Ukoliko bi se do njega dolazilo
preko tekućeg polja, vrednost funkcije 𝑔 bila bi 20 (10 je cena od polaznog do tekućeg čvora i 10 je cena prelaska
od tekućeg polja). Dakle, na ovaj način se ne može popraviti vrednost funkcije 𝑔 u polju iznad i ona ostaje
nepromenjena.
Opisani postupak sprovodi se za sva četiri susedna polja i, u ovom slučaju, utvrduje se da ocena nijegnog ne
može da se popravi. Time je obrada tekućeg polja završena i traži se novo tekuće polje. Od preostalih sedam
4.3. Algoritam A* 42
𝑓
𝑔 ℎ
74 60 54 74 60 54
1460 1050 1440 1460 1050 1440
60 40 60 40
1050 1030 1050 1030
74 60 54 74 60 54
1460 1050 1440 1460 1050 1440
108 94 80 74
2880 2470 2060 2450
74 60 54 94 74 60 54
1460 1050 1440 2470 1460 1050 1440
60 40 80 60 40 82 68 82
6)
1050 1030 2060 1050 1030 7210 68 0 7210
74 60 54 94 74 60 54 74 68 88
1460 1050 1440 2470 1460 1050 1440 5420 5810 6820
01
88 74 108 94 80 74 74 74 74 102
2860 2450 2880 2470 2060 2450 3440 4430 5420 7230
108 94 88 88 88
(2
3870 3460 3850 4840 5830
108 94 80 74
2880 2470 2060 2450
94 74 60 54 je
an
2470 1460 1050 1440
80 60 40 82 68 82
2060 1050 1030 7210 68 0 7210
d
94 74 60 54 74 68 88
2470 1460 1050 1440 5420 5810 6820
iz
108 94 80 74 74 74 74 102
2880 2470 2060 2450 3440 4430 5420 7230
108 94 88 88 88
o
polja u otvorenoj listi bira se ono sa najmanjom vrednošću funkcije 𝑓 . Ukoliko postoji više takvih svejedno je
kt
koji izabrati. Neka je, na primer, izabrano polje neposredno ispod prethodnog tekućeg polja.
le
Za tekuće polje neće se razmatrati susedna polja koja su u zatvorenoj listi kao i ona koja su nedostupna
(tj. prepreke). No, može se (iako to nije nužno i zavisi od konkretne primene) zabraniti ispitivanje polja koje je
E
desno-dole od tekućeg polja. Naime, može se smatrati da je dijagonalni potez od tekućeg do tog polja nemoguć zbog
prepreke koja se nalazi desno od tekućeg polja. Ukoliko se prihvati takvo ograničenje, ostaje još tri susedna polja
koja treba razmotriti. Dva polja ispod tekućeg polja nisu u otvorenoj listi, pa se dodaju zajedno sa izračunatim
vrednostima funkcija i informacijom da im je roditelj tekuće polje. Za polje levo od tekućeg polja se proverava
da li se može smanjiti vrednost funkcije 𝑔 (odgovor je — ne) i time je završena obrada tekućeg polja.
Opisani postupak se nastavlja dok ciljno polje ne postane tekuće.
U konkretnom primeru, nakon nekoliko iteracija, vrednosti funkcija 𝑔 i 𝑓 , kao i roditeljsko polje promenili su
se za polje dva polja ispod polaznog polja. Ranije je ovo polje imalo vrednost funkcije 𝑔 jednaku 28 (i vrednost
funkcije 𝑓 jednaku 88) i roditeljsko polje je bilo gore-desno. Kasnije, ovo isto polje ima vrednost funkcije 𝑔
jednaku 20 (i vrednost funkcije 𝑓 jednaku 80), a roditeljsko polje je gore. Ova izmena dogodila se u nekoj
iteraciji u meduvremenu. U ovom slučaju ona ne utiče na pronadeni put, ali su ovakve izmene u opštem slučaju
veoma česte i utiču na konačno rešenje.
Kada tokom pretrage ciljno polje postane tekuće, traženi put od polaznog čvora se konstruiše jednostavno.
Kreće se od ciljnog čvora i prelazi na roditeljski sve dok se ne dode do polaznog čvora. Ovako odreden niz polja
u suporotnom poretku daje traženi put od polaznog do ciljnog polja.
43 4. Informisana pretraga
6)
pripadaju povezanim delovima grafa. Ako se za svaki čvor može lako proveriti kom delu grafa pripada, onda je
i navedena provera jednostavna.
Kada se algoritam A* primenjuje za pronalaženje puta na uniformnoj mreži, on daje korake u osam mogućih
01
smerova što kasnije često dovodi do neprirodnih puteva sačinjenih od segmenata sa jednim od osam nagiba.
Takve puteve je potrebno unaprediti omekšavanjem, tj. zameniti sličnim putevima koji izgledaju prirodnije.
(2
Pitanja i zadaci
je
Pitanje 4.1. Kako se naziva algoritam pretrage koji uvek bira lokalno optimalne akcije?
an
Pitanje 4.2. Šta, umesto globalnog ekstremuma, pohlepna pretraga može vratiti kao rezultat?
Pitanje 4.3. Šta je plato u problemima pretrage?
d
Pitanje 4.4. Kako se zove oblast prostora pretrage u kojem ciljna funkcija ima konstantnu vrednost?
iz
Pitanje 4.5. Čemu je jednaka vrednost 𝑓 (𝑛) koja se u algoritmu A* pridružuje čvoru 𝑛?
o
Pitanje 4.9. Da li se tokom primene algoritma A*, može promeniti vrednost 𝑔(𝑛) za čvor 𝑛? Da li se tokom
kt
primene algoritma A*, može promeniti vrednost ℎ(𝑛) za čvor 𝑛? Da li se tokom primene algoritma A*, može
promeniti vrednost 𝑓 (𝑛) za čvor 𝑛?
le
Pitanje 4.10. Kako se zove skup iz kojeg se u glavnoj petlji algoritma A* bira tekući čvor?
E
Pitanje 4.11. Kakva struktura se koristi za čuvanje vrednosti funkcije evaluacije u okviru algoritma A*?
Obrazložiti.
Pitanje 4.12. Da li je, na samom početku primene algoritma A*, lista zatvorenih čvorova prazna?
Pitanje 4.13. Koji čvor se, prilikom primene algoritma A*, prvi dodaje u listu otvorenih čvorova?
Pitanje 4.14. Kada se, u okviru algoritma A*, u listu zatvorenih čvorova dodaje novi element?
Pitanje 4.15. Tokom primene algoritma A*, ako se ispituje tekući čvor i naide na njegov susedni čvor 𝑣 koji
nije u zatvorenoj listi, ali jeste u otvorenoj listi, šta treba uraditi?
Pitanje 4.16. Da li je na kraju primene algoritma A* lista otvorenih čvorova nužno prazna?
Pitanje 4.17. Da li je na kraju primene algoritma A* lista zatvorenih čvorova nužno prazna?
3 Heš tabela je struktura podataka koja povezuje vrednosti i ključeve. Ona omogućava efikasno nalaženje vrednosti na osnovu
ključa. To se postiže preslikavanjem ključa heš funkcijom u heš vrednost koja služi kao indeks niza na kojem se nalazi odgovarajuća
vrednost.
4.3. Algoritam A* 44
6)
Pitanje 4.26. Kako se zove rastojanje izmedu dva čvora u kojem se broji ukupan broj polja predenih horizon-
talno ili vertikalno od prvog do drugog?
01
Pitanje 4.27. Koliko je Mehnetn rastojanje izmedu donjeg levog i gornjeg desnog polja šahovske table?
Pitanje 4.28. Kada se algoritam A* primenjuje na uniformnoj mreži, koja funkcija se obično primenjuje
(2
kao heuristika? Da li je ova heuristika dopustiva? Zašto se primenjuje ova heuristika, šta je njena ključna
osobina?
je
Pitanje 4.29. Kada se algoritam A* primenjuje na uniformnoj mreži, šta se obično koristi kao cena puta do
susednog čvora koji je desno, a šta do susednog čvora gore-desno?
an
Zadatak 4.1. Data je tabla za igru kao na sledećoj slici. Potrebno je naći najjeftiniji put od polja A do polja
B pri čemu dijagonalno kretanje nije dozvoljeno. Cena prelaska sa belog na belo polje je 1, cena prelaska sa
d
belog na sivo polje je 4 i cena prelaska sa sivog na belo polje je takode 4. Crno polje nije dostupno. Prikazati
iz
izvršavanje algoritma A* za ovaj problem. Za ocenu cene kretanja od nekog polja do cilja, koristiti Menhetn
rastojanje od tog polja do cilja.
o
A
sk
B
n
Zadatak 4.2. Potrebno je naći najjeftiniji put od grada A do grada E. Procenjene cene puta od različitih
ro
gradova su (A,105), (B,100), (C,50), (D,20). Stvarne cene putovanja izmedu gradova su (A,B,20), (A,C,50),
(A,D,100), (B,C,20), (B,E,110), (C,D,30), (D,E,30). Izmedu ostalih gradova nema puteva. Da li je zadata
kt
Zadatak 4.3. U datom grafu, algoritmom A* naći najkraći put od gornjeg levog do donjeg desnog čvora. Pri
tom, brojevi pored čvorova predstavljaju vrednosti heurističke procene cene puta preko tog čvora, dok brojevi
E
2 3
c c
1 1 0
Zadatak 4.4. U datom grafu, algoritmom A*, naći najkraći put od čvora A do čvora F. Podvučeni brojevi
predstavljaju vrednosti heurističke funkcije u čvorovima, a ostali cene prelaska preko grana.
𝐴2 2 𝐵2
2 2 2
2
6
𝐶1 𝐷1 𝐸1
6
6 2
𝐹0
45 4. Informisana pretraga
Zadatak 4.5. Algoritmom A* naći put od čvora A do čvora E. Heuristička procena cene puta izmedu dva
čvora je broj grana koje je potrebno preći na tom putu. Stvarne cene su date pored grana.
𝐴 10 𝐵
8
1
4
6
𝐶
1
𝐷 1 𝐸
Zadatak 4.6. Algoritmom A* naći put od čvora V3 do čvora V1. Heuristička procena cene puta izmedu dva
čvora je broj grana koje je potrebno preći na tom putu. Stvarne cene su date pored grana.
𝑉3 9 𝑉2
7
3
6)
8 1
𝑉4 4
𝑉5
2
01
1 5
𝑉0 𝑉1
(2
Zadatak 4.7. Na datoj tabli primeniti algoritam A*. Kao heuristička mera rastojanja izmedu dva čvora
koristi se Menhetn rastojanje. S označava start, a C cilj. Stupanje na belo polje košta 2, na sivo 6, a crna
polja su neprohodna.
S je
an
C
d
Zadatak 4.8. Na datoj tabli primeniti algoritam A*. Kao heuristička mera rastojanja izmedu dva čvora
kojirsti se Menhetn rastojanje. S označava start, a C cilj. Stupanje na belo polje košta 1, na sivo 6, a crna
iz
polja su neprohodna.
C
o
sk
S
n
Zadatak 4.9. Pera peca na mostu 𝐴 bez mnogo uspeha. Od druga koji je na mostu 𝐵 je čuo da je tamo
ulov veliki. Pera procenjuje vreme u minutima koje mu je potrebno da autom doe. do mosta 𝐵 kao najmanji
ro
broj ostrva preko kojih mora da pree.. Vremena koja su mu potrebna za prelazak preko svakog od ostrva su na
priloženoj slici zapisana na tim ostrvima, ali ih Pera ne zna. Kako bi zapamtio najkraći put i za ubuduće,
kt
1 𝐴 1 1
E
3 𝐵 1
E
le
kt
ro
n
sk
o
iz
d
an
je
(2
01
6)
Glava 5
Programiranje logičkih, intelektualnih igara jedan je od klasičnih problema veštačke inteligencije i verovatno
6)
jedan od najatraktivnijih. Kako logičke igre zahtevaju odlučivanje koje se može smatrati inteligentnim, ova pro-
blematika predmet je interesovanja mnogih istraživača u oblasti veštačke inteligencije, a i ne samo njih. Možda
01
su zbog toga neki od najvećih dometa veštačke inteligencije upravo u ovom domenu: računari su već pobedili
svetske šampione u igrama bekgemon, dame i šah (u igri sa računarom, partiju šaha izgubio je 1997. godine,
(2
tadašnji važeći svetski šampion Gari Kasparov), a nedavno (početkom 2016. godine) i u igri go. Uprkos ovim
dometima, još uvek treba zadržati oprez prema programima za logičke igre, jer njihovi principi odlučivanja
kvalitativno (po pitanjima apstrahovanja, analogija, pravljenja planova i sl.) još uvek nisu dovoljno blizu ljud-
je
skim. Mogućnosti rešavanja ovih problema i primene tih tehnika u drugim domenima upravo i motivišu dalja
istraživanja veštačke inteligencije u ovom pravcu. Većina najznačajnijih programa za igranje igara zasnovana je
an
na efikasnim algoritmima pretrage, a od nedavno (na primer, za igru go) i na naprednim tehnikama mašinskog
učenja.
U ovoj glavi biće reči o razvoju strategija za automatsko igranje logičkih igara, a zatim i o samim strategijama.
d
Neće biti upuštanja u teorijske analize pojedinačnih igara, već će biti opisani opšti pojmovi i algoritmi koji mogu
iz
da se koriste za širok spektar igara. Biće razmatrani algoritmi za igre nulte sume za dva igrača bez nepoznatih
informacija, dakle — igre kod kojih igrači, grubo rečeno, imaju analogne, simetrične mogućnosti i svaki igrač
zna koje poteze na raspolaganju ima protivnik. U ovu kategoriju spadaju, na primer, igre šah, dame, go, reversi,
o
iks-oks, četiri u nizu itd, a ne spadaju, na primer, igre u kojima igrač ne zna karte koje ima protivnik, nepoznati
sk
Istorija automatskog igranja logičkih igara počinje početkom dvadesetog veka: španski pronalazač Tores
kt
Kevedo (Torres y Quevedo) konstruisao je 1910. godine (i prikazao 1914. na svetskoj izložbi u Parizu) elektro-
mehanički uredaj El Ajedrecista („ Šahista“) koji je, kao beli, igrao šahovsku završnicu „kralj i top protiv kralja“
i iz svake pozicije nepogrešivo pobedivao (iako ne u najmanjem mogućem broju poteza).
le
Razmatranje teorije igara započeo je fon Nojman (Von Neuman) postavljanjem opšteg problema (1928):
E
Igrači 𝑆1 , 𝑆2 , . . . , 𝑆𝑛 igraju datu igru Γ. Kako treba da igra igrač 𝑆𝑚 da bi ostvario najbolji mogući rezultat? Za
većinu igara teško je ili nemoguće efektivno realizovati optimalni algoritam za proizvoljno početno stanje.
Moderna istorija programiranja igara počinje „klasičnim“ tekstom Programming a digital computer for pla-
ying Chess koji je 1950. godine objavio Klod Šenon (Claude Shannon). U tom tekstu Šenon je opisao dve opšte
strategije za izbor poteza: strategije A i B:
A: Minimaks procedurom vrši se pretraživanje stabla igre sa odredenom funkcijom evaluacije i ocenjivanje
legalnih poteza; bira se potez sa najboljom ocenom (videti poglavlje 5.4.2).
B: Potez se bira na osnovu trenutne pozicije/situacije u igri i na osnovu odgovarajuće, unapred pripremljene
tabele.
Pristup zasnovan na Šenonovoj A strategiji naziva se i gledanje unapred (eng. lookahead) pristupom, a
ponegde i „sistematskim pretraživanjem“ ili „dubinskim pretraživanjem“. Ako bi se korišćenjem ove strategije,
minimaks algoritmom, pretraživanje stabla igre vršilo do završnih stanja igre, ispitivanjem svih mogućih tokova
partije zaista bi bio izabran najbolji legalan potez i taj izbor bi imao savršeno obrazloženje u samom primenjenom
algoritmu. Medutim, za većinu igara nije praktično moguće pretražiti kompletno stablo igre. Čak i pretraživanje
stabla igre do dubine od svega nekoliko poteza u igrama sa prosečno deset ili dvadeset legalnih poteza, zahteva
47
5.2. Legalni potezi i stablo igre 48
ispitivanje ogromnog broja pozicija. Zbog toga, efikasna primena Šenonove A strategije svodi se na pristup
„gruba sila plus jednostavna vrednosna funkcija“, tj. na pretraživanje stabla igre do relativno male dubine
algoritmima koji su usmereni heuristikama i uz dobro osmišljenu, ali jednostavnu funkciju evaluacije za ocenu
nezavršnih pozicija igre (umesto jednostavne „trovrednosne“ funkcije za ocenu završnih pozicija). Ovakvim
pristupom gubi se svojstvo po kojem se pretraživanjem dobija zaista najbolji potez, a obim pretraživanja i
različitih izračunavanja ostaje, najčešće, i dalje veoma veliki. Precizni opisi funkcije evaluacije, algoritama
minimaks i srodnih dati su u poglavlju 5.4.
Šenonovoj strategiji B tipa odgovara lookup table pristup – jednostavna tabela koja zamenjuje izračunavanje
u toku izvršavanja. U kontekstu igara, ovaj pristup zahteva postojanje unapred pripremljene tabele sa dve ko-
lone: u jednoj su moguće pozicije/stanja igre, a u drugoj optimalni potezi. Jedna od „klasičnih“ implemetacija
ovog pristupa je program za igranje šahovske završnice „kralj i kraljica protiv kralja i topa“ koji je 1977. go-
dine kreirao Kenet Tompson (Kenneth Thompson, tvorac operativnog sistema UNIX). Tabela koju je koristio
program sadržavala je sve moguće pozicije za oba igrača i optimalne poteze za sve te pozicije (pri čemu se pod
optimalnim potezom za jačeg igrača (koji ima kralja i kraljicu) smatra potez koji vodi pobedi u najmanjem broju
poteza, a za slabijeg, potez koji maksimalno odlaže poraz). Tabela je imala oko tri miliona vrsta i program koji
se na njoj zasnivao bio je nepobediv. Tabela je kreirana koristeći retrogradnu analizu i induktivni pristup. Za
6)
optimalnu igru igrača koji ima topa, najpre se prepoznaju i označavaju pozicije u kojima je protivnik matiran
(mat u 0 poteza), dalje, prepoznaju se pozicije u kojima ma šta da odigra protivnik postoji mat u najviše 𝑑
01
poteza i za takve pozicije važi da postoji mat u najviše 𝑑 + 1 potez. Za završnicu kralj i top protiv kralja, ovaj
postupak staje posle 33 iteracije (jer iz svake pozicije postoji mat u najviše 33 poteza). Nedavno su (2012),
(2
korišćenjem suštinski istog pristupa, na Moskovskom univerzitetu kreirane Lomonosov tabele optimalih poteza
za sve šahovske završnice sa najviše sedam figura na tabli. Tabela sadrži više od 500 triliona pozicija (pri čemu
se u tabeli ne čuvaju mnoge pozicije koje se mogu dobiti od drugih simetrijama i rotacijama). U ovom pristupu,
je
znanje o igri ne nalazi se niti u samom programu koji igra, niti u tabeli, već u programu koji je tabelu generisao.
Opisani pristup zahteva, pored adekvatne procedure za generisanje lookup tabele i veliku memoriju (za smeštanje
an
svih mogućih pozicija), ali u samom procesu igre program zahteva zanemarljivo vreme za izbor poteza.
Šenonova strategija A u procesu izbora poteza zahteva malo memorije i mnogo izračunavanja, a strate-
gija B malo izračunavanja i mnogo memorije. Na toj skali odnosa količine podataka koji se koriste i obima
d
izračunavanja, čovekov način zaključivanja je izmedu ovih krajnosti i bitno se od njih razlikuje po svojoj prirodi.
iz
Upravo priroda čovekovog načina razmišljanja i želja da se on oponaša, vodi ka novim pristupima u formalizaciji
igara i njihovom programiranju.
o
sk
Za svaku legalnu poziciju može se efektivno odrediti skup legalnih poteza. Neke legalne pozicije mogu biti
ro
početne pozicije a neke završne. U nekim igrama, legalni potez može biti i dalje, u situaciji kada igrač koji je na
redu nema na raspolaganju legalnih poteza i preskače svoj red (takve situacije ne postoje u šahu, ali postoje,
kt
usmeren jer nije nužno da postoje potezi u oba smera koji povezuju dva stanja (na primer, u šahu pešak može da
ide samo napred, ne i nazad). Stablo igre je stablo pretrage koje nastaje pretraživanjem grafa prostora stanja.
E
U igri za dva igrača, u ovako definisanom stablu igre, od korena do bilo kog lista naizmenično se smenjuju grane
koje odgovaraju potezima prvog i drugog igrača.
Kompletno stablo igre je stablo igre u čijem je korenu početna pozicija igre, a svi listovi su završne pozicije
igre. Kompletno stablo igre ima onoliko listova koliko data igra ima različitih regularnih tokova. Taj broj je
kod većine igara (čak i kod veoma jednostavnih) ogroman i onemogućava kompletno pretraživanje u cilju izbora
poteza. Na slici 5.1 ilustrovan je deo kompletnog stablo igre za igru iks-oks.
U procesu traženja poteza, ne kreira se stablo pretrage kao struktura, već je stablo samo implicitno i opisano
je procesom (obično rekurzivnim) obilaska pozicija. Ako je proces pretrage rekurzivan, za potez dubine 𝑑 pamte
se samo podaci proistekli iz 𝑑-tostrukog rekurzivnog pozivanja.
5.3 Otvaranje
U programima za logičke igre često je izuzetno značajna biblioteka otvaranja (opening book) — koja je
zasnovana na ljudskom iskustvu i koja sadrži informacije o poznatim i kvalitetnim potezima koji se često
javljaju u otvaranju. Biblioteka otvaranja može biti statička (sadržati odreden, konačan broj varijanti u svakom
potezu i informacije o potezima samo do odredene dubine) ili se proširivati tokom samog izvršavanja programa.
49 5. Programiranje logičkih igara
...
o ... ... ... ... ... ... ... ...
xo x o x
. ................ . ...
o ... ...
x x
o o oo
o ...
xox x x x x
6)
završno stanje
. ................ . . ....... .
01
Slika 5.1: Deo stabla igre za igru iks-oks
(2
U igri programa sledi se tok partije iz biblioteke dok je to moguće (dok o tome postoje odgovarajuće
je
informacije u biblioteci otvaranja), a onda se prelazi na druge strategije izbora poteza. Ukoliko za neku poziciju
an
postoji u biblioteci više mogućih nastavaka, izbor može da se načini po odredenim verovatnoćama koje mogu
da se koriguju tokom rada programa ili i prema dužini koja u stablu sledi iza odredenog poteza (kao težnja da
se što duže ostane u poznatim varijantama).
d
Pomenuti pristup može da se realizuje, na primer, na sledeći način: neka je, na osnovu biblioteke otvaranja,
iz
u nekom trenutku na raspolaganju 𝑛 poteza. Svakom od njih neka je pridružena ocena 𝑚𝑖 (1 ≤ 𝑖 ≤ 𝑛) na osnovu
empirijske procene i na osnovu dubine biblioteke partija koja sledi za 𝑖-tim potezom (te ocene predstavljaju
karakterističan, dodatni deo biblioteke partija). Ukoliko empirijske procene govore da je 𝑖-ti potez bolji, to je
o
ocena 𝑚𝑖 veća. Takode, ocena 𝑚𝑖 je veća ukoliko je veća dubina biblioteke partija koja sledi za 𝑖-tim potezom.
sk
𝑝𝑖 = ∑︀𝑛 .
𝑗=1 𝑚𝑗
ro
Na taj način izbegava se determinističko ponašanje programa u otvaranju: bolji potezi (u smislu neke procene)
kt
5.4 Središnjica
le
E
Savremeni programi za logičke igre u središnjici najčešće koriste dubinsko pretraživanje (sa jednostavnom
funkcijom evaluacije) stabla igre koja odgovara Šenonovoj A strategiji. Kod većine programa za kompleksnije
logičke igre, pored kvalitetne funkcije evaluacije, od ključne važnosti su algoritmi koji se koriste za pretraživanje
stabla igre. Pri pretraživanju stabla igre u središnjici, funkcija evaluacije se izračunava samo za čvorove na
nekoj odredenoj dubini, a ostalim čvorovima se pozicija ocenjuje na osnovu ocena nekih od čvorova-potomaka.
Pretraživanje stabla igre odredeno je funkcijom evaluacije, algoritmom pretraživanja, heuristikama, dubinom
pretraživanja, itd.
Funkcija evaluacije obično preslikava skup svih mogućih pozicija u segment celih ili brojeva u pokretnom zarezu:
ℱ : 𝒫 ↦→ [−𝑀, 𝑀 ]
Tada se vrednost 𝑀 dodeljuje samo završnim čvorovima u kojima je pobednik prvi igrač, a vrednost −𝑀 samo
završnim čvorovima u kojima je pobednik drugi igrač.
Najjednostavnija je tzv. trovrednosna funkcija: ona se primenjuje samo na završne pozicije igre i ima samo
tri različite vrednosti – za pobedu prvog, za pobedu drugog igrača i za nerešen ishod (npr. 1, -1 i 0). Tro-
vrednosna funkcija zahteva pretraživanje stabla igre do završnih čvorova, pa je, zbog potencijalno velike du-
bine pretraživanja, ova funkcija za većinu igara praktično neupotrebljiva. U šahu funkcija evaluacije treba da
uključuje „materijal“ (tj. vrednost ukupnog materijala), pokretljivost figura, pešačku strukturu, rokade i slično.
Na primer, beloj kraljici može da bude pridružena vrednost 100, topu 50, lovcu i konju 30, pešaku 10, dok mat
belog nosi ocenu 1000 (i sve suprotno za crnog igrača).
U igrama nulte sume, smisao funkcije evaluacije za protivnike u igri za dva igrača je suprotan — ono što je
najbolje stanje za jednog igrača najlošije je za drugog i obratno. Dakle, da funkcija evaluacije za simetrične
pozicije (za zamenjene uloge igrača) treba da daje vrednosti koje se razlikuju samo po znaku.
Ocene završnih pozicija ne moraju nužno biti statičke: mogu se korigovati dodavanjem (odnosno oduzima-
6)
njem) dubine odgovarajućeg čvora u pretraživanju, kako bi se od svih varijanti koje vode u pobedu izabrala
ona koja vodi pobedi u najmanjem broju koraka (odnosno kako bi se, ukoliko je poraz neizbežan, taj poraz
01
maksimalno odgodio).
(2
5
je 𝑚𝑎𝑥
an
5 1 −2
𝑚𝑖𝑛
d
iz
5 7 1 −2 2
𝑚𝑎𝑥
o
sk
5 7 1 1 −2 2 −1 5 7 1 1 −2 2 −1
n
Algoritam minimaks je ključni element Šenonove A strategije i on je u osnovi skoro svih algoritama za
E
izbor poteza pretraživanjem stabla igre. Minimaks algoritam pretraživanjem stabla igre za igrača koji je na
potezu odreduje najbolji mogući potez u datoj situaciji — pri čemu se pod „najboljim“ podrazumeva najbolji za
zadati čvor, zadatu dubinu pretraživanja i za izabranu funkciju evaluacije. Pretpostavimo da funkcija evaluacije
za igrača koji je na potezu ima pozitivan smisao (tj. bolji je potez ako obezbeduje veću vrednost funkcije) i,
jednostavnosti radi, da se pretraživanje vrši do fiksne dubine stabla. Funkcijom evaluacije ocene se dodeljuju
samo najdubljim čvorovima u pretraživanju (pretraživanje se vrši do fiksne dubine i najdublji čvorovi ne moraju
da predstavljaju završna stanja igre); dalji postupak je rekurzivan: kao ocena čvoru dodeljuje se minimum
ocena čvorova-potomaka, ako je u tom čvoru na potezu protivnik, a kao maksimum ocena čvorova potomaka,
u suprotnom (slika 5.2). Ocena početnog čvora je maksimum ocena čvorova–neposrednih potomaka i rezultat
je potez kojem odgovara taj maksimim. Dakle, algoritam karakteriše maksimizovanje ocene kada je na potezu
sam igrač i minimizovanje kada je na potezu njegov protivnik, pa otuda i ime algoritma. Opis algoritma dat je
na slici 5.3.
Primer 5.1. Na slici 5.4 prikazan je primer primene algoritma na šah (pojednostavljenu verziju na tabli 4x4).
Kao najbolji potez za koreni čvor bira se prvi potez naveden u sledećem redu – potez koji vodi u mat u dva poteza.
Algoritam minimaks (kao i ostali algoritmi zasnovani na minimaksingu) vrši izbor poteza samo na osnovu
vrednosti koje su pridružene čvorovima na maksimalnoj dubini pretraživanja. To znači da se ne ispituju potezi
51 5. Programiranje logičkih igara
Algoritam: Minimax
Ulaz: pozicija
Izlaz: potez
1. 𝑣 := 𝑀 𝑎𝑥(𝑝𝑜𝑧𝑖𝑐𝑖𝑗𝑎)
Funkcija: Max
2. 𝑣 := −∞
6)
3. Za svaku poziciju 𝑠 do koje se može doći u jednom potezu:
01
4. vrati 𝑣
(2
Funkcija: Min
2. 𝑣 := +∞
d
4. vrati 𝑣
sk
koji dalje slede i da se ne koriste informacije o njima (a te informacije mogu biti veoma važne i često bi
kt
promenile odluku o izabranom potezu). Kada je neki potez odabran na osnovu čvorova na nekoj dubini i
odigran, informacija o tome se ne koristi u procesu izbora narednog poteza (npr. ako je u šahu neki potez
izabran jer odgovara čvor dubine tri u kojem se protivniku daje šah, u sledećem potezu pretraživanje kreće
le
iznova i često neće biti izabran potez koji vodi do šaha protivniku, sada u dva poteza). Dakle, pri pretraživanju
E
stabla igre „vide se“ samo čvorovi na nekoj fiksnoj dubini – ni oni posle, ni oni pre njih. Ovaj fenomen često se
naziva efekat horizonta (eng. horizon effect).
1000
4 0S0Z
3 Z0J0
2 0Z0Z
1 j0Z0
a b c d
/ ... | ... \
1000 50 0
4 0S0Z 4 0S0J 4 0Z0Z
3 Z0Z0 3 Z0Z0 3 Z0J0
2 0ZKZ 2 0Z0Z 2 0Z0Z
1 j0Z0 1 j0Z0 1 jRZ0
a b c d a b c d a b c d
| | | ... \
1000 50 0
4 0S0Z 4 0S0J 4 0Z0Z
6)
3 Z0Z0 3 Z0Z0 3 Z0J0
2 kZKZ 2 kZ0Z 2 0Z0Z
1 Z0Z0 1 Z0Z0 1 ZkZ0
01
a b c d a b c d a b c d
/ ... | ... \ / ... \ / ... \
(2
1000 50 50 50 50 0 0
4 RZ0Z 4 0Z0S 4 0S0Z 4 0S0Z 4 RZ0J 4 0Z0Z 4 0Z0Z
3 Z0Z0 3 Z0Z0 3 Z0Z0 3 Z0ZK 3 Z0Z0 3 ZKZ0 3 Z0ZK
2 kZKZ
1 Z0Z0
2 kZKZ
1 Z0Z0
2 kZ0J
1 Z0Z0
2 kZ0Z
1 Z0Z0
2 kZ0Z
1 Z0Z0
2 0Z0Z
1 ZkZ0
je 2 0Z0Z
1 ZkZ0
an
a b c d a b c d a b c d a b c d a b c d a b c d a b c d
𝑚𝑎𝑥
sk
𝑤𝑘 𝑤𝑛 𝑤𝑛+1 5 1 −2
n
𝑤𝑗′ 5 7 1 −2 2
kt
𝛽 odsecanje
𝑚𝑎𝑥
le
5 7 1 1 −2 2 −1
E
ima više mogućnosti i igrač 𝐴 traži onu sa najmanjom ocenom; za svaku ocenu 𝑤𝑖′ legalnih poteza u tom čvoru,
svakako važi da je veća ili jednaka zajedničkom minimumu 𝑤𝑚𝑖𝑛 ′
(𝑤𝑖′ ≥ 𝑤𝑚𝑖𝑛
′
) koji predstavlja ocenu čvora;
dakle, ako se u tom pretraživanju dode do ocene 𝑤𝑗 koja je manja ili jednaka oceni 𝑤𝑘 (𝑤𝑗′ ≤ 𝑤𝑘 ) sigurno je
′
bez uticaja na rezultat pretraživanja — može da se izvrši „odsecanje stabla“ (slika 5.5). „Beta odsecanje“ je
potpuno analogno i primenjuje se na čvorove u kojima je na potezu protivnik. Naravno, s obzirom na smisao
funkcije evaluacije, maksimumi pominjani u „alfa odsecanju“ zamenjuju se minimumima i obratno (slika 5.5).
Algoritam alfa-beta dat je na slici 5.6.
Kako je stablo igre obično ogromno, ubrzavanje minimaks algoritma heuristikama „alfa-odsecanje“ i „beta-
53 5. Programiranje logičkih igara
Algoritam: Alfa-beta
Ulaz: pozicija
Izlaz: potez
1. 𝑣 = 𝑀 𝑎𝑥(𝑝𝑜𝑧𝑖𝑐𝑖𝑗𝑎, −∞, +∞)
Funkcija: Max
2. 𝑣 := −∞
6)
3. Za svaku poziciju 𝑠 do koje se može doći u jednom potezu:
01
Ako je 𝑣 ≥ 𝛽 onda vrati 𝑣
(2
Ako je 𝑣 > 𝛼 onda 𝛼 := 𝑣
4. vrati 𝑣
Funkcija: Min je
an
Ulaz: 𝑝𝑜𝑧𝑖𝑐𝑖𝑗𝑎, alfa vrednost 𝛼, beta vrednost 𝛽 , funkcija evaluacije 𝑓
Izlaz: vrednost pozicije
d
2. 𝑣 := ∞
4. vrati 𝑣
kt
odsecanje“ ima izuzetan značaj. Posebno je važna činjenica da i alfa-beta algoritam nalazi zaista najbolji mogući
potez za zadati čvor i zadatu dubinu pretraživanja, što znači da heuristike koje se primenjuju ne narušavaju tu
osobinu minimaks algoritma.
Primer 5.2. Na slici 5.7 prikazan je primer primene algoritma alfa-beta na šah (pojednostavljenu verziju na
tabli 4x4). Sa 𝑋 su označeni delovi stabla igre kod kojih je došlo do odsecanja
Ukoliko se u svakom čvoru potezi ispituju od najlošijeg ka najboljem (u smislu tekućeg čvora), tada nema
nijednog alfa ili beta odsecanja, pa se alfa-beta algoritam svodi na algoritam minimaks. S druge strane, najviše
alfa i beta odsecanja ima kada se potezi ispituju počev od najboljeg u smislu tekućeg čvora i tada algoritam
alfa-beta daje najbolji efekat (tj. ispituje najmanji broj čvorova stabla). Naravno, takav poredak poteza nije
moguće generisati egzaktno u toku pretraživanja stabla igre, ali se dobrim procenama efekat alfa-beta algoritma
može tako bitno popraviti. Upravo na toj ideji zasnivaju se i neka poboljšanja alfa-beta algoritma.
5.4. Središnjica 54
1000
4 0J0S
3 Z0Z0
2 0Z0S
1 j0Z0
a b c d
/ \ ...
1000 100
4 0J0S 4 0J0S
3 Z0Z0 3 Z0ZR
2 0Z0Z 2 0Z0Z
1 j0ZR 1 j0Z0
a b c d a b c d
/ \ / ... X
1000 1000 100
4 0J0S 4 0J0S 4 0J0S
6)
3 Z0Z0 3 Z0Z0 3 Z0ZR
2 kZ0Z 2 0j0Z 2 kZ0Z
1 Z0ZR 1 Z0ZR 1 Z0Z0
01
a b c d a b c d a b c d
/ ... \ / ... X / ... \
(2
1000 100 1000 100 100
4 0J0Z 4 0ZKS 4 0J0Z 4 0ZKS 4 RZ0Z
3 Z0Z0 3 Z0Z0 3 Z0Z0 3 Z0Z0 3 ZKZ0
2 kZ0S
1 Z0ZR
2 kZ0Z
1 Z0ZR
2 0j0S
1 Z0ZR
2 0j0Z
1 Z0ZR
2 0Z0S
1 ZkZ0
je
an
a b c d a b c d a b c d a b c d a b c d
U prethodnom poglavlju rečeno je da se efikasnost algoritma može popraviti ako se u svakom čvoru potezi
sk
ispituju, po nekoj proceni, od najboljeg ka najlošijem. Slično, algoritam alfa-beta daje dobre razultate ako
se u svakom čvoru najpre ispituje najbolji potez. Naravno, nije moguće unapred znati koji je potez najbolji
u datom čvoru, ali se i dobrim procenama (izborom jednog od boljih poteza) postižu dobri efekti. Heuristika
n
killer (ponekad se naziva i w-killer) zasniva se na navedenim činjenicama i ne koristi specifična znanja o igri (da
ro
je 𝑊 najbolji pronadeni potez u smislu tog čvora. Taj potez zvaćemo killer potezom za dubinu 𝑑. U svakom
sledećem čvoru na dubini 𝑑, ispitivanje poteza počinjemo sa killer potezom za tu dubinu. Ukoliko se pokaže da
le
je za taj čvor bolji neki drugi potez (𝑊 ′ ), taj potez postaje killer potez za dubinu 𝑑.
Ukoliko se pretraživanje stabla igre vrši do dubine 𝑑𝑚𝑎𝑥 , opisana heuristika primenjuje se za sve dubine 𝑑
E
takve da je 1 ≤ 𝑑 ≤ 𝑑𝑚𝑎𝑥 −1. Alfa-beta algoritam proširen killer heuristikom zovemo alfa-beta/killer algoritmom.
Primetimo da se primenom killer heuristike ne menja rezultat alfa-beta algoritma (za istu funkciju evaluacije
i istu dubinu pretraživanja) — tj. dobija se potez sa istom ocenom (ne nužno i isti potez) kao primenom
algoritama alfa-beta ili minimaks, i to najčešće sa bitno manjim brojem ispitanih čvorova stabla.
Smisao killer heuristike je sledeći: ukoliko je u jednoj grani stabla na dubini 𝑑 najbolji potez 𝑊 , ima izgleda
da je on najbolji (ako je legalan) i u drugim granama stabla na istoj dubini. Ilustrujmo to na primeru šaha: neka
igraču koji je na redu preti mat u sledećem potezu i neka nijedan njegov potez ne može da otkloni tu pretnju.
Pretraživanjem stabla, u čvoru u kojem je na potezu protivnik, otkriva se matni potez i on postaje killer potez
(za dubinu 1). Pri daljem pretraživanju stabla, na dubini 1 najpre se ispituje taj potez i kako on vodi pobedi
protivnika, alfa odsecanje čini nepotrebnim dalje ispitivanje poteza u tom čvoru. Time se broj čvorova stabla
koje u ovakvoj situaciji treba ispitati drastično smanjuje.
Legalni potezi treba da budu organizovani u ciklični niz, i da je za svaki legalan potez jednoznačno odreden
sledeći. Taj zahtev je u direktnoj vezi sa killer heuristikom, jer se ispitivanje poteza u skladu sa njom, vrši počev
od killer poteza i, ispitavši (eventualno) sve ostale, ciklično vraća do tog istog poteza. Takode, kako je moguće
da killer potez u nekom čvoru odgovarajuće dubine nije legalan, generator treba da za svaki mogući potez, bio
on u konkretnoj poziciji legalan ili ne, jednoznačno odreduje sledeći legalan potez.
55 5. Programiranje logičkih igara
6)
će obično zahtevati ispitivanje manjeg broja čvorova od alfa-beta/killer algoritma za istu dubinu.
Naglasimo da se i primenom iterativnog alfa-beta/killer algoritma dobija najbolji potez (potez sa najboljom
01
ocenom) za datu funkciju evaluacije i datu dubinu pretraživanja što je važno svojstvo algoritama minimaks,
alfa-beta i alfa-beta/killer.
Kao modifikacija ovog algoritma, može se vršiti samo prva i poslednja iteracija, jer se i prvom iteracijom
(2
često dobija dovoljno dobar killer potez za dubinu 0. U različitim konkretnim situacijama, nekad je bolji jedan,
a nekad drugi algoritam, s tim što je, zbog mogućnosti prekida, u praksi prihvatljiviji kompletni iterativni
algoritam.
je
an
5.4.6 Stabilno pretraživanje
U prethodnim algoritmima se uvek govorilo o pretraživanju do fiksne dubine. Nedostatak takvog pristupa je
d
u tome što funkcija evaluacije, koja se primenjuje na čvorove na najvećoj dubini, ne razmatra moguće nastavke
za pozicije na najvećoj dubini. Te ocene, ma koliko funkcija evaluacije bila dobra, mogu da budu varljive i da
iz
vode lošem izboru poteza (u šahu se npr. može izabrati potez zbog nekog, naizgled dobrog, završnog čvora u
kojem se zarobljava protivnikov top, ali se ne zna da nakon toga može da bude izgubljena kraljica ili da sledi
o
mat). Zbog toga se primenjuje „stabilno pretraživanje“ (eng. quiscence searching): vrši se pretraživanje do neke
sk
fiksne dubine, ali se pretraživanje nastavlja i dalje ukoliko je, po nekom kriterijumu, završni čvor „nestabilan“.
Maksimalna dubina dodatnog pretraživanja takode može da bude ograničena. Stabilno pretraživanje može se
primenjivati u kombinaciji sa svakom od ranije opisanih tehnika.
n
Kriterijumi stabilnosti poteza odreduju se u skladu sa specifičnostima konkretne igre, ali i za istu igru mogu
ro
biti različiti. U šahu, na primer, pozicija se može smatrati stabilnom ukoliko igrač koji je na potezu nije pod
šahom, ukoliko mu kraljica ne „visi“, ukoliko ne „visi“ nijedna protivnikova figura i ukoliko ne preti neposredno
kt
izvodenje nekog protivnikovog pešaka. Savremeni programi za šah često pretražuju stablo igre do dubine 4 (4
polupoteza tj. dva poteza) sa dodatnim, stabilnim pretraživanjem do dubine 16 ili više.
le
Važan problem u programiranju logičkih igara su i prekidi: potrebno je da program izabere smislen i dobar
potez i ukoliko se pretraživanje stabla igre prekine pre nego što se izvrši kompletan algoritam. Potrebno je,
dakle, da algoritam, i ukoliko je prekinuto njegovo normalno izvršavanje, vrati neki legalan potez. Naravno,
poželjno je i da taj potez bude što bolji. Prekidi mogu biti izazvani akcijom korisnika ili ograničenjima vremena
raspoloživog za jedan potez ili za celu partiju1 . Većina algoritama koji su do sada opisani u situacijama prekida
može da izabere tekući najbolji potez. Ipak, kad algoritam nije kompletno izvršen (i, na primer, ispitani su
samo neki, povoljni odgovori protivnika), tako odabran potez može biti veoma loš. Za rešavanje ovog problema
najpogodniji je iterativni alfa-beta/killer algoritam, jer praktično u svakom trenutku2 ima neku kompletno
završenu iteraciju i njen rezultat često jeste dovoljno dobar potez (iako, naravno, obično slabiji nego potez koji
bi bio dobijen kompletno izvršenim algoritmom).
1 Ukoliko je ograničeno vreme raspoloživo za celu partiju, program mora i da ga ekonomično deli na procenjeni broj poteza.
2 Prva iteracija, za gotovo sve igre i na gotovo svim računarima, može biti završena u deliću sekunde.
5.4. Središnjica 56
Definicija 5.1. Neka je 𝐴 deterministički algoritam za pretraživanje uniformnog stabla igre stepena 𝑏 (svi
njegovi čvorovi osim listova imaju tačno po 𝑏 neposrednih potomaka), dubine 𝑑 i sa listovima kojima su
pridružene vrednosti po raspodeli 𝐹 . Ako je sa 𝐼𝐴 (𝑑, 𝑏, 𝐹 ) označen očekivani broj završnih čvorova koje
algoritam 𝐴 ispituje, tada vrednost
Faktor grananja je ključna karakteristika algoritama za pretraživanje stabla igre jer govori o očekivanom broju
završnih čvorova koje nekim algoritmom treba ispitati. Naime, ukoliko je 𝑅 faktor grananja nekog algoritma,
onda je očekivani broj ispitanih čvorova za dubinu pretraživanja 𝑑 jednak 𝑅𝑑 . Na primer, za šahovsku središnjicu
procenjuje se da je faktor grananja izmedu 35 i 38, a za igru go oko 250.
Ako se uniformno stablo stepena 𝑏 i dubine 𝑑 pretražuje minimaks algoritmom, biće ispitano 𝑏𝑑 završnih
čvorova stabla, pa je faktor grananja algoritma minimaks za svaku raspodelu 𝐹 očigledno jednak 𝑏, tj.
6)
𝑅𝑚𝑖𝑛𝑖𝑚𝑎𝑥 (𝑏, 𝐹 ) = 𝑏.
01
Teorema 5.1. Ukoliko je stablo igre uniformno (svaki čvor koji nije list ima tačno 𝑏 dece) i ukoliko se
u svakom čvoru najpre ispituje najbolji potez za taj čvor, onda algoritam alfa-beta, primenjen do fiksne
(2
dubine ℎ ispituje 𝑂(𝑏ℎ/2 ) listova.
je
Dokaz: Neka 𝑇 (ℎ) označava broj listova koje treba ispitati za odredivanje egzaktne ocene čvora na nivou ℎ (za
an
zadato stablo), pri čemu je u ovom konkretnom kontekstu pogodno da se nivoi broje od listova – njima
odgovara nivo 0.
Neka 𝐿(ℎ) označava broj listova koje treba ispitati za odredivanje ograničenja ocene čvora na nivou ℎ
d
Važi 𝑇 (0) = 1 i 𝐿(0) = 1. Kako se u svakom čvoru najpre ispituje najbolji potez, onda važi
o
𝑇 (ℎ) = 𝑇 (ℎ − 1) + (𝑏 − 1)𝐿(ℎ − 1)
sk
𝐿(ℎ) = 𝑇 (ℎ − 1)
n
odakle sledi
𝑇 (ℎ) = 𝑇 (ℎ − 1) + (𝑏 − 1)𝑇 (ℎ − 2)
ro
(1− 1+4(𝑏−1) √︀
𝑡1 = 2 = 1/2 − 𝑏 − 3/4
√
le
(1+ 1+4(𝑏−1) √︀
𝑡2 = 2 = 1/2 + 𝑏 − 3/4
Dakle, važi
E
(︁ √︀ )︁ℎ (︁ √︀ )︁ℎ
𝑇 (ℎ) = 𝑎 · 1/2 − 𝑏 − 3/4 + 𝑏 · 1/2 + 𝑏 − 3/4
√ ℎ
i 𝑇 (ℎ) = 𝑂( 𝑏 ) tj. 𝑇 (ℎ) = 𝑂(𝑏ℎ/2 )
Navedena teorema govori da algoritam alfa-beta ispituje barem 𝑂(𝑏ℎ/2 ) listova, tj. njegov faktor grananja je
barem reda 𝑂(𝑏ℎ/2 ). Killer heuristika u iterativnoj verziji zaista često postiže dobar poredak poteza u svakom
čvoru, pa ponašanje reda 𝑂(𝑏ℎ/2 ) nije nerealno očekivati. Ovaj rezultat govori i da je (uz dobar poredak poteza),
alfa-beta algoritmom moguće birati poteze analizirajući stablo do dva puta veće dubine nego sa minimaks
algoritmom.
Problem odredivanja faktora grananja alfa-beta algoritma za funkciju 𝐹 sa uniformnom raspodelom mnogo
je složeniji. Odgovor na pitanje o faktoru grananja alfa-beta algoritama daje sledeće teorema Judea Pearl-a iz
1982. godine.
57 5. Programiranje logičkih igara
Teorema 5.2. Za faktor grananja alfa-beta algoritma za stablo stepena 𝑏 (koji nije mnogo veliki, tj. za koji
je 𝑏 ≤ 1000), i za ravnomernu raspodelu 𝐹 važi:
Teorema 5.3. Alfa-beta algoritam je asimptotski optimalan algoritam za pretraživanje stabla igre.
Navedeno tvrdenje znači da ne postoji algoritam za pretraživanje stabla igre koji, u opštem slučaju, asimp-
totski ispituje manje završnih čvorova nego algoritam alfa-beta. Algoritmi, koji su opisani u prethodnom delu
teksta i koji predstavljaju unapredenja algoritma alfa-beta u praksi zaista najčešće daju bolje rezultate nego
algoritam alfa-beta i to je uslovljeno prirodom stabla igre i funkcijom koja ocenjuje završne čvorove (koja nije
slučajna). Ipak, faktori grananja ovih algoritama se ne razlikuju od faktora grananja alfa-beta algoritma i u
opštem slučaju oni ne garantuju manje ispitanih završnih čvorova stabla nego algoritam alfa-beta.
6)
5.5 Završnica
01
U igrama kao što je šah, završnica iziskuje posebne tehnike. Ponekad su to tehnike koje se koriste u središnjici,
(2
ali uz korišćenje posebne ili više posebnih funkcija evaluacije. U onim drugim igrama, rešenja koja se zasnivaju
na dubinskom pretraživanju ne daju dobre rezultate u završnici jer kvalitetna igra iziskuje jako veliku dubinu
pretraživanja. Problem završnice je još teži ako se postavi zahtev za korektnom ili optimalnom igrom/taktikom3 .
je
Ukoliko se, tehnikama koje se koriste u središnjici, sistematsko pretraživanje vrši do završnih čvorova time se
obezbeduje optimalna strategija (naravno, za većinu igara to je u praksi nemoguće izvesti). Tako, na primer,
an
optimalnu igru u šahovskoj završnici praktično je nemoguće obezbediti (za uobičajena vremenska ograničenja),
jer su moguće završnice u kojoj igrač ima dobijenu poziciju, ali ne može da matira protivnika u manje od
dvadeset poteza, pa takva završnica za optimalnu igru zahteva dubinu pretraživanja veću od dvadeset. Slični
d
problemi važe i za korektnu taktiku. U nastavku su opisani neki od algoritama koji se mogu efikasno primenjivati
iz
u šahovskim završnicama.
o
Skupovi pozicija kao klase ekvivalencija. Bramerov opšti algoritam (1975) za završnicu izgleda ovako:
sk
Ključni korak algoritma (korak (b)) zasnovan je na sledećoj ideji: neka je skup 𝑄* skup svih regularnih
le
pozicija u igri i neka je svaka od tih pozicija svrstana u tačno jedan od podskupova koji razlažu 𝑄* (to razlaganje
definiše se u skladu sa prirodom konkretne igre tako da istom skupu pripadaju suštinski slične pozicije – npr. u
E
šahu, sve pozicije „kralj i pešak protiv kralja“); svakom od tih skupova (odnosno klasa ekvivalencije) pridružena
je jedinstvena ocena i jedinstvena funkcija evaluacije. Ocenjivanje koje se pominje u koraku (b) Bramerovog
algoritma svodi se na sabiranje ocene klase pozicija i ocene pozicije koja toj klasi pripada. Na taj način
ocenjuju se svi legalni potezi iz datog čvora i to bez ikakvog pretraživanja preko dubine 1. Kao najbolji bira
se potez kojem odgovara najveća zbirna ocena. Opisani algoritam ima brojne varijacije (uključujući varijacije
uporedivanja elemenata iz različitih klasa ekvivalencije, provere izabranog poteza pretraživanjem u dubinu itd.).
Bramerov algoritam, razlaganjem skupa problema na klase sličnih problema, u priličnoj meri prirodno od-
govara čovekovom načinu razmišljanja. Pored toga, algoritam može biti i veoma efikasan, jer poredenje poteza
vrši po ključnim parametrima za konkretnu završnicu (npr, u šahu, po rastojanju izmedu dva kralja), a ne po
opštim kriterijumima koji se koriste u središnjici. Algoritam zahteva kompleksno definisanje svih relevantnih
klasa pozicija u završnici i svih odgovarajućih funkcija evaluacije, ali je i pored toga verovatno najprihvatljivije
i najčešće korišćeno rešenje za automatski izbor poteza u završnici.
3 Za taktiku kažemo da je korektna ukoliko u dobijenoj poziciji sigurno vodi do pobede i ukoliko pri (teorijskoj) remi–poziciji
sigurno vodi bar remiju. Za taktiku kažemo da je optimalna ukoliko u dobijenoj poziciji vodi pobedi u najmanjem broju poteza,
odnosno ukoliko u izgubljenoj poziciji poraz maksimalno odlaže. Očigledno, ako je taktika optimalna, onda je i korektna, ali ne
važi obratno.
5.6. Implementaciona pitanja 58
Mali saveti. Jedan od pristupa koji se primenjuje u šahovskim završnicama je i pristup malih saveta (eng.
advice texts). Navedimo, kao ilustraciju, jedan mali savet za završnicu „kralj i top protiv kralja“ (autora Ivana
Bratka).
2. „stezanje“: Ako (1) nije moguće, pronadi način da topom smanjiš prostor na tabli dostupan protivničkom
kralju;
3. „približavanje“: Ako (1) i (2) nije moguće, pronadi način da svog kralja približiš protivničkom;
4. „zadržavanje“: Ako nisu primenljivi delovi saveta (1), (2) i (3), pronadi potez koji zadržava trenutno stanje
u smislu (2) i (3) (tj. odaberi „potez čekanja“);
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.
6)
Nedostatak koncepta ilustrovanog navedenim primerom je u tome što iziskuje posebne tekstove saveta za
sve suštinski različite završnice. Pored toga, za sve tipove završnica nije jednostavno (ili nije moguće) napraviti
01
koncizan i efikasan tekst saveta.
(2
Za efikasno izvršavanje programa za igre, važne su strukture podataka koje se koriste, osnovni algoritmi,
brza provera legalnosti i drugih bazičnih funkcija.
je
Poželjno je da postoji (ciklično) uredenje poteza, pa se za svaki legalan potez može jednoznačno odrediti
an
sledeći legalan potez. Ovo je potrebno kako bi se obezbedilo brzo ispitivanje svih legalnih poteza bez obzira na
to od kojeg poteza je ispitivanje počelo.
Radi efikasnosti, funkcija evaluacije često se implementira kao celobrojna funkcija. Struktura koja opisuje
d
potez treba da sadrži informacije dovoljne da bi se potez odigrao, ali poželjno je i da bi se eventualno „vratio“.
Kod jednostavnih igara, kao što je npr. igra iks-oks dovoljne su informacije o tome koji je igrač potez odigrao4
iz
i na kojem polju. Kod igre reversi, to više nisu dovoljne informacije, jer na osnovu njih ne može biti vraćen
potez. Naime, na osnovu informacije o igraču i polju ne može se rekonstruisati pozicija pre tog poteza, pa
o
struktura koja opisuje potez mora da sadrži i listu žetona koji pri tom potezu menjaju boju. Kod šaha je
sk
situacija još složenija, jer figure se pomeraju (a ne dolaze „niotkuda“ kao u igrama iks-oks i reversi), pa pored
oznake igrača, struktura koja opisuje potez mora da sadrži informacije i o polaznom i o odredišnom polju. Pored
n
toga, radi mogućnosti vraćanja poteza, ta struktura mora da sadrži i informaciju o (eventualno) „pojedenoj“
figuri, o (eventualno) „izvedenom“ pešaku (i o figuri u koju je promovisan), kao i informaciju o (eventualno)
ro
Tako na primer, u šahu može se za svaki tip figura (i to za oba igrača) koristiti po jedna bitovska tabela 8 × 8
u kojoj bi vrednost 1 označavala da igrač na tom polju ima figuru tog tipa, a vrednost 0 sve ostale mogućnosti.
le
Na taj način jedna tabela 8 × 8 bila bi zamenjena sa 12 (svaki igrač ima po šest tipova figura) tabela 8 × 8 čiji
su elementi bitovskog tipa. Dodatna pogodna okolnost u ovom pristupu je što opisana bitovska tabela može
E
da se opiše jednostavno kao niz osam karaktera (jer tipu karakter odgovara jedan bajt, odnosno osam bita).
Ovakav pristup (i analogni u drugim igrama), mada na prvi pogled možda komplikovaniji, omogućava brojna
jednostavna i brza rešenja kod provere legalnosti poteza, generisanja legalnih poteza i sl. Ukoliko je odabran
pristup sa bitovskom reprezentacijom table i poteza, operacije odigravanja i vraćanja poteza i slične svodiće se
na jednostavne i brze bitovske operacije.
Na nivou programa, opisane strukture treba da budu organizovane tako da omogućavaju igru izmedu dva
igrača, kao i mogućnost da program zameni bilo kog igrača (u celom toku partije, u pojedinačnom potezu ili
samo za davanje preporuke).
Pitanja i zadaci
Pitanje 5.1. Opisati ukratko Šenonove strategije?
Pitanje 5.2. Šta znači da je funkcija ocene koja se koristi u programiranju igara statička?
4 Podatak o tome koji je igrač odigrao potez često nije neophodan, jer se potezi prvog i drugog igrača smenjuju naizmenično.
5 Rokade se mogu opisati samo preko poteza kralja, pa nije potrebno da informacija o rokadi bude sadržana u strukturi potez.
59 5. Programiranje logičkih igara
6)
Pitanje 5.11. U kom slučaju (osnovni) algoritam alfa-beta obidje isti broj čvorova kao i minimax?
Pitanje 5.12. Da li algoritam minimax može u nekom slučaju, pretražujući do iste dubine da obide manji
01
broj čvorova od algoritma alfa-beta?
Pitanje 5.13. Da li 𝛼 − 𝛽 algoritam, u odnosu na minimax algoritam: daje iste poteze, ali brže; ili daje nešto
(2
lošije poteze, ali znatno brže; ili daje bolje poteze i to brže; ili daje bolje poteze ali nešto sporije?
Pitanje 5.14. Kada je broj odsecanja u stablu igre najveći u algoritmu alfa-beta?
je
Pitanje 5.15. Naredna slika prikazuje deo stabla igre koje se pretražuje alfa-beta algoritmom. U korenu 𝑅
an
se primenjuje maksimizovanje a u čvorovima 𝐴, 𝐵 , 𝐶 minimizovanje. Koji poredak čvorova 𝐴, 𝐵 , 𝐶 bi dao
najviše alfa-beta odsecanja?
d
𝑅
iz
o
𝐴 𝐵 𝐶
sk
n
1 2 3 5 6 7 8 9 10
ro
Pitanje 5.16. Koja heuristika je zasnovana na činjenici da je broj alfa-beta odsecanja u stablu igre najveći
kt
Pitanje 5.18. Kakav efekat se očekuje od heuristike killer u iterativnoj primeni alfa-beta algoritma i zašto?
E
Pitanje 5.19. Da li iterativni alfa-beta algoritam sa killer heuristikom daje uvek isti rezultat kao alfa-beta
algoritam nad istim stablom igre i za istu dubinu pretrage?
Pitanje 5.20. Da bi heuristika killer funkcionisala i na nultom nivou stabla igre koji je algoritam potrebno
koristiti?
Pitanje 5.21. Koji algoritam je pogodan za igru sa vremenskim prekidima i zašto?
Pitanje 5.22. Šta je to stabilno pretraživanje?
Pitanje 5.23. Neka je 𝐴 deterministički algoritam za pretraživanje (𝑑, 𝑛, 𝐹 )-stabla i neka je 𝐼𝐴 (𝑑, 𝑛, 𝐹 )
očekivani broj završnih čvorova koje algoritam 𝐴 ispituje. Kako se definiše faktor grananja algoritma 𝐴?
Pitanje 5.24. Koliki je faktor grananja za algoritam minimax za šahovsku središnjicu? (traži se konkretan
broj)?
Pitanje 5.25. Koliki je faktor granjanja algoritma minimaks, ako se ispituje uniformno stablo stepena 𝑛 i
dubine 𝑑?
5.6. Implementaciona pitanja 60
Pitanje 5.26. Ukoliko čvorovi stabla igre imaju stepen 𝑛, a pretražuje se do dubine 𝑑, koja je složenost
algoritma 𝑚𝑖𝑛𝑖𝑚𝑎𝑥 a koja algoritma 𝛼 − 𝛽 za taj problem?
Pitanje 5.27. U igri 𝑃 za dva igrača, u svakom potezu ima prosečno 6 legalnih poteza, a igra prosečno traje
4 polupoteza. Koliki je faktor grananja algoritma minimax za ovu igru?
Pitanje 5.28. U igri 𝑃 za dva igrača, u svakom potezu ima prosečno 5 legalnih poteza, a igra prosečno traje
20 polupoteza. Koliki je faktor grananja algoritma minimax za ovu igru?
Pitanje 5.29. U programiranju igara, da li se algoritmi minimax tipa primenjuju u otvaranju, središnjici ili
završnici?
Pitanje 5.30. Navesti barem dve strategije za završnicu u programima za igre.
Pitanje 5.31. Do koje dubine se vrši pretraga u Bramerovom pristupu za završnicu?
Pitanje 5.32. Na datoj tabli igre X-O minimaks algoritmom sa alfa-beta odsecanjem odrediti najbolji potez za
igrača X. Prikazati stablo igre i odsecanja koja algoritam vrši.
6)
X X O
01
O X
O
(2
Zadatak 5.1. Igra X-O se igra na datoj tabli. Igrač je pobedio kad postavi svoje simbole na 2 susedna polja.
Nacrtati potpuno stablo igre i pomoću algoritma minimaks izračunati vrednosti njegovih čvorova.
je
an
Zadatak 5.2. Data je sledeća tabla za igru:
1 2
d
3 4
iz
Dva igrača stavljaju naizmenično žetone na polja dok se tabla ne popuni i pri tom osvajaju onoliko poena
koliko piše na polju. Pobeduje igrač koji na kraju ima veću sumu poena. Pomoću minimax algoritma odrediti
o
najbolji polazni potez za prvog igrača. Da li alfa-beta odsecanje omogućava izračunavanje najboljeg poteza u
sk
manje koraka?
Zadatak 5.3. Na datom drvetu minimax algoritmom sa alfa-beta odsecanjem izračunati vrednost korenog
n
čvora. Označiti delove drveta koji su odsečeni pri obilasku s leva na desno. Da li neki drugi raspored grana
ro
𝑚𝑎𝑥
le
E
3 4 6 10 1 3 8 5 5 2 12 7
Zadatak 5.4. Označiti odsecanja koja čini algoritam minimax sa 𝛼−𝛽 odsecanjem pri obilasku sledećeg stabla
s leva nadesno. Postoji li redosled obilaska stabla pri kojem se odseca veći broj čvorova?
𝑚𝑎𝑥
21 12 56 11 99 13 16 17 31 33 20 15
Zadatak 5.5. Prikazati odsecanja koja vrši algoritam minimax alfa-beta na datom stablu igre pri obilasku s
leva na desno. Koji je optimalni obilazak stabla u smislu odsečenih čvorova i koja odsecanja se pri njemu vrše?
61 5. Programiranje logičkih igara
𝑚𝑎𝑥
12 11 13 16 18 41 33 11 9 99 1 10
Zadatak 5.6. Prikazati odsecanja koja vrši algoritam minimax alfa-beta na datom stablu igre pri obilasku s
leva na desno. Koji je optimalni obilazak stabla u smislu odsečenih čvorova i koja odsecanja se pri njemu vrše?
𝑚𝑎𝑥
6)
01
12 11 13 16 18 41 33 11 9 99 1 10
Zadatak 5.7. Označiti odsecanja koja čini algoritam minimax sa 𝛼−𝛽 odsecanjem pri obilasku sledećeg stabla
(2
s leva nadesno.
𝑚𝑎𝑥 je
an
d
3 8 12 5 1 2 30 4 6 23 30 1
iz
o
sk
n
ro
kt
le
E
E
le
kt
ro
n
sk
o
iz
d
an
je
(2
01
6)
Glava 6
Genetski algoritmi
6)
Heuristike koje se koriste u rešavanju problema pretrage dizajnirane su za konkretan problem, imajući u
vidu njegove specifičnosti. Heuristika dizajnirana za jedan problem često je potpuno neupotrebljiva za drugi
01
problem i rešavanje svakog novog problema korišćenjem heuristika može da bude veoma zahtevno. S druge
strane, metaheuristike ili metaheurističke metode su metode koji opisuju opšte strategije pretrage za rešavanje
(2
optimizacionih problema i formulisane su nezavisno od konkretnog problema. U svom opštem obliku meta-
heuristike ne koriste specifičnosti nijednog konkretnog problema i mogu se koristiti za rešavanje široke klase
problema. Medutim, iako su metaheuristike opšte metode, one mogu biti prilagodene (kombinacijom internih
je
parametara) specifičnom problemu koji se rešava. Metaheuristike obično razmatraju samo mali uzorak skupa
svih mogućih rešenja i obično ne garantuju pronalaženje najboljeg mogućeg rešenja. Medutim, rešenja koja daju
an
metaheuristike često mogu biti dovoljno dobra, posebno u situacijama kada nije raspoloživa ili nije praktično
upotrebljiva odgovarajuća egzaktna metoda (koja garantuje pronalaženje najboljeg mogućeg rešenja).
d
Genetski algoritmi pripadaju široj grupi metaheurističkih algoritama globalne optimizacije ili pretrage koji
iz
koriste tehnike inspirisane biologijom. Genetski algoritmi koriste pojmove kao što su selekcija, ukrštanje,
nasledivanje, mutacija, itd. U prirodi, evolucija je proces u kojem jedinke koje su najbolje prilagodene okolini
o
preživljavaju i ostavljaju potomstvo, koje je najčešće isto tako ili bolje prilagodeno okolini. Svaka ćelija svakog
živog organizma sadrži hromozome. Svaki hromozom sadrži skup gena — blokove DNK. Svaki gen odreduje neku
sk
osobinu organizma. Familija gena često se naziva genotip, a familija osobina fenotip. Reprodukcija organizama
uključuje kombinovanje gena roditelja i, pored toga, male količine mutacije. Jedinka može biti manje ili više
n
prilagodena okolini. Jedinka koja je bolje prilagodena okolini u kojoj živi ima veću verovatnoću preživljavanja
ro
i ostavljanja potomstva, a time i prenošenja svog genetskog materijala. Genetski materijal prilagodenih jedinki
uglavnom opstaje, dok genetski materijal neprilagodenih jedinki uglavnom nestaje kroz generacije. Dakle, evo-
kt
lucioni procesi u prirodi su, u odredenom smislu, optimizacioni procesi — procesi u kojima se kroz generacije
optimizuje genetski materijal (tj. osobine organizama) tako da bude što bolje prilagoden okolini.
le
Genetski algoritmi mogu se koristiti za nalaženje tačnog ili približnog rešenja nekog problema optimizacije
E
ili pretrage. Mada je još pedesetih godina dvadesetog veka bilo računarskih simulacija zasnovanih na evoluciji,
smatra se da je moderne genetske algoritme uveo Džon Holand sedamdesetih godina dvadesetog veka [?], a postali
su popularni kasnih osamdesetih godina. Tokom prethodnih tridesetak godina ostvaren je veliki napredak u
razvoju genetskih algoritama. Genetski algoritmi se uspešno primenjuju na širokom skupu problema, često NP-
kompletnih ili težih problema, za koje ne postoje efikasna rešenja. Neki od tih problema su problem nalaženja
najkraćeg puta u grafu, problem trgovačkog putnika, problem igranja logičkih igara itd. Genetski algoritmi
imaju uspešne primene u ekonomiji, tehnici, bioinformatici, hemiji, fizici itd. Genetski algoritmi uspešno se
primenjuju u mnogim optimizacionim problemima u kojima postoji i više lokalnih ekstremuma. Popularnost
genetskih algoritama potiče iz njihove uspešnosti, ali i jednostavnosti. Naime, ideje na kojima su genetski
algoritmi zasnovani su jednostavne za razumevanje i implementiranje, a daju opšti sistem pretrage primenjljiv
na veliki broj problema. Pored toga, i u situacijama kada ne nalaze globalne ekstremume, rešenja koja daju su
često dovoljno dobra.
Uporedo sa nalaženjem brojnih novih primena i unapredivanjem algoritma, razvijaju se i teorijske osnove
genetskih algoritama, ali još uvek sa ograničenim uspesima. Na primer, iako često nalaze globalne ekstremume,
genetski algoritmi ne pružaju informaciju o tome da li je u pitanju globalni ili lokalni ekstremum, niti o tome
sa kolikom greškom je odredeno rešenje.
63
6.1. Opšti genetski algoritam 64
6)
izabranim jedinkama primenjuju se genetski operatori ukrštanja1 i tako se dobijaju nove jedinke. Ukrštanjem se
od dve jedinke dobija nova (ili dve nove) sa genetskim materijalom koji je dobijen neposredno od roditelja, tj. od
01
polaznih jedinki. Operatorom mutacije može da se modifikuje deo polazne jedinke (i ona oponaša mutacije koje
se u prirodi javljaju pod uticajem spoljnih faktora). U svakoj generaciji, dakle, može da dode do rekombinacije
(2
gena zbog koje se javlja sličnost ali i različitost izmedu jedinki iste generacije.
Politika zamene generacija odreduje kako se od postojećih jedinki i njihovog potomstva kreira nova ge-
neracija. Neke jedinke u novoj generaciji mogu biti bolje, ali neke mogu biti lošije od jedinki iz prethodne
je
generacija, ali se očekuje da se prosečna prilagodenost popravlja. Tako dobijena nova generacija koristi se za
sledeću iteraciju algoritma.
an
Postupak se zauastavlja kada je dostignut zadati broj generacija, kada je dostignut željeni nivo kvaliteta
populacije (na primer, prilagodenost najprilagodenije jedinke) ili kada je ispunjen neki drugi uslov. Ukoliko je
dostignut zadati broj generacija, nema nikakvih garancija da tekuća najkvalitetnija jedinka ima zadovoljavajuću
d
Genetski algoritmi se, kao i mnogi drugi algoritmi, dizajniraju za rešavanje neke klase instanci, a ne po-
jedinačnih instanci. Na primer, algoritam za rešavanje kvadratne jednačine može da reši bilo koju kvadratnu
jednačinu, ali je za njegovu primenu potrebno zadati koeficijente koji je u potpunosti odreduju. Slično, ge-
o
netski algoritam za pronalaženje rasporeda časova treba da bude dizajniran tako da rešava različite instance
sk
tog problema — za različite škole sa različitim brojem nastavnika, odeljenja, učionica i termina i sa različitim
specifičnim zahtevima. To znači da funkcija cilja može da bude definisana tek kad su poznati svi podaci koji do
n
precizno zadaju problem. Zbog toga se može smatrati da ulaz za opšti algoritam čini opis problema na osnovu
ro
kojeg tek treba definisati funkciju cilja, ali i brojna podešavanja algoritma (tj. vrednosti njegovih paramatara)
pogodna za konkretan problem. Medutim, upravo definisanje funkcije prilagodenosti i izbor pogodnih parame-
tara često čine najteži deo primene genetskih algoritama, tj. primena opšteg genetskog algoritma je obično samo
kt
Pored podataka koji odreduju funkciju cilja, da bi navedeni opšti algoritam bio specifikovan potrebno je iza-
E
brati i podešavanja algoritma (za konkretan problem) – definisati reprezentaciju jedinki, funkciju prilagodenosti,
politiku selekcije, politku zamene generacija, itd.
6)
Slika 6.1: Opšti genetski algoritam
01
bi one narušavale performanse algoritma. Medutim, nekada se koriste i takvi operatori, ali se onda moraju
(2
definisati mehanizmi popravljanja jedinki, tako da odgovaraju mogućim rešenjima.
Najčešće korišćena reprezentacija jedinki je u vidu nizova binarnih cifara. Svaki deo hromozoma, tj. svaku
cifru u takvoj reprezentaciji, zovemo gen. Dublja priroda binarne reprezentacije zavisi od konkretnog problema.
je
Na primer, ako je dužina hromozoma 𝑛 (bitova) i ako je prostor mogućih rešenja interval realnih brojeva [𝑎, 𝑏],
onda je potrebno uspostaviti vezu (koja, naravno, nije bijektivna) izmedu nizova 𝑛 bitova i realnih brojeva iz
an
datog intervala. Tako će binarna reprezentacija 000 ⏟ .⏞. . 0 odgovarati broju 𝑎, a binarna reprezentacija 111
⏟ .⏞. . 1
𝑛 𝑛
broju 𝑏. Broju 𝑥 sa binarnom reprezentacijom izmedu 000
⏟ .⏞. . 0 i 111
⏟ .⏞. . 1 odgovara realni broj
d
𝑛 𝑛
iz
𝑥
𝑎+ (𝑏 − 𝑎)
2𝑛 − 1
o
S druge strane, realnom broju 𝑥 iz intervala [𝑎, 𝑏] pridružujemo niz koji predstavlja binarnu reprezentaciju broja
sk
[︂ ]︂
𝑥−𝑎 𝑛
n
(2 − 1) .
𝑏−𝑎
ro
Primer 6.1. Pretpostavimo da naftnu platformu treba postaviti na pogodnom mestu na putu izmedu tačaka 𝐴
i 𝐵 , koji je dužine 5000m. Lokacija platforme je pogodnija ukoliko na tom mestu postoje veće rezerve nafte. U
kt
biranju lokacije platforme moguće je meriti postojeće rezerve nafte na bilo kojoj tački izmedu 𝐴 i 𝐵 . Moguća
rešenja mogu se reprezentovati nizovima bitova dužine 10, tj. brojevima od 0 do 1023. Tački 𝐴 tada odgovara broj
le
0 i reprezentacija 0000000000, a tački 𝐵 broj 1023 i reprezentacija 1111111111. Tački 𝐶 na rastojanju 1320m
od tačke 𝐴 odgovara vrednost 1023 · (1320/5000) ≈ 270 i reprezentacija 0100001110, a tački 𝐷 na rastojanju
E
3128m od tačke 𝐴 odgovara vrednost 1023 · (3128/5000) ≈ 640 i reprezentacija 1010000000. Za vrednost funkcije
prilagodenosti jedne tačke može se uzeti rezerva nafte izmerena u toj tački (slika 6.2).
6)
01
0 100 200 270 300 400 500 600 640 700 800 900 1000
(2
Slika 6.2: Reprezentacija problema lokacije naftne platforme
je
reprezentacija (na način opisan u poglavlju ). Ukoliko je potrebno odrediti minimum funkcije 𝑓 (𝑥), onda bi za
funkciju prilagodenosti mogla da se koristi funkcija −𝑓 .
an
Treba imati u vidu da funkcija cilja i funkcija prilagodenosti ne moraju uvek da se podudaraju. Na primer,
d
funkcija prilagodenosti može jedinkama koje su najbolje u odnosu na funkciju cilja dodeljivati vrednost 1, a
ostalima vrednost 0. Tako se može i pojednostaviti implementacija algoritma, ali se ovakve odluke moraju
iz
donositi oprezno kako ne bi došlo do smanjenja raznolikosti populacije i prerane konvergencije (recimo ako
najbolje jedinke, kojima će biti pridružena vrednost 1, sve pripadaju uskoj podoblasti prostora rešenja). S
o
druge strane, funkcija cilja ne mora uvek biti eksplicitno zadata nekom matematičkom reprezentacijom, već
nekakvim manje formalnim zahtevom (u poglavlju 6.4.2 će biti dat jedan takav primer u kojem se genetskim
sk
6.2.3 Inicijalizacija
ro
Populaciju jedinki jedne generacije, ukoliko se koristi binarna reprezentacija, čini skup nizova binarnih cifara.
kt
U toku rešavanja jednog problema, obično sve generacije imaju isti broj jedinki. Taj broj, veličina populacije,
je parametar algoritma i on je često nekoliko desetina ili stotina.
Proces inicijalizacije, tj. proces generisanja početne populacije, često je jednostavan. Najčešće se početna
le
populacija generiše slučajno (tako da pokriva čitav prostor pretrage). Ukoliko se koristi bitovska reprezentacija,
E
jedinke početne generacije mogu se generisati kao slučajni brojevi u intervalu [0, 2𝑛 − 1], gde je 𝑛 dužina
hromozoma u izabranoj reprezentaciji. Dodatno, u početnu populaciju mogu biti dodate neke specifične jedinke
(na primer, iz delova prostora pretrage za koje se veruje da sadrži optimalna rešenja) ili čitava početna populacija
može biti generisana koristeći neki drugi optimizacioni metod. U nekim problemima može da postoji ograničenje
nad potencijalnim rešenjima, tj. jedinkama i njega onda treba uzeti u obzir pri generisanju slučajnih jedinki.
Slično, i u kasnijim fazama algoritma treba voditi računa o neispravnim jedinkama, koje su se pojavile u
populaciji, a po formi ne ispunjavaju uslove koje potencijalna rešenja moraju da ispune. Takve jedinke se
obično koriguju unapred definisanim postupcima.
6.2.4 Selekcija
Selekcija obezbeduje čuvanje i prenošenje dobrih osobina populacije (tj. dobrog genetskog materijala) na
sledeću generaciju. U svakoj generaciji, deo jedinki se izdvaja za reprodukciju i generisanje nove genera-
cije. Izdvajanje jedinki koje će učestovavati u reprodukciji zasniva se na funkciji prilagodenosti i, generalno,
prilagodenije jedinke imaju veću verovatnoću da imaju potomstvo. U najjednostavnijim pristupima biraju se
jedinke sa najvećom vrednošću funkcije prilagodenosti. U drugim pristupima, jedinke se biraju slučajno, ali sa
verovatnoćama koje su izvedene iz prilagodenosti, pri čemu je moguće da budu izabrane i neke lošije prilagodene
67 6. Genetski algoritmi
jedinke (to može da pomogne u održavanju genetske raznolikosti i, dalje, u sprečavanju prerane konvergencije
ka nekom lokalnom optimumu). Najpopularnije strategije selekcije su ruletska i turnirska selekcija.
Ruletska selekcija Ruletska selekcija (eng. roulette wheel selection) je proces selekcije u kojem veće šanse
da učestvuju u reprodukciji imaju prilagodenije jedinke.
Ako je 𝑓 (𝑖) vrednost funkcije prilagodenosti za jedinku 𝑖, a 𝑁 broj jedinki u populaciji, verovatnoća da će
jedinka 𝑖 biti izabrana da učestvuje u reprodukciji jednaka je
𝑓 (𝑖)
𝑝𝑖 = ∑︀𝑁
𝑗 𝑓 (𝑗)
Naziv ruletske selekcije potiče od analogije koja se može napraviti sa ruletom. Ukoliko polja ruleta imaju
širine proporcionalne verovatnoćama jedinki populacije, onda je proces biranja 𝑚 jedinki za reprodukciju ana-
logan odigravanju 𝑚 partija ruleta.
6)
redom 0.10, 0.30, 0.06, 0.10, 0.40, 0.24, 0.60, 0.20. Ukupna prilogodenost generacije jednaka je 2.00. Sledeća
tabela prikazuje verovatnoće izbora jedinki u ruletskoj selekciji:
01
jedinka a b c d e f g h
(2
prilagodenost 0.10 0.30 0.06 0.10 0.40 0.24 0.60 0.20
verovatnoća izbora 0.05 0.15 0.03 0.05 0.20 0.12 0.30 0.10
je
Sledeća slika ilustruje, u formi ruleta, verovatnoće izbora koje su pridružene jedinkama.
an
0.05 0.03
d
𝑑 𝑐
iz
0.20 0.15
𝑒 𝑏
o
sk
𝑎 0.05
n
𝑓 ℎ
ro
0.12
0.10
kt
𝑔
le
0.30
E
U opisanom pristupu, podrazumeva se da je funkcija prilagodenosti definisana tako da ima samo pozitivne
vrednosti.
U ruletskoj selekciji moguće je da jedna jedinka bude više puta izabrana da učestvuje u sledećoj generaciji i
reprodukciji. Prevelik broj ponavljanja istih jedinki loše utiče na performanse algoritma.
Turnirska selekcija U turnirskoj selekciji, jedinke „odigravaju turnire“ u kojima veće šanse za pobedu (tj. za
prelazak u narednu generaciju) imaju one sa boljom prilagodenošću.
Veličina turnira 𝑘 i verovatnoća 𝑝 su parametari procesa turnirske selekcije. Za jedan turnir bira se slučajno
𝑘 jedinki iz populacije. Nakon toga, one se sortiraju po vrednosti funkcije prilagodenosti i 𝑖-ta jedinka u tako
sortiranom nizu se bira sa verovatnoćom 𝑝(1 − 𝑝)𝑖−1 .
Ukoliko se u procesu selekcije koristi veća veličina turnira, onda nekvalitetne jedinke imaju manje šanse da
budu izabrane. Selekcija sa veličinom turnira 1 ekvivalentna je slučajnoj selekciji. U determinističkoj turnirskoj
selekciji (𝑝 = 1) bira se najbolja jedinka u svakom turniru.
Jedinkama koje su jednom izabrane može se zabraniti učestvovanje u daljim turnirima.
6.2. Komponente genetskog algoritma 68
6.2.5 Reprodukcija
U procesu reprodukcije učestvuju jedinke koje su izabrane u procesu selekcije. U ukrštanju (eng. crossover)
učestvuju dve jedinke koje se nazivaju roditelji. Rezultat ukrštanja je jedna nova jedinka ili dve nove jedinke
koje nazivamo decom ili neposrednim potomcima. Očekivano je da deca nasleduju osobine roditelja, uključujući
njihovu prilagodenost, pa i da imaju bolju prilagodenost od svojih roditelja.
Postoji više jednostavnih varijanti ukrštanja kada se koristi binarna reprezentacija. U jednoj varijanti
(višepoziciono ukrštanje) dovoljno je izabrati tačke ukrštanja i prekombinovati nizove bitova — jedno dete
deo od jedne tačke prekida do sledeće nasleduje od jednog roditelja, a naredni deo od drugog. Ukrštanje može
koristiti proizvoljan broj tačaka prekida (s tim da je manji od dužine hromozoma). Slike 6.3 i 6.4 ilustruju
ukrštanje sa jednom (jednopoziciono ukrštanje) i sa dve tačke ukrštanja (dvopoziciono ukrštanje) za binarnu
reprezentaciju.
roditelj 1
roditelj 2
6)
tačka prekida
dete 1
01
dete 2
(2
Slika 6.3: Jednopoziciono ukrštanje.
je
an
roditelj 1
roditelj 2
tačke prekida
d
dete 1
iz
dete 2
o
sk
Uniformno ukrštanje daje dva deteta. Kod ovog ukrštanja svaki bit prvog roditelja se sa verovatnoćom 𝑝
ro
prenosi na prvo dete i sa verovatnoćom 1 − 𝑝 na drugo dete (pri čemu dete koje nije izabrano nasleduje bit
drugog roditelja). Verovatnoća 𝑝 je obično jednaka 0.5, ali može biti i drugačija.
kt
Ukrštanje se primenjuje na sledeći način: iz skupa jedinki izabranih u procesu selekcije biraju se dve različite
i ukrštaju sa zadatom verovatnoćom (obično izmedu 0.6 i 0.9). Tačke prekida se biraju slučajno iz skupa svih
mogućih tačaka prekida.
le
E
6.2.6 Mutacija
Mutacija se primenjuje nakon procesa ukrštanja. To je operator koji sa odredenom (obično veoma malom)
verovatnoćom menja jedan deo jedinke na odredeni način. Na primer, u binarnoj reprezentaciji mutacija menja
jedan ili više slučajno odabranih gena. Od jedne jedinke dobija se jedna nova jedinka. Verovatnoća da će neki
bit neke jedinke populacije biti promenjen je parametar algoritma i odreduje se eksperimentalno (a obično je
manja od 1%).
Uloga mutacija u genetskim algoritmima je da spreči da jedinke u populaciji postanu suviše slične i da po-
mogne u obnavljanju izgubljenog genetskog materijala. Na primer, ukoliko u jednoj generaciji sve jedinke imaju
istu vrednost jednog gena, onda taj gen samo ukrštanjem nikada ne bi mogao da se promeni. Kontrolisano
podsticanje genetske raznolikosti mutacijom često omogućava izbegavanje lokalnih ekstremuma. Mutacije, na-
ime, omogućavaju razmatranje novih delova prostrora pretrage u nadi da će se naići na globalnim ekstremum.
Dovoljno je da se jedna jedinka približi globalnom ekstremumu, pa da za nekoliko generacija sve jedinke budu
u tom delu prostora pretrage.
Ukoliko je verovatnoća mutacije velika, onda usmeravanje pretrage postaje preslabo i ona počinje da liči na
slučajnu pretragu. Ukoliko je verovatnoća mutacije jednaka nuli, onda uopšte nema mutacije i algoritam će
verovatno brzo dospeti do nekog lokalnog ekstremuma.
69 6. Genetski algoritmi
zamena najgorih prema kojoj dobijeni potomci zamenjuju najmanje prilagodene jedinke u populaciji,
nasumična zamena prema kojoj dobijeni potomci zamenjuju nasumično izabrane jedinke iz populacije,
6)
takmičenje roditelja i potomaka prema kojoj se dobijeni potomci zamenjuju svoje roditelje ukoliko su od
njih bolji
01
turnirska zamena prema kojoj se jedinka koju dobijeni potomci zamenjuju bira istim mehanizmom kao
kod turnirske selekcije, s tim što se umesto najbolje prilagodenih jedinki biraju najgore.
(2
Pored navedenih, za genetske algoritme stabilnog stanja, postoje i druge strategije zamene.
Elitizam je (opciona) strategija u okviru zamene generacije kojom se nekoliko najboljih jedinki (možda samo
je
jedna) u generaciji štite od eliminisanja ili bilo kakvih izmena i takve prenose u sledeću generaciju. Ovim se
eliminiše opasnost da se neka posebno kvalitetna jedinka izgubi tokom evolucionog procesa. Elitizam može da
an
se koristi i u generacijskim politikama i u politikama stabilnog stanja.
d
6.2.8 Zaustavljanje
iz
Genetski algoritam se izvršava, tj. evolucioni proces stvaranja novih generacija se ponavlja, sve dok nije
zadovoljen neki uslov zaustavljanja. Najčešće se koriste sledeći uslovi zaustavljanja:
o
Vrednost prilagodenosti najbolje jedinke se tokom odredenog broja generacija nije popravila.
kt
Genetski algoritmi imaju širok domen i uspešno se primenjuju na velikom broju optimizacionih problema,
često onih koji su NP-kompletni ili teži. S druge strane, još uvek nema mnogo teorijskih rezultata koji govore
o svojstvima genetskih algoritama, o kvalitetu rešenja koja daju, pa čak ni o tome zašto su genetski algoritmi
uspešni. U daljem tekstu, biće reči o nekim dobrim i lošim stranama genetskih algoritama.
Ciljna funkcija. Ciljna funkcija može biti potpuno proizvoljna i ne mora da zadovoljava nikakve uslove (na pri-
mer, da bude neprekidna ili diferencijabilna). Medutim, u primenama u veštačkoj inteliegenciji (na primer,
kretanje robota), ciljna funkcija često nije zadata eksplicitno već implicitno, kroz veći broj kriterijuma.
Reprezentacija jedinki, funkcija prilagodenosti i operatori. Pogodan izbor reprezentacije jedinki, funk-
cije prilagodenosti i operatora ukrštanja obično su ključni za performanse algoritma (brzina dolaženja do
rešenja i kvalitet rešenja). Ipak, za mnoge optimizacione probleme nije lako konstruisati pogodnu funk-
ciju prilagodenosti jer se obično ne može unapred oceniti da li je nešto rešenje ili nije. U prvoj fazi
rešavanja, reprezentacija jedinki, funkcija prilagodenosti i operatori se prilagodavaju problemu, a onda se
vrši i prilagodavanje parametara algoritma, kao i dodatno fino podešavanje procesa rešavanja.
6.4. Primeri primene genetskih algoritama 70
Parametri algoritma. Pogodan izbor operatora ukrštanja i parametara genetskog algoritma (veličina popu-
lacije, verovatnoća ukrštanja, verovatnoću mutacije, itd) veoma je važan za njegove performanse. S druge
strane, upravo velika sloboda u izboru parametara istovremeno je i pretnja da mogu da budu korišćeni
parametri koji daju loše performanse. Optimizovanje parametara genetskog algoritma je kompleksan pro-
blem koji se najčešće rešava izvodenjem eksperimenata – probnih rešavanja. Za izbor pogodnih parametara
često se koriste sâmi genetski algoritmi. Parametri genetskog algoritma ne moraju biti fiksirani, već mogu
da se menjaju i prilagodavaju tokom rada. Na primer, ukoliko su tekuće jedinke raznolike, onda se može
povećati verovatnoća ukrštanja, a smanjiti mutacija, a ukoliko su slične, onda se može uraditi obratno,
kako bi se povećale šanse za bekstvo jedinki iz lokalnog optimuma.
Domen genetskih algoritama. Genetski algoritmi primenljivi su na veoma širok skup problema. Ipak, za
uspešno rešavanje konkretnih problema zahteva potrebno je napraviti mnogo dobrih izbora (na primer, za
funkciju prilagodenosti i za parametre).
Kvalitet rešenja. Genetski algoritam ne daje garanciju da je pronadeno rešenje globalni optimum. Štaviše,
genetski algoritmi često imaju tendenciju da idu ka lokalnim optimumima, pošto je pronalaženje globalnog
6)
optimuma teško. Medutim, i ako nije nadeno rešenje koje je globalni optimum, često je rešenje koje je
nadeno dovoljno dobro. Dodatno, kao rezultat algoritma može se ponuditi neki skup najboljih pronadenih
01
jedinki, što je često veoma pogodno. Takvo ponašanje je zadovoljavajuće, posebno u problemima za koje
ne postoje tehnike koje garantuju pronalaženje optimalnog rešenja.
(2
Zahtevani resursi. Genetski algoritmi se jednostavno implementiraju. Ipak, za najbolje rezultate često je
potrebno implementaciju prilagoditi konkretnom problemu. Iako su algoritmi i implementacije obično
jednostavni, izvršavanje genetskih algoritama često je veoma vremenski i memorijski zahtevno. Genetski
algoritmi mogu se pogodno i efikasno paralelizovati. je
an
6.4 Primeri primene genetskih algoritama
d
U ovom poglavlju biće data dva konkretna, jednostavna, ali ilustrativna primera primene genetskih algori-
tama.
iz
Problem obilaska table skakačem je problem pronalaženja putanje skakača na šahovskoj tabli 𝑛 × 𝑛, takve
da skakač poseti što veći broj različitih polja ali nijedno polje dvaput ili više puta.2 U daljem razmatranju,
pretpostavićemo dimenzije table 5 × 5. Na slici 6.5, prikazana je jedna putanja skakača od osam poteza koja se
n
ne može nastaviti.
ro
kt
5
Z0Z0Z 5
Z0Z0Z
4
0Z0Z0 4
0Z0Z0
le
3 3 5 8
3
Z0M0Z Z0Z0Z
7 2
E
2
0Z0Z0 2
0Z0Z0
1 1 4 6 9
1
Z0Z0Z Z0Z0Z
a b c d e a b c d e
Slika 6.5: Kretanje skakača (levo) i jedna putanja skakača od osam poteza koja se ne može nastaviti (desno).
Za svako od 25 polja treba odrediti na koje je najbolje da skakač prede. U zavisnosti od polja na kojem
je, skakač može preći na dva do osam drugih polja, pa se izbor narednog polja se uvek može kodirati pomoću
tri bita. Stoga, za potrebe primene genetskog algoritma, hromozom se može sastojati iz 25 × 3 = 75 bitova,
pri čemu svaka trojka odgovara jednom polju table i označava jedan od osam mogućih poteza sa tog polja.
Očigledno, za neka polja neki od poteza koje hromozom može predstaviti neće biti legalna, ali ih u prvoj verziji
svejedno dopuštamo. U drugoj varijanti, za svako polje dozvoljeni su samo potezi koji su u tom polju zaista
mogući.
2 Strоžije postavljen problem je problem pronalaženja putanje skakača na šahovskoj tabli kojom skakač po jednom posećuje
svako polje table.
71 6. Genetski algoritmi
Za funkciju cilja i funkciju prilagodenosti prirodno se nameće broj skokova koje skakač može da izvede u
skladu sa evaluiranim hromozomom, do skoka van table ili do skoka na već posećeno polje.
Koristi se generacijski genetski algoritam – u svakom koraku bira se dovoljno jedinki da se generiše cela
nova populacija, a potom se vrše ukrštanja i mutacije. Selekcija može da bude jednostavna ruletska. Ukrštanje
može da bude sa jednom tačkom prekida, a mutacija može da se realizuje tako što bi na svakoj poziciji svakog
hromozoma sa nekom unapred zadatom malom verovatnoćom trenutna vrednost bila zamenjena nekom slučajno
izabranom od preostalih. Za obe varijante korišćena je populacija od 3000 jedinki, verovatnoća ukrštanja 0.8,
verovatnoća mutacije po hromozomu 0.05, a maksimalan broj iteracija je bio 1000.
Kako ponašanje genetskog algoritma može značajno zavisiti od polazne populacije koja se slučajno generiše,
može se desiti da se u različitim pokretanjima, dobije različit kvalitet rešenja. Kako bi se stekla bolja slika,
rešavanje je bilo izvršeno iz početka 10 puta. Potom su izračunati prosečan kvalitet najboljeg rešenja i prosečna
generacija u kojoj je ono nadeno. Prosečna dužina pronadene putanje za prvu varijantu je 19.1, a za drugu
21.6. Prosečan broj iteracija koje su bile potrebne za dostizanje najboljeg pronadenog rešenja je 326.7 za prvu, a
188.0 za drugu. Na slici 6.6, prikazana je zavisnost dužine predene putanje za najbolju jedinku u odnosu na broj
iteracija za po jedno izvršavanje obe varijante genetskog algoritma. Vidi se da druga varijanta u manjem broju
generacija dolazi do kvalitetnijih rešanja, što se i moglo očekivati. Nijedna varijanta nije pronašla putanju koja
6)
obilazi sva polja. Razlog za to je što je taj problem previše težak za pravolinijski pristup koji je upotrebljen.
Za njegovo puno rešavanje potrebne su dodatne, napredne tehnike.
01
26
(2
24
22
20
18
16
14 je
an
12
10
8
6
d
4
iz
2
0 25 50 75 100125150175200225250275300
o
Slika 6.6: Zavisnost kvaliteta najbolje jedinke u populaciji od broja generacija za obe varijante genetskog
sk
Neka je potrebno opisati agenta koji je u stanju da brzo vozi automobil po nekoj stazi. Staza ima start
koji je ujedno i cilj i ima krivine ulevo i udesno. Staza je izdeljena na polja (slika 6.7). Vožnju je potrebno
završiti što brže. Agent raspolaže sa nekoliko akcija — prebacivanje u brzu vožnju, prebacivanje u sporu vožnju,
le
skretanje ulevo i skretanje udesno. Takode je moguće da agent ne preduzme nikakvu akciju. Bilo koju akciju
E
da preduzme, agent nastavlja da se kreće pravo. Agent raspolaže skupom senzora — jednim koji meri brzinu
(sporo, brzo) i senzorima za prepreke — levo, desno, jedno polje napred i dva polja napred. Pretpostavljamo
da staza nema slepih krakova niti grananja, pa ako postoji prepreka na polju ispred, onda postoji tačno jedno
slobodno polje levo ili desno. U toku kretanja, agent ne može skretati ukoliko se kreće brzo.
Kako bi obilazak staze bio što pre završen, poželjno je da agent ubrza kada su oba polja ispred njega
slobodna, da uspori kad primeti prepreku dva polja ispred i da skrene na slobodno polje kada primeti prepreku
na polju neposredno ispred.
Prilikom modelovanja ovog problema, potrebno je specifikovati osnovne elemente genetskog algoritma, počev
od reprezentacije hromozoma. Zarad jednostavnosti, koristićemo modifikovanu binarnu reprezentaciju. Svaki
senzor kojim agent raspolaže može da daje dve vrednosti. Stoga agent ne može razlikovati više od 25 = 32
stranja. Neka od tih stanja se neće pojavljivati u toku vožnje (na primer, prepreke i neposredno napred i levo
i desno), ali neće biti unapred odbačena radi jednostavnosti kodiranja i dekodiranja hromozoma. Svako od
mogućih stanja predstavljaće jednu poziciju u hromozomu na kojoj se beleži akcija koju agent u tom stanju
preduzima. Akcije se mogu kodirati celim brojevima od 0 do 4, na primer, 0 — ne preduzimati ništa, 1 —
ubrzati, 2 — usporiti, 3 — skrenuti levo i 4 — skrenuti desno. Na osnovu ovoga, hromozom agenta koji u svakom
stanju samo skreće desno bio bi predstavljen pomoću niza od 32 četvorke. Dekodiranje hromozoma može da se
realizuje tako što bi se svakom od senzora dodelio jedan bit pri čemu bi njegova vrednost u slučaju postojanja
6.4. Primeri primene genetskih algoritama 72
prepreke bila 0, a u suprotnom 1 i u slučaju sporog kretanja 0, a u suprotnom 1. Ovi bitovi bi se poredali u
6)
fiksiranom poretku, na primer, brzina, polje neposredno ispred, dva polja ispred, polje levo i polje desno. Tada
bi se akcija u slučaju brzog kretanja i sa preprekama levo i desno, a bez prepreka na sledeća dva polja nalazila
01
zapisana u hromozomu na mestu sa indeksom (10011)2 = 19.
Funkcija cilja nije eksplicitno data. Dat je samo zahtev da agent što brže vozi. Moguće je definisati funkciju
prilagodenosti, ali ni ona neće biti data eksplicitno, već će biti izračunavana simuliranjem ponašanja agenta na
(2
nekoj stazi koja uključuje sve pomenute aspekte vožnje (skretanje, ubrzavanje, itd.). Vožnja će biti simulirana
tako što će agent u svakom koraku da se pomera po jedno polje duž staze u pravcu kretanja. Pri tome se u
svakom koraku dekodira hromozom i odreduje se akcija koju agent preduzima. Svako polje koje agent prede
je
sporo boduje se sa 1, a svako polje koje se prede brzo, boduje se sa 2. Vrednost funkcija prilagodenosti je zbir
an
tih bodova. Na taj način će prilikom selekcije biti favorizovani agenti koji brže prelaze stazu. Kako je najvažnije
da agent uopšte završi vožnju, a tek onda da je završi što brže, svaki agent koji završi vožnju dobija dodatne
poene, na primer, onoliko koliko staza ima polja. Na taj način se agenti koji završavaju vožnju favorizuju u
d
Koristi se generacijski genetski algoritam. Selekcija može da bude jednostavna ruletska. Ukrštanje može da
bude sa jednom tačkom prekida, a mutacija može da se realizuje tako što bi na svakoj poziciji svakog hromozoma
sa nekom unapred zadatom malom verovatnoćom trenutna vrednost bila zamenjena nekom slučajno izabranom
o
U eksperimentima je korišćena populacija od 300 jedinki, verovatnoća ukrštanja je bila 0.6, verovatnoća
mutacije po hromozomu 0.001, a maksimalan broj iteracija 1000. Kao i u prošlom primeru, rešavanje je izvršeno
n
10 puta. Prosečan broj bodova najboljeg nadenog agenta je bio 69.3 od mogućih 70, a prosečan broj iteracije
u kojem je takav agent pronaden je bio 6. Očito, ovaj problem je neuporedivo lakši od problema obilaska table
ro
skakačem.
kt
Pitanja i zadaci
le
Pitanje 6.4. Ukoliko je genetskim algoritmom potrebno odrediti minimum pozitivne funkcije 𝑓 na nekom
intervalu, onda je pogodno kao funkciju prilagodenosti koristiti funkciju:
(a) 𝑓 ;
(b) −𝑓
(c) inverznu funkciju of 𝑓 ;
(d) 𝑓 ′
Pitanje 6.5. Ukoliko je genetskim algoritmom potrebno odrediti minimum pozitivne funkcije 𝑓 na nekom
intervalu, koju je funkciju koristiti kao funkciju prilagodenosti?
Pitanje 6.8. Ako je za potrebe primene genetskog algoritma, domen {3, 4, 5, 6, 7, 8, 9, 10} reprezentovan
6)
binarnim hromozomima dužine 3 (u istom poretku), kako će biti reprezentovana jedinka 9?
01
Pitanje 6.10. Navesti dva genetska operatora.
(2
Pitanje 6.11. Koliko genetski operatori ukrštanja i mutacije imaju ulaznih jedinki?
Pitanje 6.12. Šta je uloga selekcije u genetskim algoritmima?
je
Pitanje 6.13. Najpopularnije vrste selekcije u genetskim algoritmima su:
an
(a) Menhetn i ruletska;
(b) Menhetn i turnirska;
d
Pitanje 6.16. Ako je 𝑓 (𝑖) vrednost funkcije kvaliteta (prilagodenosti) za jedinku 𝑖, a 𝑁 broj jedinki u populaciji,
n
verovatnoća da će jedinka 𝑖 ruletskom selekcijom biti izabrana da učestvuje u reprodukciji jednaka je 𝑝𝑖 = 𝑓 𝑥(𝑖) ,
ro
gde je 𝑥 jednako:
(a) 1;
kt
(b) 𝑁 𝑗 𝑓 (𝑗);
∑︀
∏︀𝑁
(d) 𝑗 𝑓 (𝑗);
E
Pitanje 6.17. Ukoliko su vrednosti prilagodenosti jedinka 𝑎, 𝑏 i 𝑐 2, 5, 8 redom, koja je verovatnoća da će u
ruletskoj selekciji biti izabrana jedinka 𝑏?
Pitanje 6.18. Genetskim algoritmom se traži maksimum funkcije 20 − 𝑥2 . Populacija sadrži (samo) jedinke
(1), (-4), (2) i (3). Kolika je, za svaku od jedinki, verovatnoća da će biti izabrana za reprodukciju u ruletskoj
selekciji.
Pitanje 6.19. U genetskim algoritmima, ako u jednoj generaciji postoje (samo) jedinke A, B i C sa vred-
nostima prilagodenosti 1, 2 i 3 (redom), koja je verovatnoća da pri ruletskoj selekciji jedinka B ude u proces
reprodukcije?
Pitanje 6.23. U genetskim algoritmima, dve jedinke-roditelja imaju reprezentacije 0011 i 1010. Da li se u
nekom njihovom potomku (dobijenom ukrštanjem) može javiti:
(1) na prvoj poziciji (zdesna nalevo) vrednost 0 (da/ne);
(2) na prvoj poziciji (zdesna nalevo) vrednost 1 (da/ne);
(3) na drugoj poziciji (zdesna nalevo) vrednost 0 (da/ne);
(4) na drugoj poziciji (zdesna nalevo) vrednost 1 (da/ne);
(5) na trećcoj poziciji (zdesna nalevo) vrednost 0 (da/ne);
(6) na trećoj poziciji (zdesna nalevo) vrednost 1 (da/ne);
(7) na četvrtoj poziciji (zdesna nalevo) vrednost 0 (da/ne);
(8) na četvrtoj poziciji (zdesna nalevo) vrednost 1 (da/ne).
Pitanje 6.24. Opisati uniformno ukrštanje koje se koristi u genetskim algoritmima
Pitanje 6.25. U genetskim algoritmima, kolika je obično verovatnoća da neki bit neke jedinke mutira?
Pitanje 6.26. Da li se od jedinke 1010 mutacijom može dobiti jedinka: (a) 0000; (b) 0011; (c) 1111.
6)
Pitanje 6.27. Ako tokom primene genetskog algoritma ima 𝑁 jedinki, svaka je reprezentovana sa 𝑀 bitova,
a verovatnoća mutacije je 𝑝, koliki je očekivani broj mutiranih gena u jednoj generaciji?
01
Pitanje 6.28. Šta je to elitizam u genetskim algoritmima?
(2
Pitanje 6.29. Navesti bar četiri moguća uslova za zaustavljanje genetskog algoritma.
Zadatak 6.1. Napisati implementacije operatora ukrštanja sa jednom tačkom prekida i mutacije za hromozome
dužine 𝑛 <= 32.
je
Zadatak 6.2. Napisati implemenaciju jednostavne ruletske selekcije.
an
Zadatak 6.3. Napisati C implementacije operatora ukrštanja sa jednom tačkom prekida i mutacije ukoliko se
d
6)
Logika i deduktivno zakljucivanje
01
(2
je
an
d
iz
o
sk
n
ro
kt
le
E
E
le
kt
ro
n
sk
o
iz
d
an
je
(2
01
6)
Glava 7
6)
Matematička logika bavi se rigoroznim, deduktivnim metodama zaključivanja, u nekom konkretnom logičkom
okviru. Logičkih okvira ima mnogo i pojedinačno su pogodni za opisivanje raznovrsnih problema.
Rešavanje problema korišćenjem matematičke logike obuhvata:
01
fazu modelovanja;
(2
fazu rešavanja.
je
U fazi modelovanja, problem se opisuje u terminima nekog konkretnog logičkog okvira, a u fazi rešavanja se
ispituje da li on ima rešenje, korišćenjem metoda odlučivanja specifičnih za taj logički okvir.
an
7.1 Modelovanje
d
iz
Primer 7.1. Šef protokola na jednom dvoru treba da organizuje bal za predstavnike ambasada. Kralj traži da na
o
bal bude pozvan Peru ili da ne bude pozvan Katar (Qatar). Kraljica zahteva da budu pozvani Katar ili Rumunija
sk
(ili i Katar i Rumunija). Princ zahteva da ne bude pozvana Peru ili da ne bude pozvan Rumunija (ili da ne budu
pozvani ni Peru ni Rumunija). Da li je moguće organizovati bal i zadovoljiti zahteve svih članova kraljevske
n
porodice?
Navedeni problem potrebno je najpre formulisati na neki precizan način. Iskaz, tvrdnju “na bal će doći
ro
ambasador Perua“ označićemo sa 𝑝, iskaz “na bal će doći ambasador Katara“ označićemo sa 𝑞 , a iskaz “na bal
će doći ambasador Rumunije“ sa 𝑟. Uslov koji postavlja kralj, onda glasi „važi 𝑞 ili ne važi 𝑞 “ ili kraće zapisano
kt
„ 𝑞 ili ne 𝑞 “ Uslov koji postavlja kraljica glasi „ 𝑞 ili 𝑟“. Uslov koji postavlja princ glasi „ne 𝑝 ili ne 𝑟“.
Sva navedena ograničenja, svi ovi iskazi, zajedno čine novi, komplikovaniji iskaz koji bismo, mogli da
le
Ova složeni iskaz predstavlja precizan zapis problema. Potrebno je proveriti da li polazni iskazi 𝑝, 𝑞 i 𝑟 mogu
da imaju konkretne vrednosti tačno ili netačno takve da složeni iskaz ima vrednost tačno. Da bi se taj problem
rešio potrebno je precizno definisati na koji način se složenim iskazima pridružuje vrednost tačno ili netačno
ukoliko je poznato na koje vrednosti su pridružene polaznim iskazima.
Navedeni primer je jednostavan u smislu da u njemu figurišu samo veoma jednostavni iskazi. Stvari postaju
komplikovanije kada je potrebno modelovati tvrdnje koje važe za sve ili za neke elemente nekog skupa.
Primer 7.2. Mogu biti zadate sledeće tvrdnje: „svaki čovek je smrtan“, „Sokrat je čovek“. Pitanje je da li se iz
ovih pretpostavki može utvrditi da je tačna tvrdnja „Sokrat je smrtan“.
Najpre je potrebno precizno opisati navedeni problem. Tvrdnju da je 𝑥 čovek zapišimo kao „ 𝑥 je čovek“ a
tvrdnju da je 𝑥 smrtan zapišimo kao „ 𝑥 je smrtan“. Tvrdnju „svaki čovek je smrtan“ zapišimo „za svako 𝑥 važi:
ako je (𝑥 je čovek) onda jе (𝑥 je smrtan)“ Zadato tvrdenje onda (pomalo rogobatno u odnosu na svakodnevni
jezik) glasi:
„ako (za svako 𝑥 važi: ako je (𝑥 je čovek) onda (𝑥 je smrtan)) i (Sokrat je čovek) onda je (Sokrat je smrtan)“.
77
7.2. Rešavanje 78
7.2 Rešavanje
Ispitivanje da li, pod nekim uslovima, složeni iskaz iz primera 7.1 može biti tačan, može se sprovesti tako
što bi bile ispitane vrednosti složenog iskaza za sve moguće vrednosti pridružene iskazima 𝑝, 𝑞 i 𝑟. Tih iskaza
ima tri, za svaki postoje dve mogućnosti, pa ukupno ima 23 mogućnosti koje treba ispitati. Pored ovog naivnog
pristupa, postoje i drugi koji efikasnije vrše ovu proveru.
Ispitivanje da li je tvrdenje iz primera 7.2 tačno, može se sprovesti na sledeći način: pošto za svako 𝑥 važi
„ako je (𝑥 je čovek) onda jе (𝑥 je smrtan)“, važi i kada je 𝑥 jednako Sokrat, tj. važi „ako je (Sokrat je čovek)
onda jе (Sokrat je smrtan)“. Odatle i iz „Sokrat je čovek“ sledi „Sokrat je smrtan“, pa važi dato tvrdenje.
Oba navedena procesa zaključivanja opisani su neformalno i grubo, ali služe kao motivacija za stroga pravila
zaključivanja u iskaznoj logici i logici prvog reda koja će biti opisana u narednim poglavljima.
6)
01
(2
je
an
d
iz
o
sk
n
ro
kt
le
E
Glava 8
Iskazna logika
6)
U iskaznoj logici razmatraju se iskazi ili tvrdnje. Iskazne promenljive odgovaraju jednostavnim iskazima. Is-
kazi mogu biti kombinovani u složenije iskaze logičkim veznicima. Iskazna logika je dovoljno izražajna za opisiva-
nje raznovrsnih problema, uključujući mnoge praktične probleme, kao što su, na primer, problemi rasporedivanja
01
ili dizajniranja kombinatornih kola.
Iskazna logika ima tri aspekta: sintaksu (koja opisuje njen jezik), semantiku (koja definiše istinitosnu vred-
(2
nost iskaza) i deduktivne sisteme (u okviru kojih se mogu dokazivati teoreme). I semantika i deduktivni sistemi
grade se nad istim skupom formula. U ovoj glavi neće biti prikazani deduktivni sistemi za iskaznu logiku, ali
će u narednoj biti prikazani opštiji deduktivni sistemi, za logiku prvog reda. Centralni problemi u iskaznoj
je
logici su ispitivanje da li je data iskazna formula valjana (tautologija) tj. da li je tačna bez obzira na tačnost
elementarnih iskaza od kojih je sačinjena, kao i ispitivanje da li je data iskazna formula zadovoljiva, tj. da li je
an
tačna za neke istinitosne vrednosti elementarnih iskaza od kojih je sačinjena. Problem ispitivanja zadovoljivosti
formule u knf obliku poznat je kao problem sat i on je tipičan predstavnik skupa np-kompletnih problema.
Postoji više pristupa i metoda za ispitivanje valjanosti i zadovoljivosti.
d
U algoritmima za logičko zaključivanje često je neki korak zaključivanja moguće sprovesti na različite načine,
iz
ali nije precizirano na koji način treba da se sprovede. Naime, bez obzira na načinjeni izbor, izvedeni zaključci
su uvek ispravni, ali neki putevi do istog zaključka mogu da budu znatno kraći od drugih i tada je proces
o
automatskog rasudivanja znatno efikasniji. Ovo pokazuje da je i u logičkom rasudivanju jedan od centralnih
problema problem usmeravanja pretrage.
sk
Kao što je rečeno, sredstvima iskazne logike mogu se opisati mnogi praktični problemi, posebno problemi
nad konačnim domenima. Naime, svaki objekat koji može imati konačan broj stanja može se opisati konačnim
n
brojem iskaznih promenljivih: ako je broj mogućih stanja 2𝑛 , onda je dovoljno koristiti 𝑛 iskaznih promenlji-
ro
vih. Svi brojevi reprezentovani u računaru su reprezentovani bitovima, pa se i oni mogu modelovati iskaznim
promenljivim: koliko bitova, toliko iskaznih promenljivih. Sabiranje celih brojeva (kao i mnoge druge operacije)
kt
onda može da se opiše u terminima iskazne logike. Slično važi i za mnoge druge vrste podataka i mnoge vrste
problema. Sa tako velikom izražajnom snagom i velikim brojem raznolikih primena, iskazna logika i rešavači
za iskaznu logiku često se smatraju „švajcarskim nožićem“ savremenog računarstva, a posebno – veštačke inte-
le
ligencije.
E
Primer 8.1. Razmotrimo, za ilustraciju rešavanja primenom logike, problem „ 𝑛 dama” opisan u poglavlju 8.7.2.
Na slici 8.1, prikazano je kretanje dame i jedno rešenje problema za 𝑛 = 8.
Jednostavnosti radi, u nastavku ćemo razmatrati problem dimenzije 3, za koji je jedno rasporedivanje tri dame
(koje ne čini rešenje) prikazano na slici 8.1 (desno). Uslovi koje ispravno rasporedivanje treba da zadovolji su:
ako je neka dama na polju 𝑎1, onda na polju 𝑎2 ne može da bude dama.
ako je neka dama na polju 𝑎1, onda na polju 𝑎3 ne može da bude dama.
ako je neka dama na polju 𝑎2, onda na polju 𝑎1 ne može da bude dama.
ako je neka dama na polju 𝑎2, onda na polju 𝑎3 ne može da bude dama.
79
80
8
0Z0Z0Z0Z 8
0ZQZ0Z0Z
7
Z0Z0Z0Z0 7
Z0Z0ZQZ0
6
0Z0Z0Z0Z 6
0Z0L0Z0Z
5
Z0Z0Z0Z0 5
ZQZ0Z0Z0
4
0Z0L0Z0Z 4
0Z0Z0Z0L
3
Z0Z0Z0Z0 3
Z0Z0L0Z0 3
ZQZ
2
0Z0Z0Z0Z 2
0Z0Z0ZQZ 2
QZ0
1
Z0Z0Z0Z0 1
L0Z0Z0Z0 1
Z0L
a b c d e f g h a b c d e f g h a b c
Slika 8.1: Kretanje dame na tabli 8 × 8 (gore levo), jedno rešenje za problem osam dama (gore desno), jedno
rasporedivanje za problem tri dame koji nije rešenje (dole)
6)
01
ako je neka dama na polju 𝑎3, onda na polju 𝑎1 ne može da bude dama.
ako je neka dama na polju 𝑎3, onda na polju 𝑎2 ne može da bude dama.
(2
...
je
ako je neka dama na polju 𝑎2, onda na polju 𝑏3 ne može da bude dama.
an
ako je neka dama na polju 𝑏3, onda na polju 𝑎2 ne može da bude dama.
ako je neka dama na polju 𝑏1, onda na polju 𝑐2 ne može da bude dama.
d
iz
ako je neka dama na polju 𝑐2, onda na polju 𝑏1 ne može da bude dama.
Navedeni uslovi zavise od iskaza oblika „na polju ?? nalazi se dama“. Označimo sa 𝑝𝑎1 iskaz „na polju 𝑎1
o
nalazi se dama“, sa 𝑝𝑎2 iskaz „na polju 𝑎2 nalazi se dama“, . . ., sa 𝑝𝑐3 iskaz „na polju 𝑐3 nalazi se dama“. Onda
sk
...
Ovim su, od jednostavnih iskaza, konstruisani složeniji. Skup svih navedenih složenih uslova čini još složeniji
iskaz – iskaz koji sadrži sve uslove zadatka. Sintaksa iskazne logike govori o pravilima po kojim se od elemen-
tarnih iskaza mogu konstruisati složeniji, to jest, o pravilima za konstruisanje ispravnih iskaznih formula.
Svaki od jednostavnih iskaza kao što je 𝑝𝑎1 može biti tačan ili netačan. U zavisnosti od toga, može se odrediti
istinitosna vrednost složenijih iskaza. Na primer, ako je 𝑝𝑎1 tačno, a 𝑝𝑎2 netačno, onda je tačno i „ako je 𝑝𝑎1 ,
onda nije 𝑝𝑎2 “. Semantika iskazne logike govori o tome kako se složenim iskazima (to jest, iskaznim formulama)
odreduje istinitosna vrednost na osnovu istinitosne vrednosti elementatnih iskaza. Pošto je, u okviru rešavanja
problema, vrednost iskaza kao što je 𝑝𝑎1 nepoznata i pošto on može biti tačan ili netačan, 𝑝𝑎1 ćemo zvati i
iskazna promenljiva.
Sâmo rešavanje početnog problema, može se svesti na rešavanje sledećeg problema: odrediti istinitosne vred-
nosti elementarnih iskaza 𝑝𝑎1 , 𝑝𝑎2 , . . ., 𝑝𝑐3 takve da svi navedni uslovi budu ispunjeni (to jest, da odgovarajući
iskazi imaju istinitosnu vrednost tačno). Može se razmatrati i pitanje da li takve istinitosne vrednosti uopšte
postoje, to jest da li početni problem uopšte ima rešenja. Pitanje da li uopšte postoji rešenje može se rešiti raz-
matranjem svih mogućih varijacija vrednosti za 𝑝𝑎1 , 𝑝𝑎2 , . . ., 𝑝𝑐3 . Takvih varijacija ima 29 = 512 i razmatranje
svih je naporno i nepraktično. Postoje i metode koje ne razmatraju sve mogućnosti i postojanje rešenja mogu
obično da ispitaju znatno efikasnije.
6)
U kontekstu navedenih ograničenja, mogu se izvesti i neki zaključci. Na primer, ako je 𝑝𝑎1 onda važi 𝑝𝑏2 ili
𝑝𝑏3 . Ovakvi zaključci mogu se izvesti koristeći različite pristupe, a mogu se koristiti za ubrzavanje traganja za
01
rešenjem.
(2
8.1 Sintaksa iskazne logike
Sintaksički aspekt iskazne logike govori o njenom jeziku — o skupu njenih (ispravno formiranih) formula i ne
je
razmatra njihova (moguća) istinitosna vrednost. Skup iskaznih formula obično se definiše za fiksiran, prebrojiv
skup iskaznih promenljivih 𝑃 , dve logičke konstante — tačno i netačno, kao i konačan skup osnovnih logičkih
an
(tj. bulovskih) veznika: unarnog — negacija i binarnih — konjunkcija, disjunkcija, implikacija, ekvivalencija.
Skup iskaznih formula definiše se induktivno na sledeći način.
d
ako su 𝐴 i 𝐵 iskazne formule, onda su iskazne formule i objekti dobijeni kombinovanjem ovih formula
sk
logičkim veznicima.
U navedenoj definiciji (u duhu apstraktne sintakse) ne govori se o tome kako se zapisuju ili čitaju iskazne
n
formule, već samo o tome kako se grade na apstraktni način (implicitno — u vidu stabla). Konkretnom sintaksom
ro
može se zadati način na koji se logički veznici i iskazne formule zapisuju. Uobičajeno je da se logičke konstante
tačno i netačno zapisuju kao ⊤ i ⊥ (a čitaju kao te i nete), da se negacija zapisuje kao ¬, konjunkcija kao
kt
∧, disjunkcija kao ∨, implikacija kao ⇒ i ekvivalencija kao ⇔. U takvom konkretnom zapisu — zapisu u
vidu konkretnih nizova simbola, ako su 𝐴 i 𝐵 iskazne formule, onda su iskazne formule i (¬𝐴), (𝐴 ∧ 𝐵),
le
zagrada, obično se izostavljaju spoljne zagrade i podrazumeva se sledeći prioritet veznika (od višeg ka nižem):
¬ , ∧ , ∨ , ⇒ , ⇔.
Elementi skupa 𝑃 obično se označavaju malim latiničnim slovima (eventualno sa indeksima). Iskazne formule
obično se označavaju velikim latiničnim slovima (eventualno sa indeksima). Skupovi iskaznih formula obično se
označavaju velikim slovima grčkog alfabeta (eventualno sa indeksima).
Primer 8.2. Uslovi iz primera 8.1 mogli bi da se zapišu kao iskazne formule nad skupom iskaznih promenljivih
{𝑝𝑎1 , 𝑝𝑎2 , . . . 𝑝𝑎3 }
𝑝𝑎1 ⇒ ¬𝑝𝑎2 .
𝑝𝑎1 ⇒ ¬𝑝𝑎3 .
8.2. Semantika iskazne logike 82
𝑝𝑎2 ⇒ ¬𝑝𝑎1 .
...
𝑝𝑐2 ⇒ ¬𝑝𝑏1 .
Iskazne promenljive zovemo i iskazne varijable ili iskazna slova. Elemente skupova 𝑃 i {⊤, ⊥} zovemo
atomičkim iskaznim formulama. Literal je iskazna formula koja je ili atomička iskazna formula ili negacija
atomičke iskazne formule.
Ako su dve iskazne formule 𝐴 i 𝐵 sintaksički identične (tj. ako su jednake kao nizovi simbola), onda to
zapisujemo 𝐴 = 𝐵 , a inače – pišemo 𝐴 ̸= 𝐵 .
Definicija 8.2 (Skup potformula). Skup potformula formule 𝐴 je najmanji skup formula koje zadovoljavaju
sledeće uslove:
svaka iskazna formula 𝐴 je potformula sâma sebi;
6)
ako je 𝐴 jednako ¬𝐵 , onda je svaka potformula formule 𝐵 istovremeno i potformula formule 𝐴. Ako
je 𝐴 jednako 𝐵 ∧𝐶 , 𝐵 ∨𝐶 , 𝐵 ⇒ 𝐶 ili 𝐵 ⇔ 𝐶 , onda je svaka potformula formule 𝐵 i svaka potformula
01
formule 𝐶 istovremeno i potformula formule 𝐴.
(2
Primer 8.3. Skup potformula formule (𝑝 ⇒ 𝑞) ∨ 𝑟 je {𝑝, 𝑞, 𝑟, 𝑝 ⇒ 𝑞, (𝑝 ⇒ 𝑞) ∨ 𝑟}.
Na različite načine se može definisati preslikavanje koje svakoj formuli dodeljuje složenost, na primer, dubinu
stabla koje joj odgovara.
je
an
Definicija 8.3 (Zamena). Rezultat zamene (supstitucije) svih pojavljivanja iskazne formule 𝐶 u iskaznoj
formuli 𝐴 iskaznom formulom 𝐷 označavamo sa 𝐴[𝐶 ↦→ 𝐷]. Ta zamena definiše se na sledeći način:
d
ako za iskazne formule 𝐴 i 𝐶 važi 𝐴 ̸= 𝐶 i 𝐴 je atomička iskazna formula, onda je 𝐴[𝐶 ↦→ 𝐷] jednako
𝐴;
o
Pitanja i zadaci
le
Pitanje 8.1. Da li nad konačnim skupom iskaznih promenljivih ima konačno ili prebrojivo ili neprebrojivo
mnogo (sintaksički) različitih iskaznih formula?
E
Pitanje 8.2. Da li nad prebrojivim skupom iskaznih promenljivih ima konačno ili prebrojivo ili neprebrojivo
mnogo (sintaksički) različitih iskaznih formula?
Pitanje 8.3. Šta je literal u iskaznoj logici?
Pitanje 8.4. Ako za iskazne formule 𝐴 i 𝐶 važi 𝐴 = 𝐶 , čemu je jednako 𝐴[𝐶 ↦→ 𝐷]?
Pitanje 8.5. Ako za iskazne formule 𝐴 i 𝐶 važi 𝐴 ̸= 𝐶 i 𝐴 je atomička formula, čemu je jednako 𝐴[𝐶 ↦→ 𝐷]?
Pitanje 8.6. Čemu je jednako (𝑝 ∧ (¬𝑞 ∨ 𝑟))[¬𝑞 ∨ 𝑟 ↦→ 𝑞 ⇒ 𝑟]?
Zadatak 8.1. Ako 𝐶 nije potformula iskazne formule 𝐴, onda je 𝐴[𝐶 ↦→ 𝐷] = 𝐴.
semantike Tarskog je da istinitosne vrednosti formula iskazne logike definiše u skladu sa uobičajenim, svakod-
nevnim rasudivanjem. Na primer, iskaz 𝐴 i 𝐵 je tačan ako su tačni i iskaz 𝐴 i iskaz 𝐵 . Zbog toga, definicija
Tarskog može da deluje čak i suvišno. Ipak, ona je naravno potrebna jer je potrebno na strogi način definisati
istinitosnu vrednost iskaznih formula.
Istinitosna vrednost iskazne formule može biti 0 ili 1 (što odgovara konstantim iskazima tačno i netačno).
Istinitosna vrednost složenih (neatomičkih) formula zavisi samo od istinitosne vrednosti njenih potformula.
Dakle, u krajnjoj instanci, istinitosna vrednost formule zavisi (samo) od istinitosnih vrednosti iskaznih pro-
menljivih koje se u njoj pojavljuju. Da bi se odredila istinitosna vrednost formule nad skupom promenljivih
𝑃 , potrebno je (i dovoljno) da su unapred odredene istinitosne vrednosti elemenata skupa 𝑃 . Funkcije koje
pridružuju istinitosnu vrednost promenljivim (tj. funkcije 𝑣 iz 𝑃 u {0, 1}) zovemo valuacijama. Funkciju koja
na osnovu jedne valuacije pridružuje istinitosne vrednosti složenim formulama zovemo interpretacija.
Svaka valuacija 𝑣 odreduje jednu funkciju 𝐼𝑣 koju zovemo interpretacijom za valuaciju 𝑣 i koja pridružuje
istinitosne vrednosti složenim formulama (tj. preslikava skup iskaznih formula u skup {0, 1}). Interpretaciju 𝐼𝑣
(za valuaciju 𝑣 ) definišemo na sledeći način:
𝐼𝑣 (𝑝) = 𝑣(𝑝), za svaki element 𝑝 skupa 𝑃 ;
6)
𝐼𝑣 (⊤) = 1 i 𝐼𝑣 (⊥) = 0;
01
1, ako je 𝐼𝑣 (𝐴) = 0
{︂
𝐼𝑣 (¬𝐴) =
0, inače
(2
1, ako je 𝐼𝑣 (𝐴) = 1 i 𝐼𝑣 (𝐵) = 1
{︂
𝐼𝑣 (𝐴 ∧ 𝐵) =
0, inače
𝐼𝑣 (𝐴 ∨ 𝐵) =
{︂
0, ako je 𝐼𝑣 (𝐴) = 0 i 𝐼𝑣 (𝐵) = 0
1, inače
je
an
0, ako je 𝐼𝑣 (𝐴) = 1 i 𝐼𝑣 (𝐵) = 0
{︂
𝐼𝑣 (𝐴 ⇒ 𝐵) =
1, inače
d
{︂
𝐼𝑣 (𝐴 ⇔ 𝐵) =
0, inače
Funkcijom 𝐼𝑣 , definisanom na navedeni način, svakoj formuli pridružuje se (jedinstvena) istinitosna vrednost.
o
Vrednost 𝐼𝑣 (𝐴) zovemo istinitosnom vrednošću iskazne formule 𝐴 u interpretaciji 𝐼𝑣 . Ako za valuaciju 𝑣 važi
sk
𝐼𝑣 (𝐴) = 1, onda se kaže da je iskazna formula 𝐴 tačna u interpretaciji 𝐼𝑣 i da je iskazna formula 𝐴 tačna u
valuaciji 𝑣 . Ako za valuaciju 𝑣 važi 𝐼𝑣 (𝐴) = 0, onda se kaže da je iskazna formula 𝐴 netačna u interpretaciji 𝐼𝑣 .
n
Naglasimo da 𝐼𝑣 (𝐴) = 0 nije formula iskazne logike, nego je to formula koja govori o iskaznoj formuli, pa je
ro
¬𝑝𝑎2 ) = 0. Ovo, drugim rečima, govori da ni u jednom rešenju ne mogu dame da budu i na polju 𝑎1 i na polju
𝑎2.
le
E
Formula 𝐴 je valjana ili tautologijaa ako je tačna u svakoj valuaciji, tj. ako za svaku valuaciju 𝑣 važi
𝑣 |= 𝐴 i to zapisujemo |= 𝐴.
Iskazna formula je nezadovoljiva ili kontradikcija ako ne postoji valuacija u kojoj je tačna.
Formula je poreciva ako postoji valuacija u kojoj nije tačna.
a Reč tautologija grčkog je porekla i sačinjena je od reči tauto (grčki isto) i logos (grčki reč, reći). U bukvalnom prevodu,
„tautologija“ znači „reći isto“. U lingivstičkom smislu, kao i u svakodnevnom jeziku, označava ponavljanje istog, reći istu
stvar drugim rečima, redudantnost (slično, ali ne isto što i pleonazam — pleonazam označava korišćenje suvišnih reči prilikom
ukazivanja na neki pojam). Opisani pojam tautologije razlikuje se od pojma tautologije u logici. U savremenim evropskim
jezicima reč tautologija prvi put se javlja u šesnaestom veku.
Definicija 8.5 (Zadovoljivost i kontradiktornost skupa formula). Skup iskaznih formula Γ je zadovoljiv
ako postoji valuacija u kojoj je svaka formula iz Γ tačna. Za valuaciju 𝑣 u kojoj su sve formule iz Γ tačne,
kaže se da je model za Γ. Skup iskaznih formula Γ je nezadovoljiv ili kontradiktoran ako ne postoji valuacija
u kojoj je svaka formula iz Γ tačna.
Primer 8.6. Skup iskaznih formula {𝑝 ⇒ 𝑞, 𝑝, ¬𝑞} je kontradiktoran (ali nijedan njegov pravi podskup nije
kontradiktoran).
Primer 8.7. U primeru 8.1, uslov koji rešenje mora da zadovolji može da se razmatra ne samo kao konjunkcija
svih pojedinačnih uslova, već i kao skup formula koje odgovaraju pojedinačnim uslovima. Na osnovu svojstava
semantike Tarskog, svaka valuacija koja je model takve konjunkcije je i model skupa formula koje odgovaraju
pojedinačnim uslovima i obratno.
Primer 8.8. Ako su iskazne formule 𝐴 i 𝐴 ⇒ 𝐵 tautologije, onda je i 𝐵 tautologija. Zaista, pretpostavimo da
su 𝐴 i 𝐴 ⇒ 𝐵 tautologije i da postoji valuacija 𝑣 u kojoj formula 𝐵 nije tačna. Formula 𝐴 je tautologija, pa je
6)
tačna i u valuaciji 𝑣 . Kako je u toj valuaciji, formula 𝐴 tačna, a formula 𝐵 netačna, formula 𝐴 ⇒ 𝐵 u njoj
nije tačna, što protivreči pretpostavci da je 𝐴 ⇒ 𝐵 tautologija. Dakle, formula 𝐵 je tačna u svakoj valuaciji,
pa je ona tautologija.
01
Pitanja i zadaci
(2
Pitanje 8.7. Navesti primer iskazne formule koja je:
zadovoljiva;
valjana;
je
an
poreciva;
d
kontradikcija;
iz
zadovoljiva i valjana;
o
zadovoljiva i poreciva;
n
Pitanje 8.13. Ako iskazna formula nije zadovoljiva, kakva je onda ona?
Pitanje 8.14. Ako iskazna formula nije kontradikcija, kakva je onda ona?
Pitanje 8.15. Ako je formula ¬𝐹 zadovoljiva, kakva je onda formula 𝐹 ?
Pitanje 8.16. Ako su iskazne formule 𝐴 i 𝐴 ⇒ 𝐵 tautologije, da li je onda formula 𝐵 tautologija, zadovoljiva,
poreciva ili kontradikcija?
Pitanje 8.17. Ako su iskazne formule 𝐴 i 𝐴 ⇒ 𝐵 zadovoljive, onda formula 𝐵 nije nužno zadovoljiva.
Napraviti jedan takav primer (u kojem 𝐵 nije zadovoljiva, a 𝐴 i 𝐴 ⇒ 𝐵 jesu).
Pitanje 8.18. Kada je iskazna formula 𝐴 ⇒ 𝐵 tačna u valuaciji 𝑣 ?
Pitanje 8.19. Kada je 𝐼𝑣 (𝐴 ⇒ 𝐵) = 0?
Pitanje 8.20. U iskaznoj logici, za neku valuaciju 𝑣 , čemu je jednaka vrednost 𝐼𝑣 (𝐴 ⇔ 𝐵)?
6)
Pitanje 8.21. Kako se definiše interpretacija u iskaznoj logici?
√
Zadatak 8.2. Neka su 𝐴, 𝐵 , 𝐶 , 𝐷 iskazne formule takve da su formule 𝐴 ⇒ (𝐵 ⇒ 𝐶) i (𝐴 ∧ 𝐶) ⇒ ¬𝐷
01
tautologije. Dokazati da je i formula (𝐷 ∧ 𝐴) ⇒ ¬𝐵 tautologija.
(2
Zadatak 8.3. Dokazati sledeća tvrdenja:
(a) Ako su formule 𝐴 ∨ 𝐵 i ¬𝐴 ∨ 𝐶 tautologije, onda je i 𝐵 ∨ 𝐶 tautologija.
(b) Ako su formule 𝐴 ∨ 𝐵 , 𝐴 ⇒ 𝐶 , 𝐵 ⇒ 𝐷 tautologije, onda je i 𝐶 ∨ 𝐷 tautologija.
je
(c) Ako su formule ¬𝐴 ∨ 𝐵 i ¬𝐶 ∨ ¬𝐵 tautologije, onda je i 𝐴 ⇒ ¬𝐶 tautologija.
Zadatak 8.4. Dokazati sledeća tvrdenja:
an
(a) Ako je iskazna formula valjana, onda je ona zadovoljiva.
(b) Ako je iskazna formula kontradikcija, onda je ona poreciva.
d
(c) Ako iskazna formula nije zadovoljiva, onda je ona kontradikcija i obratno.
(d) Ako iskazna formula nije tautologija, onda je ona poreciva i obratno.
iz
√
Zadatak 8.6. (Teorema o interpolaciji) Neka su 𝐴 i 𝐵 iskazne formule takve da 𝐴 nije kontradikcija i 𝐵
n
(b) Dokazati da postoji iskazna formula 𝐶 takva da 𝐶 ima samo iskazna slova koja su zajednička za 𝐴 i 𝐵
i za koju važi da su 𝐴 ⇒ 𝐶 i 𝐶 ⇒ 𝐵 tautologije.
kt
Zadatak 8.8. Dokazati sledeća tvrdenja (Γ i Δ su skupovi iskaznih formula, 𝐴 je iskazna formula):
E
𝐴 ¬𝐴
0 1
1 0
8.3. Istinitosne tablice i odlučivost problema zadovoljivosti 86
Na osnovu navedenih tablica (tj. na osnovu pravila za odredivanje vrednosti formule), može se kontruisati
istinitosna tablica za proizvoljnu iskaznu formulu. U istinitosnoj tablici za neku formulu svakoj vrsti odgovara
jedna valuacija iskaznih slova koja se pojavljuju u toj formuli. Svakoj koloni odgovara jedna potformula te
formule. Istinitosne tablice su pogodne i za ispitivanje valjanosti, zadovoljivosti, nezadovoljivosti i porecivosti.
Ukoliko iskazna formula 𝐴 sadrži iskazne promenljive 𝑝1 , 𝑝2 , . . ., 𝑝𝑛 , istinitosna tablica treba da sadrži sve
moguće valuacije za ovaj skup promenljivih (valuacije za druge promenljive nisu relevantne). Takvih valuacija
ima 2𝑛 . U zavisnosti od vrednosti iskaznih promenljivih, izračunavaju se vrednosti složenijih iskaznih formula,
sve do sâme iskazne formule koja se ispituje. Ako su u koloni koja odgovara sâmoj iskaznoj formuli sve vrednosti
jednake 1, formula je tautologija. Ako je bar jedna vrednost jednaka 1, formula je zadovoljiva. Ako je bar jedna
vrednost jednaka 0, formula je poreciva. Ako su sve vrednosti jednake 0, formula je kontradikcija. Ovo pokazuje
6)
da su problemi ispitivanja valjanosti, zadovoljivosti, nezadovoljivosti i porecivosti odlučivi problemi, tj. postoje
algoritmi koji ih mogu rešiti.
01
Primer 8.9. Iskaznoj formuli (¬𝑞 ⇒ ¬𝑝) ⇒ (𝑝 ⇒ 𝑞) odgovara sledeća istinitosna tablica:
(2
𝑝 𝑞 ¬𝑞 ¬𝑝 ¬𝑞 ⇒ ¬𝑝 𝑝⇒𝑞 (¬𝑞 ⇒ ¬𝑝) ⇒ (𝑝 ⇒ 𝑞)
0 0 1 1 1 1 1
0 1 0 1 1 1 1
1
1
0
1
1
0
0
0
0
1
0
1
je 1
1
an
Dakle, data formula je zadovoljiva i valjana. Ona nije poreciva i nije kontradikcija.
d
Primer 8.10. Istinitosna tablica može biti zapisana u skraćenom obliku — zapisivanjem samo zadate iskazne
iz
formule i odgovarajućih vrednosti ispod pojedinačnih iskaznih slova i veznika. Iskaznoj formuli iz prethodnog
primera odgovara sledeća skraćena istinitosna tablica (popunjena u nekoliko koraka):
o
(¬ 𝑞 ⇒ ¬ 𝑝) ⇒ (𝑝 ⇒ 𝑞)
sk
0 0 0 0
1 0 0 1
n
0 1 1 0
ro
1 1 1 1
kt
(¬ 𝑞 ⇒ ¬ 𝑝) ⇒ (𝑝 ⇒ 𝑞)
1 0 1 0 0 1 0
0 1 1 0 0 1 1
le
1 0 0 1 1 0 0
0 1 0 1 1 1 1
E
(¬ 𝑞 ⇒ ¬ 𝑝) ⇒ (𝑝 ⇒ 𝑞)
1 0 1 1 0 0 1 0
0 1 1 1 0 0 1 1
1 0 0 0 1 1 0 0
0 1 1 0 1 1 1 1
(¬ 𝑞 ⇒ ¬ 𝑝) ⇒ (𝑝 ⇒ 𝑞)
1 0 1 1 0 1 0 1 0
0 1 1 1 0 1 0 1 1
1 0 0 0 1 1 1 0 0
0 1 1 0 1 1 1 1 1
Primer 8.11. U primeru 8.1, za tablu dimenzije 3 × 3, razmatra se skup formula nad 9 iskaznih promenljivih,
te bi odgovarajuća istinitosna tablica imala 29 = 512 vrsta.
87 8. Iskazna logika
Pitanja i zadaci
Pitanje 8.22. Da li je u iskaznoj logici odlučiv problem proveravanja
zadovoljivosti?
valjanosti?
porecivosti?
kontradiktornosti?
Zadatak 8.9. Ispitati metodom istinitosnih tablica da li je iskazna formula ¬((𝑞 ⇒ 𝑝) ⇒ 𝑝) ⇒ ¬𝑝 zadovoljiva.
Zadatak 8.10. Ispitati metodom tablica da li je iskazna formula (𝑝 ⇒ (𝑞 ⇒ 𝑟)) ⇒ ((𝑝 ⇒ 𝑞) ⇒ (𝑝 ⇒ 𝑟))
tautologija.
√
Zadatak 8.11. Neka su 𝐴, 𝐵 , 𝐶 , 𝐷 iskazne formule takve da su formule 𝐴 ⇒ (𝐵 ⇒ 𝐶) i (𝐴 ∧ 𝐶) ⇒ ¬𝐷
6)
tautologije. Dokazati, korišćenjem istinitosnih tablica, da je i formula (𝐷 ∧ 𝐴) ⇒ ¬𝐵 tautologija.
√
01
Zadatak 8.12. Odrediti formulu 𝐴 takvu da je formula ((𝐴 ∧ 𝑞) ⇒ ¬𝑝) ⇒ ((𝑝 ⇒ ¬𝑞) ⇒ 𝐴) tautologija.
Zadatak 8.13. Odrediti, korišćenjem istinitosnih tablica, (ako postoji) formulu 𝐴 takvu da je formula ((𝑝 ⇒
(2
(¬𝑞 ∧ 𝑟)) ⇒ 𝐴) ⇒ (𝐴 ∧ ((𝑟 ⇒ 𝑞) ∧ 𝑝)) tautologija.
Zadatak 8.14. Odrediti (ako postoji) formulu 𝐴 takvu da je formula ((𝑝 ⇒ (¬𝑞∧𝑟)) ⇒ 𝐴) ⇒ (𝐴∧((𝑟 ⇒ 𝑞)∧𝑝))
tautologija.
je
an
8.4 Logičke posledice i logički ekvivalentne formule
d
Često je veoma važno pitanje da li je neki iskaz posledica nekih drugih iskaza. Ovo pitanje se može opisati
iz
Definicija 8.6 (Logička posledica). Kaže se da je iskazna formula 𝐴 logička posledica skupa iskaznih
o
Kada je skup Γ konačan, tada {𝐴1 , ..., 𝐴𝑛 } |= 𝐵 (tj. Γ |= 𝐵 ) pišemo kraće 𝐴1 , ..., 𝐴𝑛 |= 𝐵 . Ako je formula
𝐴 logička posledica praznog skupa formula (tj. ako je svaki model model za 𝐴), onda to zapisujemo |= 𝐴. Ako
n
Teorema 8.1.
kt
(a) Formula je valjana ako i samo ako je logička posledica praznog skupa formula.
le
(b) Ako je skup Γ kontradiktoran, onda je svaka formula njegova logička posledica. Specijalno, svaka
formula je logička posledica skupa {⊥}.
E
Dokaz:
(a) Ako je formula valjana, onda je ona tačna u svakoj valuaciji pa i u svakom modelu praznog skupa
formula, te je ona logička posledica praznog skupa formula. Svaka valuacija je model za prazan skup
formula, pa ako je formula logička posledica praznog skupa formula, onda je ona tačna u svakoj
valuaciji, te je valjana.
(b) Ako je skup Γ kontradiktoran, onda on nema nijedan model. Važi da je svaki model iz tog (praznog!)
skupa modela model za proizvoljnu formulu, pa je proizvoljna formula logička posledica skupa Γ.
(c) Pretpostavimo da važi Γ ⊂ Δ i Γ |= 𝐴. Iz Γ |= 𝐴 sledi da je proizvoljan model za Γ model i za 𝐴.
Kako je Γ ⊂ Δ, proizvoljan model za Δ je model za Γ, pa i za 𝐴. Dakle, važi Δ |= 𝐴.
8.4. Logičke posledice i logički ekvivalentne formule 88
Definicija 8.7 (Logička ekvivalencija). Kaže se da su dve iskazne formule 𝐴 i 𝐵 logički ekvivalentne i
pišemo 𝐴 ≡ 𝐵 ako je svaki model formule 𝐴 model i za 𝐵 i obratno (tj. ako važi 𝐴 |= 𝐵 i 𝐵 |= 𝐴).
Ako je svaki model za 𝐴 istovremeno i model za 𝐵 i obratno, onda u bilo kojoj valuaciji formule 𝐴 i 𝐵
imaju jednake vrednosti. Tvrdenja oblika 𝐴 ≡ 𝐵 zovemo logičkim ekvivalencijama. Relacija ≡ je, očigledno,
relacija ekvivalencije nad skupom iskaznih formula. Naredna teorema govori o tome kako problem ispitivanja
da li su neke dve formule logički ekvivalentne može da se svede na problem ispitivanja da li je neka formula
tautologija. Tvrdenje oblika 𝐴 ≡ 𝐵 nije iskazna formula već meta formula (formula o formulama iskazne logike),
6)
a 𝐴 ⇔ 𝐵 jeste, te naredna teorema povezuje meta nivo iskazne logike sa objektnim nivoom (koji čine sâme
iskazne formule).
01
Teorema 8.2. Važi 𝐴 ≡ 𝐵 ako i samo ako je iskazna formula 𝐴 ⇔ 𝐵 tautologija.
(2
je
Dokaz: Pretpostavimo da važi 𝐴 ≡ 𝐵 . U proizvoljnoj valuaciji 𝑣 formule 𝐴 i 𝐵 imaju istu vrednost, pa je
formula 𝐴 ⇔ 𝐵 tačna u 𝑣 . Odatle sledi da je 𝐴 ⇔ 𝐵 tautologija. Pretpostavimo da je 𝐴 ⇔ 𝐵 tautologija.
an
Ako je u proizvoljnoj valuaciji 𝑣 formula 𝐴 tačna, onda mora da je i 𝐵 tačna u 𝑣 (jer je formula 𝐴 ⇔ 𝐵
tačna u 𝑣 ). Dakle, svaki model za 𝐴 je model i za 𝐵 . Analogno važi obratno — svaki model za 𝐵 je model
i za 𝐴, te sledi 𝐴 ≡ 𝐵 , što je i trebalo dokazati.
d
iz
o
Primer 8.12. Za formule 𝑝𝑎1 ⇒ ¬𝑝𝑎3 i 𝑝𝑎3 ⇒ ¬𝑝𝑎1 iz primera 8.1, može se pokazati da važi: 𝑝𝑎1 ⇒ ¬𝑝𝑎3 ≡
sk
𝑝𝑎3 ⇒ ¬𝑝𝑎1 . To govori da nije potrebno da u skupu uslova postoje obe formule, dovoljno je zadržati jednu od
njih. Isto važi i za druge analogne parove formula, te je dovoljno razmatrati sledeći skup formula:
n
ro
Primer 8.13. Neke od logičkih ekvivalencija (ili, preciznije, neke od shema logičkih ekvivalencija) su:
¬¬𝐴 ≡ 𝐴 zakon dvojne negacije
𝐴 ∨ ¬𝐴 ≡ ⊤ zakon isključenja trećeg
𝐴∧𝐴 ≡ 𝐴 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 ∨
6)
𝐴 ∨ (𝐵 ∧ 𝐶) ≡ (𝐴 ∨ 𝐵) ∧ (𝐴 ∨ 𝐶) zakon distributivnosti ∨ u odnosu na ∧
(𝐵 ∧ 𝐶) ∨ 𝐴 ≡ (𝐵 ∨ 𝐴) ∧ (𝐶 ∨ 𝐴) zakon distributivnosti ∨ u odnosu na ∧
01
¬(𝐴 ∧ 𝐵) ≡ ¬𝐴 ∨ ¬𝐵 De Morganov zakon
¬(𝐴 ∨ 𝐵) ≡ ¬𝐴 ∧ ¬𝐵 De Morganov zakon
𝐴∧⊤ ≡ 𝐴 zakon konjunkcije sa tautologijom
(2
𝐴∨⊤ ≡ ⊤ zakon disjunkcije sa tautologijom
𝐴∧⊥ ≡ ⊥ zakon konjunkcije sa kontradikcijom
𝐴∨⊥ ≡ 𝐴 zakon disjunkcije sa kontradikcijom
je
Logičke ekvivalencije navedene u primeru 8.13, izmedu ostalog, pokazuju da su konjunkcija i disjunkcija
an
komutativni i asocijativni veznici. Zato možemo (uslovno) smatrati da konjunkcija (i disjunkcija) mogu da
povezuju više od dve formule, pri čemu ne moramo da vodimo računa o njihovom poretku. Svaki član uopštene
konjunkcije zovemo konjunkt, a svaki član uopštene disjunkcije zovemo disjunkt. Disjunkciju više literala (pri
d
čemu njihov poredak nije bitan) zovemo klauza. Klauza je jedinična ako sadrži samo jedan literal.
iz
Naredna teorema kaže da ako se u formuli 𝐴 zameni neka njena potformula logički ekvivalentnom formulom,
dobiće se formula koja je logički ekvivalentna formuli 𝐴.
o
Pitanja i zadaci
n
ro
Pitanje 8.23. Kada za iskaznu formulu 𝐴 kažemo da je logička posledica skupa formula Γ?
Pitanje 8.24. Da li nad konačnim skupom iskaznih promenljivih ima konačno ili prebrojivo ili neprebrojivo
kt
(zaokružiti ispravan odgovor) mnogo iskaznih formula od kojih nikoje dve nisu logički ekvivalentne?
le
6)
(e) 𝐴1 ⇔ 𝐵1 ≡ 𝐴2 ⇔ 𝐵2 .
√
Zadatak 8.19. Ako je iskazna formula 𝐴 tautologija koja sadrži iskazna slova 𝑝1 , 𝑝2 , . . . , 𝑝𝑛 i ako su 𝐴1 ,
01
𝐴2 , . . . , 𝐴𝑛 proizvoljne iskazne formule, onda je iskazna formula 𝐵 = 𝐴[𝑝1 ↦→ 𝐴1 , 𝑝2 ↦→ 𝐴2 , . . . , 𝑝𝑛 ↦→ 𝐴𝑛 ]
takode tautologija.
(2
8.5 Normalne forme i potpuni skupovi veznika je
an
Pitanja valjanosti i zadovoljivosti imaju veliki praktični značaj – skoro sve primene iskazne logike svode
se na ispitivanje valjanosti ili zadovoljivosti neke formule. Ispitivanje valjanosti ili zadovoljivosti primenom
istinitosnih tablica nije efikasno i оbično je praktično potpuno neupotrebljivo. Zato se definišu naprednije
d
procedure za ispitivanje valjanosti ili zadovoljivosti, ali zbog jednostavnosti i veće efikasnosti one se obično
iz
definišu samo za neke specifične vrste iskaznih formula, za formule koje su u nekoj specifičnoj formi.
o
Definicija 8.8 (Konjunktivna normalna forma). Iskazna formula je u konjunktivnoj normalnoj formi
(knf) ako je oblika
sk
𝐴1 ∧ 𝐴2 ∧ . . . ∧ 𝐴𝑛
n
Definicija 8.9 (Disjunktivna normalna forma). Iskazna formula je u disjunktivnoj normalnoj formi (dnf)
kt
ako je oblika
𝐴1 ∨ 𝐴2 ∨ . . . ∨ 𝐴𝑛
le
Ako je iskazna formula 𝐴 logički ekvivalentna iskaznoj formuli 𝐵 i iskazna formula 𝐵 je u konjunktivnoj
(disjunktivnoj) normalnoj formi, onda se kaže da je formula 𝐵 konjunktivna (disjunktivna) normalna forma
formule 𝐴. Jedna iskazna formula može da ima više različitih konjunktivnih (disjunktivnih) normalnih formi
(na primer, i formula (𝑝 ∨ 𝑟) ∧ (𝑞 ∨ 𝑟) ∧ (𝑝 ∨ 𝑠) ∧ (𝑞 ∨ 𝑠) i formula (𝑠 ∨ 𝑞) ∧ (𝑝 ∨ 𝑟) ∧ (𝑞 ∨ 𝑟) ∧ (𝑝 ∨ 𝑠) ∧ (𝑝 ∨ ¬𝑝) su
konjunktivne normalne forme formule (𝑝 ∧ 𝑞) ∨ (𝑟 ∧ 𝑠)). Slično, jedna formula koja je u konjunktivnoj normalnoj
formi može biti konjunktivna normalna forma za više iskaznih formula.
Korišćenjem pogodnih ekvivalencija, svaka iskazna formula može biti transformisana u svoju konjunktivnu
(disjunktivnu) normalnu formu. Transformisanje iskazne formule u konjunktivnu normalnu formu može biti
opisano algoritmom prikazanim na slici 8.2. Kada se govori o „primeni neke logičke ekvivalencije“ misli se na
korišćenje logičke ekvivalencije na osnovu teoreme o zameni (teorema 8.3).
Teorema 8.4 (Korektnost algoritma KNF). Algoritam KNF se zaustavlja i zadovoljava sledeće svojstvo: ako
je 𝐹 ulazna formula, onda je izlazna formula 𝐹 ′ u konjunktivnoj normalnoj formi i logički je ekvivalentna
sa 𝐹 .
91 8. Iskazna logika
Algoritam: KNF
6)
¬¬𝐴 ≡ 𝐴.
5. Dok god je to moguće, primenjivati logičke ekvivalencije
01
(𝐴 ∨ (𝐵 ∧ 𝐶)) ≡ ((𝐴 ∨ 𝐵) ∧ (𝐴 ∨ 𝐶)) i
((𝐵 ∧ 𝐶) ∨ 𝐴) ≡ ((𝐵 ∨ 𝐴) ∧ (𝐶 ∨ 𝐴)).
(2
Slika 8.2: Algoritam KNF
je
an
Zaustavljanje algoritma KNF može se dokazati korišćenjem pogodno odabrane mere formula.1 Za neke
pojedinačne korake, može se dokazati da se zaustavljaju korišćenjem jednostavnih mera — na primer, za prvi
d
korak algoritma, kao mera se može koristiti broj veznika ⇔ u formuli. Tvrdenje 𝐹 ≡ 𝐹 ′ sledi na osnovu teoreme
8.3 i činjenice da se u algoritmu koriste samo logičke ekvivalencije.
iz
Transformisanje formule u njenu konjunktivnu normalnu formu može da dâ formulu čija je složenost ekspo-
nencijalna u odnosu na složenost polazne formule. Na primer, transformisanjem formule
o
(koja ima 𝑛 disjunkata) u njenu konjunktivnu normalnu formu, dobija se formula koja ima 2𝑛 konjunkta.
n
Zbog potencijalno ogromne izlazne formule, umesto algoritma KNF, u praksi se najčešće koristi Cejtinovo
kodiranje – koje je linearno i u smislu vremena i u smislu prostora, ali uvodi dodatne promenljive, te zato rezul-
ro
tujuća formula nije logički ekvivalentna polaznoj već samo slabo ekvivalentna: početna formula je zadovoljiva
ako i samo ako je zadovoljiva rezultujuća formula. To je za primene obično dovoljno dobro i, štaviše, iz modela
kt
za rezultujuću formulu (ukoliko oni postoje) mogu se rekonstruisati modeli za polaznu formulu. Cejtinova trans-
formacija može se opisati na sledeći način: Neka 𝑆𝑢𝑏(𝐹 ) označava skup svih potformula formule 𝐹 . Za svaku
le
formulu 𝐴 iz 𝑆𝑢𝑏(𝐹 ) koja nije iskazna promenljiva, uvodi se nova iskazna promenljiva (definiciona promenljiva)
𝑝𝐴 . Ako je 𝐴 iskazna promenljiva, onda 𝑝𝐴 označava samu formulu 𝐴 (i tada se 𝐴 naziva osnovna promenljiva).
E
Formula 𝐹 se prvo transformiše u sledeću formulu (gde ⋆ označava binarni iskazni veznik iz skupa binarnih
veznika koji se pojavljuju u 𝐹 ):
⋀︁ ⋀︁
𝑝𝐹 ∧ (𝑝𝐴 ⇔ (𝑝𝐵 ⋆ 𝑝𝐶 )) ∧ (𝑝𝐴 ⇔ ¬𝑝𝐵 )
𝐴∈𝑆𝑢𝑏(𝐹 ) 𝐴∈𝑆𝑢𝑏(𝐹 )
𝐴=𝐵⋆𝐶 𝐴=¬𝐵
1 U cilju dokazivanja zaustavljanja postupka transformisanja formule u konjunktivnu normalnu formu definiše se preslikavanje
𝜏 iz skupa iskaznih formula u skup prirodnih brojeva:
Lako se može dokazati da je navedena formula slabo ekvivalentna sa formulom 𝐹 . Na kraju, navedena
formula se trivijalno transformiše u knf oblik primenom pravila iz tabele 8.1. Svaki konjunkt se transformiše
u knf sa najviše četiri klauze, od kojih svaka ima najviše tri literala. Dakle, ova transformacija daje formulu
čija veličina je linearna u odnosu na veličinu ulazne formule.
6)
Primer 8.14. Za zadatu formulu (𝑝 ∧ (𝑞 ∧ 𝑟)) ∨ ((𝑞 ∧ 𝑟) ∧ ¬𝑝), meduoblik za Cejtinovu formu je (iskazne
promenljive 𝑝4 , 𝑝5 , 𝑝6 , 𝑝7 , 𝑝8 su uvedene, definicione promenljive):
01
𝑝8 ∧ (𝑝8 ⇔ (𝑝6 ∨ 𝑝7 )) ∧ (𝑝6 ⇔ (𝑝 ∧ 𝑝4 )) ∧ (𝑝7 ⇔ (𝑝4 ∧ 𝑝5 )) ∧ (𝑝4 ⇔ (𝑞 ∧ 𝑟)) ∧ (𝑝5 ⇔ ¬𝑝))
(2
Konačno, izlazna knf formula je:
𝑝8 ∧
(¬𝑝8 ∨ 𝑝6 ∨ 𝑝7 ) ∧ (𝑝8 ∨ ¬𝑝6 ) ∧ (𝑝8 ∨ ¬𝑝7 ) ∧
(𝑝6 ∨ ¬𝑝 ∨ ¬𝑝4 ) ∧ (¬𝑝6 ∨ 𝑝) ∧ (¬𝑝6 ∨ 𝑝4 ) ∧
(𝑝7 ∨ ¬𝑝4 ∨ ¬𝑝5 ) ∧ (¬𝑝7 ∨ 𝑝4 ) ∧ (¬𝑝7 ∨ 𝑝5 ) ∧
je
an
(𝑝4 ∨ ¬𝑞 ∨ ¬𝑟) ∧ (¬𝑝4 ∨ 𝑞) ∧ (¬𝑝4 ∨ 𝑟) ∧
(𝑝5 ∨ 𝑝) ∧ (¬𝑝5 ∨ ¬𝑝)
d
Problem sa Cejtinovom transformacijom je u tome što ona uvodi mnogo novih promenljivih. Postoje razno-
iz
¬𝑝𝑎2 . Zahvaljujući tome, nije ni potrebno uvoditi nove Cejtinove promenljive i KNF zadatog uslova čini ko-
sk
Pitanja i zadaci
Pitanje 8.32. Da li je za iskaznu formulu jednoznačno odredena njena konjunktivna normalna forma?
Pitanje 8.33. Navesti jedan algoritam za transformiranje iskazne formule u knf.
Pitanje 8.34. Šta tokom primene algoritma za transformiranje iskazne formule u knf važi nakon primene
logičke ekvivalencije ¬¬𝐴 ≡ 𝐴?
Pitanje 8.35. Da li se može konstruisati iskazna formula za koju se algoritam KNF ne zaustavlja?
Pitanje 8.36. Zašto se zaustavlja prvi korak algoritma KNF?
Pitanje 8.37. Zašto se zaustavlja četvrti korak algoritma KNF?
Pitanje 8.38. Navesti teoremu o korektnosti algoritma KNF za iskaznu logiku.
Pitanje 8.39. Navesti primer skupa formula 𝐴 veličine 𝑛 za koje se algoritmom KNF dobijaju formule veličine
6)
𝑝(𝑛) (𝑝(𝑛) je polinom po 𝑛)?
01
Pitanje 8.40. Navesti primer skupa formula 𝐴 veličine 𝑛 za koje se algoritmom KNF dobijaju formule veličine
𝑝(2𝑛 ) (𝑝(2𝑛 ) je polinom po 2𝑛 )?
(2
Pitanje 8.41. Kako se definišu binarni veznici ↑ i ↓?
Pitanje 8.42. Koliko ima binarnih veznika koji pojedinačno čine potpun skup veznika za iskaznu logiku?
Predstaviti te veznike u terminima osnovnih logičkih veznika.
je
Zadatak 8.20. Odrediti konjunktivnu normalnu formu i disjunktivnu normalnu formu za formule:
an
(a) (𝐴 ⇒ 𝐵) ∨ (¬𝐴 ∧ 𝐶)
(b) 𝐴 ⇔ (𝐵 ∧ ¬𝐴)
d
Zadatak 8.21. U računarstvu se često koristi logički veznik ∨ (isključivo ili, isključiva disjunkcija, ekskluzivno
o
ili, ekskluzivna disjunkcija) koji može biti definisan na sledeći način: 𝐴∨𝐵 je jednako (tj. to je kraći zapis za)
sk
¬(𝐴 ⇔ 𝐵) ili (𝐴 ∧ ¬𝐵) ∨ (¬𝐴 ∧ 𝐵). Ispitati da li je skup {∧, ∨} potpun skup veznika.
n
Za svaku iskaznu formulu postoji njena konjunktivna normalna forma i većina primena iskazne logike svodi
le
se na ispitivanje zadovoljivosti neke formule koja je u tom, specifičnom, knf obliku. Ovaj specifičan problem
ima ogroman i teorijski i praktični značaj.
E
Problem ispitivanja zadovoljivosti date iskazne formule u knf obliku označava se sa sat (od engleskog satis-
fiability problem — problem zadovoljivosti). sat problem je np-kompletan. Problem ispitivanja nezadovoljivosti
date iskazne formule u knf obliku je co-np-kompletan.
S obzirom na to da se još uvek ne zna da li su klase p i np problema jednake, to znači da se još uvek ne zna
da li postoji algoritam za ispitivanje zadovoljivosti koji je polinomijalne složenosti. Kako je opšte uverenje da
su klase problema p i np različite, veruje se i da ne postoji polinomijalni algoritam za rešavanje sat problema.
I najefikasniji danas poznati algoritmi za rešavanje ovog problema su eksponencijalne složenosti. Programi koji
rešavaju instance sat problema zovu se sat rešavači.
Problem ispitivanja zadovoljivosti formula u dnf obliku je suštinski drugačiji od ispitivanja zadovoljivosti
formula u knf obliku. Drugi je co-np-kompletan (jer se lako svodi na problem ispitivanja nezadovoljivosti i
obratno), a prvi je trivijalan i pripada klasi p. Ipak, svodenje drugog na prvi je eksponencijalno i nije razuman
put za rešavanje problema sat. Analogno, problem ispitivanja tautologičnosti formule u knf obliku pripada
klasi p, a problem ispitivanja tautologičnosti formule u dnf obliku je np-kompletan.
Dejvis–Patnam–Logman–Lavlendova ili dpll procedura2 je procedura za ispitivanje zadovoljivosti iskaznih
2 Prva verzija procedure čiji su autori Dejvisa i Patnama, unapredena je dve godine kasnije u radu Dejvisa, Logmana i Lovelanda,
pa otuda naziv dpll.
8.6. Problem SAT i DPLL procedura 94
formula u knf obliku, to jest, procedura za rešavanje instanci sat problema. Ulazna formula je konjunkcija
klauza. Pri tome (kako su konjunkcija i disjunkcija komutativne i asocijativne) nije bitan poredak tih klauza niti
je u bilo kojoj od tih klauza bitan poredak literala, te se ulazna formula može smatrati skupom (ili, preciznije,
multiskupom3 ) klauza, od kojih se svaka može smatrati skupom (ili, preciznije, multiskupom) literala. Ipak,
radi odredenosti rada algoritma, smatraćemo da je skup (odnosno multiskup) klauza ureden.
U proceduri se podrazumevaju sledeće konvencije:
klauza koja ne sadrži nijedan literal (zvaćemo je prazna klauza) je nezadovoljiva i formula koja sadrži
praznu klauzu je nezadovoljiva.
Dejvis–Patnam–Logman–Lovelandova procedura data je na slici 8.3, a njena svojstva daje teorema 8.5.
Algoritam: DPLL
6)
Izlaz: DA, ako je multiskup 𝐷 zadovoljiv;
NE, ako multiskup 𝐷 nije zadovoljiv
01
1. Ako je 𝐷 prazan, vrati DA.
(2
2. Zameni sve literale ¬⊥ sa ⊤ i zameni sve literale ¬⊤ sa ⊥.
DPLL(𝐷 ∖ 𝐶𝑖 ).
iz
6. (unit propagation)
Ako je neka klauza jedinična i jednaka nekom iskaznom slovu 𝑝, onda vrati vrednost koju vraća
o
DPLL(𝐷[𝑝 ↦→ ⊤]);
sk
Ako je neka klauza jedinična i jednaka ¬𝑝, gde je 𝑝 neko iskazno slovo, onda vrati vrednost koju vraća
DPLL(𝐷[𝑝 ↦→ ⊥]).
n
ro
7. (pure literal)
Ako 𝐷 sadrži literal 𝑝 (gde je 𝑝 neko iskazno slovo), ali ne i literal ¬𝑝, onda vrati vrednost koju vraća
kt
DPLL(𝐷[𝑝 ↦→ ⊤]);
Ako 𝐷 sadrži literal ¬𝑝 (gde je 𝑝 neko iskazno slovo), ali ne i literal 𝑝, onda vrati vrednost koju vraća
le
DPLL(𝐷[𝑝 ↦→ ⊥]).
E
8. (split)
Ako DPLL(𝐷[𝑝 ↦→ ⊤]) vraća DA, onda vrati DA; inače vrati vrednost koju vraća DPLL(𝐷[𝑝 ↦→ ⊥]) (gde
je 𝑝 jedno od iskaznih slova koja se javljaju u 𝐷).
Teorema 8.5 (Korektnost dpll procedure). Za svaku iskaznu formulu dpll procedura se zaustavlja i
vraća odgovor DA ako i samo ako je polazna formula zadovoljiva.
Izbor iskaznog slova u pravilu split veoma je važan. Neke varijante ovog pravila su da se bira iskazno slovo
sa najviše pojavljivanja u tekućoj formuli, da se bira neko od iskaznih slova iz najkraće klauze itd. Pošto se
ispituje da li postoji valuacija u kojoj su sve klauze formule tačne, pohlepni algoritam bi mogao da za split
promenljivu bira onu koja čini najveći broj klauza tačnim u tekućoj parcijalnoj valuaciji. Ovaj algoritam ne
garantuje optimalnost ni efikasnost i retko se koristi u praksi.
Primer 8.16. dpll procedura može se primeniti na formulu iz primera 8.15. Prvo pravilo koje je primenljivo
je split i može da se primeni, na primer, na promenljivu 𝑝𝑎1 . U prvoj grani koja se razmatra 𝑝𝑎1 se zamenjuje
sa ⊤ (što odgovara pridruživanju vrednosti tačno) i u narednim koracima se, primenom pravila unit propagation
promenljive 𝑝𝑎2 , 𝑝𝑎3 , 𝑝𝑏1 , 𝑝𝑐1 , 𝑝𝑏2 , 𝑝𝑐3 zamenjuju sa ⊥. Zatim se promenljive 𝑝𝑏3 i 𝑝𝑐2 zamenjuju sa ⊤, nakon
čega klauza ¬𝑝𝑏2 ∨ ¬𝑝𝑐3 postaje prazna. Slično se dešava i u grani u kojoj se 𝑝𝑎1 zamenjuje sa ⊥, te procedura
vraća odgovor 𝑁 𝐸 , što znači da ne postoji rešenje problema 𝑛 dama za 𝑛 = 3.
6)
utiču na efikasnost pretrage.
01
Primer 8.17. Neka je potrebno ispitati zadovoljivost formule date klauzama:
𝐶1 : ¬𝑎, ¬𝑏, 𝑐
𝐶2 : 𝑎, ¬𝑏
(2
𝐶3 : 𝑏, 𝑐
𝐶4 : ¬𝑏, ¬𝑐
Formula ima dve zadovoljavajuće valuacije. Proverom zadovoljivosti procedurom dpll, pronalazi se jedna
je
od te dve valuacije. Prvo stablo na slici 8.4 prikazuje proces pretrage u slučaju datog skupa klauza. Kako obe
zadovoljavajuće valuacije pridružuju promenljivoj 𝑏 vrednost 0, a promenljivoj 𝑐 vrednost 1, nakon dodavanja
an
klauze
𝐶5 : 𝑏, ¬𝑐
d
prethodni skup klauza postaje nezadovoljiv. Proces pretrage procedurom dpll u ovom slučaju, prikazan je na
drugom stablu na istoj slici. U ovom primeru upečatljivo je da dpll procedura ispituje svega tri od osam listova
iz
zahvaljujući tome što osim koraka pretrage oličenih u pravilu split, postoje i koraci zaključivanja koje se vrši
primenom pravila unit propagation, pri čemu se ne ispituju alternative tim pravilom učinjenih zamena.
o
sk
𝑠𝑝𝑙𝑖𝑡([𝑎 ↦→ ⊤])
n
𝑣(𝑎)=1 𝑣(𝑎)=1
𝑠𝑝𝑙𝑖𝑡([𝑏 ↦→ ⊤]) 𝑠𝑝𝑙𝑖𝑡([𝑏 ↦→ ⊥])
ro
𝑣(𝑎)=1 𝑣(𝑎)=1
𝑠𝑝𝑙𝑖𝑡([𝑏 ↦→ ⊤]) 𝑠𝑝𝑙𝑖𝑡([𝑏 ↦→ ⊥]) 𝑢𝑝([𝑏 ↦→ ⊥])
Slika 8.4: Proces provere zadovoljivosti procedurom dpll prikazan u vidu pretrage u potpunom stablu valuacija
za dva skupa klauza. Pretraga se vrši obilaskom stabla u dubinu sleva nadesno.
dpll procedura proverava da li je formula zadovoljiva, ali ona se može koristiti i za ispitivanje da li je
neka formula valjana, poreciva ili kontradikcija. Na primer, formula 𝐴 je valjana ako i samo ako je formula
8.6. Problem SAT i DPLL procedura 96
¬𝐴 nezadovoljiva, što se može proveriti dpll procedurom (pri čemu je, naravno, formulu ¬𝐴 potrebno najpre
transformisati u konjunktivnu normalnu formu).
Pitanja i zadaci
Pitanje 8.43. Kako se zove problem ispitivanja zadovoljivosti iskazne formule u knf obliku? Da li je ovaj
problem odlučiv?
Pitanje 8.44. Da li problem sat pripada klasi p?
Da li problem sat pripada klasi np?
Da li je problem sat np-kompletan?
Da li je problem sat np-težak?
Pitanje 8.45. U kom obliku mora da bude formula na koju se primenjuje dpll procedura?
Pitanje 8.46. Koji odgovor vraća dpll procedura ako ulazna formula ne sadrži nijednu klauzu?
6)
Pitanje 8.47. Kako glasi pravilo tautology procedure dpll?
01
Pitanje 8.49. Koja su pravila dpll procedure primenljiva na formulu: (¬𝑎∨𝑏∨𝑐)∧(𝑎∨𝑏∨¬𝑐)∧(¬𝑎∨𝑏∨¬𝑐)?
(2
Pitanje 8.50. Da li se može konstruisati iskazna formula u knf formi za koju se algoritam dpll ne zaustavlja?
Pitanje 8.51. Koja je složenost dpll procedure u najgorem slučaju?
je
Pitanje 8.52. Da li postoje iskazne formule za koje je vreme izvršavanja procedure dpll polinomijalno u
an
odnosu na veličinu formule?
Pitanje 8.53. Ako želimo da dpll procedurom ispitamo da li je iskazna formula 𝐴 tautologija, šta treba da
d
Odrediti knf date formule i ispitati njenu zadovoljivost koristeći dpll algoritam.
Zadatak 8.24. Pomoću dpll algoritma proveriti da li je sledeća formula zadovoljiva:
n
ro
(𝑐 ⇒ (𝑎 ∧ 𝑏))) ⇒ (𝑎 ∧ 𝑐)
dpll
((𝑎 ⇒ 𝑏) ⇒ 𝑐) ∨ (𝑏 ∧ 𝑐)
((𝑎 ⇒ 𝑏) ⇒ (𝑏 ⇒ 𝑐)) ∧ 𝑎 ∧ ¬𝑐
elementarni iskazi (tvrdnje) koji figurišu u opisu problema, predstavljaju se iskaznim promenljivim (u
duhu nekog kodiranja);
ukoliko je formula zadovoljiva, svaki njen model daje jedno rešenje polaznog problema.
Svodenjem na SAT mogu se pogodno opisati mnogi problemi nad konačnim domenima. U nastavku će biti
pokazano kako sabiranje prirodnih brojeva, a i rešavanje jednačina koje uključuju takvo sabiranje mogu biti
6)
svedeni na SAT.
Primer 8.18. Neka su 𝑢 i 𝑣 prirodni brojevi manji od 4. Onda, ako je broj 𝑢 predstavljen parom iskaznih slova
01
(𝑝, 𝑞) (koja odgovaraju njegovim ciframa u binarnom zapisu) a broj 𝑣 predstavljen parom (𝑟, 𝑠), onda je broj
𝑣 + 𝑢 (po modulu 22 ) predstavljen parom ((𝑝∨𝑟)∨(𝑞 ∧ 𝑠), 𝑞∨𝑠) (gde ∨ označava ekskluzivnu disjunkciju).
(2
Neka je zadat problem odredivanja vrednosti 𝑢, ako je poznato da je 𝑣 = 2 i 𝑣 = 𝑢 + 1 (po modulu 4). Broj
1 može se predstaviti parom (⊥, ⊤) i kako je poznato da važi 𝑣 = 2 i 𝑣 = 𝑢 + 1, onda se 𝑣 može predstaviti i
na način (⊤, ⊥) i na način ((𝑝∨⊥)∨(𝑞 ∧ ⊤), 𝑞∨⊤), i, nakon pojednostavljivanja, sa (𝑝∨𝑞, ¬𝑞). Da bi se dobila
je
formula koja odgovara zadatim uslovima i iz koje se može dobiti vrednost broja 𝑢, formule na obe pozicije moraju
da budu ekvivalentne i sledeća formula mora biti zadovoljiva: ((𝑝∨𝑞) ⇔ ⊤) ∧ (¬𝑞 ⇔ ⊥). Ona je zadovoljiva i
an
ima samo jedan model. U tom modelu promenljiva 𝑝 ima vrednost 0 a promenljiva 𝑞 ima vrednost 1. Dakle,
nepoznata vrednost 𝑢 ima binarni zapis 01, pa je ona jednaka 1.
d
Rešavanje problema svodenjem na SAT biće ilustrovano kroz nekoliko konkretnih primera i nekoliko različitih
iz
Retka kodiranja. U praktičnim problemima koji se rešavaju svodenjem na SAT, ne figurišu samo iskazne
promenljive, već često i celobrojne promenljive 𝑣𝑖 koje mogu imati vrednosti iz nekog ograničenog skupa. U
n
takvim situacijima često se koristi retko kodiranje (eng. sparse encoding) u kojem se uvode iskazne promeljive
𝑥𝑣,𝑖 koje su tačne ako i samo ako promeljiva 𝑣 ima vrednost 𝑖. Time se uslov da promeljiva 𝑣 ima jednu vrednost
ro
⋁︁
𝑥𝑣,𝑖
𝑖∈𝐼
le
Promenljiva 𝑣 ne može imati dve vrednosti istovremeno, što se opisuje formulom („uslov najviše-jedna“):
E
⋀︁
¬𝑥𝑣,𝑖 ∨ ¬𝑥𝑣,𝑗
𝑖,𝑗∈𝐼,𝑖̸=𝑗
Pored uslova koji su potrebni kako bi se iskazalo da promenljiva ima (tačno jednu) vrednost iz nekog konačnog
skupa, potrebno je kodirati i razne druge uslove. Za neke uslove koji se često koriste, su poznati ustaljeni
načini kodiranja koji daju specifične varijante retkog kodiranja. Direktno kodiranje (eng. direct encoding) je
varijanta retkog kodiranja namenjena ograničenjima koja izražavaju da se kombinacije vrednosti nekih promen-
ljivih medusobno isključuju. U toj varijanti, sve nedozvoljene kombinacije vrednosti, se opisuju formulama (tzv.
„klauzama konflikta”):
¬𝑥𝑣,𝑖 ∨ ¬𝑥𝑤,𝑗
Potporno kodiranje (eng. support encoding) je varijanta retkog kodiranja namenjena ograničenjima oblika: ako
𝑥 ima vrednost 𝑖, onda 𝑤 mora imati neku od vrednosti iz skupa 𝐴. Ta ograničenja se opisuju formulama
(klauzama konflikta) sledećeg oblika:
⋁︁
¬𝑥𝑣,𝑖 ∨ 𝑥𝑤,𝑗
𝑗∈𝐴
8.7. Rešavanje problema svodenjem na SAT 98
Log kodiranje. U log kodiranju svakom bitu vrednosti numeričkih promenjivih (zapisanih u binarnoj re-
prezentaciji) pridružuje se jedna iskazna promenljiva. U ovoj reprezentaciji ne postoji potreba za uslovima
„barem-jedna“ i „najviše-jedna“, jer svaka kombinacija vrednosti uvedenih iskaznih promenljivih daje tačno jednu
vrednost odgovarajuće promenljive. Naravno, kada je broj mogućih vrednosti numeričke promenjive manji od
broja mogućih vrednosti iskaznih promenljivih koji se koriste za njeno kodiranje, neke kombinacije vrednosti
iskaznih probemljivih potrebno je zabraniti dodatnim klauzama (na primer, ako promenljiva 𝑛 može da ima
vrednosti od 0 do 6, za njeno kodiranje se koriste tri iskazne promenjive, ali se zabranjuje njihova kombinacija
koja daje vrednost 7).
I u log kodiranju, moguće je izraziti uslove koje u slučaju retkih kodiranja izražavaju direktno i potporno
kodiranje, ali zbog prirode log kodiranja, te uslove potrebno je zadati nad binarnim kombinacijama koje predsta-
vljaju vrednosti numeričkih promenljivih. Na primer, neka promenljive 𝑣 i 𝑤 uzimaju celobrojne vrednosti od 0
do 7 i neka su kodirane iskaznim promenljivim 𝑥𝑣,1 , 𝑥𝑣,2 , 𝑥𝑣,3 , 𝑥𝑤,1 , 𝑥𝑤,2 i 𝑥𝑤,3 , pri čemu viši indeksi označavaju
bitove veće težine. Ukoliko se vrednost 3 promenljive 𝑣 uzajamno isključuje sa vrednošću 6 promenljive 𝑤, taj
uslov se može kodirati u terminima bitova, klauzom
6)
¬𝑥𝑣,1 ∨ ¬𝑥𝑣,2 ∨ 𝑥𝑣,3 ∨ 𝑥𝑤,1 ∨ ¬𝑥𝑤,2 ∨ ¬𝑥𝑤,3 .
Primer 8.19. Zadatak je obojiti dve kuće (neka su označene sa 𝑣 i 𝑤) po jednom od tri raspoložive boje (neka
01
su označene brojevima 1, 2, 3), ali tako da su obojene različito.
U retkim kodiranjima problema, biće potrebni „barem jedna“ uslovi
(2
𝑥𝑣,1 ∨ 𝑥𝑣,2 ∨ 𝑥𝑣,3
𝑥𝑤,1 ∨ 𝑥𝑤,2 ∨ 𝑥𝑤,3
i „najviše jedna“ uslovi:
¬𝑥𝑣,1 ∨ ¬𝑥𝑣,2 je
an
¬𝑥𝑣,1 ∨ ¬𝑥𝑣,3
¬𝑥𝑣,2 ∨ ¬𝑥𝑣,3
¬𝑥𝑤,1 ∨ ¬𝑥𝑤,2
d
¬𝑥𝑤,1 ∨ ¬𝑥𝑤,3
iz
¬𝑥𝑤,2 ∨ ¬𝑥𝑤,3
Dodatno, u direktnom kodiranju biće opisan i uslov da nisu obe kuće obojene istom bojom (klauze konflikta):
o
¬𝑥𝑣,1 ∨ ¬𝑥𝑤,1
¬𝑥𝑣,2 ∨ ¬𝑥𝑤,2
sk
¬𝑥𝑣,3 ∨ ¬𝑥𝑤,3
U potpornom kodiranju, klauze konflikta se zadaju na sledeći način:
n
U log kodiranju, promenljive 𝑥𝑣,1 , 𝑥𝑣,2 označavaju cifre binarnog zapisa boje koja odgovara kući 𝑣 , a 𝑥𝑤,1 ,
𝑥𝑤,2 označavaju cifre binarnog zapisa boje koja odgovara kući 𝑤 (cifri 0 neka odgovara vrednost netačno, a cifri
1 neka odgovara vrednost tačno). Najveći indeks boje je 3, pa zato postoje uslovi:
¬𝑥𝑣,1 ∨ ¬𝑥𝑣,2
¬𝑥𝑤,1 ∨ ¬𝑥𝑤,2
Klauze konflikta su sledeće klauze:
𝑥𝑣,1 ∨ 𝑥𝑤,1 ∨ 𝑥𝑣,2 ∨ 𝑥𝑤,2
¬𝑥𝑣,1 ∨ 𝑥𝑤,1 ∨ ¬𝑥𝑣,2 ∨ 𝑥𝑤,2
𝑥𝑣,1 ∨ ¬𝑥𝑤,1 ∨ 𝑥𝑣,2 ∨ ¬𝑥𝑤,2
8
0ZQZ0Z0Z
7
Z0Z0ZQZ0
6
0Z0L0Z0Z
5
ZQZ0Z0Z0
4
0Z0Z0Z0L
3
Z0Z0L0Z0
2
0Z0Z0ZQZ
1
L0Z0Z0Z0
a b c d e f g h
Zadata ograničenja moguće je zapisati kao iskazne formule i ispitivanjem zadovoljivosti njihove konjunkcije
ispituje se da li je moguće dame rasporediti na opisani način. Ograničenja se mogu, korišćenjem direktnog
6)
kodiranja opisati na sledeći način:
01
𝑖=1,...,𝑛 𝑣𝑗𝑖 , za 1 ≤ 𝑗 ≤ 𝑛;
⋁︀
(2
2. u svakoj koloni mora da bude najviše jedna dama:
Kako prva dva skupa uslova obezbeduju da ima ukupno 𝑛 dama, a treći da u svakoj vrsti ima najviše jedna
o
dama, nije potrebno zadavati uslov da u svakoj vrsti mora da bude barem jedna dama.
Konjunkcija navedenih uslova daje formulu koja opisuje zadati problem. Ona je već u konjunktivnoj nor-
sk
malnoj formi i njena zadovoljivost može biti ispitana nekim SAT rešavačem. Na primer, za 𝑛 = 8, formula ima
92 modela i svaki od njih daje po jedno rasporedivanje dama koje ispunjava date uslove.
n
ro
Iskazna logika često se koristi u problemima rasporedivanja. Jedan od takvih problema je rasporedivanje
sportskih utakmica. Pretpostavićemo da se koristi kružni sistem takmičenja po principu „igra svako sa svakim“
koji se karakteriše sledećim uslovima:
le
E
1. Postoji 𝑛 timova (𝑛 je paran broj) i svaka dva tima jednom igraju jedan protiv drugog.
4. Postoji 𝑛/2 terena i svake nedelje na svakom terenu igra se jedna utakmica.
Neka su timovi označeni brojevima od 1 do 10. Primer ispravnog rasporeda je dat u tabeli 8.2.
Tvrdenje relevatno za sastavljanje rasporeda je da „tim 𝑘1 igra protiv tima 𝑘2 na terenu 𝑖 u nedelji 𝑗 “. Kako
je u nekim ograničenjima potrebno izražavati se o pojedinačnim timovima, a ne samo o parovima, ovo tvrdenje
neće biti predstavljeno jednom promenljivom, nego dvema. Promenljiva 𝑥1𝑘 𝑖𝑗 označava da im 𝑘 igra (protiv nekog
tima) na terenu 𝑖 u nedelji 𝑗 i analogno za promenljivu 𝑥2𝑘𝑖𝑗 . Stoga, skup promenljivih je:
{𝑥1𝑘 2𝑘
𝑖𝑗 | 1 ≤ 𝑖 ≤ 𝑛/2, 1 ≤ 𝑗 ≤ 𝑛 − 1, 1 ≤ 𝑘 ≤ 𝑛 − 1}∪ {𝑥𝑖𝑗 | 1 ≤ 𝑖 ≤ 𝑛/2, 1 ≤ 𝑗 ≤ 𝑛 − 1, 2 ≤ 𝑘 ≤ 𝑛}
8.7. Rešavanje problema svodenjem na SAT 100
Teren/nedelja 1 2 3 4 5 6 7 8 9
1 6-9 4-6 1-8 4-10 2-8 7-9 5-7 1-2 3-5
2 2-3 1-5 2-4 1-7 9-10 8-10 3-6 4-9 6-8
3 5-10 2-7 3-9 5-9 1-3 1-6 4-8 6-10 4-7
4 1-4 8-9 5-6 3-8 6-7 2-5 1-10 3-7 2-10
5 7-8 3-10 7-10 2-6 4-5 3-4 2-9 5-8 1-9
Tabela 8.2: Primer ispravnog rasporeda za 10 timova.
Ukupno se koristi 𝑛(𝑛 − 1)2 promenljivih. Raspored čini skup parova (𝑥1𝑘 𝑖𝑗 , 𝑥𝑖𝑗 ) koji izražava prethodno
1 2𝑘2
navedeno tvrdenje. Nije bitan poredak timova u parovima koji igraju utakmice, pa se uvodi dogovor da za
svaki od ovih parova važi 𝑘1 < 𝑘2 . Ograničenja se izražavaju formulom koja predstavlja konjunkciju sledećih
klauza (razvrstanih po ulogama). U svakoj grupi ograničenja podrazumeva se da indeksi uzimaju sve vrednosti
dozvoljene navedenim uslovima, a za koje postoje odgovarajuće promenljive.
6)
1. Svake nedelje na svakom terenu se održava utakmica.
01
1𝑛−1
𝑥11
𝑖𝑗 ∨ . . . ∨ 𝑥𝑖𝑗
𝑥22 2𝑛
𝑖𝑗 ∨ . . . ∨ 𝑥𝑖𝑗
(2
2. Za svaku utakmicu važi 𝑘1 < 𝑘2 .
¬𝑥1𝑘 2𝑘2
𝑖𝑗 ∨ ¬𝑥𝑖𝑗
1
za sve 𝑘1 ≥ 𝑘2 . je
an
3. Bilo koje nedelje nijedan tim ne igra više od jedne utakmice.
¬𝑥𝑟𝑖11𝑗𝑘 ∨ ¬𝑥𝑟𝑖22𝑗𝑘
d
iz
pod uslovima 𝑗1 ̸= 𝑗2 , 𝑗1 ̸= 𝑗3 i 𝑗2 ̸= 𝑗3 .
le
6)
01
(2
𝐴 𝐵 𝑃
je
an
d
iz
o
𝑍
sk
𝑃
𝐴 𝑍′
n
𝐵
ro
𝑄′
kt
𝑄
le
E
korektnosti, usled složenosti softvera u kojem su ti algoritmi implementirani, uvek postoji mogućnost da je u
nekom koraku napravljena greška i da finalni, optimizovani, dizajn kola više nije ekvivalentan polaznom. Zbog
toga je pre fizičke izrade logičkog kola potrebno proveriti ekvivalentnost polaznog i finalnog dizajna kola. Treba
primetiti da ustanovljena ekvivalentnost ne garantuje funkcionalnu korektnost kola — to da ono zaista radi ono
što bi trebalo. Medutim, i to je moguće ustanoviti proverom ekvivalentosti sa kolom za koje je poznato da je
funkcionalno korektno, ukoliko takvo kolo postoji.
Provera ekvivalentnosti kombinatornih kola se vrši tako što se svakom kolu pridruži iskazna formula koja
odgovara njegovom dizajnu. Neka su to formule 𝐴 i 𝐵 . Ukoliko su kola ekvivalentna, za sve kombinacije vrednosti
ulaza, vrednosti izlaza su iste. U terminima iskaznih formula, za svaku valuaciju 𝑣 , mora da važi važi 𝐼𝑣 (𝐴) =
𝐼𝑣 (𝐵). Odnosno, formula 𝐴 ⇔ 𝐵 mora biti tautologija, a formula ¬(𝐴 ⇔ 𝐵) nezadovoljiva. Zadovoljivost
iskazne formule se može proveriti pomoću sat-rešavača. Ukoliko rešavač ustanovi da je formula nezadovoljiva,
kola su ekvivalentna, a ukoliko ustanovi da postoji zadovoljavajuća valuacija, ta valuacija predstavlja vrednosti
ulaza za koje se izlazi kola razlikuju, što može poslužiti kao polazna tačka u otklanjanju greške.
8.7. Rešavanje problema svodenjem na SAT 102
Postupak provere ekvivalentnosti ćemo prikazati na primeru sabirača. Recimo da je optimizovanjem prvog
kola na slici 8.5, dobijeno drugo. Na osnovu dizajna, za svaki od izlaza može se formirati iskazna formula koja
mu odgovara:
6)
𝑄 = (𝐴 ∧ 𝐵) ∨ (𝐵 ∧ 𝑃 ) ∨ (𝐴 ∧ 𝑃 )
01
𝑍 ′ = (𝐴∨𝐵)∨𝑃
(2
𝑄′ = (𝐴 ∧ 𝐵) ∨ (𝐴∨𝐵) ∧ 𝑃
Jedna od najkorišćenijih tehnika u verifikaciji hardvera i softvera je ograničena provera modela. Funkcioni-
sanje hardvera ili softvera se može apstraktno opisati konačnim automatima čija stanja opisuju stanja sistema
koji se izučava, a grane moguće prelaske sistema iz stanja u stanje. Ovaj konačni automat smatra se modelom
o
sistema koji se analizira. Jedan od ciljeva verifikacije je dokazivanje da sistem zadovoljava odredena svojstva,
sk
na primer, da nikad neće doći u stanje koje predstavlja grešku ili bezbednosni rizik. Primer takvog svojstva je
za sistem koji treba da pruži neki odgovor na zadati zahtev, nakon stanja u kojem je primljen zahtev, sistem će
n
sigurno doći neko stanje u kojem taj će traženi odgovor biti dat. Dokazivanje tvrdnji poput ovih, koje se naziva
proverom modela, može predstavljati problem koji nije odlučiv. Stoga se u praksi obično koristi ograničena
ro
provera modela koja se svodi na dokazivanje da neko svojstvo važi u svim stanjima u koja se iz polaznog stanja
može dospeti u najviše 𝑘 prelaza.
kt
Kako bi se sprovela tehnika ograničene provere modela, potrebno je uočiti kako se stanja mogu modelovati
iskaznim promenljivim, a potom iskaznim formulama nad tim promenljivim zapisati željeno svojstvo, polazne
le
što je brojač na slici 8.6. Njegova tablica prelaska je data tabelom 8.3.
Cilj je dokazati da ako brojač započne brojanje od bilo kog broja koji nije 3, onda nikada neće doći do broja
3. Stanje u trenutku 𝑖 se opisuje pomoću dva bita 𝑥𝑖0 i 𝑥𝑖1 . Željeno svojstvo se opisuje formulm ¬𝑥𝑖0 ∨ ¬𝑥𝑖1 .
Uslov koji važi u polaznom stanju je ¬𝑥00 ∨ ¬𝑥01 . Iz tablice prelaska se vidi da za svaka dva susedna stanja važe
metaformule 𝑥𝑖+1 0 = ¬𝑥𝑖0 ∧ ¬𝑥𝑖1 i 𝑥𝑖+1
1 = 𝑥𝑖0 . Da bi se pokazalo da stanje 𝑘 ne odgovara broju 3, treba ustanoviti
da je sledeća formula nezadovoljiva:
Prvi konjunkt u gornjoj konjunkciji predstavlja polazni uslov, potom slede po dva konjunkta koji opisuju
prelaske izmedu susednih stanja, a poslednji konjunkt izražava željeno svojstvo u poslednjem stanju. Željeno
svojstvo je moglo biti formulisano i za sva prethodna stanja, a odgovarajuće formule bi bile dodate u konjunkciju.
Ukoliko je formula zadovoljiva za neko 𝑘 , to znači da postoji putanja od polaznog stanja kojom se može doći do
stanja koje ne zadovoljava traženo svojstvo. U opštem slučaju dobijena valuacija odreduje stanja preko kojih
se može doći do problematičnog stanja, sto može pomoći u pronalaženju greške u analiziranom sistemu.
103 8. Iskazna logika
6)
𝐶𝐿𝐾
𝐷
𝑥1
01
𝐹𝐹0
(2
𝑁 𝑂𝑅 𝐷
𝑥0
𝐹𝐹1
je
an
Slika 8.6: Dizajn brojača koji broji od 0 do 2
d
Programe koji rešavaju instance sat problema zovemo sat-rešavači (eng. sat-solvers). Većina savremenih
sat-rešavačazasnovana je na dpll proceduri, ali je obogaćena mnogim tehnikama i heuristikama. Neki od
o
sat-rešavači obično očekuju ulaz u dimacs-cnf formatu. U ovom formatu, prvi red sadrži informaciju
o broju iskaznih promenljivih i broju klauza, a naredni redovi sadrže zapis po jedne klauze. Promenljive su
n
označene rednim brojevima, negirane promenljive odgovarajućim negativnim brojevima i svaki red završava se
brojem 0. Na primer,
ro
p cnf 3 2
kt
1 -3 0
-1 2 3 0
le
reprezentuje formulu (sa tri promenljive i dve klauze): (𝑝1 ∨ ¬𝑝3 )(¬𝑝2 ∨ 𝑝2 ∨ 𝑝3 ).
E
Pitanja i zadaci
Zadatak 8.31. Dva 2-bitna broja se sabiraju i daju rezultat 3. Primenom dpll procedure naći dva takva
broja.
Zadatak 8.32. Zapisati formulu koja opisuje uslov da se u svakoj vrsti table za igru oblika 2x2 polja može
postaviti tačno jedan žeton i proveriti njenu zadovoljivost dpll procedurom.
Zadatak 8.33. Robot treba da rasporedi dva objekta u dve kutije. Pri tome ne sme oba objekta da stavi u
istu kutiju. U vidu iskazne formule zapisati uslove koji definišu dopustive rasporede. Objasniti šta znači koje
iskazno slovo. Pomoću dpll procedure naći neki dopustiv raspored.
Zadatak 8.34. Na tabli 2x2 postavljaju se žetoni. U iskaznoj logici zapisati uslov da na bar jednoj dijagonali
moraju biti postavljena bar dva žetona. Pomoću dpll algoritma ispitati zadovoljivost ove formule i navesti
neki model koji ovaj algoritam daje. Šta daje dobijeni model?
Zadatak 8.35. U iskaznoj logici
8.7. Rešavanje problema svodenjem na SAT 104
2. dpll procedurom proveriti da li takav broj postoji i ako postoji, naći primer.
Zadatak 8.36. U iskaznoj logici zapisati uslov da je 4-bitna reprezentacija broja palindrom, ali da nisu svi
bitovi isti. dpll procedurom proveriti da li postoji takav broj i ako postoji dati primer.
Zadatak 8.37. Tri polja se boje crvenom ili plavom bojom. Ukoliko je prvo polje crveno, druga dva moraju
biti iste boje. Ukoliko je drugo polje crveno, treće mora biti plavo. Zapisati date uslove u iskaznoj logici i dpll
procedurom proveriti da li je moguce polja obojiti u skladu sa ovim pravilima. Ukoliko jeste naći primer takvog
bojenja.
Zadatak 8.38. Temena trougla se boje pomoću dve boje. Pri tom, ni jedan par temena ne moze imati istu
boju. Zapisati date uslove u iskaznoj logici i dpll procedurom proveriti da li je moguće temena obojiti u skaldu
sa datim pravilima. Ukoliko jeste, naći primer takvog bojenja na osnovu rada dpll procedure.
6)
Zadatak 8.39. Za kolo dato na slici, dpll procedurom proveriti da li može da da izlaz 1 i ukoliko je to
01
moguće, naći kombinaciju vrednosti na ulazima za koju je to slučaj.
(2
je
an
𝐴, 𝐵, 𝐶 ∈ 4, 5
𝐴 i 𝐵 ne smeju biti jednaki
iz
Zadatak 8.41. Tabela 2x2 se boji crvenom ili plavom bojom. Ako je polje (1,1) ofarbano crvenom bojom onda
sk
barem jedno od ostalih polja mora biti plavo. Ako je polje (2,2) ofarbano plavom bojom onda barem dva ostala
polja moraju biti crvena. Ne smeju sva polja biti ofarbana istom bojom. Zapisati date uslove u iskaznoj logici i
n
dpll procedurom proveriti da li je moguće polja obojiti u skladu sa ovim pravilima. Ukoliko jeste naći primer
takvog bojenja. (polja označavamo sa (1,1) (1,2) (2,1) i (2,2)).
ro
Zadatak 8.42. Tabela 2x2 se boji crvenom ili plavom bojom. Ako je polje B plave boje, polje C je crvene
kt
boje. A i D su različite boje. Ako je B crvene boje, A je isto crvene boje. dpll procedurom naći jedan primer
bojenja.
le
E
A B
C D
√
Zadatak 8.43. Svaki stanovnik jedne države ili uvek laže ili uvek govori istinu i na svako pitanje odgovara
uvek samo sa da ili ne. Neki turista dolazi na raskrsnicu u toj državi i zna da samo jedan od dva puta vodi
do glavnog grada. Ne postoji znak koji pokazuje koji je to put, ali postoji meštanin 𝑅 koji stoji na raskrsnici.
Koje da-ili-ne pitanje treba turista da postavi da bi odredio kojim putem da krene?
√
Zadatak 8.44. Modelovanja jednog problema biće prikazano na primeru jednostavne igre - Vumpus. Igra
se igra na tabli od 4x4 polja koja predstavlja unutrašnjost pećine. U pećini živi čudovište Vumpus i nalazi se
na jednom od polja. Na nekima od polja mogu se nalaziti provalije, a na jednom je zlato. U pećini je mrak
pa igrač unapred ne zna sadržaj nijednog polja. Igrač se na početku nalazi na jednom polju i njegov zadatak je
da otkrije na kojem polju je zlato. Na poljima oko provalija se oseća povetarac. Kako se Vumpus ne kupa, na
poljima oko njega oseća se smrad. Ako igrač stane na polje na kome se nalazi provalija ili Vumpus, on strada
i igra je završena. Igrač ima jednu strelu koju može odapeti na susedno polje kako bi ubio Vumpusa. Igrač je
na početnom polju (1,1). Primer table je prikazan na narednoj slici.
105
E
le
kt
ro
n
sk
o
iz
d
an
je
(2
01
6)
8. Iskazna logika
E
le
kt
ro
n
sk
o
iz
d
an
je
(2
01
6)
Glava 9
6)
Logika prvog reda, predikatska logika, znatno je izražajnija od iskazne logike. Osnovna novina u odnosu
na iskaznu logiku je uvodenje kvantifikovanja, univerzalnog i egzistencijalnog. Zahvaljujući kvantifikatorima, u
logici prvog reda mogu se formulisati tvrdenja koja nije moguće formulisati na jeziku iskazne logike. U logici
01
prvog reda dozvoljeno je samo kvantifikovanje promenljivih.1 U okviru logike prvog reda mogu se opisati mnoge
matematičke teorije.
(2
Kao i iskazna logika, logika prvog reda ima tri aspekta: svoju sintaksu (ili jezik), svoju semantiku (ili značenje
iskaza) i svoje deduktivne sisteme (sisteme za dokazivanje teorema). I semantika i deduktivni sistemi grade se
nad isto definisanom sintaksom, tj. nad istim skupom formula.
je
Kao i u iskaznoj logici, centralni problemi u predikatskoj logici su ispitivanje da li je data formula valjana
i da li je data formula zadovoljiva. Za razliku od iskazne logike, ovi problemi nisu odlučivi, te ne postoje
an
efektivni algoritmi za njihovo rešavanje. No, problem ispitivanja valjanosti za predikatsku logiku je poluodlučiv,
pa postoje metode koje za svaku valjanu formulu mogu da dokažu da je ona valjana (a ne mogu za bilo koju
d
mantičke, a neki deduktivne (tj. sintaksičko-deduktivne) prirode. Ključna veza izmedu ova dva koncepta je
tvrdenje da je formula valjana (što je semantička kategorija) ako i samo ako je ona teorema (što je deduk-
o
tivna kategorija). Zahvaljujući ovoj vezi, sintaksa predikatske logike (jezik predikatske logike), njena semantika
(konvencije o značenju formula) i njena deduktivna svojstva čine kompaktnu celinu.
sk
Logika prvog reda je izražajnija od iskazne logike i njenim sredstvima može se opisati još više praktičnih
problema. Za neke probleme (nad konačnim domenima) pogodnije je rešavanje korišćenjem iskazne logike, ali
n
Primer 9.1. Razmotrimo jednu (jednostavnu varijantu) problema slaganja blokova: blokovi (označeni slovima)
poredani su jedan na drugi. Za neke se zna da li su ispod ili iznad nekog drugog bloka, ali nije zadata potpuna
kt
informacija o poretku svih blokova (ovaj problem može se razmatrati i kao problem muzičkih kompakt diskova
poredanih na jednom štapu).
le
E
𝐵
𝐴
𝐶
107
9.1. Sintaksa logike prvog reda 108
promenljiva 𝑎𝐴𝐵 može da označava da je 𝐴 iznad 𝐵 , 𝑎𝐴𝐶 da je 𝐴 iznad 𝐶 , 𝑎𝐵𝐴 da je 𝐵 iznad 𝐴, 𝑏𝐵𝐶 da je 𝐵
ispod 𝐶 , itd. Potrebno je za svaka dva bloka obezbediti da važi da ako je prvi iznad drugog, onda drugi nije iznad
prvog, odnosno: 𝑎𝐴𝐵 ⇒ ¬𝑎𝐵𝐴 . Potrebno je za svaka dva bloka obezbediti da važi da ako je prvi iznad drugog,
onda je drugi ispod prvog i obratno, odnosno: 𝑎𝐴𝐵 ⇔ 𝑏𝐵𝐴 . Potrebno je za svaka tri bloka obezbediti da važi: ako
je prvi iznad drugog i drugi iznad trećeg, onda je prvi iznad trećeg, odnosno: 𝑎𝐴𝐵 (︀ )︀∧ 𝑎𝐵𝐶 ⇒ 𝑎𝐴𝐶 . Ako postoje
tri bloka, onda ovakvih uslova ima 3! = 6, a ako ih ima 𝑛, onda tih uslova ima 6 𝑛3 . Dakle, iako jeste moguće,
kodiranje u terminima iskazne logike može da bude rogobatno i prostorno veoma zahtevno. Bilo bi dobro ako
bismo umesto 6 𝑛3 uslova mogli da koristimo samo jedan: „za svaka tri bloka 𝑋 , 𝑌 , 𝑍 važi: ako je 𝑎𝑋𝑌 i 𝑎𝑌 𝑍
(︀ )︀
onda je 𝑎𝐴𝐶 .“ Logika prvog reda daje takvu mogućnost i zadati problem mogao bi da se elegantno opiše sledećim
uslovima, pri čemu se ne koriste iskazne promenljive poput 𝑎𝐴𝐵 nego atomičke formule sa argumentima poput
𝑎(𝐴, 𝐵):
„za svaka dva bloka 𝑥, 𝑦 važi: ako je 𝑎(𝑥, 𝑦) onda nije 𝑎(𝑦, 𝑥).“
„za svaka dva bloka 𝑥, 𝑦 važi: 𝑎(𝑥, 𝑦) ako i samo ako 𝑏(𝑦, 𝑥).“
„za svaka tri bloka 𝑥, 𝑦 , 𝑧 važi: ako je 𝑎(𝑥, 𝑦) i 𝑎(𝑦, 𝑧) onda je 𝑎(𝑥, 𝑧).“
6)
Za sve navedene, a i druge slične formule, potrebno je definisati način na koji im se pridružuje vrednost
01
tačno ili netačno. Iz navedenih uslova potrebno je za proizvoljna tri bloka 𝑥, 𝑦 , 𝑧 , iz pretpostavke da važi 𝑎(𝑦, 𝑥)
i 𝑏(𝑧, 𝑥) izvesti zaključak 𝑎(𝑦, 𝑧) ili 𝑎(𝑧, 𝑦).
(2
9.1 Sintaksa logike prvog reda
je
Sintaksički aspekt logike prvog reda govori o njenom jeziku — o skupu njenih ispravnih formula i ne razmatra
njihovo (moguće) značenje.
an
Definicija 9.1 (Jezik i signatura prvog reda). Jezik prvog reda definiše se za
d
Logički (ili opšti) deo jezika prvog reda koji čine skupovi: fiksiran, prebrojiv skup promenljivih 𝑉 , dve
logičke konstante — tačno i netačno, konačan skup osnovnih logičkih veznika: unarnog — negacija
iz
Nelogički deo jezika prvog reda koji čine skupovi: (najviše prebrojiv) skup funkcijskih simbola (sa
sk
fiksiranim nenegativnim arnostima), (najviše prebrojiv) skup predikatskih (relacijskih) simbola (sa
fiksiranim nenegativnim arnostima).
n
Skupovi funkcijskih i predikatskih simbola sa svojim fiksiranim arnostima (odredenim funkcijom 𝑎𝑟) čine
ro
signaturu.
Funkcijske simbole arnosti 0 zovemo simbolima konstanti.
kt
Skup formula logike prvog reda ili dobro zasnovanih formula, u daljem tekstu samo skup formula nad nekom
le
Definicija 9.2 (Skup formula logike prvog reda). Skup formula logike prvog reda nad signaturom ℒ ispu-
njava sledeće uslove:
promenljive i funkcijski simboli arnosti 0 su termovi; term je i objekat dobijen primenom funkcijskog
simbola 𝑓 arnosti 𝑛 na termove 𝑡1 , . . . , 𝑡𝑛 ;
atomička formula je objekat dobijen primenom predikatskog simbola 𝑝 arnosti 𝑛 na termove 𝑡1 , . . . , 𝑡𝑛 ;
atomičke formule su formule;
ako su 𝒜 i ℬ formule, onda su formule i objekti dobijeni kombinovanjem ovih formula logičkim
veznicima i kvantifikatorima (sa promenljivim).
Literal je atomička formula ili negacija atomičke formule. Klauza je disjunkcija više literala.
U navedenoj definiciji (u duhu apstraktne sintakse) ne govori se o tome kako se zapisuju ili čitaju formule
logike prvog reda, već samo o tome kako se grade na apstraktni način (implicitno — u vidu stabla). Konkretnom
sintaksom može se zadati način na koji se formule zapisuju. Analogno iskaznom slučaju, uobičajeno je da se
logičke konstante tačno i netačno zapisuju kao ⊤ i ⊥ (a čitaju kao te i nete), da se negacija zapisuje kao
109 9. Logika prvog reda
¬, konjunkcija kao ∧, disjunkcija kao ∨, implikacija kao ⇒, ekvivalencija kao ⇔, univerzalni kvantor kao ∀,
egzistencijalni kao ∃. Primenu funkcijskog simbola 𝑓 na termove 𝑡1 , . . . , 𝑡𝑛 zapisujemo kao 𝑓 (𝑡1 , . . . , 𝑡𝑛 ) (i
analogno za predikatske simbole). U ovakvom konkretnom zapisu (koji će se koristiti u nastavku), analogno
iskaznom slučaju, ako su 𝒜 i ℬ formule i 𝑥 element skupa 𝑉 , onda su formule i (¬𝒜), (𝒜 ∧ ℬ), (𝒜 ∨ ℬ), ∀𝑥𝒜,
∃𝑥𝒜 i slično. Na primer, zapis ∀𝑥𝒜 čitamo „za svako 𝑥 𝒜“, zapis ∃𝑥𝒜 čitamo „postoji 𝑥 takvo da je 𝒜“, U
ovakvom, konkretnom zapisu, neophodno je koristiti zagrade kako bi se izbegla višesmislenost. Da bi se izbeglo
korišćenje velikog broja zagrada obično se izostavljaju spoljne zagrade i podrazumeva prioritet veznika kao u
iskaznoj logici, uz dodatak da kvantifikatori imaju viši prioritet od svih logičkih veznika.
Termove, atomičke formule i formule nad signaturom ℒ ponekad ćemo kraće zvati i ℒ-termovi, ℒ-atomičke
formule i ℒ-formule. Ako je signatura jasno odredena kontekstom ili ako nije relevantna, govorićemo često samo
termovi, atomičke formule i formule.
Uz indeks ili bez indeksa, simbole konstanti obično (mada ne isključivo) označavamo simbolima 𝑎, 𝑏, 𝑐, . . .,
funkcijske simbole arnosti veće od 0 simbolima 𝑓, 𝑔, ℎ, . . ., predikatske simbole simbolima 𝑝, 𝑞, 𝑟, . . ., promenljive
simbolima 𝑥, 𝑦, 𝑧, . . ., formule simbolima 𝒜, ℬ, 𝒞, . . ., skupove formula simbolima Γ, Δ, . . ..
Ako su dve formule 𝒜 i ℬ sintaksički identične (tj. ako su zapisane u konkretnoj sintaksi jednake kao nizovi
simbola), onda to označavamo 𝒜 = ℬ . U suprotnom, pišemo 𝒜 = ̸ ℬ.
6)
Primer 9.2. Signatura za problem iz primera 9.1 je ℒ = ({}, {𝑎, 𝑏}, 𝑎𝑟), gde je 𝑎𝑟(𝑎) = 𝑎𝑟(𝑏) = 2.
01
Primer 9.3. Jedan skup (aritmetičkih) formula može se opisati signaturom ℒ = ({0𝑎 , +𝑎 , ·𝑎 }, {<𝑎 , =𝑎 }, 𝑎𝑟), gde
je 𝑎𝑟(0𝑎 ) = 0, 𝑎𝑟(+𝑎 ) = 2, 𝑎𝑟(·𝑎 ) = 2, 𝑎𝑟(<𝑎 ) = 2, 𝑎𝑟(=𝑎 ) = 2. Neki od termova nad ovom signaturom i skupom
(2
promenljivih 𝑉 = {𝑥, 𝑦, 𝑧, . . .} su: 0𝑎 , +𝑎 (𝑥, 𝑦), a neke od formula su <𝑎 (+𝑎 (𝑥, 𝑦), 𝑧), <𝑎 (𝑥, 0𝑎 ), ∀𝑥¬(<𝑎
(𝑥, 𝑥)), ∀𝑥(=𝑎 (𝑥, +𝑎 (𝑥, 0𝑎 ))). Ukoliko se funkcijski i predikatski simboli zapišu infiksno (umesto prefiksno),
onda se navedeni termovi i formule zapisuju na sledeći način: 0𝑎 , 𝑥 +𝑎 𝑦 , 𝑥 +𝑎 𝑦 <𝑎 𝑧 , 𝑥 <𝑎 0𝑎 , ∀𝑥¬(𝑥 <𝑎 𝑥),
∀𝑥(𝑥 =𝑎 (𝑥 +𝑎 0𝑎 )). je
Predikatski simbol =𝑎 iz navedene signature ne treba mešati sa simbolom = koji se koristi za označavanje
an
sintaksički jednakosti izmedu formula (ili za jednakost celih brojeva). Slično, funkcijski simbol 0𝑎 ne treba mešati
sa brojem 0 niti funkcijski simbol +𝑎 sa operacijom sabiranja, koja se obično označava simbolom +. Baš da
d
Primer 9.4. Razmotrimo signaturu ℒ = ({𝑎}, {𝑝, 𝑞}, 𝑎𝑟), gde je 𝑎𝑟(𝑎) = 0, 𝑎𝑟(𝑝) = 1, 𝑎𝑟(𝑞) = 1.
sk
Neki od termova nad ovom signaturom i skupom promenljivih 𝑉 = {𝑥, 𝑦, 𝑧, . . .} su 𝑥, 𝑦 , 𝑎, neke od atomičkih
formula su 𝑝(𝑥), 𝑞(𝑦), 𝑞(𝑎), a neke od formula (∀𝑥)(𝑝(𝑥) ⇒ 𝑞), ((∀𝑥)𝑝(𝑥)) ⇒ 𝑞).
n
Primer 9.5. Razmotrimo signaturu ℒ = ({𝑠𝑜𝑘𝑟𝑎𝑡}, {𝑚𝑎𝑛, 𝑚𝑜𝑟𝑡𝑎𝑙}, 𝑎𝑟), gde je 𝑎𝑟(𝑠𝑜𝑘𝑟𝑎𝑡) = 0, 𝑎𝑟(𝑚𝑎𝑛) = 1,
ro
𝑎𝑟(𝑚𝑜𝑟𝑡𝑎𝑙) = 1. Neki od termova nad ovom signaturom i skupom promenljivih 𝑉 = {𝑥, 𝑦, 𝑧, . . .} su: 𝑥, 𝑦 ,
𝑠𝑜𝑘𝑟𝑎𝑡, neke od atomičkih formula su 𝑚𝑎𝑛(𝑥), 𝑚𝑜𝑟𝑡𝑎𝑙(𝑦), 𝑚𝑜𝑟𝑡𝑎𝑙(𝑠𝑜𝑘𝑟𝑎𝑡), a neke od formula su (∀𝑥)𝑚𝑎𝑛(𝑥),
(∀𝑥)(𝑚𝑎𝑛(𝑥) ⇒ 𝑚𝑜𝑟𝑡𝑎𝑙(𝑥)),
kt
le
Definicija 9.3 (Slobodno i vezano pojavljivanje promenljive). U formulama ∀𝑥𝒜 i ∃𝑥𝒜, formula 𝒜 je
doseg kvantifikatora.
E
Pojavljivanje promenljive 𝑥 je vezano u ∀𝑥 i ∃𝑥, kao i ako je u dosegu kvantifikatora ∀𝑥 ili ∃𝑥 a inače
je slobodno.
Promenljiva je vezana (slobodna) u formuli ako i samo ako ima vezano (slobodno) pojavljivanje u toj
formuli.
Primer 9.6. U formuli 𝑝(𝑥, 𝑦), pojavljivanje promenljive 𝑥 je slobodno i ona je slobodna u ovoj formuli.
U formuli 𝑝(𝑥, 𝑦) ⇒ (∀𝑥)𝑞(𝑥) prvo pojavljivanje promenljive 𝑥 je slobodno, a drugo i treće pojavljivanje je
vezano. U ovoj formuli, promenljiva 𝑥 je i slobodna i vezana.
U formuli (∀𝑥)𝑝(𝑥, 𝑦) ⇒ (∀𝑥)𝑞(𝑥), sva pojavljivanja promenljive 𝑥 su vezana i promenljiva je vezana u ovoj
formuli.
U sva tri primera, pojavljivanja promenljive 𝑦 su slobodna.
Formule bez promenljivih zovu se bazne formule, a formule bez slobodnih promenljivih zovu se zatvorene
formule ili rečenice. Za formulu 𝒜 kažemo da je univerzalno zatvorena ako je oblika (∀𝑥1 )(∀𝑥2 ) . . . (∀𝑥𝑘 )𝒜′ ,
pri čemu 𝒜′ ne sadrži slobodne promenljive osim (eventualno) promenljivih 𝑥1 , 𝑥2 , . . . , 𝑥𝑘 . Formula 𝒜 je eg-
zistencijalno zatvorena ako je oblika (∃𝑥1 )(∃𝑥2 ) . . . (∃𝑥𝑘 )𝒜′ pri čemu 𝒜′ ne sadrži slobodne promenljive osim
(eventualno) promenljivih 𝑥1 , 𝑥2 , . . . , 𝑥𝑘 . Ako formula 𝒜 ima kao slobodne samo promenljive 𝑥1 , 𝑥2 , . . . , 𝑥𝑘 onda
formulu (∀𝑥1 )(∀𝑥2 ) . . . (∀𝑥𝑘 )𝒜 nazivamo univerzalnim zatvorenjem formule 𝒜. Ako formula 𝒜 ima kao slobodne
samo promenljive 𝑥1 , 𝑥2 , . . . , 𝑥𝑘 , onda formulu (∃𝑥1 )(∃𝑥2 ) . . . (∃𝑥𝑘 )𝒜 nazivamo egzistencijalnim zatvorenjem
formule 𝒜.
Pitanja i zadaci
Pitanje 9.1. Kako se još nazivaju funkcijski simboli arnosti 0?
Pitanje 9.2. Koliko ima formula logike prvog reda nad konačnim skupom predikatskih i funkcijskih simbola,
a koliko nad prebrojivim skupom iskaznih promenljivih?
Pitanje 9.3. Šta je literal u logici prvog reda?
6)
Pitanje 9.4. Šta je klauza u logici prvog reda?
01
Pitanje 9.5. Šta je term u logici prvog reda?
(2
Pitanje 9.6. Da li je u formuli ∀𝑥(𝑝(𝑥, 𝑦)∧𝑞(𝑦, 𝑧)∧𝑟(𝑧)), promenljiva 𝑥 slobodna ili vezana, da li je promenljiva
𝑦 slobodna ili vezana, da li je promenljiva 𝑧 slobodna ili vezana?
Zadatak 9.1. Zapisati narednu rečenicu u vidu formule logike prvog reda:
je
(a) Svako voli nekoga i niko ne voli svakoga ili neko voli svakoga i neko ne voli nikoga.
an
(b) Možete lagati neke ljude sve vreme i možete lagati sve ljude neko vreme, ali ne možete lagati sve ljude
sve vreme.
d
9.2 Zamena
iz
Zamena promenljive termom definiše se u logici prvog reda u istom duhu kao u iskaznoj logici, uz dva pravila
koja obezbeduju, na primer, da ((∀𝑦)𝑝(𝑥, 𝑦))[𝑥 ↦→ 𝑦] ne bude (∀𝑦)𝑝(𝑦, 𝑦) već (∀𝑧)𝑝(𝑦, 𝑧):
o
sk
(∃𝑧)𝒜[𝑦 ↦→ 𝑧][𝑥 ↦→ 𝑡𝑥 ].
kt
Definicija 9.4 (Zamena). Uopštena zamena (supstitucija) 𝜎 je skup zamena [𝑥1 ↦→ 𝑡1 ], [𝑥2 ↦→ 𝑡2 ], . . .,
le
Definicija 9.6 (Instanca izraza). Ako je 𝐸 izraz (term ili formula) i ako je 𝜑 supstitucija, onda kažemo
da je 𝐸𝜑 instanca (ili primerak) izraza 𝐸 .
6)
Definicija 9.7 (Zamena). Neka su formule ℬ1 i ℬ2 takve da formula ℬ2 nema nijednu slobodnu promenljivu
01
koju nema formula ℬ1 . Formulu dobijenu zamenom (supstitucijom) formule ℬ1 formulom ℬ2 u formuli 𝒜,
označavamo sa 𝒜[ℬ1 ↦→ ℬ2 ] i definišemo na sledeći način:
(2
ako je formula 𝒜 instanca formule ℬ1 , tj. ako je 𝒜 = ℬ1 𝜎 za neku supstituciju 𝜎 , onda je 𝒜[ℬ1 ↦→
ℬ2 ] = ℬ2 𝜎 ;
je
ako je formula 𝒜 atomička formula i nije instanca formule ℬ1 , onda je 𝒜[ℬ1 ↦→ ℬ2 ] = 𝒜;
an
(¬𝒜)[ℬ1 ↦→ ℬ2 ] = ¬(𝒜[ℬ1 ↦→ ℬ2 ]);
(𝒜 ∧ ℬ)[ℬ1 ↦→ ℬ2 ] = (𝒜[ℬ1 ↦→ ℬ2 ] ∧ ℬ[ℬ1 ↦→ ℬ2 ]);
d
Semantički aspekt logike prvog reda govori o značenju formula. U nastavku će biti uvedena semantika logike
le
prvog reda u stilu Tarskog (koji je prvi precizno uveo pojam semantike 1933. godine). Tako uvedenu semantiku
E
zovemo i semantika Tarskog. Kao i u jednostavnijem slučaju iskazne logike, osnovna ideja semantike Tarskog
je da istinitosne vrednosti formula definiše u skladu sa uobičajenim, svakodnevnim rasudivanjem. U odnosu na
iskazni slučaj, stvari komplikuju kvantifikatori, kao i potpuno drugačija priroda promenljivih. Interpretaciju,
dodatno, ne odreduje samo način na koji su promenljivim pridružene vrednosti, nego i šta odgovara funkcijskim
i predikatskim simbolima – neke konkretne funkcije i relacije nad izabranim domenom. Zbog toga, istinitosna
vrednost formule zavisi od više izbora i za različite izbore može da bude drugačija. Ako je formula tačna za
svaki od ovih izbora, onda se kaže da je valjana.
U nastavku ćemo smatrati da se podrazumeva (i kada to nije eksplicitno rečeno) da se, kada se govori o
formulama, govori o ℒ-formulama za neku fiksiranu signaturu ℒ i fiksan skup promenljivih 𝑉 .
Definicija 9.8 (ℒ-struktura). Za datu signaturu ℒ, ℒ-struktura D je par (𝐷, 𝐼 ℒ ), gde je 𝐷 skup, a 𝐼 ℒ
funkcija pri čemu važi sledeće:
𝐷 je neprazan skup i zovemo ga domen ili univerzum;
svakom simbolu konstante 𝑐 iz ℒ (tj. svakom funkcijskom simbolu arnosti 0), funkcija 𝐼 ℒ pridružuje
jedan element 𝑐𝐼 iz 𝐷;
9.3. Semantika logike prvog reda 112
svakom funkcijskom simbolu 𝑓 iz ℒ za koji je 𝑎𝑟(𝑓 ) = 𝑛 i 𝑛 > 0, funkcija 𝐼 ℒ pridružuje jednu totalnu
funkciju 𝑓𝐼 iz 𝐷𝑛 u 𝐷;a
svakom predikatskom simbolu 𝑝 iz ℒ za koji je 𝑎𝑟(𝑝) = 𝑛 (i 𝑛 > 0) funkcija 𝐼 ℒ pridružuje jednu
totalnu funkciju 𝑝𝐼 iz 𝐷𝑛 u {0, 1} .
a Funkcija 𝑓 : 𝐴 ↦→ 𝐵 je totalna ako je definisana za svaki element skupa 𝐴.
Primer 9.9. Za signaturu iz primera 9.2, jedna moguća ℒ-struktura je (B, 𝐼 ℒ ), gde je B skup konkretnih
blokova prikazanih na slici 9.1. Funkcija 𝐼 ℒ preslikava predikatske simbole 𝑎 i 𝑏 u relacije „jeste iznad“ i „jeste
ispod“ nad konkretnim blokovima, u konkretnom odnosu koji imaju.
Druga moguća ℒ-struktura za ovu signaturu je (Z, 𝐼 ℒ ), gde je Z skup celih brojeva, a 𝐼 ℒ je funkcija koja
predikatske simbole 𝑎 i 𝑏 preslikava u relacije > i < nad celim brojevima.
Primer 9.10. Za signaturu ℒ iz primera 9.3, jedna ℒ-struktura je par (Z, 𝐼 ℒ ), gde je Z skup celih brojeva, a
𝐼 ℒ funkcija koja simbol 0𝑎 preslikava u ceo broj 0, funkcijske simbole +𝑎 i ·𝑎 u operacije sabiranja i množenja
nad celim brojevima, a predikatske simbole <𝑎 i =𝑎 u relacije < i = nad celim brojevima.
6)
Za istu signaturu jedna ℒ-struktura je i par (N, 𝐼 ℒ ), gde je N skup prirodnih brojeva, a 𝐼 ℒ funkcija koja
simbol 0𝑎 preslikava u prirodni broj 0, funkcijske simbole +𝑎 i ·𝑎 u operacije sabiranja i množenja nad prirodnim
01
brojevima, a predikatske simbole <𝑎 i =𝑎 u relacije < i = nad prirodnim brojevima.
Za istu signaturu jedna ℒ-struktura je i par (D, 𝐼 ℒ ), gde je D skup dana u nedelji — {𝑝𝑜𝑛𝑒𝑑𝑒𝑙𝑗𝑎𝑘, 𝑢𝑡𝑜𝑟𝑎𝑘,
(2
𝑠𝑟𝑒𝑑𝑎, 𝑐𝑒𝑡𝑣𝑟𝑡𝑎𝑘, 𝑝𝑒𝑡𝑎𝑘, 𝑠𝑢𝑏𝑜𝑡𝑎, 𝑛𝑒𝑑𝑒𝑙𝑗𝑎}, a 𝐼 ℒ funkcija koja simbol 0𝑎 preslikava (na primer) u element 𝑛𝑒𝑑𝑒𝑙𝑗𝑎,
predikatski simbol <𝑎 u relaciju prethodni dan, itd.
Primer 9.11. Za signaturu iz primera 9.5 jedna ℒ-struktura je par (D, 𝐼 ℒ ), gde je D skup svih živih bića, a
je
𝐼 ℒ funkcija koja simbol 𝑠𝑜𝑘𝑟𝑎𝑡 preslikava (na primer) u osobu 𝑆𝑜𝑘𝑟𝑎𝑡, predikatski simbol 𝑚𝑎𝑛 u relaciju „biti
an
čovek”, predikatski simbol 𝑚𝑜𝑟𝑡𝑎𝑙 u relaciju „biti smrtan”.
Za istu signaturu jedna ℒ-struktura je i par (N, 𝐼 ℒ ), gde je N skup prirodnih brojeva, a 𝐼 ℒ funkcija koja
simbol 𝑠𝑜𝑘𝑟𝑎𝑡 preslikava (na primer) u broj 0, predikatski simbol 𝑚𝑎𝑛 u unarnu relaciju „biti složen broj”,
d
Ako su 𝑣 i 𝑤 valuacije za isti skup promenljivih i u odnosu na isti domen, onda sa 𝑣 ∼𝑥 𝑤 označavamo da je
sk
𝑣(𝑦) = 𝑤(𝑦) za svaku promenljivu 𝑦 različitu od 𝑥, pri čemu vrednosti 𝑣(𝑥) i 𝑤(𝑥) mogu a ne moraju biti iste.
Ako je D = (𝐷, 𝐼 ℒ ) ℒ-struktura za neku signaturu ℒ i 𝑣 valuacija za skup promenljivih 𝑉 i za domen 𝐷,
onda par (D, 𝑣) odreduje interpretaciju, tj. funkciju 𝐼𝑣 koja preslikava skup ℒ-termova nad skupom promenljivih
n
𝑉 u skup 𝐷, a skup ℒ-formula nad skupom promenljivih 𝑉 u skup {0, 1}. Funkcija 𝐼𝑣 uvodi se narednim dvema
ro
definicijama.
kt
Definicija 9.9 (Interpretacija). Vrednost (ili kraće vrednost ili značenje) terma 𝑡 u interpretaciji 𝐼𝑣 ,
odredenoj ℒ-strukturom D i valuacijom 𝑣 , označavamo sa 𝐼𝑣 (𝑡) i definišemo na sledeći način:
le
6)
Može se dokazati da je na opisani način svakoj formuli 𝒜 nad signaturom ℒ i skupom 𝑉 pridružena (jedin-
stvena) vrednost 𝐼𝑣 (𝒜). Primetimo da 𝐼𝑣 (𝒜) zavisi od 𝑣(𝑥) samo ako promenljiva 𝑥 ima slobodna pojavljivanja
01
u formuli 𝒜. Vrednost 𝐼𝑣 (𝒜), dakle, zavisi samo od slobodnih promenljivih u formuli 𝒜. Specijalno, ako je 𝒜
rečenica, vrednost 𝐼𝑣 (𝒜) uopšte ne zavisi od 𝑣 .
(2
Definicija 9.10 (Zadovoljivost). Ako je interpretacija 𝐼𝑣 odredena ℒ-strukturom D i valuacijom 𝑣 i ako
za ℒ-formulu 𝒜 važi 𝐼𝑣 (𝒜) = 1, onda kažemo da je formula 𝒜 tačna u interpretaciji 𝐼𝑣 i da je ℒ-struktura
D sa valuacijom 𝑣 model formule 𝒜 i pišemo (D, 𝑣) |= 𝒜.
je
Formula 𝒜 je zadovoljiva u ℒ-strukturi D ako postoji valuacija 𝑣 takva da je (D, 𝑣) |= 𝒜. ℒ-formula 𝒜
je zadovoljiva ako postoje ℒ-struktura D i valuacija 𝑣 takve da je (D, 𝑣) |= 𝒜.
an
Ako formula nije zadovoljiva, onda kažemo da je ona kontradiktorna.
d
Definicija 9.11 (Valjanost). Ako je za neku ℒ-strukturu D formula 𝒜 tačna za svaku valuaciju 𝑣 , tj. u
iz
i to zapisujemo |= 𝒜.
sk
Primer 9.12. Formula ∃𝑥(𝑥 <𝑎 0𝑎 ) tačna je u prvoj interpretaciji iz primera 9.10, a nije tačna u drugoj
kt
Primer 9.13. Formula ∀𝑥(𝑚𝑎𝑛(𝑥) ⇒ 𝑚𝑜𝑟𝑡𝑎𝑙(𝑥)) je tačna u prvoj interpretaciji iz primera 9.11, a nije tačna
u drugoj interpretaciji. Dakle, ona nije valjana.
E
Primer 9.14. Razmotrimo formule nad signaturom opisanom u primeru 9.4. Formule ∀𝑥(𝑝(𝑥) ⇒ 𝑞) i (∀𝑥𝑝(𝑥)) ⇒
𝑞 koje se razlikuju po dosegu kvantifikatora ∀𝑥 mogu imati različito značenje.
Jedna moguća interpretacija ovih formula odredena je domenom koji čine svi studenti koji pohadaju neki
kurs, 𝑝(𝑥) se interpretira kao „student 𝑥 će položiti ispit, a 𝑞 se interpretira kao „profesor će biti iznenaden”. Prva
formula se, onda, interpretira kao „za bilo kojeg studenta 𝑥 važi, ako 𝑥 položi ispit, profesor će biti iznenaden“
(tj. „ako bilo koji student položi ispit profesor će biti iznenaden“, što odgovara i formuli (∃𝑥𝑝(𝑥)) ⇒ 𝑞 ), a druga
kao „ako svaki student položi ispit, profesor će biti iznenaden“.
Definicija 9.12. Skup rečenica Γ je konzinstentan (ili zadovoljiv) ako ima bar jedan model. Inače, kažemo
da je skup Γ nekonzistentan, (ili nezadovoljiv, protivrečan, kontradiktoran).
Teorema 9.1. Formula 𝒜 je valjana ako i samo ako je njeno univerzalno zatvorenje valjana formula.
Formula 𝒜 je zadovoljiva ako i samo ako je njeno egzistencijalno zatvorenje zadovoljiva formula.
9.3. Semantika logike prvog reda 114
Pitanja i zadaci
Pitanje 9.7. Za datu signaturu ℒ, šta je to ℒ-struktura D?
Pitanje 9.8. U šta se, u svakoj interpretaciji jezika logike prvog reda, preslikava funkcijski simbol 𝑓 ?
Pitanje 9.9. U šta se, u svakoj interpretaciji jezika logike prvog reda, preslikava predikatski simbol 𝑝?
Pitanje 9.10. U standardnoj semantici logike prvog reda, ako je 𝑥 promenljiva, čemu je jednako 𝐼𝑣 (𝑥) =
Pitanje 9.11. Kada u interpretaciji 𝐼𝑣 formula ∃𝑥𝒞 ima vrednost 0?
Pitanje 9.12. Kada u interpretaciji 𝐼𝑣 formula 𝐼𝑣 (∀𝑥𝒜) ima vrednost 0?
Pitanje 9.13. U logici prvog reda, čemu je, za neku valuaciju 𝑣 , jednaka vrednost 𝐼𝑣 (∀𝑥𝒜)?
Pitanje 9.14. U logici prvog reda, čemu je, za neku valuaciju 𝑣 , jednaka vrednost 𝐼𝑣 (∃𝑥𝒜)?
6)
Pitanje 9.15. Ako, u logici prvog reda, za dve valuacije 𝑣 i 𝑤 važi 𝑣(𝑥) = 1, 𝑣(𝑦) = 2, 𝑤(𝑥) = 3 i 𝑣 ∼𝑥 𝑤,
šta važi za 𝑤(𝑦)?
01
Pitanje 9.16. Da li je problem zadovoljivosti u logici prvog reda odlučiv ili poluodlučiv ili neodlučiv?
Pitanje 9.17. Da li je problem valjanosti u logici prvog reda odlučiv ili poluodlučiv ili neodlučiv?
(2
√
Zadatak 9.2. Odrediti bar jedan model formule (∀𝑥)(𝑝(𝑥) ⇒ 𝑝(𝑓 (𝑥))).
Zadatak 9.3.
√
je
Ispitati da li je ℒ-struktura data sa 𝐷 = {𝑎, 𝑏, 𝑐} i
an
𝑓𝐼 𝑝𝐼 𝑎 𝑏 𝑐
𝑎 𝑏 𝑎 1 1 0
d
𝑏 𝑎 𝑏 1 0 1
𝑐 𝑎 𝑐 0 0 1
iz
√
Zadatak 9.5. Odrediti jedan model i jedan kontramodel za formulu
(∀𝑥)(∃𝑦)(𝑝(𝑓 (𝑥, 𝑦), 𝑎)).
n
√
Zadatak 9.6. Data je formula
ro
√
Zadatak 9.7. Dokazati da je formula (∀𝑥)(∀𝑦)(∃𝑧)(𝑝(𝑥) ∧ 𝑝(𝑦) ⇔ 𝑝(𝑧)) valjana.
E
pri čemu formula ℬ nema slobodnih pojavljivanja promenljive 𝑥. Dokazati da data formula nije valjana ako se
izostavi navedeni dodatni uslov.
115 9. Logika prvog reda
Definicija 9.13. Neka je Γ skup formula i neka je 𝒜 formula nad signaturom ℒ. Kažemo da je formula
𝒜 logička posledica skupa formula Γ i pišemo Γ |= 𝒜 ako je svaki model za Γ istovremeno i model za 𝒜.
Ako je skup Γ konačan, tj. ako je Γ = {ℬ1 , ℬ2 , . . . , ℬ𝑘 }, onda pišemo ℬ1 , ℬ2 , . . . , ℬ𝑘 |= 𝒜. Ako je Γ prazan
skup, onda pišemo |= 𝒜. Ako je |= 𝒜, onda je formula 𝒜 tačna u svakoj interpretaciji i tada je formula 𝒜
valjana. Ako ne važi Γ |= 𝒜, onda to zapisujemo Γ ̸|= 𝒜.
Primer 9.15. Ako sa Γ označimo skup formula (iz primera 9.2): {∀𝑥, 𝑦(𝑎(𝑥, 𝑦) ⇒ ¬𝑎(𝑦, 𝑥)), ∀𝑥, 𝑦(𝑎(𝑥, 𝑦) ⇔
𝑏(𝑦, 𝑥)), ∀𝑥, 𝑦, 𝑧(𝑎(𝑥, 𝑦) ∧ 𝑎(𝑦, 𝑧) ⇒ 𝑎(𝑥, 𝑧))}, onda se može pokazati da važi: Γ |= ∀𝑥, 𝑦, 𝑧(𝑎(𝑦, 𝑥) ∧ 𝑏(𝑧, 𝑥) ⇒
𝑎(𝑦, 𝑧).
Na osnovu definicije logičke posledice, jednostavno se dokazuje naredno tvrdenje (analogno teoremi 8.1).
6)
Teorema 9.2.
(a) Svaka valjana formula je logička posledica praznog skupa formula.
01
(b) Ako je skup Γ kontradiktoran, onda je svaka formula njegova logička posledica. Specijalno, svaka
(2
formula je logička posledica skupa {⊥}.
(c) Ako za skupove formula Γ i Δ važi Γ ⊂ Δ i Γ |= 𝒜, onda je Δ |= 𝒜.
je
Definicija 9.14. Kažemo da su formule 𝒜 i ℬ logički ekvivalentne i pišemo 𝒜 ≡ ℬ ako je 𝒜 logička
an
posledica formule ℬ i ℬ je logička posledica formule 𝒜.
d
Ako je svaki model za 𝒜 istovremeno i model za ℬ i obratno, onda u bilo kojoj valuaciji formule 𝒜 i ℬ
iz
imaju jednake vrednosti. Tvrdenja oblika 𝒜 ≡ ℬ zovemo logičkim ekvivalencijama (ili kraće ekvivalencijama).
Relacija ≡ je, očigledno, relacija ekvivalencije nad skupom formula.
o
(b) 𝒜1 ∧ ℬ1 ≡ 𝒜2 ∧ ℬ2
ro
(c) 𝒜1 ∨ ℬ1 ≡ 𝒜2 ∨ ℬ2
(d) 𝒜1 ⇒ ℬ1 ≡ 𝒜2 ⇒ ℬ2
kt
(e) 𝒜1 ⇔ ℬ1 ≡ 𝒜2 ⇔ ℬ2
le
(f ) (∀𝑥)𝒜1 ≡ (∀𝑥)𝒜2
E
Teorema 9.4. Za datu signaturu ℒ, dve ℒ-formule 𝒜 i ℬ su logički ekvivalentne ako i samo ako je formula
𝒜 ⇔ ℬ valjana.
Primer 9.16. Može se dokazati da za proizvoljnu ℒ-formulu 𝒜 važi ¬(∃𝑥)𝒜 ≡ (∀𝑥)¬𝒜. Neka je D proizvoljna
ℒ-struktura. Pretpostavimo da važi 𝐼𝑣 (¬(∃𝑥)𝒜) = 1 i dokažimo da onda važi i 𝐼𝑣 ((∀𝑥)¬𝒜) = 1. Iz 𝐼𝑣 (¬(∃𝑥)𝒜) =
1 sledi 𝐼𝑣 ((∃𝑥)𝒜) = 0, pa u svakoj valuaciji 𝑣 ′ , takvoj da je 𝑣 ′ ∼𝑥 𝑣 , važi 𝐼𝑣′ (𝒜) = 0. To znači da u svakoj
valuaciji 𝑣 ′ , takvoj da je 𝑣 ′ ∼𝑥 𝑣 , važi 𝐼𝑣′ (¬𝒜) = 1, a odatle sledi da u svakoj valuaciji 𝑣 ′′ , takvoj da je 𝑣 ′′ ∼𝑥 𝑣 ′ ,
važi 𝐼𝑣′′ ((∀𝑥)¬𝒜) = 1, pa i u valuaciji 𝑣 , tj. 𝐼𝑣 ((∀𝑥)¬𝒜) = 1, što je i trebalo dokazati. Drugi smer tvrdenja (da
iz 𝐼𝑣 ((∀𝑥)¬𝒜) = 1 sledi 𝐼𝑣 (¬(∃𝑥)𝒜) = 1) dokazuje se analogno.
Primer 9.17. Neke od logičkih ekvivalencija logike prvog reda (ili, preciznije, neke od shema logičkih ekviva-
lencija logike prvog reda) su:
9.4. Logičke posledice, logički ekvivalentne formule, zamena 116
6)
(∃𝑥)𝒜 ≡ (∃𝑦)(𝒜[𝑥 ↦→ 𝑦]) zakon o preimenovanju vezane
promenljive (pri čemu 𝒜 ne sadrži
01
slobodna pojavljivanja promenljive 𝑦 )
(2
Korišćenjem navedenih logičkih ekvivalencija, može se dokazati logička ekvivalencija (∀𝑥𝒜) ∧ ℬ ≡ ∀𝑢(𝒜[𝑥 ↦→
𝑢] ∧ ℬ) i slične, a koje govore o tome da se vezane promenljive mogu preimenovati bez uticaja na istinitosnu
vrednost formule.
je
Naredna teorema kaže da ako se u formuli 𝐴 zameni neka njena potformula logički ekvivalentnom formulom,
dobiće se formula koja je logički ekvivalentna formuli 𝐴.
an
Teorema 9.5 (Teorema o zameni). Ako važi ℬ1 ≡ ℬ2 , onda je 𝒜 ≡ 𝒜[ℬ1 ↦→ ℬ2 ].
d
Primer 9.18. Važi ¬(∃𝑥)(𝒜 ∧ ¬ℬ) ≡ (∀𝑥)¬(𝒜 ∧ ¬ℬ) ≡ (∀𝑥)(¬𝒜 ∨ ¬¬ℬ) ≡ (∀𝑥)(¬𝒜 ∨ ℬ) ≡ (∀𝑥)(𝒜 ⇒ ℬ). Iz
iz
¬(∃𝑥)(𝒜 ∧ ¬ℬ) ≡ (∀𝑥)(𝒜 ⇒ ℬ), na osnovu teoreme 9.4 sledi da je formula ¬(∃𝑥)(𝒜 ∧ ¬ℬ) ⇔ (∀𝑥)(𝒜 ⇒ ℬ)
valjana.
o
tj. formule (∀𝑥)(∃𝑦)𝒜 i (∃𝑦)(∀𝑥)𝒜 nisu u opštem slučaju logički ekvivalentne. S druge strane, dva univerzalna
kvantifikatora mogu da zamene mesta, tj. formule (∀𝑥)(∀𝑦)𝒜 i (∀𝑦)(∀𝑥)𝒜 su logički ekvivalentne. Slično, dva
n
egzistencijalna kvantifikatora mogu da zamene mesta, tj. formule (∃𝑥)(∃𝑦)𝒜 i (∃𝑦)(∃𝑥)𝒜 su logički ekvivalentne.
ro
To suštinski znači da u bloku kvantifikatora istog tipa, poredak tih kvantifikatora nije bitan.
Pitanja i zadaci
kt
Pitanje 9.18. Ako je formula prvog reda 𝒜 logička posledica skupa formula Γ, a skup Γ je podskup skupa Δ,
le
Pitanje 9.19. Kada kažemo da su formule logike prvog reda 𝒜 i ℬ logički ekvivalentne?
Pitanje 9.20. Da li je formula (∀𝑥)(𝒜 ∧ ℬ) je logički ekvivalentna nekim od formula:
(∀𝑥)𝒜 ∧ (∀𝑥)ℬ ,
(∀𝑥)𝒜 ∧ ℬ
(∀𝑥)𝒜 ∨ (∀𝑥)ℬ
(∀𝑥)𝒜 ∨ ℬ
√
Zadatak 9.13. Dokazati da je formula (∃𝑥)(𝒜 ⇒ ℬ) ⇔ ((∀𝑥)𝒜 ⇒ (∃𝑥)ℬ) valjana.
Zadatak 9.14. Dokazati da za svaku supstituciju 𝜎 iz 𝒜 ≡ ℬ sledi 𝒜𝜎 ≡ ℬ𝜎 .
Zadatak 9.15. Dokazati da je formula (∀𝑥)(∃𝑦)𝒜 ⇒ (∃𝑦)(𝒜[𝑥 ↦→ 𝑦]) valjana.
Zadatak 9.16. Dokazati sledeću logičku ekvivalenciju:
∃𝑥𝒜 ≡ ∃𝑦(𝒜[𝑥 ↦→ 𝑦])
pri čemu formula 𝒜 nema slobodnih pojavljivanja promenljive 𝑦 . Dokazati da data logička ekvivalencija ne
važi ako se izostavi navedeni dodatni uslov.
Zadatak 9.17. Dokazati da je supstitucija 𝜎 = [𝑥1 ↦→ 𝑡1 , 𝑥2 ↦→ 𝑡2 , . . . , 𝑥𝑛 ↦→ 𝑡𝑛 ] idempotentna (tj. da za bilo
koji izraz 𝐸 važi 𝐸𝜎 = (𝐸𝜎)𝜎 ) ako i samo ako nijedan od termova 𝑡𝑖 ne sadrži nijednu od promenljivih 𝑥𝑗
(sem, eventualno, ako je 𝑡𝑖 = 𝑥𝑖 za neko 𝑖).
6)
9.5 Normalne forme
01
Centralna pitanja u logici prvog reda su ispitivanje zadovoljivosti i valjanosti. Iako je ova pitanja moguće raz-
matrati nad formulama proizvoljnog oblika, daleko je jednostavnije algoritme ispitivanja formulisati za formule
(2
nekog posebnog oblika. Zbog toga se definišu normalne forme i algoritmi kojima se neka formula transformiše
u te normalne forme. Pod transformacijom se podrazumeva konstruisanje formule koja je, na primer, logički
ekvivalentna polaznoj formuli i zadovoljava neka sintaksička ograničenja.
je
Definicija 9.15. Kažemo da je formula u preneks formi ili preneks normalnoj formi ako je ona oblika
an
𝑄1 𝑥1 𝑄2 𝑥2 . . . 𝑄𝑛 𝑥𝑛 𝒜
d
pri čemu je 𝑄𝑖 ili ∀ ili ∃ i 𝒜 ne sadrži kvantifikatore, kao ni slobodne promenljive osim (eventualno)
iz
promenljivih 𝑥1 , 𝑥2 , . . . , 𝑥𝑛 .
Ako je rečenica (zatvorena formula) 𝒜 logički ekvivalentna formuli ℬ i formula ℬ je u preneks normalnoj
o
formi, onda kažemo da je formula ℬ preneks normalna forma formule 𝒜. Korišćenjem pogodnih logičkih ekviva-
sk
lencija, svaka zatvorena formula može biti transformisana u svoju preneks normalnu formu. Radi jednostavnosti
procedure i rezultujuće formule, obično se u okviru transformisanja formule u preneks formu najpre eliminišu
n
veznici ⇔ i ⇒. Naglasimo da jedna formula može da ima više preneks normalnih formi (na primer, i formula
(∀𝑥)(∀𝑦)(𝒜(𝑥)∧ℬ(𝑦)) i formula (∀𝑦)(∀𝑥)(ℬ(𝑦)∧𝒜(𝑥)) su preneks normalne forme formule (∀𝑥)𝒜(𝑥)∧(∀𝑦)ℬ(𝑦)).
ro
Slično, jedna formula koja je u preneks normalnoj formi može biti preneks normalna forma za više formula.
Transformisanje formule u preneks normalnu formu može biti opisano procedurom prikazanom na slici 9.2
kt
(kada govorimo o „primeni neke logičke ekvivalencije“ mislimo na korišćenje ekvivalencije na osnovu teoreme o
zameni (9.5)).
le
Korektnost navedenog algoritma može se dokazati slično kao korektnost procedure za transformisanje formule
u konjunktivnu normalnu formu (teorema 8.4).
E
Teorema 9.6 (Korektnost algoritma PRENEX). Algoritam PRENEX se zaustavlja i zadovoljava sledeće
svojstvo: ako je 𝒜 ulazna formula, onda je izlazna formula 𝒜′ u preneks normalnoj formi i logički je
ekvivalentna sa 𝒜.
U nekim situacijama moguće je primeniti neki korak navedenog algoritma na više od jednog načina. Na
primer, formulu (∀𝑥)𝑝(𝑥) ∧ (∃𝑦)𝑞(𝑦) moguće je transformisati i u (∀𝑥)(𝑝(𝑥) ∧ (∃𝑦)𝑞(𝑦)) i u (∃𝑦)((∀𝑥)𝑝(𝑥) ∧ 𝑞(𝑦)).
Obe ove formule su, naravno, logički ekvivalentne sa polaznom formulom. Ipak, u situacijama kada je moguće
„pomeriti“ i univerzalni i egzistencijalni kvantifikator, uvek ćemo radije „pomeriti“ najpre egzistencijalni, a onda
univerzalni. Takav prioritet uvodimo zarad jednostavnijeg koraka skolemizacije (o kojem će biti reči u nastavku).
Nakon koraka
∀𝑥(𝑝(𝑥) ∧ ∀𝑥∃𝑦∀𝑧(𝑞(𝑦, 𝑧) ⇒ 𝑟(𝑔(𝑥), 𝑦))) ,
9.5. Normalne forme 118
Algoritam: PRENEX
6)
3. Eliminisati višestruke veznike ¬ koristeći zakon dvojne negacije:
01
¬¬𝒜 ≡ 𝒜.
4. Dok god je to moguće, primenjivati sledeće logičke ekvivalencije:
(2
(∀𝑥𝒜) ∧ ℬ ≡ (∀𝑥)(𝒜 ∧ ℬ),
(∀𝑥𝒜) ∨ ℬ ≡ (∀𝑥)(𝒜 ∨ ℬ),
ℬ ∧ (∀𝑥)𝒜 ≡ (∀𝑥)(ℬ ∧ 𝒜),
ℬ ∨ (∀𝑥)𝒜 ≡ (∀𝑥)(ℬ ∨ 𝒜),
je
an
(∃𝑥𝒜) ∧ ℬ ≡ (∃𝑥)(𝒜 ∧ ℬ),
(∃𝑥𝒜) ∨ ℬ ≡ (∃𝑥)(𝒜 ∨ ℬ),
d
pri čemu 𝑥 nema slobodna pojavljivanja u formuli ℬ . Ako 𝑥 ima slobodna pojavljivanja u ℬ , onda treba
najpre preimenovati promenljivu 𝑥 u formuli (∀𝑥)𝒜 (odnosno u formuli (∃𝑥)𝒜).
sk
n
kako je promenljiva 𝑥 slobodna u 𝑝(𝑥), najpre ćemo preimenovati vezanu promenljivu 𝑥 u 𝑢 (u okviru formule
kt
Nakon toga kvantifikatori ∀𝑢, ∃𝑦 , ∀𝑧 mogu, jedan po jedan, biti pomereni na početak formule:
E
Definicija 9.16. Formula bez kvantifikatora je u konjunktivnoj normalnoj formi ako je oblika
𝒜1 ∧ 𝒜2 ∧ . . . ∧ 𝒜𝑛
Konjunktivna normalna forma formule predikatske logike može se dobiti na isti način kao i u slučaju iskazne
logike (videti poglavlje 8.5).
Primer 9.20. Konjunktivna normalna forma formule
𝑝(𝑥) ∧ (𝑞(𝑦, 𝑧) ⇒ 𝑟(𝑔(𝑢), 𝑦))
je formula
𝑝(𝑥) ∧ (¬𝑞(𝑦, 𝑧) ∨ 𝑟(𝑔(𝑢), 𝑦)) .
119 9. Logika prvog reda
gde je 𝒜 formula bez kvantifikatora koja je u konjunktivnoj normalnoj formi i 𝒜 nema slobodnih promenljivih
osim, eventualno, promenljivih 𝑥1 , 𝑥2 , . . . , 𝑥𝑛 .
Ako je formula ∀𝑥1 ∀𝑥2 . . . ∀𝑥𝑛 𝒜 u klauzalnoj formi, onda se često u zapisu izostavljaju kvantifikatori i piše
samo 𝒜, podrazumevajući da se misli na univerzalno zatvorenje formule 𝒜.
Ne postoji za svaku rečenicu formula koja je u klauzalnoj formi i koja joj je logički ekvivalentna. Na primer,
za rečenicu (∃𝑥)𝑝(𝑥) ne postoji formula koja je u klauzalnoj formi i koja joj je logički ekvivalentna. Medutim,
može se dokazati da za svaku rečenicu 𝒜 postoji formula ℬ u klauzalnoj formi takva da je 𝒜 zadovoljiva ako
i samo ako je ℬ zadovoljiva. To je dovoljno i pogodno za ispitivanje zadovoljivosti formula — ako se ispituje
zadovoljivost rečenice 𝒜, dovoljno je ispitati zadovoljivost formule ℬ koja je u klauzalnoj formi (pogodnoj za
neke metode) i zadovoljiva je ako i samo ako je zadovoljiva formula 𝒜. Uslov da je formula 𝒜 zadovoljiva ako i
samo ako je ℬ zadovoljiva zove se slaba ekvivalencija.
6)
Transformisanje rečenice 𝒜 u formulu ℬ koja je u klauzalnoj formi i koja je zadovoljiva ako i samo ako je
𝒜 zadovoljiva uključuje eliminisanje egzistencijalnih kvantifikatora. Ono se zasniva na izmeni polazne signature
01
dodavanjem novih funkcijskih simbola. Te dodatne funkcijske simbole zovemo Skolemovim konstantama (za
funkcijske simbole arnosti 0) i Skolemovim funkcijama, a proces eliminisanja egzistencijalnih kvantifikatora
(2
zovemo skolemizacijom (po matematičaru 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 eliminišu se egzistencijalni kvantifikatori, jedan po
jedan, sleva nadesno.
je
Pretpostavimo da rečenica počinje egzistencijalnim kvantifikatorom: ∃𝑦𝒜. Treba izabrati novi simbol kon-
an
stante 𝑑 koji se ne pojavljuje u signaturi, obrisati kvantifikator i zameniti promenljivu 𝑦 simbolom 𝑑. Na taj
način formula ∃𝑦𝒜 transformiše se u formulu 𝒜[𝑦 ↦→ 𝑑]. Može se dokazati da je formula ∃𝑦𝒜 zadovoljiva ako i
samo ako je formula 𝒜[𝑦 ↦→ 𝑑] zadovoljiva.
d
Ako rečenica počinje nizom univerzalnih kvantifikatora: ∀𝑥1 ∀𝑥2 . . . ∀𝑥𝑛 ∃𝑦𝒜, onda uvodimo novi funkcijski
iz
simbol 𝑓 arnosti 𝑛 koji do tada nije postojao u signaturi. Polazna formula biće onda transformisana u formulu
∀𝑥1 ∀𝑥2 . . . ∀𝑥𝑛 𝒜[𝑦 ↦→ 𝑓 (𝑥1 , 𝑥2 , . . . , 𝑥𝑛 )]. Može se dokazati da je formula ∀𝑥1 ∀𝑥2 . . . ∀𝑥𝑛 ∃𝑦𝒜 zadovoljiva ako
i samo ako je formula ∀𝑥1 ∀𝑥2 . . . ∀𝑥𝑛 𝒜[𝑦 ↦→ 𝑓 (𝑥1 , 𝑥2 , . . . , 𝑥𝑛 )] zadovoljiva. (Primetimo da je uvodenje nove
o
Teorema 9.7 (Teorema o skolemizaciji). Ako je formula ℬ nad signaturom ℒ′ dobijena skolemizacijom od
rečenice 𝒜 nad signaturom ℒ koja je u preneks normalnoj formi, onda je 𝒜 zadovoljiva ako i samo ako je
n
ℬ zadovoljiva.
ro
kt
transformiše u formulu
E
Teorema 9.8. Neka je formula ℬ (u klauzalnoj formi) dobijena od rečenice 𝒜 uzastopnom primenom
sledećih postupaka:
transformisanje formule u preneks normalnu formu;
transformisanje dela formule bez kvantifikatora u konjunktivnu normalnu formu;
skolemizacija.
Tada je formula 𝒜 zadovoljiva ako i samo ako je ℬ zadovoljiva.
Dokaz: Transformacija formule u preneks normalnu formu i transformacija dela formule bez kvantifikatora u
konjunktivnu normalnu formu zasnovane su na logičkim ekvivalencijama, pa ako je formula ℬ dobijena od
formule 𝒜 uzastopnom primenom navedene dve transformacije, važi 𝒜 ≡ ℬ , što je jači uslov nego uslov
9.6. Unifikacija 120
da je 𝒜 zadovoljiva ako i samo ako je ℬ zadovoljiva. Na osnovu teoreme 9.7 sledi da skolemizacija čuva
zadovoljivost i nezadovoljivost, pa je formula ℬ zadovoljiva ako i samo ako je 𝒜 zadovoljiva.
Primer 9.22. Formula 𝒜 = (∀𝑥)𝑝(𝑥, 𝑥) ⇒ (∀𝑦)𝑝(𝑦, 𝑦) nad signaturom ℒ je valjana. To se može dokazati na
sledeći način.
Formula ¬𝒜 je jednaka ¬((∀𝑥)𝑝(𝑥, 𝑥) ⇒ (∀𝑦)𝑝(𝑦, 𝑦)) i njena preneks normalna forma je (∃𝑦)(∀𝑥)(𝑝(𝑥, 𝑥) ∧
¬𝑝(𝑦, 𝑦)). Skolemizacijom dobijamo formulu 𝑝(𝑥, 𝑥) ∧ ¬𝑝(𝑐, 𝑐), gde je 𝑐 novi simbol konstante. Neka je ℒ′ sig-
natura dobijena proširivanjem signature ℒ simbolom 𝑐. Pokažimo da je formula 𝑝(𝑥, 𝑥) ∧ ¬𝑝(𝑐, 𝑐) nezadovoljiva.
′
Pretpostavimo suprotno — pretpostavimo da navedena formula ima model. Neka je to ℒ′ -struktura D = (𝐷, 𝐼 ℒ )
ℒ′ ℒ′
sa valuacijom 𝑣 . Neka je 𝐼 (𝑝) = 𝑝𝐼 i 𝐼 (𝑐) = 𝑐𝐼 . Važi 𝐼𝑣 (𝑝(𝑥, 𝑥)∧¬𝑝(𝑐, 𝑐)) = 1 tj. 𝐼𝑣 ((∀𝑥)(𝑝(𝑥, 𝑥)∧¬𝑝(𝑐, 𝑐))) =
1, pa za svaku valuaciju 𝑤 takvu da je 𝑤 ∼𝑥 𝑣 važi 𝐼𝑤 (𝑝(𝑥, 𝑥) ∧ ¬𝑝(𝑐, 𝑐)) = 1. To, dakle, važi i za valuaciju 𝑤 u
kojoj je 𝑤(𝑥) = 𝑐𝐼 . Iz 𝐼𝑤 (𝑝(𝑥, 𝑥) ∧ ¬𝑝(𝑐, 𝑐)) = 1 sledi 𝐼𝑤 (𝑝(𝑥, 𝑥)) = 1 i 𝐼𝑤 (𝑝(𝑐, 𝑐)) = 0. Iz 𝐼𝑤 (𝑝(𝑥, 𝑥)) = 1 sledi
6)
𝑝𝐼 (𝑐𝐼 , 𝑐𝐼 ) = 1, a iz 𝐼𝑤 (𝑝(𝑐, 𝑐)) = 0 sledi 𝑝𝐼 (𝑐𝐼 , 𝑐𝐼 ) = 0, što je kontradikcija. Dakle, formula 𝑝(𝑥, 𝑥) ∧ ¬𝑝(𝑐, 𝑐) je
nezadovoljiva, pa je polazna formula 𝒜 valjana.
01
Pitanja i zadaci
(2
Pitanje 9.25. Navesti algoritam PRENEX.
Pitanje 9.26. Dokazati da je formula dobijena algoritmom PRENEX logički ekvivalentna ulaznoj formuli.
je
Pitanje 9.27. Kako se zove postupak kojim se formula prvog reda transformiše u formulu bez kvantifikatora?
an
Pitanje 9.28. Navesti teoremu o skolemizaciji.
d
Pitanje 9.29. Ako je formula ℬ dobijena od formule 𝒜 skolemizacijom, kakav odnos važi za ove dve formule?
iz
Pitanje 9.30. Zašto formula 𝒜 i formula dobijena od nje skolemizacijom nisu logički ekvivalentne?
Pitanje 9.31. Kada za dve formule 𝐴 i 𝐵 logike prvog reda kažemo da su slabo ekvivalentne?
o
sk
Pitanje 9.32. Primenom koja tri koraka se dobija klauzalna forma formule 𝒜?
Pitanje 9.33. U kakvom su odnosu formula 𝒜 i njena klauzalna forma?
n
9.6 Unifikacija
E
Problem unifikacije je problem ispitivanja da li postoji supstitucija koja čini dva izraza (dva terma ili dve
formule) jednakim.
Definicija 9.18. Ako su 𝑒1 i 𝑒2 izrazi i ako postoji supstitucija 𝜎 takva da važi 𝑒1 𝜎 = 𝑒2 𝜎 , onda kažemo
da su izrazi 𝑒1 i 𝑒2 unifikabilni i da je supstitucija 𝜎 unifikator za ta dva izraza.
Primer 9.23. Neka je term 𝑡1 jednak 𝑔(𝑥, 𝑧), neka je term 𝑡2 jednak 𝑔(𝑦, 𝑓 (𝑦)) i neka je 𝜎 supstitucija [𝑦 ↦→
𝑥, 𝑧 ↦→ 𝑓 (𝑥)]. Tada je i 𝑡1 𝜎 i 𝑡2 𝜎 jednako 𝑔(𝑥, 𝑓 (𝑥)), pa su termovi 𝑡1 i 𝑡2 unifikabilni, a 𝜎 je (jedan) njihov
unifikator. Unifikator termova 𝑡1 i 𝑡2 je npr. i [𝑥 ↦→ 𝑎, 𝑦 ↦→ 𝑎, 𝑧 ↦→ 𝑓 (𝑎)]. Termovi 𝑔(𝑥, 𝑥) i 𝑔(𝑦, 𝑓 (𝑦)) nisu
unifikabilni.
Dva unifikabilna izraza mogu da imaju više unifikatora. Za dva unifikatora 𝜎1 i 𝜎2 kažemo da su jednaka
do na preimenovanje promenljivih ako postoji supstitucija 𝜆 koja je oblika [𝑣1′ ↦→ 𝑣1′′ , 𝑣2′ ↦→ 𝑣2′′ , . . . , 𝑣𝑛′ ↦→ 𝑣𝑛′′ ], pri
čemu su 𝑣𝑖′ i 𝑣𝑖′′ simboli promenljivih i važi 𝜎1 𝜆 = 𝜎2 .
121 9. Logika prvog reda
3. Ako je 𝑥 promenljiva i 𝑡 term koji nije promenljiva i ako se (𝑡, 𝑥) pojavljuje u nizu parova, zameni par
(𝑡, 𝑥) parom (𝑥, 𝑡). Ovo uraditi za sve parove tog oblika (orientation).
4. Pretpostavimo da je par (𝑠, 𝑡) element niza parova i da ni 𝑠 ni 𝑡 nisu promenljive. Razmotri sledeće
slučajeve:
6)
(a) Ako je 𝑠 jednako 𝜙(𝑢1 , 𝑢2 , . . . , 𝑢𝑘 ) i 𝑡 je jednako 𝜙(𝑣1 , 𝑣2 , . . . , 𝑣𝑘 ) (gde je 𝜙 funkcijski ili predikatski
simbol), onda dodaj parove (𝑢1 , 𝑣1 ), (𝑢2 , 𝑣2 ), . . ., (𝑢𝑘 , 𝑣𝑘 ) i zatim obriši par (𝑠, 𝑡) (decomposition).
01
(b) Ako su 𝑠 i 𝑡 bilo koje druge forme, zaustavi rad i kao rezultat vrati neuspeh (ovo se odnosi na slučajeve
kada je jedan od termova simbol konstante, a drugi nije; kada se u 𝑠 i 𝑡 razlikuju vodeći funkcijski
(2
(odnosno predikatski) simboli i kada su vodeći funkcijski (odnosno predikatski) simboli 𝑠 i 𝑡 različite
arnosti) (collision).
5. Ako je 𝑥 promenljiva i 𝑡 term koji sadrži 𝑥 i par (𝑥, 𝑡) se pojavljuje u tekućem nizu parova, zaustavi rad i
kao rezultat vrati neuspeh (cycle). je
an
6. Ako je 𝑥 promenljiva i 𝑡 term koji ne sadrži 𝑥, 𝑥 se pojavljuje i u nekim drugim parovima i (𝑥, 𝑡) se
pojavljuje u nizu parova, onda primeni supstituciju [𝑥 ↦→ 𝑡] na sve druge parove (application).
d
Ako nije moguće primeniti nijedan od navedenih koraka vrati tekući skup parova kao najopštiji unifikator.
iz
Definicija 9.19. Supstitucija 𝜎 je najopštiji unifikator za izraze 𝑒1 i 𝑒2 ako svaki unifikator 𝜏 izraza 𝑒1 i
𝑒2 može biti predstavljen u obliku 𝜏 = 𝜎𝜇 za neku supstituciju 𝜇.
n
ro
Na osnovu definicije, svaki unifikator izraza 𝑒1 i 𝑒2 može biti dobijen od najopštijeg unifikatora primenom
neke supstitucije. Svaka dva unifikabilna izraza imaju najopštiji unifikator. Može se dokazati da za dva izraza
kt
unifikacije ili vraća traženu supstituciju ili se zaustavlja sa uspehom, ukazujući na to da tražena supstitucija ne
postoji.
E
Primetimo da je korak 6 algoritma moguće u opštem slučaju primeniti na više načina. Bilo koji od tih
načina vodi istom rezultatu — neuspehu (ako ne postoji traženi unifikator) ili jednom od unifikatora koji se
mogu razlikovati samo do na preimenovanje promenljivih.
Primer 9.24. Ilustrujmo rad algoritma za odredivanje na primeru sledeća dva para:
(𝑔(𝑦), 𝑥)
𝜎 = [𝑥 ↦→ 𝑔(𝑧), 𝑤 ↦→ ℎ(𝑔(𝑧)), 𝑦 ↦→ 𝑧]
važi
𝑔(𝑦)𝜎 = 𝑥𝜎
𝑓 (𝑥, ℎ(𝑥), 𝑦)𝜎 = 𝑓 (𝑔(𝑧), 𝑤, 𝑧)𝜎
tj. važi
𝑔(𝑧) = 𝑔(𝑧)
6)
𝑓 (𝑔(𝑧), ℎ(𝑔(𝑧)), 𝑧) = 𝑓 (𝑔(𝑧), ℎ(𝑔(𝑧)), 𝑧) .
Primer 9.25. Razmotrimo sledeći par:
01
(𝑔(𝑥, 𝑥), 𝑔(𝑦, 𝑓 (𝑦))) .
(2
Primenom koraka 4(𝑎) dobijamo
(𝑥, 𝑦), (𝑥, 𝑓 (𝑦)).
Korak 6 može se primeniti samo na dva načina:
je
primenom koraka za par (𝑥, 𝑦); tada se dobija (𝑥, 𝑦), (𝑦, 𝑓 (𝑦)), odakle se, primenom koraka 5 dolazi do
an
neuspeha.
primenom koraka za par 𝑥 = 𝑓 (𝑦)); tada se dobija (𝑓 (𝑦), 𝑦), (𝑥, 𝑓 (𝑦)), odakle se, primenom koraka 3 i
d
Bez dokaza navodimo teoremu o korektnosti navedenog algoritma za odredivanje najopštijeg unifikatora.
Teorema 9.9 (Korektnost algoritma Najopštiji unifikator). Algoritam Najopštiji unifikator zadovoljava
o
sledeće uslove:
sk
zaustavlja se;
n
ako vrati supstituciju, onda je ona najopštiji unifikator za dati niz parova izraza;
ro
ako se algoritam zaustavi sa neuspehom, onda ne postoji unifikator za dati niz parova izraza.
kt
Navedeni algoritam nije efikasan. Postoje znatno efikasniji algoritmi za unifikaciju. Mnogi od njih zasnovani
su na korišćenju pogodnih struktura podataka i implicitnom primenjivanju supstitucije (iz koraka 6). Neki od
le
tih algoritama imaju linearnu složenost (po broju polaznih parova), ali, u opštem slučaju, najopštiji unifikator
može imati i eksponencijalnu dužinu (po broju polaznih parova), te ga nije moguće eksplicitno predstaviti u
E
Pitanja i zadaci
Pitanje 9.34. Navesti primer izraza koji pokazaju da relacija unifikabilnosti nije tranzitivna.
123 9. Logika prvog reda
Pitanje 9.35. Ako je za neka dva izraza 𝜎 neki unifikator, a 𝜆 najopštiji unifikator, kakav onda postoji
unifikator 𝜇?
Pitanje 9.36. Do na šta dva izraza imaju jedinstven najopštiji unifikator?
Pitanje 9.37. Kako glasi pravilo cycle algoritma za pronalaženje najopštijeg unifikatora?
Pitanje 9.38. U kom slučaju je primenljivo pravilo decomposition u algoritmu za odredivanje najopštijeg
unifikatora?
Pitanje 9.39. U kojim koracima algoritam za nalaženje najopštijeg unifikatora može da vrati neuspeh?
Pitanje 9.40. Navesti algoritam za odredivanje najopštijeg unifikatora.
Pitanje 9.41. Ako dva izraza nisu unifikabilna, da li je moguće da se algoritam Najopštiji unifikator zaustavi
sa uspehom?
Pitanje 9.42. Ako dva izraza nisu unifikabilna, da li je moguće da se algoritam Najopštiji unifikator zaustavi
6)
sa neuspehom?
01
Pitanje 9.43. Ako dva izraza nisu unifikabilna, da li je moguće da se algoritam Najopštiji unifikator ne zaustavi?
Pitanje 9.44. Da li algoritam za odredivanje najopštijeg unifikatora pripada klasi P? Zašto?
(2
Pitanje 9.45. Šta je najopštiji unifikator za termove 𝑓 (𝑥, 𝑔(𝑎, 𝑦)) i 𝑓 (𝑧, 𝑔(𝑥, 𝑧)) (𝑥, 𝑦 i 𝑧 su simboli promen-
ljivih, 𝑎 je simbol konstante)?
je
Pitanje 9.46. Šta je najopštiji unifikator za termove 𝑓 (𝑥, 𝑔(𝑎, 𝑧)) i 𝑓 (𝑏, 𝑔(𝑦, 𝑥)) (𝑥, 𝑦 i 𝑧 su simboli promen-
ljivih, 𝑎 i 𝑏 su simboli konstanti)?
an
Pitanje 9.47. Šta je najopštiji unifikator za termove 𝑓 (𝑎, 𝑔(𝑥, 𝑦)) i 𝑓 (𝑧, 𝑔(𝑎, 𝑧)) (𝑥, 𝑦 i 𝑧 su simboli promen-
d
promenljivih).
ro
Metod rezolucije formulisao je Alan Robinson 1965. godine, sledeći mnogobrojne prethodne rezultate. Metod
le
rezolucije je postupak za ispitivanje (ne)zadovoljivosti skupa klauza logike prvog reda, a može se pojednostaviti
E
1. Ako je to moguće (tj. ako se tako može izvesti neka nova klauza), primeniti pravilo rezolucije (pri tome,
roditelji rezolvente se ne zamenjuju rezolventom, već se rezolventa dodaje u skup tekući skup klauza).
Ako to nije moguće, vrati odgovor da je skup klauza 𝑆 zadovoljiv.
2. Ako u tekućem skupu klauza postoji prazna klauza (), onda vrati odgovor da je skup klauza 𝑆 nezado-
voljiv;
6)
𝑙 označavamo literal ¬𝑝(𝑡1 , 𝑡2 , . . . , 𝑡𝑛 ); ako je literal 𝑙 jednak ¬𝑝(𝑡1 , 𝑡2 , . . . , 𝑡𝑛 ), onda sa 𝑙 označavamo literal
01
𝑝(𝑡1 , 𝑡2 , . . . , 𝑡𝑛 ). Za literale 𝑙 i 𝑙 kažemo da su (medusobno) komplementni.
U svom osnovnom obliku, metod rezolucije (i za iskaznu i za logiku prvog reda) proverava da li je dati skup
(2
klauza (ne)zadovoljiv. Medutim, metod se može koristiti i za ispitivanje valjanosti. Naime, ako je potrebno
ispitati da li je formula Φ valjana, dovoljno je metodom rezolucije utvrditi da li je formula ¬Φ nezadovoljiva
(pri čemu je potrebno najpre formulu ¬Φ transformisati u skup klauza). Ovaj vid dokazivanja da je formula
je
Φ valjana zovemo dokazivanje pobijanjem. Za metod rezolucije primenjen na ovaj način, saglasnost govori da
nije moguće rezolucijom pogrešno utvrditi (pobijanjem) da je neka formula valjana, a potpunost govori da je za
an
svaku valjanu formulu metodom rezolucije moguće dokazati (pobijanjem) da je valjana.
Ako se izvede prazna klauza, onda to znači da je formula ¬𝒜 nezadovoljiva, pa je 𝒜 valjana; ako u nekom
koraku ne može da se izvede nijedna nova klauza, onda to znači da je formula ¬𝒜 zadovoljiva, pa 𝒜 nije valjana.
d
Za razliku od iskaznog slučaja, moguć je i ishod da nove klauze mogu da se izvode beskonačno, a da se pri tome
iz
𝐶 ′ ∨ 𝑙 𝐶 ′′ ∨ 𝑙
𝐶 ′ ∨ 𝐶 ′′
ro
izvedene klauze zapisivaćemo oznake klauza iz kojih je ona izvedena, kao i redne brojeve literala nad kojim je
primenjeno pravilo rezolucije. Literale u klauzama razdvajaćemo obično simbolom ’,’ (umesto simbolom ’∨’).
Primer 9.27. Metodom rezolucije se iz skupa {{¬𝑝, ¬𝑞, 𝑟}, {¬𝑝, 𝑞}, {𝑝}, {¬𝑟}} može izvesti prazna klauza:
𝐶1 : ¬𝑝, ¬𝑞, 𝑟
𝐶2 : ¬𝑝, 𝑞
𝐶3 : 𝑝
𝐶4 : ¬𝑟
𝐶5 : ¬𝑝, 𝑟 (𝐶1 , 2; 𝐶2 , 2)
𝐶6 : ¬𝑝 (𝐶4 , 1; 𝐶5 , 2)
𝐶7 : (𝐶3 , 1; 𝐶6 , 1)
Skup klauza {{¬𝑝, ¬𝑞, 𝑟}, {¬𝑝, 𝑞}, {𝑝}, {¬𝑟}} je, dakle, nezadovoljiv.
Primer 9.28. Metodom rezolucije se iz skupa {{¬𝑝, ¬𝑞, 𝑟}, {¬𝑝, 𝑞}, {𝑝}} ne može izvesti prazna klauza. Ovaj
skup klauza je, dakle, zadovoljiv.
125 9. Logika prvog reda
Teorema 9.10 (Teorema o metodu rezolucije). Metod rezolucije se zaustavlja za svaku iskaznu formulu i
u završnom skupu klauza postoji prazna klauza ako i samo ako je polazna formula nezadovoljiva.
Metod rezolucije može na razne načine biti modifikovan tako da bude efikasniji.
Γ′ ∨ 𝒜′ Γ′′ ∨ ¬𝒜′′
(Γ′ ∨ Γ′′ )𝜎
6)
Opšte pravilo rezolucije omogućava rezolviranje više literala odjednom. Ono može biti reprezentovano na
sledeći način:
01
Γ′ ∨ 𝒜′1 ∨ 𝒜′2 ∨ . . . ∨ 𝒜′𝑚 Γ′′ ∨ ¬𝒜′′1 ∨ ¬𝒜′′2 ∨ . . . ∨ ¬𝒜′′𝑛
(Γ′ ∨ Γ′′ )𝜎
(2
gde je 𝜎 najopštiji unifikator za formule 𝒜′1 , 𝒜′2 , . . ., 𝒜′𝑚 , 𝒜′′1 , 𝒜′′2 , . . ., 𝒜′′𝑛 .
Obe klauze na koje se primenjuje pravilo rezolucije su (implicitno) univerzalno kvantifikovane. Zbog toga se
svaka od njihovih varijabli može preimenovati (jer su formule ∀𝑥𝒜(𝑥) i ∀𝑥′ 𝒜(𝑥′ ) logički ekvivalentne). Štaviše,
je
to je neophodno uraditi za sve deljene varijable, jer bi, inače, neke primene pravila rezolucije bile (pogrešno)
onemogućene (jer odgovarajući literali ne bi bili unifikabilni). Preimenovanje varijabli može se primeniti pre
an
primene pojedinačnog pravila rezolucije ili unapred, pre primene sâmog metoda rezolucije. Ako se preimenovanje
varijabli primenjuje unapred, pre primene metoda rezolucije, onda ono treba da obezbedi da nikoje dve klauze
d
nemaju zajedničku promenljivu. Dodatno, u svakoj novoizvedenoj klauzi treba preimenovati promenljive tako
da se novi simboli promenljivih ne pojavljuju ni u jednoj drugoj klauzi.
iz
¬𝑝(𝑏, 𝑎)
se može primeniti pravilo rezolucije, jer su literali 𝑝(𝑥, 𝑧) i 𝑝(𝑏, 𝑎) unifikabilni (uz najopštiji unifikator 𝜎 = [𝑥 ↦→
n
Metod rezolucije za logiku prvog reda ima isti opšti oblik kao metod rezolucije za iskaznu logiku (slika 9.4).
E
Primer 9.30. Dokazati da je formula 𝑝(𝑎) ⇒ (∃𝑥)𝑝(𝑥) valjana. Negacija date formule je logički ekvivavalentna
formuli 𝑝(𝑎) ∧ (∀𝑥)¬𝑝(𝑥). Metod rezolucije primenjujemo na skup klauza {𝑝(𝑎), ¬𝑝(𝑥)}. Pravilo rezolucije
moguće je primeniti samo na jedan način — literali 𝑝(𝑎) i ¬𝑝(𝑥) se unifikuju supstitucijom [𝑥 ↦→ 𝑎] i njime se
dobija prazna klauza. Odatle sledi da je formula 𝑝(𝑎) ⇒ (∃𝑥)𝑝(𝑥) valjana.
Primer 9.31. Formula (∀𝑥)(∃𝑦)𝑝(𝑥, 𝑦) ⇒ (∃𝑦)(∀𝑥)𝑝(𝑥, 𝑦) nije valjana. Negacija date formule je logički ekvi-
valentna sa formulom (∀𝑥)(∃𝑦)(𝑝(𝑥, 𝑦) ∧ (∀𝑦)(∃𝑥) ¬𝑝(𝑥, 𝑦)) i sa formulom (∀𝑥)(∃𝑦)(∀𝑢)(∃𝑣)(𝑝(𝑥, 𝑦) ∧ ¬𝑝(𝑣, 𝑢)).
Skolemizacijom se dobija skup od dve klauze: {𝑝(𝑥, 𝑓 (𝑥)), ¬𝑝(𝑔(𝑥, 𝑢), 𝑢)}. Pravilo rezolucije nije moguće prime-
niti na ove dve klauze, odakle sledi da je formula (∀𝑥)(∃𝑦) (𝑝(𝑥, 𝑦) ∧ (∀𝑦)(∃𝑥)¬𝑝(𝑥, 𝑦)) zadovoljiva, tj. polazna
formula nije valjana.
6)
(∀𝑥)(∀𝑢)(∀𝑣)(∀𝑧)(𝑝(𝑥, 𝑔(𝑥)) ∧ (¬𝑝(𝑢, 𝑣) ∨ 𝑞(𝑢, 𝑣)) ∧ ¬𝑞(𝑐, 𝑧)) ,
01
pri čemu je 𝑐 nova Skolemova konstanta, a 𝑔 nova Skolemova funkcija. Konjunktivna normalna forma formule
(2
𝑝(𝑥, 𝑔(𝑥)) ∧ (¬𝑝(𝑢, 𝑣) ∨ 𝑞(𝑢, 𝑣)) ∧ ¬𝑞(𝑐, 𝑧)
je
je
𝑝(𝑥, 𝑔(𝑥)) ∧ (¬𝑝(𝑢, 𝑣) ∨ 𝑞(𝑢, 𝑣)) ∧ ¬𝑞(𝑐, 𝑧) .
an
Elementi početnog skupa klauza su:
𝐶1 : 𝑝(𝑥, 𝑔(𝑥)) (prvi deo hipoteze)
𝐶2 : ¬𝑝(𝑢, 𝑣), 𝑞(𝑢, 𝑣) (drugi deo hipoteze)
d
𝐶3 : ¬𝑞(𝑐, 𝑧) (zaključak)
iz
logička posledica skupa formula {∀𝑥, 𝑦(𝑎(𝑥, 𝑦) ⇒ ¬𝑎(𝑦, 𝑥)), ∀𝑥, 𝑦(𝑎(𝑥, 𝑦) ⇔ 𝑏(𝑦, 𝑥)), ∀𝑥, 𝑦, 𝑧(𝑎(𝑥, 𝑦) ∧ 𝑎(𝑦, 𝑧) ⇒
kt
Primer 9.34. Formula ∀𝑥∀𝑦 (𝑝(𝑥, 𝑦) ⇒ 𝑝(𝑦, 𝑥)) je logička posledica formula ∀𝑥 𝑝(𝑥, 𝑥) i ∀𝑢∀𝑣∀𝑤 (𝑝(𝑢, 𝑣) ∧
𝑝(𝑤, 𝑣) ⇒ 𝑝(𝑢, 𝑤)), pa je formula
6)
Da bi se pokazalo da je neka formula nezadovoljiva, dovoljno je, primenom metoda rezolucije, iz njenog skupa
klauza izvesti praznu klauzu. Dodatno, metod rezolucije ima svojstvo da iz zadovoljivog skupa klauza ne može
01
da izvede nezadovoljiv skup klauza. Ova dva svojstva obezbeduju potpunost i saglasnost. Metod rezolucije,
dakle, ima sledeće karakteristike:
(2
metod rezolucije je saglasan: ako je primenom metoda dobijena prazna klauza, onda je i polazni skup
klauza nezadovoljiv (ili, drugim rečima, iz zadovoljivog skupa klauza može se dobiti samo zadovoljiv skup
klauza); je
an
metod rezolucije nije potpun, ali je potpun za pobijanje: iz svakog nezadovoljivog skupa klauza moguće
je izvesti praznu klauzu;
d
Logika prvog reda nije odlučiva, pa najviše što može metod rezolucije da bude je procedura poluodlučivanja
iz
Teorema 9.11 (Potpunost (za pobijanje) metoda rezolucije). Ako je Γ nezadovoljiv skup klauza, onda se
o
Primetimo da u opisu metoda rezolucije nije specifikovan način na koji se biraju klauze nad kojim se pri-
n
menjuje pravilo rezolucije. Takode, teorema o potpunosti za pobijanje (teorema 9.11) tvrdi da se iz svakog
ro
nezadovoljivog skupa klauza može 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
kt
na koje se primenjuje pravilo rezolucije moguće je da se i za nezadovoljiv skup klauza metod rezolucije ne
zaustavlja. Način na koji se biraju klauze na koje se primenjuje pravilo rezolucije čini strategiju za upravljanje
metoda rezolucije.
le
Jedna od mogućnosti za obezbedivanje potpunosti metoda rezolucije u strožijem smislu (da postoji strategija
E
za upravljanje metoda rezolucije takva da se iz svakog nezadovoljivog skupa klauza nužno izvodi prazna klauza
u konačno mnogo koraka) je sistematsko izvodenje svih rezolventi iz skupa klauza koji se širi tokom primene
metoda. Sistematski metod rezolucije može se definisati na sledeći način: metod se primenjuje u stupnjevima;
prvi stupanj čini kreiranje početnog skupa klauza; neka pre 𝑖-tog stupnja tekući skup klauza čine klauze 𝐶1 ,
𝐶2 , . . ., 𝐶𝑛 , 𝑖-ti stupanj sastoji se od izvodenja (i dodavanja tekućem skupu klauza) svih mogućih rezolventi iz
po svake dve klauze iz skupa 𝐶1 , 𝐶2 , . . ., 𝐶𝑛 (broj tih klauza je konačan); metod se zaustavlja ako se u nekom
koraku izvede prazna klauza ili ako se u nekom stupnju ne može izvesti nijedna nova klauza.
Teorema 9.12 (Potpunost sistematskog metoda rezolucije). Ako je Γ nezadovoljiv skup klauza, onda se
iz njega sistematskim metodom rezolucije mora izvesti prazna klauza.
Dokaz: Ako je skup klauza Γ nezadovoljiv, onda se, na osnovu teoreme o potpunosti metoda rezolucije (teorema
9.11) iz njega metodom rezolucije može izvesti prazna klauza, tj. postoji niz rezolventi 𝑅1 , 𝑅2 , . . ., 𝑅𝑛
(koje se izvode iz početnih i izvedenih klauza) od kojih je poslednja u nizu prazna klauza. Ako se na
skup klauza Γ primeni sistematski metod rezolucije, u nekom stupnju biće (ako već pre toga nije izvedena
prazna klauza) izvedene sve klauze iz skupa 𝑅1 , 𝑅2 , . . ., 𝑅𝑛 , pa i prazna klauza.
9.7. Metod rezolucije 128
Očigledno je da je sistematski metod rezolucije izuzetno neefikasan. Postoji više strategija koje obezbeduju
nužno izvodenje prazne klauze iz nezadovoljivog skupa klauza (tj. sprečavaju beskonačne petlje), ali na efikasniji
način. Smanjivanje izvodenja nepotrebnih klauza jedan je od najvažnijih problema metoda rezolucije.
Jedna od strategija za upravljanje metodom rezolucije zove se linearna ulazna rezolucija — linearna, jer se u
svakoj primeni pravila rezolucije koristi poslednja klauza u nizu; ulazna, jer se u svakoj primeni pravila rezolucije
koristi jedna od početnih klauza. S obzirom na to da ona isključuje mnoge puteve izvodenja novih klauza,
linearna ulazna rezolucija je obično znatno efikasnija nego opšti metod rezolucije. Medutim, iz istog razloga,
linearna ulazna rezolucija nema svojstvo potpunosti (kao što ga ima opšti metod rezolucije). Linearna ulazna
rezolucija ima svojstvo potpunosti za pobijanje za neke klase formula. Na primer, linearna ulazna rezolucija ima
svojstvo potpunosti za pobijanje skupova Hornovih klauza, tj. linearna ulazna rezolucija može dovesti do prazne
klauze za svaki kontradiktoran skup Hornovih klauza. Linearna ulazna rezolucija nad Hornovim klauzama se
koristi u prolog-u.
6)
01
Pitanja i zadaci
(2
Pitanje 9.48. Šta je rezolventa klauza Γ′ ∨ 𝒜′ i Γ′′ ∨ ¬𝒜′′ je (𝜎 je najopštiji unifikator za 𝒜′ i 𝒜′′ )?
Pitanje 9.49. Navesti pravilo rezolucije za logiku prvog reda. je
an
Pitanje 9.50. Da bi se primenio metod rezolucije u kakvoj formi formula čija se nezadovoljivost ispituje mora
da bude?
d
Pitanje 9.51. Navesti teoremu o potpunosti metode rezolucije za iskaznu i predikatsku logiku.
iz
Pitanje 9.52. Koje korake je potrebno primeniti da bi se metodom rezolucije ispitalo da li je formula logike
prvog reda 𝒜 valjana?
o
Pitanje 9.53. Da li se metodom rezolucije za svaku formulu logike prvog reda koja je valjana može dokazati
sk
da je valjana?
Pitanje 9.54. Da li se metodom rezolucije za svaku formulu logike prvog reda koja nije valjana može dokazati
n
da nije valjana?
ro
Pitanje 9.55. Koji su mogući ishodi primene metoda rezolucije za iskaznu logiku, a koji za logiku prvog reda?
kt
Pitanje 9.57. U iskaznoj logici, da li će kako god se primenjivalo pravilo rezolucije u konačnom broju koraka
biće izvedena prazna klauza?
E
Zadatak 9.22. Dati su skup 𝑃 od 𝑛 (𝑛 ≥ 1) iskaznih slova, skup 𝒞 svih klauza nad 𝑃 i dva podskupa, 𝑆1 i
𝑆2 , skupa 𝒞 .
(a) Koliko elemenata ima skup 𝒞 ?
(b) Da li je skup 𝒞 zadovoljiv?
(c) Ako su skupovi 𝑆1 i 𝑆2 zadovoljivi, da li je i skup 𝑆1 ∪ 𝑆2 zadovoljiv?
(d) Ako su skupovi 𝑆1 i 𝑆2 zadovoljivi, da li je i skup 𝑆1 ∩ 𝑆2 zadovoljiv?
(e) Ako su skupovi 𝑆1 i 𝑆2 kontradiktorni, da li skup 𝑆1 ∪ 𝑆2 može da bude kontradiktoran?
(f ) Ako su skupovi 𝑆1 i 𝑆2 kontradiktorni, da li skup 𝑆1 ∪ 𝑆2 mora da bude kontradiktoran?
(g) Ako su skupovi 𝑆1 i 𝑆2 kontradiktorni, da li skup 𝑆1 ∩ 𝑆2 može da bude kontradiktoran?
(h) Ako su skupovi 𝑆1 i 𝑆2 kontradiktorni, da li skup 𝑆1 ∩ 𝑆2 mora da bude kontradiktoran?
(i) Ako je skup 𝑆1 zadovoljiv, da li skup 𝒞 ∖ 𝑆1 može da bude zadovoljiv?
(j) Ako je skup 𝑆1 zadovoljiv, da li skup 𝒞 ∖ 𝑆1 mora da bude zadovoljiv?
Zadatak 9.23. Dokazati metodom rezolucije za iskaznu logiku da su naredne formule tautologije:
(a) 𝑞 ⇒ (𝑝 ⇒ 𝑞)
6)
(b) ((𝑝 ⇒ 𝑞) ∧ (𝑞 ⇒ 𝑟)) ⇒ (𝑝 ⇒ 𝑟)
(c) ((𝑝 ⇒ 𝑞) ∧ (𝑝 ⇒ 𝑟)) ⇒ (𝑝 ⇒ (𝑞 ∧ 𝑟))
01
(d) (((𝑝 ⇒ 𝑟) ∧ (𝑞 ⇒ 𝑟)) ∧ (𝑝 ∨ 𝑞)) ⇒ 𝑟
(e) ¬(𝑝 ∧ 𝑞) ⇒ (¬𝑝 ∨ ¬𝑞)
(2
(f ) ¬(𝑝 ∨ 𝑞) ⇒ (¬𝑝 ∧ ¬𝑞)
(g) (¬𝑝 ∨ ¬𝑞) ⇒ ¬(𝑝 ∧ 𝑞)
(h) (𝑝 ∨ (𝑞 ∧ 𝑟)) ⇒ ((𝑝 ∨ 𝑞) ∧ (𝑝 ∨ 𝑟))
je
Zadatak 9.24. Koristeći metod rezolucije za logiku prvog reda dokazati da važi:
an
(∀𝑥)(𝑝(𝑥) ⇒ 𝑞(𝑥)), 𝑝(𝑐) |= 𝑞(𝑐) .
d
Zadatak 9.25. Metodom rezolucije za logiku prvog reda dokazati da je naredna formula valjana:
iz
(∃𝑥)(∀𝑦)𝑝(𝑥, 𝑦) ⇒ (∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦) .
o
Zadatak 9.26. Metodom rezolucije za logiku prvog reda dokazati da je naredna formula valjana:
sk
Zadatak 9.27. Metodom rezolucije za logiku prvog reda dokazati da je formula (𝐻 ∧ 𝐾) ⇒ 𝐿 valjana, gde je
E
Zadatak 9.28. Metodom rezolucije za logiku prvog reda dokazati da je formula (∀𝑥)𝑠(𝑥) logička posledica
skupa formula {∀𝑥(𝑝(𝑥) ⇒ 𝑞(𝑥)), ∀𝑥(𝑞(𝑥) ⇒ 𝑠(𝑥)), ∀𝑥(𝑟(𝑥) ⇒ 𝑠(𝑥)), ∀𝑥(𝑝(𝑥) ∨ 𝑟(𝑥))}.
Zadatak 9.29. Metodom rezolucije za logiku prvog reda dokazati da je formula ∀𝑥∀𝑦 (𝑥 = 𝑦 ⇒ 𝑦 = 𝑥) logička
posledica formula ∀𝑥 (𝑥 = 𝑥) i ∀𝑢∀𝑣∀𝑤 (𝑢 = 𝑣 ∧ 𝑤 = 𝑣 ⇒ 𝑢 = 𝑤).
Zadatak 9.30. Za narednu formulu metodom rezolucije za logiku prvog reda dokazati da je valjana:
(∀𝑥)(𝒜(𝑥) ⇒ 𝐶) ⇔ ((∃𝑥)𝒜(𝑥) ⇒ 𝐶)
pri čemu je 𝐶 rečenica. (Ovaj zadatak ilustruje kako metod rezolucije može biti oslabljen tako da se primenjuje
i na formule koje nisu u klauzalnoj formi.)
9.8. Prirodna dedukcija 130
√
Zadatak 9.31. Važi sledeće:
Janko ima psa.
Svaki vlasnik psa voli životinje.
Nijedna osoba koja voli životinje ne može da udari životinju.
Janko ili Marko su udarili mačku čije je ime Tuna.
Svaka mačka je životinja.
Metodom rezolucije za logiku prvog reda dokazati da je Marko udario Tunu.
Zadatak 9.32. Prevesti na jezik logike prvog reda i dokazati metodom rezolucije za logiku prvog reda sledeće
tvrdenje: Ako su svi političari lukavi i ako su samo pokvareni ljudi političari, onda, ako postoji bar jedan
političar, onda je neki pokvaren čovek lukav.
6)
Pojam valjanosti je semantičke prirode, a koncept dokazivanja i sistema za dedukciju vodi do pojma teoreme
koji je sintaksički-deduktivne prirode. Pojam teoreme je deduktivni pandan pojma valjane formule, koji je
semantičke prirode. Izmedu ova dva pojma postoji veza i deduktivni sistemi obično imaju svojstvo potpunosti
01
i saglasnosti: ako je neka formula valjana, onda ona može biti dokazana u okviru deduktivnog sistema, a ako
za neku formulu postoji dokaz u okviru deduktivnog sistema, onda je ona sigurno valjana.
(2
Sistemi za dedukciju su čisto sintaksičke prirode — primenjuju se kroz kombinovanje simbola, ne razmatrajući
semantiku formula. Sisteme za dedukciju zovemo i račun – (iskazni račun u slučaju iskazne logike i predikatski
račun u slučaju logike prvog reda). Postoji više različitih deduktivnih sistema, a u nastavku će biti opisan samo
jedan — prirodna dedukcija. je
Sistem prirodne dedukcije (račun prirodne dedukcije) uveo je, 1935. godine, Gerhard Gencen sa namerom
an
da prirodnije opiše uobičajeno zaključivanje matematičara.
U prirodnoj dedukciji koriste se logički veznici ¬, ∧, ∨, ⇒, kao i logička konstanta ⊥. Formula 𝒜 ⇔ ℬ je
d
kraći zapis za (𝒜 ⇒ ℬ) ∧ (ℬ ⇒ 𝒜), a formula ⊤ kraći zapis za 𝒜 ⇒ 𝒜. Skup formula definiše se na uobičajeni
način.
iz
Pravila izvodenja sistema prirodne dedukcije data su na slici 9.5. Primetimo da za svaki logički veznik i svaki
kvantifikator postoje pravila koja ga uvode (pravila 𝐼 -tipa) i pravila koja ga eliminišu (pravila 𝐸 -tipa). Pravilo
o
𝑒𝑓 𝑞 (Ex falso quodlibet) je jedino pravilo koje ne uvodi niti eliminiše neki logički veznik. Skup pravila sistema
sk
prirodne dedukcije za iskaznu logiku čine sva pravila sa slike 9.5 izuzev onih koja uključuju kvantifikatore.
U pravilima izvodenja prikazanim u tabeli 9.5 simbol 𝑡 označava proizvoljan term. Simbol 𝑦 označava
n
tzv. eigenvariable (pravu promenljivu) — simbol promenljive za koju važi tzv. eigenvariable uslov. Ovaj uslov
za pravilo ∀𝐼 je da važi da je 𝑥 = 𝑦 ili da promenljiva 𝑦 nije slobodna u 𝒜, kao i da važi da 𝑦 nije slobodna
ro
ni u jednoj neoslobodenoj pretpostavci u izvodenju formule 𝒜[𝑥 ↦→ 𝑦]. Eigenvariable uslov za pravilo ∃𝐸 je da
važi da je 𝑥 = 𝑦 ili da promenljiva 𝑦 nije slobodna u 𝒜, kao i da važi da 𝑦 nije slobodna u ℬ niti u bilo kojoj
kt
intuicionističku logiku (koji zovemo sistem NJ). U sistemu prirodne dedukcije za klasičnu logiku postoji jedna
aksiomska shema: 𝒜 ∨ ¬𝒜 (tertium non datur). Sistem za intuicionističku logiku nema aksioma.
E
Tokom izvodenja dokaza u sistemu prirodne dedukcije mogu se koristiti (nedokazane) pretpostavke, ali one
moraju biti eliminisane („oslobodene“) pre kraja izvodenja. U zapisu pravila, [𝐹 ] označava da se nekoliko
(možda i nula) pojavljivanja pretpostavke 𝐹 oslobada, briše (kao nedokazane, neraspoložive pretpostavke)
neposredno nakon primene pravila. Pri tome, može ostati i nekoliko neoslobodenih pojavljivanja pretpostavke 𝐹 .
Pretpostavkama su pridružene oznake (obično 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 čijem je svakom čvoru pridružena formula, a
svakom listu ili pretpostavka ili aksioma. Formula 𝐴 je teorema prirodne dedukcije ako postoji dokaz u čijem je
korenu 𝐴 i koji nema neoslobodenih pretpostavki i tada pišemo ⊢ 𝐴 i kažemo da je formula 𝐴 dokaziva u sistemu
prirodne dedukcije. Ako postoji dokaz, u čijem je korenu formula 𝐴 i koji ima neoslobodene pretpostavke koje
pripadaju nekom skupu Γ, onda kažemo da je formula 𝐴 deduktivna posledica skupa Γ i tada pišemo Γ ⊢ 𝐴.
Elemente skupa Γ tada zovemo i premisama ili hipotezama dokaza. Ako je skup Γ jednak {𝐵1 , 𝐵2 , . . . , 𝐵𝑛 },
onda pišemo 𝐵1 , 𝐵2 , . . . , 𝐵𝑛 ⊢ 𝐴.
Dokaz u sistemu prirodne dedukcije se obično prikazuje u vidu stabla čiji su listovi na vrhu, a koren na dnu.
To stablo se prikazuje pojednostavljeno, stilizovano (videti sliku 9.6).
Naredni primeri ilustruju primenu prirodne dedukcije za dokazivanje u iskaznoj logici.
131 9. Logika prvog reda
[𝒜]𝑢
..
..
⊥ ¬𝐼, 𝑢 𝒜 ¬𝒜
¬𝐸
¬𝒜 ⊥
𝒜 ℬ 𝒜∧ℬ 𝒜∧ℬ
∧𝐼 ∧𝐸 ∧𝐸
𝒜∧ℬ 𝒜 ℬ
[𝒜]𝑢 [ℬ]𝑣
.. ..
.. ..
𝒜 ℬ 𝒜∨ℬ 𝐶 𝐶 ∨𝐸, 𝑢, 𝑣
∨𝐼 ∨𝐼
𝒜∨ℬ 𝒜∨ℬ 𝐶
[𝒜]𝑢
..
..
ℬ 𝒜 𝒜⇒ℬ
6)
⇒ 𝐼, 𝑢 ⇒𝐸
𝒜⇒ℬ ℬ
01
𝒜[𝑥 ↦→ 𝑦] (∀𝑥)𝒜
∀𝐼 ∀𝐸
(∀𝑥)𝒜 𝒜[𝑥 ↦→ 𝑡]
(2
uz dodatni uslov
[𝒜[𝑥 ↦→ 𝑦]]𝑢
..
𝒜[𝑥 ↦→ 𝑡]
je
(∃𝑥)𝒜 ℬ
..
an
∃𝐼 ∃𝐸, 𝑢
(∃𝑥)𝒜 ℬ
uz dodatni uslov
d
⊥ 𝑒𝑓 𝑞
iz
𝐷
o
.. ..
. .
n
𝐴 𝐵 .. ..
.. ..
ro
𝐴 𝐵
𝐶 𝐶
kt
𝐷
.
..
.
le
𝐷
..
.
E
Primer 9.35. Formula (𝐴 ∨ 𝐵) ⇒ (𝐵 ∨ 𝐴) je teorema sistema prirodne dedukcije, tj. važi ⊢ (𝐴 ∨ 𝐵) ⇒ (𝐵 ∨ 𝐴):
[𝐴]2 [𝐵]3
1 ∨𝐼 ∨𝐼
[𝐴 ∨ 𝐵] 𝐵 ∨ 𝐴 𝐵∨𝐴
∨𝐸, 2, 3
𝐵∨𝐴 ⇒ 𝐼, 1
(𝐴 ∨ 𝐵) ⇒ (𝐵 ∨ 𝐴)
6)
Naredni primeri ilustruju primenu prirodne dedukcije za dokazivanje u logici prvog reda.
Primer 9.38. Formula (∃𝑥)(∀𝑦)𝑝(𝑥, 𝑦) ⇒ (∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦) je teorema sistema prirodne dedukcije (i za klasičnu
01
i za intuicionističku logiku). Neki matematičar bi ovu formulu (neformalno) dokazao na sledeći način:
(2
1. Pretpostavimo da važi (∃𝑥)(∀𝑦)𝑝(𝑥, 𝑦).
2. Pretpostavimo da važi (∀𝑦)𝑝(𝑥′ , 𝑦) za neko 𝑥′ .
3. Neka je 𝑦 ′ proizvoljni objekat. Tada važi 𝑝(𝑥′ , 𝑦 ′ ). je
an
4. Iz 𝑝(𝑥′ , 𝑦 ′ ) sledi da važi (∃𝑥)𝑝(𝑥, 𝑦 ′ ).
5. Objekat 𝑦 ′ je proizvoljan, pa važi (∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦).
d
6. Iz (∃𝑥)(∀𝑦)𝑝(𝑥, 𝑦) i iz toga što pretpostavka (∀𝑦)𝑝(𝑥′ , 𝑦) ima za posledicu (∀𝑦)(∃𝑥) 𝑝(𝑥, 𝑦), sledi (∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦).
iz
7. Iz pretpostavke (∃𝑥)(∀𝑦)𝑝(𝑥, 𝑦) sledi (∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦), pa važi (∃𝑥)(∀𝑦) 𝑝(𝑥, 𝑦) ⇒ (∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦).
o
Ovaj dokaz može se precizno opisati u vidu dokaza u sistemu prirodne dedukcije (i za klasičnu i za intuicio-
sk
nističku logiku):
1
[(∀𝑦)𝑝(𝑥′ , 𝑦)]
∀𝐸
n
𝑝(𝑥′ , 𝑦 ′ )
∃𝐼
ro
(∃𝑥)𝑝(𝑥, 𝑦 ′ )
2 ∀𝐼
[(∃𝑥)(∀𝑦)𝑝(𝑥, 𝑦)] (∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦)
∃𝐸, 1
kt
(∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦)
⇒ 𝐼, 2
(∃𝑥)(∀𝑦)𝑝(𝑥, 𝑦) ⇒ (∀𝑦)(∃𝑥)𝑝(𝑥, 𝑦)
le
Primer 9.39. Formula ¬(∃𝑥)𝑝(𝑥) ⇒ (∀𝑦)¬𝑝(𝑦) je teorema sistema prirodne dedukcije (i za klasičnu i za
intuicionističku logiku):
E
[𝑝(𝑧)]1
∃𝐼
(∃𝑥)𝑝(𝑥) [¬(∃𝑥)𝑝(𝑥)]2
¬𝐸
⊥ ¬𝐼, 1
¬𝑝(𝑧)
∀𝐼
(∀𝑦)¬𝑝(𝑦)
⇒ 𝐼, 2
¬(∃𝑥)𝑝(𝑥) ⇒ (∀𝑦)¬𝑝(𝑦)
Primer 9.40. U sistemu prirodne dedukcije važi ∀𝑥𝒜, ∀𝑥(𝒜 ⇒ ℬ) ⊢ ∀𝑥ℬ:
∀𝑥𝒜 ∀𝑥(𝒜 ⇒ ℬ)
∀𝐸 ∀𝐸
𝒜 𝒜⇒ℬ
⇒𝐸
ℬ
∀𝐼
∀𝑥ℬ
Naredna teorema povezuje semantička i deduktivna svojstva klasične logike (ona važi i za iskaznu i za
predikatsku logiku).
133 9. Logika prvog reda
Teorema 9.13. Formula je teorema sistema prirodne dedukcije za klasičnu logiku ako i samo ako je valjana.
Pitanja i zadaci
Pitanje 9.62. Navesti bar tri pravila sistema prirodne dedukcije.
Pitanje 9.63. Koliko u sistemu prirodne dedukcije ima pravila koja uvode veznik ∧?
Pitanje 9.64. Koliko u sistemu prirodne dedukcije ima pravila koja eliminišu veznik ∧?
Pitanje 9.65. Kako glasi pravilo prirodne dedukcije koje elimiše negaciju?
Pitanje 9.66. Kako glasi pravilo eliminasanja implikacije u sistemu prirodne dedukcije?
Pitanje 9.67. Kako glasi pravilo za eliminisanje univerzalnog kvantora u sistemu prirodne dedukcije?
6)
Pitanje 9.68. Navesti bar jedno pravilo prirodne dedukcije koje se koristi u logici prvog reda (a ne i u iskaznoj
logici).
01
Pitanje 9.69. Šta razlikuje sistem prirodne dedukcije za klasičnu i intuicionističku logiku?
Pitanje 9.70. U dokazima prirodnom dedukcijom, šta znači oznaka [𝒜]?
(2
Pitanje 9.71. U sistemu prirodne dedukcije dokazati da važi 𝒜 ∨ ℬ ⊢ ℬ ∨ 𝒜.
je
Pitanje 9.72. U sistemu prirodne dedukcije dokazati da važi 𝒜, ℬ ∧ 𝒞 ⊢ 𝒜 ∧ ℬ.
an
Pitanje 9.73. U sistemu prirodne dedukcije dokazati da važi 𝒜 ∧ ℬ, 𝒞 ⊢ 𝒜 ∧ 𝒞 .
Pitanje 9.74. Šta povezuje pojam valjane formule i pojam formule dokazive u prirodnoj dedukciji za klasičnu
d
logiku?
iz
√
Zadatak 9.33. Dokazati da u prirodnoj dedukciji važi 𝐴 ∨ 𝐵, ¬𝐴 ⊢ 𝐵 .
√
Zadatak 9.34. Dokazati da je formula (𝐴 ⇒ 𝐵) ⇒ (¬𝐵 ⇒ ¬𝐴) teorema sistema prirodne dedukcije za
o
klasičnu logiku.
sk
√
Zadatak 9.35. Dokazati da je formula (𝐴 ∨ (𝐵 ∧ 𝐶)) ⇒ ((𝐴 ∨ 𝐵) ∧ (𝐴 ∨ 𝐶)) teorema sistema prirodne
dedukcije za klasičnu logiku.
n
√
ro
Zadatak 9.36. Dokazati da je formula ¬(𝐴 ∧ 𝐵) ⇒ (¬𝐴 ∨ ¬𝐵) teorema sistema prirodne dedukcije za
klasičnu logiku.
kt
Programe koji rešavaju instance problema zadovoljivosti zovemo obično FOL dokazivači (eng. FOL-provers,
od first-order logic). Većina savremenih FOL dokazivača zasnovana je na metodi rezolucije, obogaćenoj
mnogim dodatnim tehnikama i heuristikama. Neki od danas popularnih FOL dokazivača su Vampire, E, Spass.
FOL dokazivača obično očekuju ulaz u nekom od tptp2 formata. Jedan od tih formata je FOF format. U
ovom formatu, formule se navode jedna po jedna sa oznakom o tome da li se radi o aksiomi ili tvrdenju koje
dokazivač treba da dokaže. U slučaju primera 9.33, zapis problema bi bio sledeći.
2 tptp (Thousands of Problems for Theorem Provers) je biblioteka problema za automatske dokazivače teorema. U okviru nje
definisano je i nekoliko formata za zapis formula logike prvog reda.
9.9. Rešavanje problema svodenjem na problem valjanosti 134
Pitanja i zadaci
Zadatak 9.37. Zapisati sledeću rečenicu u logici prvog reda: Ako onaj ko laže taj i krade i ako bar neko laže,
onda neko i krade. Potom je dokazati metodom rezolucije.
Zadatak 9.38. Zapisati sledeću rečenicu u logici prvog reda: Ako "ko radi taj ima ili troši"i "ko ima taj
peva"i "ko troši taj peva", onda "ko radi taj peva". Potom je dokazati metodom rezolucije.
Zadatak 9.39. Dokazati metodom rezolucije da je sledeća formula VALJANA: (∀𝑥)(𝑝(𝑥) ⇒ 𝑞(𝑥)) ⇒ (∀𝑥)(𝑝(𝑥) ⇒
(𝑞(𝑥) ∧ 𝑝(𝑥)))
Zadatak 9.40. Zapisati konjunkciju sledećih rečenica kao formulu logike prvog reda i dokazati da je ona
nezadovoljiva:
6)
ne postoji neko ko je povredio osobu koju voli i
01
osoba Y je povredila svog prijatelja X.
(2
Zadatak 9.41. Zapisati u logici prvog reda rečenicu: Ako “šta leti to ima krila i lagano je” i “šta pliva, to
nema krila”, onda “šta pliva, to ne leti”. Potom dokazati ovu rečenicu metodom rezolucije.
Zadatak 9.42. Na jeziku logike prvog reda zapisati i dokazati metodom rezolucije da je sledeća rečenica
je
valjana: "Ako postoji cipela koja u svakom trenutku odgovara svakoj nozi, onda za svaku nogu postoji cipela
an
koja joj u nekom trenutku odgovara i za svaku nogu postoji trenutak takav da postoji cipela koja joj u tom
trenutku odgovara".
d
Zadatak 9.44. U logici prvog reda pokazati da je rečenica “ko rano rani, ceo dan je pospan” logička posledica
rečenica “ko rano rani ceo dan je pospan ili dve sreće grabi” i “ko dve sreće grabi, ceo dan je pospan”.
n
Zadatak 9.45. Metodom rezolucije pokazati da iz tvrdnji dve nemimoilazne prave se seku ili su paralelne",
ro
"prave koje se seku leze u istoj ravni"i "prave koje su paralelne leze u istoj ravnišledi tvrdnja dve nemimoilazne
prave leže u istoj ravni".
kt
Zadatak 9.46. Metodom rezolucije dokazati da je recenica "Janko ruča kod kuće ili pere sudove u resto-
ranu"logička posledica rečenica Švako ruča kod kuće ili u restoranu", "ko ruča u restoranu i nema novca, taj
le
Postoje braća.
Zadatak 9.50. Metodom rezolucije pokazati da je rečenica Švako dete voli da se igra."logička posledica rečenica
Švaki dečak voli da se igra", Švaka devojčica voli da se igra.Dete je dečak ii je devojčica."
Zadatak 9.51. Zapisati sledeće rečenice u logici prvog reda i pokazati rezolucijom da su zajedno kontradik-
torne:
Ko se vozi avionom, dosta zaraduje.
Ko dosta zaraduje, puno radi.
Janko se vozi avionom.
Janko ne radi puno.
Zadatak 9.52. Metodom rezolucije dokazati da je recenica "Pera voli da plese"logička posledica rečenica Švako
ko je srećan voli da peva", Švako ko voli da peva, voli da pleše"i "Pera je srećan".
Zadatak 9.53.
6)
Zadatak 9.54. Pokazati da ako važe sledeće rečenice švako ima rodaka na moru ili u na planini", "ko ima
01
rodaka na moru, bio je na moru"i "ko ima rodaka na planini, bio je na plnini"ne može važiti rečenica "neko
nije bio ni na moru ni na planini".
(2
Zadatak 9.55. Na jeziku logike prvog reda zapisati sledeće rečenice i rezolucijom dokazati da su skupa neza-
dovoljive:
Svaka dva brata imaju zajednickog roditelja. je
an
Roditelj je stariji od deteta.
Postoje braća.
d
PROLOG
U logičkom programiranju, logika se koristi kao deklaritivni jezik za opisivanje problema, a dokazivač teo-
6)
rema kao mehanizam za rešavanje problema. Rešavanje problema je podeljeno izmedu programera koji opisuje
(tj. modeluje) problem i dokazivača teorema koji problem rešava.
01
Jezik PROLOG najznačajniji je predstavnik jezika deskriptivnog i logičkog programiranja. Veoma je po-
godan za mnoge primene tehnika veštačke inteligencije. Pogodan je za obrade prirodnog jezika, ali i za brz
razvoj prototipova drugih inteligentnih programa, jer se obrada ulaza i izlaza, parsiranje i druge slične operacije
(2
jednostavno implementiraju. Ime PROLOG-a dolazi od engleskih reči PROgramming in LOGic. Mehanizam
izvodenja zaključaka 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
je
saradnje istraživača Alain Colmerauer-a iz Marseja i Roberta Kowalskog iz Edinburga. Oni su primetili da se
an
klauzalna forma može koristiti za opisivanje formalnih gramatika i da se dokazivači zasnovani na rezoluciji mogu
koristiti za parsiranje. Efikasan PROLOG mehanizam omogućen je otkrićem LUSH ili SLD rezolucije koju je
opisao Kowalski 1973. godine. Praktična upotreba PROLOG-a kao programskog jezika omogućena je razvojem
d
efikasnog kompilatora Davida Warrena, u Edinburgu 1977. godine. Ta verzija jezika, Edinburški PROLOG,
iz
detaljno opisana 1980. u knjizi Clocksin-a i Mellish-a nametnula se vremenom kao standardna verzija jezika i
najjače uticala na ISO standard za PROLOG.
PROLOG sistemi obično sadrže interaktivni interpretator (sa debagerom). Pored toga, neki sistemi omogućavaju
o
i kompiliranje kôda (na mašinski jezik ili na neki drugi jezik niskog nivoa) koje daje izvršne verzije koje mogu
sk
samostalno da se izvršavaju. Izvršni kôd često je veoma efikasan i uporediv sa izvršnim kôdom dobijenim od
programa na nekom proceduralnom jeziku.
n
Komunikacija sa PROLOG interpretatorom odvija se kroz komandni prozor. Prompt interpretatora obično
izgleda ovako:
ro
?-
kt
Većina PROLOG sistema sadrži uputstva o korišćenju jezika a i samog interpretatora. Ovo uputstvo se
obično može dobiti sa ?- help(help). Komanda halt prekida izvršavanje interpretatora (ili kompiliranog
le
programa) i vraća kontrolu operativnom sistemu. Neki od najpopularnijih PROLOG interpretatora su Quintus,
E
Svaki nezadovoljiv skup Hornovih klauza mora da sadrži bar jednu činjenicu i bar jednu ciljnu klauzu.
137
10.1. Metod rezolucije i PROLOG 138
prolog konvencija je da se konstante zapisuju malim početnim slovom, a promenljive velikim početnim
slovom.
(nova činjenica može se učitati iz datoteke, kao deo programa a može se zadati i interaktivno, na sledeći način:
?- assert(man(sokrat)).) Nakon ovoga, upit
?- man(sokrat).
uspeva, tj. daje rezultat Yes. Naime, da bi ovaj upit bio zadovoljen, činjenica man(sokrat) rezolvira se sa
klauzom ¬ man(sokrat) (dobijenom iz upita) i daje praznu klauzu, kao što je i trebalo. Time je, praktično,
dokazano da je man(sokrat) ⇒ man(sokrat) valjana formula.
Pretpostavimo da je zadato i pravilo (recimo, sa ?- assert(mortal(X) :- man(X)).):
6)
mortal(X) :- man(X).
01
U ovom pravilu, predikat mortal(X) je glava pravila a (jednočlani) niz predikata man(X) je rep pravila. Upit:
?- mortal(sokrat).
(2
uspeva (daje odgovor Yes). Da bi ovaj upit bio zadovoljen, klauza ¬ man(X) ∨ mortal(X) (dobijena iz za-
datog pravila) rezolvira se klauzom ¬ mortal(sokrat) (dobijenom iz upita) i daje rezolventu, tj. novi cilj ¬
je
man(sokrat). On uspeva jer sa klauzom man(sokrat) (dobijenom iz zadate činjenice) daje praznu klauzu.
Time je, praktično, dokazano da je (man(sokrat) ∧ ∀ x (man(X) ⇒ mortal(X))) ⇒ man(sokrat) valjana
an
formula.
Ako se zada upit:
d
? - mortal(X).
iz
¬ man(X) ∨ mortal(X)
sk
¬ mortal(Y)
Primetimo da je u trećoj klauzi promenljiva preimenovana u Y, da ne bi došlo do preklapanja imena u dve
n
klauze. Ciljna (treća) klauza može da se rezolvira sa drugom klauzom, korišćenjem unifikatora [ Y ↦→ X ] dajući
novi cilj
ro
¬ man(X)
Rezolviranjem ove klauze sa prvom klauzom iz početnog skupa, korišćenjem unifikatora [ X ↦→ sokrat ] dobija
kt
se prazna klauza, pa je dokazana nezadovoljivost datog skupa klauza i prolog vraća rezultat:
Yes
le
E
i daje odgovor
X = sokrat
i
? - mortal(platon).
man(sokrat).
mortal(A) :-
man(A).
Primer 10.2. Jednostavan i ilustrativan primer definisanja odnosa u PROLOG-u može se dati na primeru
porodičnih relacija kao što su otac, majka, brat, tetka i slično.
zensko(reja).
zensko(demetra).
zensko(leto).
zensko(artemida).
zensko(amfitrita).
musko(kron).
musko(zevs).
6)
musko(posejdon).
musko(apolon).
01
musko(triton).
musko(jasion).
musko(pluto).
(2
roditelj(kron,zevs).
roditelj(reja,zevs).
roditelj(kron,posejdon).
roditelj(reja,posejdon).
je
an
roditelj(kron,demetra).
roditelj(reja,demetra).
d
roditelj(zevs,apolon).
roditelj(leto,apolon).
iz
roditelj(zevs,artemida).
roditelj(leto,artemida).
o
roditelj(posejdon,triton).
sk
roditelj(amfitrita,triton).
roditelj(demetra,pluto).
roditelj(jasion,pluto).
n
ro
predak(X,Y) :- roditelj(X,Y).
predak(X,Y) :- roditelj(X,Z), predak(Z,Y).
kt
U relacijama brat i sestra predikat X\==Y ima vrednost tačno ako je X različito od Y. U suprotnom, ima
vrednost netačno. U natavku navodimo nekoliko primera upita i rezultata koje sistem daje.
10.2. Sintaksa i semantika u PROLOG-U 140
?- stric(posejdon,apolon).
Yes
?- ujak(X,Y).
X = zevs,
Y = pluto
X = zevs,
Y = pluto
X = posejdon,
Y = pluto
X = posejdon,
Y = pluto
?- sestraodstrica(X,Y).
6)
X=artemida,
01
Y=triton
X=artemida,
(2
Y=triton
U navedenim primerima, mogu se primetiti ponavljanja istih rešenja. U slučaju upita ujak(X,Y), razlog za
je
to je što zadovoljavanje ovog cilja, zavisi od zadovoljavanja podcilja brat(X,Z), koji zavisi od zadovoljavanja
podciljeva roditelj(W,X) i roditelj(W,Z). U slučaju da važi X=zevs, Y=pluto i Z=demetra, onda postoje
an
dve mogucnosti za W, što su kron i reja. Kako sistem dva puta nalazi način da zadovolji sve potciljeve u
kojima figurišu dodele vrednosti X=zevs i Y=pluto, dva puta navodi tu kombinaciju kao rešenje. Slučak upita
sestraodstrica(X,Y) je analogan.
d
iz
Pitanja i zadaci
Pitanje 10.1. Na kom metodu je zasnovan mehanizam izvodenja zaključaka u PROLOG-u?
o
sk
Pitanje 10.2. Kakve klauze logike prvog reda odgovaraju PROLOG činjenicama, pravilima i upitima?
Pitanje 10.3. Koliko literala bez negacije se moze javiti u kluzama koje se koriste u PROLOG-u?
n
ro
promenljive su termovi; promenljive se zapisuju početnim velikim slovom ili simbolom _ (simbolom _
počinju imena anonimnih promenljivih čije vrednosti nisu bitne).
konstante su termovi; konstante su zapisi brojevnih konstanti (celobrojnih i realnih, npr. -123, 3.14) ili
atomi. Atom je:
– niz slova, cifara i simbola _ koji počinje malim slovom (npr. sokrat).
– slovna niska u jednostrukim znacima navoda (npr. ’sokrat’).
– niz specijalnih simbola (npr. :-).
141 10. PROLOG
Ako je f atom, a A1, . . ., An termovi, onda je f(A1,...,An) term višeg reda (na primer, man(sokrat) ili
ucitelj(sokrat,X)). Ovakve termove višeg reda u PROLOG-u zovemo i predikati.
Semantika, interpretacija termova odredena je tekućim stanjem baze znanja. Domen interpretacije čine sâmi
PROLOG termovi. Baza znanja, koju PROLOG održava, sastoji se od činjenica i pravila. Činjenice su predikati
oblika:
p(x1,x2,...,xn)
Ukoliko baza znanja sadrži činjenicu man(sokrat), onda se u pratećoj interpretaciji atomičkoj formuli
man(sokrat) pridružuje vrednost 1, tj. ona je tačna.
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
6)
the rule). Navedeno pravilo interpretira se kao implicitno univerzalno kvantifikovana implikacija:
q(y1,y2,...,ym)∧ . . . ∧ r(z1,z2,...,zk) ⇒ p(x1,x2,...,xn)
01
Ukoliko baza znanja sadrži pravilo mortal(sokrat) :- man(sokrat) i činjenicu man(sokrat), onda iz nje
sledi da mortal(sokrat) ima semantičku vrednost 1.
Upiti ili ciljevi (eng. goals) su oblika
(2
q(y1,y2,...,ym),...,r(z1,z2,...,zk)
je
Postaviti cilj znači tražiti proveru da li je zadati skup atomičkih formula za neku valuaciju promenljivih
an
koje sadrži tačan (tj. ima semaničku vrednost 1) u odnosu na tekuće stanje baze. Ako je taj uslov ispunjen,
kažemo da je cilj zadovoljen ili da cilj uspeva (eng. succeed). Valuaciju za koju je zadati cilj zadovoljen zovemo
odgovorom na zadati cilj ili rešenjem zadatog cilja.
d
Na primer, ukoliko baza znanja sadrži činjenicu man(sokrat), i pravilo mortal(X) :- man(X), onda cilj
iz
mortal(Y) može biti zadovoljen i to za valuaciju kojom se promenljiva Y preslikava u vrednost sokrat. Jedini
odgovor na ovaj cilj biće, dakle, Y = sokrat.
Nove činjenice i pravila se u interaktivnom okruženju zadaju kao argumenti predikata assert(...) i svaki
o
Činjenice, pravila i ciljevi, pored navedene, deklarativne semantike, imaju i odgovarajuću proceduralnu
semantiku koja omogućava korišćenje PROLOG-a kao programskog jezika. Proceduralna semantika činjenice
n
mortal(X) je: odredi valuaciju takvu da je mortal(X) tačno. Proceduralna semantika za složeni cilj, koji se
sastoji od više pojedinačnih ciljeva, je analogna, s tim što se podciljevi obraduju sleva na desno.
kt
PROLOG interpretator kao odgovor na neki cilj koji je zadovoljen, ispisuje jednu valuaciju (zbog specifičnog
domena, valuaciju ćemo zvati i instanciranje) promenljivih za koju je cilj tačan i reč Yes (ukoliko ime neke
le
promenljive počinje simbolom _, onda se njena vrednost ne ispisuje). Ukoliko cilj ne može biti zadovoljen,
interpretator ispisuje reč No. Ukoliko jedan cilj ima više odgovora (tj. zadovoljavajućih valuacija), PROLOG ih
E
navodi jedan po jedan, nakon što korisnik ukuca znak ;. Ukoliko korisnik pritisne Enter, interpretator prestaje
sa daljim navodenjem rešenja. Kada su sva rešenja navedena, interpretator ispisuje reč No.
p(a). /* C1 */
p(X) :- q(X), r(X). /* C2 */
p(X) :- u(X). /* C3 */
q(X) :- s(X). /* C4 */
r(a). /* C5 */
r(b). /* C6 */
s(a). /* C7 */
s(b). /* C8 */
s(c). /* C9 */
u(d). /* C10 */
6)
01
p(X)
(2
C1 (X=a) C2 C3
true q(X),r(X) u(X)
X=a
C4
s(X),r(X)
je C10(X=d)
true
an
X=d
C5 C6 C5 C6 C5 C6
o
Svaki čvor stabla je u nekom trenutku tekući cilj koji može da čini nekoliko podciljeva. Ukoliko se krajnji
kt
levi podcilj unifikuje sa glavom neke klauze, onda se taj podcilj zamenjuje telom klauze instanciranim tom istom
unifikacijom. Ako je telo klauze prazno, onda se podcilj samo izostavlja. Ako se svi podciljevi mogu obrisati
le
tokom izvodenja, onda je polazni cilj zadovoljen, a instanciranje promenljivih odredeno usput daje odgovor.
PROLOG stablo izvodenja obilazi u dubinu, što znači da će alternativni izbori da budu ispitani onda kada se
E
pretraga vrati do tačke u kojoj ti izbori postoje. Ovaj postupak pretrage zove se bektreking (eng. backtracking).
U skladu sa prikazanim stablom izvodenja, upit p(X) daće sledeće odgovore:
?- p(X).
X = a ;
X = a ;
X = b ;
X = d ;
No
143 10. PROLOG
Pitanja i zadaci
Pitanje 10.6. Da li se u PROLOG-u stablo izvodenja obilazi u dubinu ili u širinu?
Pitanje 10.7. U Prologu svakom listu stabla pretrage odgovara ili unifikacija koja daje jedno rešenje ili
Pitanje 10.8. Ako neki PROLOG cilj može da bude zadovoljen, koliko onda u odgovarajućemu stablu izvodenja
postoji listova koji ne prestavaljaju praznu klauzu.
Pitanje 10.9. U PROLOG bazi postoji skup činjenica:
p(a).
p(b).
q(a).
q(b).
q(c).
6)
Nacrtati stablo izvodenja za upit p(X),q(X)., za upit p(X),q(Y)., za upit p(X),!,q(X). i za upit p(X),!,q(Y).
01
10.4 Operator sečenja
(2
Operator sečenja (eng. cut operator), koji se zapisuje !, odseca delove stabla pretrage. Ovaj operator, uspeva
kada je on tekući cilj i stablu izvodenja se odsecaju svi drugi izvori na putu unzad do tačke stabla izvodenja
(uključujući i nju) gde se nalazi operator. je
Za program naveden u poglavlju 10.3, za cilj p(X),!. dobija se samo jedan odgovor (a odgovarajuće stablo
an
izvodenja je prikazano na slici 10.2 — sivom bojom označeni su čvorovi koji se ne obilaze):
d
?- p(X),!.
iz
X = a ;
o
No
sk
p(X)
n
ro
C1 (X=a) C2 C3
true q(X),r(X) u(X)
X=a
kt
C4 C10(X=d)
le
s(X),r(X) true
X=d
E
C5 C6 C5 C6 C5 C6
true fail fail true fail fail
X=a X=b
Za isti program, upit r(X),s(Y) daje odgovore (stablo izvodenja je prikazano na slici 10.3):
?- r(X),s(Y).
X = a
Y = a ;
10.4. Operator sečenja 144
X = a
Y = b ;
X = a
Y = c ;
X = b
Y = a ;
X = b
Y = b ;
X = b
Y = c ;
No
6)
01
r(X),s(Y)
(2
C5(X=a) C5(X=b)
s(Y) s(Y)
je
an
C7(Y=a) C7(Y=b) C7(Y=c) C7(Y=a) C7(Y=b) C7(Y=c)
true true true true true true
d
Upit r(X),!,s(Y), zbog operatora sečenja daje samo odgovore (stablo izvodenja je prikazano na slici 10.4):
sk
?- r(X),!,s(Y).
n
X = a
ro
Y = a ;
kt
X = a
Y = b ;
le
X = a
E
Y = c ;
No
Konačno, upit r(X),s(Y),!, zbog operatora sečenja daje samo jedan odgovore (stablo izvodenja je prikazano
na slici 10.5):
?- r(X),s(Y),!.
X = a
Y = a ;
No
Operator sečenja ne koristi se samo u ciljevima, već može da se koristi i u pravilima/klauzama koje čine
program. On sprečava korišćenje klauza koje postoje iza klauze koja ga sadrži.
Razmotrimo primer predikata koji opisuje maksimum dva broja:
145 10. PROLOG
r(X),!,s(Y)
C5(X=a) C5(X=b)
s(Y) s(Y)
r(X),s(Y),!
6)
01
C5(X=a) C5(X=b)
s(Y) s(Y)
(2
C7(Y=a) C7(Y=b) C7(Y=c) C7(Y=a) C7(Y=b) C7(Y=c)
true true true true trueje 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
an
max(X,Y,Y) :- X =< Y.
max(X,Y,X) :- X>Y.
o
sk
Naravno, ovako implementiran predikat je sasvim ispravan. No, on nije dovoljno efikasan. Ukoliko je cilj
max(3,4,Y) pozvan u okviru izvršavajna nekog većeg programa, biće dobijen (ispravan) odgovor Y=4. Medutim,
n
ukoliko dode do bektrektinga program će pokušati da zadovolji max(3,4,Y) na neki drugi način, što je u ovom
ro
slučaju potpuno nepotrebno: maximum brojeva 3 i 4 je 4 i nema drugog mogućeg rezultata. U gore navedenoj
definiciji, dve klauze se medusobno isključuju (ako prva uspeva, onda druga sigurno ne uspeva i obratno), pa je
kt
max(X,Y,X) :- X>Y.
Navedena implementacija funkcioniše na sledeći način: ukoliko je pozvan cilj max(X,Y,Y) i ukoliko X =< Y
uspeva, onda je drugi argument maksimum i operator sečenja onemogućava ispitivanje drugih mogućnosti. S
druge strane, (samo) ako X =< Y ne uspeva, prelazi se na sledeću klauzu.
Primetimo da upotrebljeni operator sečenja ne menja značenje programa i skup odgovora (u odnosu na
prethodnu verziju). Obe verzije programa su iste, do na operator sečenja i to sugeriše da je njegova upotreba
opravdana i prihvaljiva. Takav operator sečenja (koji ne menja značenje programa) zovemo zeleni operator
sečenja. Operator sečenja tog tipa ima za cilj izbegavanje nepotrebnih izračunavanja popravljanje efikasnosti.
Postoji i druga vrsta operatora sečenje — crveni operator sečenja. Crvenim zovemo operator sečenja koji
menja značenje programa. U principu dobro je izbegavati takve operatore, sem ako za njihovu upotebu ne
postoji dobar razlog. Razmotrimo sledeći primer:
Ovaj predikat je sličan prethodnom, uz razliku da je u drugoj klauzi izostavljen uslov X>Y. Navedni program
sa opetorom sečenja nije isti ukoliko se izostavi operator sečenja. To sugeriše da njegova upotreba zahteva
posebnu pažnju (jer on menja značenje programa). Za neke upite navedena implementacija je ispravna. Na
primer, ona ispravno odgovara na upite u kojima je (samo) treć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 sečenja i značenje predikata max je promenjeno. Na
6)
primer, ukoliko su sva tri argumenta instancirana, cilj može da bude da se zadovolji max(2,3,2). Ovaj upit ne
bi trebalo da uspe, ali u navednoj verziji sa crvenim operatorom sečenja on (neočekivano?) uspeva. Naime, ne
01
uspeva unifikovanje sa prvom klauzom, te se prelazi na drugu. Cilj se uspešno unifikuje sa drugom klauzom i biva
zadovoljen. Ovaj primer pokazuje kako neoprezna upotreba operatora sečenja može da dovede do neočekivanog
(2
ponašanja programa. On je tipičan primer za crveni operator sečenja. Navedena implementacija zapravo ne
definiše maksimum, već neki drugi predikat i ponaša se očekivano (kao maksimum) samo u nekim slučajevima.
Dobra praksa je da se najpre implementira jasan program bez operatora sečenja i da se tek onda njegova
efikasnost popravi korišćenjem operatora sečenja. je
an
Pitanja i zadaci
Pitanje 10.10. Kako se naziva operator sečenja čijim se dodavanjem ne menja skup rešenja, ali se povećava
d
efikasnost izračunavanja?
iz
Pitanje 10.12. Da li zeleni operator sečenja može da odseca deo stabla pretrage u PROLOG-u?
sk
Pitanje 10.14. Kako treba modifikovati Prolog upit ?- r(X),s(Y). da on pronalazi samo jednu vrednost za
X?
kt
le
Termin negacija kao neuspeh se koristi za način na koji se pretpostavka zatvorenog sveta (eng. closed world
assumption) implementira kao vrsta negacije u PROLOG-u. Grubo rečeno, pretpostavka zatvorenog sveta govori
da je netačno sve što nije eksplicitno navedeno kao tačno. Operator \+ daje efekat negacije kao neuspeha, isto
kao predikat not definisan na sledeći način (u nekim implementacijama PROLOG-a raspoloživ je i ovakav
predikat not):
man(sokrat).
man(platon).
woman(X):- \+( man(X) ).
?- woman(sokrat).
no
Naime, da bi bio zadovoljen cilj woman(sokrat) ispituje se cilj man(sokrat). Ovaj cilj uspeva i zato cilj
woman(sokrat) ne uspeva (i nema mogućnosti bektrekinga). S druge strane, cilj woman(ksantipa) uspeva (iako
takva činjenica ne postoji u bazi). Ipak, cilj
?- woman(X).
ne uspeva. Zaista, ovaj cilj može da uspe samo ako cilj man(X) ne uspeva. Ali cilj man(X) može da uspe (za X
koje se instancira na sokrat). Dakle, cilj woman(X) ne uspeva i X ne postaje vezana.
Upit ?- woman(X) možemo da smatramo istim kao pitanje da li postoji X takvo da je woman(X). Ovaj upit
ne uspeva a znamo da upit woman(ksantipa) uspeva. Dakle, ovaj oblik negacije (negacija kao neuspeh) se bitno
razlikuje od obične logičke negacije.
Razmotrimo još jedan primer za ilustraciju razlike izmedu negacije kao neuspeha i klasične logičke negacije:
6)
a(1).
01
a(2).
p(X,Y) :- a(X),a(Y),\+(X=Y).
q(X,Y) :- \+(X=Y),a(X),a(Y).
(2
Od upita p(X,Y) i q(X,Y) bismo očekivali isto ponašanje, medutim dobijamo:
?- p(X,Y). je
an
X=1
Y=2;
d
X=2
iz
Y=1;
No.
o
sk
?- q(X,Y).
n
No.
ro
Prvi upit se ponaša u skladu sa našim očekivanjem, ali drugi od njega odstupa. Prvi podcilj cilja q(X,Y)
je not(X=Y). Pošto se neinstancirane promenljive X i Y uvek mogu unifikovati, cilj X=Y uvek uspeva. Stoga cilj
kt
slobodnih promenljivih u upitu, tj. ako je argument operatora \+ vezan u trenutku kada je ovaj operator
pozvan.
E
Primetimo i da se cilj \+(\+(man(X))) razlikuje od cilja man(X) jer ako je prvi zadovoljen, onda će promen-
ljiva X ostati slobodna, za razliku od cilja man(X) koji će biti zadovoljen a promenljiva X će biti instancirana
na sokrat. Ovo svojstvo može da posluži i kao pogodan test da li su dva terma unifikabilna bez njihovog
unifikovanja u bilo kom slučaju. Na primer, cilj \+(\+(X=2)) uspeva, a pri tome se X ne instancira na 2.
Pitanja i zadaci
Pitanje 10.15. Kako se u PROLOG-u obično definiše operator not?
Pitanje 10.16. Navesti PROLOG cilj koji uspeva ako i samo ako su termovi 𝐴 i 𝐵 unifikabilni ali ih pri tom
ne unifikuje.
10.6 Liste
Liste su jedan od ključnih tipova podataka koji se koriste u logičkom programiranju. Lista je prazna lista ili
element za kojim sledi lista. Liste se rekurzivno definišu, pa se rekurzija prirodno javlja u rešenjima problema
10.6. Liste 148
Praznu listu označavamo sa []. Ukoliko je lista neprazna, njen prvi element zovemo glava liste, a nastavak
rep liste, takvu listu označavamo sa [GlavaListe|RepListe].
Sledeća tabela pokazuje na primerima da li se i kako mogu unifikovati različite liste.
6)
[X,1,2] [Y,Y,2] da X=1, Y=1
[a,b,c] [H|T] da H=a, T=[b,c]
01
[a,b,c] [X,Y|T] da X=a, Y=b, T=[c]
[] X da X=[]
(2
[] [] da
[] [H|T] ne
[[]] [H|T] da H=[], T=[]
[a,b,c]
[a,b,c]
[X|[Y|Z]]
[X|[Y|[Z]]]
da
da
je X=a,Y=b,Z=[c]
X=a,Y=b,Z=c
an
[a] [H|T] da H=a,T=[]
[[],[]] [H|T] da H=[],T=[[]]
[a,b|X] [a,b,c] da X=[c]
d
Predikat koji odreduje prvi element liste se može definisati na sledeći način:
o
sk
glava([H|_],H).
n
prvatri([X,Y,Z|_],X,Y,Z).
kt
Predikat koji dodaje element na početak liste može se definisati na sledeći način:
dodajnapocetak(Lista,X,[X|Lista]).
clan2([X|_],X).
clan2([_|R],X):- clan2(R,X).
Prva definicija je efikasnija, pošto operator sečenja sprečava bektreking posle uspešnog nalaženja traženog člana
(dok se u drugoj verziji pretraga do kraja liste i kad je traženi elemente već pronaden). Medutim, druga verzija
se može koristiti i za nabrajanje članova liste. Upit clan1([1,2,3],X) daje odgovor:
149 10. PROLOG
?- clan1([1,2,3],X).
X=1;
No.
?- clan2([1,2,3],X).
X=1;
X=2;
X=3;
6)
No.
01
Još jedna razlika izmedu ovih predikata se ilustruje sledećim primerima:
?- clan1([1,2,3],X), X>2.
(2
No.
?- clan2([1,2,3],X), X>2. je
an
X=3;
d
No.
iz
U slučaju prvog predikata, promenljiva X se pomoću prvog pravila za clan1 unifikuje sa prvim elementom liste,
a operator sečenja onemogućava bektreking. Stoga ne uspeva cilj X>2 i sistem odgovara No. U drugom slučaju,
o
posle neuspeha cilja X>2, bektrekingom se dolazi do unifikacije promenljive X sa poslednjim elementom liste,
sk
duzina([],0).
ro
duzina([_|R],M):-duzina(R,M1), M is M1+1.
kt
brisi_jedno(X,[X|R],R).
le
brisi_jedno(X,[F|R],[F|S]) :- brisi_jedno(X,R,S).
E
?- brisi_jedno(X,[1,2,3],L).
X=1 L=[2,3] ;
X=2 L=[1,3] ;
X=3 L=[1,2] ;
No
Sledeći upit:
?- brisi_jedno(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
10.6. Liste 150
pokazuje da predikat brisi_jedno(X,L,R) može da se interpretira i kao „ubaci element X u listu L koja tako
daje listu R“. Dakle, predikat ubaci mogao bi da se jednostavno implementira:
ubaci(X,L,R) :- brisi_jedno(X,R,L).
append([X|Y],Z,[X|W]) :- append(Y,Z,W).
append([],X,X).
?- append([1,2,3],[4,5],[1,2,3,4,5]).
Yes
?- append([1,2,3],[4,5],A).
6)
A = [1,2,3,4,5]
01
?- append([1,2,3],A,[1,2,3,4,5]).
A = [4,5]
(2
?- append(A,[4,5],[1,2,3,4,5]).
A = [1,2,3]
mergesort([],[]).
iz
mergesort([A],[A]).
mergesort([A,B|R],S) :-
split([A,B|R],L1,L2),
o
mergesort(L1,S1),
sk
mergesort(L2,S2),
merge(S1,S2,S).
n
ro
split([],[],[]).
split([A],[A],[]).
split([A,B|R],[A|Ra],[B|Rb]) :- split(R,Ra,Rb).
kt
merge(A,[],A).
le
merge([],B,B).
merge([A|Ra],[B|Rb],[A|M]) :- A =< B, merge(Ra,[B|Rb],M).
E
Ovaj predikat je definisan tako da se koristi za izračunavanje drugog argumenta ako je dat prvi. Nije ga
moguće koristiti za izračunavanje prvog argumenta ako je dat drugi. Naime, na primer, upit mergesort(A,[1,2,3])
bi prilikom poziva predikata merge doveo do nedovoljno instanciranih promenljivih i do greške.
Algoritam bubble sort može se implementirati na sledeći način:
bubblesort(List, Sorted) :-
swap(List, List1), !,
bubblesort(List1, Sorted).
bubblesort(Sorted, Sorted).
Druga varijanta uključuje prolog operator implikacije -> (a naravno postoji i varijanta i bez njega):
151 10. PROLOG
bubblesort2(List, Sorted) :-
append(P, [A, B|T], List),
B < A ->
append(P, [B, A|T], R),
bubblesort2(R, Sorted)
; Sorted = List.
Pitanja i zadaci
Pitanje 10.17. Da li su PROLOG termovi [[],[]] i [H|T] unifikabilni i ako jesu - sa kojim unifikatorom:
Pitanje 10.18. Da li su PROLOG termovi [[]] i [H|T] unifikabilni i ako jesu - sa kojim unifikatorom:
6)
Logičke konstante
01
Predikat true uvek uspeva kao cilj, predikat false nikad ne uspeva kao cilj.
Provera promenljive
(2
Predikat var(X) proverava da li je X promenljiva koja nije vezana.
Predikat ground(G) proverava da li G ne sadrži promenljive koje nisu vezane.
Provera tipa je
an
Predikat atom(X) uspeva ako je X vezana za simbolički atom. Na primer, atom(foot) i atom(’foot’)
uspevaju, a atom("foot") i atom(3) ne uspevaju.
Predikat integer(X) proverava da li je X vezana za ceo broj.
d
Unifikabilnost i jednakost
sk
različite vrednosti.
ro
Aritmetiči operatori
Za brojeve N i M, dozvoljeni su sledeći aritmetički operatori: N > M, N < M, N =< M, N >= M.
E
Pomoćni predikati
Cilj help(S) uvek uspeva i daje objašnjenje (ako ono postoji) za pojam S (S treba da bude simbolički
atom, na primer, help(var)).
Cilj halt uvek uspeva, zaustavlja PROLOG i vraća kontrolu operativnom sistemu.
Cilj trace uvek uspeva i uključuje praćenje izvršavanja izračunavanja. Cilj notrace uvek uspeva i is-
ključuje praćenje izvršavanja izračunavanja.
Dodavanje u PROLOG bazu i brisanje iz PROLOG baze
Cilj asserta(C) dodaje klauzu C u bazu pre klauza koje imaju isti ključni predikat (ključni predikat klauze
je prvi predikat sleva nadesno).
Cilj assertz(C) (kao i cilj assert(C)) dodaje klauzu C u bazu iza klauza koje imaju isti ključni predikat.
Cilj retract(C) briše klauzu C iz baze. Klauza C treba da bude instancirana tako da može da se odredi
ključni predikat.
listing prikazuje sadržaj baze.
10.7. Ugradeni predikati 152
6)
telling(X) uspeva ako X može biti vezana za tekući izlazni port. Na primer, telling(user) uspeva ako
je tekući izlazni tok ekran.
01
tell(X) otvara kao izlazni port datoteku X. Naredni ulazi predikata write biće slati na taj port.
told zatvara sve izlazne portove i naredni ulazi za predikat biće biće slat na porta user.
(2
write(E) ispisuje izraz vezan za E na tekući izlazni port.
nl omogućava prelazak u novi red.
tab(N) ispisuje N razmaka na tekući izlazni port. je
an
Kontrola toka
call(P) poziva predikat P, uspeva ako i samo ako uspeva P.
d
! operator sečenja.
iz
clause(H,B) vraća klauze iz baze čija glava se uparuje sa H, a telo sa B. Vrednost H mora biti dovoljno
instancirana da odreduje glavni predikat glave.
n
functor(E,F,N) uspeva ako je vrednost E vezana za funkcijski izraz oblika f(...). F će biti vezano za f
ro
za neki redni broj argumenta u f(...). Ukoliko cilj uspe, A će biti vezano za N-ti argument u f(...).
name(A,L) vrši konvertovanje izmedu atoma i liste. Na primer, upit ?- name(’.pl’,L). daje odgovor
le
L = [46,112,108].
E
=.. vrši konvertovanje izmedu terma i liste. Na primer, ?- parent(a,X) = .. L. daje odgovor
L = [parent, a, _X001].
Operator :- op(P,T,O). uvodi simbol operatora.
P odreduje prioritet operatora, većoj vrednosti odgovara niži prioritet (prioriteti za ugradene operatore
zavise 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;
153 10. PROLOG
O je ime operatora.
Tip operatora se definiše pomoću jednostavnih, gore datih, niski karaktera. Karakter f označava poziciju
operatora, a x i y pozicije argumenata. Pri tome x znači da se radi o argumentu sa glavnim operatorom
strogo manjeg prioriteta od operatora koji definišemo. y znači da prioritet glavnog operatora argumenta
može biti manji ili jednak prioritetu operatora koji definišemo. Pri tome se smatra da atomi i izrazi u
zagradama imaju prioritet 0.
Smisao ovakvog definisanja tipa operatora se najbolje ilustruje pomoću stabla operatora. Neka je operator
+ tipa yfx i neka je dat izraz a+b+c. Postoje dva stabla izraza koja mu potencijalno mogu odgovarati.
Data su na slici 10.6.
+ +
+ 𝑐 𝑎 +
6)
01
𝑎 𝑏 𝑏 𝑐
(2
Slika 10.6: Dva stabla koja mogu odgovarati izrazu a+b+c
je
Ako posmatramo desno drvo, primećujemo da njegovo desno poddrvo ima operator + u korenu koji nije
an
strogo manjeg prioriteta od operatora + u korenu celog stabla. Medutim, njegov tip yfx to zahteva,
pa stoga desno drvo moramo odbaciti. Odnosno, operator je levo asocijativan i izraz se tumači kao
((a+b)+c). Da je tip operatora bio xfx ni jedno od ova dva stabla ne bi bilo prihvatljivo, pošto se bar u
d
jednom poddrvetu javlja operator + istog prioriteta. Ovo se može rešiti pomoću zagrada, pošto je prioritet
iz
izraza u njima 0. Stoga tip xfx nameće korišćenje zagrada, što znači da operator nije asocijativan.
Ugradeni operatori, poredani po prioritetima:
o
:- xfx, fx
sk
?- fx
; xfy
, xfy
n
not fy
ro
*, / yfx
^ xfy
le
Pitanja i zadaci
Pitanje 10.19. Kako se u PROLOG-u, u interaktivnom radu, dodaje nova činjenica?
Pitanje 10.20. Koji predikat prekida izvršavanje Prolog interpretarora?
Pitanje 10.21. Kojim izrazom se u PROLOG-u promenljiva 𝑋 veže za numeričku vrednost, npr. 5?
Pitanje 10.22. Kako se PROLOG program učitava iz datoteke datoteka?
10.8. Primeri rešavanja problema primenom PROLOG-a 154
Pitanje 10.23. Koji upit u PROLOG-u uspeva ako i samo ako je X neinstancirana promenljiva?
:- op(10,fx,non).
6)
:- op(20,yfy,and).
:- op(30,yfy,or).
:- op(40,xfx,imp).
01
:- op(50,xfx,eq).
(2
Operatori and i or su definisani kao asocijativni (yfy), što dovodi do ispuštanja nepotrebnih zagrada u
zapisu i lakše čitljivosti.
Predikat knf implementira KNF algoritam iz tri koraka. Prvo se eliminišu veznici ekvivalencije i implikacije,
je
zatim se vrši primena de Morganovih zakona uz eliminisanje dvostrukih negacija, a na kraju primena zakona
distributivnosti disjunkcije i konjunkcije.
an
knf(X,Y) :- elim(X,Z),dem(Z,T),dist(T,Y).
d
Primetimo da je pri svakom pozivu primenljivo samo jedno pravilo za eliminaciju, tako da PROLOG neće
ro
tražiti više od jednog rešenja. Osim toga, treba primetiti da je prvo pravilo specifično zato što eliminišući jedan
veznik uvodi novi koji je potrebno eliminisati.
kt
Primetimo da je jednostavnosti radi učinjeno malo odstupanje od KNF algoritma kako je dat na slici 8.2.
Naime, dozvoljena je eliminacija dvostruke negacije i pre nego što se do kraja primene de Morganovi zakoni.
Kada mu je argument neka konjunkcija, predikat dist omogućava rekurzivnu primenu na konjunkte, a
slučaju disjunkcije primenjuje zakone distributivnosti. Pri tome se uzima u obzir i to da primena ovog zakona
može dovesti do stvaranja novih uslova za njegovu primenu u okviru podformula dobijenog izraza.
knf_u_listu_listi(X,[[X]]) :- atom(X).
6)
knf_u_listu_listi(non X, [[non X]]) :- atom(X).
knf_u_listu_listi(X and Y,R) :- knf_u_listu_listi(X,R1),
01
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).
(2
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), je
an
disjunkcija_u_listu(Y,R2),
append(R1,R2,R).
d
U cilju implementacije DPLL algoritma, prvo su nam potrebni pomoćni predikati koji implementiraju rad
iz
sadrzi([X|R],X).
sk
sadrzi([Y|R],X) :- sadrzi(R,X).
n
Da bismo proverili da li lista listi sadrži neki element koristićemo dvostruku primenu predikata sadrzi, s tim
što ćemo u nastavku predikatima davati nazive u skladu sa njihovim smislom u implementaciji DPLL algoritma.
ro
formula_sadrzi_literal(X,Y) :- sadrzi(X,Z),sadrzi(Z,Y).
kt
Kako se u DPLL algoritmu koriste i zamene literala ili iskaznih slova, koristićemo i sledeći predikat:
le
zameni_u_disj(X,Y,[X|R],[Y|T]) :- zameni_u_disj(X,Y,R,T),!.
E
zameni_u_disj(X,Y,[Z|R],[Z|T]) :- zameni_u_disj(X,Y,R,T).
zameni_u_disj(X,Y,[],[]).
Pri tome se podrazumeva da su disjunkcije unutrašnje liste. Zamena elementa liste listi (literala u celoj
formuli) se sad lako vrši:
zameni_literal(X,Y,[P|R],[Q|T]) :- zameni_u_dsij(X,Y,P,Q),
zameni_literal(X,Y,R,T).
zameni_literal(X,Y,[],[]).
Zamena iskaznog slova p u formuli se može uraditi tako što se zamene oba literala - p i non p odgovarajućim
simbolima u celoj formuli.
zameni_slovo(X,Y,P,Q) :- zameni_literal(X,Y,P,R),
zameni_literal(non X, non Y,R,Q).
brisi_sve(X,[X|R],R1) :- brisi_sve(X,R,R1),!.
brisi_sve(X,[Y|R],[Y|R1]) :- brisi_sve(X,R,R1).
brisi_sve(X,[],[]).
DPLL algoritam prvo proverava da li operiše sa praznom listom klauza i ako je tako vraća yes, a u suprotnom,
vrši zamene ¬⊤ sa ⊥ i ¬⊥ sa ⊤, briše pojavljivanja literala ⊥ koji je u našoj implementaciji predstavljen atomom
f (dok je ⊤ predstavljen atomom t) i proverava da li se prazna klauza nalazi u skupu klauza. Posle toga se
pokusava sa koracima tautology, unit propagation, pure literal i split.
6)
zameni_negacije_literala(X,Y),dpll(Y).
dpll(X) :- formula_sadrzi_literal(X,non f),!,
zameni_negacije_literala(X,Y),dpll(Y).
01
% Brisanje literala f
(2
dpll(X) :- formula_sadrzi_literal(X,f),!,brisi_f(X,Y),dpll(Y).
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),!,
iz
brisi_sve(Y,X,Z),dpll(Z).
o
dpll(X) :- formula_sadrzi_literal(X,Y),atom(Y),
not(formula_sadrzi_literal(X,non Y)),!,
kt
zameni_slovo(Y,t,X,Z),dpll(Z).
dpll(X) :- formula_sadrzi_literal(X,non Y),
not(formula_sadrzi_literal(X,Y)),!,
le
zameni_slovo(Y,f,X,Z),dpll(Z).
E
% Korak split
dpll([[X|R1]|R2]) :- atom(X),zameni_slovo(X,t,[[X|R1]|R2],Y),
dpll(Y),!.
dpll([[X|R1]|R2]) :- atom(X),zameni_slovo(X,f,[[X|R1]|R2],Y),
dpll(Y).
dpll([[non X|R1]|R2]) :- zameni_slovo(X,t,[[non X|R1]|R2],Y),
dpll(Y),!.
dpll([[non X|R1]|R2]) :- zameni_slovo(X,f,[[non X|R1]|R2],Y),
dpll(Y).
Primetimo da je recimo u koraku tautology moguće da postoji više klauza koje sadrže literal t. U tom
slučaju PROLOG bi prirodno vršio bektreking u potrazi za svim rešenjima. Kako to u našoj implementaciji
nema svrhe, ubačen je predikat reza koji sprečava ovakvo ponašanje. Slična opaska važi i u pravilima unit
propagation i pure literal.
Zamene negiranih literala se vrše jednostavno kad imamo implementirane pomoćne predikate.
157 10. PROLOG
Brisanje literala f:
brisi_f([X|R],[Y|R1]) :- brisi_sve(f,X,Y),brisi_f(R,R1).
brisi_f([],[]).
sadrzi_praznu_klauzu(X) :- sadrzi(X,[]).
Sada možemo dodati još jedan predikat koji proverava da li je formula zadovoljiva:
zadovoljiva(X) :- knf(X,Y),knf_u_listu_listi(Y,Z),dpll(Z).
6)
01
10.8.3 Pretraga grafa
(2
Kako grafovi predstavljaju binarne relacije nad nekim domenom, PROLOG omogućava vrlo jednostavno
opisivanje i pretragu grafova. Graf se zadaje listom svojih grana.
edge(1,
edge(1,
5).
7). je
an
edge(2, 1).
edge(2, 7).
edge(3, 1).
d
edge(3, 6).
iz
edge(4, 3).
edge(4, 5).
edge(5, 8).
o
edge(6, 4).
sk
edge(6, 5).
edge(7, 5).
n
edge(8, 6).
edge(8, 7).
ro
Nalaženje putanje se realizuje rekurzivno. Postoji put od čvora 𝐴 do čvora 𝐵 ako je 𝐴 = 𝐵 ili ako postoji
kt
grana od čvora 𝐴 do čvora 𝑋 i postoji put od 𝑋 do 𝐵 . Kako grafovi mogu u opštem slučaju sadržati cikluse,
potrebno je pamtiti i listu posećenih čvorova kako ne bi došlo do prekoračenja steka pri rekurzili.
le
state(3, 1, left)
Potezi predstavljaju prevoženje jedne ili dve osobe na drugu stranu reke. Potpuno su odredeni brojem
misionara i ljudoždera koji se prevoze i stranom na koju se čamac kreće. Primer poteza je
move(1, 1, right)
Stanja igre možemo smatrati čvorovima grafa čije su grane potezi pomoću kojih se prelazi iz jednog sta-
nja u drugo. Na ovaj način se rešavanje problema svodi na nalaženje putanje kroz graf od polaznog stanja
state(3,3,left) do završnog state(0,0,right). Samo rešenje je lista poteza koji odgovaraju granama koje
spajaju medustanja u toku rešavanja.
[move(0,2,left), move(0,1,right)|...]
Osnovni predikat za rešavanje ovog problema ima formu već prikazanog predikata za pretragu grafa.
6)
mandc(state(0, 0, right), _, []).
mandc(CurrentState, Visited, [Move | RestOfMoves]) :-
newstate(CurrentState, NextState),
01
not(sadrzi(NextState, Visited)),
make(CurrentState, NextState, Move),
(2
mandc(NextState, [NextState | Visited], RestOfMoves).
Za uočeno stanje koje nasleduje trenutno, potez koji realizuje prelaz se lako izračunava.
je
make(state(M1,C1,left), state(M2,C2,right), move(M,C,right)) :-
an
M is M1 - M2,
C is C1 - C2.
make(state(M1,C1,right), state(M2,C2,left), move(M,C,left)) :-
d
M is M2 - M1,
iz
C is C2 - C1.
carry(2, 0).
carry(1, 0).
carry(1, 1).
n
carry(0, 1).
ro
carry(0, 2).
kt
kao i legalna stanja. Pozicija čamca je nebitna, ali broj ljudoždera ni na jednoj obali ne sme prelaziti broj
misionara. Stoga, legalna su samo stanja kod kojih je broj misionara na levoj strani jednak broju ljudoždera,
le
stanja koj kojih su sva tri misionara na levoj obali i stanja kod kojih su svi misionari na desnoj obali.
E
legal(X, X).
legal(3, X).
legal(0, X).
Prilikom konstrukcije novog stanja, moramo paziti i da pre prelaska na desnu obalu, na levoj strani mora biti
dovoljno osoba koje su planirane za prelazak, i da posle prelaska na levu obalu na njoj ne može biti više od tri
misionara, odnosno ljudoždera.
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),
159 10. PROLOG
M2 is M1 + M,
C2 is C1 + C,
M2 =< 3,
C2 =< 3,
legal(M2, C2).
Pitanja i zadaci
Zadatak 10.1. Napisati u PROLOG-u:
1. Predikat koji iz iskazne formule eliminiše veznik disjunkcije zamenjujući ga pomoću veznika konjunkcije
i negacije. Pri tome smatrati da su definisani sledeći veznici:
:- op(10,fx,non).
6)
:- op(20,yfy,and).
:- op(30,yfy,or).
01
2. Predikat koji od date liste pravi novu, koja od elemenata polazne liste sadrži samo one koji su i sami liste
(2
i to sa neparnim brojem elemenata.
Primer: Za listu [1,2,[1,2,3],[3,4],4,[a],[1,2],5] rezultat treba da bude [[1,2,3],[a]]. Za listu
[1,2,[1,2,3,4]], rezultat je [].
Al Kapone laže.
Al Kapone je uhvaćen u kradi.
iz
upite da li Al Kapone ide u zatvor"i da li Laki Lućiano ide u zatvor". Nacrtati odgovarajuća dva stabla
izvodenja i navesti sve primene pravila rezolucije (u terminima logike prvog reda) koja se pri tome koriste.
sk
Zadatak 10.3. Napisati u PROLOG-u predikat koji izračunava vrednost binarnog zapisa broja. Broj je dat u
n
obliku liste nula i jedinica. Na primer za ulaz [1, 0, 1, 0], izlaz treba da bude 10.
ro
Zadatak 10.4. Napisati u PROLOG-u predikat koji generiše sve liste date dužine koje se sastoje od elemenata
0 i 1.
kt
Zadatak 10.5. Napisati u PROLOG-u predikat koji od date liste pravi novu, koja od elemenata polazne liste
sadrži samo one koji su i sami liste i to sa neparnim brojem elemenata.
le
Zadatak 10.10. Napisati predikat ubaci koji izlistava sve moguće načine ubacivanja elementa u datu listu.
ubaci(5,[1,2,3],X).
X=[5,1,2,3]
X=[1,5,2,3]
X=[1,2,5,3]
X=[1,2,3,5]
Zadatak 10.13. U PROLOG-u napisati predikat cifre koji prevodi dati broj u listu njegovih cifara u bilo
6)
kom redosledu.
01
Zadatak 10.14. U PROLOG-u napisati predikat minmax koji računa minimum maksimuma elemanata liste
listi. Na primer upit
?- minmax([[1,2,3],[3,4,5],[2,3,4]],X)
(2
treba da da rezultat X=3. Ukoliko je potrebno, mogu se pisati i pomoćni predikati.
Zadatak 10.15. U PROLOG-u napisati predikat prebroj koji za datu listu listi proizvodi listu dužina tih
listi. Na primer, upit
?-prebroj([[1,2,3],[1,2],[1]],X).
je
an
treba da da odgovor X=[3,2,1].
d
Zadatak 10.16. Napisati PROLOG predikat koji iz liste brojeva izdvaja elemente čiji su indeksi stepeni
dvojke. Pretpostaviti da indeksi počinju od 1. Na primer
iz
?-izdvoj([5,3,4,1,6,8,9,10,2],X).
X=[5,3,1,10]
o
Zadatak 10.17. Napisati predikat u PROLOG-u koji kao argument uzima listu brojeva L, i izračunava novu
sk
listu R. Elementi liste R su brojevi iz L koji su deljivi sa 4 i kvadrati brojeva iz L koji su parni a nisu deljivi sa
4.
n
ro
Zadatak 10.18. Napisati u PROLOG-u predikat razdvoj koji kao argument uzima listu brojeva L, i broj X.
Predikat izračunava dve liste, pri čemu se prva sastoji od elemenata iz L čiji su kvadrati manji od X, a druga
od elemenata iz L čiji su kvadrati veći od X. Na primer
kt
?-razdvoj([1,2,3,4,5,6,7,8],9,X,Y).
X=[1,2], Y=[4,5,6,7,8]
le
Zadatak 10.19. U sistemu prirodne dedukcije za logiku prvog reda pokazati ¬𝑆(𝑎), 𝑃 (𝑎) ⇒ 𝑅(𝑎) ∨ 𝑆(𝑎) ⊢
E
𝑃 (𝑎) ⇒ ∃𝑥𝑅(𝑥).
U PROLOG-u napisati predikat koji proverava da li su sve cifre datog broja parne. Na primer
?-parne(123).
false.
Zadatak 10.20. U PROLOG-u napisati predikat selectionsort(X,Y) koji za polaznu listu X gradi sortiranu
listu Y algoritmom šelection sort"(izborom minimalnog elementa). Preporučuje se uvodenje dodatnih predikata
kad je potrebno.
Zadatak 10.21. U PROLOG-u napisati predikat čiji su argumenti lista brojeva i tri broja 𝑎, 𝑏 i 𝑐 koji
proverava da li se u listi pojavljuje broj 𝑏 izmedu brojeva 𝑎 i 𝑐.
Zadatak 10.22. U PROLOG-u napisati predikat koji u listi L pronalazi pojavljivanja liste A i zamenjuje ih
listom B. Na primer
?-zamena([1,2,3,1,2],[1,2],[4]).
[4,3,4]
161 10. PROLOG
Zadatak 10.23. Napisati predikat rotiraj koji ciklično pomera elemente liste ulevo za N mesta. Pretpostaviti
da N nije veće od dužine liste.
?-rotiraj([1,2,3,4,5],3,X).
X=[4,5,1,2,3].
Zadatak 10.24. Napisati predikat palindrom koji proverava da li je data lista palindrom.
?-palindrom([1,2,3,2,1]).
Yes.
Zadatak 10.25. Napisati program koji za dati broj formira listu njegovih prostih delilaca. Na primer:
?-delioci(350,X).
X=[2,5,7].
Zadatak 10.26. Napisati PROLOG predikat koji iz liste brojeva izdvaja elemente čiji su indeksi stepeni
dvojke. Pretpostaviti da indeksi počinju od 1. Na primer
?-izdvoj([5,3,4,1,6,8,9,10,2],X).
6)
X=[5,3,1,10]
Zadatak 10.27. U PROLOG-u napisati predikat koji u listi L pronalazi pojavljivanja liste A i zamenjuje ih
01
listom B. Na primer
?-zamena([1,2,3,1,2],[1,2],[4]).
(2
[4,3,4]
Zadatak 10.28. Napisati predikat parni koji za datu listu brojeva izdvaja sve one brojeve čiji je zbir cifara
paran.
je
an
?-parni([461, 422, 6, 27, 890, 71, 9, 11, 83], X).
Zadatak 10.29. Napisati predikat parne_niske koji za datu listu brojeva odreduje listu podniski konstantne
iz
parnosti.
o
Zadatak 10.30. Da bi se napravio LED televizor potrebno je napraviti pripremiti razlicite delove. U bazi
ro
podataka nalaze se podaci šta od čega zavisi, tj. koji delovi su potrebni da bi se napravio neki drugi deo.
Recimo:
kt
zavisi(LCD_panel, ekran).
zavisi(osvetljenje, ekran).
le
zavisi(prikljucak_za_struju, napajanje).
E
...
Napisati prolog predikat listaPreduslova(Deo) koji za dati deo formira listu svih potrebnih delova.
Napisati PROLOG predikat redosled(ListaDelova, Redosled) koji ispituje da li postoji i pronalazi ako
postoji ispravne redoslede za delova da bi se kompletirao ceo televizor.
Zadatak 10.31. U bazi podataka date su cinjenice oblika predmet(ime_predmeta, kategorija) gde je sa
kategorija označeno da li predmet pripada grupi programerskih ili matematičkih prdmeta. Na primer:
predmet(programiranje2, prog).
predmet(analiza1, mat).
predmet(linAlgebra, mat).
...
Napisati predikat grupa(G, L) koji za datu kategoriju G pravi listu L svih predmeta koji toj grupi pripadaju.
Zadatak 10.32. Napisati predikat izbaci(L1, L2, L) koja iz liste L1 izbacuje sve elemente koji se pojavljuju
u listi L2 i rezultat smešta u L.
10.8. Primeri rešavanja problema primenom PROLOG-a 162
Zadatak 10.33. Napisati predikat pozneg koji za datu listu brojeva izračunava koliko se podniski kontstantnog
znaka javlja u toj nisci.
?-pozneg([1,2,-2,-6,-3,5,-2,-3],X).
X=4.
?-pozneg([1,2,2,-6,3,-5,4],X).
X=5.
√
Zadatak 10.34. Važi sledeće:
Janko ima psa.
Svaki vlasnik psa voli životinje.
Nijedna osoba koja voli životinje ne može da udari životinju.
Janko ili Marko su udarili mačku čije je ime Tuna.
6)
Svaka mačka je životinja.
U PROLOG-u zapisati činjenice i predikate pomoću kojih se može utvrditi ko je udario Tunu.
01
√
Zadatak 10.35. Definisati predikat koji izračunava sumu prvih N prirodnih brojeva.
(2
√
Zadatak 10.36. Definisati predikat koji izračunava sumu cifara datog broja.
√
Zadatak 10.37. Definisati predikat koji izračunava N-ti stepen zadatog broja.
√
Zadatak 10.38. Definisati predikat koji obrće cifre broja. je
an
√
Zadatak 10.39. Definisati predikat koji izračunava najveći zajednički delilac dva broja.
√
Zadatak 10.40. Definisati predikat koji proverava da li je broj prost.
d
√
Zadatak 10.41. Definisati predikat koji izračunava sumu elemenata liste.
iz
√
Zadatak 10.42. Definisati predikat koji obrće listu.
o
√
Zadatak 10.43. Definisati predikat koji dodaje element na kraj liste.
sk
√
Zadatak 10.44. Definisati predikat koji proverava da li se tri zadata elementa nalaze na uzastopnim
n
pozicijama u listi.
√
ro
Zadatak 10.45. Definisati predikat koji konstruiše listu koja se sastoji od prvih 𝑛 elemenata zadate liste.
√
Zadatak 10.46. Definisati predikat koji deli datu listu brojeva na listu negativnih i nenegativnih elemenata.
kt
√
Zadatak 10.47. Definisati predikat koji deli datu listu na dve na sve moguće načine.
le
√
Zadatak 10.48. Definisati predikat koji ispisuje sve podliste date liste.
E
√
Zadatak 10.49. Definisati predikat koji iz date liste briše sva ponavljanja elemenata.
√
Zadatak 10.50. Definisati predikat koji nalazi uniju dve liste.
√
Zadatak 10.51. Definisati predikat koji nalazi presek dve liste.
√
Zadatak 10.52. Definisati predikat koji nalazi razliku dve liste.
√
Zadatak 10.53. Definisati predikat koji nalazi simetričnu razliku dve liste.
Zadatak 10.54. Napisati predikat u PROLOG-u koji kao argument uzima listu listi L i proverava da li liste
iz L čine grejov kod.
?-grejovkod([[0,0],[0,1],[1,1],[1,0]]).
true.
?-grejovkod([[0,0]]).
false.
Deo III
6)
Mašinsko učenje i induktivno zaključivanje
01
(2
je
an
d
iz
o
sk
n
ro
kt
le
E
E
le
kt
ro
n
sk
o
iz
d
an
je
(2
01
6)
Glava 11
6)
Mašinsko učenje je oblast veštačke inteligencije koja se može definisati na različite načine. Jedna defini-
cija kaže da je to disciplina koja se bavi izgradnjom prilagodljivih računarskih sistema koji su sposobni da
poboljšavaju svoje performanse koristeći informacije iz iskustva. Mašinsko učenje može se definisati i kao di-
01
sciplina koja se bavi proučavanjem generalizacije i konstrukcijom i analizom algoritama koji generalizuju. Prva
definicija bliža je inženjerskom i praktičnom računarskom načinu razmišljanja sa akcentom na rešavanju kon-
(2
kretnih problema i implementaciji rešenja. Druga definicija bliža je matematičkom razmišljanju i statistici. Mi
se nećemo ograničiti na samo jedan od njih. Mašinsko učenje teži da se približi ljudskom učenju po efikasnosti,
kao i da ga objasni, to jest, pruži teorijski model za njega. Naravno, oba cilja su za sada daleko od ostvarenja
je
u punom smislu, ali su uspesi u rešavanju pojedinačnih praktičnih problema u mnogim slučajevima impresivni.
Neka od najvažnijih pitanja kojima se bavi mašinsko učenje su:
an
Šta se može naučiti i pod kojim uslovima?
d
Odgovore na ova pitanja treba tražiti kako kroz teorijske modele učenja u okviru kojih se u ovom pogledu
o
već došlo do značajnih rezultata, tako i kroz eksperimentalnu evaluaciju algoritama na podacima iz realnih
sk
problema.
n
Mašinsko učenje uspešno se primenjuje u mnoštvu praktičnih problema. Jedan od najstarijih, a još uvek
kt
zanimljivih praktičnih rezultata postignut je od strane sistema ALVINN zasnovanog na neuronskoj mreži, krajem
osamdesetih godina dvadesetog veka, koji je naučen da vozi javnim putem u prisustvu drugih vozila bez ljudske
pomoći brzinom od oko 110km/h. Uspešno je vozio na putu dužine oko 140km. Sa razvojem dubokih neuronskih
le
mreža, sredinom prve decenije ovog veka, projekat razvoja autonomnog vozila je dobio novi zamah. Pod okriljem
E
kompanije Gugl X, u toku je razvoj vozila koje treba da bude u stanju da samostalno učestvuje u gradskoj vožnji,
koja je značajno komplikovanija od vožnje na auto putu. Izazovi za tehnike mašinskog učenja u ovom problemu
uključuju kako prepoznavanje puta i učesnika u saobraćaju, tako i donošenje odluka. Slične metode se u istoj
kompaniji uspešno koriste i za učenje upravljanja kvadrotorima (malim letilicama sa četiri propelera) u cilju
prenošenja predmeta ili pošiljki. Kompanija Amazon razmatra mogućnost ovakvog načina dostavljanja svojih
pošiljki u gradskim sredinama.
Jedan od najpoznatijih ranih primera primene mašinskog učenja je i sistem TD-Gammon za igranje igre
Backgammon konstruisan devedesetih godina. Igrajući protiv sebe više od milion partija i nastavljajući da uči
u igri sa ljudskim igračima, dostigao je nivo igre u rangu svetskog šampiona. Na sličnim principima, ali koristeći
modernije algoritme učenja konstruisan je sistem AlfaGo koji je 2015. i 2016. ubedljivo pobedio evropskog, a
zatim i svetskog šampiona u igri go. Ova igra je poznata kao jedan od, do sada, najozbiljnijih izazova veštačkoj
inteligenciji u domenu igranja igara, pošto po broju mogućih stanja daleko prevazilazi i šah, što drastično otežava
primenu tradicionalnih tehnika veštačke inteligencije poput algoritma minimaks sa alfa-beta odsecanjem.
Kompanije poput Amazona, koje se bave prodajom različitih artikala, odavno koriste sisteme koji na osnovu
primera kupovnih transakcija korisnika uče kako da budućim korisnicima preporučuju proizvode koji bi ih
mogli zanimati. Ovakvi sistemi, i odgovarajući algoritmi učenja, nazivaju se sistemima za preporučivanje
(eng. recommender system).
165
11.2. Pojam generalizacije 166
Sistemi za prepoznavanje govora takode koriste mašinsko učenje u nekoj formi. Sistem Sphinx, takode
iz kraja osamdesetih, bio je u stanju da prepozna izgovorene reči uz prilagodavanje izgovoru različitih ljudi,
različitim karakteristikama mikrofona, pozadinskoj buci i slično. Na Univerzitetu u Kembridžu je poslednjih
godina razvijen dijaloški sistem koji je u stanju da preko telefona vodi razgovor sa korisnicima u cilju preporuke
restorana i drugih objekata u skladu sa preferencama korisnika.
Mašinsko učenje ima velike primene u obradi slika. Jedna od njih je prepoznavanje objekata na slikama
ili čak u video zapisu. Trenutno se razvijaju sistemi koji uče da prepoznaju predmete u realnom vremenu na
osnovu instrukcija korisnika.
Sveprisutnost društvenih mreža dala je veliki impuls razvoju metoda mašinskog učenja nad grafovima.
Društvena mreža može se razmatrati kao graf čiji čvorovi predstavljaju učesnike mreže, a grane postoje izmedu
učesnika koji su povezani u mreži (poput prijateljstva na mreži Fejsbuk). Pojam društvene mreže nije ograničen
na mreže na internetu, već se odnosi i na bilo kakav vid povezanosti ljudi u relanom životu. Metode mašinskog
učenja se u ovom kontekstu koriste za predvidanje budućih veza medu učesnicima, recimo prilikom preporučivanja
učesnicima mreže sa kime se mogu povezati. Takode, razvijene su i metode za otkrivanje postojećih, ali ne-
opaženih veza u društvenim mrežama. Osnovna motivacija za razvoj ovih metoda je otkrivanje povezanosti u
terorističkim i kriminalnim mrežama.
6)
11.2 Pojam generalizacije
01
Deduktivno zaključivanje, vodeno zakonima logike, može se smatrati osnovnom karakteristikom inteligentnog
(2
ponašanja. Ovakvo zaključivanje jedan je od osnovnih načina zaključivanja kod ljudi. Druga karakteristika
inteligentnog ponašanja koja se može primetiti i kod životinja je prilagodavanje ponašanja jedinke okolini u kojoj
se ona nalazi. Kroz evolutivne procese, prilagodljivost se postiže i kod nižih organizama, ali je ova sposobnost
je
sa tačke gledišta veštačke inteligencije posebno zanimljiva kod životinja i ljudi kod kojih se manifestuje u
toku života jedinke. Kod njih se prilagodavanje postiže učenjem na osnovu primera iz iskustva i primenom
an
naučenog znanja u sličnim situacijama u budućnosti. Primera radi, za živi organizam je značajno da uoči ključne
karakteristike neke situacije ili skupa situacija u kojima preduzimanje neke akcije dovodi do poželjnih odnosno
nepoželjnih posledica po organizam. Prepoznavanje sličnih situacija u budućnosti omogućava organizmu da
d
preduzimanjem adekvatne akcije u situaciji u kojoj se nalazi predupredi ishode nepovoljne po njega ili dovede
iz
do ishoda koji su za njega povoljni. Apstraktnije razmatrano, moguće je govoriti o donošenju zaključaka o
nepoznatim slučajevima, na osnovu znanja o nekim drugim, poznatim, slučajevima. Proces u kojem se znanje
koje važi za neki skup slučajeva prenosi na neki njegov nadskup, naziva se generalizacijom ili induktivnim
o
Da bi generalizacija bila uspešna, odredeni aspekti entiteta o kojima se rezonuje moraju biti zanemareni
ukoliko nisu od suštinskog značaja za generalizaciju. Primera radi, ukoliko je potrebno naučiti veštački sistem
n
da prepoznaje rukom pisani tekst i da ga prevodi u elektronski tekstualni zapis, potrebno je da sistem zanemari
ro
specifičnosti rukopisa različitih ljudi. Proces generalizacije, medutim, ne pruža garancije da su dobijeni zaključci
uvek ispravni. Sistem koji prepoznaje rukom pisani tekst bi na osnovu nekoliko zadatih primera mogao da
kt
zaključi da se cifra 1 zapisuje podvučeno crticom, ali takav, induktivni zaključak ne bi bio korektan i sistem ne
bi bio u stanju da prepozna cifru 1 zapisanu bez takve crtice.
Za razliku od deduktivnog zaključivanja, zaključci dobijeni induktivnim zaključivanjem i generalizacijom,
le
kao što je rečeno, ne moraju biti uvek tačni. I pored toga, induktivno zaključivanje je i dalje veoma značajno,
a nekad i jedino moguće. To je jedan od osnovnih načina za formiranje predstava o okruženju, situacijama
E
ili uzročno posledičnim odnosima ili formalnije rečeno — za pravljenje modela zakonitosti u podacima iz is-
kustva. Ukoliko su u nekom domenu greške u zaključivanju prihvatljive, algoritmi induktivnog zaključivanja
omogućavaju zaključivanje i bez temeljnog poznavanja i kompletnog formalnog opisivanja domena na koji se
primenjuju.
0 0
6)
Slika 11.1: Plavi krugovi predstavljaju računarske članke, a crveni ostale. X koordinata predstavlja frekven-
ciju reči „računar“, a koordinata Y predstavlja frekvenciju reči „datoteka“. Na slici desno, osim krugova koji
predstavljaju članke, prikazana je i prava koja ih razdvaja
01
(2
računarski pojmovi nego u ostalim člancima. To svojstvo bi se moglo iskoristiti za razlikovanje članaka. U
skladu sa ovim, mogu se nabrojati sve reči iz nekog rečnika računarske terminologije. Svaki članak može biti
predstavljen vektorom frekvencija ovih reči (frekvencija neke reči u članku se računa tako što se broj pojavljivanja
je
te reči podeli ukupnim brojem pojavljivanja svih reči u članku). Ako je 𝑥 vektor koji odgovara nekom članku,
onda će 𝑥𝑖 označavati frekvencije izabranih reči.
an
Opisani vektori frekvencija se mogu razmatrati geometrijski, kao da su tačke u euklidskom prostoru. Jed-
nostavnosti radi, neka se u rečniku nalaze samo dve reči — „računar“ i „datoteka“. Ukoliko su u člancima iz
d
jedne kategorije ovi računarski termini visokofrekventni, a u drugim niskofrekventni, tačke koje odgovaraju
iz
računarskim člancima će se grupisati dalje od koordinatnog početka, dok će se ostale grupisati bliže njemu.
Pojednostavljena ilustracija data je na slici 11.1 (levo).
Izmedu crvenih i plavih tačaka možda postoji prava koja ih razdvaja, kao na slici 11.1 (desno). Ako je ova
o
prava poznata, onda neki nov, nepoznat članak može biti prepoznat kao članak iz oblasti računarstva ukoliko
sk
se vektor koji mu odgovara nalazi sa iste strane prave kao i vektori računarskih članaka koji su nam poznati. U
suprotnom, smatra se da članak nije iz oblasti računarstva.
n
Neka je 𝑦 promenljiva za koju važi 𝑦 = 1 za članak iz oblasti računarstva, a 𝑦 = −1, inače. Neka je prava
koja razdvaja tačke koje odgovaraju računarskim člancima od onih koje odgovaraju ostalim člancima data
ro
jednačinom:
kt
𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3 = 0
gde 𝑥1 označava frekvenciju reči „računar“, a 𝑥2 frekvenciju reči „datoteka“. Očigledno, znak funkcije 𝑤1 𝑥1 +
le
rana izmedu tačaka koje treba da razdvaja. Da bi se odredila takva razdvajajuća prava, potrebno je odrediti
koeficijente 𝑤1 , 𝑤2 i 𝑤3 takve da znak promenljive 𝑦 i znak vrednosti 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3 budu jednaki ili, makar,
jednaki u većini slučajeva. Potrebno formulisati algoritam učenja koji će na osnovu raspoloživih podataka doći
do tih koeficijenata. Jedan takav algoritam dat je na slici 11.2.
Ne mora biti očigledno da ažuriranje koeficijenata u predloženom algoritmu vodi poboljšanju naučene funk-
cije. Pre svega, vrednost 𝜂 mora biti mala kako bi korekcije bile male i postepene. Vrednosti 𝑥1 i 𝑥2 su uvek
nenegativne i stoga znak korekcije zavisi od razlike izmedu vrednosti 𝑦 i 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3 . Ukoliko je vrednost
𝑦𝑖 veća, povećavaju se koeficijenti, čime se i vrednost 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3 povećava. Analogno u slučaju da je
vrednost 𝑦 manja. Kad razlike nema, vrednost korekcije je 0. Stoga, ovim se vrednosti 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3
približavaju vrednostima 𝑦 . Te korekcije proporcionalne su vrednostima 𝑥1 i 𝑥2 , odnosno veće su za koeficijente
čija promena može više doprineti promeni vrednosti 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3 za dati primer. Ovaj postupak liči na
gradijentni spust kojim se minimizuje srednjekvadratno odstupanje vrednosti 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3 od vrednosti 𝑦
za sve instance.1
1 Zapravo, radi se o stohastičkom gradijentnom spustu, koji se od pravog gradijentnog spusta razlikuje po tome što se gradijent
računa na jednoj instanci, a ne na celom trening skupu, a predložena metoda je varijanta linearne diskriminantne analize, koja je
uopštenje metoda koji je predložio Ronald Fišer, jedan od otaca moderne statistike, evolutivni biolog i genetičar.
11.4. Nadgledano i nenadgledano učenje 168
2. Ponavljati
Postaviti 𝑤′ na 𝑤
Za svaku instancu (𝑥1 , 𝑥2 , 𝑦) ∈ 𝑇
– Uvećati 𝑤1 za 𝜂(𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3 − 𝑦)𝑥1
– Uvećati 𝑤2 za 𝜂(𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3 − 𝑦)𝑥2
– Uvećati 𝑤3 za 𝜂(𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3 − 𝑦)
dok važi |𝑤 − 𝑤′ | > 𝜀
6)
Slika 11.2: Algoritam za klasifikaciju članaka.
01
(2
Kada su koeficijenti 𝑤1 ,𝑤2 i 𝑤3 odredeni, za novi, nepoznat članak dovoljno je proveriti sa koje strane
prave se nalazi njegov vektor frekvencija reči, odnosno da li je znak vrednosti 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3 jednak znaku
promenljive 𝑦 .
je
Kada je učenje završeno, poželjno je proceniti koliko se sistem dobro ponaša. Na početku je bilo izdvojeno
1000 članaka koji sad mogu biti klasifikovani. Kad su članci klasifikovani, kao mera kvaliteta učenja može se
an
izračunati udeo dobro klasifikovanih članaka u ukupnom broju članaka. Poželjno je da je on što veći.
d
Koliko god primene mašinskog učenja bile raznovrsne, postoje odredene zajedničke karakteristike zadataka i
procesa učenja koje se često sreću. Postoje dve glavna vida problema učenja nadgledano učenje i nenadgledano
o
Nadgledano učenje odnosi se na situacije u kojima se algoritmu, zajedno sa podacima iz kojih uči, daju
i željeni izlazi, to jest vrednosti takozvane ciljne promenljive. Algoritam treba da nauči da za date podatke
n
pruži odgovarajuće izlaze. Očekuje se i da izlazi dati za podatke na kojima nije vršeno učenje, takode budu
dobri. Primer problema sa nadgledanim učenjem je problem klasifikacije, verovatno u praksi najčešći zadatak
ro
učenja. Problem klasifikacije predstavlja problem prepoznavanja vrste objekata. Na primer, da li je članak
računarski ili nije, da li odredeno elektronsko pismo predstavlja neželjenu poštu (eng. spam ) ili ne. Drugi
kt
primer nadgledanog učenja je problem regresija, zadatak učenja u kojem objektima treba pridružiti vrednosti
iz skupa realnih brojeva. Na primer, predvidanje dužine života osobe u zavisnosti od njenih životnih navika
le
Od algoritma koji uči očekuje se da sam uoči neke zakonitosti u podacima koji su mu dati. Primer nenadgledanog
učenja je takozvano klasterovanje – uočavanje grupa na neki način sličnih objekata kada ne postoji prethodno
znanje o tome koliko grupa postoji ili koje su njihove karakteristike. Jedan primer primene klasterovanja je
redukcija skupa boja slike. Pikseli slike se mogu grupisati klasterovanjem po njihovoj blizini u RGB prostoru
boja, a potom se iz svakog klastera može izabrati po jedna boja koja bi ga predstavljala i kojom bi bili obojeni
svi pikseli koji pripadaju tom klasteru.
ljivih 𝑥1 , 𝑥2 i 𝑦 . U primeru klasterovanja piksela, model će iztražavati zavisnost izmedu hromatskih komponenti
piksela i grupe, odnosno klastera, kojem piksel pripada.
Obično modeli koji se razmatraju imaju odredenu unapred definisanu formu i moguće je uočiti skup do-
pustivih modela. Na primer, u primeru prepoznavanja računarskih članaka, koristi se skup {𝑤1 𝑥1 + 𝑤2 𝑥2 +
𝑤3 | 𝑤1 , 𝑤2 , 𝑤3 ∈ R}. Forme modela mogu biti raznovrsne. Mogu predstavljati pravila oblika IF...THEN,
linearne funkcije atributa, linearne funkcije instanci iz trening skupa i tako dalje.
U slučaju nadgledanog učenja, pronalaženje modela koji najbolje aproksimira ciljnu promenljivu možemo
razumeti kao pretragu skupa dopustivih modela koja je vodena podacima, a koju realizuje algoritam učenja.
Slično je u slučaju nenadgledanog učenja. U tom slučaju ne postoji ciljna promenljiva, već je potrebno naći
model koji je najbolji u odnosu na neki unapred zadati kriterijum, recimo da objekti iz istog klastera budu
medusobno blizu, a daleko od objekata koji pripadaju drugim klasterima. Stoga se algoritmi učenja mogu
smatrati algoritmima pretrage, ali u skupu dopustivih modela, pri čemu je uloga podataka iz iskustva nov
element koji nije bio prisutan u ranije izloženim opštim pristupima pretrazi.
Izbor skupa dopustivih modela je od fundamentalnog značaja za kvalitet učenja. Ukoliko ovaj skup nije
dovoljno bogat, onda učenje može biti samo približno. To je u praksi najčešći slučaj i često je dovoljno dobro.
Naizgled paradoksalno, preterano bogatstvo skupa dopustivih modela po pravilu dovodi do lošijih rezultata.
6)
Ovaj fenomen biće diskutovan kasnije.
01
11.6 Podaci
(2
Jedna od definicija mašinskog učenja koje su navedene kaže da se mašinsko učenje bavi generalizacijom,
odnosno zaključivanjem o nepoznatim objektima, na osnovu poznatih objekata. Umesto termina objekat, češće
se koristi termin instanca ili primerak. U slučaju prepoznavanja računarskih članaka, instanca je jedan članak.
je
Instance će biti u računaru predstavljene pomoću nekih podataka koji ih opisuju.
an
11.6.1 Reprezentacija podataka
d
Instance treba da budu reprezentovane u obliku koji je pogodan za primenu algoritama učenja. Najpogodniji
i najčešće korišćeni način koji se koristi u algoritmima mašinskog učenja je predstavljanje instanci pomoću nekih
iz
njihovih svojstava, odnosno atributa (eng. feature, attribute). Svojstva ili atributi predstavljaju karakteristike
instanci kao što su boja, veličina, težina i slično. Svaki od izabranih atributa može imati vrednost koja pripada
o
nekom unapred zadatom skupu. Te vrednosti su često numeričke, kao u slučaju težine koja je skalarna veličina
i koja se najbolje opisuje brojem. Primer numeričke vrednosti može biti i frekvencija reči u nekom članku, kao
sk
što je to bio slučaj u primeru sa klasifikacijom članaka. Atributi takode mogu biti i kategorički, odnosno mogu
predstavljati imena nekih kategorija kojima se ne mogu jednoznačno dodeliti smislene numeričke vrednosti ili
n
uredenje. Primer kategoričkog atributa može biti grad u kome osoba živi, pol, nacionalnost i slično. U slučaju
ro
prepoznavanja računarskih članaka, oznaka klase koju treba pogoditi — 1 za računarske članke i −1 za ostale je
takode kategorička vrednost, iako je predstavljena brojem, pošto se radi o dve kategorije za koje su ovi brojevi
kt
proizvoljno izabrani.
Skup atributa koji će se koristiti u zapisu instance generalno nije unapred zadat, već ga je potrebno odabrati
u skladu sa time koje su karakteristike instanci bitne za dati problem učenja. Primera radi, ako je potrebno
le
razlikovati članke o operativnim sistemima od članaka o bazama podataka, poznavanje frekvencija reči „računar“
E
i „datoteka“ ne nosi korisnu informaciju pošto su ove reči zastupljene u obe kategorije. Stoga te atribute nema
svrhe koristiti u ovom problemu učenja. S druge strane, reči „proces“ i „indeks“ nose više informacije pošto su
uže specifične za pomenuta polja. Ukoliko je potrebno razlikovati računarske članke od drugih vrsta članaka,
izbor atributa bi mogao da bude upravo obrnut pošto reči „proces“ i „indeks“ mogu imati i drugačija značenja
od onih koja im se pridružuju u računarskoj terminologiji. Postoje i metode za automatski izbor podskupa
atributa iz nekog šireg skupa koje su najrelevantnije za dati problem učenja, ali one neće biti opisane. Već iz
ovog pojednostavljenog razmatranja može se nazreti važan zaključak — dobar izbor atributa od presudnog je
značaja za kvalitet učenja. Ako su atributi dobro izabrani, često i jednostavni algorimi učenja mogu postići
dobre rezultate. S druge strane, ako su atributi neinformativni, ni od najnaprednijih algoritama učenja ne može
se očekivati mnogo.
Kada su izabrani atributi pomoću kojih se instance opisuju, svaka instanca može se predstaviti vektorom
vrednosti atributa koje joj odgovaraju.
dovodi do značajno boljih rezultata od onih koji se mogu kasnije dobiti u primenama. Stoga je pre upotrebe
potrebno proceniti kvalitet naučenog znanja. To se obično radi tako što se razmatra koliko je naučeno znanje
kvalitetno u odnosu na neke unapred date podatke za testiranje. Podaci za testiranje čine test skup. Test skup
treba da bude disjunktan sa trening skupom.
Često se prilikom konstrukcije sistema koji uključuje učenje raspolaže ograničenom količinom podataka koja
se mora upotrebiti u obe svrhe. Jedan od standardnih načina je da se jedna trećina, ili neki blizak procenat,
izdvoji unapred za testiranje, a da se trening vrši na ostatku. Takva podela je bila korišćena i u primeru
prepoznavanja računarskih članaka. Obično se ova podela vrši slučajnim izborom skupa za testiranje. Naravno,
kako različite podele na trening i test skup mogu uroditi različitim rezultatima, slučajno deljenje nije najbolji
način formiranja trening i test skupa, osim u slučaju ogromne količine podataka. U drugim slučajevima se
koristi tehnika unakrsne validacije o kojoj će biti reči kasnije.
6)
zajedničkih odlika je način dizajniranja sistema koji uči. Elementi dizajna su već pomenuti u prethodnim
poglavljima, a sumirani su u nastavku:
01
Prepoznavanje formulacija problema učenja (nadgledano ili nenadgledano učenje);
(2
Izbor atributa;
Izbor forme modela zakonitosti u podacima, odnosno skupa dopustivih modela;
je
Izbor postojećeg ili razvoj novog algoritma učenja koji odgovara datom problemu;
Izbor mera kvaliteta učenja.
an
Sada je moguće sumirati kako su navedeni elementi bili izabrani u slučaju prepoznavanja računarskih članaka.
d
Primer 11.1.
iz
3000 članaka je razvrstano u dve unapred fiksirane kategorije (računarski i ostali), tako da je zadatak
učenja bio formulisan kao zadatak nadgledanog učenja.
o
Svaki članak je predstavljen vektorom frekvencija reči iz nekog rečnika računarske terminologije i vrednošću
sk
Algoritam učenja je formulisan nalik gradijentnom spustu za minimizaciju odstupanja izmedu vrednosti
ciljne promenljive i prednosti predvidenih modelom na datim primerima.
kt
U daljem tekstu biće diskutovano nadgledano i nenadgledano mašinsko učenje. Za obe vrste biće izložene
E
neke metode mašinskog učenja kojima se rešavaju neki tipični problemi koji odgovaraju tim vrstama učenja.
Takode, uz izlaganje metoda, biće diskutovani i razni bitni koncepti mašinskog učenja.
Pitanja i zadaci
Pitanje 11.1. Kako se naziva proces u kojem se znanje koje važi za neki skup instanci prenosi na neki njegov
nadskup?
Pitanje 11.2. U čemu se razlikuju nadgledano i nenadgledano učenje?
Pitanje 11.3. Kako se zove učenje kod kojeg se algoritmu zajedno sa podacima iz kojih uči daju i željeni
izlazi?
Pitanje 11.4. Kako se u mašinskom učenju zovu atributi instanci čije vrednosti se ne mogu prirodno numerički
opisati?
Pitanje 11.5. Kakve su promenljive koje predvidaju u slučaju klasifikacije, a kakve u slučaju regresije?
Glava 12
Nadgledano mašinsko učenje karakteriše se time da su za sve podatke poznate vrednosti ciljne promenljive.
6)
Većina problema koji odgovaraju ovoj formulaciji može se svrstati u jednu od dve grupe — probleme regresije
i probleme klasifikacije. O obe grupe će biti više reči u nastavku. Uprkos velikoj raznovrsnosti problema
01
i algoritama za njihovo rešavanje, vremenom je uočena jedna opšta shema dizajna algoritama nadgledanog
učenja koja pruža kako smernice za dizajn novih algoritama, tako i mogućnost objedinjenog razmatranja mnogih
(2
postojećih metoda kao instanci te sheme. Stoga će u nastavku prvo biti reči o dizajnu algoritama nadgledanog
učenja uopšte.
upotrebi). S druge strane, mnogi od najvažnijih algoritama nadgledanog učenja jesu instance ove sheme. Neki
iz
od tih važnih algoritama su linearna i logistička regresija, neuronske mreže, metoda potpornih vektora i uslovna
slučajna polja.
o
Ključni korak prilikom dizajna algoritma nadgledanog učenja (u nastavku samo učenja) je izbor forme
modela. Formu modela potrebno je odabrati tako da odgovara strukturi fenomena koji se tim modelom opisuje.
sk
∑︁
𝑓 (𝑥, 𝑤) = 𝑤𝑖 𝑥𝑖
ro
𝑖=1
gde je 𝑚 broj atributa, izražava linearnu zavisnost vrednosti ciljne promenljive od atributa 𝑥𝑖 pri kojoj jedinično
uvećanje vrednosti atributa 𝑥𝑖 uvećava vrednost ciljne promenljive za 𝑤𝑖 (pri tome, 𝑤𝑖 može biti i negativno).
kt
Ukoliko takve zavisnosti približno važe u razmatranom fenomenu, takav model je adekvatan. U suprotnom,
može biti upotrebljiv, ali verovatno vredi uložiti trud u formulisanje boljeg modela. Primetimo da je model
le
171
12.1. Dizajn algoritama nadgledanog učenja 172
Kada su definisani forma modela i funkcija gubitka, nije teško formulisati kriterijume za izbor najboljeg
modela — to je model koji pravi najmanju grešku, to jest, pravi najmanji očekivani gubitak na podacima na
kojima će biti korišćen. Dakle, potrebno je rešiti sledeći problem minimizacije:
gde je 𝐸(𝑥,𝑦) matematičko očekivanje po atributima i ciljnoj promenljivoj. Ovo očekivanje obično se naziva
rizikom ili stvarnim rizikom i označava 𝑅(𝑤). Treba primetiti da je za računanje očekivanja potrebno poznavati
raspodelu promenljivih po kojima se očekivanje računa. U ovom slučaju, radi se o zajedničkoj raspodeli pro-
menljivih 𝑥 i 𝑦 , koja u praksi nije poznata. Zato ovaj kriterijum nije lako upotrebiti. Medutim, ono što u praksi
jeste poznato jеste uzorak podataka iz trening skupa. Zbog toga se očekivanje funkcije gubitka aproksimira
njenim uzoračkim prosekom koji se naziva empirijskim rizikom
𝑛
1 ∑︁
𝑅𝑒𝑚𝑝 (𝑤) = ℓ(𝑥𝑖 , 𝑦𝑖 , 𝑤)
𝑛 𝑖=1
6)
gde je 𝑛 broj instanci.
Primer 12.3. U primeru klasifikacije članaka, empirijski rizik dat je funkcijom:
01
𝑛
1 ∑︁
𝑅𝑒𝑚𝑝 (𝑤) = (𝑤1 𝑥𝑖1 + 𝑤2 𝑥𝑖2 + 𝑤3 − 𝑦𝑖 )2
(2
𝑛 𝑖=1
Može se dokazati da pod odredenim uslovima vrednosti parametara 𝑤 dobijene minimizacijom empirijskog
rizika dobro aproksimiraju vrednosti parametara koje bi bile dobijene minimizacijom stvarnog rizika. Stoga se
je
vrednosti parametara 𝑤 biraju tako da vrednost empirijskog rizika bude minimalna. Empirijski rizik predstavlja
an
prosek funkcije gubitka na datim podacima. Kako prosek i suma imaju isti minimum, obično se prilikom mini-
mizacije ne vodi računa o tome da li je izvršeno deljenje brojem instanci. To će biti vidljivo i u minimizacionim
problemima u nastavku. Očigledno, što je empirijski rizik manji, to je prilagodenost modela podacima veća i
d
obrnuto. Stoga, vrednost rizika igra ulogu mere prilagodenosti modela podacima.
iz
Na žalost, uslovi pod kojima se minimizacijom empirijskog rizika dobro aproksimira polazni problem nisu
uvek ispunjeni, što znači da princip minimizacije empirijskog rizika ne vodi nužno dobrim rezultatima učenja.
Diskusija ovog problema predstavlja najplodniji aspekt teorije učenja i pruža najdublje uvide u prirodu procesa
o
generalizacije, ali prevazilazi okvire ove knjige. Ipak, osnovni zaključak se može kratko formulisati — osnovna
sk
prepreka aproksimaciji optimalnih vrednosti parametara, a time i uspešnoj generalizaciji, je preterano bogatstvo
skupa dopustivih modela. Ukoliko je taj skup toliko bogat da u njemu za svaki zamislivi trening skup postoji
n
model koji je sa njime saglasan, ne postoje garancije za uspešno učenje. I uopšte, što je skup dopustivih modela
bogatiji, to je potrebno više podataka za uspešno učenje. Kako bi ovaj uvid bio jasniji, razmotrićemo dva
ro
ilustrativna primera.
kt
Primer 12.4. Neka je dat trening skup instanci koje predstavljaju članke, od kojih su neki računarski, a neki
ne. Taj skup je prikazan na slici 12.1. U tom skupu postoje i neki računarski članci sa niskom frekvencijom
reči iz specifično računarske terminologije, ali i neki članci koji nisu računarski, a ipak imaju visoku frekvenciju
le
računarskih termina. Ovakvih primera ima malo. U praksi je česta situacija da iz različitih razloga odredeni
E
dok je funkcija gubitka ista. Izabrani model je saglasan sa svim instancama iz trening skupa i stoga je empirijski
rizik jednak nuli. Medutim, zakonitost koju on opisuje ne izgleda uverljivo. Naime, intuitivno je da su računarski
173 12. Nadgledano mašinsko učenje
6)
01
(2
Slika 12.1: Trening skup. Plave tačke označavaju računarske, a crvene ostale članke.
je
an
d
iz
o
sk
n
ro
kt
le
E
Slika 12.2: Prikaz linearnog modela minimalnog empirijskog rizika. Tačke u ravni za koje model daje pozitivnu
vrednost označene su plavo, a tačke za koje daje negativnu vrednost, označene su crveno.
članci koji ne sadže računarske termine redak izuzetak, a ne da postoje velike oblasti prostora atributa koje
odgovaraju niskim frekvencijama računarskih termina, a ipak se odnose na računarske članke i obratno. Vredi
primetiti i da se u oblasti za koju bi se očekivalo da je plava, nalazi veliki potprostor obojen crvenom bojom,
a u kojem medu trening instancama ne postoji nijedna crvena tačka. Ovakve proizvoljne „zakonitosti“ čine
korišćenje ovakvog modela u predikciji potpuno nepouzdanim i sigurno je da je stvarni rizik daleko veći od nule.
Primer 12.5. Pretpostavimo da je dat trening skup od 20 instanci koje se sastoje od jednog atributa i vrednosti
ciljne promenljive. Pretpostavimo da je forma modela linearna — 𝑓 (𝑥, 𝑤) = 𝑤1 𝑥 + 𝑤2 i da su koeficijenti
𝑤 odreden minimizacijom empirijskog rizika pri čemu je za funkciju gubitka korišćen kvadrat razlike ciljne i
12.1. Dizajn algoritama nadgledanog učenja 174
6)
01
(2
Slika 12.3: Polinomijalni model minimalnog empirijskog rizika. Tačke u ravni za koje model daje pozitivnu
vrednost označene su plavo, a tačke za koje daje negativnu vrednost, označene su crveno.
je
an
predvidene vrednosti. Slika 12.4 ilustruje takvav slučaj. Može se primetiti da model nije u potpunosti saglasan ni
sa jednom instancom, odnosno za svaku trening instancu postoji manja ili veća greška u predvidanju. Odnosno,
d
jednostavan linearni model nije dovoljno fleksibilan da se može potpuno prilagoditi podacima za trening. S druge
iz
strane, očigledno je da on dobro opisuje opšti linearni trend koji se u podacima vidi i, posebno važno, za očekivati
je da je greška na novim podacima iz iste raspodele bude približna emprijskom riziku.
Slika 12.5 prikazuje aproksimaciju datih podataka korišćenjem modela iz skupa svih polinoma proizvoljnog
o
stepena, odnosno u slučaju da se za modele koristi forma 𝑓 (𝑥, 𝑤) = 𝑛𝑖=1 𝑤𝑖 𝑥𝑖 . Izabrani model je saglasan sa
∑︀
sk
svim instancama iz trening skupa i stoga je empirijski rizik jednak nuli. Medutim, posmatrajući globalni izgled
izabranog modela, vidi se da on ne opisuje nikakvu zakonitost u podacima. Oscilacije koje pravi izmedu tačaka
n
čine njegovo korišćenje u predikciji potpuno nepouzdanim i sigurno je da je stvarni rizik daleko veći od nule.
ro
Problem koji se u prethodnim primerima javlja proističe upravo iz toga što skup svih polinoma čini previše
bogat skup mogućih modela. Za svaki trening skup može se naći model koji ga savršeno opisuje. Medutim,
kt
prilagodavajući se trening podacima do krajnosti, gubi se svaka moć generalizacije. Takav zaključak važi i
za druge previše bogate skupove dopustivih modela, a ne samo za polinome. Ilustrovani fenomen se naziva
le
smanjenjem fleksibilnosti forme modela. Primera radi, linearna forma modela sa ogrnaičenim brojem koeficije-
nata se može smatrati nefleksibilnom. Poznato je iz linearne algebre da ukoliko je broj instanci podataka jednak
broju parametara, postoji najviše jedan model koji odgovara podacima (rešenje sistema 𝑛 linearnih jednačina
po 𝑛 nepoznatih, ukoliko to rešenje postoji). Ukoliko je skup podataka veći od broja parametara, u opštem
slučaju, model neće biti saglasan sa podacima.
Zanimljivo je da za smanjenje fleksibilnosti modela nije neophodno unapred dizajnirati skup dopustivih
modela tako da bude siromašan, već je dovoljno modifikovati funkciju koja se minimizuje, tako da veliki broj
modela ima visoku vrednost te funkcije. Često korišćen i sistematičan način da se to postigne je postupak
regularizacije. Umesto minmizacije empirijskog rizika, vrši se minimizacija regularizovanog rizika, odnosno,
rešava se problem
min 𝑅𝑒𝑚𝑝 (𝑤) + 𝜆Ω(𝑤)
𝑤
gde je Ω(𝑤) takozvani regularizacioni izraz i pri čemu važi 𝜆 ≥ 0. Regularizacioni izrazi su obično zasnovani na
normama, pa su uobičajeni izbori poput
𝑚
∑︁
Ω(𝑤) = ‖𝑤‖22 = 𝑤𝑖2
𝑖=1
175 12. Nadgledano mašinsko učenje
20
●
●
●
●
●
●
15
● ●
●
10
● ●
6)
●
●
●
5
01
●
(2
●
0
je
an
5 10 15 20
d
iz
ili
sk
𝑚
∑︁
Ω(𝑤) = ‖𝑤‖1 = |𝑤𝑖 |
n
𝑖=1
ali se koriste i mnogi drugi. 1 Minimizacija empirijskog rizika, koji meri prilagodenost modela podacima, zahteva
ro
odstupanje koeficijenata 𝑤 od nule. Medutim, dodavanjem regularizacionog izraza, takvo odstupanje se kažnjava
utoliko više što je odstupanje veće. Time se otežava prilagodavanje modela podacima, odnosno, fleksibilnost
kt
modela se smanjuje. Mera u kojoj regularizacioni izraz umanjuje fleksibilnost modela se kontroliše izborom
parametra 𝜆. Treba naglasiti da ni visoke vrednosti ovog parametra nisu poželjne jer se nefleksibilni modeli koji
le
se time dobijaju ne mogu dovoljno prilagoditi podacima, pa je kvalitet učenja u tom slučaju loš.
Primer 12.6. Neka se u primeru klasifikacije članaka koristi forma modela koja odgovara polinomu dve promen-
E
ljive, kao funkcija gubitka koristi se kvadrat razlike ciljne i predvidene vrednosti i neka se koristi regularizacija.
Tada je potrebno rešiti sledeći problem minimizacije:
𝑁 ∑︁
∑︁ 𝑗
𝑛 ∑︁
min 𝑤𝑗𝑘 𝑥𝑘𝑖1 𝑥𝑗−𝑘
𝑖2 + 𝜆‖𝑤‖
2
𝑤
𝑖=1 𝑗=0 𝑘=0
Za vrednosti regularizacionog parametra 𝜆 = 10−9 , 10−6 , 10−3 , 1, 10, 100, dobijaju se modeli prikazani na slici
12.6. Očigledno je da povećavanje regularizacionog parametra smanjuje mogućnost preprilagodavanja modela,
ali i da njegovo preterano povećavanje vodi njegovoj potpunoj neprilagodljivosti, usled čega, za vrednost 100
regularizacionog parametra, svi članci bivaju klasifikovani kao računarski samo zato što ih u trening skupu ima
više.
Na slici 12.3.2 prikazane su tri krive koje ilustruju uobičajeno ponašanje modela prilikom izbora vrednosti
parametra 𝜆. Jedna, rastuća, predstavlja empirijski rizik na trening skupu u zavisnosti od vrednosti parametra 𝜆.
1 Različit izbor regularizacionog izraza može voditi različitim svojstvima algoritma i za mnoge regularizacione izraze je poznato
kakva svojstva indukuju.
12.1. Dizajn algoritama nadgledanog učenja 176
20
●
●
●
●
●
●
15
● ●
●
10
● ●
6)
●
●
●
5
01
●
(2
●
0
je
an
5 10 15 20
d
iz
Kako empirijski rizik predstavlja ocenu stvarnog rizika, stvarnom riziku se može pridružiti interval poverenja2 u
sk
odnosu na tu ocenu. Širina intervala poverenja je predstavljena drugom, opadajućom, krivom. U slučaju visokog
empirijskog rizika, na osnvu uskog intervala poverenja, možemo biti relativno sigurni da će i stvarni rizik biti
n
visok. U slučaju vrlo niske vrednosti empirijskog rizika, na osnovu širokog intervala poverenja, nemamo nikakve
garancije da će i stvarni rizik biti nizak. Treća kriva je zbir prethodne dve i predstavlja gornju granicu stvarnog
ro
rizika. Očigledno, kao što je rečeno, i premale i prevelike vrednosti parametra 𝜆, koji kontroliše fleksibilnost
modela, vode lošim rezultatima. Prve usled nefleksibilnosti, a druge zbog preprilagodavanja. Više o načinu na
kt
koji se vrednost ovog parametra može birati u praksi biće reči kasnije.
U slučaju kad model koji dobro aproksimira ciljnu promenljivu na instancama raspoloživim za traning,
le
takode dobro aproksimira ciljnu promenljivu i na ostalim instancama, kaže se da model dobro generalizuje iz
prikazanih primera.
E
Iako izraz regularizacija u strogom smislu predstavlja opisanu tehniku, nekada se upotrebljava i slobodnije, ali
uvek čuvajući osnovni smisao — da se radi o tehnici kojom se kontroliše fleksibilnost modela, čime se omogućava
izbor modela koji nije preprilagoden i dobro generalizuje.
Do sada nije bilo diskusije o tome kako se sprovodi postupak minimizacije empirijskog ili regularizovanog
empirijskog rizika. Za to se koriste metode matematičke optimizacije. Jedna od klasičnih metoda korišćenih u
ovom kontekstu je gradijentni spust, ali je on primenjljiv samo u slučaju diferencijabilnih funkcija bez dodatnih
ograničenja u optimizacionom problemu. Postoje mnoge druge optimizacione metode koje mogu biti pogodnije
za optimizacioni problem koji se razmatra. Vrlo je česta praksa da se za nov problem takode formuliše i specifična
metoda optimizacije koja je posebno pogodna za njega. Temeljnije upućivanje u optimizacione metode izlazi iz
okvira ove knjige.
Primer 12.7. U slučaju problema
𝑁
∑︁
min (𝑤1 𝑥𝑖1 + 𝑤2 𝑥𝑖2 + 𝑤3 − 𝑦𝑖 )2 + 𝜆‖𝑤‖2
𝑤
𝑖=1
2 Za ovu diskusiju nije bitna konkretna verovatnoća pridružena intervalu poverenja (npr. 95% ili 90%).
177 12. Nadgledano mašinsko učenje
6)
01
(2
je
an
d
iz
o
sk
n
ro
kt
le
E
za optimizacioni metod može se uzeti gradijentni spust. Za primenu gradijentnog spusta, potrebno je izvesti
gradijent regularizovanog empirijskog rizika, čije su koordinate u ovom slučaju:
𝑁 𝑁
𝜕 ∑︁ ∑︁
( (𝑤1 𝑥𝑖1 + 𝑤2 𝑥𝑖2 + 23 − 𝑦𝑖 )2 + 𝜆‖𝑤‖2 ) = 2 (𝑤1 𝑥𝑖1 + 𝑤2 𝑥𝑖2 + 𝑤3 − 𝑦𝑖 )𝑥1 + 2𝜆𝑤1
𝜕𝑤1 𝑖=1 𝑖=1
𝑁 𝑁
𝜕 ∑︁ ∑︁
( (𝑤1 𝑥𝑖1 + 𝑤2 𝑥𝑖2 + 23 − 𝑦𝑖 )2 + 𝜆‖𝑤‖2 ) = 2 (𝑤1 𝑥𝑖1 + 𝑤2 𝑥𝑖2 + 𝑤3 − 𝑦𝑖 )𝑥2 + 2𝜆𝑤2
𝜕𝑤2 𝑖=1 𝑖=1
𝑁 𝑁
𝜕 ∑︁ ∑︁
( (𝑤1 𝑥𝑖1 + 𝑤2 𝑥𝑖2 + 23 − 𝑦𝑖 )2 + 𝜆‖𝑤‖2 ) = 2 (𝑤1 𝑥𝑖1 + 𝑤2 𝑥𝑖2 + 𝑤3 − 𝑦𝑖 ) + 2𝜆𝑤3
𝜕𝑤3 𝑖=1 𝑖=1
12.2. Regresija 178
𝑅𝑔
𝐶 𝑅𝑒𝑚𝑝
0 𝜆
Slika 12.7: Ponašanje empirijskog rizika 𝑅𝑒𝑚𝑝 , širine intervala poverenja 𝐶 i gornje granice rizika 𝑅𝑔 u zavisnosti
od vrednosti regularizacionog parametra 𝜆
6)
Kada je poznat gradijent, moguće je primeniti metod gradijentnog spusta sa Armiho-Goldštajnovom pretragom.
Ako se umesto gradijenta greške na celom trening skupu, koristi gradijent greške samo na jednoj instanci, pri
01
čemu se u svakom koraku bira druga instanca, dobija se takozvani stohastički gradijentni spust. Ranije predloženi
algoritam za prepoznavanje računarskih članaka predstavlja stohastički gradijentni spust sa fiksiranom brzinom
učenja i vrednošću regularizacionog parametra 0.
(2
Pošto je shema dizajna izložena, vredi je koncizno sumirati, kao i osvrnuti se na njen značaj. Elementi
dizajna algoritma nadgledanog učenja su:
je
an
forma modela,
d
funkcija gubitka,
iz
regularizacioni izraz i
o
algoritam optimizacije.
sk
Ovi elementi se često mogu birati nezavisno, ali je moguće i da izbor za neku od stavki ograniči izbore za
n
neku drugu stavku. Na primer, u slučaju da je funkcija gubitka nediferencijalbilna, običan gradijentni spust
ro
ne može biti upotrebljen kao algoritam optimizacije. Značaj ovakve dekompozicije algoritma je kako u tome
što pruža smernice prilikom dizajna novih algoritama, tako i u tome što olakšava razumevanje postojećih
kt
algoritama. Naime, svojstva mnogih izbora za svaki od navedenih elemenata dizajna su već u velikoj meri
analizirana i poznato je kakvim ishodima koji izbor vodi. Primera radi poznato je da izbor regularizacionog
izraza Ω(𝑤) = ‖𝑤‖1 vodi modelima sa velikim brojem koeficijenata koji imaju vrednost 0, što olakšava uočavanje
le
nebitnih atributa, dok izbor Ω(𝑤) = ‖𝑤‖22 često vodi nešto većoj preciznosti predikcije od prethodnog izbora.
E
12.2 Regresija
Problem regresije predstavlja problem predvidanja numeričke vrednosti vezane za neku instancu na osnovu
vrednosti njenih drugih atributa. Štaviše, regresija se može videti kao aproksimacija neke realne ciljne pro-
menljive koja najčešće može da uzme proizvoljne vrednosti iz nekog ne nužno poznatog intervala. Formalno,
regresiona funkcija koja povezuje zavisnu, ciljnu, promenljivu 𝑌 i nezavisne promenljive 𝑋1 , 𝑋2 , . . . , 𝑋𝑛 je
definisana izrazom
𝑟(𝑥1 , 𝑥2 , . . . , 𝑥𝑛 ) = 𝐸(𝑌 |𝑋1 = 𝑥1 , 𝑋2 = 𝑥2 , . . . , 𝑋𝑛 = 𝑥𝑛 )
gde 𝐸 označava matematičko očekivanje. Problem regresije se svodi na problem aproksimacije regresione funkcije
𝑟. Ovo se može raditi različitim metodama koje uvode različite pretpostavke o regresionoj funkciji. Najjedno-
stavnije su metode linearne regresije.
Primene regresije su mnogobrojne već u najjednostavnijoj, linearnoj, varijanti. One uključuju procenu rizika
u ulaganjima, procenu uticaja prerade rude na ekosistem, procenu smrtnosti u zavisnosti od životnih navika i
slično.
179 12. Nadgledano mašinsko učenje
Zadatak linearne regresije je odredivanje vrednosti parametara 𝑤 koji najbolje odgovaraju opažanjima iz isku-
stva, odnosno trening podacima. Bitno je naglasiti da se izraz „linearna“ u nazivu linearne regresije odnosi na
linearnost relacije po parametrima 𝑤, a da atributi mogu biti nelinearno transformisane.
6)
𝑓 (𝑥, 𝑤) = 𝑤0 + 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3 𝑥1 𝑥2
01
Sledeći primeri ne predstavljaju linearne modele:
(2
𝑓 (𝑥, 𝑤) = 𝑤 1 𝑥1
𝑤2+𝑥2
Najjednostavniji slučaj linearne regresije je predvidanje vrednosti 𝑦 na osnovu samo jednog atributa 𝑥.
Primera radi, možemo govoriti o predvidanju telesne težine u zavisnosti od visine. Primetna je zakonitost da su
o
visoki ljudi uglavnom teži od niskih ljudi. Tu zavisnost je potrebno modelirati. Medutim, postoje i odstupanja.
Kako su odstupanja od prosečne težine utoliko reda što su veća, ova odstupanja ćemo smatrati šumom i nećemo
sk
𝑦 = 𝑤0 + 𝑤1 𝑥
ro
visinu, a 𝑦 telesnu težinu. Na slici se može primetiti opšti trend linearnog povećanja telesne težine u zavisnosti
od visine koji je prikazan pravom. Takode, primetno je i da mali broj tačaka značajno odstupa. Ovakve tačke
le
nazivamo izuzecima (eng. outliers). Prikazana prava predstavlja linearni model datih podataka. Metod kojim
se do njega dolazi biće prikazan u nastavku.
E
U slučaju korišćenja opšte jednačine linearnog modela 12.1, moguće je uključiti veći broj atributa pri
predvidanju vrednosti ciljne promenljive. Iz primetne varijabilnosti telesne težine u odnosu na regresioni model,
shvata se da visina nije dovoljna da u potpunosti objasni variranje telesne težine. Novi atributi koji bi vodili
ka poboljšavanju predvidanja mogu da se odnose na način života pojedinaca — koliko vremena dnevno provode
u sedećem položaju, koliko se bave sportom, koliko kalorija unose dnevno i slično. Umesto prave, u ovakvom
slučaju regresioni model bi odredivao jednu hiperravan.
Osnovni kriterijum izbora vrednosti koeficijenata linearnog modela je smanjivanje odstupanja izmedu vred-
nosti koje model predvida i vrednosti koje ciljna promenljiva ima u podacima. Ovaj problem se formuliše kao
problem minimizacije srednjekvadratne greške. Funkcija gubitka je ℓ(𝑥, 𝑦, 𝑤) = (𝑥 · 𝑤 − 𝑦)2 , pa je minimizacioni
problem
𝑛
∑︁
min (𝑤 · 𝑥𝑖 − 𝑦𝑖 )2 + 𝜆Ω(𝑤)
𝑤
𝑖=1
pri tome je 𝑛 broj instanci u trening skupu. Alternativno, u matričnoj notaciji, isti problem može se zapisati
kao
min ‖𝑋𝑤 − 𝑌 ‖22 + 𝜆Ω(𝑤)
𝑤
12.2. Regresija 180
120
●
● ●
● ●
●● ●
●
●
100
● ●
● ●
● ●
●● ●
● ●
● ● ●
● ●● ●
● ●
● ● ●
● ●
● ●
80
● ●●
y
● ●
● ●
● ●●
●● ●
● ● ● ● ●●● ●
●
6)
● ● ●
● ● ● ● ●
●
● ● ●
● ●
● ● ●●
●
01
●
60
● ●
●
●
● ●
●
●
● ●
(2
● ● ●
●
● ●
●
40
●
●
je
an
150 160 170 180 190 200
x
d
iz
Slika 12.8: Primer jednostavne regresije kojom se predvida telesna težina na osnovu visine.
o
U slučaju da je Ω(𝑤) = ‖𝑤‖22 , ispostavlja se da za postavljeni problem postoji jednostavno rešenje koje ne
sk
⎡ ⎤ ⎡ ⎤
1 𝑥11 𝑥12 ··· 𝑥1𝑚 𝑦1
kt
Osnovni problem pri odredivanju optimalnih vrednosti koeficijenata 𝑤 je potencijalna loša uslovljenost ma-
trice 𝑋 . Naime, moguće je da su neki atributi linearno zavisni ili da su jako korelirani. U tom slučaju matrica 𝑋 ,
pa i 𝑋 ⊤ 𝑋 je neinvertibilna ili loše uslovljena (za male promene elemenata polazne matrice, moguće su ogromne
promene elemenata inverzne matrice), odnosno, u slučaju da je 𝜆 = 0, optimalne vrednosti koeficijenata 𝑤 se ne
mogu izračunati ili su previše nestabilne. Stoga se preporučuje da se regularizacija uvek koristi prilikom linearne
regresije. Često se pod osnovnim oblikom linearne regresije podrazumeva slučaj za 𝜆 = 0, dok je regularizovani
slučaj slučaj u kojem se koristi kvadrat euklidske norme (on se na engleskom naziva ridge regression ). Moguće je
koristiti i druge norme kako u regularizacionom izrazu, tako i u funkciji gubitka, što dovodi do varijanti metode
sa različitim ponašanjem.
Ukoliko je dimenzija matrice 𝑋 ⊤ 𝑋 + 𝜆𝐼 velika, njeno invertovanje može biti računski previše zahtevno. U
takvim situacijama se minimizacija vrši metodama optimizacije, poput gradijentnog spusta.
opreme kojom se vrši merenje, slučajna priroda samog fenomena ili to što izbor linearne zavisnosti predstavlja
svesnu odluku da se inače kompleksna zavisnost donekle pojednostavi radi lakše analize. Stoga, pretpostavlja
se da ciljna promenljiva ima oblik
𝑦 =𝑤·𝑥+𝜀
gde je 𝜀 ∼ 𝒩 (0, 𝜎 2 ) normalno raspodeljena slučajna promenljiva koja označava šum, pri čemu je standardna
devijacija 𝜎 konstantna. Neformalno, ovo znači da se pretpostavlja da se greške „poništavaju“, odnosno da se
prebacivanja i podbacivanja javljaju jednako često, da su pritom velike greške vrlo malo verovatne, kao i da
veličina greške ne zavisi od vrednosti 𝑦 (pošto 𝜎 je konstantno). Više o ispitivanju ovih poretpostavki biće
rečeno u nastavku.
Imajući u vidu da se smatra da važi 𝑦 = 𝑤 · 𝑥 + 𝜀 i pretpostavku 𝜀 ∼ 𝒩 (0, 𝜎 2 ), važi 𝑦 ∼ 𝒩 (𝑤 · 𝑥, 𝜎 2 ) za svaki
vektor vrednosti atributa 𝑥. Ova konstatacija pruža drugi pogled na linearnu regresiju — da se zapravo radi o
izboru normalne raspodele sa promenljivim prosekom koja najbolje opisuje raspodelu podataka.
6)
Ispitivanje kvaliteta linearne regresije uključuje skup tehnika i mera kvaliteta kojima se proverava zadovo-
ljenost uslova primenljivosti tehnike linearne regresije, kao i kvalitet samog naučenog modela. Ovaj postupak
se često naziva i dijagnostikom modela.
01
Ispitivanje zadovoljenosti uslova za primenu linearne regresije bi formalno trebalo raditi korišćenjem stati-
stičkih testova. Medutim, kako je sama tehnika dosta robusna, odnosno često daje zadovoljavajuće rezultate i
(2
kad su te pretpostavke donekle narušene, ove provere se često vrše neformalno — inspekcijom podataka pomoću
dijagrama. Normalnost raspodele šuma se potvrduje inspekcijom histograma grešaka 𝑟𝑖 = 𝑦𝑖 − 𝑤 · 𝑥𝑖 koje
nazivamo rezidualima. Pretpostavka da veličina greške ne zavisi od stvarne veličine promenljive 𝑦 se obično
je
potvrduje inspekcijom grafika koji prikazuje reziduale 𝑟𝑖 u zavisnosti od predvidenih vrednosti 𝑤 · 𝑥. Ukoliko se
na ovom grafiku ne uočava zavisnost izmedu te dve veličine, smatra se da je pretpostavka ispunjena. S druge
an
strane, ukoliko se može uočiti zavisnost, smatra se da pretpostavka nije ispunjena i da se model može popraviti
dodavanjem novih atributa ili primenom drugačijih metoda.
d
Osnovna mera kvaliteta linearne regresije je srednjekvadratna greška, koja meri odstupanje predvidenih
vrednosti na nekom test skupu od stvarnih
iz
𝑛
∑︁
𝐸(𝑌, 𝑋𝑤) = (𝑦𝑖 − 𝑤 · 𝑥𝑖 )2
o
𝑖=1
sk
Poželjno je da srednjekvadratna greška bude što manja, medutim ukoliko nemamo konkretan zahtev za posti-
zanjem odredene srednjekvadratne greške, teško je reći da li je učenje uspešno ili ne. Zbog toga se često koriste
n
∑︀𝑛 2
2 𝑖=1 (𝑦𝑖 − 𝑤 · 𝑥𝑖 )
𝑟 (𝑌, 𝑋𝑤) = 1 − ∑︀
kt
𝑛 2
𝑖=1 (𝑦𝑖 − 𝑦)
gde nadvučena linija označava prosek uzorka. Vrednost 1 koeficijenta determinacije označava potpuno podu-
le
daranje stvarnih i predvidenih vrednosti. Što je vrednost koeficijenta manja, to je poklapanje lošije. Često se
kaže da 𝑟2 (𝑌, 𝑋𝑤) predstavlja udeo varijanse vrednosti ciljne promenljive 𝑌 koji prediktivni model objašnjava.
E
Smisao ovog tvrdenja je sledeći. Ukoliko se odreknemo korišćenja bilo kakvih metoda predikcije pri predvidanju
vrednosti 𝑌 , najmanju srednjekvadratnu grešku očekujemo ukoliko uvek predvidamo vrednost 𝑦 . Odnosno, ako
kao prediktivni model za vrednosti 𝑌 koristimo prosek opaženih vrednosti 𝑦𝑖 . Pri tome je srednjekvadratna
greška
𝑛
1 ∑︁
𝐸(𝑌, 𝑦) = (𝑦𝑖 − 𝑦)2
𝑛 𝑖=1
odnosno uzoračka varijansa za 𝑌 . Rastojanja koja ulaze u ovu grešku su prikazana na slici 12.9. U slučaju
korišćenja linearnog regresionog modela, srednjekvadratna greška, ili varijansa vrednosti 𝑌 u odnosu na model,
je
𝑛
1 ∑︁
𝐸(𝑌, 𝑋𝑤) = (𝑦𝑖 − 𝑤 · 𝑥)2
𝑛 𝑖=1
Rastojanja koja ulaze u ovu grešku su prikazana na slici 12.10. Ova, preostala, varijansa se ne može objasniti
zavisnošću od korišćenih atributa, odnosno tu preostalu varijansu možemo smatrati neobjašnjenom. Njen
količnik sa 𝐸(𝑌, 𝑦) se onda može smatrati udelom neobjašnjene varijanse, a koeficijent determinacije, onda
očigledno, udelom objašnjene varijanse.
12.2. Regresija 182
6)
01
(2
je
an
20
15
10
6)
01
5
(2
je
0
an
−30 −20 −10 0 10 20 30
d
iz
Primer 12.9. U slučaju primera sa predikcijom telesne težine u zavisnosti od visine na slici 12.11 prikazan
sk
je histogram reziduala. Prikazana raspodela je bliska normalnoj (što je potvrdeno i statističkim testom). Na
slici 12.12 prikazan je grafik zavisnosti reziduala od predivdenih vrednosti. Kako raspodela ne odaje zavisnost
n
izmedu reziduala i predvidenih vrednosti (što je takode potvrdeno i statističkim testom), zaklučuje se da su u
ro
U primeru preprilagodavanja podacima, koji je dat u poglavlju 12.1, koeficijenti polinomijalnog modela su
izabrani upravo linearnom regresijom. Iako su polinomi nelinearne funkcije, oni su ipak linearni u odnosu na
E
koeficijente i stoga predstavljaju linearne modele, pa je zato bila moguća primena linearne regresije.
12.3 Klasifikacija
Problem klasifikacije je problem razvrstavanja nepoznate instance u jednu od unapred ponudenih kategorija
— klasa. Neki od primera klasifikacije su razvrstavanje bankovnih transakcija u rizične koje mogu predstavljati
prevaru i nerizične koje predstavljaju uobičajene transakcije, odredivanje autorstva tekstova pri čemu se tekstu
nepoznatog autora pridružuje jedan od nekoliko unapred ponudenih autora, razvrstavanje elektronske pošte u
željenu i neželjenu (eng. spam) i slično.
U navedenim primerima svaka instanca (bankovna transakcija, tekst, elektronska poruka) se može predstaviti
nekim izabranim skupom njenih atributa. Takode, svakoj instanci se kao atribut može 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 može razmatrati kao aproksimacija ciljne promenljive
čija je vrednost za svaku instancu oznaka klase kojoj ta instanca pripada. Ključno zapažanje je da je ciljna
promenljiva u ovom problemu diskretna. Pritom, u opštem slučaju, oznakama klasa se ne mogu smisleno dodeliti
numeričke vrednosti niti uredenje. Dakle, atribut klase, čiju je vrednost potrebno odrediti, je kategorički atribut.
12.3. Klasifikacija 184
●
●
20
●
●
●
●
● ● ● ●
●
● ● ●
10
●
● ● ●
● ● ●
● ●
● ● ●
● ●
● ● ●
● ● ● ● ●
●● ●
● ●● ● ●
● ● ● ●
0
●● ● ● ● ● ● ●
●
●
● ● ● ●
● ●
●
6)
● ● ● ●●
● ●
● ● ●
● ● ●
●
●
−10
● ● ● ●
01
● ●
●
● ● ●
●
●
● ●
(2
●
●
−20
● ●
je
an
50 60 70 80 90 100
d
iz
Postoji veliki broj metoda kojima se ovaj problem rešava. Neke od njih su logistička regresija (eng. logistic
n
regression), metode zasnovane na instancama (eng. instance based classification), učenje stabla odlučivanja
(eng. decision tree induction) i metoda potpornih vektora (eng. support vector machines). U daljem tekstu
ro
Logistička regresija predstavlja jednu od nakorišćenijih metoda klasifikacije. Glavni razlozi za to su jedno-
stavnost, efikasno treniranje i postojanje verovatnosne interpretacije rezultata. Ograničenje ove metode je da je
E
primenljiva samo na binarnu klasifikaciju. U slučaju binarne klasifikacije, svaka instanca može priadati jednoj
od dve klase koje se mogu označiti brojevima 1 i −1. Pritom, ovaj izbor brojeva je samo tehnička pogodnost
i za njega ne postoji nikakav suštinski razlog, pošto su oznake klasa zapravo kategoričke vrednosti. Osnovna
ideja logističke regresije je da se vrši predvidanje verovatnoće 𝑃 (𝑦 = 1|𝑥) = 𝑓 (𝑥, 𝑤) da instanca pripada klasi
1. Tada je verovatnoća pripadnosti drugoj klasi 𝑃 (𝑦 = −1|𝑥) = 1 − 𝑃 (𝑦 = 1|𝑥). Kao što je konstatovano da
linearna regresija predstavlja izbor normalne raspodele sa promenljivim prosekom koja najbolje opisuje podatke,
tako se, na osnovu navedenog, može konstatovati da logistička regresija predstavlja izbor bernulijeve raspodele
ℬ(𝑓 (𝑥, 𝑤)), takve da važi 𝑦 ∼ ℬ(𝑓 (𝑥, 𝑤)).
Postavlja se pitanje šta bi bila pogodna forma modela logističke regresije. Da bi se modelirala verovatnoća,
potrebno je da model bude funkcija koja uzima sve vrednosti u intervalu [0, 1]. Ta funkcija mora zavisiti od
vrednosti atributa 𝑥. Zbog svoje jednostavnosti, linearni modeli predstavljaju čestu polaznu tačku u dizajnu
metoda mašinskog učenja. Medutim, linearni model 𝑤 · 𝑥 uzima vrednosti u intervalu [−∞, ∞], pa je za njegovu
primenu potrebno naći monotono rastuće i neprekidno preslikavanje tog intervala u interval [0, 1]. Jedno takvo
preslikavanje predstavlja sigmoidna funkcija 𝜎(𝑥) = 1/(1 + 𝑒−𝑥 ). Ovo nije jedina funkcija koja zadovoljava
pomenuti zahtev, ali je pogodna i iz tehničkih razloga, poput jednostavnosti izvoda (𝜎 ′ (𝑥) = 𝜎(𝑥)(1 − 𝜎(𝑥)), i
često se koristi u mašinskom učenju. Grafik sigmoidne funkcije je prikazan na slici 12.13. Logistički model se
185 12. Nadgledano mašinsko učenje
0.5
−6 −5 −4 −3 −2 −1 0 1 2 3 4 5 6
6)
1
𝑓 (𝑥, 𝑤) =
01
1 + 𝑒−𝑤·𝑥
Primer sa kategorizacijom članaka na računarske i ostale je tipičan primer situacije u kojoj je prirodno
(2
primeniti logističku regresiju. Pošto logistički model kada važi 𝑤 · 𝑥 > 0 predvida verovatnoću veću od 0.5 da
instanca 𝑥 pripada klasi 1, a kada važi 𝑤 · 𝑥 < 0, verovatnoću manju od 0.5 (tada je verovatnoća da pripada
klasi −1 veća od 0.5), može se zaključiti da se, kao i algoritam naveden u primeru, i logistička regresija može
je
interpretirati kao metoda koja traži razdvajajuću hiperravan izmedu instanci dve klase. Pritom, što je neka
tačka dalja od razdvajajuće hiperravni, to je vrednost 𝑤 · 𝑥 veća po apsolutnoj vrednosti, a samim tim je i
an
vrednost 𝜎(𝑤 · 𝑥) bliža vrednosti 0 ili 1 u zavisnosti od znaka vrednosti 𝑤 · 𝑥. Odnosno, što je instanca dublje
u oblasti prostora koja pripada nekoj klasi, to model izražava veću sigurnost da ona pripada toj klasi. Ovo
ponašanje je potpuno u skladu sa intuicijom.
d
Kao što je navedeno u motivaciji logističke regresije, verovatnoća 𝑃𝑤 (𝑦 = 1|𝑥) se predvida formulom
iz
1
𝑃𝑤 (𝑦 = 1|𝑥) = 𝑓 (𝑥, 𝑤) =
1 + 𝑒−𝑤·𝑥
o
sk
Takode, važi
𝑒−𝑤·𝑥 1 1
𝑃𝑤 (𝑦 = −1|𝑥) = 1 − 𝑃𝑤 (𝑦 = 1|𝑥) = = 𝑤·𝑥 =
n
1 + 𝑒−𝑦𝑤·𝑥
S obzirom da postoji verovatnosna interpretacija, intuitivno je vrednosti parametara izabrati tako da vero-
le
vatnoća raspoloživog trening skupa bude maksimalna pri izabranim vrednostima parametara. Pod standardno
korišćenom pretpostavkom da instance predstavljaju nezavisne uzorke, ta verovatnoća je jednaka proizvodu
E
𝑛
∏︁
𝑃𝑤 (𝑦𝑖 |𝑥𝑖 )
𝑖=1
koji se naziva funkcijom verodostojnosti parametra (eng. likelihood function). Kako je korišćenje proizvoda iz
tehničkih razloga3 nepreporučljivo, umesto funkcije verodostojnosti se koristi njen logaritam. Kako je logaritam
monotono rastuća funkcija, maksimumi funkcije verodostojnosti i njenog logaritma koincidiraju. Kako je logari-
tam broja koji je izmedu 0 i 1 negativan, umesto maksimizacije logaritma verodostojnosti, može se minimizovati
njegova negativna vrednost
𝑛
∏︁ 𝑛
∑︁
− log 𝑃𝑤 (𝑦𝑖 |𝑥𝑖 ) = − log 𝑃𝑤 (𝑦𝑖 |𝑥𝑖 ) =
𝑖=1 𝑖=1
𝑛 𝑛
∑︁ 1 ∑︁
− log = log(1 + 𝑒−𝑦𝑖 𝑤·𝑥𝑖 )
𝑖=1
1 + 𝑒−𝑦𝑖 𝑤·𝑥𝑖 𝑖=1
3 Proizvod velikog broja vrednosti izmedu 0 i 1 lako može postati 0 usled potkoračenja.
12.3. Klasifikacija 186
Ova veličina (podeljena brojem instanci) je empirijski rizik koji odgovara logističkoj funkciji gubitka ℓ(𝑥, 𝑦, 𝑤) =
log(1 + 𝑒−𝑦𝑤·𝑥 ). Po dodavanju regularizacije, minimizacioni problem koji se rešava postaje:
𝑛
∑︁
min log(1 + 𝑒−𝑦𝑖 𝑤·𝑥𝑖 ) + 𝜆Ω(𝑤)
𝑤
𝑖=1
Ovaj problem nema jednostavno rešenje kao u slučaju linearne regresije, već se mora sprovesti postupak
optimizacije. U tu svrhu je moguće koristiti gradijenti spust, ali postoje i efikasnije metode. Posebna pogodnost
za optimizaciju u slučaju logističke regresije je što se minimizuje konveksna funkcija koja ima jedan globalni
minimum i ne postoji mogućnost da proces optimizacije završi u nekom neoptimalnom lokalnom minimumu,
što je problem sa nekim drugim metodama učenja, poput neuronskih mreža.
Treba imati u vidu da za primenu logističke regresije nije neophodno da klase budu linearno razdvojive.
Trening logističke regresije sigurno konvergira zahvaljujući tome što će gradijentne metode optimizacije sigurno
naći minimum konveksne funkcije. Naravno, preciznost dobijenog modela ne može biti savršena ako se radi o
linearno nerazdvojivom problemu.
6)
12.3.2 Metode klasifikacije zasnovane na instancama
01
Osnovna karakteristika metoda zasnovanih na instancama je da ne grade eksplicitan model podataka u vidu
neke funkcije kao što to radi većina metoda mašinskog učenja. Stoga se klasifikacija ne vrši na osnovu već
(2
formulisanog modela, nego na osnovu skupa instanci za trening. Umesto izgradnje modela, instance predvidene
za treniranje se čuvaju i bivaju upotrebljene tek kad je potrebno klasifikovati nepoznatu instancu. Time se
većina izračunavanja premešta iz faze učenja u fazu primene. Najpoznatija metoda ove vrste je metoda 𝑛
najbližih suseda.
je
Metoda 𝑛 najbližih suseda (eng. 𝑛 nearest neighbours) se zasniva na vrlo jednostavnom principu — nepoznatu
an
instancu treba klasifikovati u klasu čije su instance najsličnije nepoznatoj. Koncept sličnosti se najjednostavnije
formalizuje preko funkcija rastojanja.
d
√︀ ∑︀
𝑛
𝑖 (𝑥𝑖 − 𝑦𝑖 )𝑛
𝑥·𝑥 𝑦·𝑦
{︂
0, 𝑥=𝑦
E
𝑑(𝑥, 𝑦) =
1, 𝑥 ̸= 𝑦
Intuitivno, što je rastojanje izmedu dva objekta veće, to je sličnost izmedu njih manja i obrnuto. Naravno,
pošto je moguće birati različite funkcije rastojanja, pretpostavka je da izabrana funkcija rastojanja, u smislu
relevantnom za posmatrani domen, stvarno oslikava različitost izmedu dva objekta.
Kada je funkcija rastojanja izabrana, najjednostavniji način klasifikacije je klasifikovanje nepoznate instance
u klasu iz koje potiče instanca trening skupa najbliža nepoznatoj instanci. Ovo je primer metode 𝑛 najbližih
suseda za 𝑛 = 1. U opštem slučaju metoda 𝑛 najbližih suseda se sastoji u nalaženju 𝑛 instanci iz trening skupa
koje su najbliže nepoznatoj instanci i njenom klasifikovanju u klasu čiji se elementi najčešće javljaju medu
pronadenih 𝑛 najbližih suseda.
U slučaju izjednačenog ishoda izmedu više klasa, nije moguće doneti odluku, ali se u praksi ovaj osnovni
algoritam može modifikovati kako bi se ovakvi slučajevi razrešili.
Analizirajmo detaljnije metodu 𝑛 najbližih suseda. Posmatrajmo nepoznate instance A i B prikazane na
slici 12.3.2. Metodom 𝑛 najbližih suseda uz korišćenje euklidskog rastojanja instanca A biva klasifikovana u
crvenu klasu za sve vrednosti 𝑛 od 1 do 5. Klasifikacija instance A je postojana zato što se ona nalazi blizu
crvenih instanci, a udaljeno od plavih instanci. S druge strane, klasa instance B može da varira u zavisnosti od
broja 𝑛. Za 𝑛 = 1 instanca B se klasifikuje u crvenu klasu. Za 𝑛 = 2 ne može se odlučiti. Za 𝑛 = 3 instanca
187 12. Nadgledano mašinsko učenje
6)
Slika 12.14: Stabilnost klasifikacije pomoću algoritma 𝑛 najbližih suseda
01
(2
𝐵 se klasifikuje u plavu klasu. Za 𝑛 = 4 ponovo nije moguće odlučiti, a za 𝑛 = 5, ona se ponovo klasifikuje u
crvenu klasu. Klasifikacija instance 𝐵 nije postojana jer se ona nalazi blizu instanci iz obe klase. Znači, metoda
𝑛 najbližih suseda je postojana u unutrašnjosti oblasti koju zauzimaju instance jedne klase, ali je nepostojana
je
na obodu te oblasti. Ovo ponašanje bi se moglo uočiti i kod drugih metoda klasifikacije.
Pored toga što se nepostojanost klasifikacije može demonstrirati menjanjem parametra 𝑛, ona se takode
an
može analizirati i za fiksiranu vrednost parametra 𝑛. Može se primetiti da je za manje vrednosti parametra 𝑛
nepostojanost pri variranju vrednosti atributa instance veća nego za veće vrednosti parametra 𝑛.
d
Kao što se može videti u slučaju metode najbližih suseda, još jedno bitno svojstvo metoda zasnovanih na
instancama je njihova lokalnost. Nepoznata instanca se klasifikuje isključivo ili uglavnom na osnovu poznatih
iz
instanci koje se nalaze u njenoj blizini. Ovo svojstvo doprinosi fleksibilnosti modela koje ove metode (im-
plicitno) grade. Samim tim, za manje vrednosti parametra 𝑛 dobijaju se fleksibilniji modeli, koji su stoga
o
skloniji preprilagodavanju, dok se za veće vrednosti parametra 𝑛 dobijaju manje fleksibilni modeli manje skloni
sk
preprilagodavanju. Naravno, premala fleksibilnost vodi modelima koji se ne mogu dovoljno prilagoditi podacima
i stoga loše uče, tako da ni premala ni prevelika vrednost parametra 𝑛 nije dobra. Očigledno, parametar 𝑛 ima
ulogu sličnu ulozi regularizacionog parametra 𝜆. Odredivanje njihovih vrednosti će biti zajednički diskutovano
n
kasnije.
ro
kt
N-grami
Metode mašinskog učenja su često formulisane tako da se jednostavno primenjuju na numeričke podatke, ali
le
teško na podatke u nekom drugom obliku. Stoga se traže načini da se i drugi podaci predstave u numeričkom
obliku. To često podrazumeva i odredeni gubitak informacije. U slučaju problema klasifikacije tekstova, protein-
E
skih sekvenci i sličnih podataka često se u svrhu predstavljanja podataka u numeričkom obliku koriste 𝑛-gramski
profili [?].
Ako je data niska 𝑆 = 𝑠1 𝑠2 . . . 𝑠𝑁 nad azbukom Σ, gde je 𝑁 pozitivan ceo broj, 𝑛-gram niske 𝑆 , za 𝑛 ≥ 𝑁 ,
je bilo koja podniska susednih simbolja dužine 𝑛. Na primer, za nisku sad_ili_nikad, 1-grami su: s, a, d, _,
i, l, i, _, n, i, k, a, d. 2-grami su: sa, ad, d_, _i, il, li, i_, _n, ni, ik, ka, ad. 3-grami bi bili: sad, ad_, d_i,
_il, ili, li_, i_n, _ni, nik, ika, kad, itd.
N-gramski profil niske je lista uredenh parova (𝑛-gram, frekvencija) gde je frekvencija izračunata u odnosu
na sve 𝑛-grame niske. Ovakvi profili predstavljaju reprezentaciju pogodnu za metode klasifikacije i često se
koriste zajedno sa metodom 𝑛 najbližih suseda.
Osnovne prednosti korišćenja 𝑛-grama su robusnost (na primer, nisu mnogo osetljivi na greške u kucanju
ili na pojavljivanje reči u različitim gramatičkim oblicima), nezavisnost od domena koji se analizira, efikasnost
(dovoljan je jedan prolaz kroz tekst) i jednostavnost. Problem je eksponencijalna zavisnost broja mogućih
𝑛-grama u odnosu na dužinu 𝑛-grama.
N-gramski profili su uspešno korišćeni u različitim primenama koje uključuju prepoznavanje autorstva tek-
stova, prepoznavanje jezika kojim je tekst pisan, prepoznavanje govora i odredene probleme iz oblasti bioinfor-
matike.
12.3. Klasifikacija 188
Primer 12.11. U ovom primeru razmotrićemo klasifikaciju tekstova prema jeziku. Srpski i engleski jezik biće
predstavljenim po jednim kraćim tekstom označenim sa S1 i E1. Pošto se izračunaju frekvencije n-grama za ta
dva teksta, njihovi n-gramski profili čine trening skup. Test skup će biti dobijen na osnovu četiri kratka teksta od
kojih su dva na srpskom označena sa S2 i S3, a dva na engleskom jeziku označena sa E2 i E3. Klasifikacija će
biti izvršena pomoću algoritma jednog najbližeg suseda. U tekstovima na srpskom jeziku nisu korišćena 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 traganje za dokazom nekog tvrdenja. Primera radi, u primeni procedure DPLL moguce je uociti i korake
zakljucivanja i korake pretrage. Kada se uoci jedinicna klauza u nekoj formuli, njeno zadovoljenje je nuzno i
predstavlja korak zakljucivanja. S druge strane kada je nemoguce direktno zakljucivanje, potrebno je pretpostaviti
vrednost iskazne promenljive. U daljem toku dokazivanja, ta akcija ce se pokazati kao opravdana ili neopravdana.
U slucaju da se pokaze kao neopravdana, preduzima se alternativna akcija. Znaci, situacija u kojoj nije moguce
6)
izvrsiti direktno zakljucivanje zahteva primenu pretrage.
Manje apstraktan primer je upravljanje robotskom rukom. Pretpostavimo da robotska ruka ima nekoliko me-
01
hanickih zglobova cije se kretanje kontrolise elektricnim impulsima. Pritom, 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,
(2
ali se moze razbiti na sekvencu atomicnih koraka — pokreta pojedinacnih zglobova oko razlicitih osa za odreden
ugao. Mozemo zamisliti da se ovi koraci izvrsavaju strogo jedan po jedan u kom bi slucaju kretanje ruke bilo
znacajno razlicito od ljudskog i sporo, ali bi problem bio laksi jer ne bi bila potrebna sinhronizacija razlicitih
je
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.
an
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
d
adekvatno, u kontekstu vestacke inteligencije u kome obicno pretpostavljamo postojanje nekog entiteta koji deluje
preduzimanjem nekih akcija (agenta), ona je prirodna.
iz
E1: There are two paths to achieving an AGI, says Peter Voss, a software developer and founder of the firm
o
Adaptive A.I. Inc. One way, he says, is to continue developing narrow AI, and the systems will become generally
sk
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
n
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
ro
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
kt
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
le
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
E
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 scientific community generally accepted
the premise that AIs could be written to perform specific tasks reasonably well, but largely resisted the notion of
superhuman computing ability. Deep Blue proved that an AI entity could outperform a human at a supposedly
human task, perceiving a chess board (Deep Blue could see 200 million board positions per second) and plotting
a strategy (74 moves ahead as opposed to 10, the human record).
S2: Precizni postupci za resavanje matematickih problema postojali su u vreme starogrckih matematicara (npr.
Euklidov algoritam za odredivanje najveceg zajednickog delioca dva broja), a i pre toga. Ipak, sve do pocetka
dvadesetog veka nije se uvidala potreba za preciznim 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.
189 12. Nadgledano mašinsko učenje
S3: Dositej Obradovic (svetovno ime Dimitrije) (Cakovo, 1744 — Beograd, 1811) je bio srpski prosvetitelj
i reformator revolucionarnog perioda nacionalnog budjenja i preporoda. Rodjen je u rumunskom delu Banata
tadasnje Austrije. Skolovao se za kaludjera, ali je napustio taj poziv i krenuo na putovanja po celoj Evropi,
gde je primio ideje evropskog prosvetiteljstva i racionalizma. Ponesen takvim idejama radio je na prosvecivanju
svog naroda, prevodio je razna dela medju kojima su najpoznatije Ezopove basne, a potom je i sam pisao dela,
prvenstveno programskog tipa, medju kojima je najpoznatije „Zivot i prikljucenija“. Dositej je bio prvi popecitelj
(ministar) prosvete u Sovjetu i tvorac svecane pesme „Vostani Serbie“. Njegovi ostaci pocivaju u Beogradu, na
ulazu u Sabornu crkvu.
E2: The planet Mars, I scarcely need remind the reader, revolves about the sun at a mean distance of 140,000,000
miles, and the light and heat it receives from the sun is barely half of that received by this world. It must be, if
the nebular hypothesis has any 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.
6)
E3: Principia Mathematica, the landmark work in formal logic written by Alfred North Whitehead and Ber-
01
trand 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 de-
veloping and popularizing modern mathematical logic. It also served as a major impetus for research in the
(2
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.
je
an
Prilikom izdvajanja 𝑛-grama korišćena je vrednost 𝑛 = 3. Pritom je iz tekstova S1 i E1 izdvojeno po 10
najfrekventnijih 𝑛-grama. Oni će činiti atribute instanci na osnovu kojih će biti vršeno treniranje i testiranje.
Trening i test skup su dati u tabeli 12.1.
d
iz
6)
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 sadržaju nemaju dodira sa instancama za trening S1 i E1 što ne ometa postupak
klasifikacije.
01
(2
12.3.3 Učenje stabala odlučivanja
Razmotrimo igru 20 pitanja. Jedan igrač zamišlja neki predmet, a drugi treba da pogodi o kom je predmetu
reč. Kako bi pogodio o kom predmetu se radi igrač koji pogada ima pravo da postavi 20 pitanja na koje odgovor
je
može biti da ili ne. Kada misli da je postavio dovoljno pitanja, igrač može dati svoj sud o kom predmetu se radi
i igra se završava. Očito, proces ispitivanja se može predstaviti u vidu stabla koje u svakom čvoru ima po jedno
an
pitanje, osim u listovima u kojima se nalazi sud igrača o nepoznatom predmetu. Svaki čvor osim listova ima
dve grane označene sa da ili ne koje vode u podstablo koje odgovara nastavku ispitivanja posle razmatranog
d
odgovori ne moraju biti samo da ili ne, već da mogu pripadati odredenom unapred definisanom skupu za dato
pitanje. Ovakva stabla se mogu automatski naučiti iz primera koji za svaku instancu uključuju vrednosti njenih
o
Učenje stabala odlučivanja je metod aproksimacije diskretnih ciljnih promenljivih pri kome se model pred-
stavlja u vidu stabla. Slično igri 20 pitanja, svakom čvoru stabla odgovara test nekog atributa instance, a
grane koje izlaze iz čvora različitim vrednostima tog atributa. Listovima odgovaraju predvidene vrednosti ciljne
n
promenljive. Instance su opisane vrednostima svojih atributa. Klasifikuju se polazeći od korena, spuštajući se
ro
niz granu koja odgovara vrednosti testiranog atributa instance koju klasifikujemo. Klasa se dodeljuje instanci
kad se dode do lista.
kt
Učenje stabala odlučivanja je već primenjeno u različitim problemima. Jedan primer se odnosi na predvidanje
buduće potražnje za knjigama u bibliotekama, na osnovu nekih njihovih atributa (npr. jezik, datum objavljiva-
nja, datum poslednjeg iznajmljivanja itd.). Knjige za koje se predvida da neće biti skoro tražene se mogu smestiti
le
u magacin. Istraživanje je radeno u biblioteci univerziteta Harvard. Sredinom devedesetih stabla odlučivanja
E
su primenjena u klasifikaciji tumora i prognozi njihovog ponašanja. Svaka instanca je opisivana pomoću 31 atri-
buta, a klasifikacije su date nezavisno od strane više stručnjaka. U astronomiji stabla odlučivanja su primenjena
u cilju razlikovanja zvezda i tragova kosmičkih zraka na snimcima teleskopa Habl. Na osnovu 20 numeričkih
karakteristika, sa stablima dubine do 9 čvorova, postignuta je preciznost klasifikacije od 95%. Takode postoje
primene i u ekonomiji i drugim oblastima.
Korišćenje stabla odlučivanja nije podjednako pogodno za sve probleme učenja. Skup vrednosti atributa bi
trebalo da bude diskretan i mali, mada se na kontinualne atribute može primeniti diskretizacija tako što bi se
skup podelio u podintervale. Svakom podintervalu se pridružuje oznaka koja zamenjuje vrednosti atributa iz tog
intervala u zapisima instanci. Stabla odlučivanja se pokazuju posebno primenljiva u slučaju kada je neophodno
predstavljanje disjunkcija uslova.
Ukoliko stablo odlučivanja instanci dodeljuje neku klasu, to znači da instanca ispunjava sve uslove koji su
definisani putanjom od korena do odgovarajućeg lista kroz stablo i oblika su atribut=vrednost. Stoga putanje
kroz stablo predstavljaju konjunkcije ovakvih uslova. Za svaku klasu moguće je uočiti putanje koje se završavaju
listovima koji odgovaraju toj klasi. Disjunkcija svih takvih konjunkcija definiše instance koje pripadaju datoj
klasi prema datom stablu.
Jedan od najpoznatijih algoritama za učenje stabla odlučivanja je ID3 [?] na koji ćemo se skoncentrisati.
Ovaj algoritam konstruiše stablo od korena, naniže, pitajući se u svakom čvoru koji je najbolji atribut koji se u
191 12. Nadgledano mašinsko učenje
datom čvoru može testirati. Ovo se odreduje statističkim kriterijumom koji meri koliko dobro neki atribut sam
klasifikuje podatke. Atribut ne može biti dva puta korišćen u jednoj putanji od korena do lista. Za sve vrednosti
odabranog atributa kreiraju se grane do čvorova naslednika, a podaci za treniranje se dele izmedu ovih čvorova
tako da svaki od njih nasleduje primere koji imaju odgovarajuću vrednost prethodno testiranog atributa. Za
svaki od čvorova naslednika ovaj postupak se rekurzivno primenjuje sve dok nije ispunjen bar jedan od sledeća
dva uslova: (1) u putanji od korena do trenutnog čvora iskorišćeni su svi atributi, ili (2) sve instance za trening
koje su pridružene trenutnom čvoru imaju istu vrednost ciljnog atributa. Svakom listu se pridružuje najčešća
oznaka instanci za trening koje su mu pridružene. Algoritam je preciznije dat na slici 12.15.
Ulaz: 𝑃 𝑟𝑖𝑚𝑒𝑟𝑖 je skup instanci za trening, a 𝐴𝑡𝑟𝑖𝑏𝑢𝑡𝑖 je lista atributa koji se mogu testirati u čvorovima stabla.
Izlaz: Stablo odlučivanja koje odgovara datim instancama
1. Napraviti koreni čvor stabla 𝑅.
2. Ako sve instance iz 𝑃 𝑟𝑖𝑚𝑒𝑟𝑖 pripadaju istoj klasi, vratiti čvor 𝑅 sa oznakom te klase.
6)
3. Ako je 𝐴𝑡𝑟𝑖𝑏𝑢𝑡𝑖 prazna lista, vrati čvor 𝑅 označen oznakom najčešće klase koja se javlja u 𝑃 𝑟𝑖𝑚𝑒𝑟𝑖.
01
4. U suprotnom
(2
– Neka je 𝐴 ∈ 𝐴𝑡𝑟𝑖𝑏𝑢𝑡𝑖 najbolji* atribut za testiranje u odnosu na 𝑃 𝑟𝑖𝑚𝑒𝑟𝑖
– Neka je 𝐴 atribut koji se testira u 𝑅
– Za svaku moguću vrednost 𝑣𝑖 atributa 𝐴
* Dodaj granu iz 𝑅 koja odgovara testu 𝐴 = 𝑣𝑖 je
an
* Neka je 𝑃 𝑟𝑖𝑚𝑒𝑟𝑖𝑣𝑖 podskup od 𝑃 𝑟𝑖𝑚𝑒𝑟𝑖 takav da svi njegovi elementi imaju vrednost 𝑣𝑖 atributa
𝐴
d
* Ako je 𝑃 𝑟𝑖𝑚𝑒𝑟𝑖𝑣𝑖 prazan, onda na dodatu granu iz 𝑅 dodati list sa oznakom najčešće klase u
𝑃 𝑟𝑖𝑚𝑒𝑟𝑖
iz
3. Vratiti 𝑅.
o
Bitno je pitanje statističkog kriterijuma koji će biti korišćen za izbor najboljeg atributa za testiranje u nekom
kt
čvoru. ID3 bira atribut koji maksimizuje takozvani dobitak informacije na skupu instanci koje su pridružene
posmatranom čvoru. Dobitak informacije predstavlja razliku entropije u odnosu na ciljni atribut skupa instanci
za trening 𝑆 pre deljenja i prosečne entropije posle deljenja prema nekom atributu 𝐴. Entropija predstavlja
le
meru neuredenosti nekog sistema. Ako sa 𝑝𝑖 označimo verovatnoću da instanca pripada 𝑖-toj klasi, onda se
E
Po definiciji važi 0 · log2 0 = 0. Entropija se može interpretirati i kao minimalni očekivani broj bitova potrebnih
za kodiranje klasifikacije proizvoljne instance iz 𝑆 . Primera radi, neka je potrebno poslati informaciju o klasi
instance udaljenom primaocu. Neka je broj klasa 𝑐 i neka je 𝑝0 = 1 (tada je 𝑝𝑖 = 0 za 1 ≤ 𝑖 ≤ 𝑐). U tom
slučaju je sigurno da će instanca imati klasifikaciju 0 i nije potrebno nikakvo kodiranje informacije. U slučaju
da je 𝑝𝑖 = 1/𝑐 za 0 ≤ 𝑖 ≤ 𝑐, svi ishodi su jednako verovatni i za kodiranje je potrebno iskoristiti 𝑙𝑜𝑔2 𝑐 bitova.
U slučaju raspodele koja nije uniformna, dodeljujući kraće kodove klasama koje se češće javljaju, a duže onima
koje se rede javljaju, može se dobiti manja prosečna dužina kodiranja. Dobitak informacije stoga poredstavlja
smanjenje u potrebnom broju bitova za kodiranje klase proizvoljne instance, kada je poznata vrednost koju na
njoj ima atribut 𝐴. Dobitak informacije se formalno definiše na sledeći način:
∑︁ |𝑆𝑣 |
𝐷𝑜𝑏𝑖𝑡𝑎𝑘(𝑆, 𝐴) = 𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆) − 𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆𝑣 ) (12.2)
|𝑆|
𝑣∈𝑉 𝑟𝑒𝑑(𝐴)
12.3. Klasifikacija 192
gde je 𝑐 broj klasa, odnosno vrednosti ciljnog atributa, 𝑝𝑖 udeo elemenata skupa 𝑆 koji pripadaju klasi 𝑖 u celom
skupu 𝑆 , 𝑉 𝑟𝑒𝑑(𝐴) predstavlja skup svih mogućih vrednosti atributa 𝐴, a 𝑆𝑣 = {𝑠 ∈ 𝑆|𝐴(𝑠) = 𝑣}.
Pored entropije, postoje i druge mere koje se mogu koristiti za merenje neuredenosti nekog skupa. Jedna
jednostavna mera je greška klasifikacije. Ona predstavlja grešku koja se čini ukoliko se sve instance nekog skupa
klasifikuju u najbrojniju klasu u tom skupu. Stoga, ako je 𝑝𝑖 verovatnoća da instanca pripada 𝑖-toj klasi, greška
klasifikacije se definiše izrazom
𝐸𝑟𝑟(𝑆) = 1 − max 𝑝𝑖
𝑖
Za ovu meru se može definisati dobitak analogan opisanom dobitku informacije ukoliko se u izrazu 12.2 entropija
zameni greškom klasifikacije.
Primer 12.12. U tabeli 12.2 su date instance koje opisuju različite životinje, sa datom klasifikacijom koja
označava da li je životinja opasna po čoveka. Izdvojili smo nekoliko karakteristika koje bi mogle biti relevantne
u odredivanju vrednosti ciljnog atributa, ali smo namerno dodali dva atributa koji nisu relevantni — broj nogu i
parnost prosečne visine u okviru vrste, izražene u centimetrima.
6)
Životinja Veličina Ishrana Otrovna Noge Parnost Opasna
Lav Velika Meso Ne 4 Neparna Da
01
Mačka Mala Meso Ne 4 Neparna Ne
Koza Mala Biljke Ne 4 Parna Ne
(2
Zec Mala Biljke Ne 4 Neparna Ne
Komodo zmaj Velika Meso Da 4 Neparna Da
Tabela 12.2: Skup primera za trening
je
an
Da bi se izgradilo stablo odlučivanja, za svaki od atributa je potrebno izračunati dobitak informacije pri
deljenju skupa podataka prema tom atributu. U prvom koraku, važi:
d
2 2 3 3
𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆) = − log2 − log2 = 0.971
iz
5 5 5 5
Ukoliko se izvrši podela instanci po vrednosti prvog atributa, dobijamo
o
sk
2 3
𝐷𝑜𝑏𝑖𝑡𝑎𝑘(𝑆, 𝑉 𝑒𝑙𝑖𝑐𝑖𝑛𝑎) = 0.971 − · 0 − · 0 = 0.971
kt
5 5
Slično se dobija:
le
VELIČINA
mala velika
NE DA
Jedno ručno konstruisano stablo koje je saglasno sa podacima za trening je dato na slici 12.17. Izbor lošeg
6)
atributa za testiranje u korenom čvoru je namerno učinjen. To dovodi do potrebe za ponavljanjem istih testova u
levom i desnom podstablu, pošto informacija dobijena testiranjem u kornenu nije relevantna za odredivanje klase
01
instance. Takode, u slučaju životinjske vrste sa parnom prosečnom visinom koja je otrovna, imamo nepotreban
test vezan za njenu ishranu. U oba slučaja klasa je ista, pa se taj test može zameniti listom sa klasom 𝐷𝐴.
Upotreba ID3 algoritma daje dosta bolje stablo odlučivanja.
(2
PARNOST
parna
je
neparna
an
OTROVNA OTROVNA
ne da ne da
d
iz
NE ISHRANA DA DA NE ISHRANA
sk
NE DA NE DA
ro
kt
1 1 1 1
𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆) = − log2 − log2 = 1
2 2 2 2
Ukoliko se izvrši podela instanci po vrednosti prvog atributa, dobijamo
3 3 2 2
𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆|𝑀 𝑎𝑙𝑎) = − log2 − log2 = 0.971
5 5 5 5
1 1 2 2
𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆|𝑉 𝑒𝑙𝑖𝑘𝑎) = − log2 − log2 = 0.918
3 3 3 3
5 3
𝐷𝑜𝑏𝑖𝑡𝑎𝑘(𝑆, 𝑉 𝑒𝑙𝑖𝑐𝑖𝑛𝑎) = 1 − · 0.971 − · 0.918 = 0.049
8 8
Slično se dobija:
𝐷𝑜𝑏𝑖𝑡𝑎𝑘(𝑆, 𝑁 𝑜𝑔𝑒) = 0
𝐷𝑜𝑏𝑖𝑡𝑎𝑘(𝑆, 𝑃 𝑎𝑟𝑛𝑜𝑠𝑡) = 0.156
Posle dodavanja novih instanci, najbolji atributi za testiranje su Otrovnost i Ishrana. Rekurzivnom primenom
ovog postupka dobija se stablo na slici 12.18. Ono je očigledno manje od ručno konstruisanog i ima relevantnije
atribute pri vrhu stabla, dok se dva nebitna atributa uopšte ne testiraju.
OTROVNA
ne da
VELIČINA DA
mala velika
6)
NE ISHRANA
01
biljke meso
(2
NE DA
je
Slika 12.18: Stablo odlučivanja konstruisano pomoću ID3 algoritma
an
Učenje stabala odlučivanja nije formulisano u skladu sa osnovnom shemom dizajna algoritama nadgledanog
d
učenja. Kao i drugi metodi učenja, ID3 se može shvatiti kao pretraga skupa dopustivih modela za onim koji
„najbolje“ odgovara podacima za trening, ali nije lako formulisati tačan kriterijum u odnosu na koji je dobijeno
iz
stablo najbolje. Odnosno, nije očigledno koja se tačno veličina optimizuje metodama učenja koje grade stabla
odlučivanja. Čak i kad daju dobre rezultate u primenama, ovo nije poželjno jer znači da ne razumemo sasvim na
o
koji način rade. Ipak, može se konstatovati nekoliko stvari koje razumemo. Prostor pretrage je potpun prostor
svih stabala odlučivanja. Svaka diskretna funkcija se može predstaviti nekim stablom odlučivanja, tako da se
sk
učenjem stabala odlučivanja za empirijski rizik može postići vrednost 0 ukoliko podaci nisu protivrečni. ID3 u
svakom trenutku čuva samo jedan tekući model, pa je nemoguće znati koliko ima drugih modela koji su saglasni
n
sa podacima za trening. Pošto nema vraćanja u pretrazi (backtracking ), već se stablo gradi od jednostavnijeg
ro
veći dobitak informacije nalaze bliže korenu. Ovo je posledica toga što izgradnja stabla počinje od praznog
stabla pri čemu se dodaje nivo po nivo i načina na koji se biraju atributi koji se pridružuju čvorovima. Afinitet
prema kraćim stablima je zanimljiva pretpostavka jer je u skladu sa odavno poznatim filozofskim principom
le
kojim se često vode i naučnici - Okamovom oštricom: entitete ne treba umnožavati preko potrebe, odnosno
E
najjednostavnije objašnjenje je verovatno i najbolje. Stabla odlučivanja sa manjom dubinom imaju manji broj
listova. Svakoj putanji od korena do nekog od listova odgovara po jedno pravilo oblika
𝐼𝐹 𝐴1 = 𝑣1 ∧ 𝐴2 = 𝑣2 ∧ ... ∧ 𝐴𝑛 = 𝑣𝑛 𝑇 𝐻𝐸𝑁
𝐾𝑙𝑎𝑠𝑎 = 𝑘𝑙𝑎𝑠𝑎 𝑘𝑜𝑗𝑎 𝑜𝑑𝑔𝑜𝑣𝑎𝑟𝑎 𝑙𝑖𝑠𝑡𝑢
gde su 𝐴𝑖 0 ≤ 𝑖 ≤ 𝑛 atributi koji se testiraju na putanji od korena do odgovarajućeg čvora, a 𝑣𝑖 njihove vrednosti
za datu instancu. Kako stabla sa manjom dubinom, predstaljaju manje skupove ovakvih pravila, možemo ih
smatrati jednostavnijim.
Kako formulacija učenja stabala odlučivanja nije u okvirima ranije diskutovane sheme dizajna algoriama
nadgledanog učenja, vredi osvrnuti se na problem preprilagodavanja. Sa povećanjem dozvoljene dubine stabla,
povećava se moć učenja, odnosno verovatnoća da će u skupu dopustivih modela biti naden onaj koji dobro
opisuje podatke. Zato se sa povećanjem dozvoljene dubine stabala, smanjuje empirijski rizik. Medutim, ako
nema ograničenja na dubitnu stabla, takav skup modela je očigledno vrlo bogat i stoga postoji opasnost od
preprilagodavanja. Jedan pristup rešavanju ovog problema je ograničavanje maksimalna dubina stabla nakon
koje algoritam učenja neće dalje razgranavati stablo. O načinu na koji se vrši izbor dubine biće reči kasnije,
pošto se bira na sličan način kao vrednost regularizacionog parametra 𝜆. Zapravo, kako se ovom tеhnikom
smanjuje fleksibilnost modela u vreme učenja, ona se upravo može smatrati vidom regularizacije.
195 12. Nadgledano mašinsko učenje
6)
neupotrebljiv. Stoga je u takvim slučajevima bitna mera osetljivost klasifikatora, odnosno njegova mogućnost
da primeti instance koje se traže (npr. bolesne pacijente). Opštije, neka su date dve klase 𝐶+ i 𝐶− koje
smatramo pozitivnim i negativnim primerima neke kategorije. Na primer pacijenti koji imaju i pacijenti koji
01
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
(2
lažno pozitivnim podrazumevamo instance koje su negativne, ali su greškom u klasifikaciji proglašene pozitivnim
i pod lažno negativnim podrazumevamo instance koje su pozitivne, ali su greškom klasifikovane kao negativne.
Brojeve ovih instanci označavamo redom 𝑆𝑃 , 𝑆𝑁 , 𝐿𝑃 i 𝐿𝑁 . Ove brojeve obično zapisujemo u takozvanoj
je
matrici konfuzije koja po vrstama prikazuje kako su instance klasifikovane, a po kolonama prikazuje koje su
stvarne klase instanci. Ova matrica je prikazana tabelom 12.4.
an
P N
KP
d
𝑆𝑃 𝐿𝑃
KN 𝐿𝑁 𝑆𝑁
iz
Tabela 12.4: Vrste matrice konfuzije u zbiru daju broj instanci koje su klasifikovane pozitivno (KP) i broj
instanci koje su klasifikovane negativno (KN). Kolone u zbiru daju broj instanci koje su stvarno pozitivne (P)
o
Kada su poznati ovi brojevi, udeo stvarno pozitivnih instanci, odnosno osetljivost je definisana kao:
n
ro
𝑆𝑃
𝑈 𝑆𝑃 =
𝑆𝑃 + 𝐿𝑁
kt
odnosno broj stvarno pozitivnih podeljen brojem svih pozitivnih (i onih koji su klasifikovani kao pozitivni i onih
koji su greškom klasifikovani kao negativni). Udeo stvarno negativnih se analogno definiše
le
𝑆𝑁
E
𝑈 𝑆𝑁 =
𝑆𝑁 + 𝐿𝑃
Udeo lažno pozitivnih i lažno negativnih se definišu slično:
𝐿𝑃 𝐿𝑁
𝑈 𝐿𝑃 = 𝑈 𝐿𝑁 =
𝐿𝑃 + 𝑆𝑁 𝐿𝑁 + 𝑆𝑃
Preciznost se može izračunati kao
𝑆𝑃 + 𝑆𝑁
𝑃 𝑟𝑒𝑐 =
𝑆𝑃 + 𝐿𝑃 + 𝑆𝑁 + 𝐿𝑁
Primer 12.13. Neka je testirano 400 ispitanika. Od toga 4 imaju bolest zbog koje se testiraju, a ostali ne. Neka
je test dao pozitivnu klasifikaciju u slučaju 2 osobe koje obe imaju bolest. Matrica konfuzije data je tabelom 12.13
Odavde se mogu izračunati mere kvaliteta:
398
𝑃 𝑟𝑒𝑐 = = 0.995
400
2
𝑈 𝑆𝑃 = = 0.5
4
12.4. Tehnike evaluacije i kofigurisanja algoritma učenja 196
P N
KP 2 0
KN 2 396
Tabela 12.5: Matrica konfuzije vezana za klasifikaciju obolelih.
396
𝑈 𝑆𝑁 = =1
396
0
𝑈 𝐿𝑃 = =0
396
2
𝑈 𝐿𝑁 = = 0.5
4
Preciznost je izuzetno visoka i sugeriše odlično ponašanje klasifikatora. S druge strane poznavanje udela
stvarno pozitivnih otkriva da je ovaj utisak lažan zato što je identifikovan mali broj elemenata pozitivne klase.
6)
12.4 Tehnike evaluacije i kofigurisanja algoritma učenja
01
Do sada je prikazano nekoliko mera kvaliteta koje služe za evaluaciju regresionih i klasifikacionih modela.
Pored izbora same mere, bitno je izabrati i način na koji se ta mera ocenjuje. Česta praksa je da se model
(2
trenira na jednom skupu podataka, a da se evaluira na odvojenom skupu podataka za testiranje. Pritom se
podela raspoloživih podataka na podatke za trening i podatke za testiranje vrši slučajnim izborom podataka za
testiranje. Medutim, ovakav način evaluacije može dovesti do značajnih oscilacija u vrednostima mera kvaliteta
je
u zavisnosti od toga koji je podskup izabran. Pouzdaniji način evaluacije naučenog znanja je takozvana unakrsna
validacija. Ceo skup podataka kojim se raspolaže se deli na 𝑛 približno jednakih podskupova. Jedan podskup
an
se izdvaja i trening se vrši na ostalih 𝑛 − 1 podskupova. Posle treninga, kvalitet naučenog znanja se ocenjuje
na izdvojenom podskupu. Ovaj postupak se ponavlja za sve ostale izdvojene podskupove i kao finalna ocena
d
kvaliteta se uzima prosek dobijenih ocena za svaki od podskupova. Za vrednost 𝑛 se obično uzima broj 5 ili 10
i ne preporučuju se mnogo manje ili veće vrednosti. Ovakav postupak daje stabilniju ocenu kvaliteta. Pored
iz
toga, prednost ovog metoda je da se u svakom od 𝑛 koraka unakrsne validacije koristi velika količina podataka
pri treniranju, a da sve raspoložive instance u jednom trenutku budu iskorišćene za testiranje.
o
Iako nije očigledno da je u vezi sa tehnikama evaluacije, u nastavku će biti razmotreno dugo odlagano
sk
pitanje izbora vrednosti regularizacionog parametra 𝜆, kao i broja suseda 𝑛 i maksimalne dubine stabla za koje
smo najavili da ćemo ih razmatrati skupa. Izbor vrednosti ovih parametera predstavlja samo primer opštijeg
problema konfigurisanja algoritama učenja. U opštem slučaju, algoritmi učenja se mogu podešavati na različite
n
načine, pri čemu različite konfiguracije daju različite modele za iste ulazne podatke. U nastavku će biti reči
ro
samo o izboru parametra 𝜆, ali se diskusija odnosi i na probleme konfigurisanja algoritama učenja u opštijem
smislu.
kt
Za dati skup podataka, svakoj vrednosti parametra 𝜆 odgovara neka vrednost optimalnih koeficijenata 𝑤𝜆 i
samim tim neki model 𝑓 (𝑥, 𝑤𝜆 ). Postavlja se pitanje koji od ovih modela je najbolji. Osim ako nije raspoloživa
velika količina podataka, male vrednosti parametra 𝜆 uzrokuju loše rezultate zbog preprilagodavanja, a velike
le
vrednosti uzrokuju loše rezultate zbog premale fleksibilnosti modela. Poželjne vrednosti parametra se obično
E
nalaze negde izmedu dva ekstrema. Stoga je prvi korak u pronalaženju pogodne vrednosti odredivanje granica
intervala u kojem će se vrednost tražiti, što se može uraditi eksperimentalno. Recimo interval [10−10 , 105 ] je
verovatno dovoljno širok u većini slučajeva, ali to je ipak potrebno detaljnije razmotriti u konkrentom slučaju.
Potom se formira niz vrednosti parametra koje se ispituju. Na primer, često se koristi geometrijska progresija
𝜆1 = 10−10 , 𝜆2 = 10−9 , . . . , 𝜆11 = 105 . Potom se, ugrubo rečeno, model za svaku od tih vrednosti evaluira i bira
se najbolji. Ipak, postavlja se pitanje kako se vrši evluacija.
Prva ideja bi bila da se za svaku od izabranih vrednosti parametra izvrši treniranje na trening skupu i da
se dobijeni model evaluira na test skupu nekom merom kvaliteta i da se izabere nejbolji od njih. Pažljivijim
razmatranjem se uvida da je ovaj postupak pogrešan. Naime, na ovaj način se podaci iz test skupa koriste pri
izboru modela, što je sve deo treninga i samim tim i oni predstavljaju deo trening skupa. Medutim, disjunktnost
trening i test skupa je osnovno pravilo evaluacije modela u mašinskom učenju. Korektan postupak bi bio da se
umesto podele ukupnog skupa podataka na trening i test skup izvrši njegova podela na trening skup, validacioni
skup i test skup. Tada se na trening skupu vrši treniranje svakog od modela (dobijenih za različite vrednosti 𝜆𝑖 ),
na validacionom skupu se vrši evaluacija na osnovu koje se bira najbolji model i potom se taj model evaluira
na test skupu i njegov kvalitet predstavlja finalnu meru kvaliteta učenja.
Prethodni postupak je korektan, ali ponovo se konstatuje da usled slučajnog deljenja podataka na trening
i test skup, može doći do različitih ishoda evaluacije. Prethodno je ovaj problem rešen pomoću unakrsne
197 12. Nadgledano mašinsko učenje
validacije i ta tehnika se može primeniti i u ovom slučaju. Medutim, pristup je komplikovaniji. Prvo se,
kao kod standardne unakrsne validacije, ceo skup podataka kojim se raspolaže deli na 𝑛 približno jednakih
podskupova. Jedan podskup se izdvaja i potom se za svaku vrednost 𝜆𝑖 vrši evaluacija odgovarajućeg modela
unakrsnom validacijom na skupu formiranom od preostalih 𝑛 − 1 delova. Najbolji od tih modela se primenjuje
na izdvojeni podskup čime se dobijaju predvidanja za instance iz tog podskupa. Ovaj posupak se ponavlja za
sve ostale izdvojene podskupove, čime se dobijaju predvidanja za sve instance. Na kraju se na osnovu stvarnih
i predvidenih vrednosti ciljne promenljive računa ocena kvaliteta. Opisana tehnika se naziva ugneždenom
unakrsnom validacijom pošto se u svakom od 𝑛 koraka unakrsne validacije vrši puna nova unakrsna validacija.
Naglasimo da je korišćenje obične unakrsne validacije u kontekstu izbora vrednosti regularizacionog parametra
podjednako pogrešno kao i korišćenje standardne podele na trening i test skup.
Pitanja i zadaci
Zadatak 12.1. Mašinsko učenje se bavi proučavanjem:
(a) dedukcije;
(b) pretrage;
6)
(c) generalizacije;
(d) optimizacije;
01
(e) ne znam.
Pitanje 12.1. Koji od narednih modela su linearni?
(2
𝑦 = 𝛽1 𝑥 + 𝛽2 𝑧
𝑦 = 𝛽0 + 𝛽1 𝑥 2 + 𝛽2 𝑥 3
𝑦^ = 𝛽^0 + 𝛽^1 log(𝑥) + 𝛽^1 log(𝑥)
je
an
𝑦^ = 𝛽^0 + 𝛽^1 log(𝑥) + 𝛽^1 log(sin(𝑥))
d
Pitanje 12.2. Ako se učenje vrši sa siromašnim skupom dopustivih modela, da li to može dovesti do loših
iz
rezultata?
Pitanje 12.3. Ako se učenje vrši sa bogatim skupom dopustivih modela, da li to može dovesti do loših rezultata?
o
Pitanje 12.4. Šta je čest uzrok lošeg ponašnja modela koji ima dobre mere kvaliteta na trening podacima?
sk
Pitanje 12.5. Koju raspodelu se pretpostavlja da ima šum pri korišćenju linearne regresije?
n
Zadatak 12.2. Za količine katalizatora od 0,1 i 2 grama, izmerene su brzine hemijske reakcije od 5, 6 i 1 se-
kunde. Pomoću koeficijenta korelacije oceniti kvalitet linearnog modela t=6-2m dobijenog linearnom regresijom
le
linearne regresije predvideti vrednost evra 6., 7. i 8. juna. Stvarne vrednosti tih dana su bile 105, 106 i 107.
Kolika je srednjekvadratna greška tih predvia.nja?
Zadatak 12.4. U eksperimentu sa daljinskim upravljanjem električnim helikopterom, povećanje napona na
elektromotoru za 10, 20 i 30 V rezultovalo je povećanjem brzine za 1, 2 i 6 𝑚/𝑠. Pošto se pretpostavlja da su
promene pravca vetra uticale na postignutu brzinu, potrebno je modelovati zavisnost izmeu. povećanja napona
i dobitka u brzini linearnim modelom koji najbolje odgovara podacima. Na osnovu tog modela, predvideti
povećanje brzine pri povećanju napona za 15, 25 i 35 V.
Zadatak 12.5. Instrument meri brzinu tela u padu. Izmerena brzina je 2m/s u polaznom trenutku, 4 dve
desetinke kasnije, a 6.9 pola sekunde kasnije (u odnosu na polazni trenutak). Linearnom regresijom odrediti
model koji predvidja brzinu tela u buducnosti i proceniti brzinu posle jedne i posle dve sekunde. Na osnovu
modela proceniti ubrzanje sa koje Zemljina teza uzrokuje u kretanju tela.
Zadatak 12.6. Jedne nedelje januara, u ponedeljak, utorak i petak u podne izmerene su temperature -2, 0 i 1
stepen. Linearnom regresijom proceniti temperaturu u sredu i četvrtak u podne. Koliki je koeficijent korelacije
za dobijeni linearni model?
12.4. Tehnike evaluacije i kofigurisanja algoritma učenja 198
Zadatak 12.7. U toku dana praćena je temperatura vazduha. U 8:00 ujutru je bilo 15 stepeni, a u 10:00
je bilo 18 stepeni. Linearnom regresijom odrediti model koji predvidja temperaturu u budućnosti i proceniti
temperaturu u 12:00 i 14:00.
Zadatak 12.8. Telo se krece po putu konstanantnom brzinom. Nakon jedne sekunde telo je prešlo 6m od
starta, nakon 2s 8m, a nakon 3s 10m. Koriteći lineranu regresiju odrediti brzinu tela i na kojoj razdaljini od
starta je bilo telo u početnom trenutku.
Pitanje 12.8. Navesti barem dva algoritma klasifikacije.
Pitanje 12.9. Da li su modeli koje grade metode zasnovane na instancama implicitni ili eksplicitni?
Pitanje 12.10. Kako se zove metod klasifikacije koji koristi 𝑛 instanci za koje je rastojanje do instance koja
se klasifikuje najmanje?
Pitanje 12.11. Navesti primer funkcije rastojanja koja se može koristiti u metodi 𝑛 najbližih suseda.
6)
Pitanje 12.12. Da li su u metodu 𝑛 najbližih suseda rezultati bolji za veće vrednosti 𝑛?
Da li u metodu 𝑛 najbližih suseda kvalitet rezultata zavisi od 𝑛?
Da li u metodu 𝑛 najbližih suseda postoji opšte gornje ograničenje za 𝑛?
01
Pitanje 12.13. Instanca (1, 0) pripada klasi 𝐴, instanca (9, 1) pripada klasi 𝐵 , a instanca (15, 19) pripada
(2
klasi 𝐶 . Kojoj od ovih klasa bi algoritam 𝑛-najbližih suseda pridružio instancu (2, 2) za 𝑛 = 1?
Zadatak 12.9. Date su instance (1,1,A),(1,2,A),(2,1,A),(2,2,B),(3,3,B),(4,4,B), (4,2,C) i (5,2,C), pri čemu
poslednja koordinata predstavlja oznaku klase. Algoritmom 3 najbliža suseda odrediti kojoj klasi pripada in-
stanca (2,4)? je
an
Zadatak 12.10. Algoritmom 3 najbliža suseda klasifikovati instance iz trening skupa. Pri tom, koristiti
Menhetn rastojanje. Izračunati preciznost, i udele tačno i lažno pozitivnih i tačno i lažno negativnih.
Trening skup
d
1 1 0 A 𝑋1 𝑋2 𝑋3 Klasa
1 0 2 A 0 0 0 A
2 2 3 A 3 3 3 A
o
3 2 4 B 1 3 4 B
sk
1 4 3 B 4 5 3 B
4 3 3 B
n
Zadatak 12.11. Date su instance (0,0,A), (1,1,A), (1,2,A), (0,2,A), (1,5,B), (4,5, B), (5, 6, B), (5, 2,
ro
C), (4, 0, C), pri čemu prve dve koordinate predstavljaju koordinate tačke, a poslednja koordinata predstavlja
oznaku klase. Algoritmom 3 najbliža suseda odrediti kojoj klasi pripadaju instance (0, 1, A), (4, 3, B), (3,
kt
1, C)? Kao meru rastojanja koristiti Euklidovo rastojanje u ravni. Odrediti preciznost i udele tačno i lažno
pozitivnih.
le
Pitanje 12.14. Koliko ima 2-grama u reči matematika i koje su njihove frekvencije u ovoj reči?
E
Pitanje 12.15. Da li, za konačnu azbuku, 𝑛-grama za fiksno 𝑛 ima: konačno mnogo, prebrojivo mnogo ili
neprebrojivo mnogo?
Pitanje 12.16. Šta čini 𝑛-gramski profil instance?
Pitanje 12.17. Navesti barem dve funkcije rastojanja koje se mogu koristiti za klasifikaciju 𝑛-gramskih profila
metodom 𝑛 najbližih suseda.
Pitanje 12.18. Navesti ime barem jednog algoritma za konstrukciju stabla odlučivanja na osnovu skupa in-
stanci za trening.
Pitanje 12.19. Navesti algoritam ID3.
Pitanje 12.20. Šta vraća algoritam ID3 u slučaju da je lista atributa prazna?
Pitanje 12.21. Šta vraća algoritam ID3 u slučaju da sve ulazne instance pripadaju istoj klasi?
Pitanje 12.22. Da li algoritam ID3 ima tendenciju da konstruiše plića ili dublja stabla odlučivanja?
199 12. Nadgledano mašinsko učenje
Pitanje 12.23. Koje se mere obično koriste za izbor najpogodnijeg atributa prilikom izgradnje stabla odlučivanja?
Pitanje 12.24. Navesti definiciju veličine 𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑗𝑎(𝑆).
Pitanje 12.25. Ako se razmatra entropija kuglica rasporedenih u dve činije, kada ona najveća, a kada naj-
manja?
Pitanje 12.26. Ako skup sadrži podjednako instanci iz dve klase, kolika je vrednost entropije za taj skup?
Pitanje 12.27. Kako se definiše entropija skupa 𝑆 podeljenog na podskupove veličina 𝑝1 , 𝑝2 , . . ., 𝑝𝑐 ?
Pitanje 12.28. U jednom skupu instanci, verovatnoća da proizvoljna instanca pripada klasi 𝐶1 jednaka je
1/4, verovatnoća da pripada klasi 𝐶2 jednaka je 1/4, a verovatnoća da pripada klasi 𝐶3 jednaka je 1/2. Kolika
je entropija ovog skupa?
Pitanje 12.29. Kakva su pravila koja se lako mogu izvesti iz stabla odlučivanja?
Zadatak 12.12. Na osnovu datih primera, konstruisati stablo odlučivanja za ciljnu promenljiu koja odreduje
da li je jagoda zrela.
6)
Boja Veličina Zrela
Zelena Mala Ne
01
Crvena Mala Da
Zelena Velika Ne
(2
Crvena Velika Da
Zadatak 12.13. Konstruisati stablo odlučivanja za sledeće instance koje govore o životinjama. Odgovor
detaljno obrazložiti.
Otrovnost Boja
je
Opasna
an
Otrovna Zelena Da
Neotrovna Zelena Ne
d
Otrovna Crvena Da
iz
Neotrovna Crvena Ne
Zadatak 12.14. Na osnovu sledećih podataka, konstruisati stablo odlučivanja dubine 1 korišćenjem mere
o
„greška klasifikacije“.
sk
A 2 1 2 1 2 1 2 1
B 1 1 2 3 3 3 1 2
n
C 2 2 1 2 1 3 3 3
Klasa + - + + - + - +
ro
A 1 1 1 3
B 1 2 2 3
le
C 1 1 3 1
Klasa - + - +
E
Zadatak 12.15. Konstruisati stablo odlučivanja potrebne dubine koje prepoznaje parnost 4-bitnih brojeva na
osnovu njihovih binarnih reprezentacija. Neka se trening skup sastoji od brojeva 1, 3, 6, 9, 12 i 14. Kolika je
preciznost ovog stabla na brojevima 2,4,5 i 7?
Zadatak 12.16. Na osnovu mere „greška klasifikacije“ i datih podataka, odabrati najbolji atribut za izgradnju
stabla odlučivanja.
𝑋1 𝑋2 𝑋3 Klasa
T T T A
F T T A
F T T A
F F T A
F F F A
F F F B
T F F B
T F F B
T T F B
T T F B
12.4. Tehnike evaluacije i kofigurisanja algoritma učenja 200
Zadatak 12.17. Na osnovu mere „greška klasifikacije“ i datih podataka izgraditi stablo odlučivanja dubine 1.
𝑋1 𝑋2 𝑋3 Klasa
T T T B
F T T B
F T T A
F F T A
F F F A
T F F B
T T F B
T T F B
T F F A
T F F A
Zadatak 12.18. Na osnovu atributa „ima krila“, „leže jaja“, „leti“ konstruisati stablo odlučivanja koje prepo-
znaje ptice. Za trening koristiti sledeće životinje: roda, krava, vrabac, slepi miš, noj, zebra, gavran. Kolika je
6)
preciznost predvia.nja tog stabla na sledećem skupu: kokoška, kornjača, konj, lav?
01
Zadatak 12.19. Na osnovu sledećih podataka, konstruisati stablo odlučivanja korišćenjem mere „greška kla-
sifikacije“.
(2
𝑋1 𝑋2 𝑋3 Klasa
A M F 𝐶0
A D F 𝐶0
L
L
M
D
F
F
je
𝐶0
an
𝐶1
L M G 𝐶0
L D G 𝐶1
d
A D G 𝐶1
iz
Pitanje 12.32. Koji procenat podataka se u mašinskom učenju obično uzima za trening podatke, a koji za test
n
podatke?
ro
Pitanje 12.33. Šta se, radi pouzdanije evaluacije klasifikatora, često koristi umesto jednog deljenja na trening
i test podatke?
kt
Pitanje 12.34. Kako se zove postupak evaluacije modela mašinskog učenja u kojem se skup raspoloživih
podataka deli na 𝑛 delova, a zatim trenira izostavljajući po jedan od njih?
le
Nenadgledano učenje
6)
01
(2
je
an
d
iz
o
sk
n
ro
kt
le
E
201