Professional Documents
Culture Documents
Vestacka
inteligencija
c Juni 2010
2
Autori:
dr Predrag Janicic, vanredni profesor Matematickog
fakulteta u Beogradu email: janicic@matf.bg.ac.rs
url: www.matf.bg.ac.rs/~janicic
Mladen Nikolic, asistent na Matematickom fakultetu u
Beogradu email: nikolic@matf.bg.ac.rs
url: www.matf.bg.ac.rs/~nikolic
Sadrz aj
1 Uvod9
1.1 Uska i ops ta ves tac ka inteligencija ................................11
SADRZ
4
AJ
II Pretraga101
5 Res avanje problema kao pretraga103
5.1 Kvalitet algoritama pretrage.....................................................105
5.2 Neinformisana i informisana pretraga..................................106
6 Pohlepna pretraga109
6.1 Penjanje uzbrdo u sluc aju diferencijabilne funkcije cilja 110
7 Odredivanje puteva u grafu113
7.1 Obilazak grafa u dubinu i s irinu ...........................................113
7.2 Dejkstrin algoritam.......................................................................114
7.3 A*.........................................................................................................115
7.3.1 Primer upotrebe algoritma A*....................................................117
7.3.2 Specijalni sluc ajevi ....................................................................119
7.3.3 Primer upotrebe algoritma A* na uniformnoj mrez i. . .
120 7.3.4
Svojstva algoritma A*
124
7.3.5 Implementaciona pitanja.............................................124
8 Programiranje logic kih igara127
8.1 Razvoj automatskog igranja logic kih igara i osnovni koncepti.127
8.2 Legalni potezi i stablo igre.........................................................129
8.3 Otvaranje i biblioteka partija......................................................131
8.4 Sredis njica ....................................................................................132
8.4.1 Static ka ocena pozicije i funkcija evaluacije .......132
8.4.2 Pretraz ivanje stabla igre .............................................133
8.4.3 Algoritam minimaks.........................................................133
8.4.4 Algoritam alfa-beta...........................................................134
8.4.5 Heuristika killer.....................................................................137
8.4.6 Iterativni alfa-beta/killer algoritam...........................138
8.4.7 Stabilno pretraz ivanje .................................................139
8.4.8 Prekidi i vremenska ogranic enja .............................139
8.4.9 Sloz enost algoritama za pretraz ivanje stabla igre
140
8.5 Zavrs nica ........................................................................................141
8.5.1 Skupovi pozicija kao klase ekvivalencija...................142
8.5.2 Tekstovi saveta..................................................................142
8.6 Implementaciona pitanja............................................................143
SADRZ AJ
9 Genetski algoritmi147
9.1 Motivacija za genetske algoritme...........................................147
9.2 Osnovni genetski algoritam......................................................148
9.3 Reprezentacija jedinki................................................................149
9.3.1 Binarna reprezentacija...................................................149
9.4 Funkcija prilagodenosti.............................................................150
9.5 Inicijalizacija i zaustavljanje......................................................151
9.6 Selekcija...........................................................................................151
9.6.1 Ruletska selekcija..............................................................152
9.6.2 Turnirska selekcija...........................................................153
9.7 Reprodukcija i genetski operatori............................................153
9.7.1 Ukrs tanje .........................................................................153
9.7.2 Mutacija................................................................................154
9.8 Zaustavljanje....................................................................................154
9.9 Parametri algoritma.......................................................................155
9.10Svojstva genetskih algoritama.................................................155
9.11Primer primene genetskih algoritama evolucija agenta
9.11.1Implementaciona pitanja.............................................157
III
10 Uvod161
10.1Generalizacija i apstrakcija........................................................162
10.2Primer problema uc enja ..........................................................163
10.3Nadgledano i nenadgledano uc enje .....................................166
10.4Ciljna funkcija i modeli podataka.............................................166
10.5Podaci...............................................................................................167
10.5.1Reprezentacija podataka................................................167
10.5.2Podaci za trening i podaci za testiranje..................168
10.6Dizajn sistema koji uc i .............................................................168
11 Klasifikacija171
11.1Metode klasifikacije zasnovane na instancama................171
11.1.1Metoda n-najbliz ih suseda ...........................................172
11.1.2N-grami................................................................................173
11.2Uc enje stabala odluc ivanja ...................................................177
11.3Mere kvaliteta i tehnike evaluacije klasifikacije................183
11.4Preterano prilagodavanje modela podacima za trening 186
12 Regresija189
12.1Linearna regresija..........................................................................189
12.2Pretpostavke linearne regresije..............................................192
12.3Ispitivanje kvaliteta linearne regresije.................................192
12.4Preterano prilagodavanje modela podacima za trening 196
13 Klasterovanje199
156
SADRZ
6
AJ
IV
Predgovor
Ovo su beleske koji prate predavanja i vezbe iz predmeta
Vestaca inteligen- cija koje smo drzali akademskih godina 2007/08,
2008/09, 2009/10. Funkcija beleski je da olaksaju pracenje
predavanja i da sluze kao podsetnik tokom pripremanja ispita.
Oni ne mogu da zamene pohadanje nastave i koriscenje druge
literature.
8
AJ
SADRZ
Glava 1
Uvod
Smatra se da je vestacka inteligencija kao informaticka disciplina
ustanovljena na znamenitoj konferenciji The Dartmouth Summer Research
Conference on Arti- ficial Intelligence u Darmutu (Sjedinjene Americke
Drzave), 1956. godine. Tom prilikom predlozeno je, od strane
Dzona Makartija, i samo ime discipline, ne sasvim srecno, jer je
to ime cesto izazivalo nedumice i podozrenje. Konferencija je
trajala mesec dana i bila je pre svega usmerena ka profilisanju nove
oblasti koja je nastajala.
Konferenciju su organizovali Dzona
Makartija, Marvin Min- ski, Natanijel Rocester i Klod S enon.
Vestacka inteligencija je jedna od oblasti racunarstva koja se
poslednjih decenija najbrze razvija. Paralelno sa tim burnim razvojem
rastu i ocekivanja od ove discipline. Dok se za neke oblasti racunarstva
vec smatra da su zaokruzene i da
se u njima ne ocekuju novi znacajni prodori, od vestacke
inteligencije se rezul- tati tek ocekuju, uprkos tome sto su vec
razvijeni mnogi inteligentni sistemi koji funkcionisu izuzetno
dobro. Ovo mozda mozemo da objasnimo time sto ti
inteligentni sistemi, i pored varljivih spoljnih manifestacija,
funkcionisu na principima koje, najcesce ne mozemo smatrati
zaista inteligentnim. Time, nar- avno, vestacka inteligencija samo
dovbija na atraktivnosti, a novi eksperimenti i teorijska istrazivanja
predstavljaju put ka novim primenama u najrazlicitijim oblastima.
Kako je razvoj vestacke inteligencije oduvek bio zasnovan na komplementarnom povezivanju teorije i eksperimenata, tako i buduci
razvoj za- hteva prosirivanje i ucvrscivanje teorijskih znanja,
pre svega matematickih, ali i znanja o specificnim oblastima
primene, kao i njihovu adekvatnu formal- izaciju.
U uvodnom delu pokusajmo da odgovorimo i na osnovna pitanja
sta je to inteligencija i sta je to vestacka inteligencija.
Uobicajeno pod inteligencijom podrazumevamo sposobnost
usvajanja, pamcenja i obrade odredjenjih znanja. Ipak, nijedna
definicija vestacke inteligencije nije opste prihvacena (bar ne
neka koja bi odgovarala uobicajenom, svakodnevnom smislu i
istovremeno precizno i formalno opisivala pojam). U svakom
slucaju mozemo smatrati da inteligencija podrazumeva bar dve sposobnosti: sposobnost pamcenja,
skladistenja znanja i mogucnost njegove obrade. Osoba (ili
masina) bez ikakvog znanja ne moze biti smatrana inteligentnom.
Takodje, inteligentnom ne moze biti smatrana ni osoba (ili
masina) sa ogromnom kolicinom statickog znanja odnosno podataka, ali bez sposobnosti da to znanje obradjuje i da resava
probleme u vezi sa njim. Postoje i drugi aspekti inteligencije.
Jedan od njih je brzina obrade
10
1 Uvod
11
(ii)P (a)
(iii)Q(a).
1.1
12
1 Uvod
13
14
1 Uvod
Deo I
Logika i
logicko
programiranje
Glava 2
Iskazna logika
U iskaznoj logici promenljive reprezentuju iskaze. Iskazi mogu biti
kombino- vani u slozenije iskaze logickim veznicima. Iskazna
logika dovoljno je izrazajna za opisivanje i reprezentovanje mnogih
problema, ukljucujuci mnoge prakticne probleme, kao sto je, na
primer, dizajn integrisanih kola.
Iskazna logika ima tri aspekta: svoju sintaksu (ili jezik), svoju
semantiku (ili znacenje iskaza) i svoje deduktivne sisteme. I
semantika i deduktivni sistemi grade se nad isto definisanom
sintaksom, tj. nad istim skupom formula.
Centralni problemi u iskaznoj logici su ispitivanje da li je data
iskazna for- mula valjana (tautologija) i da li je data iskazna formula
zadovoljiva. Ovaj drugi problem poznat je kao problem SAT i on je
tipican predstavnik skupa NP-kompletnih problema.
Postoji vise metoda i pristupa za ispitivanje valjanosti i
zadovoljivosti. Neki od njih su semanticke, a neki deduktivne (tj.
sintaksno-deduktivne) prirode. Kljucna veza izmedu ova dva
koncepta je tvrdenje da je iskazna formula valja- na (sto je
semanticka kategorija) ako i samo ako je ona teorema (sto je
deduk- tivna kategorija). Zahvaljujuci ovoj vezi, sintaksa iskazne
logike (jezik iskazne logike),
njena semantika (konvencije o
znacenju formula) i njena deduktivna svojstva cine kompaktnu
celinu.
2.1
18
2 Iskazna logika
Umesto termina iskazna formula cesto cemo pisati krace formula ili
iskaz.
U daljem tekstu smatracemo (ako nije drugacije naglaseno) da
je skup P fik- siran. Elemente skupa P obicno oznacavamo malim
latinicnim slovima (even- tualno sa indeksima). Iskazne formule
obicno oznacavamo velikim latinicnim slovima (eventualno sa
indeksima). Skupove iskaznih formula obicno oznaca- vamo
velikim slovima grckog alfabeta (eventualno sa indeksima).
Logicke veznike zovemo i bulovskim veznicima ili, krace, veznicima.
Zapis
(A) citamo negacija A ili ne A. Zapis (A B) citamo A konjunkcija B ili A i
B.
ZapisA(A
B) citamo A disjunkcija B ili A ili B. Zapis (A B)
citamo
implikacija
ekvivalencija
B ili A B ili iz A sledi B. Zapis (A B) citamo A
ekvivalentno B.
Iskazna skupova
slova zovemo
i iskazne
iliiskaznim
iskazne varijable.
Elemente
Pa simbol
i {T, }
zovemopromenljive
atomickim
Simbol
T atomicka
citamo te, iskazna
citamo
nete.
Literal je
iskaznaformulama.
formula
koja je ili
formula ili negacija atomicke iskazne formule. Klauza je disjunkcija literala.
Ako su dve iskazne formule A i B sintaksno identicne (tj. ako su
jednake kao nizovi simbola), onda to oznacavamo A = B. Ako dve
iskazne formule A
i B nisu sintaksno identicne, onda to oznacavamo A = B.
Zagrade
se iskazna
koriste kako
bi se izbegla
visesmislenost.
Naime,
bez
zagrada,
formula
c ima dva se
moguca
tumacenja:
((a b) c)
i (a a
(b poljske
c)).b Visesmislenost
moze
izbeci
i
koriscenjem
prefiksne
notacije.
U
toj
notaciji,
iskazna
((a b)a c)
se Ipak,
zapisuje
a b c, a iskazna
formula (a
(b c))formula
se zapisuje
b c.
zbog citljivosti,
koristicemo
infiksni zapis, zapis iskaznih formula koji odgovara prethodnoj
definiciji. Da bismo izbegli koriscenje velikog broja zagrada
obicno izostavljamo spoljne za- grade i usvajamo konvenciju uz
koju u nekim iskaznim formulama neke za- grade mogu biti
izostavljene bez straha od visesmislenosti. Ta konvencija zasnovana je na prioritetu veznika i to na sledeci nacin (veznici su
poredani po
prioritetima od veceg ka manjem):
.
Definicija 2.2 Skup potformula formule A je najmanji skup formula koje zadovoljavaju sledece uslove:
19
2.2
2.2.1
Iv (T) = 1 i Iv () = 0;
Iv (A) = 1 ako je Iv (A) = 0 i Iv (A) = 0 ako je Iv (A) = 1;
Iv (A B) = 1 ako je Iv (A) = 1 i Iv (B) = 1; Iv (A B) = 0 inace;
Iv (A B) = 0 ako je Iv (A) = 0 i Iv (B) = 0 ; Iv (A B) = 1 inace;
Iv (A B) = 0 ako je Iv (A) = 1 i Iv (B) = 0 ; Iv (A B) = 1 inace;
Iv (A B) = 1 ako je Iv (A) = Iv (B); Iv (A B) = 0 inace.
Vrednost Iv (A) zovemo vrednoscu iskazne formule A u interpretaciji Iv .
Ako za valuaciju v vazi Iv (A) = 1, onda kazemo da je iskazna
formula A tacna u interpretaciji Iv i da je iskazna formula A tacna u
valuaciji v. Ako za valuaciju v vazi Iv (A) = 0, onda kazemo da je
iskazna formula A netacna u interpretaciji Iv . Moze se dokazati da se,
za odredenu valuaciju v, funkcijom Iv definisanom na navedeni
nacin, svakoj formuli pridruzuje (jedinstvena) vrednost (u toj
inter- pretaciji).
Definicija
Valuacija v je zadovoljavajuca
za za
formulu
A akov |je
v (A) = 1.
Kazemo i da2.4
je zadovoljavajuca
valuacija v model
A i pisemo
= IA.
Definicija 2.5 Iskazna formula A je zadovoljiva ako postoji valuacija koja je za nju
zadovoljavajuca. Formula A je valjana ili tautologija1 ako je svaka valuacija za nju
1
Rec tautologija grckog je porekla i sacinjena je od reci tauto (grcki isto) i logos
(grcki rec, reci). U bukvalnom prevodu, ,,tautologija znaci ,,reci isto.
U
lingivstickom smislu, kao i u svakod- nevnom jeziku, oznacava ponavljanje istog, rec
i istu stvar drugim recima, redudantnost (slicno, ali ne isto sto i pleonazam
pleonazam oznacava koriscenje suvisnih reci prilikom ukazivanja na neki pojam).
Opisani pojam tautologije razlikuje se od pojma tautologije u logici. U savremenim
evropskim jezicima rec tautologija prvi put se javlja u sesnaestom veku.
20
2 Iskazna logika
Zadaci
Zadatak 1
21
2.2.2
Istinitosne tablice
22
2 Iskazna logika
A
0
0
1
1
B
0
1
0
1
AB
AB
AB
AB
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
q
0
1
0
1
p
1
1
0
0
q
1
0
1
0
q p
1
1
0
1
pq
1
1
0
1
(q p) (p q)
1
1
1
1
Dakle, data formula je zadovoljiva i valjana. Ona nije poreciva i nije kontradikcija.
Primer 2.5 Istinitosna tablica moze biti zapisana u skracenom obliku
zapisivanjem samo zadate iskazne formule i odgovarajucih vrednosti ispod
pojedinacnih iskaznih slova i veznika. Iskaznoj formuli iz prethodnog primera
odgovara sledeca skracena istinitosna tablica (popunjena u nekoliko koraka):
(
q
0
1
0
1
p)
0
0
1
1
(p
0
0
1
1
q)
0
1
0
1
(
1
0
1
0
q
0
1
0
1
1
1
0
0
p)
0
0
1
1
(p
0
0
1
1
1
1
0
1
q)
0
1
0
1
23
( q
1
0
0 1
1 0
0 1
1
1
0
1
1
1
0
0
p)
0
0
1
1
(p
0
0
1
1
1
1
0
1
q)
0
1
0
1
( q
1 0
0 1
1 0
0 1
1
1
0
1
1
1
0
0
p)
0
0
1
1
1
1
1
1
(p
0
0
1
1
1
1
0
1
q)
0
1
0
1
Zadaci
Zadatak 8 Ispitati metodom istinitosnih tablica da li je iskazna formula ((q p)
p) p zadovoljiva.
Zadatak 9 Ispitati metodom tablica da li je iskazna formula (p (q r)) ((p
q) (p r)) tautologija.
Zadatak
10
NekaD
su A, B, C, D Dokazati,
iskazne formule
takve da
su formule
A (B
C)
i
(A
C)
koriscenjem
istinitosnih
tablica,
da
je i formula (D
A) tautologije.
B tautologija.
q) A) tautologija.
Zadatak
12 Odrediti,
istinitosnih
tablica,
(akotautologija.
postoji) formulu A takvu
da je formula
((p (koriscenjem
q r)) A)
(A ((r
q) p))
24
2 Iskazna logika
(a) Ako je formula valjana, onda je ona ta cna u svakoj
valuaciji pa i u svakom modelu praznog skupa formula, te
je ona logicka posled- ica praznog skupa formula. Svaka
valuacija je model za prazan skup formula, pa ako je
formula logicka posledica praznog skupa formula, onda je
ona tacna u svakoj valuaciji, te je valjana.
(b)Ako je skup
kontradiktoran, onda on nema nijedan
model. Vazi da je svaki model iz tog (praznog!) skupa
modela model za proizvoljnu formulu, pa je proizvoljna
formula logicka posledica skupa .
(c) Pretpostavimo
da va za
zi model
i |i= za
A. Iz
|= A sledi
je
proizvoljanmodel
model
A. Kako
je da
,
proizvoljan
za
je model za , pa i za A. Dakle, vazi |= A.
Definicija
2.8 Kazemo Ada su
dve je iskazne
formule A i B logicki
ekvivalentne
ako
i obratno (tj. akoi pisemo
vazi A |= B i B
B |=
A). svaki model formule A model i za B
Akokojoj
je svaki
model
za A istovremeno
i model za
B i obratno,
onda
u
bilo
valuaciji
formule
A i B imaju jednake
vrednosti.
Tvrdenja
oblika
A Bje,
zovemo
Relacija
oci- logickim ekvivalencijama (ili krace ekvivalencijama).
gledno, relacija ekvivalencije nad skupom iskaznih formula.
Teorema 2.3 Vazi A B ako i samo ako je iskazna formula A B tautologija.
Dokaz:formule
Pretpostavimo
daistu
vazi
A B.
proizvoljnoj
valuaciji
A isledi
B imaju
vrednost,
pa jeU formula
A B
tacna
uv
v.
Odatle
da
je je
A
B tautologija.
Pretpostavimo
da je A
B
tautologija.
Ako
u
proizvoljnoj valuaciji v formula A tacna, onda mora da je i B
tacna u v
(jer je formula A B tacna u v). Dakle, svaki model za A je
model i za
B. Analogno vazi obratno svaki model za B je model i za A,
te sledi
A B, sto je i trebalo dokazati.
Primer 2.6 Neke od logickih ekvivalencija (ili, preciznije, neke od shema logickih ekvi-
25
valencija) su:
A
A A
AA
AA
AB
AB
AB
A (B C)
A (B C)
A (B C)
A (A B)
A (A B)
A (B C)
(B C) A
A (B C)
(B C) A
(A B)
(A B)
AT
AT
A
A
T
A
A
BA
BA
BA
(A B) C
(A B) C
(A B) C
A
A
(A B) (A C)
(B A) (C A)
(A B) (A C)
(B A) (C A)
A B
A B
A
T
26
2 Iskazna logika
Zadaci
Zadatak 13
Zadatak 14
Zadatak 15
(a)
(b)
(c)
(d)
A1 A2
A1 B1 A2 B2
A1 B1 A2 B2
A1 B1 A2 B2
(e) A1 B1 A2 B2.
Zadatak 16
Ako je iskazna formula A tautologija koja sadrzi iskazna slova p1 , p2 ,
. . . , pn i ako su A1, A2, . . . , An proizvoljne iskazne formule, onda je iskazna formula
B = A[p1 A1, p2 A2, . . . , pn An] takode tautologija.
Zadatak 17 Ako C nije potformula iskazne formule A, onda je A[C D] = A.
Zadatak 18 Dokazati da iz A A[C D] ne sledi C D.
27
Primer 2.8
x1
1
0
1
0
x2
1
1
0
0
f (x1, x2)
0
1
1
1
A
B
B
(A
AB)
B (B A)
A B (A B)
eliminisati
pojavljivanja
veznika
i . Dobijena
formula
sadrzace,sva
dakle,
samo veznike
i .,Kazemo
da je skup
veznika {, } potpun, jer je
svaka
iskazna
logicki
ekvivalentna
nekoj iskaznoj
formuli
samo
ova formula
dva veznika
i bez
logickih konstanti
T i . Kako
je
skup {nad
, } potpun,
sledi
da
je
svaka
istinitosna
funkcija
generisana
nekom
iskaznom
formulom
potpun. koja sadrzi samo veznike i . Skup {, } je, takode,
i B definisu
se(A
na B).
sledeci
nacin:
B jedefinicije
jednako
(AVeznici
B),
a A
je
jednako
Naglasimo
daAsusmatrati
ove
cisto
sintaksne
prirode
i
da
zapis
A
B
mozemo
samo
kracim zapisom formule (A B). Veznik
zovemo
nili ili Lukasijeviceva funkcija, a veznik zovemo ni ili S eferova
funkcija.
za i . Na osnovu datih definicija mogu se izvesti istinitosne tablice
A
0
0
1
1
B
0
1
0
1
AB
1
0
0
0
AB
1
1
1
0
Lako skup
se pokazuje
A (A sledi
A) i Ada
Bjepotpun
((A A)i
(B {}B)).
Kako
veznikada
{, je
} potpun,
skup
. Isto
vazi je
i za skup
{}.
Teorema 2.5 Veznici i su jedina dva binarna veznika koja sama (pojedinacno)
cine potpun sistem.
Teorema2.5je specijalni slu caj tvrdenja za veznike proizvoljne
arnosti [?].
Zadaci
Zadatak 19 Dokazati da {, } i {, } nisu potpuni skupovi veznika.
Zadatak 20
Svaki stanovnik jedne drzave ili uvek laze ili uvek govori istinu i
na svako pitanje odgovara uvek samo sa da ili ne. Neki turista dolazi na
raskrsnicu u toj drzavi i zna da samo jedan od dva puta vodi do glavnog grada.
Ne postoji znak koji pokazuje koji je to put, ali postoji mestanin R koji stoji na
raskrsnici. Koje da-ili-ne pitanje treba turista da postavi da bi odredio kojim
putem da krene?
28
2 Iskazna logika
= 2
(A)
(A B)
= (A) (B)
(A B)
(A) + (B) + 1
29
Algoritam: KNF
Ulaz: Iskazna formula F
Izlaz: Konjunktivna normalna forma formule F
1. Eliminisati veznik koristeci logicku ekvivalenciju
A B (A B) (B A).
2. Eliminisati veznik koristeci logicku ekvivalenciju
A B A B.
3. Dok god je to moguce, primenjivati logicke ekvivalencije
(A B) A B i (A B) A B.
4. Eliminisati visestruke veznike koristeci logicku
ekvivalenciju
A A.
5. Dok god je to moguce, primenjivati logicke ekvivalencije
(A (B C)) ((A B) (A C)) i
Figure 2.1: Algoritam KNF
Naglasimo da transformisanje formule u njenu konjunktivnu
normalnu for- mu moze da da
formulu cija je duzina
eksponencijalna u funkciji duzine po- lazne formule. Na primer,
transformisanjem formule
(A1 B1) (A2 B2) . . . (An Bn)
(koja ima n disjunkata) u njenu konjunktivnu normalnu formu, dobija
se for- mula koja ima 2n konjunkta.
Transformisanje formule u disjunktivnu normalnu formu opisuje se
algo- ritmom analognim algoritmu KNF.
Zadaci
Zadatak 22 Odrediti konjunktivnu normalnu formu i disjunktivnu normalnu formu
za formule:
(a) (A B) (A C)
(b) A (B A)
(c) ((A B) (C A)) (B C)
(d) ((((A B) A) B) C) C
(e) (A (B C)) ((A C) (A B))
Zadatak 23 Odrediti kanonsku disjunktivnu normalnu formu formule
(A B) ((B C) (A C)).
Zadatak 24 Odrediti kanonsku konjunktivnu normalnu formu formule
(C A) ((B C) A).
30
2 Iskazna logika
Zadatak 25
31
Algoritam: DPLL
Ulaz: Multiskup klauza D (D = {C1, C2, . . . ,
Cn}) Izlaz: DA, ako je multiskup D
zadovoljiv;
NE, ako multiskup D nije zadovoljiv
1. Ako je D prazan, vrati DA.
2. Zameni sve literale sa T i zameni sve literale
T sa . 3.Obrisi sve literale jednake .
4. Ako D sadrzi praznu klauzu, vrati NE.
5.literal
Ako nekanjegovu
klauza negaciju,
Ci sadrzi
literal
T ili sadrzi
i neki
vrati
vrednost
koju vraca
DPLL(Di \ C
i ) (tautology).
6.slovu
Ako jep,neka
klauza
jedinicna
i jednaka
nekom iskaznom
onda
vrati jevrednost
koju
vraca DPLL(D[p
T]);
ako
je neka
klauza
dinicna
i jednaka
p, gde
je pneko
iskazno
slovo,
onda
vrati
vrednost
koju
vraca
DPLL(D[p
]) (unit propagation).
7.i Ako
D
literalvrednost
p (gde je
p neko
iskazno
slovo),aTne
literal
p,sadrzi
onda
vrati
koju
vraca
DPLL(D[p
]);
ako
D sadrzi
literal
p
(gde
je
p
neko
iskazno
slovo),
a
ne
i
literal
p,
vrati vrednost koju vraca DPLL(D[p T]) (pure onda
literal).
8.vrati
Ako vrednost
DPLL( koju
D[p vraca
T]) vraca
DA, onda
DPLL(D[p
]) vrati
(gde DA;
je p inace
jedno
od iskaznih
slova koje
se javljaju u D) (split).
Zadaci
Zadatak
26 Primenom
ispitati
zadovoljive:
(a) (p DPLL
r) ((qalgoritma
r) (p
q dar))li su sledece formule
(b) ((p r) ((q r) (p q r)))
Zadatak 27 Primenom DPLL algoritma ispitati da li je formula (p q r) (p
q r) (p q r) zadovoljiva, tautologija, poreciva, kontradikcija.
2.2.7
32
2 Iskazna logika
33
(O1 O2) (O1 O3) (O1 O4) (O2 O3)(O2 O4)(O3 O4).
34
2 Iskazna logika
Glava 3
1
U logici viseg reda predikati i funkcije kao argumente mogu imati druge
predikate i funkcije i dozvoljeno je njihovo kvantifikovanje. Na primer, u logici drugog
reda predikati i funkcije mogu za argumente imati predikate i funkcije prvog reda i
mogu biti kvantifikovani. Predikati i funkcije
reda n mogu za argumente imati predikate i funkcije n 1 reda i mogu biti
kvantifikovani.
36
3.1
}; 5.skup pomocnih
simbola {(, ), ,}.
Elemente nabrojanih skupova zovemo logicki simboli.
Recnik ili signatura L sastoji se od najvise prebrojivih skupova i , koje
redom
nazivamo
skupom
funkcijskih
simbola
skupom
(relacijskih)
simbola,
kao i od funkcije
ar koja ipreslikava
skuppredikatskih
u skup
nenegativnih
celih
brojeva.
simbola k. Presek
svaka
dvaZa
od k , vrednost ar(k) zovemo stepen ili arnost
skupova , , skupa promenljivih, skupa logickih veznika, skupa kvantifikatora,
skupa logickih konstanti i skupa pomocnih simbola je prazan. Funkcijske simbole
arnosti 0 zovemo simbolima konstanti. Skupovi i cine nelogicki deo
jezika prvog reda, a sve njihove elemente zovemo nelogickim simbolima.
Za datu signaturu
L = (, , ar)
rec nad L je bilo koji niz simbola iz skupova , ili logickog dela jezika.
Uz indeks ili bez indeksa, obicno oznacavamo sa:
a, b, c, . . . simbole konstanti;
f, g, h, . . . funkcijske simbole arnosti vece od 0;
p, q, r, . . . predikatske simbole;
x, y, z, . . . promenljive.
Definicija 3.2 Skup termova nad signaturom L = (, , ar) i skupom promenljivih
V je skup za koji vazi:
37
zovemo
negacija,
veznik
citamo
konjunkcija,
disjunkcija,
implikacija
ekvivalencija.
Zapis
)A
negacija
ili neveznik
A. AZapis
(A BBili)i
citamo
A konjunkcija
B)(A
ili
i B . Zapis
(A BA)Bcitamo
disjunkcija
A
ili
B
.
Zapis
(
A
B
citamo
A
implikacija
ili
iz
A
sledi
B
.
Zapis
(citamo
A B )zacitamo
ekvivalencija
ili A ekvivalentno
B . da
Zapis
svako x A.AZapis
((x)A)Bcitamo
postoji x takvo
je A. ((x)A)
Ako su dve
dobro
zasnovane
A i B sintaksno
identicne
(tj. Aako
jednake
kao formule
nizovi simbola),
onda to
oznacavamo
= Bsu
. Ako
dve dobro
zasnovane formule A i B nisu sintaksno identicne, onda to
oznacavamo A = B.
Termove, atomicke formule i dobro zasnovane formule nad
signaturom L
ponekad cemo krace zvati i L-termovi, L-atomicke formule i
L-formule.
Bazni term je term koji ne sadrzi nijednu promenljivu. Bazna formula
je formula koja ne sadrzi nijednu promenljivu.
Literal je atomicka formula ili negacija atomicke formule.
Klauza je dis- junkcija literala.
Da bismo izbegli koriscenje velikog broja zagrada obicno
izostavljamo spolj- ne zagrade i usvajamo konvenciju uz koju u
nekim dobro zasnovanim formu- lama neke zagrade mogu biti
izostavljene i to na isti nacin kao i za iskazne formule, pri cemu
kvantifikatori imaju veci prioritet od svih logickih veznika.
Kazemo
dasadrzi
formula
A odreduje
ili indukuje
signaturu
L, ako
signatura
koja
sve
funkcijske
i predikatske
simbole
iz Ajei L
nijedan vise.
Definicija 3.5 Funkcija c iz skupa dobro zasnovanih formula u N svakoj dobro zasnovanoj formuli pridruzuje slozenost na sledeci nacin:
38
x)
A
(tada
kazemo
da
je xu
u
dosegu
kvantifikatora); pojavljivanje promenljive x u (x)
formuli
(x)Avodeceg
je
vezano; analogno za egzistencijalni kvantifikator.
Definicija 3.7 Promenljiva je vezana (slobodna) u formuli ako i samo ako ima
vezano (slobodno) pojavljivanje u toj formuli.
Primetimo da promenljiva moze biti i slobodna i vezana u jednoj
formuli.
Primer 3.1 U formuli p(x, y), pojavljivanje promenljive x je slobodno i ona je slobodna u ovoj formuli.
U formuli p(x, y) (x)q(x) prvo pojavljivanje promenljive x je slobodno, a
drugo i trece pojavljivanje je vezano. U ovoj formuli, promenljiva x je i slobodna i
vezana.
U formuli (x)p(x, y) (x)q(x), sva pojavljivanja promenljive x su vezana i
promenljiva je vezana u ovoj formuli.
U sva tri primera, pojavljivanja promenljive y su slobodna.
Primer
x)(p(x) (x)q(x))
pojavljivanje
vezano i 3.2
ono U
je uformuli
dosegu(kvantifikatora
x, a ne cetvrto
i kvantifikatora
x. promenljive x je
39
C esto
pokazivati
da formula A ima slobodne promenljive
x
. ., xcemo
1 , x2 , . da
n zapisom
znaci
formula
A A(x1 , x2 , . . . , xn ). Ovaj zapis, medutim, ne
ne
sadrzi
znaci da
promenljive
xjos
.1,. x.,2, x. n.slobodne
neka vezana niti
pojavljivanja
u
1 , xA
2 ,(xneke
formuli
A. Zapis
.nemaju
, xn) je i promenljive,
pogodan, jer mozemo
da usvojimo
konvenciju da kao A(t1 , t2 , . . . , tn ) zapisujemo formulu dobijenu zamenjivanjem svih slobodnih pojavljivanja promenljivih x1, x2, . . . , xn redom termovima t1, t2, . . . , tn.
L-formulu bez slobodnih promenljivih zovemo zatvorena L-formula ili
Lrecenica.
Za formulu
A kazemo
zatvorena
ako je oblika kao
(x1 )(
(slobodne
xk )Ar , gde
je xi V
(i = 1, 2, .da
. . ,jek)univerzalno
i Ar ne sadrzi
kvantifikatore
nix2 ) . . .
promenljive osim (eventualno) promenljivih x1, x2, . . . , xk. Formula
r
A
je egzis- tencijalno
rako je oblika (x1 )(x2 ) . . . (xk )A gde je
x
1, 2, . (even.zatvorena
. , k) i A
ne sadrzi
kvantifikatore
kao
ni
slobodne
i V (i = osim
promenljive
tualno)
promenljivih
x
,
x
,
.
.
.
,
Ako
formula A ima kao slobodne samo promenljive 1x1 , 2x2 , . . . , xxkk. onda
formulu
(
x
)(
x
)
.
.
.
(
x
)
A
nazivamo
univerzalnim
zatvorenjem
formule
1
2
k
A
i krace
je oznacavamo
. Ako formulu
formula A
kao slobodne
samo
promenljive
x1 , x2 , . .sa
. , xk ,Aonda
(xima
1 )(x2 ) . . . (xk )A
nazivamo
sa A. egzistencijalnim zatvorenjem formule A i krace je oznacavamo
Zadaci
Zadatak 28 Zapisati narednu recenicu u vidu dobro zasnovane formule logike
prvog reda:
(a) Svako voli nekoga i niko ne voli svakoga ili neko voli svakoga i neko ne voli nikoga.
(b) Mozete lagati neke ljude sve vreme i mozete lagati sve ljude neko vreme, ali ne
mozete lagati sve ljude sve vreme.
3.2
3.2.1
U
nastavku cemo da
smatrati
da se
segovori
podrazumeva
(i kada
to onije
eksplicitno
se,signaturu
kada
o formulama,
govori
formulama receno)
za neku fiksnu
L i fiksan
skup promenljivih
V . LDefinicija 3.8 Za datu signaturu L, L-struktura D je par (D, IL), gde je D skup, a
I L funkcija pri cemu vazi sledece:
D je neprazan skup i zovemo ga domen, nosac ili univerzum;
svakom simbolu
konstante c iz L (tj. svakom funkcijskom simbolu arnosti
0), funkcija I L pridruzuje jedan element cI iz D;
40
strukturom
D i valuacijom v, oznacavamo sa Iv (t) i definisemo na sledeci nacin:
ako
atomicka formula p(t1 , t2 , . . . , tn ) (pri cemu je ar(p) = n) i
ako
jeje) IA
v (ti ) = di za i = 1, 2, . . . , n (pri cemu je di D), onda je
Iv (A
=
pI (d1, d2, . . . , dn);
ako je A = B, onda je
Iv (A) =
0, ako
ako je
je IIvv ((B
B)) =
=0
1
1,
41
inace
Definicija
3.11 Ako A
je interpretacija
Iv odredena L-strukturom D i valuacijom v
izadovolako za Ljava
-formulu
vazi
Ije
v (A) = 1, onda kazemo da interpretacija Iv
formulu
A
,
da
formula
A tacna
u interpretaciji
v i da je
L
-struktura
D sa valuacijom
v model
formule
A i pisemo
(D, v)
|= (D,
A. Iv)
Formula
A
je
zadovoljiva
u
L
-strukturi
D
ako
postoji
valuacija
v
takva
da
je
|= A.
L
-formula
(D,
v) |= AA. je zado- voljiva ako postoje L-struktura D i valuacija v takve da je
Ako formula nije zadovoljiva, onda kazemo da je ona kontradiktorna.
Definicija
3.12interpretaciji
Ako je za neku
-strukturu
Dda
formula
A tacna D
za model
svaku valuaciju
v,
tj.
u svakoj
Ivvaljana
,L
onda
kazemo
je L-struktura
formule
A
,
kazemo
da
je
formula
A
u
L
-strukturi
D
i
pisemo
D
|= A.kazemo
Ako je
formula
nad
signaturom
L
valjana
u
svakoj
L
-strukturi,
onda
za
tu
formulu
da jeAko
valjana
i
to
zapisujemo
|
=
A
.
formula nije valjana, onda kazemo da je ona poreciva.
Ako nije D |= A, onda pisemo D |= A i kazemo da je D kontramodel za
A.
Analogne definicije uvodimo za skupove formula.
Definicija 3.13 Skup recenica je konzinstentan ili zadovoljiv ako ima bar
jedan model.
Inace, kazemo da je nekonzistentan, nezadovoljiv,
protivrecan ili kon- tradiktoran.
Teorema
Ako su formule A i A B (nad nekom signaturom L) valjane, onda je i
formula B3.1
valjana.
Dokaz:interpretacija
Pretpostavimo
postoje
L-struktura
D i odgovarajuca
Iv tacna
u da
kojoj
formula
B nije Itacna.
Formula
A je
valjana,
pa
je
i
u
interpretaciji
.
U1toj
interpretaciji,
v
onda,
formula
A
B
nije
tacna
(jer
je
I
(
A
)
=
i
I
(
B
)
=
0),
sto
v
v
protivreci
pretpostavci
da
je formula Ajeformula
B valjana.
Dakle,
polazna
pretpostavka
pogresna,
B dokazati.
tacna
u
svakoj interpretaciji,
tj. je
ona
je valjana,pa
sto je i trebalo
42
Teorema
A unad
je formula 3.2
(x)Formula
A valjana
D.signaturom L je valjana u L-strukturi D ako i samo ako
Dokaz:da
Pretpostavimo
je formula
A valjana
u D. Pretpostavimo
formula
(x)A da
nije
uA)D,
da postoji
valuacija
vw takva
dajejevaljana
Iv((x)
=tj.0.Ipretpostavimo
Odatle
sledi
da
postoji
valuacija
za
koju
w
v
i
vazi
(
A
)
=
0,
pa
formula
A
x
w
nije
valjana
u
D,
sto
je
u
suprotnosti
sa
pretpostavkom.
Dakle, formula (x)A je valjana u D.
Pretpostavimo
da je vformula
D. To znaci da
za
svaku
valuaciju
vazi
I(vx)
((postoji
Ax)valjana
A) =valuacija
1.u Pretpostavimo
formula
A
nije
valjana
u
D.
Tada
w takva dada
je
Ipretpostavkom.
w (A) = 0, pa je Iw ((x)A) = 0, sto je u suprotnosti sa
Dakle, formula A je valjana u D.
Teorema 3.3 Formula A je valjana ako i samo ako je formula (x)A valjana.
Dokaz:onda
Nekaje
je ona
A formula
nadu signaturom
L. Ako jeD,formula
valjana,
valjana
svakoj LL-strukturi
-strukturi
pa je Aonda,
na
osnovu
teoreme3.2
, ui svakoj
D valjana
i formula
(samo
x)A. Analogno
vazi
obratno,
pa
je
formula
A
valjana
ako i
ako
je
formula
(x)A
valjana.
Zadaci
Zadatak 29
Zadatak 30
fI
b
a
a
pI
a
b
c
a
1
1
0
b c
1 0
0 1
0 1
43
Zadatak
35Dokazati
da su
formule valjane:
(a) (x)(
y)A (y)(
x)naredne
A
(b) ((x)(AB )) (A(x)B ), pri cemu promenljiva x nije slobodna u A.
Zadatak
36ADokazati
da naredne formule nisu valjane:
(a) (x)
1 (x)A2 (x)(A1 A2)
(b) (x)A1 (x)A2 (x)(A1 A2 )
Zadatak 37 Dokazati da formula (x)(y)p(x, y) (y)(x)p(x, y) nije valjana.
Zadatak 38 Dokazati da je sledeca formula valjana:
((x)A) B (x)(A B )
pri cemu formula B nema slobodnih pojavljivanja promenljive x. Dokazati da data
formula nije valjana ako se izostavi navedeni dodatni uslov.
44
(c)Ako je i |= A, onda je |= A.
Definicija 3.15 Kazemo da su formule A i B logicki ekvivalentne i pisemo A B
ako je A logicka posledica formule B i B je logicka posledica formule A.
Akokojoj
je svaki
model
za A istovremeno
i model za
B i obratno,
onda
u bilo
valuaciji
formule
A i B imaju jednake
vrednosti.
Tvrdenja
oblika
B ocigledzovemo logickim ekvivalencijama (ili krace ekvivalencijama).
RelacijaA je,
no, relacija ekvivalencije nad skupom formula.
Teorema 3.9 Ako za L-formule A1 , A2 , B1 i B2 vazi A1 A2 i B1 B2 , onda je:
(a) A1 A2
(b) A1 B1 A2 B2
(c) A1 B1 A2 B2
(d) A1 B1 A2 B2
(e) A1 B1 A2 B2
(f) (x)A1 (x)A2
(g) (x)A1 (x)A2
Teorema
Za datu
signaturu
L, dve L-formule A i B su logicki ekvivalentne ako
i samo ako 3.10
je formula
A
B valjana.
Primer
3.3 Moze
se dokazati
da za proizvoljnu
L-formulu
A Ivazi
(x)A
(i dokazimo
x)A. Neka
jeonda
D proizvoljna
L-struktura.
Pretpostavimo
da vazi
v ((x)A) = 1
da
vazi
i
I
1.
Iz
I
v ((x)A) =
v ((x)tA) = 1 sledi Iv ((x)A) =
r
r
0,
pa uvaluaciji
svakoj valuaciji
v da
, takvoj
je v x Iv,t (vazi
Iv (A) = 0. To znaci da u
svakoj
v r , takvoj
je v rv rda
x v, vazi
v A) = 1, a odatle sledi da u svakoj
rr , takvoj
rr
valuaciji
v
da
je
v
,
vazi
I
x
v tt ((x)A) = 1, pa i u valuaciji v, tj. Iv
((
x)IA()(=x)
1,Asto
sledi
) =je1)i trebalo dokazati. Drugi smer tvrdenja (da iz Iv ((x)A) = 1
v
dokazuje se analogno.
Primer 3.4 Neke od logickih ekvivalencija logike prvog reda (ili, preciznije, neke
od shema logickih ekvivalencija logike prvog reda) su:
(x)A
(x)A
(x)(A B)
(x)(A B)
(x)(A B)
(x)A
(x)A
(x)A (x)B
(x)A (x)B
(x)A B
(x)(A B)
(x)A B
De Morganov zakon
De Morganov zakon
zakon distributivnosti prema
zakon
distributivnosti prema
zakon
distributivnosti prema
pojavljivanja promenljive x)
Definicija
3.16 Term dobijen
(supstitucijom)
promenljive
x termom tx
u termu t oznacavamo
sa t[x zamenom
tx ] i definisemo
na sledeci
nacin:
45
T [x tx] = T;
[x tx] = ;
ako je A = p(t1, t2, . . . , tn), onda je A[x tx] = p(t1[x tx], t2[x
tx], . . . , tn[x tx]);
ako
y,)[x
neka
promenljiva
ni u (y)A ni u tx ;
tadajejex(=y A
jetxz] =
(z)A[y koja
z][xsene
tpojavljuje
x ];
ako
y,)[x
neka
promenljiva
ni u (y)A ni u tx ;
tadajejex(=y A
jetxz] =
(z)A[y koja
z][xsene
tpojavljuje
x ].
Primetimona
daprimer,
poslednja
pravila
prethodnoj
obezbeduju,
da dva
((y)p(x,
y))[xu
y] ne budedefiniciji
(y)p(y, y) vec
(z)p(y, z).
Primer 3.5 Vazi:
(x)A
(y)(A[x y])
zakon
o preimenovanju
vezane
promenljive
(pri cemu A
ne sadrzi
slobodna pojavljivanja promenljive y)
(x)A
(y)(A[x y])
46
Definicija
3.18[xUopstena
zamena (supstitucija) je skup zamena [x1 t1 ],
[x
n tn ] gde su xi promenljive i ti su proizvoljni termovi i gde je xi
= 2xjzat2i],=. .j.., Takvu
zamenu zapisujemo krace [x1 t1 , x2 t2 , . . . , xn tn ].
Uopstena zamena primenjuje se simultano na sva pojavljivanja promenljivih x1,
x2, . . ., xn u polaznom izrazu i samo na njih (tj. ne primenjuje se na podtermove
dobijene zamenama).
U daljem tekstu cemo umesto termina uopstena zamena (uopstena
supstitucija) koristiti termin zamena (supstitucija).
Izraz koji je rezultat primene zamene nad izrazom E,
oznacavamo sa E.
Ocigledno, iz zamene [x1 t1 , x2 t2 , . . . , xn tn ] se
mogu
xi . (ali ne moraju) izostaviti sve pojedinacne zamene oblika xi
Primer 3.6 Za = [x f (y)] i s = g(a, x) vazi s = g(a, f (y)).
Za = [x f (x)] i s = g(a, x) vazi s = g(a, f (x)).
Za = [x f (y), y a], s = g(a, x) i t = g(y, g(x, y)) vazi s = g(a, f (y))
i
t = g(a, g(f (y), a)).
Ukoliko u zameni = [x1 t1, x2 t2, . . . , xn tn] nijedan od
termova ti ne sadrzi nijednu od promenljivih xj (sem, eventualno,
ako je ti = xi za neko i), onda je efekat te zamene jednak efektu
sukcesivno primenjenih pojedinacnih zamena. Supstitucija je
idempotentna (tj. za bilo koji izraz E vazi E = (E)) ako i
samo ako vazi taj uslov da nijedan od termova ti ne sadrzi
nijednu od promenljivih xj (sem, eventualno, ako je ti = xi za
neko i).
Definicija
3.19 Za supstitucije = [x1 t1, x2 t2, . . . , xn tn] i =
[y
1 s 1, y2 s 2, . . . , ym sm], kompozicija supstitucija je
supstitucija
[x1 su
izbrisane
t1, x2
t2, . . . , xn tn, y1 s1, y2 s2, . . . , ym
s
sm] jeizykoje
, gde
= x za
neko j. zamene oblika xi xi, kao i zamene oblika yi
i
47
ako
Bje2]formula
= A; A atomicka formula i nije instanca formule B1 , onda je A[B1
(A)[B1 B2] = (A[B1 B2]);
(A B)[B1 B2] = (A[B1 B2] B[B1 B2]);
(A B)[B1 B2] = (A[B1 B2] B[B1 B2]);
(A B)[B1 B2] = (A[B1 B2] B[B1 B2]);
(A B)[B1 B2] = (A[B1 B2] B[B1 B2]);
(xA)[B1 B2 ] = (x)(A[B1 B2 ]);
(xA)[B1 B2 ] = (x)(A[B1 B2 ]).
Naglasimo daproblem
smo u prethodnoj
definiciji datompromenljivih
restrikcijom u
pojednostaslobodnih pojavljivanjima
formulama Bvili
1 i B2. Osnovna svrha koncepta zamene formule formulom je u zameni formule
logicki ekvivalentnom formulom i za tu svrhu je data definicija
dovoljna.
Teorema 3.11 (Teorema o zameni) Ako vazi B1 B2 , onda je A A[B1 B2 ].
Primer 3.8 Neke od logickih ekvivalencija logike prvog reda (koje proizilaze iz iskazne
logike) su (videti i primer2.6):
zakon dvojne negacije
A A
zakon iskljucenja treceg
A A T
(A B) (B A) zakon komutativnosti za
Primer 3.9 Vazi (x)(AB ) (x)(AB) (x)(AB) (x)(A
B)
(x)(A
). Iz
x)(
B)A(Bx)(
A B ), na osnovu teoreme3.10 sledi da
je formula
(B
x)(
A
(B
)A
(x)(
) valjana.
Zadaci
Zadatak 39
Zadatak 40
48
(((y)q(y)
i u Na
(x)(p(x)
(y)q(y))(ix)p(x)
u (y)
x)p(x) moguce
q(y)). Obe
ove formule su, naravno, logicki ekvivalentne sa polaznom formulom.
Ipak, u situaci- jama kada je moguce ,,pomeriti i univerzalni i
egzistencijalni kvantifikator, uvek cemo radije ,,pomeriti najpre
egzistencijalni, a onda univerzalni. Takav prioritet uvodimo zarad
jednostavnijeg koraka skolemizacije (o kojem ce biti reci u
nastavku). Naglasimo da univerzalni i egzistencijalni kvantifikator
ne
Algoritam: PRENEX
Ulaz: Zatvorena dobro zasnovana formula A
Izlaz: Preneks normalna forma
formule A
1. Dok god je to moguce, primenjivati logicke ekvivalencije
A B (A B ) (B A ) i
A B A B.
2. Dok god je to moguce, primenjivati sledece logicke
ekvivalencije:
(A B) A B,
(A B) A B,
(x)A (x)A,
(x)A (x)A.
3. Eliminisati visestruke veznike koristeci zakon dvojne
negacije:
A A.
4. Dok god je to moguce, primenjivati sledece logicke
ekvivalencije:
(xA) B (x)(A B),
(xA) B (x)(A B),
49
50
x1 x2 . . . xn A
gde je A formula bez kvantifikatora koja je u konjunktivnoj normalnoj formi i A
nema slobodnih promenljivih osim, eventualno, promenljivih x1, x2, . . . , xn.
Ako izostavljaju
je formula xkvantifikatori
formi,
onda se cesto u
1 x2 . . . xn A ui klauzalnoj
zapisu
piseformule
samo
A
da se misli
na uni- verzalno zatvorenje
A,. podrazumevajuci
Ne postoji
za
svaku recenicu
formula
je u klauzalnoj
formi
i(x)p(x)
koja
joj
logicki
ekvivalentna.
Nakoja
primer,
za recenicu
nejepostoji
formula
koja
je u moze
klauzalnoj
formi i koja
je logicki
ekvivalentna.
Medutim,
se dokazati
da da
zajojjesvaku
recenicu
A ipostoji
formula
B u klauzalnoj
formi
takva
ATozadovoljiva
ako
samo
ako je B zadovoljiva
(videti
teoremu3.15).
51
je dovoljno
i pogodno recenice
za ispitivanje
zadovoljivosti
formula
ako se
ispituje
A, dovoljno
je ispitati
zadovoljivost
formule zadovoljivost
B koja je u
klauzalnoj
(pogodnoj
za neke
metode)
zadovoljiva
je ako i
samo
ako jeformi
zadovoljiva
A. Uslov
da je iformula
A zadovoljiva
ako
i samo
ako
B slaba formula
zadovoljiva
zovejese
ekvivalencija.
Transformisanje
recenice
formulu
B koja
u klauzalnoj
formi
i kojaeliminisanje
je zadovoljiva
akoA u
i samo
ako
je Ajezadovoljiva
ukljucuje
egzistencijalnih kvantifikatora. Ono se zasniva na izmeni polazne
signature doda- vanjem novih funkcijskih simbola. Te dodatne
funkcijske simbole zovemo Skolemovim konstantama (za funkcijske
simbole arnosti 0) i Skolemovim funkci- jama, a proces eliminisanja
egzistencijalnih
kvantifikatora
zovemo
skolemizacijom
(po
matematicaru Skolemu koji ih je prvi koristio). Prvi korak je transformisanje formule u preneks normalnu formu. Drugi korak je
transformisanje dela formule bez kvantifikatora u konjunktivnu
normalnu formu. Nakon toga, postupkom skolemizacije eliminisu
se egzistencijalni kvantifikatori, jedan po jedan, sleva nadesno.
Pretpostavimo da recenica pocinje egzistencijalnim
kvantifikatorom: y A.
Treba
izabrati
novi
simbol konstante
koji se ne y pojavljuje
u
signaturi,
obrisati
kvantifikator
i zamenitid promenljivu
simbolom
d.
Na
taj nacin
formula
y A
transformise
se u formulu
A
[y ako
d].
Moze
se
dokazati
da
je
formula
y
A
zadovoljiva
ako
i
samo
je formula A[y d] zadovoljiva.
Ako recenica pocinje nizom univerzalnih kvantifikatora: x1 x2 . . .
xn y A,
onda
uvodimo
novi funkcijski
simbol bice
f arnosti
do tada nije
postojao
Polazna
ondan koji
transformisana
u
formulu
xu1 xsignaturi.
[yn yAf zadovoljiva
(xformula
se dokazati
da
1 , x2 , . . . , x
n )]. i Moze
je
x21[y. x. 2.. xf.n(x
. Ax
ako
samo ako
je formula
x1 formula
x2 . . . xnA
,
x
,
.
.
.
,
x
)]
1
2
n
zadovoljiva. (Primetimo da je uvodenje nove konstante samo
specijalni slucaj uvodenja novog funkcijskog simbola.)
Teorema
3.13 (Teorema
o skolemizaciji)
Ako je formula
signaturom
Lr dobijena
skolemizacijom
od recenice
A nad
L kojaBjenad
u preneks
normalnoj
formi, onda
je A zadovoljiva
ako i samo
akosignaturom
je B zadovoljiva.
Primer 3.12 Skolemizacijom se formula
52
p(c,
c),
gde
je
c
novi
simbol
konstante.
Neka
je
L
signature L simbolom c. Pokazimo da je formula p(x, x) p(c, c) nezadovoljiva.
Pretpostavimo suprotno pretpostavimo
da navedena formula
ima model. t Neka je
t
t
to Lr-struktura D = (D, IL ) sa valuacijom v. Neka je IL (p) = pI i IL (c) = cI.
Vazi
Iv (p(x, x)
p(c,dac))
1 tj. Iv ((x)(p(x, x) p(c, c))) = 1, pa za
svaku
valuaciju
w
takvu
je wje=w(x)
x v vazi Iw (p(x, x) p(c, c)) = 1. To, dakle,
vazi
i
za
valuaciju
w
u
kojoj
= cI . Iz Iw (p(x, x) p(c, c)) = 1 sledi Iw
(p(x, x)) = 1
isledi
Iw (p(c,
= 0.
Iz sto
Iw (p(x,
x)) = 1 slediDakle,
pI (cI, formula
cI ) = 1,p(x,
a iz x)
Iw
(p(c,
c)) c)
= je
0
pI (cc))
= je
0,
je kontradikcija.
p(c,
I , cI )pa
nezadovoljiva,
polazna
formula A valjana.
Zadaci
Zadatak
45 Odrediti
klauzalne
forme
za formule:
(a)
(b) ((x)
x)A
A11 ((x)
x)A
A22
((x)(
x)(A
A11 AA22))
(c) (x)(y)A (y)A(f (y), y)
3.2.4 Unifikacija
Problem unifikacije je problem ispitivanja da li postoji supstitucija koja
cini dva izraza (dva terma ili dve formule) jednakim. Unifikacija se
prvi put pominje u radovima Posta, a zatim i u radovima Erbrana.
Definicija 3.25 Ako su e1 i e2 izrazi i ako postoji supstitucija takva da vazi e1 =
e2 , onda kazemo da su izrazi e1 i e2 unifikabilni i da je supstitucija unifikator
za ta dva izraza.
53
54
3.
Ako je x promenljiva i t term koji nije
promenljiva i ako se t = x pojavljuje u nizu jednakosti,
zameni jednakost t = x sa x = t. Ovo uraditi za sve
jednakosti tog oblika (orientation).
4.Pretpostavimo da je jednakost s = t element niza jednakosti i da ni s
ni t nisu promenljive. Razmotri sledece slucajeve:
(a) Ako je s jednako (u1, u2, . . . , uk) i
t je
jednako (v1, v2, . . . , vk) (gde je funkcijski ili
predikatski sim- bol), onda dodaj jednakosti u1 =
v1, u2 = v2, . . ., uk = vk i zatim obrisi jednakost s = t
(decomposition).
(b) Ako su s i t bilo koje druge forme, zaustavi rad i
kao rezultat vrati neuspeh (ovo se odnosi na slucajeve
kada je jedan od ter- mova simbol konstante, a drugi
nije; kada se u s i t razlikuju vodeci funkcijski
(odnosno predikatski) simboli i kada su vodeci
funkcijski (odnosno predikatski) simboli s i t razlicite
arnosti) (collision).
5.
Ako je x promenljiva, t term koji sadrzi x i x = t se
pojavljuje u nizu jednakosti, zaustavi rad i kao rezultat
vrati neuspeh (cycle).
6.
Ako je x promenljiva, t term koji ne sadrzi x, x se
pojavljuje i u nekim drugim jednakostima i x = t se
pojavljuje u nizu jednakosti, onda
primeni supstituciju [x t] na sve druge jednakosti
(application).
Ako nije moguce primeniti nijedan od navedenih koraka vrati
tekuci skup jednakosti kao najopstiji unifikator.
Figure 3.2: Algoritam Najopstiji unifikator
55
g(y) = x
f (x, h(x), y) = f (g(z), w, z)
tj.
vazi
g(z) = g(z)
f (g(z), h(g(z)), z) = f (g(z),
h(g(z)), z) .
zaustavlja se;
ako vrati supstituciju, onda je ona najopstiji unifikator za dati niz parova izraza;
ako se algoritam zaustavi sa neuspehom, onda ne postoji unifikator za dati niz
parova izraza.
56
Zadaci
Zadatak 46 Odrediti najopstiji unifikator za sledeci skup parova termova:
{(g(x, h(y, z)), g(u, x)), (f (x), f (h(c, v))), (g(z, u), g(y, u))} .
Zadatak 47 Ispitati da li je relacija unifikabilnosti tranzitivna.
3.2.5
57
Metod rezolucije
, ondavaluaciji
taj literal
moze
biti obrisan,
dajuciklauza
novu klauzu
C r (jer
je u
svakoj
klauza
C tacna
ako
i samo ako je tacna klauza C r ).
Klauza je iz
zadovoljiva
ako
postoji
interpretacija
kojoj je
jedan
te klauze
tacan.
Prazna
klauza, uu oznaci
, bar
ne
sadrziliteral
nijedan literal
i nije zadovoljiva. Formula koja je skup klauza je zadovoljiva ako postoji
interpretacija u kojoj su sve klauze te formule tacne, a inace je
nezadovoljiva.
U slucaju
logike, ako je
literalp;l jednak
slovu
p, negaciji
onda iskazne
sa l oznacavamo
literal
ako je iskaznom
literal l
jednak
slova
(tj. literalu
oznacavamo
literaliskaznog
p. Za literale
l i l pkazemo
da sup), onda sa l
medusobno
U slucaju
logike prvog literal
reda, ako
ltnjednak
p(t1literal
, komplementni.
t2 , . . . ,jednak
tn ), onda
l oznacavamo
p(t1je
, t2literal
,...,
); ako
p(tsa
1 , t2 , . . . , tn ), onda sa l oznacavamo
literal
p(t1je
, t2 , . . . , tln ).
Za literale l i l kazemo da su (medusobno) komplementni.
Metod rezolucije za iskaznu logiku
U metodu rezolucije za iskaznu logiku primenjuje se pravilo
rezolucije slede- ceg oblika:
C rl rl Crr
C Crr
Klauzu Cr Crr zovemo rezolventom klauza Cr l i Crr l, a klauze Cr l i
C rr l roditeljima rezolvente. Kazemo da klauze C r l i C rr l rezolviramo pravilom
rezolucije.
Metod rezolucije je postupak za ispitivanje zadovoljivosti skupa
klauza koji se sastoji od uzastopnog primenjivanja pravila
rezolucije. Pravilom rezolu- cije se roditelji rezolvente ne zamenjuju
rezolventom, vec se rezolventa dodaje u skup tekuci skup klauza.
Neka je S pocetni skup, neka je S0 = S i neka je Si+1 rezultat
primene pravila rezolucije na skup Si. Postupak se zaustavlja na
jedan od sledeca dva nacina:
58
ako u nekom koraku skup Si sadrzi praznu klauzu (), onda zaustavi
primenu procedure i vrati odgovor da je skup klauza S
nezadovoljiv;
ako ne postoji mogucnost da se primeni pravilo rezolucije
tako da se skupovi Si i Si+1 razlikuju, onda zaustavi primenu
procedure i vrati odgovor da je skup klauza S zadovoljiv.
Niz klauza (polaznih i izvedenih) oznacavacemo obicno sa Ci (i
= 1, 2, . . .). Iza izvedene klauze zapisivacemo oznake klauza iz kojih
je ona izvedena, kao i redne brojeve literala nad kojim je primenjeno
pravilo rezolucije. Literale u
klauzama razdvajacemo obicno simbolom , (umesto simbolom ).
Primer 3.19 Metodom rezolucije se iz skupa {{p, q, r}, {p, q }, {p}, {r}} moze
izvesti prazna klauza:
C
p, qq,
r 1C2: :
p,
C3 : p
C
C45 ::
rp, r
(C1, 2; C2, 2)
C6 : p
(C4, 1; C5, 2)
C7 :
(C3, 1; C6, 1)
Skup klauza {{p, q, r}, {p, q}, {p}, {r}} je, dakle, nezadovoljiv.
Primer 3.20 Metodom rezolucije se iz skupa {{p, q, r}, {p, q }, {p}} ne moze izvesti
prazna klauza. Ovaj skup klauza je, dakle, zadovoljiv.
Teorema 3.17 (Teorema o metodu rezolucije) Metod rezolucije se zaustavlja za svaku
iskaznu formulu i u zavrsnom skupu klauza postoji prazna klauza ako i samo ako je polazna formula nezadovoljiva.
Metod rezolucije moze na razne nacine biti modifikovan tako da
bude efikas- niji.
U svom osnovnom obliku, metod rezolucije proverava da li je dati
skup klauza (ne)zadovoljiv. Medutim, metod rezolucije moze se
koristiti i za ispitivanje
valjanosti.
Naime,
ako je
potrebnoutvrditi
ispitatida
da li jeformula
formulaA
valjana,
dovoljno je
metodom
rezolucije
A
nezadovoljiva
cemu normalnu
je potrebno
najpreli jeformulu
A
transformisati u (pri
konjuktivnu
formu). Ovaj vid dokazivanja da je formula A valjana zovemo
dokazivanje pobi- janjem. Za metod rezolucije primenjen na ovaj nacin,
saglasnost govori da nije moguce rezolucijom pogresno utvrditi
(pobijanjem) da je neka formula val- jana, a potpunost govori da
je za svaku valjanu formulu metodom rezolucije moguce dokazati
(pobijanjem) da je valjana.
Metod rezolucije za logiku prvog reda
U logici prvog reda, pravilo rezolucije je opstije nego u
iskaznom slucaju, i umesto da zahteva da u dve klauze postoje
komplementni literali, zahteva da
u dve klauze postoje literali Ar i Arr takvi da su atomicke formule Ar i Arr
unifikabilne. Pravilo rezolucije za logiku prvog reda (u njegovom osnovnom
obliku, tzv. binarna rezolucija) moze se prikazati na sledeci nacin:
r Ar
rr Arr
(r rr )
59
se
moze primeniti
suRezolventa
literali p(x,ove
z) dve
i p(b,
a) unifikabilni
najopstiji
unifikatorpravilo
= [x rezolucije,
b, z jera]).
klauze
je klauza (uz
p(b, y) p(a, y).
Ako se pravilo rezolucije primenjuje dalje, onda u dobijenoj klauzi sve promenljive
treba da budu preimenovane (treba da dobiju imena koja do tada nisu koriscena):
p(b, yr ) p(a, yr ).
Definicija 3.27 Forma Kovalskog klauze
A1 A2 . . . Am B1 B2 . . . Bn
je
formula
A1 A2 . . . Am B1 B2 . . . Bn .
B1 B 2 . . . B n ,
A1 A2 . . . Am
A1 A2 . . . Am .
klauze
formula
Ako
je u A
1 A2 . . . Am B1 B2 . . . Bn i m = 0 i n = 0, onda je
to prazna
klauza,
koju oznacavamo ili .
Precizno govoreci, forme Kovalskog B1 B2 . . .Bn , A1 A2 . .
.Am
i nisu dobro zasnovane formule, ali cine zapis klauza koji je
intuitivan i
blizak zapisu u PROLOG-u.
Pravilo rezolucije moze da se reprezentuje i koristeci formu Kovalskog:
r Br Ar
rr Arr Brr
(r rr Br Brr )
neke
60
a].
Tada
je
forma
Kovalskog
rezolvente
date
dve
klauze:
p(b,
y)
p(a, y)
.
Metod rezolucije sastoji se od uzastopnog primenjivanja pravila
rezolucije. Neka je S pocetni skup, neka je S0 = S i neka je Si+1
rezultat primene pravila rezolucije na skup Si .2
Postupak se
zaustavlja na jedan od sledeca dva nacina:
.
.
.
B
1
2
n
A nije zadovoljiva.
Primer
3.23
Dokazati da formuli
je formula
p(a)
valjana.
Negacijaprimenjujemo
date formule
je
logicki
ekvivavalentna
p(a)
(x)(x)p(x)
p(x).
Metod
rezolucije
na
skupklauza
{p(a),
ip(x)
}. Pravilo
rezolucije
moguce
je[xprimeniti
samo se
na dobija
jedan
nacin
literali
p(a)
p(x)
se
unifikuju
supstitucijom
a]
i
njime
prazna klauza. Odatle sledi da je formula p(a) (x)p(x) valjana.
2
Primetimo da u opstem metodu nije specifikovano kako se, od svih mogucih,
bira par klauza nad kojim se primenjuje pravilo rezolucije.
61
Primer
3.24 jeFormula
(ekvivalentna
x)(y)p(x, y)
(y)(x)p(x,
y) nije y)
valjana.
Negacija
date
formule
logicki
sa formulom
(x)(
y)(p(x,
(y)(x)
p(x,
y))
i
sa
formulom
(
x)(
y)(
u)(
v)(p(x,
y)
p(v,
u)).
Skolemizacijom
dobija
skup
od dve
klauze:
{p(x,
f (x)),
p(g(x,
u), jeu)formula
}. Pravilo
rezolucije
nijey)se
moguce
primeniti
na
ove
dve
klauze,
odakle
sledi
da
(
x)(
y)
(p(x,
(y)
(x)p(x, y))
zadovoljiva, tj. polazna formula nije valjana.
Niz klauza (polaznih i izvedenih) oznacavacemo obicno sa Ci (i
= 1, 2, . . .). Izvedene klauze oznacavacemo ponekad i sa Ri (i =
1, 2, . . .). Iza izvedene klauze zapisivacemo oznake klauza iz kojih
je ona izvedena, redne brojeve lit- erala u tim klauzama, iskorisc
eni najopstiji unifikator, kao i supstituciju kojom
se
preimenuju
promenljive.
Literale
u klauzama
razdvajacemo
obicno
sim- bolom
, (umesto
simbolom
).
Primer 3.25 Dokazimo da je formula
(x)(y)q(x, y)
logicka posledica skupa formula
62
Primer
3.26 Dokazati
formula
=
xyz(x
y yy))
z(simboli
x z)
posledica
= da
xje
2y(x
y A
infiksno).
w(w
x w
ilogicka
su
predikatskiformule
simboliBarnosti
zapisani
Transformisanjem formule (B A) B A dobija se sledeci skup klauza:
H1 : (x1 y1), (w1 x1), w1 y1
(deo formule B)
H2 : x2 y2, f (x2, y2) x2
(dva dela formule B,
H
f(tri
je dela
Skolemova
funkcija
za A
w),
C13 :: x
a 3by3 , (f (x3 , y3 ) y3 )
negacije
formule
C2 : b c
a, b, c su Skolemove konstante za
C3 : (a c)
promenljive x, y, z u formuli A)
Izvedene klauze oznacavacemo sa Ri (i = 1, 2, . . .).
R1 : (w2 a), w2 b
(H1, 1; C1, 1), [x1 a, y1 b];
preimenovanje: [w1 w2]
R2 : (w3 b), w3 c
(H1, 1; C2, 1), [x1 b, y1 c];
preimenovanje: [w1 w3]
R3 : a y4, f (a, y4) b
(H2, 2; R1, 1), [x2 a, w2 f (a,
y2)];
preimenovanje: [y2 y4]
R4 : x4 c, (f (x4 , c) b) (H3 , 2; R2 , 2), [y3 c, w3 f (x3 ,
c)];
preimenovanje: [x3 x4]
R5 : a c, a c
(R3, 2; R4, 2), [x4 a, y4 c];
R6 :
(R5, 1, 2; C3, 1)
standardna forma
A1 . . . An A
A1 . . . An
A
forma Kovalskog
A1 . . . An A
A1 . . . An
A
PROLOG
A : A1 , . . . , An.
? A1 , . . . , An.
A.
false
63
Yes
Primetimo da, na primer, upit
? - mortal(platon).
ne moze da uspe (sem ako nije zadata i cinjenica man(platon)).
Da bi se pokazalo da je neka formula nezadovoljiva, dovoljno je,
primenom metoda rezolucije, iz njenog skupa klauza izvesti praznu
klauzu. Dodatno, metod
rezolucije
ima
svojstvo
da
iz
zadovoljivog skupa klauza ne moze da izvede nezadovoljiv skup
klauza. Ova dva svojstva dokazacemo kao teoremu o potpunosti i
teoremu o saglasnosti za rezoluciju (teoreme ?? i3.18). Metod
rezolucije, dakle, ima sledece karakteristike:
p(x, x)
p(u, v), p(w, v), p(u, w)
p(a, b)
p(b, a)
p(ur, b), p(ur, a)
p(b, b)
64
p(y,
logicka
posledica
formula xp(x,
x) i uvxw(p(u,
(p(w,
p(u,v)x))
w)).
Dovoljno
dokazati
x)v)x)))
unije
v v)
w
(p(u,
p(w,
v) je
p(u,navedene
w))) (da
x
yformula
(p(x, transformisanjem
y) p(x,
p(y,
zadovoljiva.
Negacija
formule,
u
klauzalnu
formu,
dobija
p(x, x)
(p(u, v) p(w, v) p(u, w))
p(a, b) p(b,
a) (gde
su aoblik:
i b nove,
Skolemove
konstante). Primenimo metod rezolucije na ovako dobijen skup
klauza:
p(x1, x1)
p(u1, v1), p(w1, v1), p(u1, w1)
p(a, b)
p(b, a)
p(b, v2), p(a, v2)
(prva hipoteza)
(druga hipoteza)
(prvi deo zaljucka)
(drugi deo zakljucka)
(C4, 1; C2, 3) [u1 b, w1
a];
preimenovanje: [v1 v2]
C6 : p(b, b)
(C5, 2; C3, 1) [v2 b]
C7 :
(C6, 1; C1, 1) [x1 b]
Primetimo da se u navedenom primeru u svakoj primeni pravila rezolucije
koristi poslednja klauza u nizu (osim u prvom koraku, to je uvek rezolventa iz
C1 :
C2 :
C3 :
C4 :
C5 :
65
A t = s r B ( ili s = t B)
(A[t s] B)
gde je najopstiji unifikator za termove t i tr i gde je A formula koja sadrzi term
tr . Na primer, iz klauza h(a) = b i c = a moze da se izvede klauza h(c) = b
66
h(a) = b c = a
((h(a) = b)[a c]) [ ]
Zadaci
Zadatak
49 Dati
P od
dva podskupa,
S1 isu
S2skup
, skupa
C. n (n 1) iskaznih slova, skup C svih klauza nad P i
(a) Koliko elemenata
ima skup C?
(b) Da li je skup C zadovoljiv?
(c) Ako su skupovi S1 i S2 zadovoljivi, da li je i skup S1 S2 zadovoljiv?
(d) Ako su skupovi S1 i S2 zadovoljivi, da li je i skup S1 S2 zadovoljiv?
(e) Ako je skup S1 zadovoljiv, da li skup C \ S1 moze da bude zadovoljiv?
(f) Ako je skup S1 zadovoljiv, da li skup C \ S1 mora da bude zadovoljiv?
Zadatak
50 Dati
P od
dva podskupa,
S1 isu
S2skup
, skupa
C. n (n 1) iskaznih slova, skup C svih klauza nad P i
(a) Da li je skup C kontradiktoran?
(b) Ako su skupovi S1 i S2 kontradiktorni, da li skup S1 S2 moze da bude kontradiktoran?
(c) Ako su skupovi S1 i S2 kontradiktorni, da li skup S1 S2 mora da bude kontradiktoran?
(d) Ako su skupovi S1 i S2 kontradiktorni, da li skup S1 S2 moze da bude kontradiktoran?
(e) Ako su skupovi S1 i S2 kontradiktorni, da li skup S1 S2 mora da bude kontradiktoran?
Zadatak 51 Dokazati metodom rezolucije za iskaznu logiku da su naredne formule
tautologije:
(a) q (p q)
(b) ((p q) (q r)) (p r)
(c) ((p q) (p r)) (p (q r))
(d) (((p r) (q r)) (p q)) r
(e) (p q) (p q)
(f) (p q) (p q)
(g) (p q) (p q)
(h) (p (q r)) ((p q) (p r))
Zadatak 52 Koristeci metod rezolucije za logiku prvog reda dokazati da vazi:
(x)(p(x) q(x)), p(c) |= q(c) .
Zadatak 53 Metodom rezolucije za logiku prvog reda dokazati da je naredna formula
valjana:
(x)(y)p(x, y) (y)(x)p(x, y) .
67
Zadatak 58
Vazi sledec
e: Janko ima psa.
Svaki vlasnik psa voli zivotinje.
Nijedna osoba koja voli zivotinje ne moze da udari
zivotinju. Janko ili Marko su udarili macku cije je ime
Tuna.
Svaka macka je zivotinja.
Metodom rezolucije za logiku prvog reda dokazati da je Marko udario Tunu.
Zadatak 59 Za narednu formulu metodom rezolucije za logiku prvog reda dokazati
da je valjana:
(x)(A(x) C) ((x)A(x) C)
pri cemu je C recenica. (Ovaj zadatak ilustruje kako metod rezolucije moze biti
oslabljen tako da se primenjuje i na formule koje nisu u klauzalnoj formi.)
Zadatak 60 Prevesti na jezik logike prvog reda i dokazati metodom rezolucije za
logiku prvog reda sledece tvrdenje: Ako su svi politicari lukavi i ako su samo
pokvareni ljudi politicari, onda, ako postoji bar jedan politicar, onda je neki pokvaren
covek lukav.
3.3
Prirodna dedukcija
68
69
[A ]u
.
..
.
I, u
A
A B
AB
A I
AB
A A
AB
B I
AB
AB
[ B] v
..
..
[A ]u
.
..
AB
C.
CC
[A ]u
.
..
.
B
AB
E, u, v
A AB
I, u
B
(x)A
A[x y ] I
(x)A
uz dodatni
uslov
A[x t]
[A[x
A[x t]
(x)A
(x)A
...
.
B
y]]u
E, u
B
uz dodatni uslov
efq
D
Table 3.1: Pravila izvodenja sistema prirodne dedukcije
primenu
prirodne
dedukcije
dedukcije,
za
70
. .
. .
.. ..
A B
C
D.
...
D
.
[A]2
I
BA
[B]3
I
BA
[A B]1
I,
1 E, 2, 3
BA
(A B) (B A)
Primer 3.30 U sistemu prirodne dedukcije vazi: A B, B C A C:
[A]1 A B
E
B
BC
I, 1 E
A C C
Primer 3.31 U sistemu prirodne dedukcije vazi A (A B) (A C):
[A]1
I
AB
[A]1
I
AC
I
(A B) (A C)
A (A B) (A C)
I, 1
I, 1
Ovaj
dokaz je
dokaz
A AC)).
(A B) (A C) (sto je slabije tvrdenje
od tvrdenja
A
(Atvrdenja
B) (A
Naredni primeri ilustruju primenu prirodne dedukcije za
dokazivanje u logici prvog reda.
Primer 3.32 Formula (x)(y)p(x, y) (y)(x)p(x, y) je teorema sistema prirodne dedukcije (i za klasicnu i za intuicionisticku logiku). Neki matematicar bi
ovu formulu (neformalno) dokazao na sledeci nacin:
71
(y)(x)p(x, y).
Ovaj dokaz moze se precizno opisati u vidu dokaza u sistemu prirodne dedukcije
(i za klasicnu i za intuicionisticku logiku):
1
r
[(y)p(x
r
r , y)] E
p(x
,
y
) r II
[(x)(y )p(x, y )]
((y)(x)p(x,
x)p(xy, )y )
E, 1
(y )(x)p(x, y )
I, 2
(x)(y)p(x, y) (y)(x)p(x, y)
[(x)p(x)]2
E
I, 2
I, 1
p(z)
I
(y)p(y)
(x)p(x) (y)p(y)
xA A
x(A B )
E
AB
E
B
I
xB
72
Zadaci
Zadatak 61
3.4
Sazetak
Glava 4
PROLOG
U logickom programiranju, logika se koristi kao deklaritivni
jezik
za
opisi- vanje problema, a dokazivac teorema kao
mehanizam za resavanje problema. Resavanje problema je
podeljeno izmedju programera koji opisuje problem i dokazivaca
teorema koji problem resava.
Jezik PROLOG je najznacajniji predstavnik jezika deskriptivnog i
logickog programiranja. Veoma je pogodan za mnoge primene
tehnika vestacke in- teligencije. Pogodan je za obrade prirodnog
jezika, ali i za brz razvoj pro- totipova drugih inteligentnih
programa, jer se obrada ulaza i izlaza, parsiranje i druge slicne
operacije jednostavno implementiraju.
Ime PROLOG-a dolazi od
engleskih reci PROgramming in LOGic. Mehanizam izvodjenja
zakljucaka u PROLOG-a zasniva se na metodu rezolucije koji je
opisao Alan Robinson 1965. godine.
Jezik PROLOG i prvi interpretator za njega razvijeni su na
Univerzitetu u Marseju 1972. godine, kao plod saradnje
istrazivaca Alain Colmerauer-a iz Marseja i Roberta Kowalskog iz
Edinburga. Oni su primetili da se klauzalna forma moze koristiti za
opisivanje formalnih gramatika i da se dokazivaci za- snovani na
rezoluciji mogu koristiti za parsiranje. Efikasan PROLOG mehanizam omogucen je otkricem LUSH ili SLD rezolucije koju je opisao
Kowalski 1973. godine.
Prakticna upotreba PROLOG-a kao programskog jezika omoguc
ena je razvo- jem efikasnog kompilatora Davida Warrena, u
Edinburgu 1977. godine. Ta verzija jezika, Edinburski PROLOG,
detaljno opisana 1980. u knjizi Clocksin- a i Mellish-a nametnula se
vremenom kao standardna verzija jezika i najjace uticala na ISO
standard za PROLOG.
4.1
Interpretatori i kompilatori
74
4 PROLOG
4.2
75
4.3
Pocetni primeri
76
4 PROLOG
man(A).
Upit
?- mortal(sokrat).
uspeva (daje odgovor Yes). Da bi ovaj upit bio zadovoljen, u pravilu
mortal(X) :- man(X) je promenljiva X bila unifikovana sa konstantom sokrat.
Nakon toga, cilj mortal(sokrat) je zamenjen ciljem man(sokrat) i on uspeva jer
postoji takva cinjeniva.
Upit
?- mortal(plato).
ne uspeva (daje odgovor No).
Upit
?- mortal(A).
uspeva i daje odgovor
A = sokrat.
To je jedino moguce resenje i ako ukucamo simbol ; dobicemo odgovor No.
Jednostavan i ilustrativan primer definisanja odnosa u PROLOG-u
moze se dati na primeru porodicnih relacija kao sto su otac,
majka, brat, tetka i slicno.
zensko(jelena).
zensko(milica).
zensko(milena).
zensko(mina).
zensko(maja).
zensko(senka).
musko(mladen).
musko(stevan).
musko(mihajlo).
musko(rajko).
musko(petar).
roditelj(stevan,mladen).
roditelj(stevan,jelena).
roditelj(milica,mladen).
roditelj(milica,jelena).
roditelj(mihajlo,milica).
roditelj(milena,milica).
roditelj(milena,senka).
roditelj(mihajlo,senka).
roditelj(milena,rajko).
roditelj(mihajlo,rajko).
roditelj(rajko,petar).
roditelj(rajko,mina).
roditelj(maja,petar).
roditelj(maja,mina).
majka(X,Y):-zensko(X),roditelj(X,Y).
otac(X,Y):-musko(X),roditelj(X,Y).
predak(X,Y):-roditelj(X,Y).
predak(X,Y):-roditelj(X,Z),predak(Z,Y).
77
brat(X,Y):-musko(X),roditelj(Z,X),roditelj(Z,Y),X\==Y.
sestra(X,Y):-zensko(X),roditelj(Z,X),roditelj(Z,Y),X\==Y.
tetka(X,Y):-sestra(X,Z),roditelj(Z,Y).
ujak(X,Y):-brat(X,Z),majka(Z,Y).
bratodujaka(X,Y):-musko(X),otac(Z,X),ujak(Z,Y).
sestraodujaka(X,Y):-zensko(X),otac(Z,X),ujak(Z,Y).
bratodtetke(X,Y):-musko(X),majka(Z,X),tetka(Z,Y).
sestraodtetke(X,Y):-zensko(X),majka(Z,X),tetka(Z,Y).
U relacijama brat i sestra predikag X\==Y je ima vrednost
tacno ako je X
razlicito od Y. U suprotnom, ima vrednost netacno.
4.4
Pravilo oblika:
p(x1,x2,...,xn) :- q1(y1,y2,...,ym),...qm(z1,z2,...zk)
moze se smatrati implikacijom
q1(y1,y2,...,ym) . . . qm(z1,z2,...zk) p(x1,x2,...,xn)
ili klauzom
q1(y1,y2,...,ym) . . . qm(z1,z2,...zk) p(x1,x2,...,xn)
C injenica oblika:
p(x1,x2,...,xn)
moze se smatrati klauzom
p(x1,x2,...,xn).
Cilj oblika:
q1(y1,y2,...,ym),...qm(z1,z2,...zk)
moze se smatrati klauzom
q1(y1,y2,...,ym) . . . qm(z1,z2,...zk)
U primeru iz poglavlja4.3, ako postoje slede ce cinjenice i
pravila:
man(sokrat).
mortal(A) :man(A).
upitu
?- mortal(X).
odgovara ispitivanje nezadovoljivosti skupa klauza:
man(sokrat)
man(X) mortal(X)
mortal(Y)
Primetimo da je u trecoj klauzi promenljive preimenovana u
Y, da ne bi
doslo
do preklapanja
imena u dve klauze. Ciljna klauza moze da
se
rezolvira
sa drugom
sokrat
] dajuci
novi ciljklauzom, koriscenjem unifikatora [ Y
man(sokrat)
Rezolviranjem
ove klauze
iz pocetnog
skupa,
koriscenjem
unifikatora
[ Xsa
prvom
sokrat klauzom
] dobija se
prazna klauza,
pa
je dokazana nezadovoljivost datog skupa klauza. Pritom je odredjena (jedinstveno)
instanciranje promenljive X iz zadatog cilja.
78
4 PROLOG
4.5
Stablo izvodjenja
4.6 Operator
enja
sec
p(a).
p(X) :- q(X), r(X).
p(X) :- u(X).
79
/* C1 */
/* C2 */
/* C3 */
q(X) :- s(X).
/* C4 */
r(a).
r(b).
/* C5 */
/* C6 */
s(a).
s(b).
s(c).
/* C7 */
/* C8 */
/* C9 */
u(d).
/* C10 */
p(X)
C1 (X=a)
C2
q(X),r(
X)
true
X=a
C4
s(X),r(X)
C3
u(X)
C10(X=d)
tru
e
X=d
C7(X=a)
C8(X=b)
C9(X=c)
r(a)
r(b)
r(c)
C5
tru
e
X=a
C6
C5
C6
C5
C6
fail
fail
fail fail
true
X=b
4.6
Operator secenja
80
4 PROLOG
No
p(X)
C1 (X=a)
tru
e
X=a
q(X),r(
X) C2
C3
u(X)
C4
s(X),r(
X)
C10(X=d)
tru
e
X=d
C7(X=a)
C8(X=b)
C9(X=c)
r(a)
r(b)
r(c)
C5
tru
e
X=a
C6
C5
C6
C5
C6
fail
fail
fail fail
true
X=b
81
r(X),s(Y)
C5(X=a
) s(Y)
C5(X=b)
s(Y)
C7(Y=a)
C7(Y=b)
C7(Y=c)
C7(Y=a)
C7(Y=b)
C7(Y=c)
true
true
true
true
true
true
X=a,Y=a X=a,Y=b
X=a,Y=c X=b,Y=a X=b,Y=b X=b,Y=c
X =a
Y = a;
X =a
Y = b;
X =a
Y = c;
No
r(X),!,s(Y)
C5(X=a
) s(Y)
C5(X=b)
s(Y)
C7(Y=a)
C7(Y=b)
C7(Y=c)
C7(Y=a)
C7(Y=b)
C7(Y=c)
true
true
true
true
true
true
X=a,Y=a X=a,Y=b
X=a,Y=c X=b,Y=a X=b,Y=b X=b,Y=c
82
4 PROLOG
No
r(X),s(Y),!
C5(X=a
) s(Y)
C5(X=b)
s(Y)
C7(Y=c)
C7(Y=a)
C7(Y=a) C7(Y=b)
true
true
true
true
true
X=a,Y=a X=a,Y=b X=a,Y=c X=b,Y=a X=b,Y=b
C7(Y=b)
C7(Y=c)
true
X=b,Y=c
83
4.7
84
4 PROLOG
4.8 Liste
85
4.8 Liste
Liste su jedan od kljucnih tipova podataka koji se koriste u
logickom programi- ranju. Lista je prazna lista ili element za kojim
sledi lista. Liste se rekurzivno definisu, pa se rekurzija prirodno
javlja u resenjima problema u kojima se one koriste.
Lista moze da se zapise kao niz njenih elemenata
razdvojenih zarezima zapisu izmedu zagrada [ i ]. Lista kao
svoj element moze da sadrzi i drugu listu. Navedimo nekoliko
primera listi:
[1,2,3]
[a,b,c,d]
[a,3,4,jovan,f(x,y)]
[[1,2,3],a,1,[],[x]]
86
4 PROLOG
Term 1
Term 2
unifikabilni unifikator
[1,2,3]
[a,b,c]
[X,1,2]
[a,b,c]
[a,b,c]
[]
[]
[]
[[]]
[a,b,c]
[a,b,c]
[a]
[[],[]]
[a,b|X]
[a,X,Y|T]
[a,b|X]
[5,6,7]
[a,b]
[Y,Y,2]
[H|T]
[X,Y|T]
X
[]
[H|T]
[H|T]
[X|[Y|Z]]
[X|[Y|[Z]]]
[H|T]
[H|T]
[a,b,c]
[a,b,c]
[a,b]
ne
ne
da
da
da
da
da
ne
da
da
da
da
da
da
da
da
X=1, Y=1
H=a, T=[b,c]
X=a, Y=b,
T=[c]
X=[]
H=[], T=[]
X=a,Y=b,Z=[c
]
X=a,Y=b,Z=c
H=a,T=[]
H=[],T=[[]]
X=[c]
X=b,Y=c, T=[]
X=[]
4.8 Liste
87
88
4 PROLOG
A =< B, merge(Ra,[B|Rb],M).
A > B, merge([A|Ra],Rb,M).
89
4.9
Ugradjeni predikati
Logicke konstante Predikat true uvek uspeva kao cilj, predikat false
nikad ne uspeva kao cilj.
Provera promenljive
Predikat var(X) proverava da li je X promenljiva koja nije vezana.
Predikat ground(G) proverava da li je G ne sadrzi promenljive
koje nisu vezane.
Provera tipa
Predikat atom(X) uspeva ako je X vezana za simbolicki atom.
Na primer, atom(foot) i atom(foot) uspevaju, a atom("foot") i
atom(3) ne us- pevaju.
Predikat integer(X) proverava da li je X vezana za ceo
broj. Predikat real(X) proverava da li je X vezana za
realan broj.
Predikat string(X) proverava da li je X vezana za karaktersku nisku.
Unifikabilnost i jednakost
Upit X = Y proverava da li su X i Y unifikabilni, upit X \= Y
proverava da li X i Y nisu unifikabilni,
Upit X == Y proverava da li su X i Y imaju jednake vrednosti upit X \== Y
proverava da li X i Y imaju razlicite vrednosti.
Vezivanje promenljive za numericku vrednost
Cilj V is E vezuje promenljivu V za numericku vrednost E. Vrednost E
mora biti numericka konstanta ili izraz cija je vrednost odredjena.
Aritmetici operatori
Za brojeve N i M, dozvoljeni su sledeci aritmeticki operatori: N
> M, N < M, N =< M, N >= M.
90
4 PROLOG
Pomocni predikati
Cilj help(S) uvek uspeva i daje objasnjenje (ako ono postoji) za
pojam S
(S treba da bude simbolicki atom, na primer, help(var)).
Cilj halt uvek uspeva, zaustavlja PROLOG i vraca kontrolu
operativnom sistemu.
Cilj trace uvek uspeva i ukljucuje pracenje izvrsavanja
izracunavanja. Cilj notrace uvek uspeva i iskljucuje pracenje
izvrsavanja izracunavanja.
Dodavanje u PROLOG bazu i brisanje iz PROLOG baze
Cilj asserta(C) dodaje klauzu C u bazu pre klauza koje imaju isti
kljucni predikat (kljucni predikat klauze je prvi predikat sleva
nadesno).
Cilj assertz(C) (kao i cilj assert(C)) dodaje klauzu C u bazu iza
klauza koje imaju isti kljucni predikat.
Cilj retract(C) brise klauzu C iz baze. Klauza C treba da bude
instanci- rana tako da moze da se odredi kljucni predikat.
listing prikazuje sadrzaj baze.
Ucitavanje PROLOG programa
Cilj consult(F) ucitava program iz datoteke F.
Cilj reconsult(F) ucitava program iz datoteke F, s tim sto se
definicijom predikata koji se ucitava zamenjuje (eventualna)
postojeca definicija.
Cilj [F1,F2,...] oznacava ucitavanje datoteke F1, zatim
datoteke F2, itd. U PROLOG programima komentari se pisu
izmedju znakova /* i */.
Ulaz i izlaz
seeing(X) uspeva ako je X vezana za tekuci ulazni tok (tzv.
port). Na primer, seeing(user) uspeva ako je tekuci ulazni tok
tastatura.
see(X) otvara kao ulazni port datoteku X. Naredni ulazi za
predikat read bice citan sa tog porta.
seen zatvara sve ulazne portove i naredni ulazi za predikat
read bice citani sa porta user.
read(X) cita izraz sa tekuceg porta i smesta ga u X.
telling(X) uspeva ako X moze biti vezana za tekuci izlazni
port. Na primer, tellin(user) uspeva ako je tekuci izlazni tok
ekran.
tell(X) otvara kao izlazni port datoteku X. Naredni ulazi
predikata write bice slati na taj port.
told zatvara sve izlazne portove i naredni ulazi za predikat
bi\ce bice slat na porta user.
write(E) ispisuje izraz vezan za E na tekuci izlazni port.
nl omogucava prelazak u novi red.
tab(N) ispisuje N razmaka na tekuci izlazni port.
Kontrola toka
call(P) poziva predikat P, uspeva ako i samo ako uspeva P.
! operator secenja.
91
Na primer,
92
4 PROLOG
4.10
Kao prvi veci primer PROLOG programa koji ilustruje razne koncepte
jezika, navodimo implementaciju KNF algorima. Kasnije cemo na to
nadovezati im-
93
94
4 PROLOG
4.11
95
i i ako
sa je
T, tako
brise
pojavljivanja
literala
u nasoj
implementaciji
predstavljen
atomom
(dok
jekojiT uje
predstavljen
atomom
t) i proverava
da li se
prazna f
klauza
nalazi
skupu klauza. Posle toga se pokusava sa koracima tautology, unit
propagation, pure literal i split.
Provera da li je argument prazna klauza
dpll([]):-!.
Brisanje literala f
dpll(X):-formula_sadrzi_literal(X,f),!,brisi_f(X,Y),dpll(Y).
Korak tautology
dpll(X):-sadrzi(X,Y),sadrzi(Y,t),!,brisi_sve(Y,X,Z),dpll(Z).
dpll(X):-sadrzi(X,Y),sadrzi(Y,L),atom(L),sadrzi(Y,
non
L),!,brisi_sve(Y,X,Z),dpll(Z).
96
4 PROLOG
Korak split
dpll([[X|R1]|R2]):-atom(X),zameni_slovo_u_formuli(X,t,[[X|R1]|R2],Y),dpll(Y),!.
dpll([[X|R1]|R2]):-atom(X),zameni_slovo_u_formuli(X,f,[[X|R1]|R2],Y),dpll(Y).
dpll([[non X|R1]|R2]):-zameni_slovo_u_formuli(X,t,[[non X|R1]|R2],Y),dpll(Y),!.
dpll([[non X|R1]|R2]):-zameni_slovo_u_formuli(X,f,[[non X|R1]|R2],Y),dpll(Y).
Primetimo da je recimo u koraku tautology moguce da postoji
vise klauza koje sadrze literal t. U tom slucaju PROLOG bi
prirodno vrsio bektreking u po- trazi za svim resenjima. Kako to u
nasoj implementaciji nema svrhe, ubacen je predikat reza koji
sprecava ovakvo ponasanje. Slicna opaska vazi i u pravilima
unit propagation i pure literal.
Zamene negiranih literala se vrse jednostavno kad imamo
implementirane pomocne predikate.
zameni_negacije_literala(X,Y):-zameni_literal_u_formuli(non
t,f,X,Z),
zameni_literal_u_formuli(non f,t,Z,Y).
Brisanje literala f:
brisi_f([X|R],[Y|R1]):-brisi_sve(f,X,Y),brisi_f(R,R1). brisi_f([],
[]).
Predikat sadrzi_praznu_klauzu se trivijalno implementira.
sadrzi_praznu_klauzu(X):-sadrzi(X,[]).
Sada mozemo dodati jos jedan predikat koji proverava da
li je formula zadovoljiva:
zadovoljiva(X):-knf(X,Y),knf_u_listu_listi(Y,Z),dpll(Z).
4.12
97
Pretraga grafa
5).
7).
1).
7).
1).
6).
3).
5).
8).
4).
5).
5).
6).
7).
4.13
98
4 PROLOG
0).
0).
1).
1).
2).
99
Zadaci
Zadatak 65
Vazi sledec
e: Janko ima psa.
Svaki vlasnik psa voli zivotinje.
Nijedna osoba koja voli zivotinje ne moze da udari
zivotinju. Janko ili Marko su udarili macku cije je ime
Tuna.
Svaka macka je zivotinja.
U PROLOG-u zapisati cinjenice i predikate pomocu kojih se moze utvrditi ko je
udario Tunu.
Zadatak 66
Zadatak 67
Zadatak 68
broja. Zadatak 69
Zadatak 70
broja.
Zadatak 71
Zadatak 72
Zadatak 73
Zadatak 74
100
4 PROLOG
Zadatak 76 Definisati predikat koji konstruise listu koja se sastoji od prvih n elemenata zadate liste.
Zadatak 77 Definisati predikat koji deli datu listu brojeva na listu negativnih i
nenegativnih elemenata.
Zadatak 78
Zadatak 79
Zadatak 80
Zadatak 81
Definisati predikat koji deli datu listu na dve na sve moguce nacine.
Definisati predikat koji ispisuje sve podliste date liste.
Definisati predikat koji iz date liste brise sva ponavljanja elemenata.
liste. Zadatak 82
Definisati predikat koji nalazi presek
Deo II
Pretraga
Glava 5
Resavanje problema
kao pretraga
U prethodnom delu prikazani su teorijski okviri i algoritmi pomocu
kojih je moguce sprovoditi logicko zakljucivanje. Iako zakljucci
moraju nuzno slediti iz zadatih pretpostavki, proces njihovog
dokazaivanja nije pravolinijski vec ukljucuje odredene odluke o
pravcu u kome ce se postupak sprovoditi. Drugim recima,
uocljivo je traganje za dokazom nekog tvrdenja. Primera radi, u
pri- meni procedure DPLL moguce je uociti i korake
zakljucivanja i korake pre- trage. Kada se uoci jedinicna
klauza u nekoj formuli, njeno zadovoljenje je nuzno i
predstavlja korak zakljucivanja. S druge strane kada je nemoguce
di- rektno zakljucivanje, potrebno je pretpostaviti vrednost iskazne
promenljive. U daljem toku dokazivanja, ta akcija ce se pokazati
kao opravdana ili neoprav- dana. U slucaju da se pokaze kao
neopravdana, preduzima se alternativna ak- cija. Znaci, situacija u
kojoj nije moguce izvrsiti direktno zakljucivanje zahteva primenu
pretrage.
Manje apstraktan primer je upravljanje robotskom rukom.
Pretpostavimo da robotska ruka ima nekoliko mehanickih zglobova
cije se kretanje kontrolise elektricnim impulsima. Pri tom, neki
zglobovi omogucavaju rotacije samo oko jedne ose (kao ljudski
lakat ili zglobovi na pristima), a drugi rotaciju oko veceg broja osa
(kao ljudsko rame ili zglobovi u korenu prstiju). Pokret hvatanja
case ovakvom robotskom rukom je netrivijalan zadatak, ali se
moze
razbiti na sekvencu atomicnih koraka pokreta
pojedinacnih zglobova oko razlicitih osa za odreden ugao.
Mozemo zamisliti da se ovi koraci izvrsavaju strogo jedan po
jedan u kom bi slucaju kretanje ruke bilo znacajno razlicito od
ljud- skog i sporo, ali bi problem bio laksi jer ne bi bila potrebna
sinhronizacija ra- zlicitih zglobova i svaki bi se pojedinacno
dovodio u zeljeni polozaj. Druga mogucnost je da se kretanja
zglobova izvode simultano, kao kod coveka, pri tom povecavajuc
i broj mogucih kombinacija u svakom trenutku.
Dati primeri motivisu razmisljanje o pretrazi kao o nalazenju
niza akcija ko- jima se ostvaruje cilj kada to ne moze biti ostvareno
pojedinacnim akcijama. Iako u opstem slucaju ovakva definicija ne
mora delovati adekvatno, u kontekstu vestacke inteligencije u
kome obicno pretpostavljamo postojanje nekog entiteta koji deluje
preduzimanjem nekih akcija (agenta), ona je prirodna.
Pored algoritama koji se u potpunosti mogu podvesti pod ovako
definisan
104
105
5.1
106
5.2
107
108
Glava 6
Pohlepna pretraga
Pohlepnim algoritmom se naziva svaki algoritam koji tezi neposrednom
povecanju vrednosti neke ciljne funkcije, odnosno algoritam koji bira
lokalno optimalne akcije. Lokalna optimalnost znaci da algoritam ne
moze da proceni dugorocni kvalitet izabranih akcija, odnosno koliko
te akcije doprinose ostvarenju konacnog cilja, vec da bira akciju koja
se na osnovu znanja dostupnog u trentuku izb- ora procenjuje kao
najbolja medu raspolozivim akcijama. Ovakvi algoritmi su cesto
znacajno jednostavniji za formulaciju od algoritama koji garantuju
opti- malnost procesa resavanja. Takode, cesto daju prakticno
prihvatjiva resenja, iako cesto ne optimalna.
Pohlepni algoritmi se mogu koristiti i za resavanje opstijih
problema od pretrage problema matematicke optimizacije. Ovi
problemi pretpostavljaju postojanje funkcije cilja i skupa dopustivih
resenja. U zavisnosti od formulacije problema, potrebno je naci
dopustivo resenje sa minimalnom ili maksimalnom vrednoscu
funkcije cilja. Takvo resenje se naziva optimalnim resenjem problema
optimizacije. Ovakvi problemi ne moraju pretpostavljati postojanje
stanja, ak- cija i drugih elemenata problema pretrage.
U
kontekstu matematicke opti- mizacije, pohlepni algoritmi se
obicno nazivaju algoritmima penjanja uzbrdo posto biraju
susedna dopustiva resenja koja imaju najvise vrednosti funkcije
cilja.
Primer 6.1 U primeru nalazenja najkracih puteva izmedu gradova, pohlepni
informisani algoritam bi mogao za suseda da bira grad za koji je zbir direktnog
rastojanja do grada
i vazdusnog rastojanja do cilja minimalan. Ovakav algoritam u svakom koraku bira
optimalnu akciju s obzirom na raspolozivo znanje u vreme izbora akcije, pa je
stoga pohlepan. U slucaju da vazdusna rastojanja nisu poznata, vec samo
rastojanja do susednih gradova, pohlepni algoritam bi uvek birao najblizi susedni
grad u nadi da ce se na taj nacin naci najkraca putanja do cilja.
Primer 6.2 Problem trgovackog putnika podrazumeva da je dat graf u kome su
ivi- cama grafa pridruzene njihove duzine. Cilj je nalaci najkracu putanju koja
kroz sve cvorove grafa prolazi tacno jednom. Pohlepni algoritam bi mogao biti
formulisan tako da u svakom koraku bira ivicu najkrace duzine. Iako je ovo
popularan pristup kon- struisanju putanja i dobro se ponasa za neke specificne
probleme, u opstem slucaju
predstavlja los pristup. C ak je dokazano da za svaki broj cvorova n, postoji instanca
problema trgovackog putnika sa n cvorova za koju ovako formulisan pohlepni
algoritam bira jedinstvenu najgoru putanju.
110
6 Pohlepna pretraga
6.1
f = .
,
,...,
xn
f
x2
x1
111
112
6 Pohlepna pretraga
Za jenta
polaznu
na primer
tacka
gradiu tojtacku
tackiseje moze
f (x0uzeti
) = (1,
0.5). Zato
je x0 = (0.5, 0.5). Vrednost
.
.
.
f (x0 ) f (x0 ) = 1 0.5 .
1
= 1.25
0.5
.
2 0 . .
.
.
.
1
T
0
0.5
= 2.75
f (x0 )H(x0 )f (x0 ) = 1 0.5
5
Otuda je vrednost koeficijenta 0 jednaka 11
0.45. Stoga, sledeca tacka u pretrazi
x1 = (0.5, 0.5) + 0.45 (1, 0.5) = (0.95, 0.275)
je
Glava 7
7.1
114
7.2
Dejkstrin algoritam
7.3 A*
115
1
2
3
4
5
6
3
3
3
3
3
2
2
2
2
2
6
6
6
5
5
4
3
3
3
3
8
7
6
cvor
u
A
C
B
E
D
F
7.3
A*
116
rastojanje[v] :=
prethodni[v] := nedefinisano
2. rastojanje[source] := 0
3.Q := tt
4. Dok skup Q nije prazan:
prethodni[v] := u
5. prijavi neuspeh
Figure 7.3: Dejkstrin algoritam
7.3 A*
117
3
25
6
C4D5
2
11
118
Algoritam: Algoritam A*
Ulaz: Graf tt, polazni cvor source i ciljni cvor target
Izlaz: najkraci put od cvora source do cvora target u grafu tt
(ako postoji put izmeu ova dva cvora
1.
2.
Dodaj polazni cvor (zajedno sa procenjenom cenom
do ciljnog cvora, koja je odreena funkcijom h) u
otvorenu listu cvorova koje je potrebno razmotriti.
3.
Figure
Att 7.5: Algoritam A*
66
64
54
4
C
32
DH
B
5
F
2
E
7.3 A*
119
cvor(roditelj)
dodaje
se u zatvorenu
A(null 0+6)
D(A,6+5), G(A,5+6)
G(A,5+6), F(D,9+3), H(D,9+4),
C(D,10+6)H(D,9+4), C(D,10+6)
F(D,9+3),
B(F,12+1), H(D,9+4), C(D,10+6)
H(D,9+4), E(B,14+0), C(D,10+6)
E(B,14+0), C(D,10+6)
C(D,10+6)
A(-)
D(A)
G(A)
F(D)
B(F)
H(D)
E(B)
66
64
53
4
32
DH
B
5
6
tekuc
i
cvor
A
D
G
H
B
F
E
0
cvor(roditelj)
dodaje
se u zatvorenu
A(-)
D(A)
G(A)
H(D)
B(H)
F(D)
E(B)
120
2 (ovakva
7.3 A*
121
f
g
h
74
60
54
14 60 10 50 14 40
60
40
10 50
74
10 30
60
54
14 60 10 50 14 40
122
74
60
54
14 60 10 50 14 40
40
10 30
60
10
50
60
54
14 60 10 50 14 40
74
74
60
54
14 60 10 50 14 40
40
10 30
60
10
50
60
54
14 60 10 50 14 40
74
74
28 60 24 50
88
7.3 A*
123
94
80
74
28 80 24 70 20 60 24 50
94
74
60
54
24 70 14 60 10 50 14 40
80
60
20 60 10 50
94
74
60
40
82
10 30
72 10 68 0
72 10
54
74
88
94
80
74
68
82
54 20 58 10 68 20
24 70 14 60 10 50 14 40
108
68
74
74
74
102
28 80 24 70 20 60 24 50 34 40 44 30 54 20 72 30
108
94
88
88
88
38 70 34 60 38 50 48 40 58 30
94
80
74
28 80 24 70 20 60 24 50
94
74
60
54
24 70 14 60 10 50 14 40
80
60
20 60 10 50
94
74
60
40
82
10 30
72 10 68 0
72 10
54
74
88
94
80
74
68
82
54 20 58 10 68 20
24 70 14 60 10 50 14 40
108
68
74
74
74
102
28 80 24 70 20 60 24 50 34 40 44 30 54 20 72 30
108
94
88
88
88
38 70 34 60 38 50 48 40 58 30
124
7.3 A*
125
4
Hes tabela je struktura podataka koja povezuje vrednosti i kljuceve. Ona
omogucava efikasno nalazenje vrednosti na osnovu kljuca.
To se postize
preslikavanjem kljuca hes funkcijom u hes vrednost koja sluzi kao indeks niza na
kojem se nalazi odgovarajuca vrednost.
126
Glava 8
8.1
128
1
Heuristike su (aproksimativne) metode za usmeravanje i suzavanje pretrage
u problem- atici gde se javlja kombinatorna eksplozija. Kvalitet i mogucnosti
njihove primene zavise od specificnosti domena i njegove neprekidnosti (malim
promenama problema treba da odgovaraju male promene resenja).
129
8.2
130
xo
x o
...
...
................ .
o
x
...
...
o
xox
...
o
x x
...
o
o
x x
oo . . .
x oo . . . . . . . . .
x
x o x x ox x x oox x x x
...
...
...
oo
x x
zavrsno stanje
. ................ .
. ....... .
131
8.3
132
8.4
Sredisnjica
8.4.1
8.4 Sredisnjica
133
134
max
1
min
max
2 1
1
57
22 1
7 1
8.4 Sredisnjica
135
Algoritam: Minimax
Ulaz: pozicija
Izlaz: potez
1. v := Max(pozicija)
2.vrati potez kojem odgovara vrednost v
Funkcija: Max
Ulaz: pozicija, funkcija evaluacije f
Izlaz: vrednost pozicije
1.Ako je zavrsna pozicija vrati f (pozicija)
2. v :=
3. Za svaku poziciju s do koje se moze doci u jednom potezu:
Ako je Min(s) > v onda v := Min(s)
4.vrati v
Funkcija: Min
Ulaz: pozicija, funkcija evaluacije f
Izlaz: vrednost pozicije
1.Ako je zavrsna pozicija vrati f (pozicija)
2. v := +
3. Za svaku poziciju s do koje se moze doci u jednom potezu:
Ako je Max(s) < v onda v := Max(s)
4.vrati v
136
wn+1 < wk
ma
x
wk
wn
wn+1
odsecanje
wj
1
7>
5
odsecanje
min
o
5
2 < 5
m a x
dseca
nje
2 1
wk ). S obzirom da se u
pocetnom
cvoru trazi maksimum ocena mogucih poteza, to znaci da taj cvor (sa ocenom
min wk ) ne utice na ocenu pocetnog cvora (jer je wmin wk wmax ),
r
wr
pa se dalje pretrazivanje poteza protivnika u tekucem cvoru
moze prekinuti bez uticaja na rezultat pretrazivanja moze da
se izvrsi odsecanje stabla
(slika8.4). ,,Beta odsecanje je potpuno analogno i primenjuje se na
cvorove
u kojima je na potezu protivnik. Naravno, s obzirom na smisao
vrednosne funkcije, maksimumi pominjani u ,,alfa odsecanju
zamenjuju se minimumima i obratno (slika8.4). Pseudok o d
algoritma alfa-beta dat je na slici8.5.
Kako stablo pretrazivanja cesto moze biti jako veliko, ubrzanje
minimaks algoritma heuristikama ,,alfa-odsecanje i ,,betaodsecanje ima izuzetan znacaj. Posebno je vazna cinjenica da i
alfa-beta algoritam nalazi zaista najbolji moguci potez za zadati
cvor i zadatu dubinu pretrazivanja, sto znaci da heuristike koje se
primenjuju ne narusavaju tu osobinu minimaks algoritma.
Ukoliko se u svakom cvoru potezi ispituju od najlosijeg ka
najboljem (u smislu tekuceg cvora), tada nema nijednog alfa ili
beta odsecanja, pa se alfa- beta algoritam svodi na algoritam
minimaks. Obratno, najvise alfa i beta odse- canja ima kada su
potezi ispituju od najboljeg ka najlosijem u smislu tekuceg cvora
i tada algoritam alfa-beta daje najbolji efekat (tj. ispituje najmanji
broj cvorova stabla). Naravno, takav poredak poteza nije moguce
generisati egza- ktno u toku pretrazivanja stabla igre, ali se dobrim
8.4 Sredisnjica
137
Algoritam: Alfa-beta
Ulaz: pozicija
Izlaz: potez
1. v = Max(pozicija, , +)
2.vrati potez kojem odgovara vrednost v
Funkcija: Max
Ulaz: pozicija, alfa vrednost , beta vrednost , funkcija evaluacije f
Izlaz: vrednost pozicije
1.Ako je zavrsna pozicija vrati f (pozicija)
2. v :=
3. Za svaku poziciju s do koje se moze doci u jednom potezu:
138
8.4 Sredisnjica
139
140
8.5 Zavrsnica
141
n
gde je n pozitivni koren jednacine x + x=11 = 0.
Rn
Za n 1000 vrednost
vred-
nosti n3/4 ,
tj.
1n
n
R=
(0.925)n
3/4
0.747
8.5
Zavrsnica
142
8.5.2
Tekstovi saveta
143
8.6
Implementaciona pitanja
5
U daljem tekstu cemo, kada govorimo o nekim konkretnim realizacijama na
racunaru, ako ne naglasimo drugacije, podrazumevati da se radi o resenjima u
okviru programskog jezika C.
144
kao prihvatljivo resenje za opis table izabrati i niz bitovskih matrica. Tako
npr.
u
sahu
moze se
za svaki
tip
(ibitovrednost
za oba igraca)
koristiti po
jedna
bitovska
tabela
8 figuru
8 ufigura
kojoj
1 oznacavala
da
igrac
na tom polju
ima
tog tipa,
a vrednost
0 sve ostale
mogucnosti.
tajpo
nacin
8 bila8 bi
sa
12
(svaki igracNaima
sestjedna
tipovatabela
figura)8 tabela
8zamenjena
ciji
su elementi bitovskog tipa. Dodatna pogodna okolnost u ovom
pristupu je sto opisana bitovska tabela moze da se opise
jednostavno kao niz osam karaktera (jer tipu karakter odgovara
jedan bajt, odnosno osam bita). Ovakav pristup (i analogni u
drugim igrama), mada na prvi pogled mozda komplikovaniji,
omogucava brojna jednostavna i brza resenja kod provere
legalnosti poteza, generisanja legalnih poteza i sl.
Struktura koja opisuje potez treba da sadrzi informacije
dovoljne da bi se potez odigrao, ali pozeljno je (mada ne i
neophodno) i da bi se eventualno vratio. Kod jednostavnih
igara, kao sto je npr. igra iks-oks dovoljne su infor- macije o tome
koji je igrac potez odigrao6 i na kojem polju. Kod igre reversi, to
vise nisu dovoljne informacije, jer na osnovu njih ne moze biti vrac
en potez. Naime, na osnovu informacije o igracu i polju ne moze
se rekonstruisati pozi- cija pre tog poteza, pa struktura koja opisuje
potez mora da sadrzi i listu zetona koji pri tom potezu menjaju
boju. Kod saha je situacija jos slozenija, jer figure se pomeraju
(a ne dolaze niotkuda kao u igrama iks-oks i reversi), pa pored
oznake igraca, struktura koja opisuje potez mora da sadrzi
informacije i o po- laznom i o odredisnom polju. Pored toga, radi
mogucnosti vracanja poteza, ta struktura mora da sadrzi i
informaciju o (eventualno) pojedenoj figuri, o (eventualno)
izvedenom pesaku (i o figuri u koju je promovisan), kao i informaciju o (eventualno) primenjenom pravilu en-passant7 . Nacin
na koji ce navedeni podaci da budu opisani direktno je uslovljen
strukturom koja opisuje tablu igre. Ukoliko je odabran pristup sa
bitovskom reprezentacijom table i poteza, operacije odigravanja i
vracanja poteza i slicne svodice se na jednos- tavne i brze
logicke operacije AND, OR, XOR, NOT i njihove kombinacije.
Program za igru moze biti tako koncipiran da se potezi koji se
odigravaju ne pamte niti povezuju na bilo koji nacin. Medutim,
ukoliko se zeli mogucnost vracanja poteza (i ako je ta moguc
nost pripremljena pravilnim izborom struk- ture koja opisuje
potez tako da sadrzi sve potrebne informacije), potezi se
tokom partije smestaju u povezanu listu (LIFO tipa, tj. stek). Pored
toga, uko- liko se zeli i mogucnost ponovnog reprodukovanja
partije ili njenog memo- risanja, poteze tokom partije treba
smestati u dvostruko povezanu listu.
Na nivou programa, opisane strukture treba da budu
organizovane tako da omogucavaju igru izmedu dva igraca, kao i
mogucnost da program zameni bilo kog igraca (u celom toku
partije, u pojedinacnom potezu ili samo za da- vanje preporuke).
Provera legalnosti poteza vrsi se u skladu sa pravilima pojedine
igre, a u konkretnom programu, i u skladu sa izabranim strukturama
podataka. Na samom pocetku, naglasimo da pravimo razliku
izmedu termina moguci potezi i legalni potezi: mogucim potezima
nazivamo one koji su legalni u bar jednoj regularnoj poziciji igre.
Ako sam program ucestvuje u partiji kao jedan od igraca i
ako treba da
6
Podatak o tome koji je igrac odigrao potez cesto nije neophodan, jer se potezi
prvog i drugog igraca smenjuju naizmenicno.
7
Rokade se mogu opisati samo preko poteza kralja, pa nije potrebno da
informacija o rokadi bude sadrzana u strukturi potez.
145
146
Glava 9
Genetski algoritmi
Genetski algoritmi (GA) su familija opstih heuristickih
algoritama
globalne pretrage zasnovanih na Darvinovoj ideji
evolucije. Oni pripadaju siroj grupi evolucionih algoritama koji
koriste tehnike inspirisane evolucionom biologi- jom, kao sto su
nasledivanje, mutacija, selekcija, ukrstanje itd. Genetski algoritmi se mogu koristiti za nalazenje tacnog ili pribliznog resenja
nekog prob- lema optimizacije ili pretrage. Mada je jos pedesetih
godina dvadesetog veka bilo racunarskih simulacija zasnovanih na
evoluciji, smatra se da je moderne genetske algoritme uveo Dzon
Holand sedamdesetih godina dvadesetog veka [?], a postali su
popularni kasnih osamdesetih godina.
Tokom prethodnih dvadesetak godina ostvaren je veliki napredak
u razvoju genetskih algoritama. Genetski algoritmi se uspesno
primenjuju na sirokom skupu problema, cesto NP-kompletnih ili
tezih problema, za koje ne postoje efikasna resenja. Neki od tih
problema su problem nalazenja najkraceg puta u grafu, problem
trgovackog putnika, logickim igrama itd. Genetski algoritmi imaju
uspesne primene u ekonomiji, tehnici, bioinformatici, hemiji, fizici
itd. Popularnost
genetskih
algoritama
potice
iz
njihove
uspesnosti, ali i jednos- tavnosti. Naime, ideje na kojima su
genetski algoritmi zasnovani su jednos- tavne za razumevanje i
implementiranje, a daju opsti sistem pretrage primen- jljiv na veliki
broj problema. Uporedo sa nalazenjem brojnih novih primena i
unapredivanjem algoritma, razvijaju se i teorijski osnove genetskih
algoritama, ali jos uvek sa nedovoljno uspeha.
Genetski algoritmi uspesno se primenjuju u optimizacionim
problemima u kojima postoji vise lokalnih ekstremuma. Ipak, iako
cesto nalaze globalne eksremume, za genetske algoritme ne
postoji nikakva garancija o tome da li je u pitanju lokalni estremum
niti o tome sa kolikom greskom je odredeno resenje.
9.1
148
9 Genetski algoritmi
9.2
149
enost
svake
jedinke u populaciji;
3. Izvrsavaj sledecu petlju sve dok nije zadovoljen uslov
zaustavljanja:
9.3
Reprezentacija jedinki
150
9 Genetski algoritmi
a)
odgovara realni
a+
2n 1
broj
S druge strane, realnom broju x iz intervala [a, b] pridruzujemo
vektor koji predstavlja binarnu reprezentaciju broja
.
.
xa n
(2 1) .
ba
Primer 9.1 Pretpostavimo da naftnu platformu treba postaviti na pogodnom mestu
na putu izmedu tacaka A i B, koji je duzine 5000m. Lokacija platofrme je
pogodnija uko- liko na tom mestu postoje vece rezerve nafte. U biranju lokacije
moguce je meriti pos- tojece rezerve nafte na bilo kojoj tacki izmedu A i B. Moguc
a resenja mogu se reprezen- tovati nizovima bitova duzine 10, tj. brojevima od 0
do 1023. Tacki A tada odgovara
broj
0 i reprezentacija 0000000000, a tacki B broj 1023 i reprezentacija 1111111111.
Tacki
270 C na rastojanju 1320m od tacke A odgovara vrednost 1023 (1320/5000)
ivredreprezentacija
a tacki
na rastojanju 1010000000.
3128m od tacke A odgovara
nost 1023 0100001110,
(3128/5000)
640Di reprezentacija
A (0000000000)
1000
100
D (1010000000)
C (0100001110)
1320
2000
400
30003128
500
B (1111111111)
40005000
800
900
1000
9.4
Funkcija prilagodenosti
151
9.5
Inicijalizacija i zaustavljanje
9.6
Selekcija
152
9 Genetski algoritmi
moze
sirine
proces
partija
0.10
0.05
0.30
0.15
0.06
0.03
0.10
0.05
0.40
0.20
0.24
0.12
0.60
0.30
0.20
0.10
Sledeca slika ilustruje, u formi ruleta, verovatnoce izbora koje su pridruzene jedinkama.
0.05 0.03
dc
0.20
0.15
eb
a
0.12
0.05
0.10
g
0.30
153
9.7
9.7.1 Ukrstanje
U ukrstanju (eng. crossover) ucestvuju dve jedinke koje se nazivaju
roditelji. Rezultat ukrstanja je jedna nova jedinka ili dve nove jedinke
koje zovemo deca. Ocekivano je da deca nasleduju osobine roditelja,
ukljucujuci njihovu prilagodenost, pa i da imaju bolju prilagodenost
od svojih roditelja.
Postoji vise jednostavnih varijanti ukrstanja kada se koristi binarna
reprezentacija. U jednoj varijanti dovoljno je izabrati tacke prekida i
prekombinovati nizove bitova jedno dete deo od jedne tacke prekida do sledece
nasleduje od jednog roditelja, a naredni deo od drugog. Ukrstanje
moze koristiti proizvol- jan broj tacaka prekida (s tim da je manji
od duzine hromozoma). Slike9.2i9.3 ilustruju ukrstanje sa jednom i
sa dve tacke prekida.
roditelj 1
roditelj 2
tacka prekida
dete 1
dete 2
154
9 Genetski algoritmi
roditelj 1
roditelj 2
dete 1
tacke
prekida
dete 2
9.7.2 Mutacija
Mutacija je operator koji u binarnoj reprezentaciji menja jedan ili
vise slucajno odabranih gena. Od jedne jedinke dobija se jedna
nova jedinka. Verovatnoca da ce neki bit neke jedinke populacije
biti promenjen je parametar algoritma i cesto je izmedu 0.01 i 0.001.
Mutacija se primenjuje nakon procesa ukrstanja.
Uloga mutacija u genetskim algoritmima je da spreci da
jedinke u pop- ulaciji postanu suvise slicne i da pomogne u
obnavljanju izgubljenog genet- skog materijala. Na primer, ukoliko u
jednoj generaciji sve jedinke imaju istu vrednost jednog gena, onda
taj gen samo ukrstanjem nikada ne bi mogao da se promeni.
Kontrolisano podsticanje genetske raznolikosti mutacijom cesto
omogucava izbegavanje lokalnih ekstremuma. Mutacije, naime,
omogucavaju razmatranje novih delova prostrora pretrage u nadi
da ce se naici na globalnim ekstremum. Dovoljno je da se jedna
jedinka priblizi globalnom ekstremumu, pa da za nekoliko
generacija sve jedinke budu u tom delu prostora pretrage.
Ukoliko je verovatnoca mutacije za svaki bit jednaka jedinici,
onda se al- goritam pretvara u slucajnu pretragu. Ukoliko je ta
verovatnoca jednaka nuli, onda nema mutacije i algoritam ce
verovatno brzo dospeti do nekog lokalnog ekstremuma.
9.8
Zaustavljanje
155
156
9 Genetski algoritmi
primer, kretanje robota), funkcija koju treba optimizovati nije
zadata ek- splicitno vec implicitno, kroz veci broj kriterijuma.
157
9.11.1
Implementaciona pitanja
158
9 Genetski algoritmi
Deo III
Masinsko ucenje
Glava 10
Uvod
Masinsko ucenje je oblast vestacke inteligencije koja se moze
definisati na ra- zlicite nacine. Jedna definicija bi mogla biti da je
to disciplina koja se bavi iz- gradnjom prilagodljivih racunarskih
sisitema koji su sposobni da poboljsavaju svoje
performanse
koristeci informacije iz iskustva.
Masinsko ucenje bi se
moglo definisati i kao disciplina koja se bavi proucavanjem
generalizacije
i konstrukcijom i analizom algoritama koji
generalizuju.
Prva definicija je bliza inzinjerskom i prakticnom racunarskom
nacinu razmisljanja sa akcentom na resavanju konkretnih problema i
implementaciji. Druga je bliza cistom matematickom razmisljanju i
statistici. Mi se necemo ograniciti na samo
jedan od njih.
Preciznu definiciju je nezahvalno traziti, kako zbog cestog
preklapanja sa drugim disciplinama, tako i zbog cinjenice da se radi
o oblasti koja je ponikla iz nevezanih razmatranja problema ucenja
u razlicitim domenima, bez zajednicke teorijske osnove. Iako su se
prva teorijska razmatranja pojavila jos kasnih 60- ih u radovima
Golda, univerzalne teorijske osnove su se pocele ucvrscivati
tek tokom 80-ih godina proslog veka. Najvazniji teorijski pristupi
su Goldov model granicnog ucenja (learning in the limit), Valiantov
PAC (Probably Approx- imately Correct) model i verovatno najkompletnija
statisticka teorija ucenja.
Masinsko ucenje je zanimljivo, izmedu ostalog, i zbog svoje
teznje da se priblizi ljudskom ucenju po efikasnosti, kao i da
ga objasni, odnosno pruzi teorijski model za njega. Naravno, oba
cilja su za sada daleko od ostvarenja u punom smislu.
Neka od najvaznijih pitanja masinskog ucenja su:
162
10 Uvod
10.1
Generalizacija i apstrakcija
163
10.2
164
10 Uvod
1500 iz obe klase. Iz obe klase cemo izdvojiti po 500 clanaka kako
bismo posle ucenja procenili kvalitet sistema.
Da bi sproveli ucenje, potrebno je da ove clanke pretstavimo u
nekom ob- liku koji je pogodan za algoritam ucenja i koji bi
mogao na neki nacin da reprezentuje osnovne karakteristike na
osnovu kojih se clanci iz ove dve kate- gorije mogu razlikovati. Za
to nam je potrebna ideja kako bismo razlikovali clanke.
Ocekivano je da ce u clancima iz racunarstva biti cesce
pominjani racunarski pojmovi nego u ostalim clancima. To
svojstvo bi se moglo iskoristiti za razlikovanje clanaka.
U skladu sa ovim, mozemo nabrojati sve reci iz nekog recnika
racunarske terminologije koje se pojavljuju u svim clancima
koje imamo.
Svaki clanak mozemo predstaviti vektorom
frekvencija ovih reci. Frekvencija neke reci u clanku se racuna
tako sto se broj pojavljivanja te reci podeli ukupnim brojem
pojavljivanja svih reci u clanku. Ako je x vektor koji odgovara
nekom clanku, onda cemo frekvencije izabranih reci oznacavati
sa xi .
Posmatrajmo ove vektore geometrijski, kao da su tacke u
euklidskom pros- toru. Jednostavnosti radi, pretpostavicemo da se
u recniku nalaze samo dve reci racunar i datoteka.Ukoliko
su u clancima iz jedne kategorije ovi racunarski termini
visokofrekventni, a u drugim niskofrekventni, tacke koje
odgovaraju racunarskim clancima ce se grupisati dalje od
koordinatnog pocetka, dok ce se ostale grupisati blize njemu.
Pojednostavljen prikaz je dat na slici 10.2.
Izmedu ovih tacaka bi se mogla provuci prava koja bi ih
razdvajala kao na
slici10.2. Ako nam je ova prava poznata, onda za neki nov,
nepoznat clanak
mozemo reci da je iz oblasti racunarstva ukoliko se vektor koji
mu odgovara nalazi sa iste strane prave kao i vektori racunarskih
clanaka koji su nam poz- nati. U suprotnom bismo smatrali da
clanak nije iz oblasti racunarstva.
Jednacina prave ima oblik
165
ax + by + c = 0
Neka je f (x) = 1 ukoliko je x clanak iz oblasti racunarstva i f
(x) = 1 u suprotnom. Ocigledno, funkcija sgn(ax + by + c), gde
sgn(t) oznacava znak vrednosti t, pruza informaciju sa koje strane
prave se nalazi tacka (x, y).
Pronalazenje zeljene prave mozemo posmatrati kao
pomeranje neke po- lazne prave dok ona ne bude pozicionirana
izmedu tacaka koje treba da razd- vaja.
Formalno, da bismo
nasli razdvajajucu pravu, potrebno je da nademo koeficijente a,
b i c tako da funkcije f (x) i sgn(ax + by + c) budu jednake ili makar
jednake u vecini slucajeva. Kako bismo to uradili potrebno je da
for- mulisemo algoritam ucenja koji ce na osnovu podataka koje
imamo doci do tih koeficijenata. Algoritam ucenja moze biti
sledeci:
1. Neka je a = 0, b = 0 i c = 0 za svako i i = 0.01.
2. Za svaki trening primer < x, y > za koji nam je poznata
vrednost f (< x, y >):
(a) Izra cunati sgn(ax + by + c) koristeci trenutne koeficijente
a,b i c. (b)Za koeficijente uraditi
a a + (f (< x, y >) sgn(ax + by + c))
x b b + (f (< x, y >) sgn(ax + by +
c)) y c c + (f (< x, y >) sgn(ax +
by + c)) 1
Ne mora biti ocigledno da azuriranje koeficijenata u algoritmu
koji koris- timo za ucenje vodi poboljsanju naucene funkcije. Pre
svega, vrednost mora biti mala kako bi korekcije bile male i
postepene. Drugo, primetimo da su x i y uvek pozitivni ili jednaki 0 i
da stoga znak korekcije zavisi od razlike izmedu
166
10 Uvod
10.3
10.4
10.5 Podaci
167
10.5
Podaci
168
10 Uvod
10.6
Zapis primera
169
170
10 Uvod
Glava 11
Klasifikacija
Problem klasifikacije je problem razvrstavanja nepoznate instance u
jednu od unapred ponudenih kategorija klasa. Neki od primera
klasifikacije su razvrsta- vanje bankovnih transakcija u rizicne koje
mogu predstavljati prevaru i ner- izicne koje predstavljaju
uobicajene transakcije, odredivanje autorstva tekstova pri cemu se
tekstu nepoznatog autora pridruzuje jedan od nekoliko unapred
ponudenih autora, razvrstavanje elektronske poste u zeljenu i
nezeljenu (eng. spam) i slicno.
U navedenim primerima svaka instanca (bankovna transakcija,
tekst, elek- tronska poruka) se moze predstaviti nekim izabranim
skupom njenih atributa. Takode, svakoj instanci se kao atribut
moze dodati i oznaka klase kojoj instanca pripada. Problem
klasifikacije se sastoji u odredivanju vrednosti atributa klase na
osnovu
preostalih
atributa
instance.
Formalnije,
problem
klasifikacije se moze videti kao aproksimacija ciljne funkcije koja
svakoj instanci dodeljuje oz- naku klase kojoj ta instanca pripada.
Kljucno zapazanje je da je ciljna funkcija u ovom problemu
diskretna. Pri tom, u opstem slucaju, oznakama klasa se ne
mogu smisleno dodeliti numericke vrednosti niti uredenje. Dakle,
atribut klase, ciju je vrednost potrebno odrediti, je kategoricki
atribut.
Postoji veliki broj metoda kojima se ovaj problem resava. Neke
od njih su metode zasnovane na instancama (eng. instance based
classification), ucenje stabla odlucivanja (eng. decision tree
induction),
metoda
potpornih
vektora (eng. support vector
machines) i metode bajesovske klasifikacije zasnovane na
verovatnoci (eng. bayesian classification). U daljem tekstu opisac
emo prve dve pomenute metode.
11.1
172
11 Klasifikacija
xy
xx yy
173
11.1.2 N-grami
Metode masinskog ucenja su cesto formulisane tako da se
jednostavno pri- menjuju na numericke podatke, ali tesko na
podatke u nekom drugom obliku. Stoga se traze nacini da se i
drugi podaci predstave u numerickom obliku.
To cesto
podrazumeva i odredeni gubitak informacije. U slucaju problema
klasi- fikacije tekstova, proteinskih sekvenci i slicnih podataka
cesto se u svrhu pred- stavljanja podataka u numerickom obliku
koriste n-gramski profili [?].
Ako jesimbolja
databroj,
niska
S = sniske
. sza
azbukom
, gde
je N
1s2 . .S,
N nad
pozitivan
ceo
n-gram
nN
, je bilo koja
podniska
susednih
duzine
n. Na primer, za nisku sad_ili_nikad, 1-grami su: s, a, d, _, i, l, i, _,
n, i, k, a, d. 2-grami su: sa, ad, d_, _i, il, li, i_, _n, ni, ik, ka, ad. 3grami bi bili: sad, ad_, d_i, _il, ili, li_, i_n, _ni, nik, ika, kad, itd.
N-gramski profil niske je lista uredenh parova (n-gram, frekvencija)
gde je frekvencija izracunata u odnosu na sve n-grame niske.
Ovakvi profili pred- stavljaju reprezentaciju pogodnu za metode
klasifikacije i cesto se koriste za- jedno sa metodom n-najblizih
suseda.
174
11 Klasifikacija
175
narrow AI, and the systems will become generally competent. It will become obvious
how to do that. When that will happen or how it will come about, whether through
simbots or some DARPA challenge or something, I dont know. It would be a combination of those kinds of things. The other approach is to specifically engineer a system
that can learn and think. Thats the approach that [my firm] is taking. Absolutely I
think thats possible, and I think its closer than most people think five to 10 years,
tops. The two approaches outlined by Vosseither tinkering with mundane programs to
make them more capable and effective or designing a single comprehensive AGI
system speak to the long-standing philosophical feud that lies at the heart of AI
research: the war between the neats and the scruffies. J. Storrs Hall, author of Beyond
AI: Creating the Conscience of the Machine (Prometheus Books, 2007), reduces this
dichotomy to a scientific approach vs. an engineering mind-set. The neats are after a
single, elegant solution to the answer of human intelligence, Hall says. Theyre trying
to explain the human mind by turning it into a math problem. The scruffies just want
to build some- thing, write narrow AI codes, make little machines, little
advancements, use whatever is available, and hammer away until something
happens. The neat approach descends from computer science in its purest form,
particularly the war game studies of Von Neumann and his colleagues in the 1930s
and 1940s. The 1997 defeat of world chess champion Garry Kasparov by IBMs Deep
Blue computer is considered by many the seminal neat success. Up until that
moment, the mainstream scientific community generally accepted the premise that
AIs could be written to perform specific tasks rea- sonably well, but largely resisted
the notion of superhuman computing ability. Deep Blue proved that an AI entity
could outperform a human at a supposedly human task, perceiving a chess board
(Deep Blue could see 200 million board positions per second) and plotting a strategy
(74 moves ahead as opposed to 10, the human record).
S2: Precizni postupci za resavanje matematickih problema postojali su u vreme starogrckih matematicara (npr. Euklidov algoritam za odredivanje najveceg zajednickog
delioca dva broja), a i pre toga. Ipak, sve do pocetka dvadesetog veka nije se uvidala
potreba za preciznim definisanjem pojma algoritma. Tada je, u jeku reforme i novog
utemeljivanja matematike, postavljeno pitanje da li postoji algoritam kojim se (pojednostavljeno receno) mogu dokazati sve matematicke teoreme. Da bi se ovaj problem
uopste razmatrao, bilo je neophodno najpre definisati (matematicki precizno) sta je to
precizan postupak, odnosno sta je to algoritam.
S3: Dositej Obradovic (svetovno ime Dimitrije) (Cakovo, 1744 Beograd, 1811) je
bio srpski prosvetitelj i reformator revolucionarnog perioda nacionalnog budjenja i
pre- poroda. Rodjen je u rumunskom delu Banata tadasnje Austrije. Skolovao se za
kalud- jera, ali je napustio taj poziv i krenuo na putovanja po celoj Evropi, gde je
primio ideje evropskog prosvetiteljstva i racionalizma. Ponesen takvim idejama radio
je na prosve- civanju svog naroda, prevodio je razna dela medju kojima su
najpoznatije Ezopove basne, a potom je i sam pisao dela, prvenstveno programskog
tipa, medju kojima je na- jpoznatije Zivot i prikljucenija. Dositej je bio prvi
popecitelj (ministar) prosvete u Sovjetu i tvorac svecane pesme Vostani Serbie.
Njegovi ostaci pocivaju u Beogradu, na ulazu u Sabornu crkvu.
E2: The planet Mars, I scarcely need remind the reader, revolves about the sun at a
mean distance of 140,000,000 miles, and the light and heat it receives from the sun is
barely half of that received by this world. It must be, if the nebular hypothesis has any
176
11 Klasifikacija
truth, older than our world; and long before this earth ceased to be molten, life upon
its surface must have begun its course. The fact that it is scarcely one seventh of the
volume of the earth must have accelerated its cooling to the temperature at which life
could begin. It has air and water and all that is necessary for the support of animated
existence.
E3: Principia Mathematica, the landmark work in formal logic written by Alfred
North Whitehead and Bertrand Russell, was first published in three volumes in 1910,
1912 and 1913. Written as a defense of logicism (the view that mathematics is in
some significant sense reducible to logic) the book was instrumental in developing
and popularizing modern mathematical logic. It also served as a major impetus for
research in the foundations of mathematics throughout the twentieth century. Along
with the Organon written by Aristotle and the Grundgesetze der Arithmetik written
by Gottlob Frege, it remains one of the most influential books on logic ever written.
Prilikom izdvajanja n-grama koriscena je vrednost n = 3. Pri tom je iz tekstova
S1 i E1 izdvojeno po 10 najfrekventnijih n-grama. Oni ce ciniti atribute instanci na
osnovu kojih ce biti vrseno treniranje i testiranje. Trening i test skup su dati u
tabeli 11.1.
N-gram
Trening skup
Test skup
S1
E1
S2
S3
E2
E3
JE
0.012 0
0.013 0.020 0
0
9
1
1
PR
0.012
0.002 0.009
0.014
0
0
5
3
8
8
ANJ
0.007
0
0.008
0.002
0
0
6
2
7
KO
0.007
0
0.001
0.002
0
0
6
6
7
JA
0.007
0
0.003
0.004
0
0
6
3
0
JE
0.006
0
0.008
0.012
0
0
7
2
1
PO
0.006
0.000 0.014
0.008
0
0.001
7
9
7
0
6
SE
0.006
0.001
0.004
0.002
0.001 0.003
2
8
9
7
6
2
NJE
0.005
0
0.006
0.002
0
0
8
5
7
U
0.005
0
0.003
0.006
0
0
8
3
7
TH
0
0.021 0
0
0.027 0.017
2
0
5
THE
0
0.014
0
0
0.020
0.019
8
2
1
HE
0
0.012
0
0
0.018
0.012
0
5
7
ING
0
0.008
0
0
0.001
0.003
8
7
2
NG
0
0.007
0
0
0.003
0.004
8
4
8
CO
0.000 0.007
0
0
0.005
0
4
4
1
ER
0.000
0.006
0
0
0.005
0.003
9
9
1
2
ND
0
0.006
0
0
0.010
0.007
5
1
9
TO
0.001 0.006
0.004 0
0.003
0.001
8
5
9
4
6
TO
0.000
0.006
0.003
0
0.003
0.001
9
5
3
4
6
Table 11.1: Trening i test skup za klasifikaciju tekstova prema jeziku.
Za svaki 3-gram prikazana je njegova frekvencija u tekstu S1 i E1.
177
..
.
n
d(x, y) =
(xi yi )
,
2
i=1
11.2
178
11 Klasifikacija
179
Neka je Primerivi podskup od Primeri takav da svi njegovi elementi imaju vrednost vi atributa A
Ako je Primerivi prazan, onda na dodatu granu iz
R dodati list sa oznakom najcesce klase u
P rimeri
U
suprotnom
na dodatu
granu nadovezati
podstablo
ID3(Primeri
v ,Atributi \ {A})
i
3.Vratiti R.
Entropija(S) =
pi log2 pi
i=1
180
11 Klasifikacija
Velici
na
Velika
Mala
Mala
Mala
Velika
Ishran
a
Meso
Meso
Biljke
Biljke
Meso
Otrovnost
Broj
nogu
4
4
4
4
4
Neotrovn
Neotrovn
a
Neotrovn
a
Neotrovn
a
Otrovna
Parnost
visine
Neparna
Neparna
Parna
Neparna
Neparna
2
0
3
0 = 0.971
Opasn
a
Da
Ne
Ne
Ne
Da
181
Slicno se dobija:
Dobitak(S, Ishrana) = 0.42
Dobitak(S, Otrovnost) = 0.322
Dobitak(S, Broj nogu) = 0
Dobitak(S, Parnost visine) =
0.171
Odavde se vidi da je najbolji atribut za testiranje u prvom cvoru atribut
Velicina. Stablo koje se u ovom slucaju dobija primenom algoritma ID3 je dato na
slici11.3. U slucaju datih primera za ucenje, dobijeno stablo je bilo ocigledan uzbor
i bez primene bilo kakve metodologije.
VELIC INA
mala
NE
velika
DA
Velici
na
Mala
Mala
Velika
Ishran
a
Meso
Biljke
Biljke
Otrovnost
Broj
nogu
Otrovna
0
Otrovna
6
Neotrovn
0
a
Table 11.3: Dodatni primeri za trening
Parnost
visine
Parna
Parna
Parna
Opasn
a
Da
Da
Ne
182
11 Klasifikacija
PARNOST VISINE
parna
neparna
OTROVNOST
neotrovn
a
otrovn
a
VELIC
INA
mala
ISHRANA
mes
o
biljke
mes
o
DA
otrovna
neotrovna
ISHRANA
velika
biljke
NE
OTROVNOST
DA
VELIC INA
mal
a
DA
velika
NE
ISHRANA
biljke
NE DA
meso
NE DA
3
3 2
2
Entropija(S|Mala) = log2 log2 = 0.971
5
5 5
5
1
1 2
2
Entropija(S|V elika) = log2 log2 = 0.918
3
3 3
3
5
3
Dobitak(S, V elicina) = 1 0.971 0.918 = 0.049
8
8
Slicno se dobija:
Dobitak(S, Ishrana) = 0.189
Dobitak(S, Otrovnost) = 0.549
Dobitak(S, Broj nogu) = 0
Dobitak(S, Parnost visine) =
0.156
Posle dodavanja novih instanci, najbolji atributi za testiranje su Otrovnost i
Ishrana. Rekurzivnom primenom ovog postupka dobija se stablo na slici11.5. Ono je
ocigledno manje od rucno konstruisanog i ima relevantnije atribute pri vrhu stabla,
dok se dva nebitna atributa uopste ne testiraju.
Kao i drugi metodi ucenja, ID3 se moze shvatiti kao pretraga
prostora hipoteza za onom koja najbolje odgovara podacima za
trening. Prostor pretrage je pot- pun prostor svih stabala odlucivanja.
Svaka diskretna funkcija se moze pred- staviti nekim stablom
odlucivanja, tako da se ne moze desiti da ciljna funkcija nije u
prostoru hipoteza. ID3 u svakom trenutku cuva samo jednu
hipotezu, pa je nemoguce znati koliko ima drugih hipoteza koje su
saglasne sa podacima za trening. Posto nema vracanja u pretrazi
(backtracking), vec se stablo gradi
183
OTROVNOST
neotrovna
otrovna
VELIC INA
mala
NE
DA
velika
ISHRANA
biljke
NE
meso
DA
11.3
184
11 Klasifikacija
r+o
n
U nekim slucajevima preciznost nije adekvatna mera. Ukoliko
postoje dve klase i jedna je znacajno manja od druge, moguce je
dobiti visoku preciznost tako sto ce se sve instance klasifikovati u
vecu grupu. Takav je slucaj sa testovima koji ustanovljavaju da li je
pacijent oboleo od neke bolesti. Neka bolest ima samo 1% ljudi u
populaciji. Test koji bi uvek prijavljivao da pacijent nema bolest bi imao
preciznost od 99%, ali je neupotrebljiv. Stoga je u takvim slucajevima
bitna mera osetljivost klasifikatora, odnosno njegova mogucnost da
primeti in- stance koje se traze (npr. bolesne pacijente). Opstije,
neka su date dve klase C+ i C koje smatramo pozitivnim i
negativnim primerima neke kategorije.
Na primer pacijenti koji imaju i pacijenti koji nemaju neku bolest.
Tada pod
stvarno pozitivnim instancama podrazumevamo pozitivne instance
kojie su prepoznate kao pozitivne. Pod stvarno negatinvim, instance
koje su negativne i prepoznate kao negativne.
Pod lazno
pozitivnim podrzaumevamo instance koje su negativne, ali su
greskom u klasifikaciji proglasene pozitivnim i pod lazno
negativnim podrazumevamo instance koje su pozitivne, ali su
greskom klasifikovane kao negativne.
Brojeve ovih instanci
oznacavamo redom SP , SN , LP i LN . Ove brojeve obicno
zapisujemo u takozvanoj matrici konfuz- ije koja po vrstama prikazuje
kako su instance klasifikovane, a po kolonama prikazuje koje su
stvarne klase instanci. Ova matrica je prikazana tabelom11.4.
KP
KN
P
SP
LN
N
LP
SN
Table 11.4: Vrste matrice konfuzije u zbiru daju broj instanci koje su
klasi- fikovane pozitivno (KP) i broj instanci koje su klasifikovane
negativno (KN). Kolone u zbiru daju broj instanci koje su stvarno
pozitivne (P) ili negativne (N).
Kada su poznati ovi brojevi, udeo stvarno pozitivnih instanci,
odnosno os- etljivost je definisana kao:
USP =
SP
SP +
LN
185
ULP =
LP
LP +
SN
Preciznost se moze
izracunati kao
Prec =
ULN =
LN
LN + SP
SP + SN
SP + LP + SN + LN
Primer 11.4 Neka je testirano 400 ispitanika. Od toga 4 imaju bolest zbog koje se
testiraju, a ostali ne. Neka je test dao pozitivnu klasifikaciju u slucaju 2 osobe koje obe
imaju bolest. Matrica konfuzije data je tabelom11.4
N
0
39
6
Table 11.5: Matrica konfuzije vezana za klasifikaciju obolelih.
KP
KN
P
2
2
186
11 Klasifikacija
11.4
Preterano prilagodavanje modela podacima
za trening
Vrlo znacajna tema pri evaluaciji naucenog modela je moguc
nost da se pri- likom treninga model previse prilagodi
specificnostima podataka za trening i da zbog toga daje lose
rezultate kada se primeni na drugim podacima. Naime, podaci za
trening mogu imati odredene karakteristike kao plod ciste
slucajnosti, odnosno suma, ali takode mogu predstavljati i
pristrasan uzorak celog skupa podataka. U praksi, podatke je cesto
tesko sakupiti i obicno se mora raditi sa podacima koji su
raspolozivi bez obzira na njihove manjkavosti. Stoga, iako je
potrebno da se postigne visok nivo preciznosti prilikom treniranja
modela, takode je potrebno paziti da ne dode do preteranog
prilagodavanja podacima.
Osnovni razlog zbog koga dolazi do preteranog prilagodavanja
podacima je bogatstvo prostora hipoteza, odnosno skupa dopustivih
modela. U bogati- jem skupu je lakse naci model koji dobro
odgovara podacima. Primera radi, ukoliko se pri ucenju dopustaju
samo stabla dubine 1, koja testiraju samo jedan atribut svake
instance, jasno je da takva stabla ne mogu lako postici visoku
preciznost klasifikacije. Ona predstavljaju previse grube modele
koji ne mogu da opisu znacajne zakonitosti u podacima. S druge
strane, ukoliko se dozvoli koriscenje stabala proizvoljne dubine,
ukoliko je potrebno, moguce je naci sta- blo koje je u stanju da
razlikuje bilo koje dve instance, odnosno da postigne savrsenu
preciznost na podacima za treniranje. Medutim, stabla koja su vrlo
duboka i precizno opisuju svaku i najnebitniju specificnost
podataka za tren- ing, se u praksi pokazuju nepouzdanim, posto
siri skupovi podataka ne moraju uvek imati sve specificnosti skupa
podataka za trening.
Ovde se uocava znacaj ranije pomenutog koncepta apstrakcije.
Adekvatna hipoteza bi trebalo da apstrahuje, odnosno zanemari,
takve specificnosti.
U primeru prepoznavanja racunarksih
clanaka mogli smo izostaviti ogranicenje da se reci moraju
nalaziti u nekom recniku racunarske terminologije.
U tom
slucaju, ukoliko bi se koristile stranice koje pise mala skupina
autora, moguce je da bi se njihova imena mogla pokazati kao
visokofrekventne reci karakter- isticne za racunarske clanke,
sto bi bio vrlo los kriterijum prepoznavanja cim bi se pojavili
racunarski clanci koje pisu drugi autori.
U vezi sa prethodnim razmatranjem treba primetiti dve zakonitosti. Sa
povecanjem dozvoljene dubine stabla, povecava se moc ucenja,
odnosno verovatnoca da ce u skupu dopustivih modela biti naden onaj
koji dobro opisuje podatke.
Zato se sa povecanjem dozvoljene dubine stabala, smanjuje
greska klasifikacije. Dalje, ukoliko stablo dubine, na primer, 1 ima
visoku preciznost, to znaci da je u podacima nadena jaka i vrlo
jednostavna zakonitost. Stoga je za ocekivati da ona postoji i u
sirem skupu podataka, odnosno ocekivano odstupanje greske na
sirem skupu podataka od greske koja se primecuje na trening
skupu bi trebalo da bude malo. S druge strane, ukoliko je stablo
visoke preciznosti vrlo duboko, to znaci da je uocena zakonitost u
podacima vrlo kompleksne prirode i stoga moze biti specificna
samo za podatke u trening skupu.
Odnosno, ocekivano
odstupanje greske na sirem skupu podataka od greske na trening
skupu moze
biti veliko. Na slici11.6prikazane su tri krive. Jedna, opadaju ca,
predstavlja
187
188
11 Klasifikacija
Glava 12
Regresija
Problem regresije predstavlja problem predvidanja vrednosti
neprekidnog atributa neke instance na osnovu vrednosti njenih drugih
atributa. Dakle, regresija se moze videti kao aproksimacija
neprekidne ciljne funkcije. Umesto o atribu- tima, u terminologiji
regresije, cesce se govori o promenljivim. Formalno, re- gresiona
funkcija koja povezuje zavisnu promenljivu Y i nezavisne promenljive X1,
X2, . . . , Xn je definisana izrazom
r(x1 , x2 , . . . , xn ) = E(Y |X1 = x1 , X2 = x2 , . . . , Xn = xn )
gde E oznacava matematicko ocekivanje. Promenljiva Y se
naziva odzivnom promenljivom, a promenljive Xi prediktorima.
Problem regresije se svodi na problem aproksimacije regresione
funkcije r. Ovo se moze raditi razlicitim metodama koje uvode
razlicite pretpostavke o regresionoj funkciji. Najjednos- tavnije su
metode linearne regresije.
Primene regresije su mnogobrojne vec u najjednostavnijoj,
linearnoj, vari- janti. One ukljucuju procenu rizika u ulaganjima,
procenu uticaja prerade rude na ekosistem, procenu smrtnosti u
zavisnosti od zivotnih navika i slicno.
190
12 Regresija
(12.1)
y = 0 + 1 x1 + 2 x2
y = 0 + 1 cos(x1 ) + 22 x2 + 3 ex3
y = 0 + 1 x1 + 2 x2 + 3 x1 x2
Sledeci primeri ne predstavljaju linearne modele:
1 x1
y 2+x2
=
cos(1 x1 )2 x2
y
e 3 x3
=
Pored osnovnog zadatka modeliranja veze izmedu odzivne
promenljive i prediktora radi predikcije odzivne promenljive,
linearna regresija je korisna i za ustanovljavanje jacine uticaja
nekog prediktora na odizvnu promenljivu. Naime, vece apsolutne
vrednosti koeficijenata oznacavaju jaci uticaj predik- tora uz koji
stoje. Znak koeficijenta odreduje smer uticaja prediktora. Takode se
moze meriti statisticka znacajnost ovog uticaja, ali se radi
jednostavnosti u nastavku fokusiramo samo na osnovni problem
odredivanja koeficijenata i proveru kvaliteta naucenog modela.
Najjednostavniji slucaj linearne regresije je predvidanje odzivne
promenljive Y na osnovu samo jednog prediktora X. Primera
radi, mozemo govoriti o predvidanju telesne tezine u zavisnosti
od visine. Primetna je zakonitost da su visoki ljudi uglavnom tezi od
niskih ljudi. Tu zavisnost je potrebno modelirati. Medutim, postoje i
odstupanja. Kako su odstupanja od prosecne tezine utoliko redja
sto su veca, ova odstupanja cemo smatrati sumom i necemo ih
modelirati.
Linearni model je u ovom slucaju oblika
y = 0 + 1 x
sto je standardna jednacina linearne funkcije.
Na slici12.1je prikazano 100 ta caka pri cemu svaka odgovara
jednom ispi- taniku. Koordinata x predstavlja visinu, a y telesnu
tezinu. Na slici se moze primetiti opsti trend linearnog povec
anja telesne tezine u zavisnosti od visine koji je prikazan pravom.
Takode, primetno je i da mali broj tacaka znacajno odstupa.
Ovakve tacke nazivamo izuzecima (eng. outliers). Prikazana prava
predstavlja linearni model datih podataka. Metod kojim se do njega
dolazi bice prikazan u nastavku.
U slucaju koriscenja opste jednacine linearnog modela12.1,
mogu ce je ukljuciti veci broj prediktora pri predvidanju odzivne
promenljive. Iz primetne varija- bilnosti telesne tezine u odnosu na
regresioni model, shvata se da visina nije dovoljna da u potpunosti
objasni variranje telesne tezine. Novi prediktori koji
191
100
120
60
40
80
150
160
170
180
190
200
Figure 12.1:
Primer jednostavne regresije kojom se predvida
telesna tezina na osnovu visine.
bi vodili ka poboljsavanju predvidanja mogu da se odnose na
nacin zivota poje- dinaca koliko vremena dnevno provode u
sedecem polozaju, koliko se bave sportom, koliko kalorija unose
dnevno i slicno. Umesto prave, u ovakvom slucaju regresioni
model bi odredivao jednu hiperpovrs.
Osnovni kriterijum izbora koeficijenata linearnog modela je
smanjivanje odstupanja izmedu vrednosti koje model predvida i
vrednosti koje odzivna promenljiva ima u podacima. Ovaj problem
se najcesce se formulise kao prob- lem minimizacije (nalazenja
minimuma) srednjekvadratne greske
n
1.
(yi yi )2
E(y) =
n
i=1
1 x11
X = 1 x21
. .
.. ..
1 xn1
x1m
x2m
.
..
. .
xn2 xnm
.
x12
x22
1
yy
2
Y = .
..
yn
192
12 Regresija
12.2
12.3
193
E(y) = 1 .
(yi yi )2
n
i=1
1
n
.x)(yi y)
1 .n
2
2
(x
x)
i=1 i
i=1(yi y)
n
.nn
i=1(xi
E(y) = 1 .
(yi yi )2
n
i=1
odnosno da vazi
n
1.
n
i=1
194
12 Regresija
195
10
15
20
30
20
10
10
20
30
12 Regresija
10
20
196
10
20
50
60
70
80
90
100
12.4
Preterano prilagodavanje modela podacima
za trening
Fenomen preteranog prilagodavanja podacima za trening koji je
objasnjen u kontekstu klasifikacije, moguc je i u problemu regresije
(ne nuzno linearne). Zbog toga cemo iskoristiti priliku da ga jos
jednom prokomentarisemo u drugacijem okviru masinskog ucenja.
Osnovni smisao preteranog prilagodavanja trening podacima je i dalje
isti da se model koji ima dobre mere kvaliteta na trening podacima,
lose ponasa na drugim podacima. Medutim, novi primeri doprinose razumevanju veze izmedu bogatstva skupa dopustivih modela i
kvaliteta ucenja.
Na slici12.6prikazan je jedan skup od 20 instanci za trening koje
se sas- toje od jednog prediktora i odzivne promenljive.
Linearni model je naucen linearnom regresijom. Moze se
primetiti da on ne prolazi direktno kroz tren- ing podatke, odnosno
za svaki trening podatak postoji manja ili veca greska kada se
vrsi predvidanje odzivne promenljive na osnovu datog
prediktora. Drugacije receno, linearni model se ne moze
potpuno prilagoditi podacima za trening. Linearne modele
mozemo smatrati jednostavnim i nefleksibilnim. S druge strane,
ocigledno je da on dobro opisuje opsti linearni trend koji se u
podacima vidi. Slika12.7prikazuje aproksimaciju datih podataka kori
scenjem modela iz skupa svih polinoma proizvoljnog stepena.
Izabrani polinom prolazi kroz sve tacke koje predstavljaju trening
podatke i stoga je greska tog modela na trening podacima jednaka
nuli. Medutim, posmatrajuci globalni izgled iz- abranog modela,
vidi se da on ne opisuje nikakvu zakonitost u podacima. Os-
197
15
20
10
10
15
20
12 Regresija
15
20
198
10
10
15
20
Glava 13
Klasterovanje
200
13 Klasterovanje
Deo IV
Resenja zadataka
Glava 14
Resenja zadataka
1.
suprotno pretpostavimo da formula (D A)
B Pretpostavimo
nije
tautologija,
da
je Iv ((D
A) tj. pretpostavimo da postoji valuacija v takva
B) = 0.I Iz(D)
Iv ((D
A)
=
B) 1= i0Isledi
Iv (D
A) = 1 (A
i Iv(C)
B) =D
0, je
a
odatle
=
1,
IIv (A)
=
1. Formula
v
v (B)
tautologija,
pa =
vazi
C) da
D)
= 1.
Kako
je
Iv (D)
=
0,
mora
da
v ((A sledi
vazi
I
(A
C)
0,
odakle
je
I
(C)
=
0
(jer
je
I
(A)
=
1).
S
vstrane, formula A (B C) je vtautologija, pa vazi
v
druge
Iv (A
(B
C))
=
1.
Kako
je
I
(A)
=
1,
mora
da
vazi
I
(B
C)
=
1.
v
v
Vazi Iv (B) = 1, pa mora da vazi i Iv (C) = 1, sto je
u kontradikciji
sa Iv sledi
(C) =da
0. jeDakle,
polazna
je bila
pogresna,
odakle
formula
(D A)pretpostavka
B tautologija.
10.
tautologija:
(A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
(B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
C))
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
(((A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
C)
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
D)
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
((D
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
A)
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B))
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
Formula
(A
(B
C)) (((A
C) D) formula
((D A) A
B))(Bje,dakle,
tautologija
i,pa,
nana
osnovu
pretpostavke,
C) je
tautologija,
osnovu
teoreme2.1Formula
, sledi da
je
i
formula
((A
C)
D)
((D
A)
B)
tautologija.
((A
C)
D) (A
((D
A)
B)
je
tautologija
i,
na
osnovu
pretpostavke,
formula
C) (D
D je
tautologija,
pa na osnovu teoreme2.1, sledi da je i
formula
A)
B tautologija.
11.Slicno,
Ako je v(p) = 0 i v(q) = 0, onda je Iv (A q) = 0 i Iv ((A q) p) = 1.
0, pa je ako je v(p) = 1 i v(q) = 1, onda je Iv (A q) = Iv (A) i Iv (p) =
204
14 Resenja zadataka
0
Iv (A)
0
Iv (A)
q)
0
1
0
1
1
1
1
1 Iv (A)
1
1
0
0
p)
0
0
1
1
Iv (A)
Iv (A)
Iv (A)
1
((p
0
0
1
1
1
1
1
0
1
0
1
0
q)
0
1
0
1
Iv (A)
Iv (A)
Iv (A)
1
A)
.
.
.
n
1
2
n
onda
je tacna
A2 ,u .toj
. ., valuaciji
An . S druge
strane,
1 , je
kako vazi
A1 , Ai2 ,svaka
. . . , Anod|= formula
B, sledi Ada
tacna
i
formula
B,
sto
protivreci
prethodnom
zakljucku
da
formula
B
tacna
Dakle, pogresna
da (A1 nije
A2
. . . Aun )toj
valuaciji.
B nije tautologija,
tj. vazi |=je
(Apretpostavka
1 A2 . . . An ) B.
Pretpostavimo
da
vazi
|
=
(A
.
.
.
A
)
B.
1
2
n
Pretpostavimo
vaziodA1 , A2 , . . . , An |= B. To znaci da postoji
valuacija u kojojdajene
svaka
formula A1 , A2 , . . ., An tacna, a formula B nije. U toj valuaciji je tacna i
formula
(A
. . .da
Aformula
formula (A1 A2 . . . An ) B.
1 A2sledi
n ), a netacna
Odatle
(A1 Aje
2 . . . An ) B nije tautologija,
sto
je je
suprotno
pretpostavci.
B, sto
i trebalo
dokazati. Dakle, mora da vazi A1 , A2 , . . . , An |=
B)
= 0. za
Odatle
sledi
I (A) {=A}1
i Iviz(B)
0.BDakle,
v je
model
skup
formula
, pa
, A= |=
sledi davaluacija
je valuacija
v
model
formulu
B,sav I (B)
sto je iuzasuprotnosti
= 0. Dakle, pretpostavka je bila pogresna, pa
v
sledi
Iv (A B) = 1, tj. |= A B, sto je i trebalo dokazati.
Pretpostavimo
vaziformule
|= Aiz skupa
B i dokazimo
, Au |nekoj
= B.
Pretpostavimo
da da
su sve
{A} tacne
valuaciji
v i dokazimo
je
u toj valuaciji
tacna idaformula
B. U valuaciji v su tacne sve formule iz
skupa
, pa iz |= A B sledi Iv (A B) = 1. Iz Iv (A) = 1 i Iv (A B) = 1
sledi Iv (B) = 1 (ako bi vazilo Iv (B) = 0, iz Iv (A) = 1 i Iv (B) = 0 bi sledilo
Iv (A B) = 0). Dakle, valuacija v je model za formulu B, tj. , A |= B, sto je i
trebalo dokazati.
15Neka je v proizvoljna valuacija. Tada je Iv (A1) = Iv (A2) i Iv (B1) = Iv (B2).
Resenja zadataka
205
.
(a)
Iv (A1) = .
=
1, Iv (A1) = 0
0, inace
1, Iv (A2) = 0
0, inace
= Iv (A2) .
.
(b)
Iv (A1 B1) = .
=
1, Iv (A1) = 1 i Iv (B1) = 1
0, inace
1, Iv (A2) = 1 i Iv (B2) = 1
0, inace
= Iv (A2 B2) .
.
(c)
Iv (A1 B1) = .
=
= Iv (A2 B2) .
.
(d)
Iv (A1 B1) = .
=
0, Iv (A1) = 1 i Iv (B1) = 0
1, inace
0, Iv (A2) = 1 i Iv (B2) = 0
1, inace
= Iv (A2 B2) .
.
(e)
Iv (A1 B1) =
=
1, Iv (A1) = Iv (B1)
0, inace
1, Iv (A2) = Iv (B2)
0, inace
= Iv (A2 B2) .
16Pretpostavimo da je A tautologija. Neka je v proizvoljna
valuacija. Neka je w valuacija u kojoj su iskaznim slovima p1, p2, .
. ., pn dodeljene redom vred- nosti Iv (A1), Iv (A2), . . ., Iv (An) i u kojoj
je svakom iskaznom slovu p koje se pojavljuje u A, a razlicito je
od p1 , p2 , . . ., pn dodeljuje vrednost Iv (p). Indukcijom nad skupom iskaznih formula moze se dokazati da vazi Iv
(B) = Iw (A). Iskazna formula A je tautologija, pa je ona tacna
u svakoj valuaciji. Dakle, Iw (A) = 1, odakle je Iv (B) = 1.
Kako je
v proizvoljna valuacija, sledi da je
206
14 Resenja zadataka
R(A)
0
1
0
1
A
1
0
0
1
q
0
1
0
1
R(R(B))
0
1
0
1
R(B)
1
0
0
1
B
0
1
0
1
Resenja zadataka
207
(b)jednaka
Neka jeAkanonska
forma
formule A
A2
. .disjunktivna
. ABmjednaka
i nekanormalna
je
1
normalna
forma
formule
B1 kanonska
B2 ekvivalencije
. . . konjunktivna
Bn. Formula
A
B
je
tautologija,
pa
na
osnovu
logicke
(P
Q) R (P R) (Q R) i
jednostavnog
induktivnog
zakljucujemo
da je
svaka
od formula
Ai Bargumenta
(iA = 1,
Analogno,
kako
je formula
2,B . .(i. ,=m)
1,tautologija.
2,
. .R).
, m)
i ekvivalencije
tautologija,
na
osnovu
logicke
P
(Q
(P
Q) (P R)
induktivnog
arguzakljucujemo
da ijejednostavnog
svaka od formula
Ai Bj (i =
1, 2, .menta
. . , m,
j = 1, 2, . . . , n) tautologija. To je moguce samo ako za svaki
par Ai , Bj postoji literal lij koji se u Ai pojavljuje kao
konjunkt, a u Bj kao disjunkt. Neka je formula C jednaka
m
_ ^
i=1 j=1
ij
j=1
Vn
da je Ai j=1 lij tautologija (jer je formula P Q P
tautologija).
Dodatno, koriscenjem tautologije ((P Q) (R S)) (P R
m
_ n^
lij
i=1 j=1
tautologije
((P
Q)P
(RQtautologija).
S)) (P R Dodatno,
Q
S) moze se matematickom indukcijom dokazati da je formula
j=1
Vn
lij
B1 B2 . . . Bn tautologija. Kako to vazi za svako i (i = 1, 2, . . . ,
m), na
osnovu logicke ekvivalencije (P R) (Q R) (P Q) R
sledi
da je i
m ^
n
_
lij B1 B2 . . . Bn
i=1 j=1
pretpostavimo
da postoji
v takva
da je Ivvaluacija
(A) = 0. Na
osnovu
definicije3.10
, iz Iv valuacija
(A) = 0 sledi
da postoji
w
takva
je vda
xje
w Ii I(p(x))
w (p(x)= p(f (x))) = 0. Na osnovu iste definicije,
odatle da
sledi
w
1 i Iw (p(f (x))) = 0. Neka je w(x) = n, gde je n element skupa N. Tada je
1 = Iw (p(x)) = pI (n) i 0 = Iw (p(f (x))) = pI (fI (n)) = pI (n + 2), odakle sledi
208
14 Resenja zadataka
da
je n parann. broj,
a Ivn(A+) =2 1neparan,
sto je netacno
za svaki
prirodan
Dakle,
za Asvaku
valuaciju
v, tj. L-struktura
D = (N, I Lbroj
) je model
date
formule
.
30. Neka
je ako
v proizvoljna
valuacija.
L-struktura
D
je ako
model
date
formule
je Ivda
((je
x)(p(x,
(x)) I p(f
(x), x)) =
1, tj.
za
svaku
valuaciju
w takvu
v xmogucnosti
wf vazi
p(f
(x),
= 1.
w (p(x,
Dovoljno
je razmatrati
w(x)f (x))
= a,
w(x)
=
b ix))
w(x)
= c.
Vrednosti
Iw (p(x, f (x)) p(f (x), x)) = 1 mogu tada biti prikazane i u vidu tablice:
w(x)
a
b
c
fI (w(x))
b
a
a
pI (w(x), fI
(w(x)))
1
0
Dakle,
proizvoljnu
je Iv(p(f
x)(p(x,
f (x)) p(f (x), x)) =
1, pa
je D za
model
formulevaluaciju
(x)(p(x, fv (x))
(x), x)).
31. Neka
(, bi
, ar),
(D,
= {}I,L ) bio
= {pmodel
} i ar(p) formule
= 2, D = A{a,treba
b} i neka
je
L (p) =jepL .=Da
Iproizvoljnu
D =
za
I
valuaciju
vtakvu
vazi
Iv ((je
x)(vy)(p(x,
y)
p(y,
x)))
= da
1,
tj.
za
svaku
valuaciju
w
da
w
vazi
I
((
y)(p(x,
y)
x
w
p(y, treba
x))) =da1.vazi
Postoje
mogucnosti:
w(x) = a i w(x) = b i za
obe
Iw ((dve
y)(p(x,
y)
p(y,
Za postoji
svaku
valuaciju
w
postoje
w
jedna,vazi
za koju
r
w
(y)
=
a
i
druga,
za
koju
vazi
w
(y)
=
b
(pri
tome
i wr vazi
(x) =
t (p(x, y) p(y, x)) = 1 ako je Iwt (p(x, y)) = 0 ili Iwt (p(y, x))
w(x)).
Vazi
I
w
= 1, tj. ako je Iwt (p(x, y)) = 0 ili Iwt (p(y, x)) =
0. Dakle, vazi:
(w(x) = a i Iw ((y)(p(x, y) p(y, x))) = 1) i (w(x) = b i Iw ((y)(p(x, y)
p(y, x))) = 1)
odakle sledi
(w(x) = a i ((wr (y) = a i Iwt (p(x, y) p(y, x)) = 1) ili (wr (y) = b
i Iwt (p(x, y) p(y, x)) = 1))) i (w(x) = b i ((wr (y) = a i Iwt (p(x, y)
p(y, x)) = 1) ili (wr (y) = b i Iwt (p(x, y) p(y, x)) = 1)))
odakle sledi
((w(x) = a i wr (y) = a i Iwt (p(x, y) p(y, x)) = 1) ili (w(x) = a i
r
w (y) = b i Iwt (p(x, y) p(y, x)) = 1)) i ((w(x) = b i wr (y) = a i Iwt (p(x, y)
p(y, x)) = 1) ili (w(x) = b i wr (y) = b i Iwt (p(x, y) p(y, x)) = 1))
odakle sledi
((wr (x) = a i wr (y) = a i Iwt (p(x, y) p(y, x)) = 1) ili (wr (x) = a i
r
w (y) = b i Iwt (p(x, y) p(y, x)) = 1)) i ((wr (x) = b i wr (y) = a i Iwt (p(x, y)
p(y, x)) = 1) ili (wr (x) = b i wr (y) = b i Iwt (p(x, y) p(y, x)) = 1))
odakle sledi
((wr (x) = a i wr (y) = a i (Iwt (p(x, y)) = 0 ili Iwt (p(y, x)) = 0)) ili (wr (x) = a
r
i w (y) = b i (Iwt (p(x, y)) = 0 ili Iwt (p(y, x)) = 0))) i ((wr (x) = b i wr (y) = a i
(Iwt (p(x, y)) = 0 ili Iwt (p(y, x)) = 0)) ili (wr (x) = b i wr (y) = b i (Iwt (p(x, y)) = 0
ili Iwt (p(y, x)) = 0)))
odakle sledi
((pI (a, a)) = 0 ili pI (a, a)) = 0) ili (pI (a, b) = 0 ili pI (b, a) = 0)) i ((pI
(b, a)) = 0 ili pI (a, b) = 0) ili (pI (b, b) = 0 ili pI (b, b) = 0))
Resenja zadataka
209
odakle sledi
(pI (a, a)) = 0 ili pI (a, b) = 0 ili pI (b, a) = 0) i (pI (b, a)) = 0 ili pI (a, b) = 0 ili
pI (b, b) = 0)
Da bi L-struktura D bila model za datu formulu mora da vazi (pI (a, a))
=0
ili
pI (a, b) = 0se
ili moze
pI (b, a) proveriti
= 0) i (pI da
(b, a))
= 13
0 ili
pI ukupno
(a, b) = 016)
ili funkcija
pI (b, b) =p0).
Neposredno
ima
(od
I :
D2
{0, 1} koje zadovoljavaju taj uslov. Svakoj od tih funkcija odgovara po jedan
trazeni model (do na izomorfizam).
32. Neka je L = (, , ar), pri cemu je = {f, a}, = {p}, ar(f ) = 2, ar(a) = 0
i ar(p) = 2.
Neka je D = Z, I L (f ) = fI , I L (a) = aI i I L (p) = pI , pri cemu je fI (z1 , z2 )
=
zz1 +
z2 (zDokazimo
1, z2 Z), aI = 0 i pI (z1, z 2)L = 1 ako i samo ako je z1 = z2 (z1,
Z).
da
je D = (D,
I ) model
formule.
Dokazimo
2 za
da
proizvoljnu
valuaciju
v vazi
Iv ((date
x)(
y)p(f
(x, y),
a)) = 1.v
Pretpostavimo
suprotno
y)p(f
pretpostavimo
da
postoji
valuacija
za
koju
vazi
I
((
x)(
(x,
y),
a))
=
0.
Tada,
na
osnovu
v
definicije3.10
,
sledi
da
postoji
valuacija
w
takva
da
je
w
Iw
x v i To
((
y)p(f
(x, y),da
a)) za= svaku
0 (neka
je u tojwvaluaciji
w(x)
=
z wZ).
r takvu da
r z,
dalje
znaci
valuaciju
je
w
(dakle,
r
y
t
vazi
w
(x)
=
z)
i
vazi
I
(p(f
(x,
y),
a))
=
0.
Medutim,
u
valuaciji
u
r
kojoj
je =
w (y)
=0)z=vazi
Iwwt (p(f
(z), 0)
p (0,
1, sto
je (x, y), a)) = pI (fI (z, z), 0) = pI (z +
I
u
kontradikciji bila
sa Iwt (p(f (x, tey),
a))da=za0.proizvoljnu
Dakle, valuaciju
polazna
pretpostavka
vformule.
vazi Iv ((x)(je
y)p(f (x,pogresna,
y), a)) = 1, tj.sledi
L-struktura
D je model
date
L
L
L
Neka je D = N, I (f ) = fI , I (a) = aI i I (p) = pI , pri cemu je fI (n1 , n2 )
=
n
1 + n2 (n1, n2 N), aI = 0 i pI (n1, n2) = 1 ako i Lsamo ako je n1 = n2
(n
Dokazimo
da jevaluacija
D = (D,
) koju
kontramodel
1, n2 N).
formule.
Dokazimo
da
postoji
v Iza
vazi
Iv date
((x)
(valuaciju
y)p(f (x, vy),
a))
=
0.
Pretpostavimo
suprotno
da
za
proizvoljnu
vazi Iv ((x)(y)p(f (x, y), a)) = 1.
T
ada, na
sledi (x,
da za svaku
valuaciju
takvu
daosnovu
je
w xdefinicije3.10
vi neka
vazijeIww(x)
((,y)p(f
je Iw
w
proizvoljna
valuacija
=
n, uacija
gdey),jewa))
=N 1.ida
nNeka
>
0.
rntakva
r Iz
((
y)p(f
(x,
y),
a))
=
1
sledi
da
postoji
valje
w
y ww
r
t (p(f (x, y), a)) =
(dakle, vazi w (x) = n) i vazi
I
w
1. Pretpostavimo da je wr (y) = m, m N. Tada vazi Iwt (p(f (x, y), a))
=
pI (fI (n, m), 0) = pI (n + m, 0). Medutim, pI (n + m, 0) je jednako 1 samo
ako je
n + m = 0, sto nije tacno ni za koju vrednost m, m N (jer je n > 0). Dakle,
polazna pretpostavka je bila pogresna, te sledi da postoji valuacija v za koju
vazi
Iv ((x)(y)p(f (x, y), a)) = 0, tj. L-struktura D je kontramodel date formule.
33. Neka je L = (, , ar), pri cemu je = {f }, = {p}, ar(f ) = 1, ar(p) =
2. (a)Neka je D = (N, I L ) i I L (f ) = fI , I L (p) = pI , pri cemu
je fI (n) =
n + 1 i pI (n1 , n2 ) = 1 ako i samo ako je n1 < n2 . Dokazimo da je Lstruktura
D
date
tj. dokazimo suprotno
da za svaku
valuaciju
v model
vazi
Iv (A)formule
= 1. A,Pretpostavimo
pretpostavimo
da postoji
valuacija
v takva
da je
Iv (A) =p(x,
0.
Na
osnovu
definicije3.10
,
sledi
da
I
((
x)(p(x,
f
(x))
v
x))) = 0 ili Iv ((x)(y)(z)(p(x, y) p(y, z)
p(x, z))) = 0.
Pretpostavimo da je Iv (x)(p(x, f (x)) p(x, x)) = 0. Odatle sledi
210
14 Resenja zadataka
da postoji valuacija w takva da je w x v takva da je Iw ((p(x, f (x))
p(x, x))) = 0. Pretpostavimo da je u toj valuaciji w(x) = n, gde je
n N. Iz Iw ((p(x, f (x)) p(x, x))) = 0 sledi da je Iw (p(x, f (x))) =
0 ili Iw (p(x, x)) = 0, tj. da je pI (w(x), fI (w(x))) = 0 ili pI (w(x), w(x))
=
tj. dabroj
nijen,n n<n N.
+ 1 ili da je n < n, sto nije ispunjeno ni
za1,jedan
0.
Pretpostavimo
da jepostoji
Iv ((x)(valuacija
y)(z)(p(x, y)
takva
p(y, z) da
p(x,
z)))
Odatle
sledi
w
x=v
takva
da
je. IwIz((da
y)(
z)(p(x,
y) y)
p(y,
z)
z)
p(x,z)))
= je
0. wNeka
je
w(x)
=
n
I
((
y)(
z)(p(x,
p(y,
r
r p(x, z))) = 0
1
w
sledi
da
postoji
valuw da
takva
da jez)(p(x,
w y y)
w (dakle,
r (x)
vazi
wz)))
= w(x)
= n1acija
) je
takva
p(y,
p(x,
=
0. Neka
wr da
(y) postoji
=jen2I.wt ((
Iz Iwt ((z)(p(x,
y) z)
rr takva
p(y,
z)
p(x,
z)))
=
0
sledi
valuacija
w
rr
r
rr
r
rr
da
je
w
w
(dakle,
vazi
w
(x)
=
w
(x)
=
w(x)
=
n
i
w=
r
z
1
tt
(y)
=
w
(y)
=
n
)
takva
da
je
I
((p(x,
y)
p(y,
z)
p(x,
z)))
rr
2 (z) = n . Iz I tt ((p(x,
w
0.
Neka
je
w
y)
p(y,
z)
p(x,
z)))
=
0
sledi da je Iwtt (p(x, y)3 p(y,wz)) = 1 i Iwtt (p(x, z)) =
0 i, dalje, Iwtt (p(x, y)) = 1, Iwtt (p(y, z)) = 1 i Iwtt (p(x, z)) = 0,
tj. pI (wrr (x), wrr (y)) = 1, pI (wrr (y), wrr (z)) = 1 i pI (wrr (x), wrr (z)) =
0. Odatle sledi pI (n1, n2) = 1, pI (n2, n3) = 1 i pI (n1, n3) = 0 i,
dalje, sledi da je tacno n1 < n2 , n2 < n3 i da nije tacno n1
< n3 . Medutim, to nije ispunjeno ni za koja tri prirodna
broja n1, n2, n3.
Dakle, pretpostavka je bila pogresna, te sledi da za svaku valuaciju v
vazi
Iv (A) = 1, tj. L-struktura D je model formule A.
p(x,
x)))
=
1
i
I
((
x)(
y)(
z)(p(x,
y)
p(y,
z)
p(x,
z)))
= 1. Iz
v p(x, x)))
Ivaluaciju
((
x)(p(x,
f
(x))
=
1
sledi
da
za
proizvoljnu
v
w takvu
da je= aw(jer
x vjevazi
p(x,
x)))
=
Mora
da= je
D = {aI}w),((p(x,
pa jef (x))
Iw (p(x,
f (x)))
=
1 i 1.
Iw (
p(x, x))
1. w(x)
Iz
Iw (p(x, x)) = 1 sledi Iw (p(x, x)) = 0, tj. pI (w(x), w(x)) = 0, tj. pI (a, a) =
0,
sto je netacno,
sledi da
je pretpostavka
bilajepogresna,
odakle
dapa
postoji
valuacija
takva da
Iv (A) = 0,
tj. sledidalje
da jesledi
D kontramodel
za datu vformulu
A.
(c) Pretpostavimo
da je L-struktura
D = (D, I L ) model date
formule
A i pretpostavimo
pretpostavimo
da je D = {d1da
, d2je
, skup D konacan, tj.
. . . , dm}.
Neka je I L (f ) = fI i I L (p) = pI . Neka jei dr odreden na sledeci nacin:
neka je dr proizvoljan element skupa D;
0
neka je i+
dr = fI (dir ) za i 0.
1
Resenja zadataka
211
Na
osnovu pretpostavke,
D jev model
za Odatle,
formulu A, osnovu
pa za
proizvoljnu
valuaciju
vvavazi
A) = f1.
definicije3.10
, sledi
ziIvI((
(x)(p(x,
(x)) p(x,na
x))) = 1 i
Iv ((x)(y)(z)(p(x,
y) da
p(y,
z)
p(x, z))) = 1.
Iz Iv ((x)(p(x, f (x)) p(x, x))) = 1 sledi da za proizvoljnu valuaciju w
takvu da je w x v vazi Iw (p(x, f (x)) p(x, x)) = 1. Odatle dalje sledi
p
=
1 i pI (w(x),
w(x))
= da
0. vazi
Valuacija
w dje
r
I (w(x), fI (w(x)))
proizvoljna,
par , je
mozemo
odabrati
tako
w(x) =
.
r )) =
Tada
(d
(d
1 i pI vazi
(dr , dr )pI=
0,fItj.
za svako i (i = 0,i 1, 2, . . .) vazii pI (di r , dr
) = 1i
i i
i i+1
pI (dr , dr ) = 0.
i
S
druge
strane, iz valuaciju
Iv ((x)(y)(
z)(p(x, da
y) p(y,
z)))
sledi
da
zay)proizvoljnu
wtakvu
w z)
x je
v p(x,
vazi
Iw=((1y)(
z)
(p(x,
p(y,
z) p(x,
z)))
= tako
1. je
Kako
w proizvoljna
r . Iz I
valuacija,
mozemo
je
odabrati
da
vazi
w(x)
=
d
w
((y)(z)(p(x, y)p(y, z) p(x, z)))
=
1 sledi
da wza
wtr ((takvu
day)je p(y,
wr z)
w
r proizvoljnu valuaciju
r
y
(dakle,
vazi
(x)
=
w(x)
=
d
)
vazi
I
z)(p(x,
r
w
p(x,
z))) = 1. Kako
je wr proizvoljna
valuacija
koju
w,
mozemo
je
odabrati
tako da vazi
wr (y)za=
drr . vazi
Izvaluaciju
Iwtw((z)yr
(p(x,
y)
p(y,
z)
rr
rr p(x, rz))) = 1 sledi darr za proizvoljnu
r
w
dawrje
w z w
rr (dakle, vazi w (x) = w (x) = w(x) = d
iKako
wrrtakvu
(y)je =w
rr (y) = d ) vazi Iwtt (p(x, y) p(y, z) p(x,
rr z)) = r1.
proizvoljna
valuacija
za
koju
z y)
w ,
rrr
mozemo
je
odabrati
tako
da
vazi
wrr (z)
= dvazi
. Iz wI tt (p(x,
tt (p(x, y) p(y, z)) = 0 iliw Iwtt (p(x, z))
p(y,
z)
p(x,
z))
=
1
sledi
da
je
I
w
= 1, tj. da
tt (p(x,
vazi
y))
ili0Iw
0 (z))
ili I=
(p(x,
tj.
da
rr
rr =
rr= 1, w
rr (z))
wtt0
vazi
pIw
wsvaka
(y))0 =
ilitt (p(y,
pI (wrrz))
(y),d=rw, rr
ili pz))
I (w (x),
I (w D(x),
=
za
elementa
drrr, ,drrr
drrr) skupa
vazi
pI
r1. Dakle,
rr
rrtri
rrr
(d
,
d
)
=
0
ili
p
(d
,
d
)
=
0
ili
p
(d
=
1.
V
ec
smo
I
I
dokazali
za svako
0,rr 1, 2, . . .)da
vazi
pI (dr , di r(i =
) = 1, odakle sledi da za dr = dr ,
d = di+1 ,
i
i+1
i+l
proizvoljno
l, l = 1, 2, . . .. Dakle, vazice i pI (dr , dr ) = 1, tj. pI (dr ,
dr ) = 1
j
k
j
j
(jer je dr = dr ). Medutim, vec smo pokazali da za svako i (i = 0, 1,
2, . . .)
j
k
vazi pI (dr , dr ) = 0, sto je u kontradikciji sa pI (dr , dr ) = 1.
Dakle, poi
34.(,Neka
je vazi
D proizvoljna
-struktura,
pri
cemu
za
signaturu skup
L =
, ar)
p
jei Lx,
ar(p)
=
1 .i Neka
neka
je IVL(p)
proizvoljan
promenljivih
takav
da
y,
z
V
je
=
p
(gde
je
pI
I
funkcija
iz D
skup I{0, ((1}x)(
) i neka
je v proizvoljna
valuacija.
Dokazimo
da u
vazi
z)(p(x)
p(y)
p(z)))
= 1.
v da y)(
Pretpostavimo
suprotno
vazi
I
((
x)(
y)(
z)(p(x)
p(y)
v
p(z)))
= 0. To znaci da postoji valuacija vx takva da je vx
znaci
x v (neka je vx (x) = dx ) i Ivx ((y)(z)(p(x) p(y) p(z))) = 0. To
da postoji val- uacija vy takva da je vy y vx (vazi vy (x) =
vznaci
x (x) = dx ; neka je vy (y) = dy ) i Ivy ((z)(p(x) p(y) p(z))) = 0. To
da za svaku valuaciju vz takvu da je vz z vy vazi Ivz (p(x)
p(y)
p(z))
= d0. iOdaberimo
valuaciju vz takvu da je vz z vy (vazi vz
(x) = vy (x) =
x vz (y) = vy (y) = dy ) na sledeci nacin:
212
14 Resenja zadataka
p(z))
je
nemoguce.
U
slucaju
(c),
vazi
= 0=
i I1,
vz
vz
(p(z)) = 0, odakle sledi Ivz (p(x) p(y)) = 0 i Ivz (p(x) p(y) p(z))
sto je nemoguce. Dakle, u svakom slucaju dolazimo
do kontradikcije,
sto znaci da polazna pretpostavka nije
bila
Dakle,
p(z)))ispravna.
= 1. Kako
je Ivmora da vazi Iv ((x)(y)(z)(p(x) p(y)
proizvoljna valuacija, sledi da je data formula valjana.
39. Na primer, (x)A (x)A.
40. Vazi (x)(A B ) (x)(A B) (x)(A) (x)B (x)A (x)B
(x)A (x)B. Iz (x)(A B) (x)A (x)B, na osnovu teoreme3.10
sledi da je data formula valjana.
48. Tvrdenje je moguce dokazati indukcijom po slozenosti izraza
ili na sledeci nacin: pretpostavimo da za date izraze e1 i e2 postoje
dva najopstija unifikatora 1 i 2 . Tada postoje supstitucije 1 i 2
takve da vazi 1 = 2 2 i 2 = 1 1 odakle sledi 2 = (22)1 i 2 =
2(21). Dakle, 21 je trivijalna supstitucija [ ], pa, na osnovu
definicije kompozicije supstitucija sledi da 1 i 2 mogu da
sadrze samo zamene oblika v r v rr (gde su v r i v rr simboli promenljivih), pa
su unifikatori 1 i 2 jednaki do na preimenovanje promenljivih.
58. Dati uslovi mogu se reprezentovati na sledeci
nacin: C1: vlasnikpsa(Janko)
C2: x(vlasnikpsa(x) volizivotinje(x))
C3: x(volizivotinje(x) (y(zivotinja(y) udario(x, y))))
C4: udario(Janko, Tuna) udario(Marko, Tuna)
C5: macka(Tuna)
C6: x(macka(x) zivotinja(x))
Metodom rezolucije moze se dokazati da iz navedenih formula
sledi for- mula udario(Marko, Tuna).
61.
A [A]1
AB
efq
B
[B]2
E, 1, 2
Resenja zadataka
213
62.
[B]1
[A]2
[A B]3
B
E
E
I, 2
A
I, 3
I, 1
BB
AA)
(A
B) (
63.
[A]2
I
AC
[A]
I
AB
[A (B C)]1
[B C]3
E A B
(A B) (A C)
I
E A C
(A B) (A C)
(A B) (A C )
[B C]3
[A]2 [B]1
I
[(A B)]
AB
E
I, 1I
ABB
I
E, 2, 3
I, 1
A A
A B
(A B) (A B)
[A]3
I
A B
E, 2, 3
I,
4
65.
vlasnikpsa(janko).
macka(tuna).
mozda_udario(janko,tuna).
mozda_udario(marko,tuna).
volizivotinje(X):-vlasnikpsa(X).
zivotinja(X):-macka(X).
ne_bi_udario(X,Y):-volizivotinje(X), zivotinja(Y).
udario(X,Y):-mozda_udario(X,Y), not ne_bi_udario(X,Y).
66.
suma(N,S):-N>0, N1 is N-1, suma(N1,S1), S is
suma(0,0).
S1+N.
67.
sumacifara(N,S):-N>=10, N1 is (N // 10), sumacifara(N1,S1), S is S1 + (N mod 10).
sumacifara(N,N):-N<10.
68.
214
14 Resenja zadataka
69.
obrni(M,N):-obrni(M,0,N).
obrni(M,I,N):-M>0, M1 is M//10, I1 is 10*I+(M mod 10), obrni(M1,I1,N).
obrni(0,I,I).
70.
nzd(M,N,R):-N>0, T is M mod N, nzd(N,T,R).
nzd(M,0,M).
71.
prost(N):-T is N//2, nedeljivsvim(N,T).
nedeljivsvim(N,T):-T>1, T1 is T-1, N mod T=\=0, nedeljivsvim(N,T1).
nedeljivsvim(N,1).
72.
suma([],0).
suma([X|R],M):-suma(R,M1), M is M1+X.
73.
obrni(X,Y):-obrni(X,[],Y).
obrni([X|R],L,T):-obrni(R,[X|L],T).
obrni([],X,X).
74.
dodajnakraj([H|R],X,[H|R1]):-dodajnakraj(R,X,R1).
dodajnakraj([],X,[X]).
75.
uzastopni(X,Y,Z,[X,Y,Z|R]):-!.
uzastopni(X,Y,Z,[_|R]):-uzastopni(X,Y,Z,R).
76.
prvih_n(L,N,_):-broj_elemenata(L,B),B<N,!,fail.
prvih_n(L,0,[]):-!.
prvih_n([G|R],N,[G|R1]):-N1 is N-1, prvih_n(R,N1,R1).
Resenja zadataka
77.
dvadela([],[],[]).
dvadela([G|R],[G|R1],R2):-G>=0, dvadela(R,R1,R2),!.
dvadela([G|R],R1,[G|R2]):-dvadela(R,R1,R2).
78.
podeli([],[],[]).
podeli([G|R],[G|R1],R2):-podeli(R,R1,R2).
podeli([G|R],R1,[G|R2]):-podeli(R,R1,R2).
79.
podliste(L,P):-podeli(L,P,_).
80.
razliciti([],[]).
razliciti([X|R],[X|R1]):-not(sadrzi(R,X)),razliciti(R,R1),!.
razliciti([X|R],R1):-razliciti(R,R1).
81.
unija(X,Y,U):-append(X,Y,W),razliciti(W,U).
82.
presek([],L,[]).
presek([G|R],L,[G|P]):-sadrzi(L,G),presek(R,L,P),!.
presek([G|R],L,P):-presek(R,L,P).
83.
razlika([],L,[]).
razlika([G|R],L,R1):-sadrzi(L,G),razlika(R,L,R1),!.
razlika([G|R],L,[G|R1]):-razlika(R,L,R1).
84.
sim_razlika(X,Y,Z):-unija(X,Y,T),presek(X,Y,P),razlika(T,P,Z).
215