You are on page 1of 344

Diskretna matematika s teorijom

grafova
Blaženka Divjak Alen Lovrenčić

Varaždin, 2005.
Predgovor

Ova je knjiga nastala u želji da se kolegij Diskretne strukture s teorijom


grafova, koji autori predaju na poslijediplomskom studiju informacijskih
znanosti na Fakultetu organizacije i informatike Sveučilišta u Zagrebu od
2002. godine, opermi prikladnom literaturom. Stoga je ova knjiga prilago-
dena studentima kojima je glavno područje izučavanja informatika, i to ne
samo onima koji studiraju na Fakultetu organizacije i informatike.
Grada ove knjige birana je tako da daje skup matematičkih formalizama
koji imaju široku primjenu u informatici i računalstvu. Stoga ova knjiga
može biti od pomoći i inženjerima koji se profesionalno bave računarstvom i
informatikom. Zbog toga autorima nije bio glavni cilj da uvijek, pod svaku
cijenu gradivo predoče u svoj matematičkoj strogosti i sa svim matematičkim
aspektima koji se mogu razmatrati. Održavši dovoljno matematičke egzak-
tnosti, autori su pokušali gradivo izložiti tako da ga bude što lakše primijeniti
na konkretne probleme, koji se u informatici i računalstvu susreću.

Sadržaj knjige
Prvo poglavlje ove knjige je naslovljeno Uvod, i predstavlja skup osnovnih
pojmova koje je nužno definirati da bi sljedeća poglavlja mogla biti korektno
predstavljena. Ona sadrži opis metoda koje se koriste u matematici, modela
te općenite tehnike koje matematičari koriste u dokazivanju. Uvodno je
poglavlje napisala Blaženka Divjak.
Sljedeće poglavlje predstavlja produžetak prvog, uvodnog poglavlja i
donosi opis matematičke logike, a isto tako dva formalna dedukcijska susta-
va - F-sustav i rezolucijsku proceduru. F-sustav predstavlja formalizaciju
pravila dokazivanja opisanih u poglavlju 1.2. S druge strane, rezolucijska
procedura predstavlja deduktivni sustav, koji je posebno pogodan za dokazi-
vanje teorema pomoću računala. Poglavlje o matematičkoj logici napisao je
Alen Lovrenčić.
U trećem poglavlju se uvode pojmovi koji pripadaju diskretnoj mate-
matici - relacije, funkcije, skupove, pojam rekurzivne jednadžbe, rješavanje
rekurzivnih jednadžbi, te na kraju, diskretnu teoriju vjerojatnosti. Ovo je
poglavlje napisala Blaženka Divjak, osim dijelova o rekurzijama i diskretne

i
ii

teorije vjerojatnosti, koje je napisao Alen Lovrenčić. Ovo je ujedno i poglav-


lje koje sadrži raznolike sadržaje - sve ono iz područja diskretne matematike
što se intenzivno koristi u informatici i računalstvu.
U četvrtom se poglavlju obraduje vrlo važan pojam, kako u matematici,
tako i u računalstvu i informatici - pojam algoritma. Poglavlje se sastoji
od tri dijela. U prvom se dijelu uvodi i objašnjava pojam algoritma. Drugi
dio daje pregled teorije složenosti algoritama, dok je treći dio primjeran i
daje algoritme iz jednog vrlo važnog područja - područja pretraživanja i
sortiranja niza elemenata. Ovo je poglavlje napisao Alen Lovrenčić.
Peto poglavlje daje teoriju grafova, koja je iznimno važna i korištena
matematička teorija u računarstvu i informatici, ali i u mnogim drugim
znanstvenim i stručnim granama. Poglavlje sadrži niz vrlo važnih proble-
ma, kako u informatici i računarstvu, tako i u drugim srodnim granama, od
problema pronalaženja puteva, šetnji i ciklusa te razapinjućih stabala, pa
do protoka i rezova te bojenja vrhova i bridova grafa. Autor ovog poglavlja
je Blaženka Divjak.
Šesto poglavlje daje opis osnovnih algebarskih struktura. One su značaj-
ne u teoriji računalstva, optimizaciji, teoriji algoritama, teoriji inteligentnih
agenata itd. Algebarske strukture su matematički okvir u koji se, zbog
njihovih dobro definiranih svojstava uklapaju mnogi problemi, koji na taj
način dobijaju novi kut gledišta pa se tako često dobijaju novi rezultati
vezani uz problem. Ovo je poglavlje napisala Blaženka Divjak.
Posljednje poglavlje je zamišljeno, na neki način, kao poanta cijele knjige.
Ono sadrži matematički sadržaj, koji je nastao tijekom godina iz pokušaja
da se matematički opiše intuitivni pojam algoritma. Tako je nastala cijela
teorija automata i jezika, čije su osnove opisane u ovom poglavlju. No, ovo
poglavlje ima još jednu važnost za ovu knjigu - ono na neki način opravdava
izbor sadržaja cijele knjige, koristeći mnogo od prije opisanog sadržaja. Ovo
završno poglavlje napisao je Alen Lovrenčić.

Kako koristiti knjigu


Ova knjiga sadrži zaista različite matematičke sadržaje, koji se mogu zasebno
proučavati. Pri tome ne želimo reći da su poglavlja u potpunosti nezavisna
i da se ni u jednom od njih ne koriste rezultati iz prethodnih poglavlja, no
ta veza nije toliko snažna da bi zahtjevala slijedno proučavanje sadržaja.
Štoviše, treće poglavlje napisano je tako da se njegova podpoglavlja mogu
i sama izučavati zasebno. Što se tiče ostalih poglavlja, ona, uglavnom, za-
htjevaju slijedno proučavanje.
Neki su dijelovi knjige napisani manjim slovima. To su dijelovi koji se
odnose na nadogradnje osnovnog materijala i na naprednije gradivo, koje se
može izostaviti kod prvog čitanja. Ti se dijelovi nikako ne mogu smatrati
nevažnima, već onima koji zahtjevaju veći angažman i detaljnije poznavanje
PREDGOVOR iii

područja.
Pri izlaganju teksta su neki dijelovi izostavljeni i ostavljeni za samostalan
rad čitatelja, bilo kao zadaci unutar teksta, bilo kao izostavljeni dokazi ili
problemi. U svakom slučaju, izostavljeni dijelovi su pažljivo odabrani, tako
da bi ih čitatelj tijekom čitanja morao moći bez većih problema i priprema
samostalno izraditi. Autori preporučuju da se zadaci unutar teksta, kao i
dokazi za koje je napomenuto da su ostavljeni za samostalan rad čitatelju,
svakako tijekom čitanja izrade, jer na taj način čitatelj već tijekom samog
čitanja počinje baratati pojmovima koje proučava, što znatno povećava nji-
hovu razumljivost.
Na kraju svakog poglavlja nalaze se zadaci. Zadaci pokrivaju sadržaj
poglavlja uz koje su vezani i svakako se preporučuje da se zadani zadaci
riješe. Oni ne služe samo za ponavljanje gradiva poglavlja, već djelomično i
nadograduju sadržaj. Zadaci mogu čitatelju pokazati koliko je zaista shvatio
ono što je pročitao, ali mu mogu i dodatno objasniti neke detalje koji iz
samog teksta nisu bili jasni.
Osim toga, svako je poglavlje opskrbljeno i problemima. Od čitatelja
se ne očekuje da izradi rješenje svakog problema u knjizi, jer su problemi
zamišljeni kao studijski zadaci, koji zahtjevaju duži rad detaljnije prouča-
vanje literature i dublje upoznavanje područja na koje se odnose. Svakako,
ovi problemi su pogodni za izradu seminarskih radova studenata koji slušaju
kolegije koji pokrivaju područje opisano u ovoj knjizi, ali oni predstavljaju
i ideje za daljnji samostalan rad svim čitateljima zainteresiranim za nado-
gradnju znanja iz danog područja.
Svako poglavlje ima i literaturu koja je korištena pri izradi sadržaja, ali
koja isto tako predstavlja smjernice za daljnji rad čitateljima koji su posebno
zainteresirani za sadržaj dotičnog poglavlja.

Zahvale i pokude
Uobičajeno je da se u predgovoru popišu ljudi koji su autorima pomogli u
izdavanju knjige te da se pokude autori što je u knjizi ostalo još pogrešaka
i što su neki sadržaji možda ostali nedovoljno pokriveni, pa ćemo se i mi
držati tog običaja.
No, uprkos našem pristajanju na običaj, napravit ćemo, matematički
rečeno, inverziju, pa ćemo na početku zahvaliti našim obiteljima. Oni su
nas podupirali pri pisanju ove knjige, često i ne znajući točno o čemu se
radi, imajući puno povjerenje u nas i ono što radimo, odričući se onoga što
im pripada - naše pažnje.
Zahvaljujemo našim recenzentima Mirku Čubrilu, Tihomiru Hunjaku
i Mariu Krniću (abecednim redom) koji su svojim sugestijama doprinijeli
poboljšanju ove knjige, ali koji su, isto tako, garantirajući svojim imenima
kvalitetu ove knjige, omogućili da ona bude izdana. Knjiga je izdana uz
iv

potporu projekta TEMPUS ”Aspects of Information and Organization Sys-


tems: Curriculum Development” (CD-JEP-16086-2001), na kojem su oba
autora predano radila.
Zahvaljujujemo našim izdavačima: Fakultetu organizacije i informatike i
TIVA-i. Posebno zahvaljujemo Mireli Ostroški, na čitenju teksta i na izradi
nekih zadataka, te Renati Horvatek, koja je napravila lekturu teksta.
Na kraju, sve pokude za pogreške koje su ”opstale” nakon svih isčitavanja
knjige, nedostatke teksta, nejasnoće i bilo koje probleme na koje će čitatelj
naići zadržavamo isključivo za sebe.
Svim čitateljima želimo ugodan i plodonosan rad uz ovu knjigu.

B. Divjak,
A. Lovrenčić
Varaždin, 2005.
Sadržaj

Predgovor i

1 Uvod 1
1.1 Matematičke metode i modeli . . . . . . . . . . . . . . . . . . 1
1.1.1 Znanstvena metoda . . . . . . . . . . . . . . . . . . . 1
1.1.2 Matematički model . . . . . . . . . . . . . . . . . . . . 2
1.1.3 Struktura matematike . . . . . . . . . . . . . . . . . . 3
1.2 Tehnike dokazivanja u matematici . . . . . . . . . . . . . . . 5
1.2.1 Sudovi i matematička logika kao okvir za matematičke
tvrdnje . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 Dokazivanje matematičkih tvrdnji . . . . . . . . . . . 7
1.2.3 Matematička indukcija i skup prirodnih brojeva . . . . 8
1.2.4 Princip dobrog uredaja u skupu N . . . . . . . . . . . 11
1.3 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2 Matematička logika 17
2.1 Račun sudova . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.1 Sintaksa . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.2 Semantika . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Predikatni račun . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.1 Sintaksa . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.2 Semantika . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2.3 Formalni sustavi . . . . . . . . . . . . . . . . . . . . . 33
2.3 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.4 Projekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3 Diskretna matematika 45
3.1 Skupovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.1.1 Zadavanje skupa . . . . . . . . . . . . . . . . . . . . . 46
3.1.2 Relacije medu skupovima . . . . . . . . . . . . . . . . 46
3.1.3 Partitivni skup . . . . . . . . . . . . . . . . . . . . . . 47
3.1.4 Operacije na skupovima . . . . . . . . . . . . . . . . . 47
3.1.5 Kartezijev produkt skupova . . . . . . . . . . . . . . . 48

v
vi SADRŽAJ

3.2 Binarne relacije . . . . . . . . . . . . . . . . . . . . . . . . . . 49


3.2.1 Binarne relacije na diskretnim skupovima . . . . . . . 49
3.2.2 Obrat relacije, komplement relacije i dualna relacija . 51
3.3 Relacija ekvivalencije . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.1 Definicija i svojstva relacija ekvivalencije . . . . . . . 51
3.3.2 Kongruencije . . . . . . . . . . . . . . . . . . . . . . . 54
3.3.3 Aritmetika u Zk . . . . . . . . . . . . . . . . . . . . . 60
3.3.4 Još neka svojstva binarnih relacija . . . . . . . . . . . 62
3.4 Uredajne binarne relacije . . . . . . . . . . . . . . . . . . . . 63
3.4.1 Relacija parcijalnog uredaja . . . . . . . . . . . . . . . 63
3.4.2 Relacija djeljivosti na skupu cijelih brojeva . . . . . . 67
3.5 Funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.5.1 Kompozicija funkcija . . . . . . . . . . . . . . . . . . . 70
3.5.2 Bijekcija. Inverzna funkcija . . . . . . . . . . . . . . . 71
3.5.3 Funkcije kao relacije . . . . . . . . . . . . . . . . . . . 71
3.5.4 Realne funkcije realne varijable . . . . . . . . . . . . . 72
3.6 Graf funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.6.1 Neka svojstva realnih funkcija realne varijable . . . . 73
3.6.2 Konačni i beskonačni skupovi . . . . . . . . . . . . . . 78
3.7 Rekurzivne relacije . . . . . . . . . . . . . . . . . . . . . . . . 79
3.7.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.7.2 Rješavanje rekurzija - karakteristična jednadžba . . . 82
3.7.3 Rješavanje rekurzivnih jednadžbi - funkcije izvodnice . 91
3.8 Diskretna teorija vjerojatnosti . . . . . . . . . . . . . . . . . . 93
3.8.1 Osnove kombinatorike . . . . . . . . . . . . . . . . . . 93
3.8.2 Osnovne definicije i teoremi diskretne teorije vjerojat-
nosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.8.3 Uvjetna vjerojatnost . . . . . . . . . . . . . . . . . . . 104
3.8.4 Slučajne varijable . . . . . . . . . . . . . . . . . . . . . 107
3.9 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
3.10 Projekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

4 Algoritmi 125
4.1 Pojam algoritma . . . . . . . . . . . . . . . . . . . . . . . . . 125
4.2 Složenost algoritama . . . . . . . . . . . . . . . . . . . . . . . 130
4.3 Pretraživanje i sortiranje . . . . . . . . . . . . . . . . . . . . . 139
4.3.1 Pretraživanje . . . . . . . . . . . . . . . . . . . . . . . 139
4.3.2 Sortiranje . . . . . . . . . . . . . . . . . . . . . . . . . 145
4.3.3 Donja meda složenosti algoritama usporedivanja i sor-
tiranja temeljenih na usporedivanju . . . . . . . . . . 176
4.3.4 Sortiranje u vremenu O(n) . . . . . . . . . . . . . . . 179
4.4 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
4.5 Projekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
SADRŽAJ vii

5 Teorija grafova 191


5.1 Definicija grafa i osnovna svojstva . . . . . . . . . . . . . . . 192
5.2 Izomorfizam grafova . . . . . . . . . . . . . . . . . . . . . . . 197
5.3 Regularni grafovi . . . . . . . . . . . . . . . . . . . . . . . . . 199
5.4 Šetnje i ciklusi u grafu . . . . . . . . . . . . . . . . . . . . . . 200
5.4.1 Eulerova staza . . . . . . . . . . . . . . . . . . . . . . 201
5.5 Matrica incidencije i matrica susjedstva . . . . . . . . . . . . 204
5.6 Hamiltonovi ciklusi . . . . . . . . . . . . . . . . . . . . . . . . 208
5.7 Težinski grafovi. Algoritmi najkraćeg puta . . . . . . . . . . . 209
5.7.1 Dijkstrin algoritam . . . . . . . . . . . . . . . . . . . . 210
5.7.2 Problem kineskog poštara . . . . . . . . . . . . . . . . 212
5.8 Stabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
5.8.1 Osnovno o stablima . . . . . . . . . . . . . . . . . . . 215
5.8.2 Binarno stablo . . . . . . . . . . . . . . . . . . . . . . 217
5.8.3 Minimalno razapinjuće stablo . . . . . . . . . . . . . . 222
5.8.4 Pretraživanje stabla . . . . . . . . . . . . . . . . . . . 224
5.9 Usmjereni grafovi i mreže . . . . . . . . . . . . . . . . . . . . 226
5.9.1 Usmjereni graf . . . . . . . . . . . . . . . . . . . . . . 226
5.9.2 Turnir . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
5.9.3 Mreže i kritični putevi . . . . . . . . . . . . . . . . . . 228
5.9.4 Problem rasporeda . . . . . . . . . . . . . . . . . . . . 228
5.9.5 Protoci i rezovi . . . . . . . . . . . . . . . . . . . . . . 231
5.9.6 Max-flow min-cut teorem . . . . . . . . . . . . . . . . 233
5.10 Bojenje grafova . . . . . . . . . . . . . . . . . . . . . . . . . . 236
5.10.1 Problem četiri boje . . . . . . . . . . . . . . . . . . . . 236
5.10.2 Bojenje vrhova grafa . . . . . . . . . . . . . . . . . . . 237
5.10.3 Bojenje bridova grafa . . . . . . . . . . . . . . . . . . 240
5.11 Sparivanje u grafovima . . . . . . . . . . . . . . . . . . . . . . 242
5.12 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
5.13 Projekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

6 Algebarske strukture 253


6.1 Definicija i primjeri algebarskih struktura . . . . . . . . . . . 254
6.2 Grupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
6.2.1 Definicija grupe . . . . . . . . . . . . . . . . . . . . . . 255
6.2.2 Konačne i cikličke grupe . . . . . . . . . . . . . . . . . 257
6.2.3 Primjeri grupa . . . . . . . . . . . . . . . . . . . . . . 259
6.2.4 Podgrupe . . . . . . . . . . . . . . . . . . . . . . . . . 260
6.3 Izomorfizam grupa . . . . . . . . . . . . . . . . . . . . . . . . 263
6.4 Primjena grupa u kodiranju . . . . . . . . . . . . . . . . . . . 265
6.4.1 Teorija kodiranja kao grana matematike . . . . . . . . 265
6.4.2 Problemi prijenosa informacija . . . . . . . . . . . . . 267
6.4.3 Metrika na kodnim riječima . . . . . . . . . . . . . . . 267
6.4.4 Grupa koda . . . . . . . . . . . . . . . . . . . . . . . . 269
viii SADRŽAJ

6.4.5 Matrica izvodnica kodirajuće funkcije . . . . . . . . . 272


6.5 Prsteni i polja . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
6.5.1 Prsten . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
6.5.2 Primjeri prstena . . . . . . . . . . . . . . . . . . . . . 276
6.5.3 Polje . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
6.5.4 Primjeri polja . . . . . . . . . . . . . . . . . . . . . . . 279
6.6 Vektorski prostor . . . . . . . . . . . . . . . . . . . . . . . . . 281
6.7 Primjeri vektorskog prostora . . . . . . . . . . . . . . . . . . 283
6.8 Algebarske strukture polinoma . . . . . . . . . . . . . . . . . 284
6.8.1 Prsten polinoma . . . . . . . . . . . . . . . . . . . . . 284
6.8.2 Vektorski prostor polinoma . . . . . . . . . . . . . . . 285
6.9 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
6.10 Projekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288

7 Matematička teorija računalstva 293


7.1 Jezici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
7.1.1 Regularni izrazi . . . . . . . . . . . . . . . . . . . . . . 295
7.1.2 Kontekstno slobodne gramatike . . . . . . . . . . . . . 298
7.2 Konačni automati . . . . . . . . . . . . . . . . . . . . . . . . 299
7.3 Potisni automati . . . . . . . . . . . . . . . . . . . . . . . . . 307
7.4 Turingovi strojevi . . . . . . . . . . . . . . . . . . . . . . . . . 313
7.5 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
7.6 Projekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Poglavlje 1

Uvod

Matematika je vrata, ali i ključ


ulaznih vrata u znanost.
Roger Bacon

1.1 Matematičke metode i modeli


U ovom uvodnom poglavlju iznijet ćemo kratki uvod u znanstvenu metodu,
te njezine moderne inačice. Nadalje, pokušat ćemo predstaviti važnost ma-
tematike u znanstvenim problemima i svakodnevnom životu i radu. Medu-
tim, da bismo pravilno koristili matematičke metode, treba poznavati osnove
njezine strukture kao i metode dokazivanja hipoteza u matematici. Posebno
ćemo izdvojiti princip matematičke indukcije kao metodu kojom dokazu-
jemo tvrdnje koje ovise o prirodnim brojevima, te koju često koristimo kod
rekurzivnih definicija.

1.1.1 Znanstvena metoda


Znanost možemo definirati kao metodički (sistematski) pristup prikupljanju
znanja. U znanosti se za istraživanje služimo znanstvenom metodom. Znan-
stvena metoda se temelji na činjenicama, a ne na uvjerenjima, a u općem
smislu uključuje nekoliko koraka. Koraci znanstvene metode su sljedeći:
promatranje, postavljanje pitanja, postavljanje hipoteze, testiranje hipoteze,
eksperiment, analiza podataka i rezultata i zaključak. Hipoteza ne mora
uvijek biti točna, ali treba biti mjerljiva. Način na koji se testira hipoteza
ovisi o području znanosti u kojem se istražuje.
Medutim, danas je znanost kompleksnija nego ikad, bavi se sve težim i
težim problemima koje nužno treba rješavati multidisciplinarnim pristupom.
U tom procesu potrebno je pametno kombinirati individualne ekspertize i
kompetencije. Stoga je nužan projektni pristup rješavanju problema i nji-
hovom istraživanju. Prema tradicionalnoj znanstvenoj metodi koja apo-

1
2 1.1. MATEMATIČKE METODE I MODELI

strofira objektivnost, a eksperimente pojednostavljuje tako da bi se moglo


razmatrati samo jedno pitanje, problemi moderne znanosti ne mogu se
više uspješno rješavati. Istovremeno, jača uloga računalnog modeliranja i
simboličkih matematičkih eksperimenata, kao i uloga matematičkih i sta-
tističkih metoda općenito. U tom svjetlu mnogi znanstvenici predlažu da
treba mijenjati i klasičnu znanstvenu metodu [7]. Prema [7], alternativni
izgled znanstvenog procesa uključivao bi i razvoj novih metodologija koje
bi odgovarale postavljenom problemu, te razvoj teorija, koje bi objašnjavale
rezultate. Nove tehnologije mogu izaći kao dodatni rezultat razvoja meto-
dologije i alata, kao i konačni rezultat istraživanja. Primjerice, Kopernik je
pri reviziji Ptolomejeve kozmologije, razvio matematičku metodologiju koja
ga je dovela do rezultata, koji su označili preokret, ne samo u astronomiji,
nego u čovjekovu cjelokupnom poimanju svijeta.
Jednom kad se pojavi problem, zadaća je znanosti da nade metodologiju
pomoću koje će ga riješiti. Ali ne samo to. Znanstvenici trebaju razmotriti
teorijsko značenje i važnost problema kojeg obraduju te mogućnosti primjene
njegovih direktnih i indirektnih rezultata.

1.1.2 Matematički model


Osnova za razumijevanje svijeta je promatranje. Promatranjem prikuplja-
mo informacije. Znanstvenik prikuplja informacije sistematski, u skladu sa
znanstvenom metodologijom. Pri tome se služi mjerenjem da bi kvantifi-
cirao podatke. Na temelju pojedinačnih informacija rade se generalizacije,
najprije jednostavne, pa sve složenije. Konačno, dolazimo do razumijevanja
materije na temelju principa. Općenito, princip je poopćenje ili apstraktna
tvrdnja.
U procesu istraživanja, ali i u svakodnevnom rješavanju problema, upo-
trebljavamo modele. Model je analogija s nekim objektom ili konceptom, ili
drugim interesantnim modelom, a koristi se kao objašnjenje nekog procesa
ili predvidanje dogadaja. O modelu možemo razmišljati kao o ”imaginarnoj,
pojednostavljenoj verziji dijela svijeta kojeg promatramo.” ([5])
Iskustvo pokazuje da je matematika dobro sredstvo (jezik) za izražavanje
principa. Matematički modeli su modeli bazirani na matematički postavlje-
nim principima. Dakle, oni predstavljaju matematičku karakterizaciju ili
opis nekog fenomena ili procesa. Matematički model sadrži sljedeće bitne
komponente; pojavu ili proces iz realnog svijeta koji se želi modelirati, ap-
straktnu matematičku strukturu i korespondenciju izmedu elemenata prve i
druge komponente.
Svrha matematičkog modela je:

• prezentacija informacija u lako prihvatljivom obliku,

• omogućavanje “lakog” računanja,


POGLAVLJE 1. UVOD 3

• olakšavanje istraživanja i predvidanja.

Matematički modeli općenito sadrže tri različite vrste kvantitativnih


veličina: izlazne varijable (output), ulazne varijable (input) i parametre
(konstante). Više o matematičkom modeliranju možete naći u [4].
Jedan od poznatih modela u fizici je model plina u kinetičkoj teoriji
plina. Molekule plina zamišljamo kao vrlo male kuglice smještene u nekoj
kocki. Kuglice se gibaju konstantnom brzinom, nezavisno jedna od druge,
a njihove medusobne sudare, kao i sudare sa stjenkama kocke, smatramo
elastičnima. Smjerove brzina molekula smatramo nasumičnima, tj. njihova
rezultanta je nul-vektor. Na temelju ovog prilično grubog modela, punog
pretpostavki, dobivene su formule koje dobro opisuju realnu situaciju.
Dakle, matematika je izuzetno korisna i to se može dobro argumenti-
rati. Ali na matematiku se može gledati i drugačije. O matematici se
govori i kao o logičkoj igri ili o sredstvu za razvijanje logičkog i sistemat-
skog razmišljanja. Nadalje, matematiku se ponekad opisuje kao znanost o
uzorcima (vidi [3]), jer matematičari proučavaju uzorke: numeričke uzorke,
uzorke oblika, uzorke gibanja, uzorke ponašanja, izborne uzorke, uzorke
slučajnih dogadaja itd.

Proces u Matematička
realnom struktura
svijetu

Slika 1.1

1.1.3 Struktura matematike


Povijesno gledajući, matematiku je kao ”univerzalni jezik” prvi promatrao
Gottfried Leibniz u 17. stoljeću. On je smatrao da se argumenti u mate-
matici, ali i svugdje drugdje, trebaju logički provjeravati. Nadalje, Gottlob
Frege je u drugoj polovici 19. stoljeća nastavio slično razmišljati i tvrdio da se
4 1.1. MATEMATIČKE METODE I MODELI

matematika treba izgraditi na predikatnoj logici. U posljednjem desetljeću


19. st. Guiseppe Peano je napravio aksiomatski okvir koji je uključivao
logiku i teoriju skupova. Taj su rad početkom 20. st. nastavili Alfred
Whitehead i Bertrand Russell.
Ponovimo važne činjenice o matematičkim strukturama. Pojašnjenja se
mogu naći u [4], (str.7-9).
Pojmovi u matematici se dijele na osnovne i izvedene pojmove. Osnovni
pojmovi se ne definiraju, a izvedeni se pojmovi definiraju pomoću osnovnih.
Definicija je sud pomoću kojeg se odreduje sadržaj nekog pojma. Isti se
pojam može definirati na više ekvivalentnih načina.
Osnovni matematički pojmovi su generalizacija objekata iz stvarnog svi-
jeta (npr. pravac je generalizacija zrake svjetlosti).
Prilikom formiranja tvrdnji koristimo se zaključivanjem. Zaključivanje
je način mišljenja kojim se više sudova (premisa) dovodi u vezu i izvodi novi
sud (zaključak, rezultat). Razlikujemo induktiv-
no i deduktivno zaključivanje te zaključivanje po
analogiji. Matematički oblici zaključivanja su in-
duktivno i deduktivno zaključivanje.
Indukcija može biti potpuna (matematička) i ne-
potpuna. Pri dokazivanju u matematici služimo
se potpunom ili matematičkom indukcijom. No i
u ostalim ljudskim djelatnostima, gdje se važnost
pridaje ispravnom zaključivanju, ne smijemo se
služiti nepotpunom indukcijom. O tome će biti
više govora u nastavku knjige.
Deduktivna metoda karakterizira viši nivo razvoja Slika 1.2: Gottfried Wil-
neke znanosti, jer ona podrazumijeva postojanje helm von Leibniz
principa.
Euklid (365. p. K.) je bio prvi poznati znanstvenik u povijesti koji je sus-
tavno primijenio deduktivne metode, i to u geometriji. Geometrija je na
taj način aksiomatizirana (vidi: [9], [2]), tj. utemeljena na sustavu aksio-
ma, koji predstavljuju tvrdnje za koje postoji uvjerenje da su istinite. Tako
dobivenu geometriju nazivamo euklidskom geometrijom. Aritmetika je aksi-
omatizirana znatno kasnije, u drugoj polovici 19. st. (vidi: [10]).
Istaknimo bitne elemente matematičke teorije deduktivnog pristupa. To
su:

1. nabrajanje osnovnih pojmova,


2. definiranje složenih pojmova,
3. postavljanje aksioma,
4. iskazivanje teorema,
5. dokazi teorema.
POGLAVLJE 1. UVOD 5

Aksiomi i teoremi (poučci, stavci) izriču ekvivalentne tvrdnje i iznose


zaključke o matematičkim pojmovima i njihovim medusobnim odnosima i
vezama.
Aksiomi su tvrdnje koje smatramo istinitima bez posebnog dokaza, dok
su teoremi tvrdnje koje logički izviru iz aksioma.
Svaki teorem treba izvesti (deducirati, dokazati) iz jednog ili više aksioma
u konačno mnogo koraka.
Dokaz je zaključivanje kojim se pokazuje da je neki teorem logička po-
sljedica nekih aksioma ili već dokazanih teorema. Dokaz može biti direktan
i indirektan.

1.2 Tehnike dokazivanja u matematici


1.2.1 Sudovi i matematička logika kao okvir za matematičke
tvrdnje
U matematici, kao i drugim znanostima, susrećemo tvrdnje koje izražavaju
odredene znanstvene spoznaje. Tvrdnje u znanosti se trebaju dokazati. Po-
jedine znanstvene discipline raspolažu skupom metoda kojima se tvrdnje
u tom području dokazuju. Tehnike dokazivanja u društvenim znanostima
bitno se razlikuju od onih u prirodnim znanostima, a posebno matematici.
U svakom je znanstvenom istraživanju u po-
četku potrebna istraživačka intuicija, koja je često
temeljena na ranijim spoznajama i iskustvu. Me-
dutim, nakon što su formulirane odredene znan-
stvene hipoteze, potrebno je egzaktno dokazati nji-
hovu točnost. U tom smislu hipoteze trebaju biti
sudovi . Iz matematičke logike poznato je da su su-
dovi tvrdnje za koje se jednoznačno može reći jesu
li istinite ili nisu. U povijesti znanosti poznato
je mnogo hipoteza koje još nisu postale sudovi. U
matematici je poznata Goldbachova hipoteza, koja
Slika 1.3: Pierre de Fermat tvrdi da je svaki paran broj, veći od 2, moguće
prikazati u obliku zbroja dvaju prostih brojeva (opisana u [4], 21). Done-
davno je i posljednji Fermatov teorem (prozvan i veliki Fermatov teorem)
bio samo matematička slutnja bez dokaza. Prisjetimo se jednostavne for-
mulacije posljednjeg Fermatovog teorema: Za svaki prirodni broj veći od
2 jednadžba an + bn = cn nema cjelobrojnih rješenja, pri čemu su a, b, c,
različiti od nule. Preko 350 godina brojni su matematičari, ali i amateri
zaljubljenici u matematiku, pokušavali dokazati tu hipotezu. Na taj su
način razvijene mnoge teorije, dobivene ekvivalentne tvrdnje, i popločen
put koji je vodio do konačnog dokaza, kojeg su 1994. završili Andrew Wiles
i Richard Taylor. Ipak dosta otvorenih problema u matematici i drugim
znanstvenim područjima čeka rješenja. Jedan od takvih problema je pozna-
6 1.2. TEHNIKE DOKAZIVANJA U MATEMATICI

ti problem rješivosti svakog algoritamski rješivog problema u polinomnom


vremenu, odnosno P = N P problem.
Medutim, da bi netko uspješno rješavao probleme u matematici, ali i s
razumijevanjem prihvaćao matematičke teorije koje će koristiti u drugim po-
dručjima istraživanja i rada, nužno je da se upozna s tehnikama dokazivanja
u matematici. Dokazivanje u matematici temelji se na matematičkoj logici.
Osnove matematičke logike mogu se pronaći primjerice u [4], ali i u drugom
poglavlju ove knjige.
Nabrojimo osnovne tipove tvrdnji koje susrećemo u matematici. Tvrdnja
”20 je višekratnik od 5” je jednostavni sud. Budući da je 20 = 4 × 5 znamo
da je ovaj sud istinit.
Mnoge tvrdnje u matematici jesu složeni sudovi jer se sastoje od dva ili
više sudova povezanih logičkim operacijama.
Osnovne operacije matematičke logike su konjunkcija (veznik i), disjun-
kcija (veznik ili) i negacija. Ponovimo njihove vrijednosti istinitosti.
Složeni sud a ∧ b (a i b) je istinit ako i samo ako su oba suda a i b istinita.
Složeni sud a ∨ b (a ili b) je istinit ako je barem jedan od sudova a i b
istinit.
Negacija ¬a suda a je istinita ako i samo ako je sud a lažan.
Mnoge matematičke tvrdnje su implikacije, odnosno oblika ako-onda.
Složeni sud a ⇒ b (ako a onda b; a implicira b) je lažan samo ako je sud
a istinit, sud b lažan. Primjer implikacije je sljedeća tvrdnja.

Primjer 1.1 Ako je prirodan broj n djeljiv brojem 6, onda je n djeljiv i


brojem 3.

Uočite da implikacija nije komutativna operacija tj. ako je istinita im-


plikacija a ⇒ b, tada obratna implikacija b ⇒ a nije nužno istinita.

Zadatak 1.1 Izrecite obrat implikacije iz prethodnog primjera i utvrdite je


li to istinita tvrdnja.

Ako je istovremeno istinito a ⇒ b i b ⇒ a kažemo da su tvrdnje a i b


ekvivalentne i pišemo a ⇔ b. Evo primjera ekvivalencije.

Primjer 1.2 Prirodan broj n je paran ako i samo ako je n2 paran.

Dakle, znak ⇔ obično čitamo ”ako i samo ako” ili ”ekvivalentno”.


Pokazuje se da je istinita implikacija a ⇒ b ako i samo ako je istinit
obrat suprotne tvrdnje tzv. kontrapozicija. Dakle, tvrdnje a ⇒ b i ¬b ⇒ ¬a
su ekvivalentne . Ovu činjenicu koristimo kod indirektnog dokazivanja.
Istaknimo još neke uobičajene oblike matematičkih tvrdnji. Postoje
tvrdnje koje govore da nešto postoji, pa ih nazivamo tvrdnjama o egzisten-
ciji (postojanju). Takva je, na primjer, sljedeća poznata tvrdnja iz linearne
algebre.
POGLAVLJE 1. UVOD 7

Primjer 1.3 Uvijek postoji rješenje homogenog sustava linearnih jedna-


džbi.

U iskazivanju tvrdnji o postojanju koristimo se kvantifikatorom egzisten-


cije ∃, kojeg čitamo ”za neki” ili ”postoji”.
Nasuprot tvrdnjama o egzistenciji nalaze se univerzalne tvrdnje, tj. tvrd-
nje koje se odnose na sve elemente odredenog skupa. Za njihovo izricanje
koristimo univerzalni kvantifikator ∀, kojeg čitamo ”za svaki” ili ”za sve”.
Evo primjera univerzalne tvrdnje.

Primjer 1.4 Za svaki prirodan broj n, broj 3n − 1 je prosti broj. Ova


tvrdnja nije istinita. Istinita je, na primjer, tvrdnja: Za svaki prirodan broj
n, broj n(n + 1)(n + 2) je djeljiv sa 6.

Posebnu pažnju treba obratiti na činjenicu kako se operacija negacije


odnosi prema kvatifikatorima. Negiramo li univerzalni kvantifikator umje-
sto njega možemo pisati kvantifikator egzistencije i obrnuto, negacijom kvan-
tifikatora egzistencije dobijemo univerzalni kvantifikator. Objašnjenje mo-
žete naći u poglavlju ove knjige koje se bavi matematičkom logikom, ali i u
[4], str. 37.

1.2.2 Dokazivanje matematičkih tvrdnji


Dokaz predstavlja demonstraciju istinitosti zadane tvrdnje. U matematici
često treba dokazivati teoreme, propozicije, leme i korolare koji su dani
u obliku implikacije A ⇒ B. Ovdje tvrdnju A nazivamo pretpostavka, a
tvrdnju B zaključak. Te su dvije tvrdnje u teoremima i drugim suvislim
matematičkim tvrdnjama medusobno povezane. Da bismo dokazali istini-
tost implikacije dovoljno je ispitati ne pojavljuje li se slučaj da istinita pret-
postavka vodi do lažnog zaključka. Tvrdnja je trivijalno istinita ako je
zaključak istinit.
Direktni dokaz implikacije se stoga provodi tako da se uzima da je pret-
postavka istinita i temeljem toga pokaže da tada i zaključak mora biti istinit.
Ponekad je jednostavnije koristiti dokaz po kontrapoziciji (indirektni do-
kaz), koji umjesto tvrdnje A ⇒ B dokazuje tvrdnju ¬B ⇒ ¬A.
Tvrdnje koje imaju jednake tablice istinitosti su ekvivalentne. Budući
se ekvivalencija sastoji od dvije implikacije, kod dokazivanja ekvivalencije
provode se dokazi dviju implikacija i ukoliko su obje implikacije istinite,
zaključuje se da je ekvivalencija istinita. U ekvivalentnim tvrdnjama koris-
timo formulaciju”A ako i samo ako B”, koja označava da ”A povlači B” i
”B povlači A”.

Primjer 1.5 Dokažimo direktno tvrdnju iz Primjera 1.2.


Prvo dokazujemo implikaciju ”Ako je n paran prirodan broj tada je i n2
paran.” Pretpostavka ”n je paran” znači da se n može zapisati kao n = 2k,
8 1.2. TEHNIKE DOKAZIVANJA U MATEMATICI

pri čemu je k neki prirodan broj. Kvadriranjem te jednakosti dobivamo da


je n2 = 4k 2 , što znači da je n2 paran broj.
Druga implikacija glasi: ”Ako je n2 paran prirodan broj tada je i n
paran.”
Ova tvrdnja lagano se dokazuje obratom po kontrapoziciji. Kontrapozi-
cija glasi: ”Ako je n neparan tada je i n2 neparan.” Dokažite za vježbu tu
tvrdnju.

U nekim dokazima koristimo dokaz kontradikcijom kao varijaciju dokaza


po kontrapoziciji. Pretpostavimo naime da je negacija početne tvrdnje is-
tinita. Ta pretpostavka zatim vodi do tvrdnje koja je očigledno lažna ili
je u suprotnosti (kontradikciji) s nekom √ pretpostavkom. Klasičan primjer
dokaza kontradikcijom je dokaz da je 2 iracionalan broj.
Tvrdnje o egzistenciji nekog objekta dokazuju se tako da se pronade prim-
jer definiranog objekta. Primjer koji pokazuje da vrijedi tvrdnja o postoja-
nju rješenja homogenog sustava linearnih jednadžbi je tzv. trivijalno rješenje
(rješenje čije su sve komponente rješenja jednake nuli). Traženje primjera
egzistencije nije uvijek jednostavan posao jer postoje matematičke slutnje
o postojanju odredenih objekata koje nikada nisu dokazane. Takva je na
primjer slutnja da postoje brojevi a, b, c, d takvi da je a4 + b4 + c4 = d4 .
Univerzalna tvrdnja se opovrgava tako da se nade protuprimjer , odnosno
primjer za koji tvrdnja ne vrijedi. Pronadimo protuprimjer za Primjer 1.4.
Za n = 3 broj 3n − 1 je složeni broj.
Poneke tvrdnje se dokazuju provjeravanjem konačnog broja slučajeva
(Primjer: Postoji prosti broj izmedu 100 i 115).

1.2.3 Matematička indukcija i skup prirodnih brojeva


Matematička se teorija gradi tako da se prvo utvrdi skup aksioma koji
su opće prihvaćeni kao istiniti pa se pomoću njih dokazuju složenije tvrd-
nje. Cilj ovog poglavlja knjige je dati jedan jednostavni primjer izgradnje
matematičke teorije.
Svima je poznato da su prirodni brojevi oni koje koristimo za prebro-
javanje u svakodnevnom životu, da je najmanji prirodni broj 1. Ipak ove
tvrdnje nisu dovoljne za aksiomatsku definiciju prirodnih brojeva.
Tako u aritmetici postoje tzv. Peanovi aksimi, koji postuliraju posto-
janje prirodnih brojeva tj. skupa N. Evo tih aksioma.
Peanovi aksiomi:

1. 1 ∈ N. (Dakle, N nije prazan skup, već sadrži najmanje jedan element.)

2. Za svaki x ∈ N postoji prirodni broj x0 kojeg zovemo sljedbenikom od


x.

3. x0 6= 1. (1 nije ničiji sljedbenik.)


POGLAVLJE 1. UVOD 9

4. x0 = y 0 povlači x = y. ( Različiti prirodni brojevi imaju različite


sljedbenike.)

5. Aksiom indukcije. Neka je M ⊆ N sa sljedećim svojstvima:

1) 1∈ M,
2) x ∈ M povlači x0 ∈ M.

Tada je M = N.

Aksiom matematičke indukcije, odnosno princip matematičke indukci-


je važno je orude u matematičkom dokazivanju. Taj se princip ne smije
miješati s induktivnom metodom u znanosti. Induktivna metoda u znanosti
služi samo za izvodenje općih principa iz pojedinačnih slučajeva. Prin-
cip matematičke indukcije služi za dokazivanje tvrdnji koje vrijede za sve
prirodne brojeve (osim možda za konačno mnogo njih). Tvrdnje koje se
dokazuju matematičkom indukcijom ovise o cijelom (prirodnom) broju n.
Prikladno je tvrdnju koju dokazujemo označiti sa P (n) .
Princip matematičke indukcije provodi se u dva koraka:

1. Baza indukcije. Treba dokazati da tvrdnja vrijedi za n = 1, tj. da


vrijedi P (1) .

2. Korak indukcije. Pretpostavimo da tvrdnja vrijedi za n = k. Treba


dokazati da tvrdnja vrijedi za n = k+1. Odnosno, P (k) =⇒ P (k + 1) .

Uvijek treba provjeriti oba koraka, jer u suprotnom možemo pogriješiti


i ”dokazati” tvrdnju koja zapravo ne vrijedi (Eulerov primjer, Goldbachova
hipoteza).

Primjer 1.6 Za sve prirodne brojeve n vrijedi


n
X 1
i (i + 3) = n (n + 1) (n + 5) .
3
i=1

Dokaz. Provjerimo prvo bazu indukcije tj. da tvrdnja vrijedi za n = 1.


Imamo 1 (1 + 3) = 13 1 (1 + 1) (1 + 5) , pa baza indukcije vrijedi.
Pretpostavimo sada da tvrdnja vrijedi za n = k, tj. da vrijedi
Xk
i (i + 3) = 13 k (k + 1) (k + 5) .
i=1
Upotrebom te pretpostavke treba dokazati da tvrdnja vrijedi za n =
k + 1, tj. da vrijedi
Xk+1
i (i + 3) = 13 (k + 1) (k + 2) (k + 6) .
i=1
Raspisivanjem znaka sumacije na lijevoj strani dobivamo
Xk
i (i + 3) + (k + 1) (k + 4) .
i=1
10 1.2. TEHNIKE DOKAZIVANJA U MATEMATICI

Iskoristimo pretpostavku za sumu na lijevoj strani i imamo


1 1
3 k (k + 1) (k + 5) + (k + 1) (k + 4) = 3 (k + 1) (k + 2) (k + 6) ,
čime je tvrdnja dokazana.
U brojnim situacijama u matematici, ali ne samo u matematici, moguće
je na temelju eksperimentiranja na pojedinačnim primjerima doći do do-
bre slutnje, a nakon toga je dokazati upotrebom matematičke indukcije.
Medutim, bez ovog drugog koraka, tj. bez matematičkog dokaza, ostajemo
samo na slutnji, dakle ne znamo da li ona vrijedi za sve slučajeve ili ne.
Preporučamo da više o tome, kako slutnja može postati teorem, pročitate u
[1], str. 35.
Istaknimo dvije od mogućih modifikacija principa matematičke indukcije.
Postoje tvrdnje koje uključuju prirodne brojeve, ali ne vrijede za sve njih,
nego vrijede za one koji su veći od nekog prirodnog broja n0 . Primjerice,
nejednakost n! > 2n je ispunjena za svaki n ≥ 4. Dokaz ove tvrdnje može
se provesti pomoću matematičke indukcije, samo što u bazi ispitujemo da
li tvrdnja vrijedi za n = 4. Općenito se svaka tvrdnja P (n) koja vrijedi za
n ≥ n0 , može podvesti pod princip matematičke indukcije tako da se tvrdnja
modificira u tvrdnju P (n + n0 − 1) .

Zadatak 1.2 Dokažite da vrijedi nejednakost n! > 2n , za svaki n ≥ 4.

Matematičku indukciju upotrebljavamo i za rekurzivne definicije razli-


čitih matematičkih objekata. Taj oblik matematičke indukcije zovemo jaka
matematička indukcija, iako je ona ekvivalentna ”običnoj” matematičkoj
indukciji. Izrecimo je:
Neka je P tvrdnja koja ovisi o prirodnom broju n i vrijedi:

1. Tvrdnja P je istinita za neki prirodni broj n0 .

2. Ako je k > n0 prirodni broj i P je istinita za sve prirodne brojeve


x, n0 ≤ x ≤ k tada je P istinita i za k + 1.
Tada je P istinita za sve prirodne brojeve n ≥ n0 .

Dakle, u jakom obliku matematičke indukcije pretpostavljamo da je tvrd-


nja istinita za sve prirodne brojeve manje od promatranog prirodnog broja i
dokazujemo da je onda tvrdnja istinita za promatrani prirodni broj. Nadalje,
jaku matematičku indukciju koristimo i kod rekurzivnih definicija, o čemu
će biti govora u posebnom poglavlju ove knjige.
Vratimo se sada strukturi skupa prirodnih brojeva. Nabrojimo aksiome
koji opisuju operacije zbrajanja (oznaka: a+b) i množenja prirodnih brojeva
(oznaka: a · b ili ab), te odnos relacije < i prirodnih brojeva. Za prirodne
brojeve a, b, c vrijedi:

1. a + b ∈ N (zatvorenost)
POGLAVLJE 1. UVOD 11

2. a · b ∈ N (zatvorenost)

3. a + b = b + a (komutativnost)

4. (a + b) + c = a + (b + c) (asocijativnost)

5. a · b = b · a (komutativnost)

6. (a · b) · c = a · (b · c) (asocijativnost)

7. Postoji element 1∈ N, takav da je n · 1 = n.

8. Ako je m · x = n · x za neki x ∈ N, tada je m = n.

9. a · (b + c) = (a · b) + (a · c)

10. Za dane prirodne brojeve x, y, z uvijek je istinita samo jedna od slje-


dećih tvrdnji x < y, x = y, y < x.

Više o relacijama i operacijama na različitim skupovima saznat ćete u


nastavku ove knjige. U tom kontekstu bit će jasnija i uloga gornjih aksioma
koji govore o dvije najvažnije operacije na skupu prirodnih brojeva.

1.2.4 Princip dobrog uredaja u skupu N


Na kraju spomenimo da za prirodne brojeve vrijedi tzv. princip dobrog
uredaja.

Tvrdnja 1.1 Svaki neprazni podskup skupa prirodnih brojeva ima naj-
manji element.

Dokaz. Ova se tvrdnja može dokazati upotrebom principa matematičke


indukcije po broju elemenata skupa čiji najmanji element tražimo. Jasno je
da vrijedi baza indukcije jer u skupu, koji se sastoji samo od jednog elementa,
taj je element ujedno i najmanji. Nadalje, pretpostavimo da tvrdnja vrijedi
za sve skupove od k elementa, tj. da postoji najmanji element u svakom
od tih skupova. U koraku indukcije promatramo skupove koji imaju k + 1
elemenata. Pretpostavimo da smo skupu B od k + 1 elemenata odstanili
jedan element a i tako dobili skup od k elementa za koji po pretpostavci in-
dukcije znamo da ima najmanji element b. Manji od brojeva a i b je najmanji
element skupa B.
Dakle, iz principa matematičke indukcije slijedi princip dobrog uredaja.
Medutim, vrijedi i obrnuto, tj. upotrebom principa dobrog uredaja možemo
dokazati da vrijedi princip matematičke indukcije. Evo dokaza.
Pretpostavimo:

1. Tvrdnja P je istinita za prirodni broj n0 .


12 1.3. ZADACI

2. Ako je k > n0 prirodni broj i P je istinita prirodni broj k, tada je P


istinita i za k + 1.

Principom dobrog uredaja treba dokazati da je tada P istinita tvrdnja za


sve prirodne brojeve n ≥ n0 . Pretpostavimo da P nije istinita za sve n ≥ n0
(tj. postoje prirodni brojevi za koje dana tvrdnja ne vrijedi) i taj skup
označimo sa A. Tada taj neprazni skup A prirodnih brojeva, po principu
dobrog uredaja, ima najmanji element a. Znamo po pretpostavci 1 da je
a 6= n0 , pa je a − 1 ≥ n0 , odnosno k = a − 1. Po pretpostavci 2, P je istinita
tvrdnja za k + 1, odnosno za a, pa smo ovu tvrdnju dokazali kontradikcijom.
Dakle, zaključujemo da je početna pretpostavka pogrešna što znači da je P
istinita tvrdnja za sve prirodne brojeve n ≥ n0 .
Zaključujemo, princip dobrog uredaja i princip matematičke indukcije
su ekvivalentne tvrdnje.

1.3 Zadaci
1. Dokažite sljedeće tvrdnje:

(a) Svaki od brojeva 111, 366, 723 i 1341 djeljiv s 3.


(b) Ako je a nemaran prirodan broj i ako je b paran prirodan broj,
onda je a − b neparan broj.
(c) Ako je a2 neparan onda je i a neparan broj.
(d) Broj n je paran ako i samo ako je nn − 2 · n + 1 neparan.
(e) Ako 2 dijeli 5n onda je n paran broj.

2. Pokažite da je sud a ⇒ (p ⇒ q) tautologija.

3. Pokažite da je sud (a ∧ b) ∧ (¬a ∨ ¬b) kontradikcija.

4. Pojednostavite sljedeće izraze:

(a) (1 : 0 = ∧(1 < 10),


(b) (π < 8) ∧ (π < 6),
(c) (e < 4) ∧ (e2 < 9)

5. Odredite istinitost sljedećih tvrdnji:

(a) (π 2 > 2) ⇒ (π > 1, 4),


(b) (e2 ≥ 0) ⇒ (e < 0),
(c) ¬(6 je cijeli broj⇒ (62 ≥ 1)),
(d) ¬(kvadrat ima tri stranice) ⇒ (trokut ima 4 stranice).
POGLAVLJE 1. UVOD 13

6. Neka su m, n ∈ N. Dokažite da je mn neparan ako i samo ako su m i


n neparni.

7. Napišite sljedeće izjave pomoću kvantifikatora i standardnih oznaka za


skupove brojeva.

(a) Jednadžba x2 + a = 0 ima realni korijen za svaki realni broj a.


(b) Svaki realni broj je racionalni broj.
(c) Postoji barem jedan iracionalan broj,
(d) Postoji najmanji prirodan broj.

Koje su od gornjih izjava istinite?

8. Napišite negacije izjava iz prethodnog zadatka.

9. Koje su tvrdnje istinite? Univerzum razmatranja je zapisan u zagra-


dama.

(a) ∀x(x − 1 ≤ x) (R).


(b) ∃x(x + 3 = 2x − 1) (N).
(c) ∃!x(x2 = 2) (R).
(d) ∀x∃!y(y = x2 ) (R).
(e) ∀x∃!y(y = x2 ) (N).

10. Dokažite da je 3 iracionalan broj.

11. Dokažite da ako je n ∈ N tada je barem jedan od brojeva n, n +2, n + 4


djeljiv s 3.

12. Zadana je tvrdnja T .


T := ”Ako je n kvadrat parnog prirodnog broja tada je n
suma dva uzastopna neparna prirodna broja.”

(a) Pokažite da je T istinita tvrdnja upotrebljavajući konstrukciju


temeljenu na sljedećim primjerima: 42 = 7 + 9, 62 = 17 + 19, 82 =
31 + 33, 102 = 49 + 51.
(b) Napišite ¬T .
(c) Napišite kotrapozitivnu tvrdnju tvrdnji T . Je li ona istinita?

13. Upotrebom matematičke indukcije dokažite sljedeće tvrdnje:

(a) n3 − 2n je djeljiv s 3.
(b) an − bn je djeljiv s a − b za sve a, b ∈ Z i a − b 6= 0.
Pn
(c) k(k + 1)(k + 2) = 14 n(n + 1)(n + 2)(n + 3).
k=1
14 1.3. ZADACI

Q
n k k+1
1−x2
(d) Za svaki x ∈ R, x 6= ±1 i n ≥ 1 vrijedi (1 + x2 ) = 1−x2
.
k=1

14. Pomoću matematičke indukcije pokažite da ako je a1 = 1, a2 = 5 i


an+1 = 5an − 6an−1 za n ≥ 2 tada je an = 3n − 2n za svaki n ∈ N.

15. Za svaki od sljedećih skupova nadite najmanji i najveći element, uko-


liko oni postoje:

(a) A = {n ∈ N : n2 ≤ 52}
(b) B = {n ∈ N : n2 ≤ 100n}
(c) C = {n ∈ N : n je višekratnik broja 4}
(d) D = {n ∈ N : n je prost broj}

16. Neka su S1 i S2 podskupovi skupa N. Nadalje, neka je m1 , odnosno


m2 najmanji element u S1 , odnosno S2 , te neka je M1 , odnosno M2
najveći element u S1 , odnosno S2 . Što znamo o najmanjem, odnosno
najvećem elementu skupova S1 ∪ S2 i S1 ∩ S2 ?
Bibliografija

[1] Biggs, N. L.: Discrete Mathematics, Oxford University Press Inc., New
York, 2002.

[2] Dadić, Ž.: Povijest ideja i metoda u matematici i fizici, Školska knjiga,
Zagreb, 1992.

[3] Devlin, K.: Language of Mathematics, W. H. Freeman and Co., New


York, 2000

[4] Divjak, B.; Hunjak, T.: Matematika za informatičare, TIVA-FOI,


Varaždin, 2004.

[5] Gowers, T.: Mathematics, A Very short Introduction, Oxford Univer-


sity Press, Oxford, 2002.

[6] Hoffmann, L. D.; Bradley, G. L.: Finite mathematics with Calculus,


McGraw-Hill, Inc., New York, 1995.

[7] Keller, S.-McNulty; Wilson, A. G.; Wilson, G.: The Impact of Technol-
ogy on the Scientific Method, submitted to: Science Compass, LA-UR-
01-5739

[8] Kerzner, H.: Project Management, a Systems Approach to Planning,


Scheduling and Controlling, John Wiley and Sons Inc., New York, 2003.

[9] Mintaković, S.: Neeuklidska geometrija Lobačevskog,Školska knjiga, Za-


greb, 1972.

[10] Šikić, Z.: Kako je stvarana novovijekovna matematimka, Školska knjiga,


Zagreb, 1989.

15
16 BIBLIOGRAFIJA
Poglavlje 2

Matematička logika

Pretpostavimo da je pronadena
kontradikcija u aksiomima teorije
skupova. Da li ozbiljno vjerujete da
bi se most mogao srušiti?
Frank Ramsey

Logika je jedna od najstarijih, sustavno proučavanih znanstvenih di-


sciplina. Ona predstavlja formalizaciju znanstvenog razmišljanja i osigu-
rava njegovu valjanost. Njeni počeci sežu do Ari-
stotela i drugih grčkih filozofa. Upravo se radovi
Aristotela u 4 st. p. K. smatraju temeljima logike
kao znanstvene discipline. On je napisao knjigu
o logici koju je nazvao Organon (Oργανoν), što
znači orude. Dakle, već je Aristotel gledao na
logiku kao na glavno orude znanstvenika, na alat
koji znanstveniku omogućuje njegov rad, odnosno
pronalaženje znanstvenih spoznaja. Uz tu se knji-
gu veže prvo javljanje pojmova hipoteze, aksioma,
teorema i dokaza, kao osnovnih gradevnih eleme-
nata logike. Takoder, Aristotel uvodi tehnike in- Slika 2.1: Aristotel
duktivnog i deduktivnog dokazivanja, te tzv. Aristotelove forme, koje pokri-
vaju sve elementarne logičke izjave.
Matematička logika predstavlja formalizaciju logike te se posebno bavi
matematičkim razmišljanjem i dokazivanjem. Počeci razvoja matematičke
logike sežu u 18. st. do dublinskog biskupa Richarda Whatleya, koji se sma-
tra začetnikom matematičke logike. Prve značajne rezultate u matematičkoj
logici objavili su u 19. stoljeću George Boole, Augustus De Morgan i Ernst
Schröder. Veliki interes za matematičku logiku izazvao je 20-tih godina 20.
st. Bertrand Russel (1872-1970) objavljivanjem svojih poznatih paradoksa
regularnog svojstva, do kojih je dovelo egzistencijalističko, nekonstruktivno

17
18 2.1. RAČUN SUDOVA

definiranje kakvo se koristilo prije toga u matematici. Otkrivanje paradoksa


u mnogim matematičkim aksiomatikama dovelo je do revizije pojmova u
tim matematičkim disciplinama. Tako su revidirane matematičke teorije
kao što su teorija skupova, algebra itd. U 20. st. važnije su rezultate dali
Albert Thorlaf Skolem, Bertrand Russel, Alfred North Whitehead, a za in-
formatičare su posebno interesantni rezultati koje je dao Alan Turing, koji
se intenzivno bavio definiranjem intuitivnog pojma algoritma, te dao jedan
od najpoznatijih logičkih modela algoritma - Turingov stroj. O tome ćemo
više govoriti u posljednjem poglavlju ove knjige.

2.1 Račun sudova


Račun sudova ili propozicijska logika je jednostavan logički jezik koji se
sastoji od sudova koji su povezani pomoću logičkih veznika ¬, ∨, ∧, →, ↔.

2.1.1 Sintaksa
Definicija 2.1 (Jezik) Jezik L računa sudova sastoji se od:

1. najviše prebrojivog skupa1 A propozicijskih varijabli ili atoma A, B,


C, . . .,

2. veznika ¬, ∨, ∧, →, ↔,

3. zagrada }, {, ], [, ), (.

Definicija 2.2 (Sud)

1. Svaka propozicijska varijabla je sud.

2. Ako je F sud, onda je i ¬F sud.

3. Ako su F i G sudovi, onda je i (F ΘG), Θ ∈ {∨, ∧, →, ↔} takoder sud.

4. Sudovi su samo oni izrazi koji se mogu dobiti konačnim brojem uza-
stopnih primjena pravila 1-3.

Primjer 2.1 Neka su A, B, C propozicijske varijable. Tada su sljedeći izrazi


sudovi:

• (A ∨ (B ∧ ¬C)),

• ((A → B) ↔ (¬A ∨ B)),

• (C ↔ (A ∧ ¬B)).
1
Za skup kažemo da je prebrojiv ako je konačan ili bijektivan s N
POGLAVLJE 2. MATEMATIČKA LOGIKA 19

Na kraju ovog podpoglavlja treba reći nekoliko riječi o zagradama. Za-


grade se u logici smatraju pomoćnim simbolima koji osiguravaju jednoznač-
nost formula. U klasičnom su načinu zapisivanja formula zagrade nužne,
jer bez njih sudovi ne bi bili jednoznačni. Čak i ako se uvede prioritet
logičkih operatora, kao što to neki logičari čine, zagrade se ne mogu u pot-
punosti izbaciti. Postoje, s druge strane, notacije koje osiguravaju jedno-
značnost formula bez upotrijebe zagrada i bez definiranja prioriteta logičkih
veznika. Jedna je takva notacija postfiksna notacija ili obrnuta poljska no-
tacija. Nažalost, iako su takve notacije bolje sa stajališta jedinstvenosti
formula, one su neuobičajene za ljude nenaviknute na njih, pa se rijetko ko-
riste. Ipak, u prethodnoj definiciji formule se zadaju tako da je svaki izraz
okružen zagradama. No, sve te zagrade nisu potrebne. Postoje slučajevi
kada zagrade ne doprinose jednoznačnosti formule i kada se neke njene za-
grade izostave. U tom se slučaju zagrade, koje ne doprinose jednoznačnosti
suda, tj. zagrade koje nisu potrebne i bez kojih sud ostaje jednako jasan,
izostaviti. Tako se npr. uvijek izostavljaju zagrade koje okružuju cijeli sud.

2.1.2 Semantika
U prošlom smo poglavlju objasnili kako se tvore jezični konstrukti jezika
računa sudova. Ovdje ćemo opisati njihovo značenje, odnosno semantiku.

Definicija 2.3 Neka je definirano proizvoljno preslikavanje i : A → {⊥, >}.


Interpretacija je proširenje preslikavanja i na skup svih sudova S definirano
na sljedeći način:
Neka su F, G ∈ S sudovi. Tada vrijede sljedeće tvrdnje:
• i(¬F ) = > ako i samo ako je i(F ) = ⊥,

• i(F ∨ G) = ⊥ ako i samo ako je i(F ) = ⊥ i i(G) = ⊥,

• i(F ∧ G) = > ako i samo ako je i(F ) = > i i(G) = >,

• i(F → G) = ⊥ ako i samo ako je i(F ) = > i i(G) = ⊥,

• i(F ↔ G) = > ako i samo ako je i(F ) = i(G).

Primjer 2.2 Neka je zadana interpretacija s i(A) = ⊥, i(B) = ⊥, i(C) = ⊥.


Treba izračunati istinosnu vrijednost za sudove iz primjera 2.1.
• i(¬C) = >, pa je i(B ∧ ¬C) = ⊥, i na kraju i(A ∨ (B ∧ ¬C)) = ⊥

• i(A → B) = >. Isti tako je i(¬A) = >, pa je u i(¬A ∨ B) = >. Dakle


i((A → B) ↔ (¬A ∨ B)) = >.

• i(¬B) = >, pa je i(A ∧ ¬B) = ⊥. Iz toga je i(C ↔ (A ∧ ¬B)) = >.


Sljedeći važan pojam, koji treba definirati, jest pojam logičke posljedice.
20 2.1. RAČUN SUDOVA

Definicija 2.4 Sud G je logička posljedica skupa sudova F = {F1 , . . . , Fn },


što se piše F |= G ili F ⇒ G ako za svaku interpretaciju za koju vrijedi
i(Fi ) = > za svaki Fi ∈ F vrijedi i i(G) = >.

Primjer 2.3 Pokažimo da je sud B logička posljedica skupa sudova {A →


B, A}.
Pretpostavimo da vrijedi i(A → B) = > i i(A) = >. Kada bi bilo
i(B) = ⊥, onda bi, zbog i(A → B) = >, iz definicije 2.3 slijedilo da je
i(A) = ⊥, a to je u suprotnosti s pretpostavkom da je i(A) = >.
Dakle, zaključujemo da je i(B) = >.

Uz pojam logičke posljedice usko je vezan još jedan semantički pojam –


pojam logičke ekvivalencije.

Definicija 2.5 Sudovi F i G su logički ekvivalentni, što zapisujemo F ≡ G


ili F ⇔ G, ako za svaku interpretaciju i vrijedi da je i(F ) = i(G).

Iz definicije pojma logičke ekvivalencije proizlazi sljedeća karakterizacija


logičke ekvivalencije:

Propozicija 2.1 F ≡ G ako i samo ako vrijedi da je F |= G i G |= F .

Dokaz. Napravite sami za vježbu.


Nadalje, iz definicije 2.3 lako se vidi da su operacije ∨, ∧ i ↔ komutativne.
Takoder se vidi da za ∨ i ∧ vrijedi svojstvo asocijativnosti. Nadalje, lagano
se vidi da vrijede svojstva distributivnosti veznika ∨ prema vezniku ∧ i
obrnuto, distributivnosti veznika ∧ prema vezniku ∨. Sve to i još neke
činjenice koje slijede iz definicije 2.3 sadržane su u sljedećoj propoziciji:

Propozicija 2.2 Za proizvoljne sudove F, G i H vrijedi

1. F ∨ F ≡ F (idempotentnost)

2. F ∧ F ≡ F (idempotentnost)

3. F ∨ G ≡ G ∨ F (komutativnost)

4. F ∧ G ≡ G ∧ F (komutativnost)

5. F ∨ (G ∨ H) ≡ (F ∨ G) ∨ H (asocijativnost)

6. F ∧ (G ∧ H) ≡ (F ∧ G) ∧ H (asocijativnost)

7. F ∨ (G ∧ H) ≡ (F ∨ G) ∧ (F ∨ H) (distributivnost)

8. F ∧ (G ∨ H) ≡ (F ∧ G) ∨ (F ∧ H) (distributivnost)

9. F ∨ ¬F ≡ >
POGLAVLJE 2. MATEMATIČKA LOGIKA 21

10. F ∧ ¬F ≡ ⊥

11. F ∨ > ≡ >

12. F ∨ ⊥ ≡ F

13. F ∧ > ≡ F

14. F ∧ ⊥ ≡ ⊥

15. ¬¬F ≡ F (dvostruka negacija)

16. ¬(F ∨ G) ≡ ¬F ∧ ¬G (de Morganov zakon)

17. ¬(F ∧ G) ≡ ¬F ∨ ¬G (de Morganov zakon)

18. F ∧ (G ∨ H) ≡ (F ∧ G) ∨ (F ∧ H) (distributivnost)

19. F ∨ (G ∧ H) ≡ (F ∨ G) ∧ (F ∨ H) (distributivnost)

20. F → G ≡ ¬G ∨ F

21. F ↔ G ≡ (F ∧ G) ∨ (¬F ∧ ¬G)

22. F ↔ G ≡ (¬F ∨ G) ∧ (F ∨ ¬G)

Dokaz. Napravite sami.


Definirali smo pojam logičke posljedice, no koristeći samo tu definiciju,
ponekad nije lako odrediti je li neka formula logička posljedica nekog skupa
formula ili nije. Srećom, postoje tzv. karakterizacije logičke posljedice
koje nam omogućuju da problem logičke posljedice svedemo na problem
tautologičnosti, odnosno antitautologičnosti logičke formule, što predstavlja
problem koji je mnogo lakše riješiti. No, prije no što to izvedemo, treba
definirati još nekoliko pojmova.
Sud F je tautologija ako je i(F ) = > za svaku interpretaciju i. Ako je
sud F lažan u svakoj interpretaciji i, onda se on naziva antitautologija. Za
sud koji nije antitautologija, tj. za koji postoji bar jedna interpretacija i
takva da je i(F ) = >, kaže se da je ispunjiv . Za sud koji nije tautologija,
odnosno za koji postoji interpretacija i u kojoj je i(F ) = ⊥ kaže se da je
otklonjiv ili da nije ispunjiv.

Teorem 2.1 (1. karakterizacija pojma logičke posljedice)


Sud G je logička posljedica skupa sudova F = {F1 , . . . , Fn } ako i samo ako
je sud (F1 ∧ . . . ∧ Fn ) ∧ ¬G antitautololgija.
Dokaz. Neka je F |= G. Ako u interpretaciji i ne vrijedi da je i(Fk ) = > za
neki Fk ∈ F, onda tvrdnja trivijalno vrijedi. Naime, u svakoj je interpretaciji
i koja ne zadovoljava gore napisani uvjet i(F1 ∧ . . . ∧ Fn ) = ⊥, pa je i
i((F1 ∧ . . . ∧ Fn ) ∧ ¬G) = ⊥.
22 2.1. RAČUN SUDOVA

Pretpostavimo stoga da je i interpretacija takva da je i(Fk ) = > za svaki


Fk ∈ F. No, prema definiciji 2.4 onda mora biti i i(G) = >. Ali, onda je
prema definiciji 2.3 i(¬G) = ⊥, pa je i i((F1 ∧ . . . ∧ Fn ) ∧ ¬G) = ⊥.
Prema tome, u svakoj je interpretaciji i((F1 ∧ . . . ∧ Fn ) ∧ ¬G) = ⊥,
odnosno (F1 ∧ . . . ∧ Fn ) ∧ ¬G je antitautologija.
Obrnuto, neka je (F1 ∧ . . . ∧ Fn ) ∧ ¬G antitautologija. Pretpostavimo
da je i interpretacija takva da je i(Fk ) = > za svaki Fk ∈ F. Ako takva
interpretacija ne postoji, onda je tvrdnja da je G logička posljedica od F
trivijalno ispunjena. Dakle, neka je i takva interpretacija. Tada je i(F1 ∧
. . . ∧ Fn ) = >. No, kako je (F1 ∧ . . . ∧ Fn ) ∧ ¬G, antitautologija, onda,
prema definiciji 2.3 i(¬G) mora biti ⊥. No, onda je, opet prema definiciji
2.3 i(G) = >. Kako to vrijedi za svaku interpretaciju za koju je i(Fk ) = >
za svaki Fk ∈ F, zaključujemo da je G logička posljedica od F.

Teorem 2.2 (2. karakterizacija pojma logičke posljedice) Sud G je


logička posljedica skupa sudova F = {F1 , . . . , Fn } ako i samo ako je sud
(F1 ∧ . . . ∧ Fn ) → G tautololgija.

Dokaz. Neka je F |= G. Ako je i interpretacija takva da ne vrijedi i(Fk ) =


> za svaki Fk ∈ F, onda za svaku intepretaciju i vrijedi i(F1 ∧ . . . ∧ Fn ) = ⊥,
pa onda, prema definiciji 2.3, vrijedi i((F1 ∧ . . . ∧ Fn ) → G) = >.
Neka vrijedi i(Fk ) = > za svaki Fk ∈ F. Tada, zbog pretpostavke da je
G logička posljedica od F mora biti i(G) = >. No, onda je, prema definiciji
2.3 i((F1 ∧ . . . ∧ Fn ) → G) = >.
Dakle, u svakom slučaju je i((F1 ∧ . . . ∧ Fn ) → G) = >, pa je (F1 ∧ . . . ∧
Fn ) → G tautologija.
Obrnuto, neka je (F1 ∧ . . . ∧ Fn ) → G tautologija. Ako ne postoji in-
tepretacija u kojoj je i(Fk ) = > za svaki Fk ∈ F, onda trivijalno slijedi da je
G logička posljedica od F. Neka je, stoga, i takva interpretacija. U njoj je,
prema definiciji 2.3 i(F1 ∧. . .∧Fn ) = >. Kako je sud (F1 ∧. . .∧Fn ) → G) po
pretpostavci tautologija, onda prema definiciji 2.3 i(G) mora biti >. Dakle,
G je logička posljedica od F.
Slično se može postaviti i karakterizacija pojma logičke ekvivalencije:

Teorem 2.3 (Karakterizacija pojma logičke ekvivalencije)


Dva suda F i G su logički ekvivalentni ako i samo ako je sud F ↔ G
tautologija.

Dokaz. Izvedite sami.

Formalni sustavi
Semantički izvodi, poput izvoda u primjeru 2.3, mogu biti složeni i teški.
Stoga se uvode formalni sustavi za izvodenje, koji se sastoje od pravila
izvoda, koja iz sudova izvode njihove logičke posljedice.
POGLAVLJE 2. MATEMATIČKA LOGIKA 23

Ovdje ćemo prikazati dva sustava: jedan koji se temelji na klasičnom ma-
tematičkom izvodenju, i drugi koji je posebno pogodan za dedukciju pomoću
računala.
Prvi sustav, koji se naziva F -sustav , sastoji se od osam pravila izvoda -
po dva pravila za svaki veznik. Za svaki veznik se definira pravilo uvodenja
i eliminacije. Ovaj se sustav još naziva i sustav prirodne dedukcije jer se
njegovi aksiomi temelje na standardnim logičkim pravilima zaključivanja.
Takoder, ovaj je sustav ponekad referiran kao Fitchov sustav , prema ame-
ričkom logičaru Frederichu Fitchu, koji je prvi formalizirao ovaj sustav,
povodeći se za prirodnim pravilima dedukcije, koje matematičari koriste
u svojoj praksi. Pravila izvoda se u F-sustavu mogu prikazati grafički.
Prva dva pravila se odnose na konjunkciju. Prvo od njih je pravilo
uvodenja konjunkcije (∧ Intro).
F1

Fn
..
.
⇒ F1 ∧ . . . ∧ Fn
Drugo je pravilo eliminacije konjunkcije (∧ Elim)
F1 ∧ . . . ∧ Fn
..
.
⇒ Fi
Oba ova pravila su jasna i jednostavna.
Sljedeća dva pravila bit će pravila vezana uz disjunkciju. No, prije nego
ih iskažemo, moramo uvesti pojam poddokaza. Poddokaz je segment unutar
dokaza, koji uz dodatne uvjete dokazuje odredenu tvrdnju. Treba još jed-
nom naglasiti da se tvrdnje unutar poddokaza izvode uz dodatne uvjete, koji
općenito ne moraju vrijediti. Stoga tvrdnje koje su dokazane unutar pod-
dokaza takoder ne moraju vrijediti općenito. Zbog toga korištenje tvrdnji
dokazanih u poddokazu izvan poddokaza nije dozvoljeno, osim ako to pravi-
lo izvoda izričito ne nalaže. Jedno takvo pravilo koje omogućuje korištenje
tvrdnje dokazane u poddokazu izvan samog poddokaza jest pravilo elimi-
nacije disjunkcije.
Uvodenje disjunkcije (∨ Intro)
Fi
..
.
⇒ F1 ∨ . . . ∨ Fn
Eliminacija negacije (¬ Elim)
24 2.1. RAČUN SUDOVA

F1 ∨ . . . ∨ Fn
F1
..
.
S


Fn
..
.
S
⇒ S
Pravilo eliminacije disjunkcije zahtjeva dodatno objašnjenje. Naime, kao
što je već rečeno, F sustav slijedi standardne matematičke tehnike dokazi-
vanja. Neka pravila su samo koraci u direktnom dokazivanju. Takva su
pravila uvodenje i eliminacija konjunkcije te uvodenje disjunkcije. Druga
opet pravila predstavljaju strategije dokazivanja. Takvo je pravilo elimi-
nacija disjunkcije. Pravila koja predstavljaju strategije dokazivanja imaju
u matematici i druge nazive, koji su već spomenuti u poglavlju 1.2, gdje se
ono zove dokaz podjelom na slučajeve.
Sada ćemo uvesti dva pravila koja se odnose na negaciju.
Uvodenje negacije (¬ Intro)
F
..
.
G ∧ ¬G
⇒ ¬F
Eliminacija negacije (¬ Elim)
¬¬F1
..
.
⇒ F
Elimincija negacije je još jedno pravilo koje predstavlja jednostavan ko-
rak direktnog dokaza. S druge strane, uvodenje negacije je još jedna, možda
čak i najčešće korištena, strategija dokazivanja - dokazivanje obaranjem
suprotnog ili dokazivanje svodenjem na kontradikciju, ili pak na latinskom
reductio ab absurdum.
Na kraju, ostali su nam kondicional i bikondicional.
Uvodenje kondicionala (→ Intro)
F
..
.
G
⇒ F →G
Eliminacija kondicionala (→ Elim)
POGLAVLJE 2. MATEMATIČKA LOGIKA 25

F →G
F
..
.
⇒ G
Uvodenje kondicionala je osnovna strategija dokazivanja sudova koji
imaju kauzalnu formu, tj. koje sadrže kondicional. S druge strane, elimi-
nacija kondicionala je samo korak u dokazivanju. Pravilo eliminacije kondi-
cionala ima, medutim, značajnu ulogu u mnogim logičkim sustavima, po-
sebno sustavima koji se koriste u klasičnoj logici. Zato ima i posebno ime -
modus ponens, što u prijevodu znači ”metoda potvrdivanja”.
Uvodenje bikondicionala (↔ Intro)
F
..
.
G
G
..
.
F
⇒ F ↔G
Eliminacija bikondicionala (↔ Elim)
F ↔G
F
..
.
⇒ G
Slično kao što je rečeno za uvodenje kondicionala, uvodenje bikondi-
cionala je osnovna strategija dokazivanja rečenica koje sadrže bikondicional.

Definicija 2.6 Neka je F skup sudova i neka je G sud. Tada se niz sudova
G1 , . . . , Gn : G naziva izvod suda G iz skupa sudova F pomoću formalnog
sustava S ako za svaki i = 1, . . . , n vrijedi jedna od sljedećih tvrdnji

• Gi ∈ F,

• postoje j1 , . . . , jk ≤ i takvi da je Gi dobiveno primjenom nekog pravila


izvoda iz sustava S na sudove Gj1 , . . . , Gjk .

Sud G je izvediv iz F pomoću sustava S ako postoji izvod suda G iz F


pomoću formalnog sustava S. To se označava sa F `S G

Za izvodenje svakog formalnog sustava bitne su dvije stvari. Prva je da


je sustav korektan. To znači da sve što se pomoću sustava može izvesti jest
logička posljedica onoga iz čega je izvedeno. Drugim riječima, da iz F `S G
slijedi F |= G. Druga stvar, koja je jednako bitna, jest potpunost sustava.
Tu se radi o tome da iz F |= G mora slijediti F `S G, odnosno da sustav
mora biti u stanju dokazati svaku logičku posljedicu zadanih pretpostavki.
26 2.1. RAČUN SUDOVA

Teorem 2.4 Neka je F skup sudova i neka je G sud. Tada vrijedi:

• Ako je F `F G onda je F |= G.

• Ako je F |= G onda je F `F G.

Dakle, F sustav je korektan i potpun. Dokaz ovog teorema je prilično


dugačak, pa ćemo ga preskočiti. U projektima vezanim uz ovo poglavlje
postoji i projekt dokazivanja ovog teorema.
Dajmo sada nekoliko primjera dokazivanja pomoću ovog sustava.

Primjer 2.4 Dokažimo da iz A i ¬A slijedi B.


1. A
2. ¬A
3. ¬B
4. A ∧ ¬A (∧ Intro: 1,2)
5. ¬¬B (¬ Intro: 3-4)
6. B (¬ Elim: 5)

Primjer 2.5 Dokažimo pravilo modus tollens (metoda opovrgavanja), o-


dnosno da iz A → B i ¬B slijedi ¬A.
1. A → B
2. ¬B
3. A
4. B (→ Elim: 1,3)
5. B ∧ ¬B (∧ Intro: 4,1)
6. ¬A (¬ Intro: 3-5)

Primjer 2.6 Dokažimo još pravilo distributivnosti disjunkcije prema ko-


njunkciji.
Za to su potrebna dva smjera dokaza, tj. treba iz F ∨ (G ∧ H) dokazati
(F ∨ G) ∧ (F ∨ H) i obrnuto.
1. F ∨ (G ∧ H)
2. F
4. F ∨ G (∨ Intro: 2)
5. F ∨ H (∨ Intro: 2)
6. (F ∨ G) ∧ (F ∨ H) (∧ Intro: 4,5)

7. G ∧ H
8. G (∧ Elim: 7)
9. F ∨ G (∨ Intro: 8)
10. H (∧ Elim: 7)
11. F ∨ H (∨ Intro: 10)
12. (F ∨ G) ∧ (F ∨ H) (∧ Intro: 9,11)
13. (F ∨ G) ∧ (F ∨ H) (∨ Intro: 1,2-6,7-12)
POGLAVLJE 2. MATEMATIČKA LOGIKA 27

Drugi sustav za dokazivanje koji ćemo ovdje obraditi, a koji je posebno


pogodan za automatsku dedukciju, naziva se rezolucijski postupak. On je
posebno pogodan za automatsku dedukciju jer se sastoji od jednog jedinog
pravila izvoda – pravila rezolucije.
F ∨A
G ∨ ¬A
..
.
⇒ F ∨G
Da bi se koristio rezolucijski izvod, prvo je potrebno pretpostavke zami-
jeniti ekvivalentnim sudovima u konjunktivnoj normalnoj formi.

Definicija 2.7 Neka je A atom. Tada se sudovi A i ¬A nazivaju literali .


Pri tome je A pozitivni, a ¬A negativni literal.
Neka su L1 , . . . , Lk literali. Tada se sud L1 ∨ . . . ∨ Lk naziva disjunkt.
Neka su D1 , . . . , Dn disjunkti. Tada se za sud D1 ∧ . . . ∧ Dn kaže da je
u konjunktivnoj normalnoj formi.

Teorem 2.5 Za svaki sud računa sudova postoji logički ekvivalentan sud u
konjunktivnoj normalnoj formi.
Umjesto dokaza ovdje ćemo opisati kako se za zadanu formulu konstruira
ekvivalentan sud u konjunktivnoj normalnoj formi. U propoziciji 2.2 dane
su ekvivalencije čijim se korištenjem svaki sud računa sudova može prevesti
u ekvivalentan sud u konjunktivnoj normalnoj formi. Uz opis koraka dat
ćemo i primjer kako se pojedini koraci konkretno provode.

Primjer 2.7 Kao primjer uzet ćemo sud (A ↔ B) ∧ ¬(A → (B ∧ ¬C)).

1. Prvo se pomoću posljednja tri pravila opisana u propoziciji 2.2 eli-


miniraju svi kondicionali i bikondicionali koji se pojavljuju u sudu i
zamijenjuju se konjunkcijama, disjunkcijama i negacijama.

(A ↔ B)∨¬(A → (B∧¬C)) ≡ ((A∨¬B)∧(¬A∨B))∧¬(¬A∨(B∧¬C))

2. Nakon toga se koriste de Morganovi zakoni i pravilo dvostruke ne-


gacije kako bi se eliminirale negacije koje djeluju na složenim sudovima.
Naime, u konjunktivnoj normalnoj formi negacije djeluju samo na
atomima.
((A ∨ ¬B) ∧ (¬A ∨ B)) ∨ ¬(¬A ∨ (B ∧ ¬C))
≡ ((A ∨ ¬B) ∧ (¬A ∨ B)) ∨ (¬¬A ∧ ¬(B ∧ ¬C))
≡ ((A ∨ ¬B) ∧ (¬A ∨ B)) ∨ (A ∧ ¬(B ∧ ¬C))
≡ ((A ∨ ¬B) ∨ (¬A ∨ B)) ∧ (A ∧ (¬B ∨ ¬¬C))
≡ ((A ∨ ¬B) ∨ (¬A ∨ B)) ∧ (A ∧ (¬B ∨ C))
28 2.1. RAČUN SUDOVA

3. Na kraju se primjenom pravila distributivnosti i asocijativnosti sud


prevodi u konjunktivnu normalnu formu.

((A ∨ ¬B) ∧ (¬A ∨ B)) ∨ (A ∧ (¬B ∨ C))


≡ ((A ∨ ¬B) ∨ (A ∧ (¬B ∨ C))) ∧ ((¬A ∨ B) ∨ (A ∧ (¬B ∨ C)))
≡ (((A ∨ ¬B) ∨ A) ∧ ((A ∨ ¬B) ∨ (¬B ∨ C)))
∧(((¬A ∨ B) ∨ A) ∧ ((¬A ∨ B) ∨ (¬B ∨ C)))
≡ (A ∨ ¬B ∨ A) ∧ (A ∨ ¬B ∨ ¬B ∨ C) ∧
(¬A ∨ B ∨ A) ∧ (¬A ∨ B ∨ ¬B ∨ C)

Nakon što se prevede u konjunktivnu normalnu formu, sud se može, pri-


mjenom pravila idempotencije, komutativnosti te pravila 9-14 iz propozicije
2.2 dodatno urediti.
Tako se, npr., u drugom disjunktu suda iz primjera nalazi fragment ¬B ∨
¬B, što se prema idempotenciji mijenja s ¬B, a u četvrtom disjunktu se B ∨
¬B prema pravilu 9 mijenja s >, zbog čega se cijeli četvrti disjunkt, prema
pravilu 11, mijenja s >, a onda se, prema pravilu 13, može u potpunosti
ukloniti iz suda. Takoder, primjenom pravila komutativnosti i idempotencije
prvi disjunkt se pretvara u A ∨ B, dok se primjenom pravila komutativnosti
te pravila 9 i 11 treći disjunkt pretvara u >, nakon čega se zbog pravila 14
može ukloniti iz suda.
Nakon toga će formula izgledati ovako:

(A ∨ ¬B) ∧ (A ∨ ¬B ∨ C).
Sada, kad smo iznijeli način pretvaranja suda u konjunktivnu normalnu
formu, možemo opisati postupak dokazivanja pomoću rezolucijskog pravi-
la. Prije nego što se krene u sam izvod, potrebno je urediti pretpostavke
i zaključak koji želimo dokazati. Kod rezolucijskog postupka nikada se za-
ključak ne dokazuje izravno, već se uvijek obara njegova negacija. Stoga
je, prije svega, potrebno negirati zaključak koji želimo dokazati. Nakon
toga se sve pretpostavke i zaključak pretvaraju u konjunktivnu normalnu
formu. Time se dobija skup sudova u konjunktivnoj normalnoj formi, koji
se sastoji od pretpostavki i negacije zaključka. Lako je dokazati da vrijedi
{A, B} ≡ {A ∧ B}. Stoga se svaki sud u konjunktivnoj normalnoj formi u
skupu može zamijeniti s jednim ili više sudova, koji su po svom obliku di-
sjunkti. Na tako dobiven skup disjunkata se primijenjuje pravilo rezolucije,
u želji da se iz skupa izvede prazan disjunkt. Prazan disjunkt ili refutacija
označava se s ⊥ i predstavlja antitautologiju. Dobije li se refutacija, negacija
je zaključka oborena, a zaključak je dokazan.
Da bi se ovaj postupak mogao koristiti potrebno je imati sljedeći teorem:

Teorem 2.6 Rezolucijski postupak je potpun i korektan za račun sudova.


POGLAVLJE 2. MATEMATIČKA LOGIKA 29

Primjer 2.8 Dokažimo rezolucijom da iz A i ¬A slijedi B. Zaključak se


negira i dobije se ¬B. Svi su sudovi već u konjunktivnoj normalnoj formi,
pa možemo krenuti na rezolucijski izvod:
1. A
2. ¬A
3. ¬B
4. ⊥ (Res: 1,2)

Primjer 2.9 Dokažimo pravilo modus tollens, odnosno da iz A → B i ¬B


slijedi ¬A.
Negacija zaključka je ¬¬A, odnosno A. Prvi se sud pretvara u ¬A ∨ B,
te imamo
1. ¬A ∨ B
2. ¬B
3. A
4. ¬A (Res: 1,2)
5. ⊥ (Res: 3,4)
Detaljnim razmatranjem rezolucijskog postupka i njegovom implementa-
cijom na računalu doći će se do dedukcijskog algoritma temeljenog na metodi
pretraživanja s vraćanjem (backtracking). Problem je u tome što je taj algo-
ritam u najgorem slučaju složenosti O(2n ). Nažalost, poboljšanje složenosti
najgoreg slučaja ovog algoritma nije moguće. No, moguće je poboljšati
njegovu prosječnu složenost. S tom su idejom smišljena poboljšanja rezolu-
cijskog postupka nazvana semantička rezolucija, a posebno njen specijalni
slučaj hiperrezolucija, te na kraju linearna rezolucija, koja se koristi u pro-
gramskom jeziku Prolog. Više o tim rezolucijskim postupcima čitatelj može
naći u [3].

2.2 Predikatni račun


Za opis nekih složenijih sustava nije dovoljan račun sudova. Tako se npr,
nijedna matematička teorija ne može opisati samo računom sudova. Za
to je potreban nešto složeniji logički jezik - račun predikata. U ovom ćemo
poglavlju uvesti taj složeniji i bogatiji logički jezik koji će omogućiti formalni
prikaz mnogih, ali još uvijek ne svih matematičkih teorija.

2.2.1 Sintaksa
Definicija 2.8 Jezik računa predikata ima abecedu koja se sastoji od:

• najviše prebrojivog skupa P predikatnih simbola,

• najviše prebrojivog skupa F funkcijskih simbola,

• najviše prebrojivog skupa C konstanti,


30 2.2. PREDIKATNI RAČUN

• najviše prebrojivog skupa V varijabli,

• logičkih veznika ¬, ∨, ∧, →, ↔,

• kvantifikatora ∀, ∃,

• zagrada ), (, ], [, }, {,.

pri čemu su skupovi C i V disjunktni.


Svakom predikatnom simbolu p ∈ P, kao i svakom funkcijskom simbolu
f ∈ F pridružena je jedinstvena kratnost ili arnost.

Definicija 2.9 (Term)

• Svaka konstanta je term.

• Svaka varijabla je term.

• Ako je f ∈ F n-arni funkcijski simbol i neka su t1 , . . . , tn termi. Tada


je i f (t1 , . . . , tn ) term.

Definicija 2.10 Neka je p ∈ P n-arni predikatni simbol i neka su t1 , . . . , tn


termi. Tada je p(t1 , . . . , tn ) atomarna formula ili atom.

Definicija 2.11 (Formula)

• Atomi su formule.

• Ako je F formula, onda je i ¬F formula.

• Ako su F i G formule i ako je Θ ∈ {∨, ∧, →, ↔}, onda je F ΘG formula.

• Ako je F formula, x ∈ V varijabla, a K ∈ {∀, ∃}, onda je KxF formula.

Ako je F formula oblika KxG, pri čemu je K ∈ {∀, ∃}, a x ∈ V varijabla,


onda za svaki nastup varijable x u formuli G kažemo da je vezan kvantifika-
torom Kx. Za istu stvar još kažemo da je svaka takva varijabla x u dosegu
kvantifikatora Kx.
Za varijablu koja nije u dosegu nijednog kvantifikatora kažemo da je
slobodna.
Formula koja nema slobodnih varijabli zove se zatvorena formula ili
rečenica.

Primjer 2.10 Dajmo nekoliko primjera formula računa predikata:

• ∀x∃y(P (x, y) ∨ ¬Q(y)) → ∀x∀y(P (x, x) ↔ Q(y)),


POGLAVLJE 2. MATEMATIČKA LOGIKA 31

• ∃x(P (x) → ∀yP (y)),

• P (c) ∨ ∀x(Q(x, f (x, s)) ∧ p(f (x, x))).

Ako je F formula onda ćemo s F (x) označavati činjenicu da u F nastupa


varijabla x.

2.2.2 Semantika
Definicija 2.12 Svako preslikavanje µ : V → C naziva se ograničenje vari-
jabli .
Semantička struktura predikatnog računa M je par M =< I, U >, pri
čemu je I interpretacija, a U domena. Interpretacija I =< ϕ, ψ >, pri čemu
je ϕ pridruživanje koje svakom n-arnom funkcijskom simbolu pridružuje
totalnu funkciju U n → U , a svakoj konstanti pridružuje nularnu funkciju.
Funkcija ψ svakom n-arnom predikatnom simbolu pridružuje n-arnu relaciju
nad U .
Kada se ovako definira semantička struktura predikatnog računa, dom-
ena je u potpunosti odredena interpretacijom i može se izostaviti.
Semantička struktura definira istinitost svakog pojedinog atoma.
Istinitost se definira na sljedeći način:

Definicija 2.13 Neka je µ ograničenje varijabli. Prošireno ograničenje va-


rijabli je proširenje preslikavanja µ na skup svih terma:

• µ(x) ∈ C za x ∈ V,

• µ(c) = c za c ∈ C,

• µ(f (t1 , . . . , tn )) = ϕ(f )(µ(t1 ), . . . , µ(tn )).

Definicija 2.14 Neka je M semantička struktura i neka je µ prošireno ogra-


ničenje varijabli. Tada kažemo da je:

• Ako je P (t1 , . . . , tn ) atomarna formula, onda je M |=µ A ako i samo


ako je (v(t1 ), . . . , v(tn )) ∈ ψ(P ).

• M |=µ ¬F ako i samo ako ne vrijedi M |=µ F .

• M |=µ F ∧ G ako i samo ako vrijedi M |=µ F i M |=µ G.

• M |=µ F ∨ G ako i samo ako vrijedi M |=µ F ili M |=µ G.

• M |=µ F → G ako i samo ako ne vrijedi M |=µ F ili pak vrijedi


M |=µ G.

• M |=µ F ↔ G ako i samo ako vrijedi M |=µ F → G i M |=µ G → F .


32 2.2. PREDIKATNI RAČUN

• M |=µ ∀xF (x) ako i samo ako za svako prošireno ograničenje varijabli
ν koje se podudara s µ na svim varijablama osim možda na x vrijedi
M |=ν F .

• M |=µ ∃xF (x) ako i samo ako postoji prošireno ograničenje varijabli
ν koje se podudara s µ na svim varijablama osim možda na x za koje
vrijedi M |=ν F .

Definicija 2.15 Par (M, µ) je model za formulu F ako je M |=µ F .


Ako je F rečenica, onda njena istinitost neće ovisiti o izboru proširenog
ograničenja varijabli, već samo o izboru semantičke strukture. Ako je reče-
nica F istinita u semantičkoj strukturi, onda to pišemo M |= F .
Formulu F , koja je istinita u svakoj mogućoj semantičkoj strukturi
(M, µ), nazivamo tautologija i označavamo s |= F . Formula koja nije istinita
ni u kojoj semantičkoj strukturi (M, µ) naziva se antitautologija. Za formulu
F koja nije antitatutologija, tj. za koju postoji semantička struktura (M, µ)
takva da je M |=µ F kažemo da je ispunjiva. Slično, za rečenicu F koja
nije tautologija, tj. za koju postoji semantička struktura (M, µ) takva da je
M 6|=µ F kažemo da je otklonjiva.

Definicija 2.16 Formula G je logička posljedica formule F , što označavamo


s F |= G ako za svaku semantičku strukturu M za koju vrijedi M |= F vrijedi
i M |= G.
Treba napomenuti da obje karakterizacije logičke posljedice, kako su
izrečene za račun sudova, vrijede i za račun predikata.
Nadalje, uz standardno definiranu logičku ekvivalenciju, u predikatnom
računu vrijedi i propozicija 2.2.
Ove dvije tvrdnje ne bi trebale čuditi. Naime, pokazuje se da je segment
računa predikata - račun predikata bez varijabli ekvivalentan računu sudova,
tj. sve što vrijedi u računu sudova vrijedi isto tako u računu predikata, ako
atomarne sudove zamijenimo atomarnim formulama računa sudova.
Medutim, u računu predikata postoje ekvivalencije koje nisu naslijedene
iz računa sudova, već su ekvivalencije koje se javljaju samo u računu predi-
kata:

Propozicija 2.3 Za formule F i G računa predikata vrijede sljedeća svo-


jstva:

1. ¬∀xF (x) ≡ ∃x¬F (x), (de Morganov zakon)

2. ¬∃xF (x) ≡ ∀x¬F (x), (de Morganov zakon)

3. ∀xF (x) ∧ ∀xG(x) ≡ ∀x(F (x) ∧ G(x)),

4. ∃xF (x) ∨ ∃xG(x) ≡ ∃x(F (x) ∨ G(x)),


POGLAVLJE 2. MATEMATIČKA LOGIKA 33

5. Ako je G formula u kojoj se ne javlja varijabla x, K ∈ {∀, ∃} kvan-


tifikator, a Θ ∈ {∨, ∧}, onda je KxF (x)ΘG ≡ Kx(F (x)ΘG).

6. Ako je F formula u kojoj se ne javlja vrijabla z, te ako je K ∈ {∀, ∃}


kvantifikator, onda je KxF (x) ≡ KzF (z)

7. Ako se u formulama F i G ne javljaju varijable z1 , z2 , te ako su


K1 , K2 ∈ {∀, ∃} kvantifikatori, a Θ ∈ {∨, ∧} onda vrijedi

K1 xF (x)ΘKx yG(y) ≡ K1 z1 K2 z2 (F (z1 )ΘG(z2 )).

8. ∀x∀yF (x, y) ≡ ∀y∀xF (x, y).

9. ∃x∃yF (x, y) ≡ ∃y∃xF (x, y).

Dokaz. izvedite za vježbu.

2.2.3 Formalni sustavi


Sustav F se prirodno proširuje s računa sudova na račun predikata doda-
vanjem pravila za kvantifikatore:
Uvodenje univerzala (∀ Intro)
c
..
.
P (c)
⇒ ∀xP (x)
Pri tome je c konstanta koja se ne smije javljati nigdje osim u poddokazu
u kojem je uvedena.
Eliminacija univerzala (∀ Elim)
∀xP (x)
..
.
⇒ P (c)
Isto tako, imamo dva pravila izvoda za egzistencijal.
Uvodenje egzistencijala (∃ Intro)
P (c)
..
.
⇒ ∃xP (x)
Eliminacija egzistencijala (∃ Elim)
∃xP (x)
c
P (c)
..
.
Q
⇒ Q
34 2.2. PREDIKATNI RAČUN

Pri tome se konstanta c ne pojavljuje nigdje, osim u poddokazu u kojem


je uvedena.

Primjer 2.11 Dokažimo da vrijede de Morganovi zakoni za kvantifikatore:


¬∀xP (x) ≡ ∃x¬P (x) te ¬∃xP (x) ≡ ∀x¬P (x).
Ova se ekvivalencija dokazuje preko dokaza četiri tvrdnje. Prvo ćemo
dokazati da ¬∀xP (x) slijedi iz ∃x¬P (x).
1. ∃x¬P (x)
c
2. ¬P (c)
3. ∀xP (x)
4. P (c) (∀ Elim: 3)
5. P (c) ∧ ¬P (c) (∧ Intro:4,2)
6. ¬∀xP (x) (¬ Intro: 3-5)
7. ¬∀xP (x) (∃ Elim: c -6)
Proglasimo tvrdnju koju smo upravo dokazali teoremom 1.
Dakle imamo:
Teorem 1:
∃x¬P (x)
..
.
⇒ ¬∀xP (x)
Sada imamo obrnuto:
1. ¬∀xP (x)
2. ¬∃x¬P (x)
3. ∀x¬¬P (x) (Teorem 1: 2)
c
4. ¬¬P (c) (∀ Elim: 3)
5. P (c) (¬ Elim: 4)
6. ∀xP (x) (∀ Intro: c -5)
7. ∀xP (x) ∧ ¬∀xP (x) (∧ Intro: 6,1)
8. ¬¬∃x¬P (x) (¬ Intro: 2-7)
9. ∃x¬P (x) (¬ Elim: 8)
Dakle imamo:
Teorem 2:
¬∀xP (x)
..
.
⇒ ∃x¬P (x)
Dokazujemo drugi de Morganov zakon. Prvo dokazujemo da iz ∀x¬P (x)
slijedi ¬∃xP (x).
POGLAVLJE 2. MATEMATIČKA LOGIKA 35

1. ∀x¬P (x)
∃xP (x)
c
3. P (c)
4. ¬P (c) (∀ Elim: 1)
2. 5. ¬(Q ∧ ¬Q)
6. P (c) ∧ ¬P (c) (∧ Intro: 3,4)
7. ¬¬(Q ∧ ¬Q) (¬ Intro: 5-6)
8. Q ∧ ¬Q (¬ Elim: 7)
9. Q ∧ ¬Q (∃ Elim: c -8)
10. ¬∃xP (x) (¬ Intro: 2-9)
što daje sljedeći teorem:
Teorem 3:
∀x¬P (x)
..
.
⇒ ¬∃xP (x)
I na kraju:
1. ¬∃xP (x)
2. ¬∀x¬P (x)
3. ∃x¬¬P (x) (Teorem 2: 2)
c
4. ¬¬P (c)
P (c) (¬ Elim: 4)
6. ∃xP (x) (∃ Intro: 5)
7. ∃xP (x) ∧ ¬∃xP (x) (∧ Intro: 6,1)
8. ∃xP (x) ∧ ¬∃xP (x) (∃ Elim: 3, c -7)
9. ¬¬∀x¬P (x) (¬ Intro: 2-8)
10. ∀x¬P (x) (¬ Elim: 9)
Dakle,
Teorem 4:
¬∃xP (x)
..
.
⇒ ∀x¬P (x)

Time smo završili razmatranje F sustava. Čitatelj zainteresiran za de-


taljnije proučavanje F sustava kao formalizacije matematičkog dokazivanja
upućuje se na [2].

***
Kao i za F sustav, i za rezolucijsku proceduru postoji proširenje na račun predikata.
Rezolucijska se procedura u računu predikata definira nad rečenicama. No, kao što ćemo
vidjeti, u računu predikata se svaka rečenica ne može pretvoriti u ekvivalentnu rečenicu
koja bi bila pogodna za rezolviranje.
Svaka se rečenica računa predikata može, medutim, pretvoriti u ekvivalentnu rečenicu
u primitivnoj normalnoj formi.
36 2.2. PREDIKATNI RAČUN

Definicija 2.17 Za rečenicu računa predikata kažemo da je u primitivnoj normalnoj


formi ako je ona oblika

K1 x1 . . . Kn xn M (x1 , . . . , xn ).
Pri tome su K1 , . . . , Kn kvantifikatori, a M (x1 , . . . , xn ) je formula računa predikata
bez kvantifikatora. K1 x1 . . . Kn xn se naziva prefiks, a M (x1 , . . . , xn ) se naziva matrica
rečenice u primitivnoj normalnoj formi.

Teorem 2.7 Svaka rečenica računa predikata ima ekvivalentnu rečenicu u primitivnoj
normalnoj formi.

Umjesto formalnog dokaza ove propozicije navest ćemo algoritam pomoću kojeg će se
rečenica računa predikata moći pretvoriti u rečenicu u primitivnoj normalnoj formi.
Kao prvo, pomoću pravila iz propozicije 2.2 eliminiramo sve kondicionale i bikondi-
cionale. Nakon toga, pomoću ekvivalencija iz propozicije 2.3, te eventualno primjene
pravila dvostruke negacije (propozicija 2.2) sve kvantifikatore izvadimo u prefiks.

Primjer 2.12 Pretvorite formulu ∀x∃y(P (x, y) → Q(x)) ∧ ¬∃x∃y(Q(y) ∨ P (x, x)) u pri-
mitivnu normalnu formu.

∀x∃y(P (x, y) → Q(x)) ∧ ¬∃x∃y(Q(y) ∨ P (x, x)) ≡ (pr.2.2.20) ≡


≡ ∀x∃y(¬P (x, y) ∨ Q(x)) ∧ ¬∃x∃y(Q(y) ∨ P (x, x)) ≡ (pr.2.3.2) ≡
≡ ∀x∃y(¬P (x, y) ∨ Q(x)) ∧ ∀x¬∃y(Q(y) ∨ P (x, x)) ≡ (pr.2.3.2) ≡
≡ ∀x∃y(¬P (x, y) ∨ Q(x)) ∧ ∀x∀y¬(Q(y) ∨ P (x, x)) ≡ (pr.2.3.3) ≡
≡ ∀x(∃y(¬P (x, y) ∨ Q(x)) ∧ ∀y¬(Q(y) ∨ P (x, x))) ≡ (pr.2.3.7) ≡
≡ ∀x∃u∀v((¬P (x, u) ∨ Q(x)) ∧ ¬(Q(v) ∨ P (x, x)))

Kako je matrica formule u primitivnoj normalnoj formi formula bez kvantifikatora,


jasno je da za svaku rečenicu u primitivnoj normalnoj formi možemo pronaći ekvivalentnu
rečenicu u primitivnoj normalnoj formi kojoj je matrica u konjunktivnoj normalnoj formi.
Tako će, npr., rečenica iz primjera 2.12 biti ekvivalentna rečenici

∀x∃u∀v((¬P (x, u) ∨ Q(x)) ∧ ¬Q(v) ∧ ¬P (x, x)) (2.1)


čija je matrica u konjunktivnoj normalnoj formi.
Primitivna normalna forma rečenice, pa čak ni ako joj je matrica u konjunktivnoj
normalnoj formi, nije dovoljna da bi rečenica bila pogodna za rezoluciju. Problem stvaraju
egzistencijalni kvantifikatori. Naime, rezolucijski postupak u računu predikata zahtjeva da
rečenica bude u Skolemovoj normalnoj formi.

Definicija 2.18 Rečenica računa predikata je u Skolemovoj normalnoj formi ako je u


primitivnoj normalnoj formi, te ako njen prefiks ne sadrži ni jedan egzistencijalni kvan-
tifikator.

Nažalost, ne postoji način kojim bi se iz rečenice izbacili egzistencijalni kvantifikatori,


a da ono što se dobije bude rečenica ekvivalentna polaznoj. To, medutim, za rezoluciju nije
niti potrebno. Sada, naime, dolazi do izražaja način na koji se rezolucijom izvode dokazi.
Rezolucijom se dokazuje tako da se konjunkcija pretpostavki i negacije zaključka svodi na
refutaciju. Stoga nam sljedeća propozicija daje dovoljan uvjet za izvodenje rezolucije.

Propozicija 2.4 Za svaku rečenicu računa predikata F postoji rečenica računa F 0 koja
je u Skolemovoj normalnoj formi i za koju vrijedi da je F kontradiktorna ako i samo ako
je F 0 kontradiktorna.
POGLAVLJE 2. MATEMATIČKA LOGIKA 37

Umjesto dokaza opet ćemo dati algoritam za dobivanje takve formule.

1. Pretvoriti rečenicu u primitivnu normalnu formu.


2. Čitati prefiks rečenice redom s lijeva na desno, te svaki egzistencijalni kvantifikator
na koji se naide izbrisati iz prefiksa. Varijabla koju je vezao taj kvantifikator se iz
matrice eliminira na sljedeći način:

(a) Ako je egzistencijalni kvantifikator bio prvi u prefiksu, onda izaberemo kon-
stantu koja se ne pojavljuje u formuli te svaki nastup varijable koju je izbačeni
kvantifikator vezao u matrici zamijenimo odabranom konstantom.
(b) Ako je egzistencijalni kvantifikator k-ti u prefiksu, onda izaberemo k-narni
funkcijski simbol koji se do tada nije pojavljivao u formuli te svaki nastup
varijable koju je izbačeni kvantifikator vezao u matrici zamijenimo funkcijom
s odabranim simbolom čiji su argumenti sve varijable koje se u prefiksu nalaze
ispred izbačenog kvantifikatora.

Za rečenice koje imaju svojstvo navedeno u propoziciji 2.4 kažemo da su ekvikon-


tradiktorne.

Primjer 2.13 Skolemizirajmo formulu 2.1.


Potrebno je izbaciti kvantifikator koji veže varijablu u, a svaku pojavu varijable u u
matrici zamijeniti funkcijom, recimo f (x). Tako dobijamo rečenicu

∀x∀v((¬P (x, f (x)) ∨ Q(x)) ∧ ¬Q(v) ∧ ¬P (x, x)). (2.2)


koja je ekvikontradiktorna formuli 2.1

Prije no što krenemo dalje, dat ćemo još jedan primjer skolemizacije rečenice.

Primjer 2.14 Skolemizirajmo formulu:

¬∀x∀yP (x, y) ∨ ∀x∃yQ(x, y)


Prvo ćemo rečenicu prevesti u primitivnu normalnu formu

¬∀x∀yP (x, y) ∨ ∀x∃yQ(x, y) ≡ pr.2.3.1 ≡


≡ ∃x¬∀yP (x, y) ∨ ∀x∃yQ(x, y) ≡ pr.2.3.1 ≡
≡ ∃x∃y¬P (x, y) ∨ ∀x∃yQ(x, y) ≡ pr.2.3.7 ≡
≡ ∃u∀v(∃y¬P (u, y) ∨ ∃yQ(v, y)) ≡ pr.2.3.4 ≡
≡ ∃u∀v∃y(¬P (u, y) ∨ Q(v, y)).

Skolemiziramo sada dobivenu rečenicu u primitivnoj normalnoj formi:


Ponajprije izbacujemo kvantifikator koji veže varijablu u, a svaku pojavu te varijable
u matrici mijenjamo konstantom, recimo c:

∀v∃y(¬P (c, y) ∨ yQ(v, y))


Sada brišemo iz prefiksa kvantifikator koji veže varijablu y, a svaku pojavu varijable
y u matrici mijenjamo funkcijom, recimo f (v):

∀v(¬P (c, f (v)) ∨ yQ(v, f (v)))


I time smo završili skolemizaciju zadane formule.
38 2.2. PREDIKATNI RAČUN

No, zbog postojanja varijabli termi koji grafički izgledaju različito mogu ponekad biti
instancirani u isti temeljni term, tj. term bez varijabli. Stoga nije dovoljno pri rezoluciji
gledati samo literale koji grafički izgledaju isto. Potrebno je uvesti postupak koji će takve
terme svoditi na isti term. Taj se postupak naziva unifikacija.

Definicija 2.19 Neka su t1 , . . . , tn termi računa predikata, a v1 , . . . , vn varijable. Tada


se izraz {t1 /v1 , . . . , tn /vn } naziva valuacija.

Definicija 2.20 Neka je F formula računa predikata i neka je α = {t1 /v1 , . . . , tn /vn }
valuacija. Tada se formula F α koja se dobije zamjenom varijabli v1 , . . . , vn termima
t1 , . . . , tn naziva instanca formule F .

Definicija 2.21 Neka su α i β valuacije. Tada se njihova kompozicija α◦β, ili αβ definira
na sljedeći način: Za svaku formulu F je F (αβ) = (F α)β.

Definicija 2.22 Za valuaciju α kažemo da je općenitija od valuacije β ako postoji valu-


acija γ takva da je β = αγ.

Definicija 2.23 Neka su F i G formule računa predikata. Valuacija α je unifikator


formula F i G ako vrijedi da je F α grafički jednaka Gα.
Za unifikator formula F i G kažemo da je najopćenitiji ili maksimalan ako je općenitiji
od bilo kojeg drugog unifikatora formula F i G.

Maksimalan unifikator je posebno važan jer je on onaj unifikator koji najmanje mijenja
formule, a pri tome ih unificira. Za formule za koje postoji unifikator kažemo da se mogu
unificirati. Stoga je važan sljedeći teorem:

Teorem 2.8 Ako se formule F i G mogu unificirati, onda postoji maksimalni unifikator
od F i G.

Iako je moguće izvesti algoritam koji djeluje na proizvoljnim formulama računa pre-
dikata, nama je za potrebe rezolucije dovoljno definirati unifikaciju nad atomima. Sljedeći
algoritam pronalazi maksimalni unifikator atoma P1 : P (t1 , . . . , tn ) i P2 : P (s1 , . . . , sn )
uvijek kada on postoji.

1. Stavljamo da je i = 0 i α0 = ε = ∅ prazna valuacija. W0 = {P1 , P2 }.


2. Čitamo redom s lijeva na desno atome P1 αi i P2 αi sve dok se u pročitanom ne javi
razlika.
3. Napravimo skup razlika R = {r1 , r2 } tako da je r1 term koji je nastao čitanjem
od primjećene razlike pa sve dok pročitani izraz ne čini regularan term računa
predikata. Slično se tvori i r2 iz atoma P2 .
4. Ako je r1 (r2 ) varijabla x a r2 (r1 ) term t u kojem se ne pojavljuje varijabla x, tada
stavljamo αi+1 = αi ◦ {t/x} Wi+1 = {P1 αi+1 , P2 αi+1 }. U suprotnom maksimalni
unifikator ne postoji i algoritam završava.
5. Ako je Wi+1 jednočlan skup, onda je αi+1 maksimalni unifikator, i algoritam
završava.
6. i := i + 1 idemo na korak 2.

Teorem 2.9 Gore opisani algoritam radi korektno, tj. pronalazi maksimalni unifikator
atoma P1 i P2 uvijek kada on postoji.
POGLAVLJE 2. MATEMATIČKA LOGIKA 39

Treba reći da se ovaj algoritam može lagano proširiti tako da radi s više od dva atoma.
Tada će skupovi Wi , Ri imati više članova. Tražit će se da u skupu razlika postoji varijabla
i term u kojem se ta varijabla ne pojavljuje, a cilj je, kao i kod slučaja s dva atoma, dobiti
jednočlan skup Wk . Nadalje, ovaj algoritam, u potpunosti nepromijenjen, može se koristiti
i za unifikaciju bilo kojih drugih formula računa predikata. Pri tome treba napomenuti
da, bez obzira na kakvim se formulama ovaj postupak provede, on može unificirati samo
razlike u termima. Ako se pojavi razlika u predikatnom simbolu, logičkom vezniku ili
kvantifikatoru, onda se unifikacija ne može provesti.
Sada, kad smo definirali skolemizaciju i unifikaciju moguće je definirati i rezoluciju za
račun predikata.
Neka je zadan skup rečenica {F1 , . . . , Fn } koje predstavljaju pretpostavke iz kojih
želimo izvesti zaključak - rečenicu G. Prisjetimo se prve karakterizacije logičke posljedice
(teorem 2.1). Ona kaže da je formula G logička posljedica skupa formula {F1 , . . . , Fn } ako
i samo ako je formula

F1 ∧ . . . ∧ Fn ∧ ¬G (2.3)
antitautologija.
Jasno je da se za formulu 2.3 može pronaći ekvikontradiktorna formula u Skolemovoj
normalnoj formi. No, je li potrebno skolemizirati cijelu tu, veliku fromulu? Odgovor
je - nije. Ako pretpostavke i zaključak nemaju zajedničkih varijabli, dovoljno je da se
skolemizira posebno svaka pretpostavka i negacija zaključka. Naime, u tom se slučaju,
zbog propozicije 2.3.5, Skolemove normalne forme pretpostavki i negacije zaključka mogu
povezati konjunkcijama, a nakon toga se svi veznici mogu izvući na početak formule i
tako se dobije Skolemova normalna forma formule 2.3. Kako se radi o rečenicama u
kojima su svi nastupi svih varijabli vezani, a kako su sve varijable koje su vezane vezane
univerzalnim kvantifikatorima, kvantifikatore možemo kod zapisa formule izostaviti. Na
taj ćemo način dobiti formulu koja ne sadrži kvantifikatore. Ovoj se formuli može pronaći
ekvivalentna formula u konjunktivnoj normalnoj formi na isti način kao što smo to radili za
formule računa sudova. Formulu u konjunktivnoj normalnoj formi možemo, kao što je već
rečeno, gledati kao skup disjunkata, koji se mogu medusobno rezolvirati. Sam postupak
rezolucije moramo, medutim, malo proširiti. Naime, kod računa sudova rezolviranjem su
se iz formula otklanjali atomarni sud i njegova negacija. Kod računa predikata otklanjati
se mogu i atomi koji nisu medusobno jednaki. Dovoljno je da se atom i negacija atoma
koje želimo otkloniti mogu medusobno unificirati.

Definicija 2.24 Neka su F1 : P ∨ G1 i F2 : ¬Q ∨ G2 disjunkti, a P i Q su atomi koji


imaju maksimalni unifikator α. Tada je (G1 ∨ G2 )α rezolventa formula F1 i F2 .

Sljedeći teorem nam osigurava da je rezolucija dobro definiran formalni sustav:

Teorem 2.10 Postupak rezolucije za račun predikata je korektan i potpun.

Primjer 2.15 Dokažimo rezolucijom da iz formule ∀x∀y(P (x) → Q(x, y)) i iz ∃xP (x)
slijedi ∃x∀yQ(x, y).
Imamo sljedeće tri formule:

1. ∀x1 ∀y1 (P (x1 ) → Q(x1 , y1 )) ≡ ∀x1 ∀y1 (¬P (x1 ) ∨ Q(x1 , y1 ))


2. ∃x2 P (x2 ), pa skolemizacijom prelazi u P (c)
3. ¬∃x3 ∀y3 Q(x3 , y3 ) ≡ ∀x3 ∃y3 ¬Q(x3 , y3 ) što skolemizacijom prelazi
∀x3 ¬Q(x3 , f (x3 ))

Dakle, imamo sljedeći dokaz:


40 2.3. ZADACI

1. ¬P (x1 ) ∨ Q(x1 , y1 )
2. P (c)
3. ¬Q(x3 , f (x3 ))
4. Q(c, y1 ) (Res: 1,2 {c/x1 })
5. ¬P (x3 ) (Res: 1,3 {x3 /x1 , f (x3 )/y1 })
6. ⊥ (Res: 3,4 {c/x2 , f (x3 )/y1 })
Za račun predikata, isto kao i za račun sudova, koristi se semantička rezolucija, hiper-
rezolucija i linearna rezolucija. Ovi se pojmovi mogu pronaći detaljno opisani u [3], ali i
u [6].

2.3 Zadaci
Korištenjem definicije logičke posljedice dokažite da su sljedeće tvrdnje tau-
tologije:
1. {A ∨ B, A → B} |= B
2. {A ∨ B ∨ C, ¬A ∧ ¬B} |= C
3. {A → B, ¬(A ∨ ¬B} |= C
Pronadite konjunktivnu i disjunktivnu normalnu formu sljedećih formula
4. (A ∨ B) ↔ (C ∨ D)
5. (((¬A ∨ B) ∧ ¬C) ∨ D) ∧ ¬E
6. (¬A ∨ B) ∧ (C ∨ ¬D)
7. ¬((A ∨ B) → C)
8. Pomoću F sustava dokažite tvrdnje iz propozicije 2.2
9. Pomoću rezolucije dokažite tvrdnje iz propozicije 2.2
Bez upotrebe formalnih sustava dokažite da su sljedeće tvrdnje tautologije:
10. ∀x∀yP (x, y) → ∃y∀xP (x, y)
11. ∃x∃y(P (x, y) → q(x)) ↔ ¬∀x∀yP (x, y) ∨ ∃xQ(x)
12. ¬(∀x∃yP (x, y) ↔ ∃y∀xP (x, y))
13. ∀x∀yP (x, y) ↔ ∀y∀xP (x, y)
Pronadite Skölemovu normalnu formu sljedećih formula:
14. ∀x∃y(P (x, y) → Q(y)) ∧ ∀x∀y(P (x, x) ∨ Q(y))
15. ∃x(P (x, c) ↔ ∀y(P (f (x, y), y) ∧ ¬Q(x)))
16. Upotrijebom F-sustava dokažite tvrdnje propozicije 2.3
17. Pomoću rezolucijskog postupka dokažite tvrdnje propozicije 2.3
POGLAVLJE 2. MATEMATIČKA LOGIKA 41

2.4 Projekti
1. Definirajte potpunu sintaksu računa sudova u postfiksnoj notaciji.
Nakon toga predefinirajte sve teoreme iz poglavlja, tako da svi zapisi
formula u njima budu u postfiksnoj notaciji.

2. Definirajte sintaksu računa predikata u postfiksnoj notaciji. Nakon


toga predefinirajte sve teoreme iz knjige, tako da svi zapisi formula u
njima budu u postfiksnoj notaciji.

3. Napravite računalni program koji će prepoznavati je li zadani izraz


formula računa predikata.

4. Napravite program koji će izračunavati je li neki sud logička poslje-


dica zadanih sudova, korištenjem rezolucijskog postupka. Nakon toga
proučite hiperrezoluciju i napravite program koji će raditi isto, ali
primjenom hiperrezolucije. Na kraju implementirajte i linearnu re-
zoluciju. Usporedite rad ova tri programa.

5. Dokažite potpunost i korektnost F sustava.


42 2.4. PROJEKTI
Bibliografija

[1] Apt, K. R.: From Logic Programming to Prolog, Prentice Hall Int.,
London, England, 1997.

[2] Barwise, J.; Etchemendy, J.: The Language of First-Order Logic 3rd
edition, CSLI, Stanford, 1992.

[3] Chang, C.-L.; Lee, C.-T.: Symbolic Logic and Mechanical Theorem
Proving, Accademic Press, New York, 1973.

[4] Čubrilo, M.: Matematička logika za ekspertne sisteme, Informator, Za-


greb, 1989.

[5] Deville, Y.: Logic Programming, Addison-Wesley, Workingham, Eng-


land, 1990.

[6] Doets, K.: From Logic to Logic Programming, MIT Press, Cambridge,
1994.

[7] Flach, P.: Simply Logical, John Wiley & Sons Chichester, England,
1994.

[8] Lloyd, J.W.: Foundations of Logic Programming, Springer-Verlag,


Berlin, 1984.

43
44 BIBLIOGRAFIJA
Poglavlje 3

Diskretna matematika

Razvoj matematike išao je prema sve


većoj preciznosti i vodi do formaliza-
cije takvih razmjera da će se svaki
teorem moći dokazati samo pomoću
nekoliko mehaničkih pravila.
Kurt Gödel
vs.
Trudim se izbjeći duge numeričke
račune i slijedim Riemannov postulat
da dokazi trebaju biti dani kroz ideje,
a ne kroz voluminozne račune.
David Hilbert

Diskretna matematika je grana matematike koja proučava probleme


koji uključuju konačne i prebrojivo beskonačne
skupove. Konkretno, diskretna se matematika pr-
venstveno povezuje sa skupom prirodnih i cijelih
brojeva, a ponekad i sa skupom racionalnih bro-
jeva. Kontinuiranim skupovima, posebno skupom
realnih brojeva, bavi se matematička analiza.
Na temeljima diskretne matematike gradi se raču-
nalna geometrija i algebra, logika, teorija grafova
i kombinatorika. Upotrebom računalne geometrije
(computational geometry) grade se robotika, au-
tomatika, navigacija, menadžment, interaktivne
tehnike vizualizacije i sl. Bez diskretne matem-
atike nezamislivo je paralelno programiranje i al-
Slika 3.1: Georg Ferdinand goritmi te strukture podataka i ekspertni sustavi.
Ludwig Philipp Cantor
Stoga ćemo u ovom dijelu knjige posvetiti pažnju
pojmovima koji nam pomažu u proučavanju problema diskretne matemati-

45
46 3.1. SKUPOVI

ke. To su prije svega skupovi, relacije i funkcije.

3.1 Skupovi
Cilj je ovog poglavlja ponavljanje osnovnih pojmova vezanih uz skupove
kako bismo mogli izložiti teme koje slijede u knjizi, a u znatnoj mjeri koriste
skupove.
Pojam skupa u matematiku uvodi Georg Cantor (1845-1918). Skup
pripada osnovnim matematičkim pojmovima, odnosno pojmovima koje ne
definiramo. O skupu razmišljamo kao o kolekciji elemenata (članova), koje
zamišljamo kao cjelinu. Izuzetak je prazan skup ∅, koji nema elemenata.

3.1.1 Zadavanje skupa


Postoje dva osnovna načina na koje možemo zadati skup:

1. nabrajanjem elemenata skupa, ili

2. definiranjem svojstava koja trebaju zadovoljavati elementi skupa.

Skup je zadan ako se zna od kojih se elemenata sastoji.


Pristup Fregea, da svako svojstvo definira neki skup, dovodio je do pa-
radoksa. Tako je Cantor primjetio 1897. da postoji paradoks skupa svih
skupova. Nadalje, Bertrand Russell je dao još nekoliko zanimljivih paradok-
sa vezanih uz skupove.
Dakle, Fregeov princip, da svako svojstvo odreduje neki skup, ne vrijedi,
budući da može dovesti do paradoksa (tzv. paradoksi regularnog svojstva).
Potrebno je, utvrdio je Zermelo, ograničiti svojstvo, tako da se elementi
uzimaju iz nekog univerzalnog skupa U .

3.1.2 Relacije medu skupovima


Nabrojimo tri najvažnije relacije na skupovima. U svim definicijama velika
tiskana slova A, B označavaju skupove.
Relacija sadržavanja

A ⊆ B ⇔ (∀x ∈ A ⇒ x ∈ B).
Jednakost skupova

A = B ⇔ (A ⊆ B ∧ B ⊆ A).
Pravi podskup

A ⊂ B ⇔ (A ⊆ B ∧ A 6= B),
POGLAVLJE 3. DISKRETNA MATEMATIKA 47

tj.,

A ⊂ B ⇔ (A ⊆ B ∧ (∃x ∈ B, x ∈
/ A)).

Propozicija 3.1 Za svaki skup A, A ⊆ A i ∅ ⊆ A.


Za skupove brojeva vrijedi N ⊂ Z ⊂ Q ⊂ R ⊂ C.

Zadatak 3.1 Pokažite da je A = B za A = {2k+5|k ∈ Z} i B = {2k+3|k ∈


Z}.

3.1.3 Partitivni skup


Partitivni skup je skup svih podskupova zadanog skupa, tj.

P (A) = {X : X ⊆ A} .

Elementi partitivnog skupa su uvijek prazan skup i cijeli skup A. Ako


skup A ima n elemenata onda njegov partitivni skup ima 2n elemenata.

Primjer 3.1 P ({a, b}) = {∅, {a}, {b}, {a, b}}.

3.1.4 Operacije na skupovima


Nabrojimo osnovne operacije medu skupovima i njihova svojstva.
Unija
A ∪ B = {x : x ∈ A ∨ x ∈ B} .
Presjek
A ∩ B = {x : x ∈ A ∧ x ∈ B} .
Razlika
A \ B = {x : x ∈ A ∧ x ∈
/ B} .
Komplement

CA B = {x : x ∈ A ∧ x ∈
/ B}
= A\B

Ovdje je A univerzalni skup i A ⊆ B. Univerzalni komplement za A = U


i B⊂U
C(B) = U \B

Zadatak 3.2 Neka je za n ∈ N Dn = {x ∈ N|x dijeli n} skup djelitelja


prirodnog broja n. Izračunajte:
1. D0 , D5 , D6 , D9 i D12 .

2. D5 ∪ D9 .
48 3.1. SKUPOVI

3. D6 ∩ D9 ,
D12 \D9 .

Svojstva skupovskih operacija:

1. Zakon idempotencije

A ∪ A = A, A ∩ A = A,
A ∪ ∅ = A, A ∩ ∅ = ∅.

2. Komutativnost

A ∪ B = B ∪ A,
A ∩ B = B ∩ A.

3. Asocijativnost

A ∪ (B ∪ C) = (A ∪ B) ∪ C,
A ∩ (B ∩ C) = (A ∩ B) ∩ C.

4. Distributivnost

A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C) ,
A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C) .

5. De Morganovi zakoni

C (A ∩ B) = C (A) ∪ C (B) ,
C (A ∪ B) = C (A) ∩ C (B) .

6. Dvostruki komplement

C (C (A)) = A.

Nabrojena svojstva dokazuju se direktno ili pomoću tablice pripadnosti.

3.1.5 Kartezijev produkt skupova


Evo još jednog načina da od dva skupa dobijemo neki novi skup.

Definicija 3.1 Neka su A,B dva neprazna skupa. Kartezijev produkt (di-
rektni produkt) skupova A i B je skup

A × B = {(a, b) : a ∈ A, b ∈ B} .
POGLAVLJE 3. DISKRETNA MATEMATIKA 49

Izraz (a, b) zovemo uredenim parom od a i b. Kod njega je važan poredak


elemenata u paru.
Kartezijev produkt A × A zapisujemo kao A2 i zovemo ga Kartezijevim
kvadratom.

Definicija 3.2 Neka su A1 , A2 , ..., An neprazni skupovi. Kartezijev produkt


(direktni produkt) skupova A1 , A2 , ..., An je skup

A1 × A2 × ... × An = {(a1 , a2 , ..., an ) : ai ∈ Ai , i = 1, 2, ..., n} .

Izraz (a1 , a2 , ..., an ) zovemo uredenom n-torkom i kod nje je važan pore-
dak elemenata.

Zadatak 3.3 Ispišite Kartezijev produkt A1 × A2 × A3 ako je


A1 = {Ivan, M aja, Sanja},
A2 = {radnik, student, trgovac} i
A3 = {bogat, siromašan}.

3.2 Binarne relacije


3.2.1 Binarne relacije na diskretnim skupovima
Neka su A, B neprazni skupovi. Svaki podskup ρ Kartezijevog produkta
A×B zovemo binarnom relacijom na A×B. Relacije možemo promatrati na
kontinuiranim skupovima kao što je skup realnih brojeva, ali i na diskretnim
skupovima, na primjer na skupu cijelih brojeva. U informatičkoj primjeni
važnije su relacije na diskretnim skupovima.
Pretpostavimo da konačni skupovi A i B imaju m, odnosno n elemenata,
tj. k (A) = m, k (A) = n. Tada je broj binarnih relacija koje se mogu
definirati na A × B jednak 2nm .
Relacije na konačnim skupovima možemo predstaviti na sljedeće načine:

1. Pomoću dijagrama koji prikazuje dva konačna skupa A i B te strelice


koje prikazuju pridruživanje elementa skupa A onima u skupu B. Na
taj su način opisani uredeni parovi čiji su elementi relaciji.

2. Pomoću matrice incidencije (reprezentacije), koja ima m redova i n


stupaca (ako je k (A) = m, k (A) = n), te jedinice na mjestima gdje
su elementi u relaciji i nule tamo gdje nisu.

3. Pomoću usmjerenog grafa, ako je relacija definirana na A2 .

Posebno su važne relacije izmedu elemenata istog skupa, tj. relacije


na A × A koje zovemo binarnim relacijama na A. U izučavanju tih relacija
pomaže mogućnost njihovog grafičkog prikazivanja pomoću grafova. Pri tom
se koriste pojmovi: čvor (vrh) grafa - to je svaki element skupa A, i luk -
50 3.2. BINARNE RELACIJE

svakom paru (a, b)²A × A pridružen je jedan luk pri čemu se prva kom-
ponenta para naziva izlaznim čvorom grafa, a druga komponenta ulaznim
čvorom. Graf relacije se obično nacrta tako da se njegovi vrhovi rasporede
otprilike kao vrhovi pravilnog mnogokuta, a zatim se lukovima povežu ele-
menti koji su u relaciji. Grafovi imaju veliku vrijednost za vizualizaciju
relacija i njihovih svojstava. Brojne mogućnosti primjene grafova u mode-
liranju problema u različitim znanstvenim područjima i sasvim konkretnih
problema, potakle su razvoj posebne matematičke discipline koja se zove
teorija grafova.

Definicija 3.3 Graf relacije ρ ⊆ A × A je par (A, ρ) pri čemu je A skup


čvorova grafa, a ρ skup lukova.

Zadatak 3.4 Zadana je relacija ρ na skupu A = {a, b, c, d, e} sa

ρ = {(a, b) , (b, a) , (c, c) , (c, e) , (d, a) , (d, d) , (d, e) , (e, e)} .

Prikažite zadanu relaciju na tri gore navedena načina.

Binarne relacije definirane na podskupovima skupa realnih brojeva pri-


kazujemo grafički pomoću koordinatnog sustava u ravnini.
© ª
Primjer 3.2 Zadana je relacija ρ na skupu R sa ρ = (x, y) : x = y 2 .
Prikažimo zadanu relaciju pomoću grafa u koordinatnom sustavu.

y
2

0 1 2 3 4 x

-1

-2

Slika 3.2
POGLAVLJE 3. DISKRETNA MATEMATIKA 51

3.2.2 Obrat relacije, komplement relacije i dualna relacija


Zadanoj relaciji ρ ⊆ A2 mogu se pridružiti još neke relacije prema sljedećoj
definiciji:

Definicija 3.4 Neka je ρ ⊆ A2 .


Obrat ρ̄ relacije ρ : (a, b) ∈ ρ̄ ⇔ (b, a) ∈ ρ.
Komplement ρc relacije ρ : (a, b) ∈ ρc ⇔ (a, b) ∈ / ρ.
Dualna relacija ρd relacije ρ : (a, b) ∈ ρd ⇔ (b, a) ∈
/ ρ.

Primjer 3.3 A = {a, b, c} , ρ = {(a, b), (a, c), (b, a), (b, b)} .
Odredite ρd , ρ̄ i ρc .
Obrat relacije odreduje se tako da se u parovima koji pripadaju zadanoj
relaciji zamijene prva i druga komponenta, pa imamo

ρ̄ = {(a, b), (b, a), (b, b), (c, a)} .


Komplement relacije ρc odredi se kao razlika A × A \ ρ ;

ρc = {(a, a), (a, b), (b, c), (c, a), (c, b), (c, c)} .

Nešto teže je po definiciji formirati dualnu relaciju

ρd = {(a, a), (a, c), (b, a), (b, c), (c, b), (c, c)} .

Zbog toga je korisna sljedeća propozicija.

Propozicija 3.2 ρd = ρ̄c = ρc .

Dokaz. Dokažimo prvo ρd = ρc


(a, b)²ρd ⇐⇒ (b, a) ∈
/ ρ ⇐⇒ (b, a) ∈ ρc ⇔ (a, b) ∈ ρc .
Kompletirajte dokaz! Kojim se još shemama može dokazati ova tvrdnja?

3.3 Relacija ekvivalencije


3.3.1 Definicija i svojstva relacija ekvivalencije
Relacija ekvivalencije predstavlja oslabljeni oblik jednakosti brojeva. S dru-
ge strane, klasificiramo li ljude prema karakteristikama kao što su država u
kojoj stanuju, prema boji njihove kose ili pak prema njihovoj visini, definirat
ćemo relacije ekvivalencije. Pokazuje se da relacija ekvivalencije na nekom
skupu definira particiju tog skupa na neprazne, disjunktne podskupove čija
unija daje čitavi skup.

Definicija 3.5 Neka je ρ ⊆ A2 . Relacija ρ je relacija ekvivalencije ako je:


52 3.3. RELACIJA EKVIVALENCIJE

1. refleksivna tj.
(∀x ∈ A) (x, x) ∈ ρ,

2. simetrična tj.

(∀x, y, ∈ A) (x, y) ∈ ρ ⇒ (y, x) ∈ ρ,

3. tranzitivna tj.

(∀x, y, z ∈ A) ((x, y) ∈ ρ ∧ (y, z) ∈ ρ) ⇒ (x, z) ∈ ρ.

Primjeri relacija ekvivalencije, koje ste upoznali u srednjoškolskoj mate-


matici, su jednakost realnih brojeva, relacija paralelnosti na skupu svih pra-
vaca u ravnini ili prostoru, zatim sukladnost i sličnost geometrijskih likova
(npr. trokuta) u ravnini.
To je razlog što o relaciji ekvivalencije razmišljamo kao o oslabljenoj
jednakosti na elementima nekog skupa.

Zadatak 3.5 Za realne brojeve a, b različite od nule definiramo relaciju ρ


sa: aρb ⇔ ab ∈ Q. Dokažite da je ρ relacija ekvivalencije.

Svaki stanovnik Europe ima boravište u nekoj od europskih država.


Kažemo da su Europljani a i b u relaciji s ako su oni stanovnici iste države.
Ovako definirana relacija s predstavlja jednu relaciju ekvivalencije. Primi-
jetimo da jedan čovjek može (prema svojim službenim dokumentima) biti
stanovnik samo jedne države, te da su svi stanovnici države X medusobno
u relaciji s.

Definicija 3.6 Neka je ρ relacija ekvivalencije na skupu A. Za a ∈ A klasa


ekvivalencije [a]ρ s obzirom na ρ je skup

[a]ρ = {x : x²A ∧ xρa} . (3.1)

Primjer 3.4 Odredite (opišite) klase ekvivalencije za relaciju s medu ele-


mentima skupa A = { stanovnici Europe} danu sa
© ª
s = (a, b) ∈ A2 : a i b stanuju u istoj državi .

Kako bismo izrekli važna svojstva relacije ekvivalencije uvest ćemo važan
pojam particije skupa.

Definicija 3.7 Neka je A neprazan skup i neka su A1 , A2 , ...An neprazni


disjunktni podskupovi od A. Ako je A = A1 ∪ A2 ∪ ... ∪ An onda skup
F = {A1 , A2 , ...An } zovemo particijom skupa A .
POGLAVLJE 3. DISKRETNA MATEMATIKA 53

Uočimo da se familija skupova može


S zapisati kao F = {Ai : i ∈ I} , gdje
je I neki skup indeksa, te da je onda Ai = A.
i∈I
Primjerice za skup A = {1, 2, 3, 4, 5, 6, 7, 8} jedna je particija dana sa
A1 = {1, 2, 3} , A2 = {4, 6, 8} , A3 = {5, 7} . Ta particija ima tri dijela.
Općenito se može postaviti pitanje za konačni skup od n elemenata, koliko
ima različitih particija od k dijelova. Taj broj se označava sa S (n, k) i zove
Stirlingov broj (druge vrste). Općenito vrijedi S (n, 1) = 1, S (n, n) = 1, a
za 2 ≤ k ≤ n − 1 imamo S (n, k) = S (n − 1, k − 1) + kS (n − 1, k) .
Više se o toj temi može pročitati u [1].

Propozicija 3.3 Neka je ρ relacija ekvivalencije na A. Skup klasa ekviva-


lencije obzirom na ρ je particija skupa A (kvocijentni skup od A s obzirom
na ρ; oznaka A/ρ).
Dokaz. Pretpostavimo da je ρ relacija ekvivalencije na A. Treba doka-
zati da za klase ekvivalencije elemenata tog skupa s obzirom na tu relaciju
vrijede sljedeće tvrdnje:

1. te klase su neprazne,

2. svaki element iz A nalazi se u nekoj od klasa,

3. klase su disjunktne.

Prva tvrdnja i druga tvrdnja očito vrijede jer je zbog svojstva ekviva-
lencije svaki element u relaciji sam sa sobom. Da bismo dokazali treću
tvrdnju pretpostavimo da su [a]ρ i [b]ρ dvije različite klase ekvivalencije.
Pokazat ćemo metodom suprotnog da su u tom slučaju one disjunktne.
Pretpostavimo dakle da postoji element x² [a]ρ ∩ [b]ρ . Zbog toga vrijedi
xρa i xρb. Budući da je ρ relacija ekvivalencije, vrijedi implikacija aρx ∧
xρb =⇒ aρb. To bi pak značilo da elementi a i b pripadaju istoj klasi. Zbog
tranzitivnosti relacije ρ u tom slučaju bi i svi elementi koji su u relaciji s
jednim od ta dva elementa ujedno bili u relaciji i s drugim elementom, pa
njihove klase ekvivalencije ne bi mogle biti različite.
Vrijedi i obrat tj. sljedeća propozicija.

Propozicija 3.4 Svaka particija skupa A prirodno definira jednu relaciju


ekvivalencije na A.
Dokaz. Stavimo: aρb ⇔ (a, b) pripadaju istom članu dekompozicije.
Zaključujemo da svaka relacija ekvivalencije na danom skupu definira
jednu particiju skupa, ali i obrnuto, svaka particija skupa inducira jednu
relaciju ekvivalencije na tom skupu.

Primjer 3.5 Odredite kvocijentni skup relacije ρ iz primjera 3.4. Koliko


elemenata ima taj kvocijentni skup?
54 3.3. RELACIJA EKVIVALENCIJE

Zadatak 3.6 Koja od sljedećih relacija predstavlja relaciju ekvivalencije


na skupu R2 ? Za relacije ekvivalencije nadite geometrijsku interpretaciju
elemenata kvocijentnog skupa.

1. (a, b) ρ (c, d) ⇔ a + 2b = c + 2d

2. (a, b) ρ (c, d) ⇔ ab = cd

3. (a, b) ρ (c, d) ⇔ a2 + b = c + d2

4. (a, b)ρ(c, d) ⇔ a2 − b = c + d2

3.3.2 Kongruencije
Modularna ekvivalencija ili kongruencija je primjer relacije ekvivalencije
koja se koristi u informatici (npr. u postupcima programiranja kontrole
odredenih računskih postupaka). Ta relacija prirodno inducira particiju
skupa cijelih brojeva Z. Na primjer, cijeli brojevi su ekvivalentni modulo 2,
ako je njihova razlika paran broj. Tako dobivamo particiju cijelih brojeva na
parne i neparne cijele brojeve. Općenito se može promatrati ekvivalencija
modulo k, gdje je k bilo koji prirodan broj.

Definicija 3.8 Neka su a, b ∈ Z, k ∈ N. Tada je

a ≡ b (mod k) ⇐⇒ ∃n ∈ Z, a − b = nk

(a ≡ b (mod k) čitamo ”a je ekvivalentno s b modulo k”) . Pri tom broj k


zovemo modulom ekvivalencije.

Propozicija 3.5 Modularna ekvivalencija je relacija ekvivalencije.


Dokaz. Treba pokazati da ta relacija ima svojstva refleksivnosti, simetri-
čnosti i tranzitivnosti. Refleksivnost je očita jer vrijedi ∀a²Z =⇒ a−a = 0·k,
gdje je k ∈ N proizvoljan.
Dokažimo simetričnost: a ≡ b (mod k) ⇐⇒ ∃n ∈ Z, a − b = nk =⇒
b − a = (−n)k ⇐⇒ b ≡ a (mod k) .
Dokažimo tranzitivnost: neka je a ≡ b (mod k) i b ≡ c (mod k). Izlazi da
∃n, m ∈ Z takvi da vrijedi a − b = nk i b − c = mk. Zbroje li se ove dvije
jednakosti proizlazi a − c = (n + m)k, što je ekvivalentno s a ≡ c (mod k) .

Primjer 3.6 Odredimo kvocijentni skup relacije modularne ekvivalencije.


Promatramo li modularnu ekvivalenciju modulo k inducirat ćemo particiju
skupa Z u k klasa ekvivalencije. U svakoj su klasi ekvivalencije oni cijeli
brojevi koji pri dijeljenju sa k daju jednake ostatke.
POGLAVLJE 3. DISKRETNA MATEMATIKA 55

Uobičajeno je klase ekvivalencije kod modularne ekvivalencije (kongru-


encije) zvati klasama kongruencije i označavati sa ā. Tako je kod kongru-
encije modulo 4, 0̄ = {x ∈ Z : x ≡ 0 mod 4} = {x ∈ Z : x = 4k, k ∈ Z} =
{..., −4, 0, 4, 8, ...},
1̄ = {x ∈ Z : x ≡ 1 mod 4} = {x ∈ Z : x = 4k + 1, k ∈ Z} = {..., −3 , 1 , 5
, 9 , ...}.
U ovom slučaju se piše i 0̄ = 4Z, 1̄ = 4Z+1, 2̄ = 4Z+2, 3̄ = 4Z+3. Dakle,
postoje klase kongruencije koje korespondiraju svim mogućim ostacima pri
dijeljenju s k. Uočimo da vrijedi

a ≡ b mod n ⇔ ā = b̄, n ∈ N.

Preko kongruencija možemo sve cijele brojeve reducirati na njihove ostat-


ke modulo k. Taj postupak zovemo redukcija modulo k. Pri tome je za
svaki prirodni broj k > 1 i svaki cijeli broj a, a mod k jednak ostatku r
pri dijeljenju broja a s k. Sada je 0 ≤ r ≤ n − 1. Spomenuta redukcija
omogućava nam lakše rješavanje jednadžbi koje sadrže kongruencije. Kao
rješenje jednadžbe nademo ostatak, a podrazumijevamo da su rješenja i
brojevi r mod k.

Primjer 3.7 Riješimo jednadžbu 2x ≡ 1 mod 4.


Uvrštavamo umjesto x sve ostatke pri dijeljenju s 4 pa imamo za:
x = 0, 0 ≡ 1 mod 4
x = 1, 2 ≡ 1 mod 4
x = 2, 4 ≡ 1 mod 4
x = 3, 6 ≡ 1 mod 4.
Dakle, gornja jednadžba nema rješenje.

Primjer 3.8 Riješimo jednadžbu 2x ≡ 2 mod 4.


Uvrštavamo umjesto x sve ostatke pri dijeljenju s 4 pa imamo za:
x = 0, 0 ≡ 2 mod 4
x = 1, 2 ≡ 2 mod 4
x = 2, 4 ≡ 2 mod 4
x = 3, 6 ≡ 2 mod 4.
Ova jednadžba ima dva rješenja x = 1 i x = 3.

Izvedimo formule za zbrajanje i množenje kongruencija modulo k. One


su srećom prirodne.

Teorem 3.1 Za a ≡ b mod k i c ≡ d mod k vrijedi

a + c ≡ (b + d) mod k,
ac ≡ (bd) mod k.
56 3.3. RELACIJA EKVIVALENCIJE

Dokaz. Pretpostavke su da postoje cijeli brojevi n i m takvi da je


a − b = kn, c − d = km.
Oduzimanjem gornjih dviju jednakosti imamo

(a − c) − (b − d) = (n − m) k,
što je ekvivalentno tvrdnji a + c ≡ (b + d) mod k. Nadalje, da bismo dokazali
formulu za množenje kongruencija treba dokazati da je ac − bd djeljivo sa
k. Proširimo izraz ac − bd sa ad i −ad pa računamo ac − ad + ad − bd =
a (c − d)+d (a − b) = akm+dkn = k (am − dn) . Zaključujemo da je ac−bd
djeljivo s k.
Pogrešno bi bilo zaključiti da je formula za dijeljenje kongruencija pri-
rodna, kao što su formule za zbrajanje i množenje kongruencija. Zapravo
kongruenciju možemo dijeliti s brojem koji je relativno prost s modulom k.
Da kongruencije ne možemo dijeliti s proizvoljnim cijelim brojem poka-
zuje sljedeći primjer. Očito vrijedi 90 ≡ 30 mod 12, ali dijeljenjem s brojem 6
dobili bismo 15 ≡ 5 mod 12, a to očito nije istinito. S druge strane dijeljenjem
gornje kongruencije s 5 dobivamo da je 18 ≡ 6 mod 12, što je istinito.
Uzmimo općenito da je ac ≡ bc mod k i M (c, k) = 1. Znači da postoji
cijeli broj n takav da je ac − bc = nk. Sada je c (a − b) = nk i znamo li da
su c i k relativno prosti, tada je a − b = km, gdje je m = n/c. Ukoliko c i k
nisu relativno prosti zaključak ne vrijedi. Vrijedi sljedeća propozicija:

Propozicija 3.6 Ako je ac ≡ bc mod k i M (c, k) = 1 tada vrijedi da je


a ≡ b mod k.

Upotrebom prethodne propozicije može se dokazati tzv. mali Fermatov


teorem.

Teorem 3.2 Neka je p prost broj, koji nije djelitelj od a. Tada vrijedi

ap−1 ≡ 1 mod p.

Dokaz. Budući da je M (p, a) = 1 po propoziciji 3.6 znamo da nikoja


dva cijela broja izmedu brojeva a, 2a, ..., (p − 1) a nisu kongruentna modulo
p. Nadalje, nijedan od brojeva a, 2a, ..., (p − 1) a nije kongruentan 0 mod p.
Prema tome brojeve a, 2a, ..., (p − 1) a možemo reducirati modulo k na bro-
jeve 1, 2, ..., (p − 1) . Sada je

a · 2a · ... · (p − 1) a ≡ 1 · 2 · ... · (p − 1) mod k,

pa dijeljenje sa (p − 1)! daje traženu jednakost. Primijetimo da smijemo


dijeliti jer su p i (p − 1)! relativno prosti.
Posvetimo još malo prostora rješavanju osnovnih tipova jednadžbi s kon-
gruencijama.
POGLAVLJE 3. DISKRETNA MATEMATIKA 57

Promotrimo, prvo, jednadžbu a + x ≡ b mod k. Takva jednadžba uvijek


ima rješenje budući da svaki cijeli broj a ima aditivni inverz modulo k. To
znači da postoji broj a0 takav da je a + a0 ≡ 0 mod k. Vidimo da je u skladu
s redukcijom a0 = −a ili a0 = k − a.
Dakle, jednadžba a + x ≡ b mod k se rješava tako da se aditivni inverz
od a doda s lijeve i desne strane kongruencije.
U drugu ruku, jednadžbe tipa ax ≡ b mod k nemaju uvijek rješenje, kao
što se vidi na primjeru jednadžbe 2x ≡ 1 mod 4. Razlog leži u propoziciji
3.6, jer multiplikativni inverz od a postoji jedino ako su a i k relativno
prosti. Dakle, ako je M (a, k) = 1 tada postoji takav v da je va = 1 mod k.
Budući da je najveća zajednička mjera dvaju brojeva uvijek njihova linearna
kombinacija, postoji cijeli broj t takav da je va + tk = 1. Ova nam relacija
omogućava računanje multiplikativnog inverza od a.

Primjer 3.9 Riješimo jednadžbu 15x ≡ 23 mod 119.


Nadimo multiplikativni inverz od 15 modulo 19. Imamo 119(−1) +
15(8) = 1, pa je inverz od 15 modulo 119 broj 8. Sada je x ≡ 23·8 mod 119 =
184 mod 119 = 65. Rješenje x = 65 je jedinstveno mod 119, znači da je svako
drugo rješenje kongruentno mod 119 sa 65.

Zadatak 3.7 Riješite sljedeće jednadžbe s kongruencijama:

1. 4x ≡ 2 mod 6,

2. 5x ≡ 5 mod 25,

3. x2 ≡ 4 mod 13,

4. x2 ≡ 1 mod 7.

Kongruencije se primjenjuju u širokom području kodiranja proizvoda,


ali i u kriptografiji.
Slijede dvije primjene modularne ekvivalencije (kongruencije).

ISBN - International Standard Book Number


Od godine 1968. svakoj se knjizi pridružuje ISBN koji sadrži informaciju
o zemlji izdanja, izdavaču i samoj knjizi. Te su informacije sadržane u 9
znamenaka, a deseta znamenka služi za provjeru prvih 9 znamenaka.
Neka su znamenke u ISDN-u označene sa

a1 , a2 , ..., a10 ,

gdje je prvih 9 znamenaka u rasponu od 0 do 9. Broj a10 je izabran u


rasponu od 0 do 10 tako da je

a1 + 2a2 + 3a3 + ... + 10a10 ≡ 0 (mod 11) .


58 3.3. RELACIJA EKVIVALENCIJE

Primjer 3.10 Neka je prvih 9 znamenki u ISBN-u 953-173-918. Izračunaj-


mo desetu znamenku.
9+2 (5)+3 (3)+4 (1)+5 (7)+6 (3)+7 (9)+8 (1)+9 (8)+10a10 ≡ 0 (mod 11)
0 mod 11 ≡ 228 + 10a10
11 · 28 = 308, pa je a10 = 8
Dakle, ISBN glasi 953-173-918-8.
Uzmimo sada da je ISBN pogrešno zapisan npr. promijenimo 3. zna-
menku.
950-173-918-8
Provjerimo ga.
9+2 (5)+3 (0)+4 (1)+5 (7)+6 (3)+7 (9)+8 (1)+9 (8)+80 ≡ 0 (mod 11)
305 6= 0 (mod 11) .
Može se pokazati da na ovaj način uvijek detektiramo pogrešku, ukoliko
je ona u jednoj znamenci. Može se, medutim dogoditi da se pogreške u dvije
znamenke anuliraju pa ih na ovaj način ne uočavamo.

Zadatak 3.8 U prethodnom primjeru promijenite dvije znamenke tako da


test ne registrira pogrešku.

Zadatak 3.9 Provjerite na prethodnom primjeru da test reagira na zamje-


nu mjesta znamenaka.

Universal Product Code


Većina proizvoda na tržištu nosi identifikacijski kod u obliku uzorka koji se
sastoji od tanjih i debljih crta (razlog za naziv bar code). Taj se kod zove
Universal Product Cod (UPC). UPC je 12-stero znamenkasti broj oblika
x-xxxxx-xxxxx-x, gdje svaki x predstavlja broj izmedu 0 i 9. Ponovno je
zadnja znamenka ona pomoću koje provjeravamo prethodnih 10. Nakon što
skener očita pogrešno UPC, zadnja znamenka ukaže na pogrešku. Provjera
se radi po sljedećem pravilu.
3(suma znamenaka na parnim mjestima) + (suma znamenaka na nepar-
nim mjestima) ≡ 0(mod10)

Teorem 3.3 (Kineski teorem o ostacima) Neka su m1 , m2 , . . . , mr po


parovima relativno prosti brojevi te neka su a1 , a2 , . . . , ar cijeli brojevi. Tada
sustav kongruencija

x ≡ a1 (mod m1 )
x ≡ a2 (mod m2 ) (3.2)
..
.
x ≡ ar (mod mr )

ima rješenja.
POGLAVLJE 3. DISKRETNA MATEMATIKA 59

Ako je x0 jedno rješenje, onda su sva rješenja sustava 3.2 dana sa

x ≡ x0 (mod m1 · m2 · . . . · mr ).
m
Dokaz. Neka je m = m1 · m2 · . . . · mr . Definiramo nj = m j
, j = 1, . . . , r.
Tada je (nj , mj ) = 1. Da bismo pokazali da sustav 3.2 ima rješenja koristimo
sljedeći teorem:

Teorem 3.4 Ako su a i m prirodni brojevi te b ∈ Z, kongruencija ax ≡


b(mod m) ima rješenje ako i samo ako d = (a, m) dijeli b.
Ako je ovaj uvjet zadovoljen, onda gornja kongruencija ima d rješenja
modulo m.

Prema teoremu 3.4 za aj ∈ Z i brojeve nj , mj takve da je (nj , mj ) = 1


vrijedi da postoji xj ∈ Z koji je rješenje kongruencije nj xj ≡ aj (mod mj ),
j = 1, . . . , r.
Uzmimo sada da je x0 = n1 x1 + n2 x2 + . . . + nr xr . Želimo pokazati da
ako je x0 jedno rješenje sustava 3.2 da su tada sva rješenja tog sustava dana
sa x ≡ x0 (mod m1 · m2 · . . . · mr ).
Za x0 = n1 x1 + n2 x2 + . . . + nr xr vrijedi:

x0 ≡ nj xj ≡ aj (mod mj )

tj. x0 je rješenje sustava 3.2.


Neka su sada x i y dva rješenja sustava 3.2. Tada vrijedi

x ≡ aj (mod mj )
y ≡ aj (mod mj ), j = 1, . . . , r

(jer x i y moraju zadovoljavati svaku kongruenciju).


Oduzimanjem tih dviju kongruencija dobivamo:

x − y ≡ 0(mod mj ), j = 1, . . . , r

tj.

x ≡ y(mod mj ), j = 1, . . . , r

Kako su mj -ovi u parovima relativno prosti, vrijedi

x ≡ y(mod m1 · m2 · . . . · mr ),

čime je teorem dokazan.


60 3.3. RELACIJA EKVIVALENCIJE

Primjer 3.11 Riješite sustav kongruencija

x ≡ 1(mod 5)
x ≡ 5(mod 7)
x ≡ 4(mod 11)

Rješenje:
m1 = 5, m2 = 7, m3 = 11
(mi , mj ) = 1, ∀i, j = 1, 2, 3
m = m1 · m2 · m3 = 385
n1 = mm1 = 385 5 = 77
m 385
n2 = m2 = 7 = 55
n3 = mm3 = 38511 = 35

x = n1 x1 + n2 x2 + n3 x3
x = 77x1 + 55x2 + 35x3 , pri čemu x1 , x2 , x3 zadovoljavaju

77x1 ≡ 1(mod 5)
55x1 ≡ 5(mod 7)
35x1 ≡ 4(mod 11)

75x1 + 2x1 ≡ 1(mod 5) ⇒ 2x1 ≡ 1(mod 5) ⇒ x1 ≡ 3(mod 5)


49x2 + 6x2 ≡ 5(mod 7) ⇒ 6x2 ≡ 5(mod 7) ⇒ x2 ≡ 2(mod 7)
33x3 + 2x3 ≡ 4(mod 11) ⇒ 2x3 ≡ 4(mod 11) ⇒ x3 ≡ 2(mod 11)

x0 = 77 · 3 + 55 · 2 + 35 · 2 = 411 ⇒
x ≡ 411(mod 385)
x ≡ 26(mod 385)

3.3.3 Aritmetika u Zk
Budući da je kongruencija modulo k relacija ekvivalencije, ona definira par-
ticiju skupa Z u neprazne disjunktne klase X0 = 0̄, X1 = 1̄, ..., Xk−1 = k − 1.
Znamo da je
k−1
[
Z= Xi .
i=0

Definicija 3.9 Skup cijelih brojeva modulo k u oznaci Zk je skup svih klasa
ekvivalencije s obzirom na kongruenciju na Z.
POGLAVLJE 3. DISKRETNA MATEMATIKA 61

Dakle, Zk je kvocijentni skup od Z s obzirom na ≡ .


Aritmetiku u Zk uvodimo tako da klase zbrajamo i množimo preko zbra-
janja i množenja predstavnika pojedinih klasa.
Dakle zbrajanje ⊕ i množenje ⊗ klasa definiramo na sljedeći način:

[a]k ⊕ [b]k = [a + b]k ,


[a]k ⊗ [b]k = [ab]k .

Iako se svaka klasa može predstaviti preko beskonačno mnogo pred-


stavnika, pokazuje se da je rezultat primjene ovih dviju operacija ne ovisi
o predstavnicima klasa. Klasu s ostacima 0 označavamo često s 0, a onu s
ostacima jednakim 1 s 1.

Teorem 3.5 Operacije zbrajanja ⊕ i množenja ⊗, za a, b, c ∈ Zk , imaju


sljedeća svojstva:

1. a ⊕b ∈ Zk ,

2. a ⊕b = b ⊕a,

3. (a ⊕ b) ⊕ c = a ⊕ (b ⊕ c) ,

4. a ⊕ 0 = a.

5. a ⊗b ∈ Zk ,

6. a ⊗b = b ⊗a,

7. (a ⊗ b) ⊗ c = a ⊗ (b ⊗ c) ,

8. a ⊗ 1 = a,

9. a ⊗ (b ⊕ c) = (a ⊗ b) ⊕ (a ⊕ c),

10. Za svaki a ∈ Zk postoji jedinstveni element −a ∈ Zk takav da je a


⊕(−a) = 0.

Iz svojstva 10 slijedi da svaki element iz Zk ima aditivni inverz. Iz


prethodne točke znamo da će multiplikativni element postojati jedino ako
je k prost broj. Nabrojena svojstva će osigurati da (Zk , ⊕, ⊗) ima strukturu
polja za slučaj kad je k prost broj o čemu će biti više govora u poglavlju o
algebarskim strukturama.
62 3.3. RELACIJA EKVIVALENCIJE

3.3.4 Još neka svojstva binarnih relacija


Evo još nekih svojstava binarnih relacija, koja su nam potrebna za definiciju
uredajnih relacija.

Definicija 3.10 Binarna relacija ρ ⊆ A × A je:

1. irefleksivna ako vrijedi

(∀x ∈ A) (x, x) ∈ ρc ,

2. antisimetrična ako vrijedi

(∀x, y, ∈ A) (x, y) ∈ ρ ∧ (y, x) ∈ ρ ⇒ x = y,

3. asimetrična ako vrijedi

(∀x, y, ∈ A) (x, y) ∈ ρ ⇒ (y, x) ∈ ρc ,

4. kompletna ako vrijedi

(∀x, y ∈ A, x 6= y) (x, y) ∈ ρ ∨ (y, x) ∈ ρ,

5. strogo kompletna ako vrijedi

(∀x, y ∈ A) (x, y) ∈ ρ ∨ (y, x) ∈ ρ,

Zapišimo još algebarske karakterizacije svojstava binarnih relacija.


Zadan je skup A i ρ ⊆ A × A. Paru (a, b) pridružuje se kod cab i vrijedi
cab = 1 ⇔ (a, b)²ρ, a cab = 0 ⇔ (a, b) ∈ / ρ. Svojstva binarnih relacija mogu
se algebarski interpretirati pomoću kodova na sljedeći način:

Svojstvo Algebarska reprezentacija


refleksivnost caa = 1 ∀a ∈ A
irefleksivnost caa = 0 ∀a ∈ A
simetrija cab − cba = 0 ∀a, b ∈ A
antisimetrija cab + cba ≤ 1 ∀a, b ∈ A ∧ a 6= b
asimetrija cab + cba ≤ 1 ∀a, b ∈ A
kompletnost cab + cba ≥ 1 ∀a, b ∈ A ∧ a 6= b
stroga kompletnost cab + cba ≥ 1 ∀a, b ∈ A
tranzitivnost cac ≥ cab + cbc − 1 ∀a, b, c ∈ A
Tablica 3.1
POGLAVLJE 3. DISKRETNA MATEMATIKA 63

3.4 Uredajne binarne relacije


Postoje relacije koje imaju po nekoliko od nabrojanih svojstava. Za pro-
blem uredivanja skupova posebno su važne sljedeće relacije koje zajedničkim
imenom zovemo uredajne relacije:
1. relacija djelomičnog (parcijalnog) uredaja: refleksivna, antisimetrična,
tranzitivna;
2. relacija slabog uredaja: strogo kompletna, tranzitivna;
3. relacija kvazi-uredaja: refleksivna, tranzitivna.
4. relacija totalnog (linearnog) uredaja: antisimetrična, strogo komplet-
na, tranzitivna.

3.4.1 Relacija parcijalnog uredaja


Relacija parcijalnog uredaja poopćava relaciju ≤ na skupu realnih brojeva,
tako da preuzima tri njezina najvažnija svojstva. Prisjetimo se da za relaciju
≤ vrijedi svojstvo refleksivnosti jer je a ≤ a za svaki realni broj a. Nadalje,
ta je relacija antisimetrična jer iz a ≤ b i b ≤ a slijedi a = b. Na kraju,
relacija je i tranzitivna jer očigledno vrijedi da ako je a ≤ b i b ≤ c, tada je
a ≤ c. To je razlog što ovu relaciju često označavamo oznakom ¹ .

Definicija 3.11 Parcijalno uredeni skup je par (A, ¹) koji se sastoji od


skupa A i relacije ¹ parcijalnog uredaja na skupu A. Relacija parcijalnog
uredaja je refleksivna, antisimetrična i tranzitivna.

Primjer 3.12 Poznati primjeri parcijalno uredenih skupova su


1. (R, ≤), tj. skup realnih brojeva uz relaciju ≤,
2. (P (A) , ⊆), tj. partitivni skup nekog skupa A uz relaciju podskupa
⊆,
3. (N, |), tj. skup prirodnih brojeva uz relaciju dijeljenja bez ostatka.

Primijetite da < nije relacija parcijalnog uredaja na skupovima brojeva


jer ne vrijedi svojstvo refleksivnosti.

Zadatak 3.10 Na skupu prirodnih brojeva N dana je relacija ρ takva da je


aρb ⇔ a ≤ 3b. Da li je ρ relacija parcijalnog uredaja?

Za grafički prikaz relacija parcijalnog uredaja često se upotrebljavaju


Hasseovi dijagrami. Hasseovi dijagrami prikazuju elemente skupa kao vrhove
grafa, koristeći svojstvo da ako je a ”manji” od b tj. a ¹ b, vrh a bit će na
slici povezan sa b, ali smješten ispod njega. Hasseovi dijagrami imaju manje
lukova od usmjerenih grafova koji prikazuju relacije, pošto se ne crtaju svi
lukovi, zato jer su neki dani posredno kao kombinacija dvaju ili više lukova.
Na primjer, ako je {1} ⊆ {1, 2}, {1, 2} ⊆ {1, 2, 3} i {1} ⊆ {1, 2, 3}, vrhovi
{1}, {1, 2}, {1, 2, 3} se crtaju jedan iznad drugog, ali lukovi se crtaju samo
64 3.4. UREDAJNE BINARNE RELACIJE

izmedu {1} i {1, 2} te izmedu {1, 2} i {1, 2, 3}, jer se zbog rasporeda na
različite visine i postojeća dva luka podrazumijeva luk izmedu {1} i {1, 2, 3}.
Kad je skup parcijalno ureden ne znači da svaka dva elementa skupa
možemo usporedivati. Uzmimo da je A = {1, 2, 3} i relacija ⊆ dana na
P (A) . Podskupovi {1, 2} i {3} nisu usporedivi, tj. {1, 2} 6⊆ {3} i {3}
6⊆ {1, 2}.

Definicija 3.12 Parcijalni uredaj na skupu A je linearan ili totalni uredaj


ako vrijedi:
∀a, b ∈ A, a ¹ b ili b ¹ a.
(A, ¹) je linearno ureden skup.
Za linearno uredeni skup upotrebljavaju se nazivi totalno uredeni skup
i lanac.

Primjer 3.13 Parcijalno uredeni skup (R, ≤) je lineano uredeni skup, ali
općenito (P (A) , ⊆) nije linearno uredeni skup.

Definicija 3.13 Neka je (A, ¹) parcijalno ureden skup i B ⊆ A. Tada


1. b ∈ B je najveći element u B ako
∀b0 ∈ B ⇒ b0 ¹ b,

2. b ∈ B je najmanji element u B ako


∀b0 ∈ B ⇒ b ¹ b0 .

Primjer 3.14 (P ({a, b}) , ⊆) prikažite pomoću grafa. Ispitajte postojanje


najvećeg i najmanjeg elementa za različite podskupove ovog skupa.

{a}

∅ {a,b}

{b}

Slika 3.3
POGLAVLJE 3. DISKRETNA MATEMATIKA 65

a) B = {{a}} , {a} je najveći i najmanji element,


b) B = {{a} , {b}} nema ni najvećeg ni najmanjeg elementa,
c) B = {∅, {a}}
{a} je najveći element, ∅ je najmanji element.

Zadatak 3.11 Parcijalno uredeni skup iz prethodnog primjera prikažite


pomoću Hasseovog dijagrama.

Primjer 3.15 Nacrtajmo Hasseov dijagram za (P (a, b, c), ⊆).

{a,b,c}

{a,b} {a,c} {b,c}

{a} {b} {c}


Slika 3.4

Zadatak 3.12 Za parcijalno uredeni skup iz prethodnog primjera nacrtajte


usmjereni graf.

Teorem 3.6 Neka je (A, ¹) parcijalno ureden skup i B ⊆ A. Ako u B


postoji najveći element, onda je on jedinstven.
Dokaz. Neka su a, b dva različita, najveća elementa.
a je najveći ⇒ b ¹ a,
b je najveći ⇒ a ¹ b.
Zbog antisimetričnosti slijedi da je onda a = b.

Definicija 3.14 Binarna relacija ρ na A je relacija dobrog uredaja ako je


ρ linearni uredaj na A i ako svaki neprazni podskup od A ima najmanji
element.
66 3.4. UREDAJNE BINARNE RELACIJE

Primjer 3.16 (N, ≤) je relacija dobrog uredaja.


(Z, ≤) , (R, ≤) nisu relacije dobrog uredaja.

U parcijalno uredenom skupu se osim najvećeg elementa može definirati


i maksimalni element, koji ne mora biti jedinstven. Osnovno je kod definicije
maksimalnog elementa da ne postoji element koji je od njega veći, ali on ne
mora biti od svih veći. To se može dogoditi zato jer u parcijalno uredenom
skupu ne moraju svi elementi biti usporedivi. Dakle, tko je god usporediv s
maksimalnim elementom, manji je od njega. S druge strane može postojati
neki drugi maksimalni element koji nije usporediv s prvim.

Definicija 3.15 Neka je (A, ¹) parcijalno ureden skup i B ⊆ A. Tada

1. b ∈ B je maksimalni element u B ako b0 ∈ B i b0 ¹ b ⇒ b0 = b,

2. b ∈ B je minimalni element u B ako b0 ∈ B i b ¹ b0 ⇒ b0 = b.

Za svaka dva elementa u parcijalno uredenom skupu možemo definirati


najveću donju medu i najmanju gornju medu na sljedeći način.

Definicija 3.16 Neka je (A, ¹) parcijalno ureden skup i a, b ∈ A. Tada je


d ∈ A najveća donja meda elemenata a, b, ako vrijedi da je

1. d ¹ a, d ¹ b,

2. ako postoji d0 ∈ A takav da je d0 ¹ a, d0 ¹ b, onda je d0 ¹ d.

Definicija 3.17 Neka je (A, ¹) parcijalno ureden skup i a, b ∈ A. Tada je


g ∈ A najmanja gornja meda elemenata a, b, ako vrijedi da je

1. a ¹ g, b ¹ g,

2. ako postoji g 0 ∈ A takav da je a ¹ g 0 , b ¹ g 0 , onda je g ¹ g 0 .

Uočimo da je na skupu realnih brojeva uz relaciju ≤ najveća donja meda


dva broja manji od dva broja, a najmanja gornja meda jednaka je većem
od brojeva. Na parcijalno uredenom skupu (P (A) , ⊆) najveća donja meda
elemenata X, Y je X ∩ Y, a najmanja gornja meda je X ∪ Y.
Definicija najveće donje i najmanje gornje mede može se proširiti na
nizove elemenata parcijalno uredenog skupa. Posebno, u skupovima brojeva
kao što su R, Q, Z, N mogu se promatrati beskonačni nizovi brojeva i njihove
mede. Postavlja se pitanje postoji li strogo padajući niz brojeva u svakom
od promatranih skupova brojeva. Očito, u skupu prirodnih brojeva strogo
padajući niz ne postoji. Nadalje, možemo rješavati problem da li omedeni,
strogo padajući niz racionalnih brojeva ima najveću donju medu koja je
racionalan broj. Odgovor nam je poznat iz matematičke analize i negativan
POGLAVLJE 3. DISKRETNA MATEMATIKA 67

je. Medutim ograničeni, strogo padajući niz realnih brojeva ima najveću
donju medu koja je realni broj. Ova je tvrdnja vrlo važna, pa se često
uzima kao aksiom za gradnju skupa realnih brojeva. Taj aksiom zovemo
aksiomom potpunosti za skup realnih brojeva.

Definicija 3.18 Parcijalno uredeni skup (A, ¹) kod kojeg svaka dva ele-
menta imaju najveću donju medu i najmanju gornju medu zovemo mreža
(eng. lattice).
Parcijalno uredeni skupovi (R, ≤) i (P (A) , ⊆) su mreže.

Zadatak 3.13 Dokažite da ako postoji najveća donja meda dvaju eleme-
nata u parcijalno uredenom skupu onda je ona jedinstvena.
Dokažite da ako postoji najmanja gornja meda dvaju elemenata u par-
cijalno uredenom skupu onda je ona jedinstvena.

Zadatak 3.14 Pokažite da je (P (A) , ⊆) (k (A) ≥ 2) parcijalno uredeni


skup koji ima najveći i najmanji element, ali skup nije linearno ureden.

3.4.2 Relacija djeljivosti na skupu cijelih brojeva


Neka su a i b dva cijela broja. Kažemo da ako a dijeli b znači da postoji
neki drugi cijeli broj q takav da je b = qa. U tom slučaju upotrebljavamo
notaciju a | b i kažemo da je a divizor (ili djelitelj ili faktor), q kvocijent, te
da a dijeli b. Broj b je tada višekratnik broja a. Ukoliko a ne dijeli b pišemo
a - b.
Uvijek vrijedi 1 | a, za svaki cijeli broj a i b | 0, za svaki cijeli broj b 6= 0.

Primjer 3.17 Neka su a, b, c ∈ Z i a | b, a | c. Dokažimo da tada a dijeli


linearnu kombinaciju brojeva b i c, tj. da vrijedi a | (xb + yc) za sve cijele
brojeve x i y. Tvrdnju ćemo dokazati. Iz pretpostavki tvrdnje slijedi da
postoje kvocijenti q i p takvi da je b = qa i c = pa. Za bilo koja dva cijela
broja x i y računamo: xb + yc = xqa + ypa = (xq + yp) a, čime je tvrdnja
dokazana.

Propozicija 3.7 Uredeni skup (N, |) je parcijalno ureden skup.


Dokaz. Treba ispitati vrijede li tri svojstva relacije parcijalnog uredaja:
refleksivnost, antisimetričnost i tranzitivnost.
Refleksivnost vrijedi jer za svaki prirodni broj n vrijedi n | n.
Da bismo dokazali antisimetričnost pretpostavimo da postoje dva prirod-
na broja n i m takva da vrijedi n | m i m | n. Slijedi da postoje kvocijenti
q i p takvi da je m = qn i n = pm. Uvrštavanjem n iz druge jednakosti u
prvu dobijamo m = pqm, pa slijedi da je pq = 1. U skupu prirodnih brojeva
moguće je samo jedno rješenje i to p = q = 1. Iz toga slijedi m = n, pa je
antisimetričnost relacije | na skupu prirodnih brojeva dokazana. Primjetimo
68 3.4. UREDAJNE BINARNE RELACIJE

da u skupu cijelih brojeva nalazimo i rješenje p = q = −1, koje će značiti da


ne vrijedi antisimetričnost relacije | na skupu Z.
Dokažimo sada tranzitivnost. Neka su n, m, s ∈ N takvi da vrijedi n | m
i m | s. Treba dokazati da n | s. Iz pretpostavke slijedi da postoje kvocijenti
q i p takvi da je m = qn i s = pm. Iz toga slijedi da je s = pqn, što znači da
n dijeli s.
Zapamtimo da (Z, |) nije parcijalno uredeni skup. Koja svojstva ne vri-
jede?
Znamo da je najveći zajednički djelitelj dva cijela broja različita od nule,
najveći cijeli broj koji dijeli oba zadana broja. Najveći zajednički djelitelj od
a i b, zovemo još i mjera dva broja i označavamo ga sa M (a, b) ili D (a, b) .
Pogledajmo prethodnu definiciju u kontekstu parcijalno uredenih sku-
pova. Ovdje to znači da parcijalno uredenom skupu (N, |) interpretiramo
pojam najvećeg zajedničkog djeljitelja kao najveću donju medu para bro-
jeva. To nam i garantira jedinstvenost najvećeg zajedničkog djelitelja para
prirodnih brojeva.

Propozicija 3.8 Najveći zajednički djelitelj para prirodnih brojeva u par-


cijalno uredenom skupu (N, ≤) predstavlja najveću donju medu tih brojeva.

Korolar 3.1 Najveći zajednički djelitelj dvaju prirodnih brojeva je jedin-


stveni je prirodni broj.

Problem nalaženja najvećeg zajedničkog djelitelja obraden je u poglavlju


o algoritmima. Tamo je izložen i Euklidov algoritam pomoću kojeg se efek-
tivno nalazi najveći zajednički djelitelj para cijelih brojeva različitih od nule.
On se temelji na teoremu o dijeljenju prirodnih brojeva, koji tvrdi da za
svaka dva prirodna broja a, b postoje prirodni brojevi q i r takvi da vrijedi
a = qb+r i 0 ≤ r < b. Iz toga izlazi da je M (a, b) = M (b, r) , pa tu činjenicu
ponavljamo uzastopno u Euklidovom algoritmu.
Za cijele brojeve a, b kažemo da su relativno prosti ako im je M (a, b) = 1,
tj. 1 je jedini prirodni broj koji dijeli relativno proste brojeve.
Prosti brojevi imaju istaknutu ulogu. Ponovimo, prirodan broj p ≥ 2 ≥
je prost broj ako je djeljiv samo s brojem jedan i sa samim sobom. Prirodne
brojeve koji nisu prosti zovemo složenim brojevima. Posebno zanimljiv pro-
blem teorije brojeva je problem nalaženja prostih brojeva. Za odredivanje
relativno malih prostih brojeva upotrebljava se tzv. Eratostenovo sito.
Činjenica da se svaki prirodan broj n > 1 može na jedinstveni način
prikazati u obliku produkta prostih brojeva zove se fundamentalni teorem
aritmetike. Ovaj se teorem dokazuje jakim oblikom matematičke indukcije.
Definira se i najmanji zajednički višekratnik cijelih brojeva a i b različitih
od nule kao najmanji prirodni broj koji je višekratnik brojeva a i b. Oznaka
za najmanji zajednički višekratnik je V (a, b) .
POGLAVLJE 3. DISKRETNA MATEMATIKA 69

Propozicija 3.9 Najmanji zajednički višekratnik dvaju prirodnih brojeva


u parcijalno uredenom skupu (N, ≤) predstavlja najmanju gornju medu tih
brojeva.

Korolar 3.2 Najmanji zajednički višekratnik dvaju prirodnih brojeva je


jedinstven.
Znamo da za svaka dva prirodna broja postoje njihovi zajednički djelite-
lji, jedan od njih je uvijek broj 1, pa je skup zajedničkih djelitelja neprazan.
S druge strane taj je skup omeden odozgo sa zadanim prirodnim brojevima.
Znamo da svaki odozgo omedeni skup prirodnih brojeva ima najveći element,
pa to osigurava postojanje najvećeg zajedničkog djelitelja. Nadalje, poznato
je da uvijek postoji barem jedan zajednički višekratnik para n, m prirodnih
brojeva (broj nm) pa postoji i njihov najmanji zajednički višekratnik. Pos-
tojanje najmanjeg zajedničkog višekratnika je posljedica principa dobrog
uredaja za prirodne brojeve. Princip dobrog uredaja (eng. Well-Ordering
Principe) postulira da svaki neprazni podskup skupa prirodnih brojeva ima
najmanji element. Kao posljedicu ovih razmatranja imamo konstataciju da
svaki par prirodnih brojeva ima najmanji zajednički višekratnik i najveću
zajedničku mjeru pa parcijalno uredeni skup (N, |) ispunjava zahtjeve da
bude mreža.

Propozicija 3.10 Parcijalno uredeni skup (N, |) je mreža.

Zadatak 3.15 Pokažite da za cijele brojeve a, b vrijedi

M (a, b) V (a, b) = |ab| .

3.5 Funkcije
Pojam funkcije toliko je važan da se na različite načine i u različitim ulogama
pojavljuje u svim granama matematike, ali i u drugim znanstvenim disci-
plinama i praktičnim problemima.
Evo općenite definicije funkcije.

Definicija 3.19 Funkcija f je preslikavanje (pridruživanje) elemenata iz-


medu dva skupa (domene i kodomene) i to takvo da svakom elementu pr-
vog skupa (domene) pridružuje jedan i samo jedan element drugog skupa
(kodomene).
Funkcija se može shvatiti i kao binarna relacija f na Kartezijevom pro-
duktu A × B sa svojstvom da za svaki a ∈ A, postoji jedinstveni b ∈ B takav
da je (a, b) ∈ f. Dakle, svi uredeni parovi u relaciji koja je ujedno i funkcije
imaju medusobno različite prve komponente. Pišemo f˙ : A → B, gdje A
predstavlja domenu, a B kodomenu funkcije f.
70 3.5. FUNKCIJE

Funkcije se mogu zadavati formulom, nabrajanjem uredenih parova, gra-


fički te pomoću svojstva. Nabrajanjem elemenata funkcija se može za-
dati isključivo u diskretnom slučaju, a posebno kad radimo s konačnim
skupovima. Pridruživanje koje svakom gradaninu Hrvatske pridružuje nje-
gov JMBG (jedinstveni matični broj gradana) je primjer funkcije koja se
može zadati nabrajanjem elemenata. Pri tome je prvi član para gradanin
Hrvatske (opisan preko odredenih atributa), a drugi član para je 13-tero
znamenkasti prirodni broj.

Definicija 3.20 Funkcije f i g su jednake ako

1. imaju iste domene,

2. imaju iste kodomene,

3. Za svaki x ∈ Df = Dg je f (x) = g(x).

Primjer 3.18 Neka su zadani skupovi A={ 1, 2, 3} i B={ 1, 2, 3, 4, 5, 6, 7,


8, 9} i funkcija f : A → B kao relacija f = {(1, 1) , (2, 4) , (3, 9)} . Tu funkciju
možemo zadati i pomoću formule f (x) = x2 uz obavezni dodatak da je
f˙ : A → B. Funkcija zadana istom formulom, ali s domenom i kodomenom
u skupu realnih brojeva bila bi predstavljena parabolom u koordinatnom
sustavu u ravnini.
Na razini pridruživanja elemenata, funkciju f : A → B pišemo 1 7→
1, 2 7→ 4, 3 7→ 9.

Kad se radi o funkciji f obično umjesto (a, b) ∈ f pišemo b = f (a) .


Odnosno, za svaki b ∈ B jednadžba b = f (x) ima rješenje x ∈ A.

3.5.1 Kompozicija funkcija


Neka su f : Df → A, g : Dg → B funkcije. Ako je B ⊆ Df tada za ∀x ∈
Df možemo definirati kompoziciju funkcija f i g, (f ◦ g) (x) = f (g (x)) .
Dakle, kompozicija se sastoji od dva preslikavanja: x ½ g (x), pa onda
g (x) ½ f (g (x)) .

Identiteta ili identično preslikavanje na skupu A je takvo preslikavanje


id : A → A za koje je
id (x) = x, ∀x ∈ A.

Za svaku funkciju F vrijedi


id ◦ f = f.
POGLAVLJE 3. DISKRETNA MATEMATIKA 71

3.5.2 Bijekcija. Inverzna funkcija


Definicija 3.21 Funkcija f : D → K je injekcija ako različite elemente iz
domene preslikava u različite elemente kodomene, tj. ako

∀x1 , x2 ∈ D, x1 6= x2 =⇒ f (x1 ) 6= f (x2 ) .

Funkcija f : D → K je surjekcija ako svaki element iz kodomene ima


svoju prasliku u domeni, tj. ako

∀y ∈ K, ∃x ∈ D takav da vrijedi f (x) = y.

Funkcija f : D → K je bijekcija ako je surjekcija i injekcija.

Teorem 3.7 Za funkciju f : D → K koja je bijekcija postoji inverzna


funkcija f −1 : K → D za koju vrijedi

f ◦ f −1 = id |K , f −1 ◦ f = id |D (3.3)

Zadatak 3.16 Ispitajte da li je funkcija f (a, b) = 3a + b, f : N × N → N


surjekcija, injekcija, odnosno bijekcija.

3.5.3 Funkcije kao relacije


Definicija 3.22 Relacija f ⊆ A × B je funkcija ako

(∀a ∈ A) (∃b ∈ B) tako da je (a, b) ∈ f

i ne postoje dva različita para s istom prvom komponentom.

Definicija 3.23 Funkcija f je konstantna funkcija ili konstanta ako

∃!b ∈ B takav da (∀a ∈ A) (a, b) ∈ f.

Zadatak 3.17 Napišite definicije surjekcije, injekcije i bijekcije koristeći po-


jam funkcije kao relacije.

Definicija −1
¡ −1 ¢3.24 Neka je f bijekcija. Inverzna funkcija f je obrat relacije
¯
f f = f , tj.
f −1 = {(b, a) : (a, b) ∈ f } .

Zadatak 3.18 Zadana je funkcija f : R → R dana sa f (x) = x |x| . Ispitajte


je li zadana funkcija f bijekcija, te ukoliko jest, nadite njezinu inverznu
funkciju.

Zadatak 3.19 Pretpostavimo da je S skup svih oženjenih ljudi i f : S → S


funkcija koja svakoj osobi iz S pridružuje njezinog bračnog partnera. Je li
zadana funkcija bijekcija? Izračunajte f ◦ f.
72 3.5. FUNKCIJE

Definicija 3.25 Permutacija je bijekcija na skupu A.


Ako je A konačan skup, tada je funkcija p : A → A injekcija ako i samo
ako je p surjekcija. Svaka se permutacija konačnog skupa može prikazati
kao µ ¶
1 2 . . . n
p= .
p (1) p (2) . . . p (n)

Definicija 3.26 Svaki slučaj kad u permutaciji vrijedi

i < j ⇒ p (i) > p (j)

zovemo inverzijom u p.
Označimo sa I (p) ukupan broj inverzija u p.
Definirajmo funkciju sign kao

sign : Sn → {−1, 1} , sign (p) = (−1)I(p) ,

gdje je Sn = {1, 2, . . . , n}.


Ako je sign (p) = 1 kažemo da je permutacija parna.
Ako je sign (p) = −1 kažemo da je permutacija neparna.

Primjer 3.19 Odredite parnost permutacije


µ ¶
1 2 3 4 5 6
p= .
3 4 2 5 1 6

3.5.4 Realne funkcije realne varijable


Definicija 3.27 Realna funkcija realne varijable je takva funkcija kod koje su i domena
i kodomena podskupovi skupa realnih brojeva, tj.

f : A → B, A, B ⊆ R.

Realnu funkciju zovemo algebarskom ako je argument x podvrgnut konačnom broju


algebarskih operacija (zbrajanju, oduzimanju, množenju konstantom, množenju, dijelje-
nju, potenciranju racionalnim brojem).
Funkcije koje nisu algebarske zovemo transcedentnima.
Za algebarsku funkciju kažemo da je racionalna ako se kao eksponent varijable javlja
samo cijeli broj.
Algebarske funkcije koje nisu racionalne zovemo iracionalnima.
Polinom n-tog stupnja (cijela racionalna funkcija) je funkcija oblika

f (x) = an xn + an−1 xn−1 + ... + a2 x2 + a1 x + a0 ,

gdje su a0 , a1 , a2 , ..., an−1 , an ∈ R, n ∈ N, an 6= 0.


Racionalna funkcija (razlomljena racionalna funkcija) je kvocijent dvaju polinoma, tj.
funkcija oblika
P (x)
f (x) = , (3.4)
Q (x)
gdje su P (x) , Q (x) polinomi i Q (x) 6= 0.
POGLAVLJE 3. DISKRETNA MATEMATIKA 73

Specijalni slučaj racionalne funkcije je homografska funkcija, odnosno funkcija oblika

ax + b
f (x) = ,
cx + d

uz uvijet x 6= − dc .
Od transcendentnih funkcija spomenimo:

• ekponencijalnu i logaritamsku, te
• trigonometrijske i ciklometrijske (arkus) funkcije.

Domena realnih funkcija realne varijable


Navedimo domene važnijih realnih funkcija realne varijable.

• racionalna funkcija oblika 3.4 ima domenu

Df = {x ∈ R | Q (x) 6= 0} .
p
2k
• iracionalna funkcija oblika f (x) = g (x), k ∈ Z ioma domenu

Df = {x ∈ R | g (x) ≥ 0} .

• logaritamskoj funkciji oblika f (x) = loga g (x) , (a > 0, a 6= 1) domena je

Df = {x ∈ R | g (x) > 0} .

• ciklomerijske funkcije f (x) = arcsin (g (x)) i f (x) = arccos (g (x)) imaju domenu

Df = {x | −1 ≤ g (x) ≤ 1} .

3.6 Graf funkcije


Graf Γf funkcije y = f (x) je skup točaka ravnine definiran sa

Γf = {(x, f (x)) | x ∈ Df } .

Graf implicitno zadane funkcije (jednadžbe) F (x, y) = 0 s varijablama x, y je skup


točaka (x, y) ravnine, koje zadovoljavaju jednadžbu.

3.6.1 Neka svojstva realnih funkcija realne varijable


Slijede važnija svojstva realnih funkcija realne varijable.

• Za broj x0 ∈ R kažemo da je nultočka funkcije

y = f (x) ako je f (x0 ) = 0.

• Za funkciju y = f (x) kažemo da je ograničena odozgo (odozdo) ako ∃M ∈ R


(∃m ∈ R), takav da je f (x) ≤ M (f (x) ≥ m), ∀x ∈ Df . Funkcija je ograničena
(omedena) ako je ograničena i odozdo i odozgo. Realni broj M zovemo gornjom
medom, a m donjom medom funkcije. Najmanji realan broj M , koji je gornja
meda funkcije, zovemo najmanjom gornjom medom, a najveći realan broj m, koji
je donja meda funkcije, zovemo najvećom donjom medom.
74 3.6. GRAF FUNKCIJE

• Za funkciju y = f (x) kažemo da raste (pada) na intervalu I ⊆ Df ako za svaki


izbor
x1 , x2 ∈ I, x1 ≤ x2 vrijedi f (x1 ) ≤ f (x2 ) (f (x1 ) ≥ f (x2 )).
Kažemo da funkcija strogo raste (strogo pada) ako za svaki izbor
x1 , x2 ∈ I, x1 < x2 vrijedi f (x1 ) < f (x2 ) (f (x1 ) > f (x2 )).
Funkciju koja raste, odnosno pada, na cijelom području definicije zovemo monoto-
nom.
• Za funkciju y = f (x) kažemo da ima lokalni maksimum u točki xM ako
∃O, O ⊆ Df , xM ∈ O, takav da ∀x, x ∈ O, f (x) ≤ f (xM ) .
Vrijednost f (xM ) funkcije f u točki xM zovemo maksimalnom vrijednošću. Za
funkciju y = f (x) kažemo da ima lokalni minimum u točki xm ako
∃O, O ⊆ Df , xm ∈ O takav da ∀x, x ∈ O, f (x) ≥ f (xm ) .

Vrijednost f (xm ) funkcije f u točki xm zovemo minimalnom vrijednošću.


Jednim imenom za lokalni maksimum i minimum kažemo da su lokalni ekstremi
funkcije.
Za funkciju y = f (x) kažemo da ima strogi lokalni maksimum u točki xM ako
∃O, O ⊆ Df , xM ∈ O takav da ∀x, x ∈ O, f (x) < f (xM ) .
Analogno definiramo strogi lokalni minimum.
• Za funkciju y = f (x) kažemo da je periodična ako
∃T ∈ R, T > 0 takav da vrijedi f (x + T ) = f (x) , ∀x ∈ Df . (3.5)
Za T kažemo da je period funkcije f. Najmanji realni broj T0 , takav da vrijedi 3.5,
zovemo osnovnim periodom funkcije f.
• Za funkciju y = f (x) kažemo da je parna ako vrijedi
f (−x) = f (x) , ∀x ∈ Df .

Za funkciju y = f (x) kažemo da je neparna ako vrijedi


f (−x) = −f (x) , ∀x ∈ Df .

Graf parne funkcije je osno simetričan s obzirom na os y, a graf neparne funkcije


je centralno simetričan s obzirom na ishodište.
Većina funkcija nisu ni parne ni neparne.

Eksponencijalne funkcije
Eksponencijalna funkcija je oblika
f (x) = ax , a > 0, a 6= 1, f : R → h0, ∞i
Svojstva:
1. a0 = 1, ∀a.
2. ax > 0, ∀x ∈ R.
3. Os x je horizontalna asimptota.

Slučaj 3.1 0 < a < 1.


Funkcija pada na cijeloj domeni.
f (x) → 0 kad x → +∞.
POGLAVLJE 3. DISKRETNA MATEMATIKA 75


1 x
Primjer 3.20 f (x) = 2

-2 -1 0 1 2 x

Slika 3.5

Slučaj 3.2 a > 1.


Funkcija raste na cijeloj domeni.
f (x) → 0 kad x → −∞.

Primjer 3.21 f (x) = 2x

-2 -1 0 1 2 x

Slika 3.6
76 3.6. GRAF FUNKCIJE

Logaritamska funkcija
f (x) = loga x, f : h0, ∞i → R
Logaritamska funkcija s bazom a (a > 0, a 6= 1) inverzna je funkcija eksponencijalne
funkcije s bazom a.
Ponovimo osnovna svojstva logaritama. Za realne brojeve a, b i c, pri čemu su a, b > 0,
a 6= 1 vrijedi:

Definicija 3.28
loga b = c ⇔ ac = b (3.6)

Svojstva:

1. loga 1 = 0.
2. loga a = 1.
3. aloga x = x.
4. loga ax = x.
5. loga (xy) = loga x + loga y.
x
6. loga y
= loga x − loga y.
p
7. loga x = p loga x, p ∈ R, p6=0.
logb x
8. loga x = logb a
.
1
9. loga b = logb a
.

Slučaj 3.3 0 < a < 1.


Funkcija pada na cijeloj domeni.
f (x) → 0 kad x → +∞.

Primjer 3.22 f (x) = log 1 x


2

-1 0 1 2 3 4 x
-1

-2

Slika 3.7
POGLAVLJE 3. DISKRETNA MATEMATIKA 77

Slučaj 3.4 a > 1.


Funkcija raste na cijeloj domeni.
f (x) → 0 kad x → −∞.

Primjer 3.23 f (x) = log2 x

-1 0 1 2 3 4 x
-1

-2

-3

Slika 3.8

loge x ≡ ln x, e ≈ 2.71... (3.7)

Cjelobrojne funkcije
Cjelobrojne funkcije imaju važnu ulogu u informatici. To su realne funkcije realne vari-
jable, čija je kodomena skup cijelih brojeva. Spomenimo funkciju ”najveće cijelo manje
od” (floor - pod) i ”najmanje cijelo veće od” (ceiling - strop). Dakle, za cjelobrojne funkcije
f je kodomena skup cijelih brojeva.

Definicija 3.29 Za svaki realni broj x definiramo bxc kao najveći cijeli broj manji ili
jednak x.
Za svaki realni broj x definiramo dxe kao najmanji cijeli broj veći ili jednak od x.

Vrijede sljedeće nejednakosti medu tim funkcijama:

bxc ≤ x ≤ dxe ,
x−1 ≤ bxc ≤ x,
x ≤ dxe ≤ x + 1.
78 3.6. GRAF FUNKCIJE

3.6.2 Konačni i beskonačni skupovi


Skupovi se mogu klasificirati s obzirom na broj elemenata. Medutim, da bi ta klasi-
fikacija imala smisla, tj. da bi nam omogućila particiju skupova s obzirom na broj ele-
menta, moramo na skupovima definirati relaciju ekvivalencije. U definiciji jednakobroj-
nosti skupova ključnu ulogu ima specijalna vrsta relacije - bijektivna funkcija.

Definicija 3.30 Skup A je ekvivalentan (ekvipotentan, bijektivan, jednakobrojan) skupu


B (oznaka: A ∼= B) ako postoji barem jedna bijekcija skupa A na skup B.

Propozicija 3.11 Relacija ∼


= je relacija ekvivalencije.
Kardinalni broj je klasa ekvivalencije kojoj skup pripada s obzirom na relaciju ∼
=, tj.
zajedničko svojstvo svih ekvipotentnih skupova.

Definicija 3.31 Skup A je konačan ako je prazan ili postoji bijekcija iz A u skup Nn =
{1, 2, 3, ..., n} koji se sastoji od prvih n prirodnih brojeva. Ako A nije konačan onda je
beskonačan.

Ako je A konačan, A 6= ∅ i bijektivan sa Nn = {1, 2, 3, ..., n} , tada on ima n elemenata


i pišemo |A| = n ili k (A) = n. Vrijedi |∅| = 0.

Primjer 3.24 Skupovi N i R su beskonačni zbog sljedećih injekcija:


f (x) = 2x,

x + 1, x ≥ 0,
g (x) = .
x, x < 0
Bijekcija f preslikava skup prirodnih brojeva na skup parnih prirodnih brojeva koji je
njegov podskup, dok bijekcija g preslikava skup realnih brojeva na njegov podskup R \
[0, 1i .

Iako su skupovi N i R beskonačni oni ipak nemaju isti kardinalni broj.

Definicija 3.32 Skup A je prebrojivo beskonačan ako i samo ako |A| = |N|, a prebrojiv
ako i samo ako je konačan ili prebrojivo beskonačan. Beskonačni skup koji nije prebrojiv
je neprebrojiv .

Oznaka kardinalnog broja skupa prirodnih brojeva je. |N| = ℵ0 (alef nula).
Pokazuje se da je |N| = |Z| = |Q| = ℵ0 .

Propozicija 3.12 Skup h0, 1i nije prebrojivo beskonačan i pišemo |h0, 1i| = c (kontinu-
um).

Propozicija se dokazuje metodom kontradikcije, a dokaz se može proučiti u [5], str.


92.
Vrijedi nadalje da je kontinuum ujedno i kardinalni broj skupa realnih brojeva tj.
|R| = c.
Nameće se pitanje postoji li kardinalni broj k takav da je ℵ0 < k < c ? Ovu je hipotezu
postavio veliki njemački matematičar Georg Cantor (1845-1918) i nazvao je hipoteza kon-
tinuuma.
Paul Cohen je 1966. godine razriješio hipotezu kontinuuma i za to dobio Fieldsovu
medalju, koja predstavlja najviše odlikovanje za matematiku. Odgovor glasi: uz standarni
skup aksioma teorije skupova ne može se odgovoriti na to pitanje. Zato matematičari ovu
hipotezu ponekad dodaju skupu osnovnih aksioma teorije skupova.
Detaljna razrada važne teme o kardinalnim brojevima može se naći u [4] i posebno u
[12].
POGLAVLJE 3. DISKRETNA MATEMATIKA 79

3.7 Rekurzivne relacije


3.7.1 Uvod
Neka je dan niz brojeva a1 , a2 , . . . , an , . . .. Najčešće se nizovi zadaju tako
da se eksplicitno zada formula za izračunavanje općeg člana niza. Tako su
zadani nizovi u primjeru 3.25.

Primjer 3.25 Nizovi zadani pomoću općeg člana:

• an = 2n
3n −1
• an = 2

No, ponekad je niz jednostavnije zapisati tako da se vrijednost n-tog


člana niza zada preko prethodnih članova niza. Takav način zadavanja
članova niza naziva se rekurzivno zadavanje članova niza. Nizovi iz primjera
3.25 mogu se zadati rekurzivno i to je učinjeno u primjeru 3.26.

Primjer 3.26 Nizovi zadani rekurzivno:

• ak = 2 · ak−1 , k ≥ 2, a1 = 2

• ak = 3 · ak−1 + 1, k ≥ 2, a1 = 1

Aritmetički niz
Jedan od najpoznatijih rekurzivno zadanih nizova je aritmetički niz o kojem
govori definicija 3.33:

Definicija 3.33 Neka su a, d ∈ R te neka je d 6= 0. Aritmetički niz defini-


ramo rekurzivno kao

a1 = a, an = an−1 + d. (3.8)

Pri tome se d zove razlika članova aritmetičkog niza.

Primjer 3.27

• Niz koji se sastoji od prirodnih brojeva redom od najmanjeg prema


većima zadaje se kao aritmetički niz na sljedeći način: a1 = 1, an =
an−1 + 1.

• Niz koji se sastoji od negativnih cijelih brojeva poredanih od najvećeg


prema manjima se zadaje ovako: a1 = −1, an = an−1 − 1.
80 3.7. REKURZIVNE RELACIJE

Pokušajmo sada zadati opći član aritmetičkog niza eksplicitno.


Rekurzivna formula za aritmetički niz dana je s 3.8. Primijenimo li istu
formulu na n − 1 član niza, dobit ćemo

an = (an−2 + d) + d = an2 + 2 · d
Uzastopnim ponavljanjem primjene formule 3.8 dolazimo do formule

(n−1)×
z }| {
an = (a1 + d + . . . + d) = a1 + (n − 1) · d
Time smo dobili eksplicitnu formulu za izračunavanje općeg člana arit-
metičkog niza.
Sljedeća zanimljiva formula je ona koja daje sumu prvih n članova arit-
metičkog niza. Ta je formula dana u sljedećoj propoziciji:

Propozicija 3.13 Neka je sa Sn označena suma prvih n članova aritmeti-


čkog niza. Tada je Sn dana sljedećom formulom:

n · (n − 1) n
Sn = n · a + · d = (a1 + an ) (3.9)
2 2
Dokaz. Dokaz ide indukcijom po n. Napravite ga sami.

Geometrijski niz
Geometrijski niz je drugi vrlo važan niz koji se može zadati rekurzivno.

Definicija 3.34 Neka su a, q realni brojevi te neka je q 6= 0, q 6= 1. Tada se


geometrijski niz definira kao

a1 = a, an = q · an−1 . (3.10)

Primjer 3.28

• Niz svih potencija broja 2 poredanih od najmanje prema većim: a1 =


1, an = 2 · an−1 .

• Rekurzivna definicija geometrijskog niza koji počinje brojem 2, a svaki


sljedeći broj u nizu dva puta je manji od prethodnog: a1 = 2, an =
1
2 · an−1 .

Slično kao kod aritmetičkog reda, izračunat ćemo eksplicitnu formulu za


izračunavanje općeg člana geometrijskog niza. Primijenimo li formulu 3.10
na (n − 1)-vi član niza i uvrstimo ono što smo dobili opet u formulu 3.10,
dobit ćemo
POGLAVLJE 3. DISKRETNA MATEMATIKA 81

an = (an−2 · q) · q = an−2 · q · q = an−2 · q 2


Ponovimo li taj postupak n − 1 puta, dobijamo

(n−1)×
z }| {
an = a1 ·q . . . · q = a1 · q n−1
Za geometrijski se niz, kao i za aritmetički, može izvesti formula za sumu
prvih n članova.

Propozicija 3.14 Neka je sa Sn označena suma prvih n članova geometrij-


skog niza. Tada Sn iznosi

1 − qn
Sn = a · (3.11)
1−q
Dokaz. Indukcijom po n. Izvedite ga sami.

***

No, geometrijski je red konvergentan za q ∈< −1, 1 >. To znači da, pustimo li da
broj članova geometrijskog niza raste prema beskonačnosti, njihova će se suma sve više
približavati nekom broju koji nije beskonačan. Kojem će se broju približavati suma?

Teorem 3.8 Neka je s a1 i an = q · an−1 zadan geometrijski niz i neka je q ∈ h−1, 1i.
Tada je
a1
lim Sn = . (3.12)
n→∞ 1−q
Dokaz. Potrebno je izračunati limes

1 − qn
lim Sn = lim an ·
n→∞ n→∞ 1−q
No, ako je q ∈ h−1, 1i, onda je lim q n = 0, pa tvrdnja slijedi iz linearnosti limesa.
n→∞

Fibonaccijev niz
U XIII. stoljeću poznati matematičar Leonardo Fibonacci iz Pise, bavio
se problemom povećanja broja zečeva razmnožavanjem. Problem je zadan
na sljedeći način: svaki par zečeva starih barem dva mjeseca dobiju par
zečića svaki mjesec, pri tome je uvijek jedan zečić muškog a jedan ženskog
spola. Ako smo započeli uzgoj s jednim parom novorodenih zečića, koliko
ćemo zečeva imati nakon n mjeseci? Fibonacci je dokučio da se broj zečeva
povećava prema sljedećem nizu: 1, 1, 2, 3, 5, 8, 13, 21, . . .. Odnosno prema
nizu koji se može zadati rekurzivno kao

f1 = 1, f2 = 1, fn = fn−1 + fn−2 (3.13)


82 3.7. REKURZIVNE RELACIJE

To je još jedan vrlo poznati primjer rekurzivno zadanog niza brojeva.


Naravno, i ovdje se postavlja problem pronalaženja eksplicitne jednadžbe za
opći član. Rješenje tog problema nije, medutim tako očito kao što je to bio
slučaj u prethodna dva primjera, već je za njegovo rješavanje potreban razvi-
jeniji matematički aparat. Stoga ćemo se problemu eksplicitne formule općeg
člana Fibonaccijevog niza vratiti kasnije, kada razvijemo tehnike rješavanja
rekurzivnih jednadžbi.

3.7.2 Rješavanje rekurzija - karakteristična jednadžba


Definicija 3.35 Neka su c0 , . . . , ck−1 konstante i neka je f (n) funkcija.
Tada se jednadžba

an = ck−1 · an−1 + . . . c1 · an−k+1 + c0 · an−k + f (n) (3.14)


naziva linearna nehomogena rekurzivna jednadžba k-tog reda s konstantim
koeficijentima, dok se jednadžba

an = ck−1 · an−1 + . . . c1 · an−k+1 + c0 · an−k (3.15)


zove linearna homogena rekurzivna jednadžba k-tog reda s konstantim koefi-
cijentima. Za jednadžbu 3.15 kažemo da je pripadna homogena jednadžba
jednadžbe 3.14.

Definicija 3.36 Neka je dana linearna homogena rekurzivna jednadžba


3.15. Tada se jednadžba

xk − ck · xk + . . . c1 · x + c0 = 0 (3.16)
naziva karakteristična jednadžba linearne homogene rekurzivne jednadžbe
3.15

Teorem 3.9 Neka je zadana linearna homogena rekurzivna jednadžba 3.15.


Pretpostavimo da karakteristična jednadžba linearne homogene rekurzivne
jednadžbe 3.15 ima sve jednostruke i realne korijene x1 , . . . , xk . Tada je opće
rješenje linearne homogene rekurzivne jednadžbe 3.15 oblika

an = C1 · xn1 + . . . + Ck · xnk .
Dokaz ovog teorema nećemo provoditi. Zainteresirani čitatelj dokaz može
naći u [12], str. 182.

Primjer 3.29 Izračunajmo sada eksplicitnu formulu za opći član Fibonac-


cijevog niza. Podsjetimo se da rekurzivna formula za opći član Fibonacci-
jevog niza glasi:

fn = fn−1 + fn−2 , (3.17)


POGLAVLJE 3. DISKRETNA MATEMATIKA 83

uz početne uvjete

f1 = f2 = 1. (3.18)
Karakteristična jednadžba ove rekurzije je kvadratna jednadžba

x2 − x − 1 = 0.
Stoga su korijeni ove jednadžbe
√ √
1± 1+4 1± 5
x1,2 = = ,
2 2
pa opće rješenje rekurzije 3.17 glasi:
" √ #n " √ #n
1+ 5 1− 5
fn = C1 · + C2 · . (3.19)
2 2
Vrijednosti konstanti C1 i C2 dobivamo iz početnih uvjeta. Uvrstimo li
početne uvjete u jednadžbu 3.19 dobivamo sustav jednadžbi

√ √
1+ 5 1− 5
f1 = 1 = C1 · + C2 · ,
2 2
" √ #2 " √ #2
1+ 5 1− 5
f2 = 1 = C1 · + C2 · .
2 2
(3.20)
Riješimo li ovaj sustav dobit ćemo C1 = √15 i C2 = − √15 . Dakle, opći član
Fibonaccijevog niza iznosi
" √ #n " √ #n
1 1+ 5 1 1− 5
fn = √ · −√ · .
5 2 5 2

Opisali smo kako se izračunava eksplicitna formula homogene linearne


rekurzivne jednadžbe s konstantnim koeficijentima u slučaju da su svi kori-
jeni karakteristične jednadžbe različiti i realni. Može se, medutim dogoditi
da karakteristična jednadžba ima višestruke korijene. Tada nam rješenje
daje sljedeći teorem.

Teorem 3.10 Neka je dana linearna homogena rekurzivna jednadžba k-


tog reda s konstantnim koeficijentima 3.15, te neka njena karakteristična
jednadžba ima t-struki korijen x. Tada x tvori t pribrojnika općeg rješenja
rekurzije 3.15 C1 · xn , C2 · n · xn , . . . , Ct · nt−1 · xn .
Ni ovaj teorem nećemo dokazivati. Njegov se dokaz takoder može pronaći
u [12], str. 186. Pogledajmo, rade, kako ovaj teorem funkcionira na konkret-
nom primjeru.
84 3.7. REKURZIVNE RELACIJE

Primjer 3.30 Izračunajmo eksplicitnu formulu za rekurziju

an = 5 · an−1 − 8 · an−2 + 4 · an−3 ,


uz početne uvjete a1 = 0, a2 = 2, a3 = 2.
Karakteristična jednadžba ove rekurzije je

x3 − 5 · x2 + 8 · x − 4 = 0.
Uočimo da ovu jednadžbu možemo faktorizirati na sljedeći način:

(x − 1) · (x − 2)2 = 0.
Iz posljednje formule slijedi da jednadžba ima jednostruki korijen 1 i dvo-
struki korijen 2, pa je njeno opće rješenje oblika:

an = C1 · 1n + C2 · 2n + C3 · n · 2n , (3.21)
gdje cu c1 , c2 i c3 proizvoljne konstante. Uvrstimo li početne uvjete u jed-
nadžbu 3.21 dobit ćemo sljedeći sustav:

a1 = 0 = C1 + 2 · C2 + 2 · C3
a2 = 2 = C1 + 4 · C2 + 8 · C3
a3 = 2 = C1 + 8 · C2 + 24 · C3

Rješavanjem ovog sustava dobijamo C1 = −6, C2 = 4, C3 = −1, odnosno


eksplicitnu jednadžbu općeg člana niza

an = −6 + 4 · 2n − n · 2n .
Treći je slučaj kada rekurzivna jednadžba ima konjugirano kompleks-
ne korijene. Kako govorimo o rekurzivnim jednadžbama s konstantnim re-
alnim koeficijentima, njihove su karakteristične jednadžbe se dobivaju iz-
jednačavanjem polinoma realne varijable s realnim koeficijentima sa nulom.
Prema tome, ako karakteristična jednadžba ima kompleksan korijen, on
mora činiti par korijena s njemu konjugiranim kompleksnim brojem (vidi
[7], str. 51.). Ovaj se slučaj može rješavati slično kao slučaj s realnim ko-
rijenima. Medutim, imamo li korijene z1,2 = a ± b · i, tada ta dva korijena
daju u rješenju:

C1 · (a + b · i)n + C1 · (a − b · i)n .
Primijenimo li de Moivreovu formulu dobit ćemo

C1 · |z1 |n (cos nϕ1 + i sin nϕ1 ) + C2 · |z2 |n (cos nϕ2 + i sin nϕ2 ), (3.22)
POGLAVLJE 3. DISKRETNA MATEMATIKA 85

pri čemu je

a
cos ϕ = √ ,
a + b2
2

b
sin ϕ = √ .
a2 + b2
S druge strane, kako su z1 i z2 konjugirano
√ kompleskni brojevi, njihova je
apsolutna vrijednost jednaka i iznosi a + b2 .
2

Slično, ϕ2 = −ϕ1 , pa je cos nϕ1 = cos nϕ1 i sin nϕ2 = − sin nϕ2 .
Raspišemo li formulu (3.22), uz gore navedene primjedbe pa uzmemo da je
z = z1 , ϕ = ϕ1 te da je K1 = C1 + C2 i K2 = C1 − C2 , dobit ćemo

|z|n (K1 · cos nϕ + K2 · i sin nϕ).

Primjer 3.31 Nadimo eksplicitnu formulu za opći član niza definiranog


formulom an = 2 · an−1 − 2 · an−2 , uz početne uvjete a1 = 2, a2 = 2.
Karakteristična jednadžba ove rekurzije je

x2 − 2 · x + 2 = 0
Njeni korijeni su x1,2 = 1 ± i, pa imamo
p √
|z| = 12 + 12 = 2
Nadalje,


1 2
cos ϕ = √ = ,
2
1 +12 2

1 2
sin ϕ = √ = ,
2
1 +12 2
iz čega slijedi da je
π
ϕ=
4
te da je
√ ³ π π´
an = ( 2)n · K1 · cos n + K2 · i · sin n .
4 4
Uvrstimo li početne uvjete dobivamo sustav jednadžbi

√ ³ π π´
2 = 2 · K1 · cos + K2 · i · sin ,
4 4
³√ ´2 ³ π π´
2 = 2 · K1 · cos 2 + K2 · i · sin 2 ,
4 4
86 3.7. REKURZIVNE RELACIJE

odnosno

à √ √ !
√ 2 2
2 = 2· K1 · + K2 · i · ,
2 2
2 = 2 · (K2 · i) .

Iz druge jednadžbe izlazi da je K2 = −i, a kada to uvrstimo u prvu jed-


nadžbu, dobijamo
à √ √ !
√ 2 2
2 = 2 · K1 · + ,
2 2

iz čega izlazi da je K1 = 1.
Dakle, opće rješenje ove rekurzije je
µ ¶
√ n Π Π
an = ( 2) · cos n + sin n .
4 4
Time smo opisali sve moguće slučajeve koji se javljaju kod rješavanja
linearnih homogenih rekurzivnih jednadžbi s konstantnim koeficijentima.
Sljedeći problem koji se postavlja jest problem rješavanja nehomogenih li-
nearnih rekurzivnih jednadžbi.

Teorem 3.11 Neka je zadana linearna nehomogena rekurzivna jednadžba


k-tog reda s konstantnim koeficijentima 3.14. Neka je q opće rješenje pri-
padne linearne homogene rekurzije rekurzije 3.14 te neka je p bilo koje
rješenje nehomogene linearne rekurzije 3.141 . Tada je an = q + p opće
rješenje jednadžbe 3.14.

Dokaz ovog teorema, kao i prethodna dva, može se naći u [12], str. 188.
Postavlja se problem kako pronaći partikularno rješenje? Za taj pro-
blem ne postoji neka standardna metoda no za neke je funkcije poznat oblik
partikularnog rješenja. Neke od tih funkcija dane su u sljedećoj tablici:

Funkcija f (n) Partikularno rješenje an


d A
dn A1 n + A2
dnm Pm (n) (polinom m-tog stupnja)
an A · an
Tablica 3.2

1
Obično se takvo proizvoljno rješenje naziva partikularno rješenje
POGLAVLJE 3. DISKRETNA MATEMATIKA 87

Primjer 3.32 Potrebno je pronaći rješenje rekurzivne jednadžbe

an = 2an−1 + 1,

uz uvjet da je a1 = 1.
Pripadna homogena jednadžba ove rekurzije je an = 2an−1 , a njena karak-
teristična jednadžba je

x − 2 = 0.
Korijen ove jednadžbe je x1 = 2 pa je opće rješenje pripadne homogene
rekurzivne jednadžbe

an = C · 2n .
Iz tablice pročitamo partikularno rješenje, te dobijamo da je opće rješenje
nehomogene rekurzivne jednadžbe

an = C · 2n + A.
Kako bismo pronašli partikularno rješenje, stavljamo da je

an = A.

Uvrstimo li originalnu jednadžbu za an imamo

A = an = 2an − 1 + 1 = 2A + 1.

Iz posljednjega slijedi da je A = −1. Sada imamo

an = C1 · 2n − 1.
Uvrstimo li početni uvjet, imat ćemo

1 = C1 · 2 − 1.

iz čega slijedi da je C1 = 1, odnosno

an = 2n − 1.
Nehomogene rekurzije mogu se jednostavno izračunavati i na drugi način,
bez upotrebe tablice partikularnih rješenja: svodenjem nehomogene rekurzi-
je na homogenu. Prikazat ćemo kako se to radi na rekurzijama iz prethodna
dva zadatka.

Primjer 3.33 Riješimo ponovo rekurziju iz zadatka 3.32.


Jednadžbu za n-ti član primijenimo na (n − 1)-vi član, te oduzmemo što
smo dobili od jednadžbe za n-ti član:
88 3.7. REKURZIVNE RELACIJE

an = 2an−1 + 1
an−1 = 2an−2 + 1
an − an−1 = 2an−1 − 2an−2 .

Dakle, početnu rekurziju sveli smo na homogenu rekurziju

an = 3an−1 − 2an−2 .
Karakteristična jednadžba ove rekurzije je

x2 − 3x + 2 = 0.
Korijeni ove jednadžbe su x1 = 1, x2 = 2, pa je opće rješenje rekurzije oblika:

an = C1 · 1n + C2 · 2n . (3.23)
Kako se prilikom homogenizacije povećao stupanj rekurzije, potrebno je
pronaći još jedan početni uvjet:

a2 = 2a1 + 1 = 3.
Uvrstimo li sada oba početna uvjeta u dobiveno opće rješenje i dobijamo:

1 = C1 + C2 · 2,
3 = C1 + C2 · 4.

Odavde se vidi da je C2 = −1, C2 = 1. Uvrstimo li C1 i C2 u formulu


3.23, dobivamo

an = 2n − 1.

Primjer 3.34 Riješimo još jednadžbu an = 4 · an−1 + n · 2n uz početni uvjet


a0 = 4.
Formulu za n-ti član ćemo primijeniti na (n − 1)-vi član, te ćemo tako
dobivenu formulu pomnožiti s dva i oduzeti od formule za n-ti član:

an = 4an−1 + n · 2n+1
2an−1 = 8an−2 + (n − 1) · 2n+1
an − 2an−1 = 4an−1 − 8an−2 + 2n+1 .

Dakle, dobili smo nelinearnu rekurziju:

an = 6an−1 − 8an−2 + 2n+1 .


Ponovimo istu stvar za dobivenu jednadžbu:
POGLAVLJE 3. DISKRETNA MATEMATIKA 89

an = 6an−1 − 8an−2 + 2n+1


2an−1 = 12an−2 − 16an−3 + 2n+1
an − 2an−1 = 6an−1 − 18an−2 + 16an−3 .

Dobili smo homogenu rekurziju:

an = 8an−1 − 20an−2 + 16an−3 .

Karakteristična jednadžba ove rekurzije je

x3 − 8x2 + 20x − 16 = 0.

Korijeni ove jednadžbe su x1,2 = 2, x3 = 4. Dakle, opće rješenje ove rekurzije


ima oblik:

an = C1 · 2n + C2 · n · 2n + C3 · 4n .
Za rješavanje su nam potrebna tri početna uvjeta, pa trebamo izračunati još
a1 i a2 .

a1 = 4 · 4 + 2 · 2 = 20,
a2 = 4 · 20 + 2 · 2 · 22 = 96.

Uvrštavanjem početnih uvjeta u opće rješenje dobivamo sustav jednadžbi

4 = C1 + C3
20 = 2C1 + 2C2 + 4C3
96 = 4C1 + 8C2 + 16C3

Rješenja ovog sustava su C1 = −4, C2 = −2, C3 = 8, pa opće rješenje


nehomogene rekurzije glasi:

an = −4 · 2n + −2 · n · 2n + 8 · 4n .
Prije no što krenemo na metodu rješavanja rekurzija na još jedan način,
pomoću funkcija izvodnica, opisat ćemo još jedan oblik rekurzija koje nisu
linearne, ali se mogu izračunati pomoću linearnih rekurzivnih jednadžbi.
Ove jednadžbe igraju bitnu ulogu u ocjenjivanju složenosti algoritama, jer se
vrlo često javljaju pri ocjeni složenosti algoritama koji su izvedeni metodom
podijeli pa ovladaj . Stoga se ove rekurzije često i nazivaju podijeli pa ovladaj
rekurzije. Ovdje se radi o rekurziji oblika:

an = c · a nk + f (n). (3.24)
Rekurzije se ovog tipa mogu svesti na linearne rekurzije i riješiti pomoću
karakterističnog polinoma.
90 3.7. REKURZIVNE RELACIJE

Primjer 3.35 Riješimo rekurziju an = a n2 + n uz početni uvjet a1 = 0.


Upotrijebimo li supstituciju sn = a2n , dobijamo

sn = a2n = a 2n + n = a2n−1 + n = sn−1 + n,


2

čime smo dobili linearnu nehomogenu rekurziju prvog reda. Oduzmimo jed-
nadžbu za član sn−1 od jednadžbe za član sn

sn = sn−1 + n
sn−1 = sn−2 + n − 1
sn − sn−1 = sn−1 − sn−2 + 1,

iz čega slijedi da je

sn = 2sn−1 − sn−2 + 1.
Oduzmemo li opet formulu za (n − 1)-vi član niza od formule za n-ti član,
imamo:

sn = 2sn−1 − sn−2 + 1
sn−1 = 2sn−2 − sn−3 + 1
sn − sn−1 = 2sn−1 + 3sn−2 + sn−3 .

Tako smo dobili linearnu homogenu rekurziju

sn = 3sn−1 − 3sn−2 + sn−3 .


Njena karakteristična jednadžba glasi:

x3 − 3x2 + 3x − 1 = 0.
Karakteristična jednadžba ima trostruki korijen x1,2,3 = 1, pa je opće rješe-
nje oblika

sn = C1 · 1n + C2 · n · 1n + C3 · n2 · 1n ,
odnosno

sn = C1 + C2 · n + C3 · n2 .
potrebno je pronaći tri početna uvjeta kako bismo mogli odrediti koeficijente
u općem rješenju:

s0 = a1 = 0,
s1 = a2 = a1 + 2 = 2,
s2 = a4 = a2 + 4 = 6.
POGLAVLJE 3. DISKRETNA MATEMATIKA 91

Uvrstimo li početne uvjete u opće rješenje, dobijamo

0 = C1 ,
2 = C1 + C2 + C3 ,
6 = C1 + 2C2 + 4C3 .

Iz ovog sustava slijedi da je C1 = 0, C2 , C3 = 1, tj. da je opće rješenje


izvedene rekurzivne jednadžbe

sn = n + n2 .
Vratimo se sada zadanoj rekurziji. Sada imamo:

sn = a2n = n + n2 ,
odnosno,

an = log2 n + log22 n.

3.7.3 Rješavanje rekurzivnih jednadžbi - funkcije izvodnice


Postoji još jedna metoda, pomoću koje se mogu rješavati neke rekurzivne
jednadžbe. Radi se o metodi rješavanja rekurzivnih jednadžbi pomoću poli-
noma beskonačnog stupnja tzv. funkcija izvodnica.
Neka je zadan niz a0 , a1 , a2 , . . .. Tada se funkcija izvodnica ovog reda
definira kao:

f (x) = a0 + a1 x + a2 x2 + . . .

Pogledajmo neke primjere poznatih funkcija izvodnica.

Zadatak 3.20 Dokažite da, za x 6= 1 vrijedi:

1
= 1 + x + x2 + . . . (3.25)
1−x
Jasno je da je

(1 − x)(1 + x + x2 + . . .) = 1 + x − x + x2 − x2 + . . .
= 1 + 0x + 0x2 + . . .
= 1. (3.26)

Podijelimo li lijevu i desnu stranu gornje jednadžbe s 1 − x dobit ćemo


jednadžbu 3.25
92 3.7. REKURZIVNE RELACIJE

Zadatak 3.21 Dokažite da za x 6= 1 vrijedi:


1
= 1 + 2x + 3x2 + . . . (3.27)
(1 − x)2
Deriviramo li lijevu i desnu stranu jednadžbe 3.25, dobit ćemo

1
= 1 + 2x + 3x2 + . . . (3.28)
(1 − x)2
odnosno upravo jednadžbu 3.27.

Primjer 3.36 Riješimo sada rekurziju an = 3an−1 , uz početni uvjet a0 = 1.


Oduzmemo li sljedeće dvije funkcije izvodnice:

f (x) = a0 + a1 x+ a2 x2 + ...+ an x n + . . .
3xf (x) = 3a0 x + 3a1 x2 + ...+ 3an−1 xn + . . .

dobit ćemo

f (x) − 3xf (x) = a0 + (a1 − 3a0 )x + (a2 − 3a1 )x2 + . . . + (an − 3an−1 )xn + . . .

No, kako je an = 3an − 1, vrijedi da je

f (x) − 3xf (x) = a0 .


Uvrstimo li početni uvjet, imamo

f (x)(1 − 3x) = 1,
odnosno
1
f (x) = .
1 − 3x
Koristeći jednadžbu 3.25 dobivamo

f (x) = 1 + 3x + (3x)2 + . . . + (3x)n + . . .


odnosno

f (x) = 1 + 3x + 32 x2 + . . . + 3n xn + . . . ,
pa je rješenje

an = 3n .

Zadatak 3.22 Riješite rekurziju an = 2an−1 + an−2 uz početne uvjete a0 =


3, a1 = −2 (koristite jednakost 3.27).
POGLAVLJE 3. DISKRETNA MATEMATIKA 93

Primijetimo da se ovom metodom izravno mogu rješavati samo homo-


gene linearne rekurzije, dok se nehomogene rekurzije moraju rješavati na
iste načine kako je to prikazano u prethodnom poglavlju. Nadalje, treba
napomenuti da se ovom metodom mogu rješavati samo one rekurzije za
koje, nakon oduzimanja, znamo razvoj u red.

3.8 Diskretna teorija vjerojatnosti


Teorija vjerojatnosti je novija matematička
grana, čiji počeci sežu u 17. st. Oni se vežu uz
kockarske igre te želju za izračunavanjem vjero-
jatnosti dobitka na njima. Zaslužnima za početke
teorije vjerojatnosti smatraju se B. Pascal i P. Fer-
mat. Njen brži razvoj dogada se u 19. st., rezulta-
tima koje su iznijeli Bernoulli, De Moivre i Laplace,
te rezultatima Kolmogorova i Markova u 20. st.
Diskretna teorija vjerojatnosti je onaj dio teorije
vjerojatnosti koji se odnosi na izračunavanje vjero-
Slika 3.9: Andrey Kol- jatnosti dogadaja na diskretnim, odnosno konač-
mogorov nim i prebrojivim skupovima dogadaja. Ona se
koristi u računarstvu u mnogim područjima. Ovdje posebno ističemo
korištenje diskretne teorije vjerojatnosti kod takozvanih randomiziranih al-
goritama, te kod izračunavanja prosječnog trajanja algoritma.

3.8.1 Osnove kombinatorike


Iako je kombinatorika zasebna matematička disciplina, u ovoj ćemo je knji-
zi obraditi ukratko u sklopu diskretne teorije vjerojatnosti. Ona pred-
stavlja osnovu za izračunavanje vjerojatnosti u konačnim vjerojatnosnim
prostorima. Ovdje ćemo opisati osnovne formule iz područja kombina-
torike, bez pretenzije da se te formule dokažu ili da se potpuno matematički
fundiraju. Za čitatelje koje zanima konzistentna razrada kombinatorike kao
matematičke discipline, preporučamo naslove [6], [12], te [11].

Permutacije
Prvi kombinatorni problem koji ćemo ovdje prikazati jest problem per-
mutacija. Imamo skup od n različitih elemenata. Postavlja se pitanje, na
koliko različitih načina se ti elementi mogu poredati u uredenu n-torku?
Drugim riječima, koliko različitih nizova od n elemenata, ili permutacija,
možemo načiniti od tih n brojeva? Broj permutacija dan je sljedećom for-
mulom:

P (n) = n! = n · (n − 1) · . . . · 1. (3.29)
94 3.8. DISKRETNA TEORIJA VJEROJATNOSTI

Primjer 3.37 Na koliko načina možemo poredati 5 raznobojnih kuglica u


niz?
Odgovor na ovo pitanje je:

P (5) = 5! = 120 (3.30)


Imamo li k različitih vrsta elemenata, i ako od i-te vrste imamo ni ko-
mada. Koliko ima različitih permutacija takvih elemenata?
Odgovor je

(n1 ,...,nk ) n!
Pn = .
n1 ! · . . . · nk !
Ovakve se permutacije nazivaju permutacije s ponavljanjem.

Primjer 3.38 Neka imamo 5 žutih, 4 crvene i 3 plave kuglice. Ako istoboj-
ne kuglice medusobno ne razlikujemo, na koliko se načina može napraviti
niz od tih kuglica?

12!
P 1 2(5,4,3) = = 27720.
5! · 4! · 3!

Varijacije
Drugi važan kombinatorni pojam koji ćemo ovdje definirati jest pojam va-
rijacije. Postoje dvije vrste varijacija - varijacije bez i sa ponavljanjem.
Pitanje koje se postavlja je, na neki način, proširenje pitanja koje smo
postavili kada smo govorili o permutacijama, samo što se sada niz ne tvori od
svih n elemenata, već od k elemenata. Dakle, koliko različitih nizova duljine
k možemo napraviti od n različitih elemenata, odnosno koliko postoji varija-
cija k-tog razreda od n elemenata bez ponavljanja? Odgovor je dan sljedećom
formulom:

n!
Vn(k) = . (3.31)
(n − k)!
Primjer 3.39 Od 7 vojnika potrebno je izabrati 5 i poredati ih u vrstu. Na
koliko je to načina moguće učiniti?
(5)7!
V7 = 2520
=
2!
Pretpostavimo da se ne radi o skupu, već o multiskupu, tj. da se odredeni
element može izabrati više puta. Pitanje, na koliko se načina može izabrati
k elemenata iz multiskupa, koji sadrži n različitih elemenata, je pitanje va-
rijacija n elemenata k-tog razreda s ponavljanjem. Broj različitih varijacija
k-tog razreda od n elemenata s ponavljanjem je
(k)
V n = nk . (3.32)
POGLAVLJE 3. DISKRETNA MATEMATIKA 95

Primjer 3.40 Koliko ima troznamenkastih brojeva?


Izmedu 10 različitih znamenaka koliko ima nizova od 3 znamenke?
(3)
V 10 = 103 = 1000.
No, da bismo dobili samo troznamenkaste brojeve, od tog broja moramo
oduzeti sve one kojima je prva znamenka 0. Takvih ima
(2)
V 10 = 102 = 100.
Naime, njih ima onoliko na koliko načina možemo izabrati preostale dvije
znamenke.
Dakle ukupan broj troznamenkastih brojeva je
(3) (2)
V 10 − V 10 = 1000 − 100 = 900.

Kombinacije
Posljednji kombinatorni pojam, koji ćemo definirati, je pojam kombinacija.
Pitanje koje se postavlja je pitanje izbora nekog podskupa danog skupa,
a ne niza elemenata. Dakle, želimo doznati na koliko načina se može iz
skupa od n elemenata izabrati podskup od k elemenata. Onda se govori o
kombinacijama k-tog razreda od n elemenata bez ponavljanja. Njihov broj
je
µ ¶
n n!
Cn(k) = = (3.33)
k k! · (n − k)!

Primjer 3.41 Djeci je u školi za lektiru predloženo 17 knjiga, ali oni moraju
pročitati samo 10. Koliko različitih izbora djeca mogu učiniti?
Djeca mogu učiniti

µ ¶
(10) 17
C17 =
10
17 · 16 · . . . · 2 · 1
=
10 · 9 · . . . · 1 · 7 · 6 · . . . · 1
17 · 16 · 15 · 14 · 13 · 12 · 11
=
7·6·5·4·3·2·1
= 19448

načina, što je iznenadujuće velik broj.


Posljednje što ćemo opisati u ovom poglavlju, jesu kombinacije s ponavl-
janjem. Kombinacije s ponavljanjem jesu svi multiskupovi elemenata skupa
A. Ako imamo skup A koji sadrži n elemenata, i od njih moramo načiniti
multiskup od k elemenata, onda govorimo o kombinacijama s ponavljanjem
96 3.8. DISKRETNA TEORIJA VJEROJATNOSTI

k-tog razreda od n elemenata. Ukupni broj različitih kombinacija s ponav-


ljanjem k-tog razreda od n elemenata je
µ ¶
(k) n+k−1
Cn = .
k

Primjer 3.42 Tvrtka mora kupiti 10 automobila. Ponuda se sastoji od


5 vrsti automobila. Na koliko različitih načina tvrtka može napraviti ovu
kupnju?

µ ¶
(10) 5 + 10 − 1
C5 =
10
µ ¶
14
=
10
14!
=
10! · 4!
= 1001.

Sljedeće što želimo učiniti, i što će biti vrlo korisno, jest uvesti vezu
izmedu kombinacija i binomnih koeficijenata, te uvesti neke propozicije koje
će nam opisati odnose izmedu različitih binomnih koeficijenata.

Teorem 3.12 (Binomni poučak)


n µ
X ¶
n n
(a + b) = ai bn−i .
i
i=0

Dokaz ovog teorema može se naći u [12], str. 113.


Sada ćemo samo navesti neke identitete s binomnim koeficijentima, bez
njihova
µ dokazivanja:
¶ µ ¶
n n
= , (simetrija)
i n−i
µ ¶ µ ¶
n n n−1
= , (apsorpcija)
i i i−1
µ ¶ µ ¶ µ ¶
n n−1 n−1
= + , (Pascalova formula)
i i i−1
µ ¶µ ¶ µ ¶µ ¶
n i n n−k
= , (Trinomna revizija)
i k k i−k
µ ¶
Pn n
= 2n ,
i=0 µ i ¶ µ ¶
Pr n+i n+r+1
= , (paralelna sumacija)
i=0 µ i r+1
¶ µ ¶
Pk r+i r+k+1
= , (gornja sumacija)
i=0 r r+1
POGLAVLJE 3. DISKRETNA MATEMATIKA 97

µ ¶µ ¶ µ ¶
P
m m n m+n
= , (Vandermondeova konvolucija)
i=1 i r+i m+r
µ ¶2 µ ¶
Pn n 2n
= ,
i=0 µ i ¶ µ
n
¶ µ ¶
Pm m−i n+i m+n+1
= . (Vandermondeova konv.)
i=1 r s r+s+1
Dokazi ovih identiteta mogu se pronaći u [12].

3.8.2 Osnovne definicije i teoremi diskretne teorije vjerojat-


nosti
Osnovni pojam od kojeg se kreće u teoriji vjerojatnosti jest slučajni pokus.
Slučajni pokus je pokus čiji rezultati nisu jednoznačno odredeni uvjetima
u kojima se izvodi. Primjer toga je pokus bacanja igraće kocke. Kod tog
pokusa postoji šest mogućih ishoda iz sljedećeg skupa: Ω = {1, 2, 3, 4, 5, 6}.

Definicija 3.37 Skup Ω svih mogućih ishoda naziva se skup uzoraka ili
prostor elementarnih dogadaja. Svaki element skupa Ω naziva se elementarni
dogadaj. Svaki podskup skupa Ω naziva se dogadaj.
Dogadaj je svaki rezultat slučajnog pokusa. Npr. imamo li slučajni
pokus bacanja 5 igraćih kocaka, onda se ”palo je pet šestica” smatra doga-
dajem.
Jasno je da su ∅ ⊆ Ω i Ω ⊆ Ω takoder dogadaji. Prvi se naziva nemoguć
dogadaj , a drugi siguran dogadaj .

Definicija 3.38 Dogadaji A i B se medusobno isključuju ako vrijedi da je

A ∩ B = ∅.

Definicija 3.39 Neka je Ω diskretan skup. Neka je definirano preslikavanje


P : Ω → [0, 1] sa svojstvima da je
P
• P (A) = 1,
A∈Ω

• Neka je A ∩ B = ∅. Tada je P (A ∪ B) = P (A) + P (B).

Tada se par (Ω, P ) naziva diskretni vjerojatnosni prostor .


Iz definicije diskretnog vjerojatnosnog prostora slijedi teorem koji daje
njegova osnovna svojstva:

Teorem 3.13 Neka je (Ω, P ) diskretni vjerojatnosni prostor. Tada vrijede


sljedeće tvrdnje:

1. P (∅) = 0
98 3.8. DISKRETNA TEORIJA VJEROJATNOSTI

2. Ako su A1 , . . . , An ⊆ Ω po parovima medusobno disjunktni dogadaji,


Sn P
n
onda je P ( Ai ) = P (Ai ).
i=1 i=1

3. Neka su A, B ⊆ Ω. Tada je P (A ∪ B) = P (A) + P (B) − P (A ∩ B).


4. Neka je A ∈ Ω. Tada je P (C(A)) = 1 − P (A).
5. Neka su A, B ∈ Ω. Tada je P (A\B) = P (A) − P (A ∩ B).
6. Neka su A, B ∈ Ω, A ⊆ B. Tada je P (A) ≤ P (B).
Dokaz.
1. Iz prvog svojstva vjerojatnosti iz definicije 3.39 slijedi da je P (Ω) = 1.
Naravno, skupovi Ω i ∅ su disjunktni, pa po drugom svojstvu vjero-
jatnosti iz definicije 3.39 vrijedi da je

P (Ω) + P (∅) = P (Ω ∪ ∅) = P (Ω) = 1.

Odatle slijedi da je

P (∅) = 1 − P (Ω) = 1 − 1 = 0.

2. Ovaj se dokaz može provesti indukcijom po n. Za n = 2 dokaz slijedi


izravno iz definicije 3.39.
Pretpostavimo da tvrdnja vrijedi za n ≤ k. Neka je n = k + 1. Kako
S
k
je Ak+1 ∩ Ai = ∅ za svaki i = 1, . . . , k, sigurno je ( Ai ) ∩ Ak+1 =
i=1
S
k
∅. Neka je A = Ai . Prema pretpostavci indukcije vrijedi da je
i=1
P
k
P (A) = P (Ai ). Isto tako, prema pretpostavci indukcije vrijedi da
i=1
je P (A ∪ Ak+1 ) = P (A) + P (Ak+1 ). Dakle,

k+1
[ k
[
P( Ai ) = P ( Ai ∪ Ak+1 )
i=1 i=1
= P (A ∪ Ak+1 ) = P (A) + P (Ak+1 )
k
X
= P (Ai ) + P (Ak+1 )
i=1
k+1
X
= P (Ai )
i=1

što je itrebalo dokazati.


POGLAVLJE 3. DISKRETNA MATEMATIKA 99

3. Neka je C = B\A. Tada je A ∪ B = A ∪ C i A ∩ C = ∅. Prema tome


vrijedi

P (A ∪ B) = P (A ∪ C) = P (A) + P (C) = P (A) + P (B\A). (3.34)

S druge strane, (A∩B)∪(B\A) = B, a isto tako je (A∩B)∪(B\A) = ∅,


pa je

P (B) = P ((A ∩ B) ∪ (B\A)) = P (A ∩ B) + P (B\A),

iz toga slijedi da je

P (B\A) = P (B) − P (A ∩ B). (3.35)

Uvrstimo li (3.35) u (3.34) dobit ćemo

P (A ∪ B) = P (A) + P (B) − P (A ∩ B). (3.36)

4. Znamo da je A ∪ Ac = Ω, a A ∩ Ac = ∅. Iz prve jednakosti slijedi da je

P (A ∪ Ac ) = P (Ω) = 1, (3.37)

a iz druge pak slijedi da je

P (A ∪ Ac ) = P (A) + P (Ac ).

Iz posljednjeg imamo

P (Ac ) = P (A ∪ Ac ) − P (A). (3.38)

U (3.38) uvrstimo (3.37) i dobit ćemo

P (Ac ) = 1 − P (A).

5. Očito je da vrijedi (A\B) ∪ (A ∩ B) = A, a (A\B) ∪ (A ∩ B) = ∅.


Dakle,

P (A) = P ((A\B) ∪ (A ∩ B)) = P (A\B) + P (A ∩ B)

Iz ove formule slijedi da je

P (A\B) = P (A) − P (A ∩ B).


100 3.8. DISKRETNA TEORIJA VJEROJATNOSTI

6. Imamo (B\A) ∪ A = B, a (B\A) ∩ A = ∅ pa slijedi:

P (B) = P ((B\A) ∪ A) = P (B\A) + P (A).

No, kako je prema definiciji 3.39 P (B\A) ≥ 0, slijedi da je P (B) ≥


P (A).

Propozicija 3.15 (Sylvestrova formula) Neka su Ai , i = 1, . . . , n doga-


daji na vjerojatnosnom prostoru < Ω, P >. Tada je

à n
! n
[ X X
P Ai = P (Ai ) − P (Ai ∩ Aj )
i=1 i=1 1≤i<j≤n
X
+ P (Ai ∩ Aj ∩ Ak ) − . . .
1≤i<j<k≤n
à à n
!!
\
n+1
+ (−1) P Ai .
i=1

Dokaz. Indukcijom po n. Baza indukcije:


Za n = 1 tvrdnja je trivijalna.
Korak indukcije:
Pretpostavimo da tvrdnja vrijedi da n ≤ k. Neka je sada n = k + 1.
S
n−1
Neka su skupovi B i Ci , i = 1, . . . , n definirani sa B = Ai , Ci =
i=1
Ai ∩ An .
Tada je, prema pretpostavci indukcije,

à n
!
[
P Ai = P (B ∪ An ) = P (B) + P (An ) − P (B ∩ An ). (3.39)
i=1

Isto tako, prema pretpostavci indukcije vrijedi

n−1
à Ãn−1 !!
X X \
n
P (B) = P (Ai ) − P (Ai ∩ Aj ) + . . . + (−1) P Ai .
i=1 1≤i<j≤n−1 i=1
(3.40)
S
n−1
Nadalje, B ∩ An = Ci , što, prema pretpostavci indukcije daje
i=1
POGLAVLJE 3. DISKRETNA MATEMATIKA 101

n−1
X X
P (B ∩ An ) = Ci − P (Ci ∩ Cj ) + . . .
i=1 1<leqi<j≤n−1
n−1
Ãn−1 !
X \
n
+(−1) P Ci
i=1 i=1
n−1
X
= (Ai ∩ An ) (3.41)
i=1
X
− P (Ai ∩ Aj ∩ An ) + . . .
1≤i<j≤n−1
à n
!
\
+(−1)n P Ai
i=1

Iz (3.39), (3.40) i (3.41) slijedi tvrdnja propozicije.

Primjer 3.43 Kolika je vjerojatnost da od bačenih pet jednakih igraćih


kocaka padnu barem tri šestice?
Koliko različitih rezultata tih pet kocaka mogu dati? Ovdje se želi dati
odgovor na pitanje: na koliko načina se može izabrati pet brojeva od 1-6,
ne nužno različitih? Dakle, radi se o kombinacijama s ponavljanjem:

µ ¶
(5) 10
C6 =
5
10 · 9 · 8 · 7 · 6
=
5·4·3·2·1
= 252.

Suprotan dogadaj od dogadaja da su pale barem tri šestice jest da je


palo manje od 3 šestice, tj. da su pale najviše dvije šestice. Koliko je
mogućih rezultata s najviše dvije šestice? Taj se dogadaj može rastaviti na
tri disjunktna dogadaja:

• da nije pala nijedna šestica,

• da je pala točno jedna šestica,

• da su pale dvije šestice.

Broj rezultata bez šestica je jednak broju mogućih izbora pet brojeva
izmedu brojeva 1-5, a to je
µ ¶
(5) 9
C5 = = 126
5
102 3.8. DISKRETNA TEORIJA VJEROJATNOSTI

Koliko ima rezultata bacanja 5 igraćih kockica s točno jednom šesticom?


To su svi oni dogadaji na kojima je na jednoj kockici pala šestica, dok rezul-
tate ostalih kockica možemo proizvoljno birati izmedu brojeva 1-5. Dakle,
imamo:
µ ¶
(5) 8
C4 = = 70.
4
Na kraju, imamo broj rezultata bacanja s točno dvije šestice. Slično gore
opisanome, njih ima
µ ¶
(5) 7
C3 = = 35.
3
Vjerojatnost da se ne pojavi nijedna šestica je

126
P (B0 ) = .
252
Vjerojatnost da se pojavi točno jedna šestica jest

70
P (B1 ) = .
252
I na kraju, vjerojatnost da se pojave točno dvije šestice jest

35
P (B2 ) = .
252
Konačno, označino li s B dogadaj da su pale najviše dvije šestice, imamo
da je

231
P (B) = P (B0 ) + P (B1 ) + P (B2 ) = .
252
Taj je dogadaj komplementaran našem dogadaju A koji kaže da su pale
najviše 3 šestice. Dakle, vrijedi

1
P (A) = 1 − P (B) = .
12
Gornji račun sadrži neke od važnih zakona koji vrijede za vjerojatnosti.
Isti se rezultat mogao dobiti i neposrednije. Dogadaj A se sastoji od tri
disjunktna poddogadaja:

• Palo je točno 3 šestice,

• Palo je točno 4 šestice i

• Palo je točno 5 šestica.


POGLAVLJE 3. DISKRETNA MATEMATIKA 103

Broj rezultata s 3 šestice jest


µ ¶
(2) 6
C5 = = 15,
2
broj rezultata s 4 šestice je
µ ¶
(1) 5
C5 = = 5,
1
a broj rezultata s 5 šestica je, naravno, 1. Odnosno,
µ ¶
(0) 4
C5 = = 1.
0
Označimo li s A3 dogadaj kada su pale točno 3 šestice, s A4 dogadaj da su
pale točno 4 šestice, a s A5 dogadaj kada je svih pet kocaka palo na broj
šest, imamo sljedeće vjerojatnosti:

15
P (A3 ) = ,
252
5
P (A4 ) =
252
1
P (A5 ) = .
252
Ukupno,
21 1
P (A) = P (A3 ) + P (A4 ) + P (A5 ) = = .
252 12
Primjer 3.44 Neka se bacaju četiri jednake igraće kockice. Koja je vjero-
jatnost da su bačena barem dva ista broja?
Izračunajmo, slično prethodnom zadatku, koja je vjerojatnost da su pale
barem dvije šestice.
Označimo li s A(6) dogadaj koji kaže da je palo barem dvije šestice,
prema razmatranjima iz prethodnog primjera, imat ćemo:

(6) (6) (6)


P (A(6) ) = P (A2 ) + P (A3 ) + P (A4 )
(2) (1) (0)
C5 C5 C5
= (4)
+ (4)
+ (4)
C C C
µ 6 ¶ 6µ ¶ 6 µ ¶
6 5
2 1 0
= µ ¶+µ ¶+µ ¶
9 9 9
4 4 4
15 5 1 21 1
= + + = = .
126 126 126 126 6
104 3.8. DISKRETNA TEORIJA VJEROJATNOSTI

Dakle, izračunajmo kolika je vjerojatnost da se jave dva ista broja, bez


obzira na to koji to brojevi bili?
Ako s A(i) označimo dogadaj da je na barem dvije kocke pao broj i,
slično kao za A(6) , vrijedi da je

1
P (A(1) ) = P (A(2) ) = P (A(3) ) = P (A(4) ) = P (A(5) ) = P (A(6) ) = .
6
Medutim, moramo imati na umu da se dogadaji A(i) i A(j) medusobno
ne isključuju. Naime, može se dogoditi da pri bacanju četiri igraće kockice
istovremeno padnu i dvije šestice i, recimo, dvije jedinice.
Neka imamo dogadaje A(i) i A(j) . Koja je vjerojatnost da su se ta dva
dogadaja dogodila istovremeno? Ta je vjerojatnost
1 1 1
P (A(i,j) ) = 4 =µ ¶=
C6 9 126
4
Dakle, imamo da je

n
X X
P (A) = P (A(i) ) − P (A(i,j) )
i=1 i=1,...,5,j=i+1,...,6
µ ¶
1 6 1 15 111 37
= 6· − · =1− = = .
6 2 126 126 126 42

3.8.3 Uvjetna vjerojatnost


Sljedeći vrlo važan i koristan pojam koji treba obraditi jest uvjetna vjerojat-
nost. U teoriji vjerojatnosti često želimo znati kolika je vjerojatnost nekog
dogadaja B, ako se zna da se dogodio dogadaj A. Uvjetna se vjerojatnost
dogadaja B dogadajem A označava P (B|A).

Definicija 3.40 Neka je (Ω, P ) diskretni vjerojatnosni prostor, i neka su


A, B ⊆ Ω dogadaji, pri čemu je P (A) > 0. Vjerojatnost dogadaja B uz uvjet
dogadaja A se definira kao:

P (A ∩ B)
P (B|A) = .
P (A)

Teorem 3.14 Neka je (Ω, P ) diskretni vjerojatnosni prostor, A1 . . . An , A,


B ⊆ Ω dogadaji i neka je P (A) > 0. Tada je

1. P (∅|A) = 0,

2. P (B C |A) = 1 − P (B|A),
POGLAVLJE 3. DISKRETNA MATEMATIKA 105

3. P (A1 ∪ A2 |A) = P (A1 |A) + P (A2 |A) − P (A1 ∩ A2 |A).

Dokaz. Dokaz ovog teorema provedite sami.

Primjer 3.45 Dva stroja izraduju lonce. Prvi stroj izraduje 90% ispravnih
lonaca, a drugi 85%. Od 1000 lonaca, od kojih je 500 izradeno na jednom, a
500 na drugom stroju, izabran je jedan i on je ispravan. Koja je vjerojatnost
da je on proizveden na prvom stroju?
Kao prvo, treba vidjeti koja je vjerojatnost da je izabran ispravan proi-
zvod.
9
Prvi stroj izraduje 10 ispravnih proizvoda, a drugi 1720 . Ukupan broj
9
ispravnih proizvoda je 500 · 10 + 500 · 17
20 = 875. Dakle, ako kažemo da
dogadaj A kaže da je izvučen ispravan lonac onda je

875 7
P (A) = = .
1000 8
Neka je s B označen dogadaj izvlačenja lonca proizvedenog na prvom
stroju. Sada A ∩ B znači da je izvučen ispravan proizvod proizveden na
prvom stroju pa je

450 9
P (A ∩ B) = = .
1000 20
Dakle, tražena vjerojatnost je

9
P (A ∩ B) 20 18
P (B|A) = = 7 = .
P (A) 8
35

Definicija 3.41 Neka je (Ω, P ) diskretni vjerojatnosni prostor. Kažemo da


je sustav dogadaja Ai ⊆ Ω, i = 1, 2, . . . potpun, ako vrijedi da je Ai 6= ∅ za
svako i = 1, . . . , n, te da je Ai ∩ Aj = ∅ za svaka dva i, j = 1, . . . , n, i 6= j te
S
n
da je Ai = Ω.
i=1

Može se reći da je potpun sustav dogadaja najviše prebrojiva particija


skupa elementarnih dogadaja Ω.
Gornj nam definicija omogućuje izvodenje potpune vjerojatnosti:

Teorem 3.15 (Formula potpune vjerojatnosti)


Neka je (Ai , i = 1, 2 . . .) potpun sustav dogadaja te neka je A proizvoljan
dogadaj. Tada vrijedi
X
P (A) = P (Ai ) · P (A|Ai ).
i=1,2,...
106 3.8. DISKRETNA TEORIJA VJEROJATNOSTI

Dokaz. Očito je da vrijedi

   
[ [
P (A) = P (A ∩ Ω) = P A ∩ Ai  = P  (A ∩ Ai )
i=1,2,... i=1,2,...

Nadalje, za svaki Ai , Aj , i 6= j vrijedi da je Ai ∩ Aj = ∅, pa je onda i


(A ∩ Ai ) ∩ (A ∩ Aj ) = ∅. Stoga je
X
P (A) = P (A ∩ Ai ).
i=1,2,...

No, kako je

P (A ∩ Ai )
P (A|Ai ) = ,
P (Ai )
izlazi da je

P (A ∩ Ai ) = P (Ai ) · P (A|Ai ),
pa je
X
P (A) = P (Ai ) · P (A|Ai ),
i=1,2,...

što je i trebalo dokazati.

Teorem 3.16 (Bayesova formula) Neka je (Ai , i = 1, 2, . . .) potpun su-


stav dogadaja, i neka je A proizvoljan dogadaj za koji vrijedi P (A) > 0.
Tada je

P (A ) · P (A|Ai )
P (Ai |A) = P i .
P (Ai ) · P (A|Ai )
j=1,2,...

Dokaz. Iz definicije uvjetne vjerojatnosti znamo da vrijedi

P (Ai ∩ A)
P (Ai |A) = .
P (A)

Jasno je da je

P (Ai ∩ A) = P (A ∩ Ai ) = P (Ai ) · P (A|Ai ).


Prema teoremu 3.15, vrijedi da je
X
P (A) = P (Aj ) · P (A|Aj ),
j=1,2,...
POGLAVLJE 3. DISKRETNA MATEMATIKA 107

odakle je
P (Ai ) · P (A|Ai )
P (Ai |A) = P .
P (Aj ) · P (A|Aj )
j=1,2,...

3.8.4 Slučajne varijable


Pojam slučajne varijable veže se uz rezultate slučajnog pokusa. Stoga se
slučajne varijable najčešće koriste kada se radi s ponavljanjem pokusa.

Definicija 3.42 Slučajna varijabla je svaka funkcija X : Ω → R.

Primjer 3.46 Promatramo li pokus bacanja simetričnog novčića, možemo


definirati slučajnu varijablu na sljedeći način:
½
0 ako je pala glava
X= .
1 ako je palo pismo
Sada možemo definirati vjerojatnost da, primjerice slučajna varijabla
poprimi vrijednost 1. To zapravo znači da je palo pismo prilikom bacanja
simetričnog novčića, tj.

P (X = 1) = 0.5,
P (X = 0) = 0.5.

Slučajna varijabla definirana u prethodnom primjeru je specijalni slučaj


tzv. Bernoullijeve ili binomne slučajne varijable. Binomna slučajna va-
rijabla je slučajna varijabla koja se definira nad Bernoullijevim pokusom,
tj. pokusom koji ima dva moguća ishoda, od kojih jedan ima vjerojatnost
p ∈ [0, 1], a drugi q = 1 − p. Binomna se varijabla definira na sljedeći način
½
0 ako se dogodio prvi ishod
X=
1 ako se dogodio drugi ishod
Jasno je da za binomnu slučajnu varijablu vrijedi

P (X = 1) = p,
P (X = 0) = q = 1 − p.

Sada se vidi da je slučajna varijabla, definirana u prethodnom primjeru,


binomna slučajna varijabla s vjerojatnošću p = 0, 5.
Sljedeća istaknuta slučajna varijabla je diskretna uniformna slučajna
varijabla. To je varijabla koja opisuje pokus koji ima n mogućih ishoda,
od kojih su svi jednako vjerojatni. Varijabla se definira na sljedeći način:
108 3.8. DISKRETNA TEORIJA VJEROJATNOSTI

X = i ako se pojavio i-ti ishod., i ∈ {1, . . . , n}

Jasno je da je

1
P (X = i) = za svaki i = 1, . . . , n.
n

Primjer 3.47 Neka je dana serija od 1000 proizvoda, od kojih je 20 ošte-


ćenih. Serija se kontrolira na sljedeći način: kontrolor nasumce bira 10
proizvoda i provjerava ih. Serija se smatra korektnom ako u kontrolnom
uzorku nema više od 20% neispravnih proizvoda. Kolika je vjerojatnost da
serija bude proglašena korektnom?
Ovo se može izračunati direktno, ali mogu se koristiti i slučajne varijable.
Definirajmo slučajnu varijablu X na sljedeći način:

X = k, k ∈ {0, . . . , 10},

ako se u slučajnom uzorku nalazi k neispravnih proizvoda


Pitanje iz zadatka se sada može zapisati na sljedeći način:

P (X ≤ 2) =?

Pogledajmo kolika µ je vjerojatnost


¶ da je X = k. Od 1000 proizvoda 10
1000
ih se može izabrati na načina. Na koliko načina možemo izabrati
10
10 elemenata tako da ih k bude neispravnih? Iz uzorka moramo izabrati k
neispravnih
µ ¶ i 10 − k ispravnih proizvoda. Neispravni se µ mogu izabrati
¶ na
20 980
načina, a 10 − k ispravnih se mogu izabrati na . Dakle,
k 10 − k
imamo

µ ¶ µ ¶
20 980
·
k 10 − k
P (X = k) = µ ¶
1000
10
POGLAVLJE 3. DISKRETNA MATEMATIKA 109

µ ¶ µ ¶
20 980
·
0 10
P (X = 0) = µ ¶ ≈ 0, 8163179
1000
10
µ ¶ µ ¶
20 980
·
1 9
P (X = 1) = µ ¶ ≈ 0, 1679701
1000
10
µ ¶ µ ¶
20 980
·
2 8
P (X = 2) = µ ¶ ≈ 0, 0147901
1000
10
µ ¶ µ ¶
20 980
·
3 7
P (X = 3) = µ ¶ ≈ 0, 0007296
1000
10
..
.

Iz toga slijedi da je

P (X ≤ 2) = 0, 8163179 + 0, 1679701 + 0, 0147901 ≈ 0, 9990781,

Dakle, gotovo je sigurno da će serija biti proglašena korektnom.

Slučajna varijabla iz prethodnog primjera primjer je tzv. hipergeomet-


rijske slučajne varijable Hipergeometrijska slučajna varijabla definira se kao
slučajna varijabla s m mogućih vrijednosti, pri čemu je
µ ¶ µ ¶
r n−r
·
k m−k
P (X = k) = µ ¶ .
n
m
P
Definicija 3.43 Neka je X slučajna varijabla. Neka red X(ω) · P ({ω})
ω∈Ω
apsolutno konvergira. Tada je matematičko očekivanje
X
EX = X(ω) · P ({ω}).
ω∈Ω
110 3.8. DISKRETNA TEORIJA VJEROJATNOSTI

Vratimo se sada na binomnu slučajnu varijablu. Neka je Xn slučajna


varijabla koja daje slučajni broj uspjeha kada se Bernoullijev pokus ponovi
n puta. Zanima nas kakva se vrijednost varijable Xn može očekivati? Ma-
tematičko očekivanje ove slučajne varijable je
n
X
EXn = i · P (Xn = i)
i=1

µ Kolika
¶ je vjerojatnost P (Xn = i)? Lako se vidi da je P (Xn = i) =
n
pi · q n−i . Dakle,
i
n
X µ ¶
n
EXn = i· pi q n−i (3.42)
i
i=1

Definicija 3.44 Neka je X slučajna varijabla nad diskretnim vjerojatnos-


nim prostorom (Ω, P ). Tada se njoj na jednoznačan način može pridružiti
tablica
µ ¶
a1 a2 . . . an . . .
p1 p2 . . . pn . . .
pri čemu je ai ∈ Ω, a pi = P (X = ai ). Gornja se tablica naziva distribucija
slučajne varijable X

Primjer 3.48 Bacamo li simetričan novčić 6 puta. Koliko se očekuje da


će se puta pojaviti grb? Neka je X6 slučajna varijabla koja označava broj
pojava grba u šest bacanja novčića. Distribucija ove slučajne varijable dana
je s
µ ¶
0 1 2 3 4 5 6
X6 = 1 6 15 20 15 6 1 . (3.43)
64 64 64 64 64 64 64

Prema formuli (3.42) vrijedi da je

6
X µ ¶ µ ¶6
6 1
EX6 = i· ·
i 2
i=0
= 3.

U prethodnom primjeru, u formuli (3.42) prikazana je distribucija slu-


čajne varijable X. To je uobičajen zapis distribucije diskretne slučajne va-
rijable. Npr, distribucija uniformne slučajne varijable se zapisuje kao
µ ¶
1 ... n
X= 1 .
n . . . n1
POGLAVLJE 3. DISKRETNA MATEMATIKA 111

Općenito, binomna slučajna varijabla Xn ima distribuciju

 
µ ¶0 µ ¶1 ... µ ¶n
X= n n n 
· p0 q n · p1 q n−1 . . . · pn q 0
0 1 n

pa je njeno matematičko očekivanje dano s

n
X µ ¶
n
EXn = i· pi q n−i
i
i=0
n
X µ ¶
n
= i· pi q n−i
i
i=1
n
X ¶ µ
n n−1
= i· pi q n−i
i i−1
i=1
X n µ ¶
n−1
= np pi−1 q n−i
i−1
i=1
Xµ n−1 ¶
n−1
= np pi q n−i
i
i=0
= np(p + q)n−1
= np.

Teorem 3.17 Neka je slučajna varijabla dana s

µ ¶
a1 a2 . . .
X= .
p1 p2 . . .

Tada, ako matematičko očekivanje postoji, vrijedi

X
EX = ai · pi .
ω∈Ω

P
Dokaz. Neka red X(ω) · P ({ω}) apsolutno konvergira. Tada je
ω∈Ω
112 3.8. DISKRETNA TEORIJA VJEROJATNOSTI

X
EX = X(ω) · P ({ω})
ω∈Ω
X X
= X(ω) · P ({ω})
ai
ω∈Ω
X(ω) = ai
X
= ai · P (X = Ai )
ai
X
= a i · pi .
ai

Navedimo neka svojstva matematičkog očekivanja:

Teorem 3.18 Neka su X i Y slučajne varijable, α, β ∈ R i neka je g : R → R


proizvoljna realna funkcija. Tada je:
P
1. Eg(X) = g(ai )pi ,
ai

2. E(αX + βY ) = αEX + βEY ,

Dokaz.

1. Neka matematičko očekivanje od X postoji. Tada vrijedi


X
Eg(X) = g(ω)P ({ω})
ω∈Ω
X
= g(ai )P (X = ai )
ai
X
= g(ai )pi .
ai

2. Ako X i Y imaju dobro definirano matematičko očekivanje, onda je

X
E(αX + βY ) = (αX + βY )(ω) · P ({ω})
ω∈Ω
X
= (αX(ω) + βY (ω))
ω∈Ω
X X
= α X(ω)P (ω) + β Y (ω)P (ω)
ω∈Ω ω∈Ω
= αEX + βEY.
POGLAVLJE 3. DISKRETNA MATEMATIKA 113

Time je teorem dokazan.

Primjer 3.49 Zadana je diskretna uniformna slučajna varijabla. Izraču-


najmo njeno matematičko očekivanje.
n
X 1 n+1
EX = i· =
n 2
i=0

Primjer 3.50 Izračunajmo matematičko očekivanje slučajne varijable koja


ima hipergeometrijsku distribuciju.
Imamo

µ
¶ µ ¶
r n−r
Xm ·
k m−k
EX = k· µ ¶
k=0
n
m
µ ¶ µ ¶
r n−r
Xm ·
k m−k
= k· µ ¶
k=1
n
m
Xm µ ¶ µ ¶
1 r n−r
= µ ¶ k· · .
n k m−k
k=1
m

Prema pravilu apsorpcije slijedi da je

Xm µ ¶ µ ¶
1 r r−1 n−r
EX = µ ¶ k· · ·
n k k−1 m−k
k=1
m
Xm µ ¶ µ ¶
1 r−1 n−r
= r· µ ¶ ·
n k−1 m−k
k=1
m
Xm µ ¶ µ ¶
1 r−1 n−r
= r· µ ¶ (−1) · .
n k m−k−1
k=0
m

No, kako vrijedi da je


l µ
X ¶ µ ¶ µ ¶
a b a+b
· = ,
k l−k l
k=0
114 3.8. DISKRETNA TEORIJA VJEROJATNOSTI

Izlazi da je

µ ¶
1 n−1
EX = r · µ ¶
n m−1
m
µ ¶
1 n−1
= r· µ ¶
n n−1 m−1
m m−1
m
= · r.
n
No, matematičko očekivanje nam samo daje očekivanu vrijednost slučaj-
ne varijable. Druga važna informacija koja se može izračunati jest koliki
će biti rasap vrijednosti slučajne varijable oko te očekivane vrijednosti, tj.
koliko se može očekivati da će se vrijednost u većini slučajeva udaljavati od
očekivane vrijednosti?

Definicija 3.45 Neka je X slučajna varijabla. Varijanca od X je V arX =


E[(X − EX)2 ]. √
Nadalje, standardna devijacija od X definira se kao σ X = V arX.

Primjer 3.51 Izračunajmo varijancu i standardnu devijaciju diskretne uni-


formne slučajne varijable. Njena varijanca iznosi

"µ ¶ #
n+1 2
V arX = E X−
2
Xn µ ¶
n+1 2 1
= i− ·
2 n
i=1
" n n
#
1 X 2 X (n + 1)2
= i − (n + 1) · i+ ·n
n 4
i=1 i=1
n2 − 1
= ,
12
odnosno
√ √
3 · n2 − 1
σX = .
6
Za kraj ovog poglavlja dat ćemo još jedan zanimljiv pojam - pojam
indikatorske slučajne varijable.

Definicija 3.46 Neka je A dogadaj iz Ω. Tada se indikatorska slučajna


varijabla dogadaja A definira kao
POGLAVLJE 3. DISKRETNA MATEMATIKA 115

½
1 ako se dogadaj A dogodio
I(A) = .
0 ako se dogadaj A nije dogodio

Propozicija 3.16 Neka je A dogadaj u Ω. Tada je EI(A) = P (A).


Dokaz.
EI(A) = 1 · P (A) + 0 · P (AC ) = P (A).

Primjer 3.52 Neka je X slučajna varijabla koja označava broj glava koje
su pale prilikom n bacanja simetričnog novčića.
Neka je Xi slučajna varijabla koja označuje uspjeh i-tog bacanja. Neka
je

Yi = I(X = i),

n
X
X= Yi ,
i=0
Tada je
" n # n
X X n
EX = E Yi = EYi = .
2
i=0 i=0

Ako gledamo općenitu binomnu varijablu, imat ćemo:


" n # n
X X
EXn = E Yi = EYi = np.
i=0 i=0
Ovaj smo rezultat već dobili i ranije, bez korištenja indikatorksih vari-
jabli, no uz korištenje indikatorskih varijabli, postupak dobivanja ovog rezul-
tata postao je znatno jednostavniji i kraći. Indikatorske varijable ne donose
ništa nova, no omogućuju da se neki pojmovi jednostavnije zapišu te da se
postupak dobivanja nekih rezultata osjetno skrati.

3.9 Zadaci
1. Odredite skupove A i B takve da vrijedi A ⊆ B i P (A) = P (B).

2. Odredite presjek skupova P (∅), P (P (∅)) i P (P (P (∅))).

3. Zadan je skup A = {∅}. Ispišite P (P (A)).

4. Koji su od navedenih skupova medusobno jednaki: A = {a, b}, B =


{b, a} ∪ ∅, C = {a, b} ∪ {∅}, D = {∅, a, b}, E = {a, b, ∅} ∪ {a}?
116 3.9. ZADACI

5. Zadana je relacija

ρ = {(a, b) ∈ S | a je višekratnik od b} ,
S = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

(a) Ispišite sve elemente zadane relacije.


(b) Koja svojstva ima zadana relacija (refleksivnost, simetričnost, an-
tisimetričnost, tranzitivnost)?
(c) Da li je ρ relacija ekvivalencije?
(d) Da li je ρ relacija parcijalnog uredaja?

6. Zadana je relacija ({1, 2, 3, 4, 6}, |}) gdje a|b označava da a dijeli b.

(a) Ispišite sve elemente relacije.


(b) Provjerite da li je tom relacijom zadana relacija parcijalnog ure-
daja.
(c) Prikažite relaciju pomoću skupa uredenih parova.
(d) Prikažite relaciju pomoću usmjerenog grafa.
(e) Prikažite relaciju pomoću Hasseovog dijagrama.

7. Zadan je skup točaka u ravnini bez ishodišta. Za a, b ∈ S definiramo


a ∼ b ako je a = b ili ako a i b leže na pravcu kroz ishodište.

(a) Dokažite da je ∼ relacija ekvivalencije.


(b) Nadite klase ekvivalencije zadane relacije.

8. Neka su R1 i R2 refleksivne i simetrične relacije na A. Provjerite jesu


li tada i R1 ∩ R2 i R1 ∪ R2 refleksivne i simetrične relacije na A?

9. (a) Može li relacija istodobno biti relacija ekvivalencije i relacija par-


cijalnog uredaja?
(b) Da li je relacija okomitosti na skupu svih pravaca u ravnini rela-
cija ekvivalencije?
Obrazložite svoje odgovore.

10. Neka je R relacija ekvivalencije na A, a S relacija ekvivalencije na


B. Definiramo ((a2 , b1 ), (a2 , b2 )) ∈ T ako i samo ako je (a1 , a2 ) ∈ R i
(b1 , b2 ) ∈ S.
Dokažite da je T relacija ekvivalencije na A × B.
POGLAVLJE 3. DISKRETNA MATEMATIKA 117

11. Neka je A = Z 2 . Za a = (a1 , a2 ) b = (b1 , b2 ) iz A definiramo

a ¹ b ⇔ a1 + a2 ≤ b1 + b2 .

Pokažite da je ¹ parcijalni uredaj na A. Da li je ovo totalni uredaj?

12. Napišite sve moguće relacije na skupu A = {1, 2}.

13. Na skupu S = {a, b, c} napišite jednu relaciju ekvivalencije i jednu


relaciju parcijalnog uredaja.

14. Rješite sustav:

x ≡ 2(mod 7)
x ≡ 7(mod 11)
x ≡ 5(mod 13).

15. Rješite sustav:

x ≡ 3(mod 10)
x ≡ 8(mod 15)
x ≡ 5(mod 84).

(Primijetite da 5,15, 84 nisu po parovima relativno prosti.)

16. Neka je A = {1, 2} i B = {a, b, c}

(a) Ispišite sve funkcije iz A u B te iz B u A.


(b) Nadite sve injekcije iz A u B.
(c) Nadite sve surjekcije iz A u B.
(d) Postoji li bijekcija izmedu ova dva skupa?

17. Ako je k(A) = m i k(B) = n, koliko ima različitih funkcija iz A u B?

18. Neka je bxc najveći cijeli broj manji od x. Definiramo funkciju f :


R → R formulom f (x) = x − bxc.

(a) Ispitajte je li f injekcija.


(b) Ispitajte je li f surjekcija.

19. Nadite barem jednu bijekciju f :< 0, 1 >→ R koja osigurava da <
0, 1 > i R imaju jednak kardinalni broj.
118 3.9. ZADACI

20. Neka je

A = {a1 , a2 , a3 , a4 } i
ρ = {(a1 , a1 ), (a2 , a1 ), (a2 , a2 ), (a2 , a3 ), (a2 , a4 ), (a3 , a3 ), (a3 , a4 ),
(a4 , a4 )}.

(a) Odredite matricu susjedstva za ρ.


(b) Pokažite sa je ρ relacija parcijalnog, ali ne i linearnog uredaja.

21. Pretpostavimo da je ρ tranzitivna relacija na A × A. Je li obrat ρ od


ρ takoder tranzitivna relacija? Ako nije pronadite protuprimjer.

22. Na skupu A = {0, 1, 2, 3} je zadana relacija

(a) ρ1 = {(i, j) : i + j = 3},


(b) ρ2 = {(i, j) : i + j ≤ 4}.

Ispitajte jesu li to relacije kvaziuredaja.


Jesu li to relacije parcijalnog uredaja?
Nacrtajte Hasseov dijagram tih relacija.

23. Dokažite da ako je ρ relacija totalnog uredaja na A, tada je ρ ∪ ρ =


A × A.

24. Dokažite da ako je ρ relacija totalnog uredaja i M njena matrica sus-


jedstva onda je M + M > = I (jedinična matrica).

25. Dokažite da kod zbrajanja modulo 2 vrijedi (a + b)2 = a2 + b2 .

26. Dokažite sa otvoreni intervali < 1, 2 > i < 0, +∞ > imaju jednake
kardinalne brojeve.

27. Neka su f : A → B i g : B → C funkcije. Dokažite

(a) Ako je f bijekcija, onda je i f −1 bijekcija.


(b) Ako f raste onda i f −1 raste.
(c) Ako su f i g bijekcije, onda je i f ◦ g bijekcija.
(d) Ako je g ◦ f bijekcija i f surjekcija, onda je i g bijekcija.

28. Nadite sve elemente iz Z6 , Z7 i Z8 koji imaju inverze s obzirom na


množenje.

29. Dokažite pomoću matematičke indukcije da skup koji se sastoji od n


elemenata ima 2n podskupova.
POGLAVLJE 3. DISKRETNA MATEMATIKA 119

30. Nadite kontraprimjer za jednakost

(A ∪ B) ∩ C = A ∪ (B ∩ C).
S T
31. Neka je za svaki n ∈ N, An = {n}. Što je , a što ?
n∈N n∈N

32. Koje su od sljedećih funkcija bijekcije?

(a) f : R → R, f (x) = 3x − 1
(b) f : R → R, f (x) = 2x3
(c) f : R → R, f (x) = x4
(d) f : R → R × R, f (x) = (x, x)
(e) f : Z × Z → Z, f (m, n) = m − n
(f) f : R+ → R, f (x) = log x − 2

33. Neka je S skup svih binarnih nizova, tj. beskonačnih nizova koji se
sastoje od nula i jedinica. Pokažite da je S neprebrojivo beskonačan.

34. Pomoću metode karakteristične jednadžbe pronadite eksplicitni zapis


sljedećih rekurzivnih jednadžbi:

(a) an = 3 · an−1 , a0 = 1
(b) an = 4 · an−1 − an−2 − 6 · an−3 , a0 = 0, a1 = 1, a2 = 17
(c) an = 2 · an−1 − an−2 , a0 = 0, a1 = 1
(d) an = −an−1 − an−2 , a0 = 0, a1 = 1
(e) an = an−1 + an−2 + 2 + 4 · n, a0 = 0, a1 = 1
(f) an = 2 · an−1 − 3 · an−2 + 3, a0 = 1, a1 = 1
(g) an = a n2 + 2 · n + 3, a1 = 1

35. Pokušajte riješiti prethodne zadatke pomoću funkcija izvodnica.

36. Bakterije se razvijaju prema shemi: svaka živi jedan sat i svakih pola
sata daje jednu novu bakteriju (dakle, svega dvije tijekom života).
Koliko je potomstvo jedne bakterije nakon 48 sati?

37. Na vojnoj paradi sudjeluje 10 jedinica. Ako su jedinice poredane jedna


za drugom, na koliko načina možemo poredati jedinice na paradi?

38. U selu ima 10 mladića i 8 djevojaka. Na koliko se načina oni mogu


spojiti u parove, tako da svaka djevojka ima jednog momka?

39. Imamo po tri kuglice crvene, plave i žute boje. Na koliko načina ih
možemo razvrstati u tri kutije tako da u svakoj kutiji budu točno tri
kuglice?
120 3.9. ZADACI

40. Na koliko se različitih načina čovjek može popeti uz n stepenica, ako


odjednom može zakoračiti na jednu ili dvije stepenice? Dva uspinjanja
smatramo jednakim ako smo kročili na točno iste stepenice.

41. Komunikacijskim kanalom mogu se prenijeti poruke sastavljene od


triju simbola: a = ·, b = + i c = −. Dopustive su one poruke kod
kojih se na susjednim mjestima ne pojavljuje simbol a. Koliko ima
dopustivih poruka duljine n?

42. Na koliko n pravaca najviše dijelova dijeli kružnicu?

43. Od 8 žena i 4 muškarca treba izabrati delegaciju. Na koliko se načina


može izabrati:

(a) Petero ljudi od kojih su barem dvije žene?


(b) Šestero ljudi, po troje istog spola?
(c) Bilo koji broj ljudi, uz uvjet da mora biti jednak broj muških i
ženskih osoba?

44. U neprozirnoj vreći nalazi se devet obojenih kuglica: tri crvene, tri
žute i tri plave. Izvlačimo tri kuglice. Kolika je vjerojatnost da sve tri
izvučene kuglice budu iste boje?

45. U košari se nalazi 20 jabuka, 10 crvenih i 10 žutih. Zna se da crvene


jabuke trule brže od žutih i da je 20% crvenih jabuka trulo, a 10%
žutih. Ako nasumce uzmemo 5 jabuka, i ako je od njih jedna trula,
kolika je vjerojatnost da trula jabuka bude žuta?

46. Imamo 50 žutih i 50 crvenih sijalica u istoj kutiji. 10% posto žutih i
15% crvenih sijalica ne radi. Iz kutije izvlačimo 10 sijalica i njih 3 ne
radi. Koja je vjerojatnost da su sve pokvarene sijalice crvene?

47. Lovac puca na glinene golubove. Na svakog goluba može ispaliti dva
metka. Vjerojatnost pogotka svakim metkom jest 20%. Lovac puca na
10 golubova. Koliko se očekuje da će lovac pogoditi golubova? Kolika
je standardna devijacija matematičkog očekivanja?

48. Ljut na dvorskog matematičara car naredi da se donese n urni, n crnih


i n bijelih kuglica. Matematičar mora rasporediti sve kuglice u urne
tako da u svakoj urni bude barem jedna kuglica. Dvorski će krvnik
nasumce odabrati jednu od tih urni i slučajno izvući jednu kuglicu.
Ako izvuče bijelu, car će pomilovati matematičara, a ako izvuče crnu,
bit će pogubljen. Kako matematičar treba rasporediti kuglice da ima
najveće izglede da preživi? Nadite optimalan raspored i vjerojatnost
pomilovanja. Za koji najmanji n matematičar ima bar 90% izgleda da
preživi?
POGLAVLJE 3. DISKRETNA MATEMATIKA 121

49. Meta se gada četiri puta uz vjerojatnost pogotka od 0,8. Neka je X


slučajna varijabla čija je vrijednost broj pogodaka u metu. Pronadite

(a) distribuciju za X,
(b) P (1 ≤ X ≤ 3).

50. Pokus se sastoji od bacanja nesimetričnog novčića, na kojemu vjero-


jatnost da se pojavi glava iznosi p. Neka se pokus sastoji od n bacanja
novčića. Korištenjem indikatorske varijable izračunajte vjerojatnost
da se glava pojavila najmanje k puta.

3.10 Projekti
1. Promatrajte relacije na S × S i njima pridružene matrice susjedstva.
Relaciji ρ pridružena je matrica M (ρ). Na matricama definiramo
Booleovu aritmetiku (zbrajanje i množenje modulo 2). Pokažite kako
se kompozicija relacija povezuje s operacijama na njima pripadnim ma-
tricama. Interpretirajte na isti način inverz relacije. U kakvoj su vezi
svojstva relacija (refleksivnost, tranzitivnost) te odnos M (ρ) i M 2 (ρ).
(Uputa: upotrijebite literaturu [3])

2. Upotrebom aritmetike modulo 3,7,12 i 100 može se napraviti algoritam


za izračunavanje dana u tjednu za bilo koji datum od 1900. do 2100.
godine. Objasnite taj algoritam.
122 3.10. PROJEKTI
Bibliografija

[1] Cormen, T. H.; Lieserson, C. E,; Rivest, R. L.; Stein, C.: Introduction
to Algorithms, 2nd edition, The MIT Press, Cambrige, 2001.

[2] Devlin, K.: Sets, Functions and Logic, Chapman & Hall/CRC, New
York, 2004.

[3] Dymaček, W.M.; Sharp, H.: Introduction to Discrete Mathematics,


WBC/McGraw-Hill, International Editions, New York, 1998.

[4] Divjak, B.; Hunjak, T.: Matematika za informatičare, TIVA-FOI,


Varaždin, 2004.

[5] Goodaire, E.G.; Parmenter, M.M.: Discrete Mathematics with Graph


Theory , Prentice-Hall, Upper Side River, 1998.

[6] Lipschutz, S.; Schiller, J.J.: Finite Mathematics, 2nd ed., Schaumm’s
Outline Series, McGrow-Hill, New York, 1995.

[7] Pavković, B., Dakić, B.: Polinomi, Školska knjiga, Zagreb, 1987.

[8] Sarapa, N.: Teorija vjerojatnosti, Školska knjiga, Zagreb, 1987.

[9] Shen, A.; Vereschchagin: Basic Set Theory, AMS, 2002.

[10] Šikić, Z: Kako je stvarana novovijekovna matematimka, Školska knjiga,


Zagreb, 1989.

[11] Tucker, A.: Applied Combinatorics, 3rd edition, John Wiley & Sons,
New York, 1995.

[12] Veljan, D.: Kombinatorika s teorijom grafova, Školska knjiga, Zagreb,


1989.

[13] Whitesitt, J. E.: Boolen Algebra and Its Application, Dover Publica-
tions, Inc. New York, 1992.

[14] Wilf, H. S. (1994): Algorithms and Complexity, Internet edition,


ftp://ftp.cis.upenn.edu/pub/wilf/AlgComp.ps.Z

123
124 BIBLIOGRAFIJA
Poglavlje 4

Algoritmi

Može se činiti da smo dostigli granice


mogućeg u računalnoj tehnologiji.
Ipak, s takvim izjavama treba biti
oprezan, jer bi mogle zvučati smiješno
za pet godina.
John von Neumann (izrekao 1949.)

4.1 Pojam algoritma


Algoritam je striktno definirani postupak koji
daje rješenje nekog problema. Iako se pojam al-
goritma koristi intenzivno u posljednje vrijeme,
odnosno od pojave računala, on je nastao mnogo
ranije, prvenstveno u matematici. Prvi značajni
algoritam, koji se još i danas koristi, nastao je
još u 3. st. prije naše ere. Taj je algoritam poz-
nat kao Euklidov algoritam jer ga je prvi opisao
grčki matematičar Euklid u svojoj knjizi ”Ele-
menti” (Στ oιχεια). Sam naziv dolazi od imena
Iranskog matematičara Abu Ja’far Mohammed ibn
Mûsâ al-Khowârizmı̂ koji je 825. godine napisao
knjigu pod nazivom ”Pravila restoracije i reduk- Slika 4.1: Donald Erwin
cije”. Knuth
D.E. Knuth (1938-) je dao pet svojstava koja algoritam mora zadovoljavati:
1. Konačnost. Algoritam mora završiti nakon izvršenih konačno mnogo
koraka. Takoder, algoritam mora biti opisan pomoću konačnog broja
operacija, a i svaka operacija mora biti konačne duljine.
2. Definitnost. Svaki korak algoritma mora sadržavati nedvosmislene,
rigorozno definirane operacije.

125
126 4.1. POJAM ALGORITMA

3. Ulaz. Svaki algoritam mora imati 0 ili više ulaza.

4. Izlaz. Svaki algoritam mora imati 1 ili više izlaza.

5. Efektivnost. Algoritam mora biti efektivan, tj. mora biti takav da


se može izvesti samo uz pomoć olovke i papira u konačno vrijeme.

Treba napomenuti da je algoritam intuitivni pojam te da ga već go-


dinama matematičari pokušavaju striktno defini-
rati. Postoji čitav niz različitih pokušaja formali-
zacije pojma algoritma. Medutim, do danas nije
dokazano da li je ijedna od tih formalizacija ko-
rektna. Postoji tek tvrdnja, poznata kao Chur-
chova teza ili Churchova hipoteza koja kaže da su
λ-račun, Turingov stroj, logika Hornovih klauzula
itd, dobro definirani modeli algoritma. Ova tvrd-
nja, medutim, nikada nije dokazana.
Bez obzira na to, može se reći da je algoritam
postupak za rješavanje nekog masovnog problema.
Slika 4.2: Alonzo Church Masovni problem je općenito pitanje na koje je
potrebno naći odgovor, a koje obično ima parametre koji kod zadavnja pro-
blema ostaju neodredeni. Upravo zbog toga što parametri masovnog pro-
blema ostaju neodredeni, za problem kažemo da je masovan. Pri definiciji
masovnog problema potrebno je zadati:

1. generalni opis svih parametara,

2. ograničenja koja rješenje masovnog problema mora zadovoljavati.

Specificiranjem svih parametara masovnog problema dobivamo instancu


problema.
Za algoritam kažemo da rješava masovni problem ako daje rješenje za
svaku pojedinu instancu problema.
Kao primjer opišimo jedan od najstarijih i najpoznatijih algoritama,
već ranije spomenuti Euklidov algoritam za pronalaženje najveće zajedničke
mjere dvaju prirodnih brojeva.

Algoritam 4.1 (Euklidov algoritam)


ULAZ: Dva prirodna broja a i b.
IZLAZ: Najveća zajednička mjera M (a, b) brojeva a i b.

1. Ako je a < b zamijeni a i b.

2. r := a mod b.

3. a := b, b := r.
POGLAVLJE 4. ALGORITMI 127

4. Ako je r 6= 0 idi na 2.

5. Vrati a.

Postavlja se pitanje kako možemo biti sigurni da je algoritam ispravan?


Potrebno je formalno dokazati da je ovaj algoritam korektan. To znači da
treba dokazati da će za svaka dva broja ovaj algoritam dati rješenje nakon
konačnog broja koraka, a da će dano rješenje zaista biti najveća zajednička
mjera tih dvaju brojeva.

Lema 4.1 Neka su a, b, r ∈ N. Ako je a = b·q+r, onda je M (a, b) = M (b, r).


Dokaz. Napomenimo na početku da brojevi a i b moraju biti različiti
od 0, jer u suprotnom njihova najveća zajednička mjera nije definirana.
M (b, r) mora biti djeljivo s b i s r po definiciji zajedničke mjere. No onda
je M (b, r) djeljivo s bq+r = a. Dakle, M (b, r) je zajednička mjera brojeva a i
b. Općenito, kako je M (a, b) najveća zajednička mjera brojeva a i b, a M (b, r)
je takoder zajednička mjera tih brojeva, sigurno je M (a, b) ≥ M (b, r).
S druge strane, M (a, b) dijeli a i b, pa onda dijeli i a − qb = r. Dakle,
M (a, b) je zajednička mjera brojeva b i r. No kako je M (b, r) najveća mjera
tih dvaju brojeva, onda je M (a, b) ≤ M (b, r).
Zajedno izlazi da je M (a, b) = M (b, r) što je i trebalo dokazati.

Propozicija 4.1 Algoritam 4.1 će uvijek završiti, a kada završi vratit će
najveću zajedničku mjeru brojeva s ulaza.
Dokaz. Prvo dokažimo da algoritam završava. Primijetimo da je ostatak
od dijeljenja uvijek manji od djelitelja. Stoga je r uvijek manji od b, tako
da se b uvijek smanjuje barem za 1. S druge strane, ostatak kod dijeljenja
uvijek je prirodan broj ili 0. Zbog ove dvije činjenice nakon najviše b koraka
r mora postati 0 i u tom trenutku algoritam će stati.
Drugo što trebamo dokazati jest točnost rješenja koje algoritam daje.
Ovaj dokaz ide indukcijom po broju prolaza kroz korake od 2 do 4.
Baza indukcije: ako je u prvom koraku r = 0, onda broj a djeljiv s b,
pa je njihova najveća zajednička mjera broj b, a to je upravo ono što će
algoritam vratiti u ovom slučaju.
Korak indukcije: pretpostavimo da tvrdnja vrijedi kada se do rješenja
dode u najviše k prolaza.
Pretpostavimo da je algoritam završio u k + 1 prolazu. Prema lemi 4.1

M (a, b) = M (b, r), a = q · b + r. (4.1)


No, prema pretpostavci indukcije, kako je mjera od b i r nadena u k
prolaza, vrijedi da je algoritam pronašao mjeru brojeva b i r, a onda prema
tvrdnji 4.1 vrijedi da je nadeni broj ujedno i najveća zajednička mjera bro-
jeva a i b.
128 4.1. POJAM ALGORITMA

Primijetimo da svaka dva prirodna broja imaju jedinstvenu najveću za-


jedničku mjeru.

Zadatak 4.1 Dokažite postojanje i jedinstvenost najveće zajedničke mjere


dvaju prirodnih brojeva.

Najveća zajednička mjera se, na isti način kao što je definirana za pri-
rodne brojeve, može definirati i za polinome. Štoviše, tom slučaju za njeno
pronalaženje možemo primijeniti algoritam analogan Euklidovom algoritmu
za brojeve. Više o tome može se naći u [8]
Sljedeći algoritam, koji ćemo ovdje obraditi jest Hornerov algoritam ili
Hornerova shema. To je algoritam koji izračunava vrijednost polinoma u
zadanoj točki. Prije negoli zapišemo ovaj algoritam, dokazat ćemo nje-
govu ispravnost. Nas Hornerov algoritam prvenstveno zanima s aspekta
izračunavanja vrijednosti polinoma u zadanoj točki, no sam Hornerov algo-
ritam ima i druge aspekte. Više o tome možete naći u [8].
Polinom n-tog stupnja je funkcija oblika

Pn (x) = an xn + an−1 xn−1 + . . . + a1 x + a0 .


Izlučimo li iz prvih n pribrojnika gornjeg polinoma x, dobit ćemo

Pn (x) = (an xn−1 + an−1 xn−2 + . . . + a1 )x + a0 .


Ponovimo li ovaj postupak na prvih n − 1 pribrojnika unutar zagrade,
imat ćemo

Pn (x) = ((an xn−2 + an−1 xn−3 + . . . + a2 )x + a1 )x + a0 .


Ponovimo li ovaj postupak još n − 3 puta konačno dobivamo

Pn (x) = ((. . . ((an x + an−1 )x + an−2 ) + . . . + a2 )x + a1 )x + a0 .

Ovaj se oblik polinoma naziva Hornerova shema. Sljedeći algoritam


izračunava vrijednost polinoma Pn (x) u točki x koristeći posljednji oblik
polinoma.

Algoritam 4.2 (Hornerov algoritam)


ULAZ: Broj x ∈ R
IZLAZ: Vrijednost P (x) = an xn + an−1 xn−1 + . . . + a1 x + a0

1. i := n − 1, p := an .

2. p := p · x + ai .

3. i := i − 1.
POGLAVLJE 4. ALGORITMI 129

4. Ako je i ≥ 0 idi na 2.

5. Vrati p.

Postavlja se pitanje čemu koristiti Hornerov algoritam kada se vrijed-


nost polinoma može izračunati i iz njegovog uobičajenog oblika sljedećim
algoritmom:

Algoritam 4.3
ULAZ: Broj x ∈ R
IZLAZ: Vrijednost P (x) = an xn + an−1 xn−1 + . . . + a1 x + a0

1. i := 0, p := 0

2. p := p + ai · xi

3. i := i + 1

4. Ako je i ≤ n idi na 2

5. Vrati p.

Korektnost ovog algoritma je očita. Usporedimo sada ova dva algo-


ritma za pronalaženje vrijednosti polinoma. Usporedivat ćemo ih po broju
računskih operacija koje trebaju izvesti da bi izračunali rješenje. Pri tome
nećemo uračunavati računske operacije potrebne za povećanje, odnosno sma-
njenje brojača i. To i tako nije važno, jer prvi algoritam ima n smanjenja,
a drugi n + 1 povećanje brojača i, što je zanemariva razlika.
Algoritam 4.2 prolazi kroz korake od 2 do 4 točno n puta. U svakom
prolazu on u koraku 2 napravi jedno zbrajanje i jedno množenje. To ukupno
daje n zbrajanja i n množenja.
Algoritam 4.3 pak prolazi n + 1 puta kroz korake 2 do 4. U svakom pro-
lazu on u koraku 2 napravi jedno zbrajanje, jedno množenje i jedno poten-
ciranje. Bez veće pogreške, potenciranje se može shvatiti kao niz uzastopnih
množenja. Pri tome izračunavanje x0 i x1 ne zahtjeva nijedno množenje,
P
n−1
dok za i > 1 xi zahtjeva i − 1 množenje. To ukupno daje i = (n−1)n
2
i=1
množenja. Dakle, algoritam 4.3 zahtijeva n + 1 zbrajanje i (n + 1) + (n−1)n
2
množenja. Broj množenja u ovom algoritmu raste kvadratno i veći je od
broja množenja u Hornerovu algoritmu za svaki n ∈ N.
Primijetimo da se u algoritmu 4.3 izračunavaju sve veće i veće poten-
cije istog broja x. Jasno je da se svaka sljedeća potencija može izračunati
množenjem potencije dobivene u prethodnom koraku s x, tj. xi = xi−1 · x.
Ovakav će pristup znatno smanjiti broj množenja u algoritmu. Ugradiva-
njem ove ideje u algoritam 4.3 dobit ćemo sljedeći algoritam:
130 4.2. SLOŽENOST ALGORITAMA

Algoritam 4.4
ULAZ: Broj x ∈ R
IZLAZ: Vrijednost P (x) = an xn + an−1 xn−1 + . . . + a1 x + a0

1. i := 0, p := 0, y := 1.

2. p := p + ai · y.

3. i := i + 1, y := y · x.

4. Ako je i ≤ n idi na 2.

5. Vrati p.

Pogledajmo sada broj množenja i zbrajanja u ovom algoritmu. I opet


broj prolaza kroz korake 2 do 4 bit će n + 1. U svakom prolazu imamo
jedno zbrajanje u koraku 2. Isto tako imamo jedno množenje u koraku 2,
ali i jedno množenje u koraku 3. To daje ukupno n + 1 zbrajanja i 2n + 2
množenja, što je daleko bolje nego kod algoritma 4.3, ali još uvijek više nego
dvostruko lošije nego kod algoritma 4.2.
Cilj ove analize jest pronaći broj operacija koje algoritam mora izvesti
kako bi izračunao rješenje. Smatrat ćemo da je bolji onaj algoritam koji
izvodi manje operacija, jer će on i brže završiti. Stoga je Hornerov algoritam
superioran nad preostala dva, i to je razlog zbog čega se on koristi.
Ova nas analiza uvodi u sljedeće poglavlje koje će se baviti složenošću al-
goritama, tj. mjerom pomoću koje će se moći usporedivati različiti algoritmi
koji rješavaju isti problem.

4.2 Složenost algoritama


U prošlom smo poglavlju vidjeli da se za isti problem mogu dati različiti
algoritmi. Ako su dana dva ili više algoritma, koja rješavaju isti masovni
problem, prirodno se postavlja pitanje koji od njih izabrati i koristiti. Zbog
toga je potrebno odrediti mjeru kakvoće algoritma, kako bismo pri izboru
mogli izabrati onaj algoritam koji je bolji. U ovom ćemo se poglavlju baviti
upravo mjerenjem kakvoće algoritama.
Kako mjeriti kakvoću pojedinog algoritma, odnosno što treba mjeriti
da bi se dobila kakvoća algoritma? Ono što se mjeri jest količina resursa
koje algoritam treba da bi riješio problem. Dvije mjere koje se najčešće
koriste za odredivanje kakvoće algoritma jesu vrijeme potrebno za izvršenje
algoritma i prostor potreban za pohranjivanje ulaznih i izlaznih rezultata,
kao i medurezultata. Prva od ovih dviju mjera zove se vremenska složenost
algoritma, a druga se zove prostorna složenost algoritma. U ovom ćemo
se poglavlju, medutim, baviti samo vremenskom složenošću algoritama, jer
je ona mjera koja se najčešće koristi za ocjenjivanje kakvoće algoritama.
POGLAVLJE 4. ALGORITMI 131

Prostorna se složenost koristi mnogo rijede. Za to postoje razlozi u koje


sada nećemo ulaziti.
Prvi problem koji se javlja kod odredivanja vremenske složenosti algo-
ritma jest kako naći mjeru koja neće ovisiti o brzini računala na kojem se
algoritam izvodi, već samo o samom algoritmu. Vrijeme potrebno algoritmu
da izračuna rješenje znatno će ovisiti o brzini računala na kojem se algoritam
izvodi. Tako, uzmemo li vrijeme trajanja dvaju algoritama, takva će mjera
vrijediti jedino ako se oba algoritma izvode na istom računalu. Medutim,
takva mjera ne bi općenito mnogo značila. Mjera koju želimo izvesti jest
takva da ona ne ovisi o računalu, već samo o algoritmu. Na taj bismo način
dobili mjeru koja bi imala apsolutno značenje.
Stoga se vremenska složenost ne izražava vremenom potrebnim da algo-
ritam izračuna rezultat, već brojem elementarnih operacija koje algoritam
mora izvesti da bi izračunao rješenje. Brža računala izvode elementarne
operacije brže od sporijih. No, radi li se o računalima koja imaju procesore
iste arhitekture, koji se tek razlikuju u brzini internog sata, onda će broj
operacija koje algoritam mora izvesti biti isti. Naravno, radi li se o različitim
procesorima, i broj će se elementarnih operacija razlikovati. No, ove će raz-
like biti neznatne: broj elementarnih operacija razlikovat će se najviše za
neku multiplikativnu konstantu.

složenost
fmax

favg

fmin

n0 Duljina
ulaza
Slika 4.3

Sljedeći problem je što broj operacija koje izvodi algoritam nije fiksan,
već ovisi o veličini ulaza. Dakle, instance problema različitih dimenzija za-
132 4.2. SLOŽENOST ALGORITAMA

htjevat će različit broj elementarnih operacija za obradu. Medutim, masovni


problem može imati i različite instance iste duljine, čija vremenska složenost
ne mora biti jednaka. Dakle, složenost algoritma nije funkcija veličine ulaza
(vidi sliku 4.3.)
Stoga se ocjena složenosti vezuje uz odredenu instancu problema. Naj-
češće se koristi ocjena složenosti najgoreg slučaja. Pri tome se ocjenjuje
složenost one instance problema odredene duljine za čiju obradu algoritam
treba najviše vremena. Druga mogućnost, koja nije tako značajna jest ocje-
na složenosti najboljeg slučaja. Treća, najbolja, ali i najsloženija za izra-
čunavanje, jest ocjena složenosti prosječnog slučaja. Ova složenost nam
opisuje kako će se u prosjeku algoritam ponašati. Dok se prve dvije složenosti
vezuju za jednu instancu problema, u posljednjoj je potrebno u obzir uzeti
sve instance problema odredene duljine ulaza, te svakoj od njih pridružiti
vjerojatnost pojavljivanja. Odabirom jedne od ove tri moguće složenosti,
dobijamo funkciju složenosti algoritma u ovisnosti o duljini ulaza.
No, sama složenost, bez obzira radi li se o maksimalnoj, minimalnoj ili
prosječnoj, može biti funkcija koja nije analitička, a ako i jest analitička,
može zahtjevati vrlo složenu formulu za prikaz. Podsjetimo se: analitička
je ona funkcija koja se može prikazati formulom izgradenom pomoću arit-
metičkih operacija i transcedentnih funkcija. S druge strane, želimo aproksi-
mativno izraziti složenost, a ne točno. Naime, točan broj operacija je vrlo
teško izračunati, a i taj račun ne bi dao neki značajan rezultat. Osim toga,
sama brzina rada algoritma, kao što smo već rekli ovisit će o računalu na
kojem se algoritam izvodi. Sve su to razlozi zbog kojih se točan račun
složenosti ne isplati. Ono što se isplati, i što će značajno razlikovati al-
goritme, jest činjenica koliko brzo će složenost algoritma rasti u ovisnosti
porasta veličine ulaza. Zbog toga ćemo funkciju složenosti aproksimirati
jednostavnijom funkcijom, koja će dobro opisivati rast funkcije složenosti
povećanjem nezavisne varijable (vidi sliku 4.3). Zato je prikladno uvesti
notaciju koja će jednostavno opisivati brzinu rasta funkcije složenosti al-
goritma. Uvodi se asimptotska ocjena rasta funkcije. Najčešće, kada se
izračunava složenost, aproksimacija se vrši tako da aproksimativna funkcija
koja je jednostavnija od same funkcije složenosti, dobro asimptotski opisuje
rast funkcije složenost. No, dozvoljava se da za male n-ove ova aproksimacija
ne vrijedi (vidi sliku 4.3). Naime, pretpostavlja se da će svi algoritmi, bez
obzira na njihovu složenost raditi zadovoljavajuće za male n-ove, a da će veći
problemi nastati kad veličina ulaza poraste. Stoga se kod definicije asim-
ptotskih ocjena funkcija dozvoljava da ocjena ne ocjenjuje funkciju dobro za
n < n0 . Na gornjem je grafu funkcija kojom se ocjenjuje složenost nacrtana
tako da omeduje odozgo složenost u najgorem slučaju. To, medutim, nije
nužno. Naime, ako je funkcija f (n) ocjena složenosti nekog algoritma, onda
će i funkcija f (n) + c takoder biti funkcija koja ocjenjuje složenost tog al-
goritma. Radi se o tome da nas ne zanima stvarni iznos funkcije složenosti,
već samo koliko brzo ta funkcija raste. Ovime smo završili opis ocjene kakvu
POGLAVLJE 4. ALGORITMI 133

želimo napraviti, pa nam samo još preostaje da definiramo asimptotske ocje-


ne funkcija složenosti algoritama.

Definicija 4.1 Zadane su funkcije f, g : R → R.

1. Kažemo da je f = O(g) ako postoji n0 ∈ N i c ∈ R+ takvi da za svaki


n ≥ n0 vrijedi |f (n)| ≤ c · |g(n)|. Druga oznaka: f (n) ¹ g(n).

2. Kažemo da je f = Ω(g) ako postoji n0 ∈ N i c ∈ R+ takvi da za svaki


n ≥ n0 vrijedi |f (n)| ≥ c · |g(n)|. Druga oznaka: f (n) º g(n).

3. Kažemo da je f = o(g) ako postoji n0 ∈ N i c ∈ R+ takvi da za svaki


n ≥ n0 vrijedi |f (n)| < c · |g(n)|. Druga oznaka: f (n) ≺ g(n).

4. Kažemo da je f = ω(g) ako postoji n0 ∈ N i c ∈ R+ takvi da za svaki


n ≥ n0 vrijedi |f (n)| > c · |g(n)|. Druga oznaka: f (n) Â g(n).

5. Kažemo da je f = Θ(g) ako postoji n0 ∈ N i c1 , c2 ∈ R+ takvi da za


svaki n ≥ n0 vrijedi c1 · |g(n)| ≤ |f (n)| ≤ c2 · |g(n)|. Druga oznaka:
f (n) ∼ g(n).

Iako ova definicija vrijedi za realne funkcije realne varijable, funkcije


složenosti su uvijek funkcije sa N u N. Mi ćemo, medutim, u ovom poglavlju
funkcije s kojima ćemo raditi definirati nešto šire, kao funkcije sa N u R.
Razlog tome je što se kod ocjene složenosti često javljaju funkcije koje nisu

funkcije sa skupa prirodnih brojeva u skup prirodnih brojeva. lg n, n i
sl. U biti, kada se jave ove funkcije, složenost je funkcija sa skupa prirod-
nih brojeva u skup prirodnih brojeva, ali se njihova brzina rasta ocjenjuje
analitičkom funkcijom kojoj kodomena nije skup N.
Definirane ocjene formaliziraju intuitivni pojam brzine rasta funkcije.
Tako možemo kazati da ako vrijedi f (n) = O(g(n)) onda funkcija f ne raste
brže od g. Ako je pak f (n) = o(g(n)), onda kažemo da funkcija f raste
sporije od g. Ako su O i o ocjene koje ocjenjuju funkciju ograničavajući je
odozgo, onda su Ω i ω ocjene koje to rade odozdo. Dakle, ako je f (n) =
Ω(g(n)), onda kažemo da funkcija f ne raste sporije od g, a ako je f (n) =
ω(g(n)), onda kažemo da funkcija f raste brže od g. Na kraju imamo ocjenu
Θ, koja u sebi objedinjuje ocjene O i Ω. Ako je f (n) = Θ(g(n)), onda
kažemo da funkcije f i g rastu jednako brzo.
Iz definicije izravno slijede neki odnosi izmedu ovih notacija:

Korolar 4.1

• f (n) = Θ(g(n)) ako i samo ako je f (n) = O(g(n)) i f (n) = Ω(g(n)).

• Ako je f (n) = o(g(n)) onda je f (n) = O(g(n)). Obrat ne vrijedi.


134 4.2. SLOŽENOST ALGORITAMA

• Ako je f (n) = ω(g(n)) onda je f (n) = Ω(g(n)). Obrat ne vrijedi.

• f (n) = O(g(n)) ako i samo ako je g(n) = Ω(f (n)).

• f (n) = o(g(n)) ako i samo ako je g(n) = ω(f (n))


Dokaz. Dokaz izvedite sami.
Posljednje dvije točke u prethodnom korolaru nazivaju se transpozitna
simetričnost.

Propozicija 4.2 Neka je P (n) = a0 + a1 n + . . . + am nm polinom m-tog


stupnja. Onda je P (n) = Θ(nm ).
Dokaz. Primjenom nejednakosti trokuta na | P (n) | imamo:

|P (n)| = |a0 + a1 n + . . . + am nm |
≤ |a0 | + |a1 |n + . . . + |am |nm
≤ |a0 |nm + |a1 |nm + . . . + |am |nm
= (|a0 | + |a1 | + . . . + |am |)nm = c · nm

Pokažimo i obratno. Treba pokazati da je nm = O(P (n)). Napišimo polinom


P (n) u sljedećem obliku:
1 1
P (n) = nm (a0 · m
+ a1 · m−1 + . . . + am ).
n n
|am |
Za dovoljno veliki n ≥ n0 vrijedi da je ai
nm ≤ 2m , a isto tako je − |a2m
m|

|am |
2m pa je

|am | |am |
P (n) ≥ nm (|am | − − ... − )
2m 2m
|am |
= nm (|am | − m · )
2m
|am |
= nm (|am | − )
2
|am |
= nm · .
2
Time je dokazano da vrijedi P (n) = Ω(nm ), što zajedno s prije do-
kazanom tvrdnjom P (n) = O(n), a prema korolaru 4.1 daje tvrdnju ove
propozicije.
Iz prethodne propozicije proizlazi sljedeći korolar:

Korolar 4.2 Za proizvoljni a ∈ R je a = Θ(1).


Sljedeći teorem daje karakterizaciju asimptotskih notacija.
POGLAVLJE 4. ALGORITMI 135

Teorem 4.1

f (n)
1. Ako je lim = 0, onda je f (n) = o(g(n))
n→∞ g(n)

f (n)
2. Ako je lim = C, onda je f (n) = O(g(n))
n→∞ g(n)

g(n)
3. Ako je lim = 0, onda je f (n) = ω(g(n))
n→∞ f (n)

g(n)
4. Ako je lim = C, onda je f (n) = Ω(g(n))
n→∞ f (n)

g(n)
5. Ako je lim = C, C 6= 0, onda je f (n) = Θ(g(n))
n→∞ f (n)

Dokaz. Sve tvrdnje se dokazuju slično. Dokazat ćemo, na primjer, prvu


tvrdnju.
Neka je

f (n)
lim = 0.
n→∞ g(n)

Onda je i

|f (n)|
lim = 0.
n→∞ |g(n)|
Prema definiciji limesa to znači da za svaki ε > 0 postoji n0 ∈ N takav da
vrijedi da je
¯ ¯
¯ f (n) ¯
¯ ¯
¯ g(n) ¯ < ε.

No, sada imamo


¯ ¯
¯ f (n) ¯ |f (n)|
¯ ¯
¯ g(n) ¯ = |g(n)| < ε.

Pomnožimo li gornju jednadžbu s |g(x)| > 0 dobit ćemo

|f (n)| < ε|g(n)|,


odakle slijedi da je f (n) = o(g(n)).
Ostale tvrdnje dokažite sami.
Sada ćemo dati još neke odnose medu funkcijama koje se često javljaju
kod analize složenosti algoritama.

Propozicija 4.3 Ako je a < b, onda je na ≺ nb .


136 4.2. SLOŽENOST ALGORITAMA

Dokaz. Vrijedi da je
na 1
lim
b
= lim b−a
n→∞ n n→∞ n

No, kako je b − a > 1, onda je

na 1
lim
b
= lim b−a = 0
n→∞ n n→∞ n

Sada prema teoremu 4.1 slijedi da je na ≺ nb .


Sljedeće propozicije se odnose na logaritme i njihove odnose s potenci-
jama.

Propozicija 4.4 Za svaka dva broja a, b ∈ N\{1} vrijedi da je loga n ∼


logb n.
Dokaz. Poznato je da za logaritme po različitim bazama a, b ∈ N\{1}
vrijedi

logb n
loga n =
logb a
Stavimo li c = log1b a , imamo loga n = c · logb n, odnosno c · logb n ≤
loga n ≤ c · logb n što daje traženu tvrdnju.
Ova propozicija nam govori da logaritmi po svim bazama asimptotski
jednako brzo rastu. Stoga se često, pri ocjeni složenosti algoritma, baza
logaritma zanemaruje i piše se lg n, što znači ”logaritam od n po proizvoljnoj
bazi”.

Propozicija 4.5 Neka je a ∈ N0 . Tada vrijedi da je na ≺ na · lgb n ≺ na+1


Dokaz. Jasno je da vrijedi

na · lgb n lgb n
lim = lim .
n→∞ na+1 n→∞ n

Primijenimo li L’Hospitalovo pravilo na posljednji limes dobit ćemo

na · lgb n c·b· · lgb−1 n


1
n
lim = lim
n→∞ na+1 n→∞ 1
c · b · lgb−1 n
= lim ,
n→∞ n
pri čemu konstanta c ovisi o bazi logaritama.
Nakon b primjena L’Hospitalovog pravila dobija se

na · lgb n cb · b!
lim = lim =0
n→∞ na+1 n→∞ n

Dakle,
POGLAVLJE 4. ALGORITMI 137

na · lg n 1
lim = lim c · = 0
n→∞ na+1 n→∞ n
a a+1
odakle slijedi n · lg n ≺ n .
Druga se tvrdnja pokazuje slično. Dokaz provedite sami.
Iz gornje propozicije izlazi sljedeći korolar:

Korolar 4.3 lg n = o(n).


Uočimo iz gornjeg korolara da logaritmi asimptotski rastu sporije od
linearne funkcije.
Na kraju ćemo dati propoziciju, koja u ovaj kontekst stavlja eksponen-
cijalne funkcije.

Propozicija 4.6 Neka su a ∈ N i neka je b ∈ N\{1}. Tada je na ≺ bn


Dokaz. Primijenimo li na limes

bn
lim
n→∞ na
a puta L’Hospitalovo pravilo, dobivamo
na a!
lim = lim n =0
n→∞ bn n→∞ b · lna b

Iz čega, prema teoremu 4.1, slijedi tvrdnja propozicije.


Ova propozicija je vrlo važna i u svom iskazu daje jednu vrlo često spo-
minjanu tvrdnju, kako u teoriji algoritama, tako i u drugim matematičkim
disciplinama: tvrdnju da eksponencijalna funkcija raste brže od bilo koje
polinomne funkcije.

Propozicija 4.7 Neka su a, b ∈ N\{1}, pri čemu je a < b. Tada je an ≺ bn .


a
Dokaz. Kako je 0 < b < 1, slijedi da je
an ³ a ´n
lim = lim =0
n→∞ bn n→∞ b

pa po teoremu 4.1 vrijedi an = o(bn ).


I na kraju, dolazi teorem koji opisuje još neka važna svojstva uvedenih
asimptotskih ocjena funkcija

Teorem 4.2 Za opisane ocjene složenosti rasta funkcije vrijede sljedeća


svojstva:
1. Tranzitivnost:

(a) Ako je f (n) = O(g(n)) i g(n) = O(h(n)) onda je i f (n) =


O(h(n)).
138 4.2. SLOŽENOST ALGORITAMA

(b) Ako je f (n) = o(g(n)) i g(n) = o(h(n)) onda je i f (n) = o(h(n)).


(c) Ako je f (n) = Ω(g(n)) i g(n) = Ω(h(n)) onda je i f (n) = Ω(h(n)).
(d) Ako je f (n) = ω(g(n)) i g(n) = ω(h(n)) onda je i f (n) = ω(h(n)).
(e) Ako je f (n) = Θ(g(n)) i g(n) = Θ(h(n)) onda je i f (n) =
Θ(h(n)).

2. Refleksivnost:

(a) f (n) = O(f (n))


(b) f (n) = Ω(f (n))
(c) f (n) = Θ(f (n))

3. Simetričnost:

(a) Ako je f (n) = Θ(g(n)) onda je i g(n) = Θ(f (n)).

Dokaz. Dokaz izvedite sami.

Zadatak 4.2 Pokažite da


1. je Θ relacija ekvivalencije na skupu funkcija f R → R.

2. su O i Ω relacije totalnog uredaja na skupu funkcija f : R → R.

Zadatak 4.3 Dokažite sljedeće tvrdnje:


1. max{f (n), g(n)} = Θ(f (n) + g(n)).

2. Za a ∈ R, b ∈ R+ vrijedi (n + a)b = Θ(nb ).


Sada kad smo razvili aparat za ocjenjivanje složenosti algoritama, pri-
mijenimo taj aparat na Euklidov algoritam, koji je opisan u prethodnom
poglavlju.

Primjer 4.1 Izračunajmo složenost Euklidovog algoritma u najgorem slu-


čaju.
Za brojeve a i b izračuna se ostatak od dijeljenja a mod b te se algoritam
ponavlja za brojeve b u a mod b sve dok ne bude b = 0. Jasno je da je a
mod b < b, ali da je a mod b ≥ 0.
Koraci od 2 do 4 Euklidovog algoritma čine petlju. Već smo ranije uočili
da se ta petlja može izvesti najviše b-puta. Pogledajmo što se dogada u
jednom koraku te petlje. Izračunava se a mod b i upisuje u r. Vrijednost
varijable b se upisuje u a, a vrijednost varijable r u b. Na kraju se provjerava
je li b = 0, te ako nije, vraća se na korak 2. Sve to, što smo opisali može
se izvesti u konstantnom vremenu c1 . Posljednji se korak algoritma izvodi
točno jednom, a njegova je složenost konstantna, recimo c2 . Ako duljinu
ulaza definiramo kao duljinu manjeg od dvaju ulaznih brojeva, imat ćemo:
POGLAVLJE 4. ALGORITMI 139

Euklid
Tmax (n) = qc · n + c2 ,
odnosno

Euklid
Tmax (n) = Θ(n).

4.3 Pretraživanje i sortiranje


Pretraživanje i sortiranje nizova elemenata su medu najznačajnijim postup-
cima u modernom računarstvu. Tim problemima posvećene su mnoge knji-
ge. Postoji nekoliko razloga tome. Kao prvo, i pretraživanje i sortiranje
su problemi toliko rašireni u računarstvu da gotovo da i nema računalnog
programa u primjeni koji u nekom svom dijelu ne sortira podatke ili ih ne
pretražuje. Drugo, sortiranje je problem koji je dovoljno jednostavan i jasan
da se može uzeti kao model za objašnjavanje metoda izrade algoritama.
Nadalje, postoji čitav niz detaljno razradenih algoritama sortiranja, koji se
koriste različitim metodama izrade algoritama. Ovaj je problem pogodan i
za objašnjavanje računanja donje mede složenosti problema, jer mu se može
odrediti netrivijalna donja meda.

4.3.1 Pretraživanje
Problem pretraživanja može se zadati na sljedeći način:

Problem 4.1
ULAZ: Niz brojeva A = a1 , . . . , an i broj x.
IZLAZ: DA ako je x ∈ A, NE ako x 6∈ A.

Slijedno pretraživanje
Prvi algoritam pretraživanja je ujedno i najjednostavniji oblik pretraživanja
neuredene liste. Algoritam redom usporeduje elemente liste sa zadanom
vrijednošću. Ako je neki od elemenata jednak traženom, algoritam staje i
odgovara da je našao traženu vrijednost. U suprotnom, algoritam prolazi
kroz cijelu listu do kraja i odgovara da nije pronašao zadanu vrijednost.

Algoritam 4.5
ULAZ: Zadana vrijednost x, lista a1 , . . . , an
IZLAZ: Da ako vrijednost x postoji u listi, a ne u suprotnom.

1. i := 1.

2. ako je i > n onda odgovori ne i stani.

3. Ako je ai = x odgovori da i stani.


140 4.3. PRETRAŽIVANJE I SORTIRANJE

4. i := i + 1.

5. Idi na 2.

Jasno je da će ovaj algoritam stati nakon najviše n prolaza kroz korake
od 2 do 5. Isto tako je očito da će algoritam vratiti da ako tražena vrijednost
postoji u listi, dok će u suprotnom vratiti ne.
Pogledajmo sada složenost ovog algoritma. U najgorem slučaju, kada
tražene vrijednosti nema u listi, ovaj algoritam ima n prolaza kroz korake
od 2 do 5, a u (n + 1)-vom prolazu stane u koraku 2. Svi koraci ovog
algoritma su konstantnog trajanja, odnosno za njih je potreban konstantan
broj procesorskih otkucaja. Dakle, složenost ovog algoritma može se opisati
sljedećom formulom:

search
Tmax (n) = c1 + n · c2 + c3 .
Pri tome je c1 vrijeme trajanja prvog koraka algoritma, c2 ukupno vri-
jeme trajanja koraka 2 do 5, a c3 vrijeme trajanja koraka 2. Dakle,

search
Tmax (n) = Θ(n).
Pogledajmo kako ovaj algoritam radi kada tražena vrijednost postoji u
listi. U tom slučaju, za algoritam je najgore da vrijednost bude na posljed-
njem mjestu u listi. Tada se koraci 2 i 3 izvršavaju n puta, a koraci 4 i 5
n − 1 puta. U tom je slučaju

search
Tmax (n) = c1 + n · c2 + (n − 1) · c3
= c1 − c3 + n · (c2 + c3 )
= Θ(n)

pri čemu je c1 trajanje prvog koraka, c2 trajanje koraka 2 i 3 zajedno, a


c3 trajanje koraka 4 i 5 zajedno.
Najbolji je slučaj kada se element nalazi na prvom mjestu u listi. Tada
se koraci 1 do 3 izvršavaju točno jednom, a koraci 4 i 5 nijednom. Složenost
je u najboljem slučaju

search
Tmin (n) = c1 = Θ(1).
Pogledajmo još i prosječni slučaj kada se element nalazi u listi. Pret-
postavljamo da je vjerojatnost da se traženi element nalazi na bilo kojem
mjestu u listi jednaka i iznosi n1 , odnosno, distribucija elemenata je uni-
formna. Ako se element nalazi na i-tom mjestu u listi 1 ≤ i ≤ n, onda se
korak 1 izvršava jednom, koraci 2 i 3 i puta, a koraci 4 i 5 i − 1 puta. Stoga
imamo:
POGLAVLJE 4. ALGORITMI 141

n
X
search 1
Tavg (n) = c1 + · [i · c2 + (i − 1) · c3 ]
n
i=1
n n−1
1 X X
= c1 + [c2 i + c3 i]
n
i=1 i=0
1 n(n + 1) (n − 1)n
= c1 + [c2 + c3 ]
n 2 2
c2 c3
= c1 + · (n + 1) + + · (n − 1)
2 2
c2 c3 c2 c3
= c1 + − + ( + ) · n = Θ(n).
2 2 2 2
Ako je lista neuredena, bolje od ovog algoritma se ne može. Ako su,
medutim, elementi u listi uredeni po veličini, onda se može pronaći bolji
algoritam za odredivanje postojanja neke vrijednosti u listi.

Binarno pretraživanje
Pretpostavimo da je zadana sortirana lista, tj. lista u kojoj su elementi
poredani od najmanjeg do najvećeg.
Pretraživanje koje se u tom slučaju može koristiti, naziva se binarno
pretraživanje. Uredenost liste omogućuje da se ne pregledavaju svi elementi
liste, već samo neki od njih. Prvo usporedujemo zadanu vrijednost s ele-
mentom koji se nalazi u sredini liste (ili otprilike u sredini, ako lista ima
paran broj elemenata). Ako je taj element jednak traženoj vrijednosti, onda
završavamo s pretraživanjem. Ako nije tako, onda se gleda je li vrijednost
srednjeg elementa liste veća ili manja od tražene. Ako je vrijednost veća od
tražene, onda se traženi element, ukoliko se nalazi u listi, mora nalaziti u
njenoj prvoj polovici. Ako je srednji element manji od traženog, onda traženi
element, ukoliko se nalazi u listi, mora biti u drugoj polovici liste. U drugom
se koraku uzima polovica liste u kojoj se može nalaziti traženi element i na
njoj se primjenjuje binarno pretraživanje. Tako se lista smanjuje dok se ne
dode do jednočlane liste, u kojoj se izravno provjerava sadrži li njen element
traženu vrijednost ili ne. Formalno, algoritam izgleda ovako:

Algoritam 4.6 (Binarno pretraživanje)


binsearch(f, l, x, a)
ULAZ: Kursor f na početak liste, kursor l na kraj liste i tražena vrijednost
x, lista a1 , . . . , an .
IZLAZ: Da ako vrijednost x postoji u listi, a ne u suprotnom.

1. p := b f +l
2 c.

2. Ako je ap = x vrati da i stani.


142 4.3. PRETRAŽIVANJE I SORTIRANJE

3. Ako je ap > x i ako je p > f onda pozovi binsearch(f, p − 1, x, a).

4. Ako je ap < x i ako je p < l onda pozovi binsearch(p + 1, l, x, a).

5. Vrati ne i stani.

Ovakvi algoritmi koji svode problem na jedan ili više problema istog tipa,
ali manje dimenzije nazivaju se podijeli pa ovladaj (engl. divide and conquer)
algoritmi. Podijeli pa ovladaj je vrlo efikasna metoda, koja najčešće daje
vrlo efikasne algoritme.

Propozicija 4.8 Binarno pretraživanje je korektan algoritam za pretraži-


vanje sortirane liste.

Dokaz. Treba dokazati da će algoritam uvijek stati, te da će vratiti ispravan
odgovor.
Pretpostavimo da x nije u listi. Tada algoritam sigurno neće stati u
koraku 2. No kod svakog novog poziva funkcije binsearch, njoj se smanji
parametar f ili joj se poveća parametar l. Tako da je nakon konačno mnogo
prolaza sigurno l − f ≤ 1. No, kada se to dogodi, neće biti zadovoljen uvjet
izvršavanja ni koraka 3, ni koraka 4, pa će se izvršiti korak 5 i algoritam će
stati s ispravnim odgovorom.
Pretpostavimo da se x nalazi u listi. Primijetimo da je kod svakog poziva
funkcije binsearch uvijek af ≤ x ≤ al . Drugim riječima, element koji ima
vrijednost x je uvijek izmedu af i al . No, zbog približavanja vrijednosti f i
l u svakom prolazu, na kraju će postati ap = x i algoritam će stati u koraku
2 i to s ispravnim odgovorom.
Odredimo sada složenost ovog algoritma.
Neka je n duljina liste koja se promatra. Ako je n = 1, onda će se, sadrži
li lista vrijednost x, izvršiti samo koraci 1 i 2. Ne sadrži li lista vrijednost
x, izvršit će se korak 1, provjerit će se uvjeti koraka od 2 do 4 i na kraju
će se izvršiti korak 5. Kako su sve operacije u svim koracima elementarne,
složenost je svakog koraka konstantna. Odavde zaključujemo da je

binsearch binsearch
Tmax (1) = Tmin (1) = Θ(1).
No, onda je i

binsearch
Tavg (1) = Θ(1).
Pretpostavimo sada najgori slučaj za veće n-ove. Najgore je za algoritam
kada se vrijednost x ne nalazi u listi. U tom slučaju se izvršava korak 1,
provjerava se uvjet koraka 2, te se izvršava korak 3 ili 4. Primijetimo da
će složenost biti nešto manja ako se izvrši korak 3, jer se onda provjerava
samo uvjet tog koraka, dok se u suprotnom provjerava uvjet koraka 3, ali i
koraka 4. No, ovdje se radi o dodatnom konstantnom vremenu, pa to neće
POGLAVLJE 4. ALGORITMI 143

utjecati na ocjenu složenosti ovog algoritma. Dakle, možemo zaključiti da


je složenost binarnog pretraživanja dana sa:

binsearch binsearch n
Tmax (n) ≤ c1 + Tmax (b c)
2
Rekurzija koju trebamo riješiti glasi:

tn = t n2 + c1 .
To je podijeli pa ovladaj rekurzija. Ona se rješava tako da se stavi supsti-
tucija an = t2n .
Sada je

an = t2n = t 2n + c1 = t2n−1 + c1 = an−1 + c1 .


2

Izvrši se homogenizacija

an = an−1 + c1
an−1 = an−2 + c1
an − an−1 = an−1 − an−2 ,

čime se dobiva homogena rekurzija

an = 2an−1 − an−2 .
Karakteristična jednadžba posljednje rekurzije je

x2 − 2x + 1 = 0.
Ona ima dvostruki korijen x1,2 = 1, pa je opće rješenje rekurzije dano sa

an = C1 · 1n + C2 · n · 1n .,
odnosno,

t2n = C1 + C2 · n.
Iz posljednjega slijedi da je

binsearch
Tmax (n) = tn = C1 + C2 · log2 n.
Drugim riječima,

binsearch
Tmax (n) = O(lg n).
Prosječnu ćemo složenost izračunavati samo za slučaj kada se element
nalazi u listi. Jasno je da, ako se element ne nalazi u listi složenost iznosi
Θ(lg n).
144 4.3. PRETRAŽIVANJE I SORTIRANJE

Neka lista ima n elemenata. Bez smanjenja općenitosti možemo pretpo-


staviti da je n = 2k − 1. Ovo je važno samo zato da osiguramo da u svakom
koraku niz ima srednji element.
U prvom koraku algoritma pregledavamo srednji element. Ako je traženi
element jednak srednjem, onda će algoritam završiti u jednom koraku. Slje-
deća dva elementa: onaj koji se nalazi na četvrtini liste i onaj koji se nalazi
na tri četvrtine liste, možemo naći u dva koraka. Nadalje, imamo 4 elementa
koja nalazimo u tri koraka, itd. Dakle, imamo slučajnu varijablu
µ ¶
1 2 ... k
X= 1 2 2k−1 .
n n ... n

k
X
binsearch 2i−1
Tavg (k) = EX · c1 = c1 i·
2k − 1
i=1
k
X
c1
= i · 2i−1 .
2k −1
i=1

Pogledajmo na trenutak nešto općenitiju sumu niza:

k
X
R(x) = i · xi−1 .
i=1

Formalno integriramo ovaj red i dobivamo:


Z k
X xk+1 − 1
R(x) = xi = .
x−1
i=1

Sada to natrag formalno deriviramo i dobivamo

k · xk+1 − (k + 1) · xk + 1
R(x) = . (4.2)
(x − 1)2
Uvrstimo li (4.2) u (4.2), dobit ćemo:

binsearch c1 k · 2k+1 − (k + 1) · 2k + 1
Tavg (k) =
2k − 1 12
(k − 1) · 2k + 1
= c1 · (4.3)
· 2k − 1 ¸
k
= c1 (k − 1) + k .
2 −1

Iz (4.3) i definicije broja k slijedi da je


POGLAVLJE 4. ALGORITMI 145

· ¸
binsearch lg n
Tavg (n) = c1 · lg(n − 1) + .
n−1
Konačno,

binsearch
Tavg (n) = Θ(lg n).
I na kraju, potrebno je izračunati složenost binarnog pretraživanja u
najboljem slučaju. Najbolji je slučaj kada se traženi element nalazi točno u
sredini liste. Tada se on pronalazi u točno jednom koraku, pa je

binsearch
Tmin (n) = Θ(1).

4.3.2 Sortiranje
Preduvjet koji lista mora zadovoljiti da bi se na njoj moglo primijeniti
binarno pretraživanje jest da lista bude sortirana. To nije jedini algori-
tam i jedina situacija koja zahtjeva sortiranu listu. Zapravo, sortiranje je
jedna od najčešćih operacija koje računalo izvodi. Stoga nije čudno da je
problemu sortiranja posvećena posebna pažnja u teoriji algoritama. Ovdje
ćemo opisati nekoliko različitih algoritama sortiranja i usporediti njihovu
složenost.

Sortiranje izborom
Prvi, vrlo jednostavan algoritam sortiranja je sortiranje izborom (engl. se-
lection sort) . Algoritam radi sljedeće: u listi se pronalazi najmanji element i
on mijenja mjesto s prvim elementom u listi. Nakon toga, prvi će sadržavati
onu vrijednost koju će sadržavati u konačnoj, sortiranoj listi, tj. najmanju
vrijednost u listi. Sada se isti postupak ponavlja za preostale elemente,
osim prvog. Drugim riječima, postupak se ponavlja za elemente od drugog
do posljednjeg. U svakom sljedećem prolazu se dio liste koji treba obraditi
smanjuje za jedan element. Zbog toga, ako je lista dugačka n elemenata,
onda će, nakon n − 1 prolaza, ovaj algoritam sortirati listu.

Primjer 4.2 Sortirajmo listu

7 3 5 1 8 4 2 9 6

Najmanji element je onaj s vrijednošću 1.

7 3 5 1 8 4 2 9 6

Zamijenimo ga s prvim elementom

1 3 5 7 8 4 2 9 6
146 4.3. PRETRAŽIVANJE I SORTIRANJE

U ostatku element s najmanjom vrijednošću je onaj s vrijednošću 2.

1 3 5 7 8 4 2 9 6

1 2 5 7 8 4 3 9 6

1 2 5 7 8 4 3 9 6

1 2 3 7 8 4 5 9 6

1 2 3 7 8 4 5 9 6

1 2 3 4 8 7 5 9 6

1 2 3 4 8 7 5 9 6

1 2 3 4 5 7 8 9 6

1 2 3 4 5 7 8 9 6

1 2 3 4 5 6 8 9 7

1 2 3 4 5 6 8 9 7

1 2 3 4 5 6 7 9 8

1 2 3 4 5 6 7 9 8

1 2 3 4 5 6 7 8 9

Zapišimo ovaj algoritam formalno:

Algoritam 4.7
ULAZ: Lista a1 , . . . , an
IZLAZ: Sortirana lista koja se sastoji od istih elemenata kao i ulazna lista.

1. Za i := 1, . . . , n − 1 radi korake 2-5.

2. min := i.

3. Za j := 2, . . . , n radi korak 4.

4. Ako je (aj < ai ) min := j.

5. swap(ai , amin ).
POGLAVLJE 4. ALGORITMI 147

Jasno je da se koraci 1, 2 i 5 ponavljaju točno n − 1 puta, bez obzira


na instancu problema. Koraci 3 i 4 se u svakom prolazu ponavljaju različit
broj puta - u prvom prolazu n − 1 puta, u drugom n − 2 puta, itd. Jedina
je razlika medu različitim instancama problema u tome koliko će se puta
izvesti pridruživanje vrijednosti varijabli min u koraku 4. Najgori je slučaj
kada je uvjet u koraku 4 uvijek ispunjen. Treba napomenuti da se ovdje
radi o hipotetičkom najgorem slučaju te da on nije izvediv za liste veće od
2 elementa, jer ne postoji takva instanca za koju bi uvjet u koraku 4 uvijek
bio ispunjen. Imamo

n−1
X
SelectionSort
Tmax (n) = c1 · n + c2 · i
i=1
n · (n − 1)
= c1 · n + c2 ·
2
c2 c2 2
= (c1 − ) · n + ·n ,
2 2
odnosno

SelectionSort
Tmax (n) = O(n2 ).
U najboljem se slučaju, pridruživanje u koraku 4 neće izvršiti nikad. Taj
slučaj je realan slučaj, kada je lista već unaprijed sortirana. Tada je

n−1
X
SelectionSort
Tmin (n) = c1 · n + c2 · i
i=1
c2 c2 2
= (c1 − )·n+ ·n ,
2 2
odnosno

SelectionSort
Tmin (n) = O(n2 ).
Kako prosječna složenost mora biti izmedu najbolje i najgore, zaključujemo
da je

SelectionSort
Tavg (n) = O(n2 ).

Jednostavno sortiranje zamjenom


Sortiranje zamjenom (engl. simple exchange sort) je još jedan od osnovnih
algoritama sortiranja. Sortiranje se vrši tako da se usporeduje prvi element
niza sa svakim iza njega. Kada se naide na element u listi koji je manji od
prvog, zamjenjuje mu se mjesto s prvim. Sada se nastavljaju usporedivati
148 4.3. PRETRAŽIVANJE I SORTIRANJE

preostali elementi s novim prvim elementom u listi. Nakon prvog prolaza


kroz listu, u prvom će se elementu liste nalaziti najmanja vrijednost u listi.
Nakon toga, postupak se ponavlja za drugi element liste i tako redom. U
svakom koraku se jedna vrijednost postavlja u element liste na kojem će
se nalaziti i u izlaznoj, sortiranoj listi, pa će se algoritam završiti nakon
(n − 1)-og koraka.

Primjer 4.3 Opet sortirajmo istu listu:

7 3 5 1 8 4 2 9 6

Najprije prvi i drugi element mijenjaju mjesta.

3 7 5 1 8 4 2 9 6

Sada se pretražuje dalje i dode se do četvrtog elementa, koji mijenja


mjesto s prvim:

1 7 5 3 8 4 2 9 6

Svi daljnji elementi su manji od prvog, pa u prvom prolazu više nemamo


što mijenjati.

1 7 5 3 8 4 2 9 6

Sada se usporeduju elementi s drugim elementom liste. Odmah nalazimo


da je treći element manji od drugog, pa im mijenjamo mjesta:

1 5 7 3 8 4 2 9 6

Daljnji koraci su:

1 3 7 5 8 4 2 9 6

1 2 7 5 8 4 3 9 6

1 2 5 7 8 4 3 9 6

1 2 4 7 8 5 3 9 6

1 2 3 7 8 5 4 9 6

1 2 3 5 8 7 4 9 6

1 2 3 4 8 7 5 9 6
POGLAVLJE 4. ALGORITMI 149

1 2 3 4 5 7 8 9 6

1 2 3 4 5 6 8 9 7

1 2 3 4 5 6 7 9 8

1 2 3 4 5 6 7 8 9

Formalno, ovaj algoritam možemo opisati na sljedeći način:

Algoritam 4.8
ULAZ: Lista a1 , . . . , an
IZLAZ: Sortirana lista koja se sastoji od istih elemenata kao i ulazna lista.

1. Za i := 1, . . . , n − 1 radi korake od 2 do 3.

2. Za j := i + 1, . . . , n radi korak 3.

3. Ako je ai > aj onda swap(ai , aj ).

Ocijenimo složenost ovog algoritma. U svakom slučaju, vanjska se petlja


izvodi točno n−1 puta. Unutarnja se petlja u prvom prolazu izvodi točno n−
1 puta, u drugom n − 2 puta, u trećem n − 3 puta itd. U svakom izvršavanju
unutrašnje petlje izvede se provjera uvjeta, te ako je uvjet ispunjen, onda se
elementima zamijene mjesta. U najgorem slučaju, kada je lista na početku
obrnuto sortirana, uvjet će uvijek biti zadovoljen. Neka kontrola vanjske
petlje ima složenost c1 , neka kontrola unutarnje petlje, zajedno s provjerom
uvjeta i zamjenom mjesta elementima ima složenost c2 . Tada je, u najgorem
slučaju, složenost jednaka:

i−1
X
ExchangeSort
Tmax = (n − 1) · c1 + i · c2
i=1
i−1
X
= (n − 1) · c1 + c2 · i
i=1
n · (n + 1)
= (n − 1) · c1 + c2 ·
2
c2 2 c2
= · n + (c1 + ) · n − c1 ,
2 2
iz čega slijedi da je

ExchangeSort
Tmax = Θ(n2 ). (4.4)
U najboljem slučaju, kada je lista unaprijed sortirana, uvjet u koraku
3 se nikada ne ispunjava, pa nema ni jedne zamjene mjesta. Neka je sa c3
150 4.3. PRETRAŽIVANJE I SORTIRANJE

označeno trajanje kontrole unutarnje petlje zajedno s provjerom uvjeta u


koraku 3. Tada je
i−1
X
ExchangeSort
Tmax = (n − 1) · c1 + i · c3 ,
i=1

što slično gornjem računu daje

ExchangeSort
Tmin = Θ(n2 ). (4.5)
Kako su maksimalna i minimalna složenost ovog algoritma asimptotski
jednake, slijedi da je i

ExchangeSort
Tavg = Θ(n2 ). (4.6)

Sortiranje umetanjem
Sortiranje umetanjem (engl. insertion sort) je još jedan od osnovnih algo-
ritama sortiranja. Ovaj se algoritam temelji na ideji dijeljenja liste na dva
dijela: prvi koji je već sortiran i drugi koji tek treba sortirati. Na početku
se u prvom dijelu nalazi samo prvi element liste. U svakom se sljedećem
koraku uzima prvi element iz drugog dijela liste i umeće se na odgovarajuće
mjesto u prvom dijelu. U prvom se koraku uzima drugi element liste te se
usporeduje s prvim elementom. Ako je drugi element manji od prvoga, onda
prvi i drugi element mijenjaju mjesta. Nakon toga se uzima treći element,
koji se usporeduje s drugim. Ako je manji, onda drugi element prelazi na
treće mjesto, a promatrani se element usporeduje s prvim. Ako je veći od
prvog, onda se umeće na drugo mjesto, a ako je manji, onda se prvi element
pomiče na drugo mjesto, a promatrani dolazi na prvo mjesto. Isti se pos-
tupak ponavlja za četvrti element liste i tako redom. Za svaki se element
promatra sortirani dio liste. Elementi sortiranog dijela liste usporeduju se
od zadnjeg prema prvome, s promatranim elementom, te se elementi veći od
promatranog pomiču za jedno mjesto dalje u listi. Kada se naide na element
manji od promatranog, onda se promatrani element stavlja iza njega s kojeg
je već prije toga element pomaknut za jedno mjesto dalje. Tako se sortirani
dio liste povećava za jedan element i može se prijeći na sljedeći element liste.
Kada se svi elementi liste obrade na ovaj način, cijela će lista biti sortirana.

Primjer 4.4 Sortirajmo listu

7 3 5 1 8 4 2 9 6

U prvom koraku prva dva elementa mijenjaju mjesta i dobijamo:

3 7 5 1 8 4 2 9 6
POGLAVLJE 4. ALGORITMI 151

U sljedećem koraku pretražujemo prva dva elementa tražeći onaj koji ima
veću vrijednost od 5, a to je drugi element. Njega pomičemo za jedno mjesto
dalje a na njegovo mjesto dolazi treći element.

3 5 1 8 4 2 9 6

3 5 7 1 8 4 2 9 6

Četvrti element ima vrijednost 1 i on dolazi na početak liste, a svi se elementi


prije njega pomiču za jedan element udesno:

1 5 7 8 4 2 9 6

1 3 7 8 4 2 9 6

1 3 5 8 4 2 9 6

1 3 5 7 8 4 2 9 6

Sljedeći element ostaje na svom mjestu:

1 3 5 7 8 4 2 9 6

Prva dva elementa su manja od 4, pa ostaju gdje jesu, dok se ostali elementi
pomiču za jedno mjesto udesno.

1 3 4 7 8 2 9 6

1 3 4 5 8 2 9 6

1 3 4 5 7 2 9 6

1 3 4 5 7 8 2 9 6

Sljedeći element ide na drugo mjesto u listi.

1 2 4 5 7 8 9 6

1 2 3 5 7 8 9 6

1 2 3 4 7 8 9 6

1 2 3 4 5 8 9 6

1 2 3 4 5 7 9 6
152 4.3. PRETRAŽIVANJE I SORTIRANJE

1 2 3 4 5 7 8 9 6
Sljedeći element ostaje na svom mjestu.
1 2 3 4 5 7 8 9 6
Posljednji element ide na šesto mjesto u listi.
1 2 3 4 5 6 8 9

1 2 3 4 5 6 7 9

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8 9
Algoritam 4.9
ULAZ: Lista a1 , . . . , an
IZLAZ: Sortirana lista, koja se sastoji od istih elemenata kao i ulazna lista.
1. Izvrši korake 2-4 za j := 2, . . . , n.
2. p := aj .
3. Izvrši korak 4 za i := 1, . . . , j − 1.
4. Ako je ai > aj onda swap(ai , aj ).
Pogledajmo složenost ovog algoritma. U svakom slučaju koraci 1 i 2
izvršavaju se n − 1 puta, a svaki od njih ima konstantno trajanje. Broj
prolaza kroz korake 3 i 4 povećava se za svaki prolaz kroz korake 1 i 2.
Najgori je slučaj obrnuto sortirana lista. Onda se izvršava maksimalan broj
zamjena elemenata. U tom će slučaju uvjet iz 4 uvijek biti zadovoljen. U
tom slučaju je složenost

n−1
X
inssort (n − 1)n c2 c2
Tmax (n) = c1 · n + c2 · i = c1 · n + c2 · = (c1 − ) · n + · n2 .
2 2 2
i=1
Dakle,

inssort
Tmax (n) = Θ(n2 ).
Slično, ako je lista već sortirana, onda će svaki puta uvjet iz koraka 4
biti neistinit, pa se neće izvršiti nijedno mijenjanje mjesta. No, sve ostale
operacije će se izvršavati. Stoga će biti

inssort
Tmin (n) = Θ(n2 ).
No, u tom je slučaju i

inssort
Tavg (n) = Θ(n2 ).
POGLAVLJE 4. ALGORITMI 153

Mjehuričasto sortiranje
U mjehuričastom sortiranju (engl. bubble sort) prolazi se redom po elemen-
tima liste i svaki se od njih usporeduje sa svojim sljedbenikom. Ako je neki
element veći od sljedbenika, onda im se zamjenjuju mjesta. Nakon prvog
prolaza na kraj liste ”isplivat” će najveća vrijednost. Nakon toga se isti
postupak ponavlja za prvih n − 1 elemenata, pa će nakon prolaza kroz listu
u predposljednji element doći druga najveća vrijednost. Tako će nakon n − 1
prolaza lista biti sortirana.

Primjer 4.5 Opet sortirajmo istu listu:

7 3 5 1 8 4 2 9 6

Prvo mjenjaju mjesta prvi i drugi element.

3 7 5 1 8 4 2 9 6

Nakon toga drugi i treći,

3 5 7 1 8 4 2 9 6

pa treći i četvrti.

3 5 1 7 8 4 2 9 6

Četvrti i peti element ne mijenjanju mjesta, već mjesta mijenjaju peti i šesti
element.

3 5 1 7 4 8 2 9 6

Nakon toga, mjesta mijenjaju šesti i sedmi element:


3 5 1 7 4 2 8 9 6

Sedmi i osmi element ne mijenjaju mjesta, već samo osmi i deveti.

3 5 1 7 4 2 8 6 9

Time je završen prvi prolaz kroz listu i na posljednjem se mjestu nalazi


najveća vrijednost. Sada se postupak ponavlja za prvih n − 1 elemenata.
Mijenjaju se drugi i treći element,

3 1 5 7 4 2 8 6 9

pa četvrti i peti, a nakon toga peti i šesti.

3 1 5 4 2 7 8 6 9
154 4.3. PRETRAŽIVANJE I SORTIRANJE

Na kraju ovog koraka mijenjaju se sedmi i osmi element

3 1 5 4 2 7 6 8 9

U sljedećem se prolazu obraduje prvih sedam elemenata


Mijenja se prvi i drugi,

1 3 5 4 2 7 6 8 9

pa treći i četvrti te četvrti i peti element.

1 3 4 2 5 7 6 8 9

Na kraju ovog koraka se mijenjaju šesti i sedmi element.

1 3 4 2 5 6 7 8 9

U sljedećem se prolazu mijenjaju samo treći i četvrti element.

1 3 2 4 5 6 7 8 9

Sada se promatra prvih pet elemenata liste, no u ovom se prolazu mijenjaju


samo drugi i treći element.

1 3 2 4 5 6 7 8 9

U sljedećem se prolazu promatraju prva četiri elementa liste, no mijenjaju


se samo drugi i treći.

1 2 3 4 5 6 7 8 9

Iako smo time dobili sortiranu listu, algoritam će izvesti još dva prolaza kroz
listu, za prva tri te za prva dva elementa liste.

Algoritam 4.10
ULAZ: Lista a1 , . . . , an
IZLAZ: Sortirana lista, koja se sastoji od istih elemenata kao i ulazna lista.

1. Ponavljaj korake 2-3 za i = 1, . . . , n − 1.

2. Ponavljaj korak 3 za j = 1, . . . , n − i.

3. Ako je aj > aj+1 onda swap(aj , aj+1 ).


POGLAVLJE 4. ALGORITMI 155

Neka je ak najveći element u listi. Kada algoritam naide u prvom prolazu


na taj element, on će biti veći od svakog sljedećeg elementa u listi, pa će s
njime mijenjati mjesta. Na kraju prolaza, taj će element biti na kraju liste.
U drugom će se koraku na isti način na pretposljednjem mjestu naći drugi
najveći element i tako redom. To dokazuje da je ovaj algoritam korektan.
Ocijenimo sada njegovu složenost. Bez obzira kako izgleda instanca pro-
blema, korak 1 će se ponavljati n − 1 puta. U prvom će se prolazu koraci
2 i 3 ponavljati n − 1 puta, a u svakom će sljedećem prolazu njihov broj
ponavljanja biti za jedan manji. Najgori je slučaj kada je uvjet iz koraka
3 uvijek ispunjen (kada je lista na početku obrnuto sortirana). U tom će
se slučaju svaki puta izvršavati naredba swap. Najbolji je slučaj kada ovaj
uvjet nije ispunjen ni jednom (kada je lista na početku već bila sortirana).
Tada se naredba swap neće izvršiti ni jednom, no broj provjera uvjeta u tom
koraku neće se promijeniti. Iz toga zaključujemo da će najgori i najbolji
slučaj za ovaj algoritam biti asimptotski jednaki.

n−1
X
bubsort
Tmax (n) = c1 · (n − 1) + j · c2
j=1
(n − 1) · n
= c2 · (n − 1) + c2 ·
2
c2 c2 2
= −c1 + (c1 − ) · n + ·n
2 2
= Θ(n2 ) (4.7)

Iz gornjeg razmatranja zaključujemo da je i

bubsort bubsort
Tmin (n) = Tavg (n) = Θ(n2 ).

Primijetili smo da je algoritam izveo svih osam koraka, iako je sortiranje


liste bilo gotovo već nakon šestog koraka. Poboljšanje ovog algoritma se
može postići ako se u njega ugradi provjera, koja će provjeravati je li u
nekom prolazu napravljena zamjena, a ako to nije slučaj, ono će zaustavljati
algoritam.

Sortiranje spajanjem
Sortiranje spajanjem (engl. merge sort) je prvi algoritam koji ćemo ovdje
opisati, a koji ima složenost manju od kvadratne. Vidjet ćemoda je složenost
ovog algoritma jednaka O(n lg n). Algoritmi sortiranja s takvom složenoš-
ću najčešće koriste metodu podijeli pa ovladaj (engl. divide and conquer).
Podijeli pa ovladaj je metoda kod koje se problem reducira na jedan ili više
problema istog tipa, ali manjih dimenzija, a rješenje originalnog problema
dobija se kompozicijom rješenja reduciranih problema. Sortiranje spajanjem
156 4.3. PRETRAŽIVANJE I SORTIRANJE

koristi algoritam za spajanje dvije sortirane liste u jednu, isto tako, sortiranu
listu.

Algoritam 4.11 (Merge)


ULAZ: Dvije sortirane liste b1 , . . . , bk i c1 , . . . , cl
IZLAZ: Sortirana lista a1 , . . . , ak+l , koja se sastoji od elemenata ulaznih
listi.

1. i := 1, j := 1.
2. Ponavljaj korak 3 sve dok je i ≤ k i j ≤ l.
3. Ako je bi < cj onda ai+j−1 := bi , i := i+1 inače ai+j−1 := cj , j := j+1.
4. Ponavljaj korak 5 sve dok je i ≤ k.
5. ai+j−1 := bi , i := i + 1.
6. Ponavljaj korak 7 sve dok je j ≤ l
7. ai+j−1 := cj , j := j + 1.

Prilično je jasno da ovaj algoritam zaista spaja dvije sortirane liste u


sortiranu listu. Ocijenimo njegovu složenost. Neka su k i l duljine ulaznih
lista.
Korak 1 će se izvršiti jednom. Nadalje, za svaki element ulaznih listi,
izvršit će se jedan od blokova naredbi iz koraka 3 ili blok naredbi iz koraka
5 ili pak iz koraka 7. Pogledamo li pažljivije vidjet ćemo da su svi ti blokovi
slični i da imaju istu, konstantnu složenost. Provjeravat će se uvjet iz koraka
2 i 3 ili uvjet iz 4 ili pak 6. Sva se ta tri uvjeta mogu odozgo ograničiti nekom
konstantom, pa je složenost spajanja

merge
Tmax (k, l) ≤ c1 + (k + l) · (c2 + c3 )
= O(k + l)

Na sličan se način vidi da je


merge
Tmin (n) = O(k + l),
pa je i

merge
Tavg (n) = O(k + l).
Algoritam sortiranja spajanjem dijeli ulaznu listu na dvije podjednako
duge podliste, sortira ih te ih algoritmom za spajanje spaja u jednu sortiranu
listu. Svaka se od podlista sortira na isti način. Tako se problem smanjuje
dok se ne dode do jednočlanih listi. Sortiranje jednočlane liste je trivijalno,
tj. svaka jednočlana lista je već sortirana.
POGLAVLJE 4. ALGORITMI 157

Algoritam 4.12
ULAZ: Lista a1 , . . . , an
IZLAZ: Sortirana lista, koja se sastoji od istih elemenata kao i ulazna lista.

1. Sortiraj listu a1 , . . . , ab n c .
2

2. Sortiraj listu ab n c+1 , . . . , an .


2

3. Spoji a1 , . . . , ab n c i ab n c+1 , . . . , an .
2 2

Algoritam ima sljedeću složenost:

lnm l m jnk
mersort mersort merge n
Tmax (n) ≤ 2 · Tmax ( ) + Tmax ( , )
2m
ln 2 2
mersort
≤ 2 · Tmax ( ) + d1 · n + d2 .
2

Napišemo li to kako je to uobičajeno za rekurzije imat ćemo:

tn = 2 · t n2 + d1 · n + d2 .

Uvodimo supstituciju sn = t2n i imamo:

sn = t2n = 2 · t 2n + d1 · 2n + d2
2
= 2 · t2n−1 + d1 · 2n + d2
= sn−1 + d1 · n + d2

Oduzmimo jednadžbu za (n − 1)-vi član od jednadžbe za n-ti član:

sn = 2 · sn−1 + d1 · 2n + d2
sn−1 = 2 · sn−2 + d1 · 2n−1 + d2
sn − sn−1 = 2 · sn−1 − 2 · sn−2 + 2n−1 · d1

Iz toga slijedi

sn = 3 · sn−1 − 2 · sn−2 + 2 · d1 .

Nadalje, duzmimo formulu za (n − 1)-vi član pomnoženu s 2 od formule za


n-ti član.

sn = 3 · sn−1 − 2 · sn−2 + 2n · d1
2 · sn−1 = 6 · sn−2 − 4 · sn−3 + 2n · d1
sn − 2 · sn−1 = 3 · sn−1 − 8 · sn−2 + 4 · sn−3
158 4.3. PRETRAŽIVANJE I SORTIRANJE

odnosno,

sn = 5 · sn−1 − 8 · sn−1 + 4 · sn−3 .


Čime smo dobili homogeu rekurziju. Karakteristična jednadžba ove rekurzije
je

x3 − 5x2 + 8x − 4 = 0.
Ova jednadžba ima dvostruki korijen x1,2 = 2 i jednostruki korijen x3 = 1.
Dakle opće rješenje ove jednadžbe je

sn = C1 · 2n + C2 · n · 2n + C3 · 1n .
Konačno, dobivamo da je

t2n = C1 · 2n + C2 · n · 2n + C3 .
iz čega slijedi da je

tn = C1 · n + C2 · ·n lg n + C3 .
Drugim riječima,

M ergesort
Tmax = O(n lg n).
Ovaj algoritam nije osjetljiv na različitosti instanci. Kakva god bila instanca,
algoritam će imati jednaku složenost. Stoga je
M ergesort M ergesort
Tmin = Tavg = O(n lg n).
Primijećuje se jedan nedostatak sortiranja spajanjem naspram drugih dosa-
da opisanih algoritama sortiranja: sortiranje spajanjem za svoj rad treba do-
datno polje, odnosno dodatni memorijski prostor. Nijedan od dosad opisanih
algoritama, osim sortiranja spajanjem, nema taj nedostatak.

Sortiranje pomoću hrpe


Sortiranje pomoću hrpe (engl. heapsort) je vrlo interesantan algoritam. Za
razliku od svih dosad prikazanih algoritama, ovaj se algoritam temelji na
posebnom apstraktnom tipu podataka - hrpi.
Hrpa je puno binarno stablo, kako je to opisano u sljedećem poglavlju,
sa svojstvom da vrh ima manju vrijednost od oba svoja djeteta. Hrpa se
puni redom, tako da su joj sve razine, osim posljednje, u potpunosti popu-
njene. Povrh toga, posljednja se razina puni s lijeva na desno. Zbog toga,
pri dodavanju i brisanju elemenata treba paziti da sva svojstva hrpe budu
zadovoljena.
Sada ćemo opisati algoritme za dodavanje i brisanje elemenata u hrpi.
POGLAVLJE 4. ALGORITMI 159

Algoritam dodavanja elemenata u hrpu je sljedeći: novi se element do-


daje na najljevije slobodno mjesto na posljednjoj razini stabla. Nakon toga
se usporeduje njegova vrijednost s vrijednošću njegovog roditelja. Ako je
vrijednost novododanog elementa manja od vrijednosti njegovog roditelja,
onda im mijenjamo mjesto. Nakon toga provjeravamo novododani element,
koji je sada na pretposljednjoj razini s njegovim trenutnim roditeljem, itd.
Ovaj postupak ponavljamo sve dok novododani element ne dobije roditelja,
koji je manji od njega, ili dok ne postane korijen stabla.

Primjer 4.6 Stavit ćemo listu koju smo i ranije koristili u hrpu.

7 7 3

3 7 5

1 1

3 5 3 4

7 8 4 7 8 5 2

3 2

7 8 5 4

9 6
160 4.3. PRETRAŽIVANJE I SORTIRANJE

3 2

6 8 5 4

9 7

Slika 4.4

Najefikasnija implementacija hrpe je ona pomoću polja. Stavimo li ko-


rijen u element polja s indeksom 1, te ako lijevo dijete čvora upisanog u
element polja s indeksom n stavimo u element s indeksom 2 · n, a desno
dijete u element s indeksom 2 · n + 1, onda će svaki element imati svoje
mjesto u polju. Takoder, zbog toga što je hrpa potpuno stablo, u kojem
se posljednja razina puni s lijeva na desno, elementi hrpe će popunjavati
elemente polja redom.

Algoritam 4.13
ULAZ: Hrpa H : h1 , . . . , hn i element x
IZLAZ: Hrpa H 0 koja se sastoji od elemenata stoga S i elementa x.

1. Stavi x u polje u element h[n + 1]. i := n + 1.


¥ ¦
2. dok je i > 1 i dok je h[i] < h[ 2i ] radi korak 3.
¥ ¦ ¥ ¦
3. swap(h[i], h[ 2i ]), i := 2i .

Jasno je da ovakav algoritam dodavanja novih vrhova u hrpu održava


sva svojstva hrpe. Pogledajmo njegovu složenost. Neka je n broj elemenata
u hrpi. Jasno je da, pošto je potpuna, hrpa od n elemenata ima visinu 1 +
blog2 nc. Kako algoritam mijenja element s elementom prethodne razine, on
može izvršiti točno blog2 nc zamjena, odnosno koraci od 2 do 3 se ponavljaju
najviše blog2 nc puta. Dakle složenost ovog algoritma je

InsHeap
Tmax (n) ≤ c1 + c2 · blog2 nc
= O(lg n).

S druge strane, najbolji slučaj je kada je dodani element odmah veći od


svog roditelja. U tom slučaju se korak 2 ponavlja jednom, a 3 ni jednom.
Stoga imamo
POGLAVLJE 4. ALGORITMI 161

InsHeap
Tmin (n) ≤ c1 + c2
= O(1).

Bez obzira na to gdje će novododani element na kraju završiti, algoritam


će se kroz stablo kretati istim putem. Stoga pretpostavimo da je jednako
vjerojatno da će novododani element ostati na svakoj od razina stabla. Tada
ta vjerojatnost iznosi blog1 nc , pa je složenost prosječnog slučaja
2

blog2 nc
X 1
InsHeap
Tavg (n) = c1 + · i · c2
blog2 nc
i=1
1 blog2 nc · (blog2 nc + 1)
= c1 + · · c2
blog2 nc 2
c2
= c1 + · (blog2 nc + 1) = O(lg n)
2

Jedno važno svojstvo hrpe jest to što se najmanji element hrpe uvijek
nalazi u njenom korijenu. Odatle proizlazi ideja sortiranja pomoću hrpe - iz
hrpe se izvadi korijen, stavi se na početak liste, a ostatak hrpe se ponovno
preuredi tako da zadovoljava sva svojstva hrpe.
Postupak pražnjenja hrpe je sljedeći. Iz hrpe se vrijednost korijena pre-
seli u izlaznu listu. Nakon toga se vrijednost najdesnijeg elementa na zadnjoj
razini hrpe preseli u korijen a posljednji se element hrpe obriše. Time je sta-
blo ostalo potpuno. Još je potrebno osigurati uredaj u hrpi. Promatrana
vrijednost, koja narušava uredaj u hrpi nalazi se u korijenu. Usporedimo tu
vrijednost s manjim od djece korijena te ako je promatrana vrijednost veća,
zamjenimo im mjesta. I dalje se promatrana vrijednost, sada smještena na
drugoj razini stabla, usporeduje s manjim svojim djetetom. Ovaj se pos-
tupak ponavlja sve dok promatrana vrijednost ne bude manja od manjeg
djeteta (pa onda i od većeg) ili dok se promatrana vrijednost ne nade u
čvoru bez djece. Sljedeći primjer pokazuje kako se prazni hrpa i kreira sor-
tirana lista.

Primjer 4.7 Ispraznimo hrpu iz prethodnog primjera i kreirajmo sortiranu


listu.
162 4.3. PRETRAŽIVANJE I SORTIRANJE

3 2

6 8 5 4

9 7

3 2

6 8 5 4

3 4

6 8 5 7

9
POGLAVLJE 4. ALGORITMI 163

1, 2

3 4

6 8 5 7

1, 2

6 4

9 8 5 7

1, 2, 3

7 4

6 4 6 5

9 8 5 9 8 7

1, 2, 3, 4

7 5

6 5 6 7

9 8 9 8
164 4.3. PRETRAŽIVANJE I SORTIRANJE

1, 2, 3, 4, 5

8 6

6 7 8 7

9 9

1, 2, 3, 4, 5, 6

9 7

8 7 8 9

1, 2, 3, 4, 5, 6, 7

9 8

8 9

1, 2, 3, 4, 5, 6, 7, 8

1, 2, 3, 4, 5, 6, 7, 8, 9

Slika 4.5

Algoritam 4.14
ULAZ: Hrpa H : h1 , . . . , hn
IZLAZ: Hrpa H 0 koja je dobijena iz hrpe H izbacivanjem vrijednosti koja
se nalazila u korijenu.

1. h[1] := h[n]. p := h[n]. Izbaci element h[n], i := 1


POGLAVLJE 4. ALGORITMI 165

2. Radi korake od 3 do 4 sve dok je 2 · i ≤ n i (h[i] < h[2 · i] ili je


h[i] < h[2 · i]).

3. Ako je h[2 · i] ≤ h[i · i + 1], onda swap(h[i], h[2 · i]).

4. Ako je h[2 · i] > h[i · i + 1]- onda swap(h[i], h[2 · i + 1]).

5. Vrati p.

Ovaj algoritam mijenja promatrani element s onim na sljedećoj razini.


Stoga se koraci od 2 do 4 mogu ponoviti najviše blog2 nc puta. Stoga je
njegova složenost:

DelHeap
Tmax (n) ≤ c1 + c2 · blog2 nc
= O(lg n)

U najboljem će slučaju prebačeni element ostati korijen i neće prolaziti


kroz stablo.
U tom je slučaju složenost

DelHeap
Tmin (n) = c1 + c2
= Θ(1).

Nadalje, vrlo slično kao i kod punjenja zaključuje se da je

DelHeap
Tavg (n) = O(lg n).

I na kraju, algoritam sortiranja pomoću hrpe čita redom elemente liste


i stavlja ih u hrpu. Nakon što se svi elementi liste nadu u hrpi, počinje
pražnjenje hrpe. Kako se elementi izbacuju iz hrpe tako se redom upisuju
natrag u listu. Nakon što se hrpa isprazni, lista će biti sortirana.

Algoritam 4.15
ULAZ: Lista a1 , . . . , an
IZLAZ: Sortirana lista koja se sastoji od istih elemenata kao i ulazna lista.

1. Za i := 1, . . . , n radi korak 2.

2. InsHeap(ai ).

3. Za i := 1, . . . , n radi korak 4.

4. ai := DelHeap.
166 4.3. PRETRAŽIVANJE I SORTIRANJE

Jasno je da se u svakom slučaju koraci od 1 do 2, te koraci od 3 do 4


izvode n puta, pri čemu je n duljina ulazne liste. Složenost algoritama za
umetanje elemenata u hrpu i brisanje elemenata iz hrpe izračunata je ranije,
pa imamo:

n
X n
X
HeapSort InsHeap DelHeap
Tmax (n) = c1 + Tmax (i) + Tmax (i)
i=1 i=1
n
X n
X
≤ c1 + (d1 + d2 · log2 i) + (e1 + e2 · log2 i)
i=1 i=1
≤ c1 + n · d1 + n lg n · d2 + n · e1 + n lg n · e2
= c1 + (d1 + d2 ) · n + (e1 + e2 ) · n lg n
= O(n lg n).

Slično se dobija i da je

HeapSort
Tavg (n) = O(n lg n).
I na kraju,

n
X n
X
HeapSort InsHeap DelHeap
Tmin (n) = c1 + Tmin (i) + Tmin (i)
i=1 i=1
n
X n
X
≤ c1 + d1 + e1
i=1 i=1
≤ c1 + n · d1 + n · e1
= c1 + (d1 + e1 ) · n
= O(n).

Ovako izvedeno sortiranje pomoću hrpe ima istu manu koju smo spome-
nuli kod sortiranja spajanjem - potreban je dodatni memorijski prostor za
hrpu u kojoj mora biti mjesta za još jednu kopiju svakog elementa ulazne
liste. Može li se to izbjeći? Za razliku od sortiranja spajanjem, sortiranje
pomoću hrpe se može izvesti prirodno i bez dodatnog prostora. Polje u
kojem su smješteni elementi može se koristiti ujedno i kao hrpa. Kako?
Kao prvo, potrebno je malo predefinirati hrpu. Hrpa kakvu smo do sada
rabili bila je tzv. min-hrpa, tj. hrpa u kojoj je oznaka roditelja manja
od oznaka njegove djece, tj. u kojoj se u korijenu nalazi najmanji element
hrpe. Max-hrpa se definira obrnuto. Oznaka roditelja u njoj mora biti veća
od oznaka njegove djece. U takvoj hrpi u korijenu će se nalaziti najveći
element u hrpi. Primjer ovakve hrpe za listu iz našeg prethodnog primjera
je
POGLAVLJE 4. ALGORITMI 167

8 5

7 3 4 2

1 6

Slika 4.6

Ovakva se hrpa može izvesti u samom polju koje sadrži ulazne podatke.
Kreće se od prvog elementa. Nakon toga se promatra drugi element polja
i na već ranije opisani način, uz zamjenu usporedbe, prva se dva elementa
pretvore u hrpu. Nakon toga se promatra treći element u polju i iz prva tri
elementa se, na ranije opisani način, stvori hrpa, itd. Tako se radi sve dok
svi elementi polja ne čine hrpu. Nakon toga će se u korijenu nalaziti najveći
element. Brisanje elemenata iz hrpe ide na isti način kao i ranije, samo što
se obrisani element ne stavlja u posebno polje, već korijen mijenja mjesto s
posljednjim elementom u polju. Nakon toga je sigurno da je element, koji
je bio u korijenu, stavljen na svoje završno mjesto u polju, tj. na posljednje
mjesto, pa se broj elemenata u hrpi smanjuje za 1, i hrpa se preureduje tako
da zadovoljava sva tražena svojstva. Ovaj je postupak isto tako već opisan
ranije. Dakle, postupak je sljedeći:

Algoritam 4.16
ULAZ: Lista a1 , . . . , an
IZLAZ: Sortirana lista koja se sastoji od istih elemenata kao i ulazna lista.

1. Za i := 1, . . . , n radi korake 2-4.

2. j = i.

3. Sve dok je (i > 1) ∧ (a[i/2] < a[i]) radi korak 4.

4. swap(a[i], a[i/2]).

5. i := n.

6. Sve dok i > 1 radi korake 7-17.

7. swap(a[1], a[i]).

8. i := i − 1.
168 4.3. PRETRAŽIVANJE I SORTIRANJE

9. j := 1.

10. Sve dok je (2 · j + 1 ≤ i) ∧ (max(a[2j], a[2j + 1]) > a[j]) radi korake
11-16.

11. if a[2 · j] > a[2 · j + 1] radi korake 12-13.

12. swap(a[j], a[2 · j]).

13. j := 2j.

14. Inače radi korake 15-16.

15. swap(a[j], a[2 · j + 1]).

16. j := 2 · j + 1.

17. Ako je (2 · j ≤ i) ∧ (a[2 · j] > a[j]) onda swap([a[j], a[2 · j]).

Složenost ovog algoritma ista je kao i složenost originalnog algoritma za


sortiranje pomoću hrpe. Naime, ovo je u biti isti algoritam kao i prethodni,
samo s manje korištenog memorijskog prostora.

Quicksort algoritam
Sada ćemo obraditi algoritam sortiranja koji danas predstavlja jedan od
vrhunaca algoritama za sortiranje. Promišljanjem kako bi se mogao ubrzati
algoritam sortiranja spajanjem te izbjeći potrebu za upotrebom pomoćnog
polja, nastao je ovaj algoritam. Naime, kod algoritma sortiranja spajanjem,
sortiranje se vrši u dvije faze: dijeljenje liste na manje podliste, te spajanje
podlista u sortiranu listu. Pokušaji ubrzanja faze dijeljenja liste doveli su
do algoritma prirodnog sortiranja spajanjem (natural merge sort) ([6] str
161-163), dok je pokušaj ubrzanja faze spajanja doveo do potpuno novog
algoritma sortiranja - quicksort algoritma. Quicksort algoritam, kao i algo-
ritam sortiranja spajanjem, temelji se na metodi podijeli pa ovladaj, no kod
njega je faza spajanja u potpunosti izbjegnuta.
Kao prvo, potrebno je istaknuti jedan element liste - tzv. pivot element.
Za pivot element se može uzeti prvi element liste, srednji izmedu prva tri
ili ga se može izračunati na bilo koji drugi način. Jedino što je važno jest
da se pivot mora izračunati u vremenu O(1). Nakon toga se elementi u listi
preslaguju tako da u prvom dijelu liste budu elementi koji su manji od pivota,
a u drugom dijelu liste elementi veći od pivota. Nakon toga se algoritam
izvodi rekurzivno za prvi i drugi dio liste. Postupak se ponavlja sve dok
lista nema manje od dva elementa, a tada sortiranje postaje trivijalno.
Primijetimo da nakon što su elementi u podlistama sortirani nije po-
trebno nikakvo spajanje. Naime, zbog preuredenja polja, svi su elementi u
drugom dijelu liste veći od svakog elementa iz prvog dijela liste.
POGLAVLJE 4. ALGORITMI 169

Prije negoli prikažemo primjer sortiranja liste ovim algoritmom potrebno


je razriješiti neke tehničke detalje izvedbe. Točnije, potrebno je reći kako
će se vršiti premještanje elemenata liste? Za to su potrebna dva kursora,
od kojih će prvi biti iniciran na drugi element liste i rasti, a drugi će biti
iniciran na posljednji element liste i padati. Neka je pivot prvi element
liste. Promatramo preostale elemente liste redom. Ako je promatrani ele-
ment (onaj na kojeg pokazuje prvi kursor) manji od pivota, prvi se kursor
pomiče za jedan element dalje. Ako je veći od pivota, tada se prelazi na
pretraživanje liste odzada. Pretražuje se lista odzada sve dok se ne pronade
element manji od pivot elementa. Nadenim se elementima promijene mjesta
i nastavlja se tražiti od prvog kursora. Pretraživanje završava kada prvi kur-
sor premaši drugi. Zanimljivo je da će u trenutku kada se prvi kursor nade
iza drugoga, drugi kursor pokazivati točno na ono mjesto u listi na kojem će
se nalaziti pivot kada će lista biti sortirana. Kako se pivot element, prema
našem algoritmu, sada nalazi na početku promatranog dijela liste, potrebno
je zamijeniti pivot element s onim elementom na koji pokazuje drugi kursor.
Nakon toga je potrebno odvojeno ponoviti postupak sortiranja za elemente
koji se nalaze do kursora i one koji se nalaze iza kursora. Kursor više nije
potrebno obradivati jer se on, kao što smo već rekli, nalazi na mjestu na
kojem će se nalaziti i u sortiranoj listi.

Primjer 4.8 Sortirajmo opet istu listu quicksort algoritmom. Za pivot


element se uzima prvi element u listi.

7 3 5 1 8 4 2 9 6

Pivot element je element s vrijednošću 7. Pretražuje se lista od početka


i traži se vrijednost veća od pivota. Prva je takva vrijednost broj 8. Sa
stražnje strane liste traga se za elementom s vrijednošću manjom od pivota.
To je element s vrijednošću 6.

7 3 5 1 8 4 2 9 6

Zamijenimo mjesta tim dvama elementima.

7 3 5 1 6 4 2 9 8

Tražimo dalje. Sljedeći element s većom vrijednošću od pivota je element


s vrijednošću 9. S druge strane, sljedeći element s vrijednošću manjom od
pivota je element s vrijednošću 2. U tom je trenutku drugi kursor prešao
ispred prvog i ovaj se dio algoritma završava. Sada se lista dijeli na dva
dijela - od početka liste pa do drugog kursora, te od prvog kursora do kraja.

7 3 5 1 6 4 2 9 8
170 4.3. PRETRAŽIVANJE I SORTIRANJE

Kako je pivot najveći u prvom dijelu, on se stavlja na kraj prvog dijela, te


se postupak ponavlja za sve elemente do njega, dok se pivot element sigurno
nalazi na onom mjestu gdje će se naći i u sortiranoj listi, pa njega ne treba
više dirati. Sada se postupak ponavlja na prvom i na drugom dijelu.

2 3 5 1 6 4 7 9 8

Pogledajmo prvi dio. Pivot je broj 2. Promatrano sprijeda, prvi element


veći od pivota je element s vrijednošću 3. Straga, prvi element s vrijednošću
manjom od pivota je onaj koji ima vrijednost 1. Mijenjamo im mjesta.

2 3 5 1 6 4 7 9 8

2 1 5 3 6 4 7 9 8

Daljnje pretraživanje sprijeda će se zaustaviti na sljedećem elementu, s vri-


jednošću 5. Pretraživanje odostraga će opet stati na broju 1, te će u tom
trenutku opet prvi kursor prijeći iza drugoga. Mijenjamo pivot sa zadnjim
elementom u prvom dijelu, tj., u ovom slučaju, 2 i 1.

1 2 5 3 6 4 7 9 8

Sada promatramo posljednja dva elementa. Pivot je element s vrijednošću


9. Tražeći sprijeda element veći od pivota, prijeći ćemo posljednji element
liste i u tom trenu prvi kursor će prijeći iza drugog. Pivot mijenja mjesto s
posljednjim u prvom dijelu, čime dobivamo

1 2 5 3 6 4 7 8 9

Sada promatramo jedini preostali niz koji je preostao, koji je dulji od jednog
elementa. Pivot će biti element s vrijednošću 5. Pretraga sprijeda staje na
elementu s vrijednošću 6, a straga na elementu s vrijednošću 4.

1 2 5 3 6 4 7 8 9

Mijenjamo im mjesta.

1 2 5 3 4 6 7 8 9

Daljnja pretraga sprijeda će završiti na broju 6, a pretragom straga ćemo


prijeći ispred prvog kursora. Pivot mijenja mjesto s elementom s vrijednošću
4.

1 2 4 3 5 6 7 8 9
POGLAVLJE 4. ALGORITMI 171

Preostao je još jedan segment polja, koji ima više od jednog elementa, i njega
takoder sortiramo. Pivot je element s vrijednošću 4. Pretraga sprijeda će
prijeći posljednji element promatranog segmenta. Pivot mijenja mjesto s
elementom na kojeg pokazuje drugi kursor, čime se dobije:

1 2 3 4 5 6 7 8 9

odnosno sortirana lista.

Algoritam 4.17
ULAZ: Lista a1 , . . . , an i kursori i i j na početak, odnosno na kraj dijela
polja koji sortiramo
IZLAZ: Sortirana lista koja se sastoji od istih elemenata kao i ulazna lista.

1. k := i + 1, l := j.

2. Sve dok je k <= l radi korake 3-5.

3. Dok je ((k <= l) ∧ (ai >= ak )) k := k + 1.

4. Dok je ((k <= l) ∧ (ai <= al )) l := l − 1.

5. Ako je k < l swap(ak , al ).

6. Ako je l > i swap(ai , al ).

7. Ako je l > i Quicksort(a, i, l − 1).

8. Ako je k < j Quicksort(a, k, j).

Najgori slučaj za ovaj algoritam je kada je lista već unaprijed sortirana


ili ako je sortirana obrnutim redosljedom. U tim će se slučajevima, u svakom
prolazu lista dijeliti na podlistu od jednog elementa i podlistu koja sadrži
sve elemente osim jednog. Korak 1 ima konstantnu složenost. Koraci od 2
do 5 imaju složenost c2 + c3 · n. Složenost koraka 6 je konstantna. Stoga je
složenost Quicksorta u najgorem slučaju

Quicksort Quicksort
Tmax (n) = c1 + c2 + c3 · n + c4 + Tmax (n − 1)
Quicksort
= Tmax (n − 1) + d1 · n + d2

Standardni zapis ove rekurzije je

tn = tn−1 + d1 · n + d2 .
Oduzmemo li od jednadžbe za n-ti element niza jednadžbu za n − 1-vi dobit
ćemo:
172 4.3. PRETRAŽIVANJE I SORTIRANJE

tn = tn−1 + d1 · n + d2
tn−1 = tn−2 + d1 · (n − 1) + d2
tn − tn−1 = tn−1 − tn−2 + d1

Drugim riječima, dobivamo rekurziju

tn = 2 · tn−1 − tn−2 + d1 .
Oduzmemo li od ove jednadžbe jednadžbu za (n−1)-vi element niza, imamo:

tn = 2 · tn−1 − tn−2 + d1
tn−1 = 2 · tn−2 − tn−3 + d1
tn − tn−1 = 2 · tn−1 − 3 · tn−2 + tn−3

tj, dobivamo homogenu rekurziju

tn = 3 · tn−1 − 3 · tn−2 + tn−3 .


Karakteristična jednadžba ove rekurzije je

x3 − 3x2 + 3x − 1 = 0.
Ova jednadžba ima jedan trostruki korijen x1,2,3 = 1. Dakle, opće rješenje
ove rekurzije je

tn = C1 · 1n + C2 · n · 1n + C3 · n2 · 1n ,
odnosno,

tn = C1 + C2 · n + C3 · n2 .
Dakle,

Quicksort
Tmax (n) = O(n2 ).

Najbolji mogući slučaj za ovaj algoritam je kada je svaki izabrani pivot


srednja vrijednost elemenata dijela liste koji se promatra. U tom se slučaju
lista dijeli na dva podjednako dugačka dijela. Složenost u tom slučaju iznosi
j k
Quicksort Quicksort n
Tmin (n) ≤ 2 · Tmax ( ) + d1 · n + d2 .
2
Dakle, u standardnom obliku

tn ≤ 2 · t n2 + d1 · n + d2 .
Uvedemo li supstituciju sn = t2n i onda imamo
POGLAVLJE 4. ALGORITMI 173

sn = t2n = 2 · t 2n + d1 · 2n + d2
2
= 2 · t2n−1 + d1 · 2n + d2
= 2 · sn−1 + d1 · 2n + d2 .

Oduzmemo li od formule za n-ti član niza formulu sa (n − 1)-vi član niza


imat ćemo

sn = 2 · sn−1 + d1 · 2n + d2
sn−1 = 2 · sn−2 + d1 · 2n−1 + d2
sn − sn−1 = 2 · sn−1 − 2 · sn−2 + d1 · 2n−1 ,

odnosno,

sn = 3 · sn−1 − 2 · sn−2 + d1 · 2n−1 .


Od ove formule oduzmemo dvostruku formulu za (n − 1)-vi član i dobijamo
homogenu rekurziju

sn = 3 · sn−1 − 2 · sn−2 + d1 · 2n−1


2 · sn−1 = 6 · sn−2 − 4 · sn−3 + d1 · 2n−1
sn − 2 · sn−1 = 3 · sn−1 − 8 · sn−2 + 4 · sn−3

odnosno,

sn = 5 · sn−1 − 8 · sn−2 + 4 · sn−3 .


Karakteristična jednadžba ove formule je

x3 − 5x2 + 8x − 4 = 0.
Ova jednadžba ima jednostruki korijen x1 = 1 te dvostruki korijen x2,3 = 2.
Dakle, opće rješenje ove jednadžbe je

sn = C1 · 1n + C2 · 2n + C3 · n · 2n .
Konačno,

t2n = C1 + C2 · 2n + C3 · n · 2n .
Iz posljednje formule slijedi da je

tn = C1 + C2 · n + C3 · n · log2 n.
Dakle, u najboljem je slučaju

Quicksort
Tmax = O(n · lg n).
174 4.3. PRETRAŽIVANJE I SORTIRANJE

Preostao nam je još prosječan slučaj. Pretpostavimo da je svaki raspored ele-


menata polja jednako vjerojatan. Da bismo pojednostavili račun složenosti
prosječnog slučaja, nećemo brojiti sve operacije koje algoritam radi, već
samo operacije usporedivanja nad elementima polja. Lako se može vidjeti
da frekvencija ostalih operacija ovisi upravo o broju usporedivanja. Pret-
postavljamo da su svi elementi u polju različiti, te da je jednaka vjerojatnost
izbora svakog elementa polja za pivota.
Promotrimo segment polja am , . . . , ap . Kako je jednako vjerojatno da će
za pivot element biti uzet i-ti element po veličini za svaki i = 1, . . . , p−m+1,
prolaz Quicksorta će podijeliti polje na polja am , . . . , am+i−2 i am+i , . . . , ap
1
s vjerojatnošću p−m+1 . Dakle, složenost u prosječnom slučaju bit će dana s

n
Quicksort 1 X Quicksort Quicksort
Tavg (n) =n+1+ (Tavg (i − 1) + Tavg (n − i))
n
i=1

Pri tome je n+1 broj usporedbi koje algoritam radi prije rekurzivnog poziva.
Dakle, imamo rekurziju
n
1X
tn = (ti−1 + tn−i ) + n + 1.
n
i=1

Pomnožimo li ovu jednadžbu s n dobivamo


n
X
n · tn = (ti−1 + tn−i ) + n · (n + 1),
i=1

odnosno
n−1
X
n · tn = 2 · ti + n · (n + 1).
i=0

U prethodnoj formuli zamijenimo n s n − 1 te oduzmemo tako dobivenu


formulu od gornje formule:

P
n−1
n · tn = 2· ti + n · (n + 1)
i=0
P
n−2
(n − 1) · tn−1 = 2· ti + n · (n − 1)
i=0
n · tn − (n − 1) · tn−1 = 2tn−1 + n · (n + 1) − n · (n − 1)

Iz toga slijedi da je

n · tn = (n + 1) · tn−1 + 2 · n.
Podijelimo li jednadžbu s n(n + 1), dobit ćemo
POGLAVLJE 4. ALGORITMI 175

tn tn−1 2
= + . (4.8)
n+1 n n+1
Primijenimo li ponovo formulu 4.8 za tn−1 imat ćemo

tn tn−2 2 2
= + +
n+1 n−1 n n+1
tn−3 2 2 2
= + + +
n−2 n−1 n n+1
·
·
·
X1 n+1
t1
= +2
2 i
i=3

No, poznato je da je

n+1
X Z
n+1
1 1
≤ dx = ln(n + 1) − ln 2
i x
i=3 2

iz čega slijedi da je

Quicksort
Tavg ≤ 2 · (n + 1)[ln(n + 2) − ln 2]
tj.

tn = O(n · lg n).
Treba napomenuti da je Quicksort, kao što i njegovo ime kaže, u praksi
brz za većinu slučajeva. No, pri tome treba imati na umu nekoliko stvari.
Prva je da Quicksort ima složenost najgoreg slučaja O(n2 ), pa se može desiti
da za neke instance Quicksort bude spor. Osim toga, izvedba Quicksorta
je složenija od izvedbe, npr., sortiranja umetanjem. Time se želi reći da su
konstante koje se javljaju u formuli vremenske složenosti Quicksorta, znatno
veće od konstanti koje se javljaju u nekim drugim algoritmima sortiranja,
npr. u sortiranju umetanjem. To se ne vidi u krajnjoj asimptotskoj ocjeni
složenosti, ali će to znatno utjecati na brzinu rada kod instanci manje duljine.
Stoga će algoritam sortiranja umetanjem biti znatno brži za male liste (do
otprilike 20 elemenata), dok će Quicksort svoju nadmoć pokazivati tek na
velikim listama (više od 100000 elemenata).
Glavni nedostatak Quicksorta je, kao što je već rečeno, njegova složenost
u najgorem slučaju. Ovaj je problem posebno izražen jer se najgori slučaj
postiže u potpuno sortiranom i obrnuto sortiranom polju. Drugim riječima,
algoritam će imati tendenciju da lošije radi ako je na početku polje uredenije,
176 4.3. PRETRAŽIVANJE I SORTIRANJE

a vrlo često će upravo tako i biti. Naime, podaci su vrlo često djelomično
sortirani. Drugim riječima, često distribucija instanci problema sortiranja
nije uniformna. Kako bi se ovaj problem umanjio u stvarnoj izvedbi Quick-
sorta pivot se pokušava na razne načine ”pametnije” izabrati. Jedna je ideja
da se pivot izabere kao srednji po veličini element od prva tri u listi ili pak
kao srednja vrijednost prva dva elementa. Druga, još bolja ideja je random-
izacija algoritma, tj. pivot se izabire kao slučajni element liste. To znatno
umanjuje mogućnost najgoreg slučaja.

4.3.3 Donja meda složenosti algoritama usporedivanja i sor-


tiranja temeljenih na usporedivanju
Svi algoritmi opisani do sada u ovom poglavlju temelje se na usporedivanju
kao osnovnoj operaciji pomoću koje se izvršava premještanje elemenata u
polju. Pri tome smo našli dva algoritma koja imaju složenost O(n lg n) u
najgorem slučaju, te jedan koji ima složenost O(n2 ) u najgorem, ali O(n lg n)
u prosječnom slučaju. Postavlja se pitanje da li se može bolje od toga? U
ovom poglavlju bavit ćemo se ocjenom donje mede maksimalne složenosti
koju neki algoritam sortiranja može imati.
Uvest ćemo pojam stabla usporedivanja, koja će nam pomoći pronaći
donju medu složenosti naših problema, koje smo ranije obradili, tj. pre-
traživanja i sortiranja. Ova stabla nećemo definirati formalno, jer se njihova
definicija može znatno razlikovati ovisno o problemu koji opisuju.
Stablo usporedivanja za problem pretraživanja definira se na sljedeći
način: svaki unutarnji vrh stabla predstavljat će usporedbu elementa polja
s x, odnosno vrijednošću koju tražimo. Lijevo podstablo će predstavljati
daljnje mogućnosti pretraživanja, ako je traženi element manji od proma-
tranog elementa polja, a desno podstablo mogućnosti daljnjeg pretraživanja
ako je traženi element veći od promatranog. Ako je x jednak promatra-
nom elementu polja, onda algoritam staje, pa nema podstabla za taj slučaj.
Svaki list stabla će predstavljati neuspjeh pretraživanja.
Pogledajmo sada slučaj kada je polje koje se promatra uzlazno sortirano.
Osim toga, pretpostavljamo da su elementi u polju medusobno različiti. Za
taj slučaj se mogu primijeniti razni algoritmi, od kojih smo dva obradili u
prvom dijelu ovog poglavlja. Radi se o slijednom i binarnom pretraživanju.
Slijedno pretraživanje se može malo modificirati kada se radi o sorti-
ranom polju. Naime, prvo usporedujemo traženi element s prvim elemen-
tom polja. Ako je traženi element manji od prvog u polju, onda je on
sigurno manji i od ostalih elemenata polja, pa odmah možemo stati. Za
svako usporedivanje koje napravimo možemo dati sličnu argumentaciju, pa
algoritam može stati odmah čim u polju naidemo na element koji je veći
od traženoga. Stoga slijedno pretraživanje sortiranog polja možemo opisati
sljedećim stablom usporedivanja:
POGLAVLJE 4. ALGORITMI 177

x:A[1]

F x:A[2]

F .
.
.
x:A[n-1]

F x:A[n]

F F

Slika 4.7

Vidi se da ovo stablo ima (n + 1) -vu razinu. Dakle, algoritam će u


najviše n usporedivanja doći do rješenja. Kako svako usporedivanje odnosi
najmanje konstantno mnogo vremena, ovaj algoritam će imati vremensku
složenost najgoreg slučaja Ω(n).
S druge strane, binarno pretraživanje sortiranog polja opisano je sljede-
ćim stablom pretraživanja:
178

x:A[bn/2c]

x:A[bn/4 c] x:A[b3n/4c]

. .
. .
. .

x:A[1] ... x:A[bn/2 c] x:A[bn/2c+1] ... x:A[n]

F F F F F F F F
4.3. PRETRAŽIVANJE I SORTIRANJE

Slika 4.8
POGLAVLJE 4. ALGORITMI 179

Jasno je da je visina ovog stabla dlg ne + 1. To znači da će binarno


pretraživanje dati odgovor uz najviše dlg ne usporedivanja. Dakle, za svaki
mogući x vremenska složenost binarnog pretraživanja bit će Ω(lg n). Sada
ćemo dokazati da je to asimptotski optimalno.

Teorem 4.3 Neka je A polje koje se sastoji od n različitih vrijednosti, sor-


tiranih uzlazno. Minimalna složenost algoritma za pretraživanje tog polja
je Ω(lg n).

Dokaz. Svaki algoritam nad ovim poljem je definiran nekim stablom


usporedivanja.
Promatrat ćemo sve listove stabla. Algoritam može neuspješno završiti
u bilo kojem elementu stabla. Stoga, svako stablo usporedivanja ovog pro-
blema ima točno n listova. Stablo s n listova ima minimalno dlg ne razina.
Broj razina stabla definirat će najveći broj koraka koji algoritam mora
izvesti da bi izvršio pretraživanje. Uz pretpostavku da se svaki korak može
izvesti u konstantnom vremenu, zaključujemo da algoritam pretraživanja u
najgorem slučaju mora imati složenost Ω(lg n).
Ovaj teorem pokazuje da je binarno pretraživanje asimptotski optimalno
pretraživanje sortiranog polja.
Promotrimo sada problem sortiranja. I ovdje ćemo, radi lakšeg računa-
nja pretpostaviti da su svi elementi polja različiti.

Teorem 4.4 Neka je zadano polje A koje sadrži n različitih elemenata.


Svaki algoritam za sortiranje, temeljen na usporedivanju, ima u najgorem
slučaju složenost Ω(n lg n).

Dokaz. Za problem sortiranja treba se definirati tzv. prošireno stablo


usporedivanja. Unutarnji čvorovi ovog stabla predstavljaju usporedbe dvaju
elemenata polja. Listovi stabla sadrže krajnje rješenje, tj. permutaciju.
Jasno je da listovi moraju pokriti svaku permutaciju ulaznog polja, pa
ovo polje ima n! listova. Prema tome, ovo stablo ima dlg n!e razina. Prema
Stirlingovoj formuli slijedi da je
n
dlg n!e = n · lg n − + O(1).
ln2
Odavde slijedi da algoritam sortiranja, temeljen na usporedivanju, mora
u najgorem slučaju imati složenost Ω(n ln n).

4.3.4 Sortiranje u vremenu O(n)


Naslov ovog podpoglavlja na prvi je pogled u suprotnosti rezultatima pret-
hodnog potpoglavlja. Kako je moguće napraviti algoritme koji rade ispod
izračunate donje mede? Radi se o tome da smo u prethodnom poglavlju
dokazali da algoritmi sortiranja, koji se temelje na usporedivanju, imaju
180 4.3. PRETRAŽIVANJE I SORTIRANJE

složenost Ω(n lg n). To znači da možemo naći brži algoritam, ali se on


ne može temeljiti na usporedivanju kao osnovnoj operaciji. Je li moguće
takvo što uraditi? Općenito nije, ali jest u nekim posebnim slučajevima. U
ovom ćemo poglavlju dati tri algoritma koji su, uz odredene uvjete, brži od
O(n lg n).

Sortiranje prebrojavanjem
Sortiranje prebrojavanjem je jako jednostavna i efikasna metoda sortiranja,
uz uvjet da je skup S, iz kojeg se uzimaju vrijednosti elemenata, dovoljno
mali tako da se može definirati polje veličine |S|. Zbog jednostavnosti, uzet
ćemo da su elementi koje sortiramo cijeli brojevi iz segmenta [1, m].
Neka imamo polje A koje se sastoji od n cijelih brojeva iz segmenta
[1, m]. Generira se polje B duljine m, čiji se elementi iniciraju na vrijednost
0. Nakon toga se gledaju elementi polja A redom i ako je A[i] = k onda
se k-ti element polja B povećava za 1. Na kraju tog postupka polje B će
sadržavati frekvenciju svakog broja iz segmenta [1, m] u polju A. Nakon toga
je još samo potrebno redom puniti polje A elementima čiji je broj zapisan u
polju B. Formalno, algoritam će izgledati ovako:

Algoritam 4.18
ULAZ: Polje A od n elemenata, čije su vrijednosti cijeli brojevi iz segmenta
[1, m].
IZLAZ: Sortirano polje koje se sastoji od elemenata iz polja A.

1. Za i = 1, . . . , m radi B[i] = 0.

2. Za i = 1 . . . , n radi B[A[i]] = B[A[i]] + 1

3. k = 1

4. Za i = 1, . . . , m radi korake 5-7

5. Za j = 1, . . . , B[i] radi korake 6-7

6. A[k] = i

7. k = k + 1

Petlja iz 1 se izvodi m puta, a operacije svakog koraka petlje se izvode


u konstantnom vremenu. Petlja iz 2 izvodi se n puta, a za svaki korak ove
petlje potrebno je konstantno vrijeme. Korak 3 je konstantnog trajanja.
Korake od 4 do 7 promatrat ćemo zajedno. Vanjska se petlja izvodi m puta,
dok se unutarnja petlja ukupno izvodi onoliko puta koliko ima elemenata
polja A, dakle n puta. Stoga se i koraci 6 i 7 izvršavaju n puta. Složenost
ovog algoritma je jednaka za sve ulaze iste duljine i iznosi:
POGLAVLJE 4. ALGORITMI 181

T CountSearch (n, m) = c1 + c2 · m + c3 · n.
Odnosno,

T CountSearch (n, m) = Θ(m + n).


Fiksiramo li m, dobijamo da je

T CountSearch (n) = Θ(n).


Drugim riječima, ovaj algoritam će sortirati listu u vremenu koje linearno
raste s porastom broja elemenata u listi.

Radix sort
Ova metoda potječe iz ranijih vremena računarstva i koristila se kod sorti-
ranja bušenih kartica.
Metoda se temelji na sortiranju vrijednosti liste prema pojedinim zna-
menkama, odnosno prema slovima na pojedinoj poziciji, ako se radi o sor-
tiranju alfanumeričkih podataka. Zbog jednostavnosti, mi ćemo ovdje pret-
postaviti da se radi o sortiranju cjelobrojnih vrijednosti. U svakom se koraku
vrijednosti rasporeduju s obzirom na jednu svoju znamenku, u 10 pomoćnih
polja. No, kako je izvesti? Prva je pomisao da se prvo rasporedivanje izvede
po vodećoj znamenci brojeva, pa nakon toga po drugoj, itd. Ovakav pristup
zahtjeva vrlo mnogo memorijskog prostora. Naime, u drugom prolazu za
to nam je već potrebno 102 = 100 pomoćnih polja, a u trećem 103 = 1000
itd. Ovo predstavlja velik utrošak memorije. Iako se taj utrošak može sma-
njiti na dva polja duljine n, svejedno ostaje kôd, koji je složen za izvedbu.
U ranije doba, kada su se rabile bušene kartice, ovakav algoritam ne bi bio
pogodan za sortiranje kartica. Koristi se ideja da se prvo rasporedivanje vrši
po najmanje značajnoj znamenci (jedinici). Nakon toga se sve vrijednosti
opet upišu u jedno polje, prvo one koje imaju najmanje značajnu znamenku
0, pa onda one koje imaju najmanje značajnu znamenku 1, itd. Tako do-
biveno polje se sortira po drugoj najmanje značajnoj znamenci, itd., sve
do najznačajnije znamenke. Kada se vrijednosti po posljednji puta spoje u
jedno polje, to polje je sortirano. Formalno, ovaj algoritam je:

Algoritam 4.19
ULAZ: Polje A od n elemenata
IZLAZ: Sortirano polje koje se sastoji od elemenata iz polja A.

1. Za i := 0, . . . , n radi Index[i] = 0.

2. k := 0.

3. gotovo := T .
182 4.3. PRETRAŽIVANJE I SORTIRANJE

4. Za i := 1 . . . , n radi korake 5-8.

5. m := (A[i] ÷ 10k ) mod 10.

6. Ako je A[i] ÷ 10k > 0 gotovo := F .

7. Index[m] := Index[m] + 1.

8. B[m, Index[m]] := A[i].

9. Ako je gotovo = T stani.

10. l := 1.

11. Za i := 0, . . . , 10 radi

12. Za j := 1, . . . , Index[i] radi korake 13-14.

13. l := l + 1.

14. A[l] := B[i, j].

15. gotovo := T .

16. k := k + 1.

17. Idi na 4.

Kao prvo, ovaj algoritam nije, kao većina ranije opisanih, intuitivno
jasan. Iz njega nije potpuno jasno da on listu sortira ulazno. Stoga je
potrebno dokazati da je ovaj algoritam zaista korektan.

Teorem 4.5 (Korektnost) Radix sort algoritam sortira svako zadano po-
lje.
Dokaz. Indukcijom po broju znamenaka k, najveće vrijednosti u polju.
Baza indukcije: Neka k = 1. Ako su svi brojevi jednoznamenkasti, onda
ćemo ih u prvom prolazu podijeliti na 10 pomoćnih polja. U prvom će biti
sve nule, u drugom sve jedinice, itd. Kod spajanja će nule doći na početak,
jedinice iza njih itd., pa će polje biti sortirano.
Pretpostavimo da radix sort ispravno sortira brojeve do m znamenaka.
Neka je k = m + 1. Nakon m-tog spajanja brojevi će biti sortirani is-
pravno po posljednjih m znamenaka. U (m + 1)-om razdijelimo brojeve u
10 pomoćnih polja, tako da u prvom budu svi koji imaju vodeću nulu, u
drugom svi koji imaju vodeću jedinicu itd. Osim toga, kako su brojevi bili
sortirani po preostalih m znamenaka, u svakom će pomoćnom polju brojevi
biti sortirani. Kada spojimo pomoćna polja tako da prvo stavimo brojeve
s vodećom nulom, pa one s vodećom jedinicom i tako redom, dobit ćemo
sortirano polje.
POGLAVLJE 4. ALGORITMI 183

Pogledajmo sada složenost ovog algoritma.


Neka najveći broj u polju ima k znamenaka. Tada će algoritam imati
k prolaza. U svakom prolazu vrijeme potrebno za podjelu vrijednosti po
promatranoj znamenci je O(n), i za spajanje takoder O(n). Dakle, imamo

T RadixSort (k, n) = k · (O(n) + O(n)).


Odnosno,

T RadixSort (k, n) = O(k · n).


Ako fiksiramo k, onda ćemo imati

T RadixSort (n) = O(n).


Ovo vrijedi neovisno o distribuciji, odnosno instanci koju ovaj algoritam
sortira. No, valja reći da složenost ovog algoritma značajno ovisi o veličini
brojeva koji se sortiraju.

Sortiranje pomoću pretinaca


Treći algoritam sortiranja, sortiranje pomoću pretinaca (engl. bucket sort),
nije u najgorem slučaju vremenske složenosti O(n), već je, u odredenom
slučaju prosječne složenosti O(n). Taj je sort poznat pod imenom bucket sort
i temelji se na pretpostavci da je distribucija elemenata u polju uniformna
na nekom segmentu [m, M ].
Kao što je već rečeno, da bi ovaj algoritam radio dobro, elementi polja
moraju biti uniformno distribuirani izmedu minimalnog i maksimalnog ele-
menta u polju. Ako polje ima n elemenata, stvara se struktura koja ima n
pretinaca takvih da u svaki pretinac možemo staviti od 0 do n elemenata.
Ovo se može implementirati kao polje ili vezana lista, koja sadrži pokazivače
na n vezanih listi ili polja. Ova struktura je poznata kao otvorena hash-
tablica, pri čemu je hash-funkcija, koja se ovdje koristi, vrlo jednostavna:
» ¼
M −m
h(i) = +m
n
U slučaju normalne distribucije očekuje se da će u svakom pretincu hash-
tablice biti točno jedan element. Ako ih je više, onda se sortiraju nekom
od poznatih standardnih metoda sortiranja. Mi ćemo koristiti metodu sor-
tiranja pomoću hrpe iz dva razloga: prvo zato jer ima složenost O(n · lg n) u
najgorem slučaju, pa će i bucket sort naslijediti tu najgoru složenost i drugo,
jer se i tako nakon razmještanja elemenata u hash-tablicu, elemente iz poje-
dinih pretinaca treba pročitati i sortirati. Kako bismo održali čistoću bucket
sort algoritma, ne ulazeći u detalje pomoćne metode sortiranja, u algoritmu
ćemo kreirati pomoćno polje i sortirati ga koristeći neku od ranije opisanih
metoda sortiranja. Kod prepisivanja elemenata odmah ćemo ih prepisivati
184 4.3. PRETRAŽIVANJE I SORTIRANJE

u pomoćnu hrpu. Na taj način povećavamo prostor koji ovaj algoritam za-
htjeva, jer koristimo pomoćnu strukturu. Moglo bi se proći i bez toga, ako
bi se sortiralo izravno u ulaznom polju. No, zato bismo trebali modificirati
neki od ranije opisanih algoritama sortiranja. Kada bismo implementirali
bucket sort za stvarno korištenje, tada bismo to i učinili, smanjujući time
njegovu prostornu, ali i vremensku složenost. No, na ovoj razini, nama to
nije u interesu, jer bi to znatno zakompliciralo naše izlaganje, kao i algori-
tam koji bismo dobili, i odvelo nas nepotrebno od biti metode u detalje neke
druge metode sortiranja.
Stoga imamo sljedeći algoritam:

Algoritam 4.20
ULAZ: Polje A od n elemenata
IZLAZ: Sortirano polje koje se sastoji od elemenata iz polja A.

1. Za i := 1, . . . , n radi korak 2.
2. U metni(a[i], h(i)).
3. k := 0.
4. Za i := 1, . . . , n radi korake 5-12.
5. j := 1.
6. Sve dok nije P razan(h(i)) radi korake 7-8.
7. b[j] := Brisi(h(i)).
8. j := j + 1.
9. Ako je j > 1 radi heapsort(b[1], . . . , b[j − 1]).
10. za l := 1, . . . , j − 1 radi korak 11.
11. a[l + k] := b[l].
12. k := k + j − 1.

Izračun složenosti za najbolji i najgori slučaj vrlo je jednostavan. Najgori


je slučaj kada je distribucija vrijednosti elemenata krajnje neuniformna, tj.
kada svi elementi osim jednog ulaze u prvi ili posljednji pretinac hash tablice.
U tom slučaju imamo sljedeću složenost:

BucketSort HeapSort max


Tmax (n) ≤ c1 + n · c2 + Tmax (1) + THeapSort (n − 1). (4.9)

U c2 ulazi vrijeme potrebno da se izvede jedan korak prve petlje algo-


ritma. Pri tome se pretpostavlja da se umetanje elemenata u hash-tablicu
izvodi u konstantnom vremenu.
POGLAVLJE 4. ALGORITMI 185

Petlja iz koraka 4 izvršit će se točno n puta, za svaki pretinac hash-tablice


po jednom. Stoga će se koraci 5 i 12, kao i provjera uvjeta iz koraka 9 izvršiti
točno n puta, pa ćemo i njihovo vrijeme dodati u vrijednost konstante c2 .
Petlja iz koraka 6 će se ukupno, u svim koracima petlje iz koraka 4 izvršiti
točno n puta, za svaki element ulaznog polja po jednom. Stoga i sva vremena
potrebna za izvršenje jednog njenog koraka, možemo dodati u konstantu c2 .
Slično je i s petljom iz koraka 10.
Preostalo je još samo uvrstiti složenost koju donosi poziv funkcije heap-
sort. Najgore je, kao što smo ranije rekli, kada se svi elementi osim jednog
svrstavaju u jedan pretinac, a to je slučaj koji je opisan u formuli 4.9. To
nas dovodi do formule 4.9. Uvrstimo li složenost sortiranja pomoću hrpe
imat ćemo:

BucketSort
Tmax (n) ≤ c1 + n · c2 + c3 + c4 + c5 · n + c6 · (n − 1) · lg(n − 1).
Odnosno,

BucketSort
Tmax (n) = O(n · lg n).
Minimalna složenost dobije se ako se pretpostavi u potpunosti uniformna
distribucija elemenata. Tada svaki element dolazi u svoj pretinac hash-
tablice, pa imamo:

BucketSort HeapSort
Tmin (n) ≤ c1 + n · c2 + n · Tmax (1),
odnosno

BucketSort
Tmin (n) ≤ c1 + n · c2 + n · c3 = Θ(n). (4.10)
Za prosječnu složenost treba pretpostaviti uniformnu distribuciju na
veličinu svakog pojedinog elementa, tj. pretpostaviti da je jednako vjero-
jatno da će svaki pojedini element ući u bilo koji pretinac hash-tablice.
" n
#
X
BucketSort heapsort
Tavg (n) = E Θ(n) + Tavg (Ni ) ,
i=1
pri čemu je Ni broj elemenata u i-tom pretincu hash tablice. Zbog linear-
nosti matematičkog očekivanja imamo
" n #
X
BucketSort heapsort
Tavg (n) = n + E Tavg (Ni )
i=1
n
X
heapsort
= n+ E[Tavg (Ni )]
i=1
Xn
heapsort
= n+ Tavg (ENi ).
i=1
186 4.4. ZADACI

Sada još treba izračunati koliko je očekivanje varijable Ni . Vjerojatnost da


j-ti element padne u i-ti pretinac jest n1 . Neka je s Xij označena indikatorska
varijabla vjerojatnosti da je j-ti element u i-tom pretincu.
1
P (Xij = 1) = .
n
Sada je
n
X
ENi = P (Xij ) = 1.
j=1

Drugim riječima, matematičko očekivanje svakog pretinca je da u njemu


bude jedan element. Iz toga slijedi da je

BucketSort BucketSort
Tavg (n) = Tmin (n) = Θ(n).

4.4 Zadaci
1. Izvedite algoritme iz poglavlja 4.1 na računalu u programskom jeziku
po želji.

2. Izvedite algoritme iz poglavlja 4.3 na računalu u programskom jeziku


po želji.

3. Napravite algoritam koji će pozivati funkciju double f ja(double x),


te za nju izračunavati integral u zadanim granicama Rombergovim
algoritmom.

4. Eratostenovo sito je algoritam koji traži prvih n prostih brojeva na


sljedeći način: kreira se binarno polje veličine n, u kojem se svi ele-

menti iniciraju na 1. Počevši od 2 pa do b nc, radi se sljedeće: ako
je i-ti element u polju 1, onda se elementi koji se nalaze na mjestima
k · i u polju postavljaju na 0.

(a) Dokažite da će nakon izvršavanja ovog algoritma i-ti element


polja biti 1 ako i samo ako je i prost broj.
(b) Izvedite algoritam koji će pronalaziti prvih n prostih brojeva ko-
risteći Eratostenovo sito.
(c) Ocijenite složenost ovog algoritma.
(d) Napravite quicksort algoritam bez korištenja rekurzije.

5. Napravite algoritam koji će za zadani broj x izračunavati n-ti korijen


zadanog broja metodom polovljenja. Algoritam treba odrediti početni
interval u kojem se nalazi n-ti korijen od zadanog broja te ga u svakom
koraku smanjiveti na pola uzimajući samo onu polovicu u kojoj se
POGLAVLJE 4. ALGORITMI 187

nalazi n-ti korijen od x. Algoritam mora stati ako je interval koji


se promatra manji od nekog malog broja ε. Ocijenite složenost ovog
algoritma.

6. Napravite algoritam koji rješava sljedeći problem:

Problem 4.2 (Partition)


ULAZ: Multiskup prirodnih brojeva A = {a1 , . . . , an }.
IZLAZ: Potrebno je pronaći particiju A1 , A2 multiskupa A tako da je
X X
ai = ai
ai ∈A1 ai ∈A2

7. Neka su zadana dva niza znakova koji se sastoje od znakova A, C, G


i T (DNK!). Nizovi ne moraju biti iste duljine. Pronadite algoritam
koji traži najdulji zajednički niz znakova, koji se pojavljuju tim re-
doslijedom u ulaznim nizovima, ali ne nužno jedan za drugim. Npr.
za nizove AT CT T GA i CCACT T GGCA traženi je niz ACT T GA.
Napravite algoritam koji će tražiti takav maksimalan niz. Algoritam
mora biti polinomne složenosti s duljinom nizova. (Za pomoć vidi [2]).

4.5 Projekti
1. Napravite program koji će sortirati datoteku. Za sortiranje u vanj-
skoj memoriji koristi se modificirano sortiranje spajanjem. Kako bi
sortiranje spajanjem radilo što bolje, prije početka sortiranja datoteku
prepišite u drugu datoteku, ali tako da elementi prije prepisivanja pro-
laze kroz hrpu odredene dubine. Elementi se iz ulazne datoteke pune u
hrpu, a iz hrpe se prepisuju u izlaznu datoteku tek kada je hrpa puna
i u nju više ne stane ni jedan element. Cijeli algoritam mora imati
složenost O(n · lg n), pri čemu je n broj čitanja i pisanja podataka u
vanjskoj memoriji.

2. Implementirajte u ovoj glavi navedene algoritme sortiranja, te ih us-


poredite za različite veličine ulaza. Empirijski odredite koji algoritam
je najbrži za odredene veličine ulaza, te napravite algoritam koji će
ovisno o veličini ulaza izabirati onaj algoritam koji će biti najbrži.
Imajte na umu da se algoritam, koji se koristi, može mijenjati tijekom
rada, kada se ulaz dovoljno smanji!

3. Implementirajte randomizirani quicksort algoritam. Kod njega se pi-


vot element uzima kao slučajni element polja koje se sortira. Napravite
vjerojatnosnu analizu očekivane vrijednosti izabranog pivota, te s ob-
zirom na to, prosječnu složenost.
188 4.5. PROJEKTI
Bibliografija

[1] Atallah, M. J. (ed.): Algorithms and Theory of Complexity Handbook,


CRC Press, Boca Raton, 1999.

[2] Cormen, T. H.; Lieserson, C. E,; Rivest, R. L.; Stein, C.: Introduction
to Algorithms, 2nd edition, The MIT Press, Cambrige, 2001.

[3] Garey, M. R.; Johnson, D. S. : Computer and Intractability A guide


to the Theory of NP-Completeness, W. H. Freeman & Co., New York,
1979.

[4] Goodaire, E.G.; Parmenter, M.M.: Discrete Mathematics with Graph


Theory, Prentice-Hall, Upper Side River, 1998.

[5] Knuth, D. E. (1981):The Art of Computer Programming: Fundamental


Algorithms, 2nd edition, Addison-Welsey, Reading, Massachusets

[6] Knuth, D.E.: The Art of Computer Programming: Sorting and Search-
ing, Addison-Welsey, Reading, Massachusets, 1973.

[7] Leeuwen, J. van (ed.): Handbook of Theoretical Computer Science. Vol-


ume A: Algorithms and Complexity, MIT Press, Cambrige, 1990.

[8] Pavković, B., Dakić, B.: Polinomi, Školska knjiga, Zagreb, 1987.

[9] Sedgewick, R.: Algorithms in C++: Parts 1-4, Addison-Wesley,


Boston, 1998.

[10] Wilf, H. S.: Algorithms and Complexity, Internet edition, 1994.


ftp://ftp.cis.upenn.edu/pub/wilf/AlgComp.ps.Z

189
190 BIBLIOGRAFIJA
Poglavlje 5

Teorija grafova

S jednakom strašću tražio sam znanje.


Želio sam razumijeti srca ljudi. Žudio
sam znati zašto zvijezde sjaje. I
pokušao sam razumijeti pitagorejsku
moć po kojoj brojevi imaju moć nad
strujom (flux). Mali dio toga, ne
mnogo, ja sam i ostvario.
Bertrand Russell

Postoji cijeli niz praktičnih problema, koji se mogu jednostavnije riješiti


upotrebom grafova. Grafovi ponekad prikazuju stvarne fizičke mreže, kao
što su ceste, plinovodi i slično, ali i apstraktne objekte kao što su baze po-
dataka, tok računalnog programa, prikaz aktivnosti u projektu, itd. Grafovi
se primijenjuju i u znanstvenim i stručnim disciplinama u kojima ih ne
bi očekivali. Spomenimo da se pomoću grafova prikazuju socijalni odnosi
i hijerarhija u organizaciji, hranidbeni lanci u bi-
ologiji, karte u kartografiji, zaduženja zaposlenika
u poslovnoj organizaciji, ali i optimalna šetnja
preko riječnih mostova. Podugački popis primjena
teorije grafova može se naći u tablici [7], str. 527-
528.
Medutim dvije glavne aplikativne domene teorije
grafova su informatika u širem smislu i primi-
jenjena matematika, posebno kombinatorna opti-
mizacija.
Pristup teoriji grafova u literaturi varira od egzak-
tnog, koji se temelji na zaokruženoj matematičkoj Slika 5.1: Leonhard Euler
strukturi, do intuitivnog koji se uopće ne bavi matematičkom pozadinom,
već samo primjenom na odredeni skup zanimljivih problema. Ovdje je iz-
abran srednji put, koji će poštivati matematičku utemeljenost teorije, ali se

191
192 5.1. DEFINICIJA GRAFA I OSNOVNA SVOJSTVA

neće uvijek držati strogog matematičkog formalizma kako bi ostavio prostora


za primjene grafova na probleme iz prakse.

5.1 Definicija grafa i osnovna svojstva


Veliki švicarski matematičar Leonhard Euler (1707-1783) smatra se utemelji-
teljem teorije grafova. On je riješio do tada neriješen problem Königsberških
mostova. Evo prikaza tog problema.

Problem 5.1 (Königsberški mostovi)


Königsberg je u 18. stoljeću bio grad u istočnoj Prusiji (danas je to grad
Kalingrad u Rusiji) i kroz njega su prolazila dva rukavca rijeke Pregel (Slika
5.2), koja su okruživala otočić Kneiphof. Na rijeci je bilo ukupno 7 mostova,
koji su povezivali 4 dijela grada odvojena rijekom. Problem glasi da li je
moguće napraviti šetnju gradom koja bi započela na jednom dijelu grada,
obuhvatila svih sedam mostova točno jedanput i završila u početnoj točki?

Slika 5.2

Euler je taj problem riješio tako da je prvo načinio model, koji danas
nazivamo grafom. Dijelovi grada odvojeni vodom predstavljali su vrhove, a
mostovi bridove tog grafa. Problem se sada svodio na to da se počevši od
bio kojeg vrha prode kroz sve bridove točno jedanput i vrati na početak.
Takvo se obilaženje u teoriji grafova Euleru u čast danas naziva Eulerova
staza.
POGLAVLJE 5. TEORIJA GRAFOVA 193

1 3

Slika 5.3

U našim razmatranjima graf ćemo promatrati kao matematičku struk-


turu.
Teorija grafova je matematička disciplina koja proučava zakonitosti na
grafovima. Definirajmo prvo graf matematičkom definicijom. Kod defini-
ranja novih pojmova u zagradama navest ćemo engleske termine budući da
je velik dio literature iz teorije grafova na engleskom jeziku, a hrvatski pri-
jevodi nisu standardizirani.

Definicija 5.1 Neusmjereni graf (eng. undirected graph) G je par (V, E),
pri čemu je V skup vrhova (eng. vertices) grafa, a E ⊆ V × V skup
neuredenih parova elemenata iz V , koji čini skup bridova (eng. edges) grafa
G.

U ovoj ćemo se knjizi baviti samo s konačnim grafovima tj. grafovima


kod kojih je skup vrhova V neprazan konačan skup i skup bridova E konačan
skup. Dozvoljavamo da je skup bridova prazan skup i takav graf onda
zovemo nulgrafom (eng. null graph) ili praznim grfom. Dakle, nulgraf je
graf kod kojeg je skup bridova prazan skup. Neusmjereni graf ćemo često
jednostavno zvati grafom, a napomenut ćemo posebno ako ćemo raditi s
usmjerenim grafom.

Primjer 5.1 Neka je V = {1, 2, 3, 4} i E = {{1, 2} , {1, 3} , {2, 3} , {3, 4}}.


Pripadni se graf može prikazati na sljedeći način. Sa slike je vidljivo da je
moguće i drugačije označavanje bridova i da vrijedi 12 = a, 13 = d, 23 =
b, 34 = c.
194 5.1. DEFINICIJA GRAFA I OSNOVNA SVOJSTVA

2
a b

d
1 3

c
4

Slika 5.4

Definicija 5.2 Za par vrhova u i v kažemo da su susjedni (eng. adjacent)


ako postoji brid e, koji ih povezuje. Pri tome kažemo da je brid e incidentan
(eng. incident) vrhovima u i v.

Primjer 5.2 Za vrhove 1 i 3 kažemo da su susjedni, jer su povezani bridom.


Još kažemo i da su vrhovi 1 i 3 incidentni bridu d.

Bridovi e i f su susjedni ako imaju zajednički barem jedan vrh.

Definicija 5.3 Graf G je planaran (ravninski) graf ako se grafički može


predočiti tako da se bridovi sijeku samo u vrhovima.
Brid koji je incidentan samo s jednim jedinim vrhom se zove petlja.
Graf G je konačan ako su oba skupa V i E konačni.
Graf je jednostavan ako nema petlje i ako ne postoje dva brida koji
spajaju isti par vrhova.

Ako drugačije ne kažemo, pod pojmom grafa podrazumijevat ćemo je-


dnostavni graf, a kad govorimo o grafu koji može sadržavati petlje, govorit
ćemo o pseudografu.

Primjer 5.3 Na slici 5.5 prikazan je poznat Petersenov graf.


Primjetite da je ovdje problem kako nacrtati graf tako da se bridovi
sijeku samo u vrhovima. Petersenov graf je primjer grafa koji nije planaran.

Definicija 5.4 Jednostavni graf, u kojem je svaki par vrhova spojen jednim
bridom, zove se potpuni graf (eng. complete graph). Potluni graf s vrhova
označavamo s Kn .
POGLAVLJE 5. TEORIJA GRAFOVA 195

Slika 5.5

Primjer 5.4 Slijedi primjer potpunog grafa K4 .

4 2

Slika 5.6
196 5.1. DEFINICIJA GRAFA I OSNOVNA SVOJSTVA

Definicija 5.5 Bipartitni graf (eng. bipartite graph) je graf za čiji skup
vrhova postoji particija V = {X, Y } dva skupa X i Y , tako da svaki brid
ima jedan kraj u X, a drugi u Y .
Potpuni bipartitni graf (eng. complete bipartite graph) je bipartitni
graf kod kojeg je svaki vrh iz X spojen sa svakim vrhom u Y točno jednim
bridom.
Iz prethodne definicije slijedi da je potpuni, odnosno potpuni bipartitni
graf u potpunosti odreden brojem svojih vrhova, odnosno brojem vrhova u
particiji skupa vrhova.

Primjer 5.5 Slijedi primjer potpunog bipartitnog grafa K3,2 .

Slika 5.7

Zadatak 5.1 Nacrtajte grafove K3 , K5 , K2,3 i K3,3 .

Definicija 5.6 Stupanj (valencija) vrha v je broj d(v) bridova od G inci-


dentnih sa v.
Pri tome petlja u pseudografu doprinosi stupnju vrha kao dva brida, tj.
ako graf ima jednu petlju njegov stupanj podižemo za 2.

Zadatak 5.2 Kolika je maksimalna valencija vrha moguća u grafu s n


vrhova?

Teorem 5.1 Za jednostavni graf G = (V, E) vrijedi


X
d(v) = 2²,
v∈V

gdje je ² broj bridova grafa G.


POGLAVLJE 5. TEORIJA GRAFOVA 197

Dokaz. U grafu bez petlji sumiranje stupnjeva grafa svodi se na prebro-


javanje bridova koji su incidentni svakom pojedinom vrhu. Pri tome svaki
brid brojimo dva puta, jer on spaja dva različita vrha.

Korolar 5.1 U svakom grafu broj vrhova neparnog stupnja je paran broj.
Dokaz. Primijetimo da je
X
d(v) = 2²
v∈V

paran broj. Raspišimo sumaciju


X
d(v)
v∈V

kao sumu po vrhovima parnog stupnja i vrhovima neparnog stupnja:


X X X
d(v) = d(v) + d(v).
v∈V v∈V v∈V
v je paran v je neparan

Lijeva strana jednakosti i lijeva suma na desnoj strani su parni brojevi, pa


to mora biti i desna suma na desnoj strani. Kako su u
X
d(v)
v∈V
v je neparan

sumandi neparni brojevi, treba ih biti paran broj, kako bi suma bila paran
broj.
Prethodna se tvrdnja u literaturi može naći pod nazivom Handshaking
lemma ili Lema o rukovanju. Razlog tom nazivu je to što se problem te
tvrdnje može svesti na rješenje sljedećeg problema: u danom skupu ljudi,
broj ljudi koji se rukuju s neparnim brojem drugih ljudi, je paran broj.

Zadatak 5.3 Provjerite prethodni korolar na ranije navedenim primjerima.

Zadatak 5.4 Nadite primjer grafa koji nije jednostavan, ima četiri vrha i
svi su vrhovi različitog stupnja.

5.2 Izomorfizam grafova


Definicija 5.7 Neka su G1 i G2 dva grafa i f funkcija čija je domena skup
vrhova grafa G1 , a kodomena skup vrhova grafa G2 . Ako vrijedi

• f je bijekcija,

• f (v) je susjedan sa f (w) u G2 ako i samo ako su v i w susjedni u G1 ,


198 5.2. IZOMORFIZAM GRAFOVA

onda za funkciju f kažemo da je izomorfizam grafova G1 i G2 . Za grafove


G1 i G2 kažemo da su izomorfni.
Dakle grafovi G1 i G2 su izomorfni ako postoji barem jedna bijekcija
izmedu njihovih vrhova sa svojstvom da ”čuva” susjednost vrhova. Takve
grafove smatramo jednakima, jer se razlikuju samo u položaju vrhova.

Zadatak 5.5 Nacrtajte sve različite grafove s četiri vrha. Koliko ih ima?

Zadatak 5.6 Pokažite da je izomorfizam grafova relacija ekvivalencije.


Iz činjenice da je izomorfizam grafova relacija ekvivalencije slijedi da
na skupu svih grafova postoji particija takva da su u pojedinom skupu te
particije samo oni grafovi koji su medusobno ekvivalentni, tj. izomorfni.
Sve grafove koji pripadaju pojedinom skupu iz particije možemo identifici-
rati.Iako oni mogu reprezentirati različite objekte, sa apstraktnog stanovišta
smatramo ih jednakima. Dakle, izomorfni grafovi imaju jednake osnovne
karakteristike, što kazuje sljedeća propozicija.

Propozicija 5.1 Neka su G1 i G2 izomorfni grafovi. Tada G1 i G2 imaju

1. jednak broj vrhova,

2. jednak broj bridova,


3. jednake nizove stupnjeva vrhova,

Dokaz. Pretpostavka je da su G1 i G2 izomorfni grafovi, tj. da postoji


bijekcija f čija je domena skup vrhova grafa G1 , a kodomena skup vrhova
grafa G2 . Znamo da ukoliko postoji bijekcija izmedu dva skupa oni su jed-
nakobrojni, pa vrijedi tvrdnja 1. Dokažimo tvrdnju 3. Neka je v vrh u G1
stupnja d i v1 , v2 , ..., vd vrhovi susjedni vrhu v. Sada, zbog drugog zahtjeva iz
definicije izomorfizma grafova, slijedi da je f (v) u grafu G2 susjedan samo s
vrhovima f (v1 ) , f (v2 ) , ..., f (vd ), pa je i stupanj vrha f (v) jednak d. Vrijedi
i obrat. Nadalje zbog Teorema 5.1 vrijedi tvrdnja 2.
Dokazati da su dva grafa izomorfna nije lagan zadatak, te je gornja
propozicija vrlo korisna budući da ona za dva grafa kaže kad oni nisu izo-
morfni. Ipak, valja paziti što tvrdi propozicija: ako su dva grafa izomorfna,
tada oni imaju jednak broj vrhova, bridova, nizove stupnjeva, i još neka
svojstva, koja ćemo u nastavku proučavati. No, ne vrijedi obratno. Naime,
ako dva grafa imaju jednak broj vrhova, bridova, nizove stupnjeva i broj
komponenata povezanosti to ne znači da su oni izomorfni. Medutim, obrat
suprotne tvrdnje u propoziciji kaže da ako dva grafa imaju, na primjer,
različiti broj vrhova, onda oni nisu izomorfni, itd.

Zadatak 5.7 Koji su od sljedećih grafova izomorfni: K3,4 , K4,3 , K7 , K4 ,


K3,2 ?
POGLAVLJE 5. TEORIJA GRAFOVA 199

Zadatak 5.8 Dokažite da vrijedi Km,n ' Kp,q ⇔ {m, n} = {p, q} .

5.3 Regularni grafovi


Primijetimo da u potpunom grafu svaki vrh ima isti stupanj. Prisjetimo
se Petersenovog grafa i uočimo da svi vrhovi u tom grafu imaju jednake
stupnjeve. Koliki je taj stupnaj? Ispitajmo svojstva takvih grafova.

Definicija 5.8 Graf G je regularan ako svi njegovi vrhovi imaju isti stupanj,
tj. d (v) = r, ∀v ∈ V (G). Za graf čiji su svi vrhovi stupnja r kažemo da je
regularan reda r, r-regularan ili r-valentan.

Primjer 5.6 Kolika je suma stupnjeva svih vrhova kod r-regularnog grafa?
X n
X
Iz definicije regularnog grafa slijedi da je d(v) = r = nr.
v∈V i=1

Primjer 5.7 Koliko bridova ima r−regularan graf s n vrhova?


Iz Teorema 5.1 slijedi da je suma stupnjeva svih vrhova jednaka dvo-
strukom broju bridova, dakle 2ε. S druge strane, po prethodnom primjeru
je suma stupnjeva svih vrhova jednaka nr. Sada iz te jednakosti izlazi da u
tom grafu ima nr
2 bridova.

Zadatak 5.9 Dokažite sljedeće tvrdnje o potpunim grafovima.

1. Potpuni graf Kn je (n − 1) −regularan.

2. Za potpuni graf Kn suma svih stupnjeva je jednaka n (n − 1) .


n(n−1)
3. Za potpuni graf Kn broj bridova je jednak 2 .

4. K4 je jedini potpuni 3-regularni (trovalentni) graf.

Primjer trovalentnog grafa je i poznati Petersenov graf .

Zadatak 5.10 Zadana je relacija ρ sa aρb ⇔ a | b na skupu

1. A = {1, 2, 3, 4, 5, 6} ,

2. B = {1, 2, 3, 5, 7} ,

3. C = {2, 5, 7, 9} .

(a) Ispišite elemente relacije i prikažite relaciju pomoću grafa.


(b) Da li je taj graf regularan? Kako to ovisi o skupu na kojem je
relacija | zadana?
200 5.4. ŠETNJE I CIKLUSI U GRAFU

5.4 Šetnje i ciklusi u grafu


Mnogi stvarni problemi koje rješavamo uvodenjem modela grafova svode
se na nalaženje putova unutar grafova (primjerice problem keningsberških
mostova ili problem kineskog poštara). Stoga je značajno istražiti teorijske
preduvjete za postojanje takvih rješenja.

Definicija 5.9 Šetnja u grafu G je netrivijalni konačan niz, čiji su članovi


naizmjenice vrhovi i bridovi. Vrhovi su na početku i kraju šetnje. Vrhovi,
koji nisu na početku ili na kraju, zovu se unutarnji vrhovi. Duljina šetnje
k je broj bridova u šetnji. Ako su svi vrhovi u šetnji medusobno različiti,
šetnju zovemo put.

Primjer 5.8 U grafu na slici prikazana je šetnja 3d1a2, gdje je 3 početak


šetnje i 2 kraj šetnje. Duljina šetnje je k=2. Istaknimo još i šetnju 3d1a2b3
koja sadrži prethodnu šetnju i koja nije put.

2
a b

d
1 3

c
4

Slika 5.8

Definicija 5.10 Šetnja je zatvorena ako joj se podudaraju početak i kraj.

Definicija 5.11 Zatvorenu šetnju kod koje su početak i unutrašnji vrhovi


različiti, zovemo ciklus.
Ako ciklus ima r različitih bridova i r različitih vrhova, govorimo o cik-
lusu duljine r ili r−ciklusu.
Navedimo sada jedan važan teorem, koji daje karakterizaciju bipartitnog
grafa pomoću ciklusa.

Teorem 5.2 Graf G je bipartitan ako i samo ako G ne sadrži cikluse ne-
parne duljine.
POGLAVLJE 5. TEORIJA GRAFOVA 201

Ovaj teorem nećemo dokazivati, a njegov se dokaz može naći u [1], str.
190.
Već smo spopmenuli da je pseudograf graf koji može sadržavati petlje i
višestruke bridove.

Definicija 5.12 Pseudograf je povezan ako i samo ako postoji šetnja izme-
du bilo koja dva njegova vrha.

Pišemo v1 ∼ v2 ako postoji šetnja u grafu koja povezuje vrhove v1 i v2 .

Zadatak 5.11 Pokažite da je ∼ relacija ekvivalencije na skupu V svih


vrhova grafa G.

Budući da je ∼ relacija ekvivalencije na skupu V svih vrhova grafa G, na


skupu V postoji particija tog skupa na disjunktne, neprazne podskupove -
klase. Svaki vrh pripada točno jednoj klasi. Svi vrhovi koji pripadaju jednoj
klasi medusobno su povezani.

Definicija 5.13 Neka je G (V, E) graf s pripadajućom particijom s obzirom


na relaciju ∼, danom s

V = V1 ∪ V2 ∪ ... ∪ Vr .

Označimo s Ei (1 ≤ i ≤ r) podskup od E čiji bridovi imaju vrhove u Vi .


Grafovi Gi (Vi , Ei ) se zovu komponente povezanosti od G. Ako graf ima
samo jednu komponentu povezanosti, onda je on povezan.

Navedimo još jedno svojstvo koje imaju izomorfni grafovi.

Propozicija 5.2 Neka su G1 i G2 izomorfni grafovi. Tada G1 i G2 imaju


jedanak broj komponenata povezanosti.

Dokaz. Tvrdnju ćemo dokazati metodom suprotnog. Uzmimo da graf


G1 ima više komponenata povezanosti od grafa G2 . To znači da postoje
vrhovi koji nisu susjedni u G1 , a susjedni su u G2 . Pretpostavimo da dva
vrha v1 i v2 nisu susjedni u grafu G1 , ali su f (v1 ) i f (v2 ) susjedni u grafu
G2 . To je u kontradikciji s drugim zahtjevom iz definicije izomorfizma.

5.4.1 Eulerova staza


Ova će točka produbiti i proširiti problem keningsberških mostova, iz kojeg
je izrasla teorija grafova.

Definicija 5.14 Staza je šetnja u kojoj su svi bridovi različiti.


Eulerova staza (eng. Euler trail) je staza koja prolazi svakim bridom od
G.
202 5.4. ŠETNJE I CIKLUSI U GRAFU

Problem keningsberških mostova svodi se na pitanje postoji li Eulerova


staza na grafu? Budući da je Euler prvi proučavao taj problem, njemu u
čast, te su posebne staze dobile ime. On je uvidio da ako su a i b dva različita
vrha, tada je nužan uvjet za postojanje Eulerove staze, koja počinje u a i
završava u b, da vrhovi a i b imaju neparni stupanj, a da su ostali vrhovi
parnog stupnja. Ako je a = b tada svi vrhovi trebaju biti parnog stupnja.
Dakle, nužan uvjet za postojanje Eulerove staze u grafu je da graf ima
najviše dva vrha neparnog stupnja. Pokazuje se da je to ujedno i dovoljan
uvjet. Euler je 1736. godine utvrdio da graf keningsberških mostova nema
Eulerove staze.

Teorem 5.3 Povezani pseudograf ima Eulerovu stazu ako i samo ako ima
najviše dva vrha neparnog stupnja.

Dokaz teorema daje ujedno i algoritam za nalaženje Eulerove ture u


grafu.
Eulerova tura (eng. Euler tour or Euler circuit) je zatvorena Eulerova
staza. Eulerova tura u pseudografu G je tura koja sadrži svaki brid i svaki
vrh grafa. Graf je Eulerov ako dopušta Eulerovu turu.

Teorem 5.4 (Eulerov teorem) Neprazni povezani graf je Eulerov ako i


samo ako su mu svi vrhovi parnog stupnja.

Dokaz. Već je Euler dokazao da ako Eulerova tura postoji, onda u svaki
vrh u koji se ude mora biti moguće i izaći što znači da su stupnjevi bridova
parni brojevi. Pretpostavimo sada da je pseudograf povezan i svi su vrhovi
parnog stupnja i pokažimo da je graf Eulerov. Neka je v vrh u grafu. Ako
vrh ima petlji, treba slijediti svaku petlju bez ponavljanja. Budući da je
broj vrhova u grafu barem 2, postoji barem još jedan vrh v1 , pa povežemo
v i v1 . U v1 prvo obidemo sve petlje, a onda se pomaknemo u sljedeći vrh
v2 (ako postoji). Kad god dodemo u novi vrh, prvo obidemo sve petlje, a
onda izademo iz vrha. Uvijek je moguće izaći iz vrha u koji smo ušli, jer
je stupanj svakog vrha paran broj. Još se moramo uvjeriti da se možemo
vratiti u vrh v. Uzmimo da smo zaokružili turu C1 , tj. vratili smo se prvi
puta u v. Ako smo pri tome obišli sve bridove, posao je završen. Ako to nije
slučaj, tj. tura C1 nije Eulerova, izbacimo iz grafa sve bridove iz C1 te one
vrhove iz C1 , koji su izbacivanjem bridova ostali izolirani. Promatramo graf
G1 = G \ C1 i ponavljamo postupak. Budući da je G povezan onda G1 i C1
imaju barem jedan zajednički vrh u. Krenuvši iz vrha u pronalazimo novu
turu C u G1 i kombiniramo je s prethodnom turom, tako da krenemo iz v,
a kad dodemo do vrha u nastavimo dalje turom C dok se ne vratimo u u,
a tada nastavimo dalje u turi C1 . Tako smo dobili turu C2 , koja ima više
uključenih bridova od C1 . Postupak nastavljamo dok ne iscrpimo sve vrhove
i bridove iz konačnog grafa G.
POGLAVLJE 5. TEORIJA GRAFOVA 203

Euler je u prethodnom teoremu dokazao samo jedan smjer. Tvrdnju da


je pseudograf Eulerov ako su mu svi vrhovi parnog stupnja, dokazao je Carl
Hierholzer 1873. godine.

Korolar 5.2 Povezani graf ima Eulerovu stazu ako i samo ako ima najviše
dva vrha neparnog stupnja. Ako ima točno dva vrha neparnog stupnja, onda
Eulerova staza mora početi i završiti u tim vrhovima.
Dokaz. Prema Eulerovom teoremu graf nema vrhova neparnog stupnja
ako i samo ako dopušta Eulerovu turu. Dakle, pretpostavimo da graf G ima
vrhove neparnog stupnja.
Pretpostavimo da graf G = (V, E) ima Eulerovu stazu koja nije zatvo-
rena. Unutrašnji vrhovi staze su uvijek incidentni s dva brida, pa krajnji
vrhovi staze imaju neparne stupnjeve, a svi ostali vrhovi imaju parne stup-
njeve.
S druge strane, znamo da je broj vrhova neparnog stupnja paran broj.
Dakle,u grafu ne može biti samo jedan vrh neparnog stupnja koji ima Eule-
rovu stazu.
Neka su sada vi i vj jedina dva vrha u G koji imaju neparan stupanj.
Promotrimo dva slučaja.
Prvi slučaj: vrhovi vi i vj nisu susjedni. Dodamo li njihovu spojnicu,
brid eij , u skup svih bridova u grafu G, tada će tako uvećani graf imati sve
vrhove parnog stupnja i dopuštat će Eulerovu turu. Brisanjem brida eij iz
Eulerove ture dobit ćemo Eulerovu stazu koja počinje u vi i završava u vj
ili obrnuto.
Drugi slučaj: vrhovi vi i vj jesu susjedni. Sada skupu vrhova od G
dodamo novi vrh vn , za koji vrijedi da ga brid eni veže s vrhom vi , a brid
enj s vj . Pri tome smo skup bridova E od G uvećali za dva brida eni i
enj . Sada su u uvećanom grafu svi vrhovi parnog stupnja, pa graf dopušta
zatvorenu Eulerovu stazu. Brisanjem vrha vn i bridova eni i enj iz G u G
ostaje Eulerova staza kojoj su vrhovi vi i vj krajnje točke.
Naglasimo da Eulerov teorem i gornji korolar vrijede i u grafu koji sadrži
višestruke bridove, tzv. pseudografu.
Postoji algoritam za traženje Eulerove staze u grafu. Algoritam je pro-
našao Edouard Lucas (1842-1891), ali ga je posvetio M. Fleuryju, pa ga
zovemo Fleuryjev algoritam. Algoritam se temelji na brisanju onih bridova
iz grafa koji ne utječu na povezanost grafa (do kada je to moguće).
Brid eij je most (engl. bridge) u G ako njegovo brisanje daje podgraf od
G s više komponenti povezanosti.

Algoritam 5.1 (Fleuryjev algoritam)


ULAZ: Povezani graf G = (V, E) čiji su svi bridovi parnog stupnja.
IZLAZ: Eulerova tura u G.

1. Izaberi bilo koji vrh v0 ∈ V . Stavi T0 = (v0 ) i G0 = G = (V, E).


204 5.5. MATRICA INCIDENCIJE I MATRICA SUSJEDSTVA

2. k := 0.

3. Neka je Tk = (v0 , . . . , vk ). Iz Gk treba izabrati brid koji je incidentan


s vk i to tako da biramo most ako i samo ako nemamo drugog izbora.
Označimo drugi kraj izabranog brida s vk+1 .

4. Graf Gk+1 se dobija iz Gk brisanjem brida ek,k+1 , tj. Gk+1 = (V, Ek+1 )
pri čemu je Ek+1 = Ek \{ek,k+1 }).

5. Ako Gk+1 nije nulgraf, stavi k := k + 1 i idi na korak 3. Ako je Gk+1


nullgraf, onda je Tk+1 Eulerova tura.

Zadatak 5.12 Pokažite da je Fleuryjev algoritam korektan i pronadite mu


složenost.

Zadatak 5.13 Nadite uvjete pod kojima su potpuni grafovi i potpuni bi-
partitni grafovi Eulerovi.

5.5 Matrica incidencije i matrica susjedstva


Ovdje ćemo pokazati kako se graf može zapisati pomoću matrica. To je
moguće učiniti na najmanje dva načina: u prvom slučaju opisujemo u ma-
trici jesu li vrhovi i bridovi incidentni (matrica incidencije), a u drugom jesu
li dva vrha spojena bridom (matrica susjedstva).

Definicija 5.15 Neka je G graf sa skupom vrhova {v1 , v2 , .., vn } . Za svaki


i i j , (1 ≤ i, j ≤ n) definiramo da je aij jednak broju bridova koji povezuju
vi i vj . Matrica susjedstva od G je kvadratna matrica reda n dana sa

A = [aij ] .

Ako graf nema petlji ni višestrukih bridova, onda su elementi matrice


susjedstva nule i jedinice.

Definicija 5.16 Neka je G graf sa skupom vrhova {v1 , . . . , vn } i sa skupom


bridova {e1 , . . . , em }. Za svaki i, j (1 ≤ i ≤ n i 1 ≤ j ≤ m) definiramo
½
1 ako je vi incidentan s ej
bij =
0 inače
Matricu B = [bij ] zovemo matricom incidencije i ona jew tipa (n, m).

Primjer 5.9 Napišimo matricu susjedstva za graf na slici.


POGLAVLJE 5. TEORIJA GRAFOVA 205

2
a b

d
1 3

c
4

Slika 5.9

Matricu susjedstva formiramo na sljedeći način:

1 2 3 4
1 0 0 1 1
2 0 0 1 0
3 1 0 0 1
4 1 0 1 0
 
0 0 1 1
 0 0 1 0 
Matrica susjedstva: A = 
 1

0 0 1 
1 0 1 0
Matrica incidencije M:

a b c d
1 0 0 1 1
2 1 0 0 0
3 1 1 0 1
4 0 1 1 0

Nabrojimo neka svojstva matrice susjedstva.

Propozicija 5.3 Neka je G jednostavan graf s n vrhova. Vrijedi:

1. aii = 0, tj. na dijagonali matrice susjedstva nalaze se nule,

2. aij = aji , tj. matrica susjedstva je simetrična matrica.

3. Označimo li s Deg(v) broj jedinica u i-tom redu, onda je taj broj


jednak broju jedinica u i−tom stupcu.

4. (i, j) mjesto u A2 predstavlja broj šetnji od i do j duljine 2.


206 5.5. MATRICA INCIDENCIJE I MATRICA SUSJEDSTVA

5. (i, j) mjesto u An predstavlja broj šetnji od i do j koje uključuju n


bridova.

Dokaz. Neka je A = [aij ] matrica susjedstva grafa G koji ima n vrhova.

1. Budući da je G jednostavan graf pa ne sadrži petlje, na dijagonali su


uvijek nule.

2. Ako je v1 susjedan vrhu v2 tada je i vrh v2 susjedan vrhu v1 , pa je


matrica A simetrična. Vrijedi i obrat. Dakle, simetrične matrice, čiji
su elementi nule i jedinice, i imaju nule na glavnoj dijagonali, mogu
se smatrati matricama incidencije nekog jednostavnog grafa.

3. Svojstvo je posljedica činjenice da je matrica A simetrična.

4. Svojstvo je posljedica definicije množenja matrica. Naime, mjesto bij


u matrici
A2 = [bij ]
dobijemo kao
n
X
bij = aik akj .
k=1
U sumi su samo oni produkti različiti od nule kod kojih je aik = 1
i akj = 1, tj. samo oni kod kojih postoji šetnja izmedu ta dva vrha
preko vrha vk . To su, dakle, šetnje koje uključuju vrhove vi , vk , vj , pa
su duljine 2.

5. Dokaz se provodi matematičkom indukcijom. Baza indukcije dokazana


je u prethodnoj točki dokaza. Da bi proveli korak indukcije pret-
postavimo da (i, j) mjesto u An−1 predstavlja broj šetnji od i do j
duljine n − 1. Trebamo pokazati da (i, j) mjesto u An predstavlja broj
šetnji od i do j, koje uključuju n bridova. Taj postupak je jednak
onome iz prethodne točke dokaza.

Korolar 5.3 Postoji bijekcija izmedu skupa svih jednostavnih grafova i


simetričnih matrica, čiji su elementi nule i jedinice i koje imaju nule na
glavnoj dijagonali.

Zadatak 5.14 Zadana je matrica


 
0 1 1 1
 1 0 1 0 
A=  1
.
1 1 0 
1 0 0 0
POGLAVLJE 5. TEORIJA GRAFOVA 207

1. Može li matrica A biti matrica susjedstva nekog jednostavnog grafa ili


pseudografa?
2. Nacrtajte jedan takav graf, odnosno pseudograf.
3. Koliko ima šetnji duljine 2 izmedu vrhova v1 i v2 ?
4. Koliko ima šetnji duljine 3 izmedu vrhova v1 i v2 ?

Teorem 5.5 Grafovi G1 i G2 su izomorfni ako i samo ako se njihovi vrhovi


mogu označiti tako da su im jednake matrice susjedstva.

Definicija 5.17 Matrica permutacija P je matrica čiji su redovi permuti-


rani redovi jedinične matrice.

Teorem 5.6 Dva su grafa s pripadnim matricama susjedstva A i B izo-


morfna ako i samo ako je B = P AP T za neku matricu permutacija P .

Zadatak 5.15 Zadana je matrica susjedstva

 
1 2 1 0
 2 0 1 0 
A=
 1

1 0 0 
0 0 0 0

na grafu čiji su vrhovi dani sa V = {v1 , v2 , v3 , v4 } .

1. Ima li petlji u grafu? Da li je graf jednostavan?


2. Ima li izoliranih vrhova u grafu?
3. Izračunajte stupnjeve svih vrhova.
4. Skicirajte graf.
5. Izračunajte A2 , te odredite broj bridova duljine 2 koji spajaju vrhove
vi i vj .
6. Izračunajte A3 , te odredite broj bridova duljine 3 koji spajaju vrhove
vi i vj .

Zadatak 5.16 Zadani su grafovi G i H. Graf G ima skup vrhova {1, 2, 3, 4} ,


a graf H skup vrhova {a, b, c, d} . Njihove matrice susjedstva su

   
1 2 1 1 1 3 1 1
 2 0 1 
1   3 0 1 1 
A=
 1 ,B =  .
1 0 3   1 1 1 2 
1 1 3 1 1 1 2 0
208 5.6. HAMILTONOVI CIKLUSI

1. Nacrtajte grafove G i H.
2. Što primjećujete?
3. Odredite preslikavanje vrhova koje vodi do izomorfizma.
4. Odredite preslikavanje bridova koje vodi do izomorfizma.
5. Postoji li matrica P takva da je B = P AP T ?
6. Kako se formira matrica P ?

5.6 Hamiltonovi ciklusi


U Eulerovoj turi putuje se svakim bridom grafa jedanput, da bi se na kraju
vratili odakle smo krenuli. Ovdje ćemo prikazati komplementarni problem
tako da tražimo ciklus u grafu koji prolazi svim vrhovima samo jedanput.
Taj je problem 1956. godine posebno razmatrao poznati irski matematičar
William R. Hamilton (1805-1865).

Definicija 5.18 Hamiltonov put na G je put koji sadrži sve vrhove od G.


Hamiltonov ciklus (eng. Hamilton circuit, cycles) na G je ciklus koji
sadrži sve vrhove od G.
Graf G je Hamiltonov ako sadrži Hamiltonov ciklus.
Za razliku od Eulerovog grafa, još je uvijek otvoreni problem karak-
terizacije Hamiltonovog grafa, tj. nalaženja nužnog i dovoljnog uvjeta da
(netrivijalni) graf bude Hamiltonov. Očito je da je jedan od nužnih uvjeta
da bi graf bio Hamiltonov, da je povezan. Postoji dosta parcijalnih razultata
koji doprinose mogućem rješenju najpoznatijeg problema iz teorije grafova.
Evo jednog od tih rezultata.

Propozicija 5.4 (Dirac, 1952) Ako je G povezan (jednostavni) graf u ko-


jem je broj vrhova n veći od 3 (n ≥ 3) i stupanj svakog vrha d (v) ≥ n2 tada
je G Hamiltonov graf.
Dokaz. Pretpostavimo da je put P : v1 v2 ...vr najdulji put u G, tj. put
koji prolazi najvećim brojem vrhova grafa. Svaka šetnja u G, koja je dulja
od P, prolazi nekim izmedu gornjih r vrhova barem dva puta. Neka je u vrh
povezan sa v1 , koji nije u P. Tada šetnja uv1 v2 ...vr ne prolazi nekim vrhom
iz P dva puta i dulja je od puta P , što je u kontradikciji s pretpostavkom,
pa je svaki vrh koji je povezan sa v1 u P. Sličnim načinom pokazujemo da su
svi vrhovi susjedni vrhu vr takoder u P. Budući da znamo da je d (v1 ) ≥ n2 ,
pa ako brojimo i vrh v1 imamo r ≥ n2 + 1. Pretpostavili smo da je n ≥ 3 i
znamo da je r prirodan broj, pa slijedi r ≥ 3.
Sada tvrdimo da postoji par vrhova vk , vk+1 u P takvih da je jedan od
njih, uzmimo da je to vk , povezan sa vr , a vk+1 , povezan sa v1 .
POGLAVLJE 5. TEORIJA GRAFOVA 209

Da bi dokazali tu tvrdnju pretpostavimo suprotno, tj. da svaki vrh u


P susjedan vrhu v1 ima prethodnika koji nije susjedan vrhu vr . Znamo da
su svi vrhovi v2 , ..., vr medusobno različiti, pa postoji najmanje n2 vrha u G
koji nisu susjedni vrhu vr . Kad njima pribrojimo vrhove koji jesu susjedni
vrhu vr , tih je vrhova najmanje n. Dodamo li tome i vrh vr , u grafu bi imali
više od n vrhova, što je kontradikcija.
Sada zaključujemo da put P sadrži ciklus C : v1 vk+1 vk+2 ...vr vk vk+1 ...v1 .
Preostaje nam dokazati da C sadrži sve vrhove iz G. Znamo da C ima
najmanje n2 + 1 vrhova pa postoji manje od n2 vrhova koji nisu u C. Vrh
u koji nije u C mora biti susjedan nekom vrhu vp u C. No, tada bi put P 0
kojem bi dodali i vrh u bio duži od puta P, što dovodi do kontradikcije.
Uočite da u prethodnoj propoziciji vrijedi samo jedan smjer. Znači,
postoje Hamiltonovi grafovi za koje ne vrijedi da je d (v) ≥ n2 .

n−1
Zadatak 5.17 Nadite primjer grafa za koji je d (v) ≥ 2 , a da nije Ha-
miltonov, tj. da ne vrijedi Diracov teorem.

Zadatak 5.18 Pokažite da su pojmovi Eulerov grafi Hamiltonov graf neza-


visni, tj. ako je graf Eulerov može i ne mora biti Hamiltonov i obrnuto.

5.7 Težinski grafovi. Algoritmi najkraćeg puta


Cilj ove točke je definirati i teorijski istražiti težinske grafove, ali i povezati
dobivene rezultate s praktičnim problemima i naznačiti njihove primjene.
Istaknimo na početku da je glavna domena primjene težinskih grafova na
probleme optimizacije. U tu svrhu počinjemo motivirajućim problemom
trgovačkog putnika.

Problem 5.2 (Problem trgovačkog putnika)


Trgovački putnik treba obići odredene gradove i vratiti se na polazište.
Ako je dano vrijeme putovanja izmedu gradova, kako treba putovati tako da
se svaki grad obide samo jedanput i da na putu provede što kraće vrijeme?

Da bismo riješili probleme slične problemu trgovačkog putnika, proma-


tramo grafove čiji su bridovi ”otežani”, tj. bridovima su pridružene težine
koje mogu označavati udaljenost u kilometrima, vrijeme provedeno na putu
u satima, cijenu goriva u kunama. itd. Zadatak je u takvim primjerima
pronaći u potpunom težinskom grafu, Hamiltonov ciklus najmanje težine,
tzv. optimalni ciklus. Nije poznat efikasni algoritam (koji se izvršava u poli-
nomnom vremenu) za rješavanje tog problema, tzv. NP-potpuni problem.
Medutim, neki drugi problemi, slični problemu trgovačkog putnika, ipak se
daju riješiti u polinomnom vremenu. Takav je i sljedeći problem najkraćeg
puta u željezničkoj mreži.
210 5.7. TEŽINSKI GRAFOVI. ALGORITMI NAJKRAĆEG PUTA

Problem 5.3 U danoj željezničkoj mreži kojom su povezani neki gradovi,


treba odrediti najkraću rutu izmedu dva zadana grada iz te mreže.

Definicija 5.19 Težinski (weighted) graf je graf G čijem je svakom bridu


e pridružen nenegativni broj w (e), kojeg zovemo težinom brida e.

Težine bridova u problemu 5.3 predstavljaju duljine pruge izmedu dva


grada.
Težina podgrafa grafa G je suma težina svih bridova u grafu. Najkraćim
putem izmedu dva vrha u težinskom grafu smatramo put najmanje težine.

5.7.1 Dijkstrin algoritam


Postoji dosta algoritama koji služe za pronalaženje najkraćeg puta u težin-
skom grafu, a najpoznatiji medu njima je Dijkstrin algoritam otkriven 1959.
Otkrio ga je nizozemac Edsger Dijkstra (1930 - 2002.), vodeći informatičar
današnjice, koji je izmislio veliki broj algoritama na grafovima. Dijkstrin
algoritam pronalazi najkraći put ili signalizira da on ne postoji.
On otkriva najkraći put iz odredenog vrha (koji je izabran da bude
početni vrh) do krajnjeg vrha, koji je cilj.
Uz ”osnovni” Dijkstrin algoritam postoji još i takozvani poboljšani
Dijkstrin algoritam (engl. improved), koji takoder rješava problem najkraćeg
puta u težinskom grafu (vrhovi imaju znak beskonačno (∞) kao trenutnu
oznaku u tijeku računanja).
Ideja algoritma je sljedeća: označavamo svaki vrh oznakom (label) naj-
kraćeg puta od početne točke (izvora) do tog vrha.
Privremena oznaka se mijenja kad god je naden kraći put od izvora do
tog vrha. Kad smo sigurni da nema kraćeg puta, vrhu pridružujemo trajnu
oznaku. Evo procedure algoritma:

Algoritam 5.2 (poboljšani Dijkstrin algoritam)


ULAZ: Graf G = (V, E) i dva vrha u, v ∈ V .
IZLAZ: Najkraći put od vrha u do vrha v

1. Označite početni vrh (izvor) sa (-,0).

2. Promatrajte vrh X kojemu je posljednjem dodijeljena trajna oznaka


D (engl. permanent label). Promatraj sve susjedne vrhove od X,
kojima još nije pridružena trajna oznaka. Za takav vrh Y, privremena
vrijednost (oznaka) bit će manja od dviju vrijednosti: D+(težina luka
XY) i postojeće privremene oznake (ukoliko postoji).

3. Uočite najmanju privremenu oznaku na grafu i učini je trajnom (uo-


kvirite je).
POGLAVLJE 5. TEORIJA GRAFOVA 211

4. Ponavljajte korake 2 i 3 dok krajnja točka (cilj) ne dobije trajnu oz-


naku.
5. Krenite unatrag po grafu i označite put minimalne težine, od cilja
(ponora) prema početku.

Zadatak 5.19 Brojeći osnove operacije zbrajanja i usporedivanja u Dijk-


strinom algoritmu pokažite da je složenost Dijkstrinog algoritma jednaka
2 5
f (n) = n2 − n + 1.
3 2
Dakle, O(n2 ) je gornja meda.
Uz Dijkstrin algoritam, za traženje najkraćeg puta prilično je popularan
i Floyd-Warshallov algoritam. U većini odredenih aplikacija, ovaj je algo-
ritam brži od Dijkstrinog algoritma. Jedna od prednosti ovog algoritma
je njegova sposobnost lakog prilagodavanja, ukoliko dode do promjene vri-
jednosti težina bridova. Naime, tada je dovoljno promijeniti parametre u
matrici, koja sadrži težine bridova, a daljnji postupak ostaje isti.
Složenost Floyd-Warshallovog algoritama je O(n3 ), kao i složenost os-
novne verzije Dijkstrinog algoritma.

Zadatak 5.20 Upotrebom Dijkstrinog algoritma nadite najkraći put od A


do K na grafu na sljedećoj slici:

(P,2) (P,8)
6
C D

2 5 3

(P,3)
3 5 (B,8)
(-,0) P B E
(A,7)
4
3 3 5

9 (A,13)
A K
(E,12)
(P,4)

Slika 5.10

Vidimo da je najkraći put od P do K, put P AEK duljine 12.


212 5.7. TEŽINSKI GRAFOVI. ALGORITMI NAJKRAĆEG PUTA

5.7.2 Problem kineskog poštara


U ovoj točki razmotrit ćemo primjene traženja Eulerove staze i ture u grafu
na rješavanje problema kineskog poštara.

Problem 5.4 (Problem kineskog poštara)


Poštar uzima poštu u poštanskom uredu, dijeli je i vraća se u ured. Kod
dijeljenja pošte svakom ulicom treba proći barem jednom. Naravno da pri
tome želi prijeći što manju udaljenost.

Problem je dobio ime po tome što ga je 1962. godine općenito obra-


dio i proučio kineski matematičar Mei-ko Kwan. Prvo rješenje specijalnog
slučaja tog problema dao je H. E. Dudeney 1917. godine. U ovom problemu
ulice predstavljaju bridove, a raskršća vrhove grafa. Dakle, dan je težinski
povezani graf i traži se najkraća zatvorena šetnja, koja pokriva sve bridove
barem jednom.
Ako je G Eulerov graf, svaka je tura na G optimalna, jer Eulerova tura
prijede svaki brid samo jednom.
U težinskom je grafu težina ture suma težina svih bridova u turi.
Problem kineskog poštara sastoji se u pronalaženju ture najmanje težine
u povezanom težinskom grafu s pozitivnim težinama. Takvu turu zovemo
optimalna tura.
Problem je teži ako graf nije Eulerov, tj. ako postoje vrhovi neparnog
stupnja. Kwan je predložio da se rješenje dobije tako da se od originalnog
grafa prijede na pseudograf na kojem je Eulerova tura moguća, udvostruča-
vanjem odredenih bridova originalnog grafa. Cilj je naći bridove koje treba
udvostručiti, ali tako da se dobije optimalna tura. Udvostručene bridove
zapravo treba proći dva puta u traženoj Eulerovoj turi.
Spomenimo da postoji algoritam koji traži optimalnu turu i koji se izvodi
u polinomnom vremenu.
Upotrijebimo Fleuryjev algoritam za pronalaženje Eulerove ture u neu-
smjerenom grafu.
Evo algoritma koji koristi Kwanovu ideju da ”eulerizira” graf.

Algoritam 5.3
ULAZ: Graf G = (V, E).
IZLAZ: Pseudograf G0 = (V, E 0 )

1. Nadimo sve vrhove neparnog stupnja u grafu G.

2. Za svaki par vrhova neparnog stupnja nadimo put minimalne težine,


koji ih povezuje.

3. Uparimo sve takve parove na način da suma težina puteva iz koraka 2


bude minimalna.
POGLAVLJE 5. TEORIJA GRAFOVA 213

4. U originalnom grafu, udvostručimo puteve minimalne težine nadene u


koraku 3, tako da sada dobiveni graf nema vrhova neparnog stupnja.

5. Nadimo turu koja spaja svaki brid novog (Eulerovog) pseudografa.

Algoritam podrazumijeva da originalni P graf ima paran broj vrhova ne-


parnog reda. To je istina za svaki graf ( v∈V d(v) = 2²).
Ukoliko se radi o grafu s velikim brojem vrhova (primjer londonske
podzemne željeznice), ovaj algoritam zahtjeva mnogo vremena.

Primjer 5.10 Nadite zatvorenu minimalnu turu koja sadrži sve bridove
danog grafa.

D 6 C
2 3

7 E 9

4 5

A 8 B

Slika 5.11

1. Neparni vrhovi: A, B, C i D

2. Minimalne težine puteva koji spajaju pojedine vrhove: AB 8, BC 8,


AC 7, BD 7, AD 6, CD 5.

3. AB+CD 13; AC+BD 14; AD+BC 14

4. Ubacimo bridove AB i CD, koje će optimalna Eulerova tura prelaziti


dva puta.

5. Eulerova tura minimalne težine je na primjer ABAEBCECDEDA.

Težina ture = duljina svih ulica + duljina ulica koje se ponavljaju =


44+13=57
214 5.8. STABLA

Pokazuje se da minimalna tura nikad ne prolazi bilo kojim bridom više


od dva puta (algoritam najviše udvostručuje brid).
Nekoliko godina nakon Kwanovog problema kineskog poštara u literaturi
se pojavio sličan problem koji se tumači na usmjernom grafu (bridovi imaju
naznačene smjerove). Problem je nazvan problemom čistača ulica u New
Yorku, jer je opisivao situaciju s kojom se suočavaju čistači ulica u New
Yorku, koje su uglavnom jednosmjerne.
Na kraju ponovimo uvjete pod kojima neusmjereni graf ima Eulerovu
turu ili stazu i istaknimo uvjete koji moraju zadovoljiti usmjereni graf da bi
imao Eulerovu turu i stazu.
Neusmjereni graf ima Eulerovu turu ako i samo ako je povezan i svaki
vrh je parnog stupnja.
Neusmjeren graf sadrži Eulerovu stazu ako i samo ako je povezan i ako
su svi, osim dva vrha, parnog stupnja. Ta dva vrha su početak i kraj puta.
Usmjereni graf sadrži Eulerovu turu ako i samo ako je povezan i svaki
vrh ima jednak broj ulaznih i izlaznih lukova.
Usmjereni graf sadrži Eulerovu stazu ako i samo ako je povezan i svi,
osim dva vrha, imaju jednak broj ulaznih i izlaznih lukova. Nadalje, kod ta
dva vrha se broj ulaznih i izlaznih bridova razlikuje za jedan.
U usmjerenom grafu se za pronalaženje Eulerove ture upotrebljava Ed-
monds-Johnsonov algoritam (1973) (vidi [9]).
Slučaj usmjerenog grafa, primjene, kao i pseudokod algoritma možete
naći u [9].

5.8 Stabla
Pojam stabla u 19 st. uveo je Arthur Cayley proučavajući posebne
klase grafova, koji prikazuju odredene kemijske spojeve (hidrokarbonate).
Ti su grafovi imali jedno važno svojstvo: nisu sadržavali cikluse. Sta-
bla imaju primjenu u rješavanju problema kao što
je povezivanje udaljenih lokacija mrežom. Treba,
npr. povezati lokacije u različitim gradovima, a
koncesionar mreže (bilo da je riječ telefonskim li-
nijama, ili o računalnoj mreži) različito naplaćuje
veze izmedu pojedinih gradova. Takoder, stabla
se mogu primjeniti na problem kada je potrebno
neko područje pokriti telefonskom, električnom ili
vodovodnom mrežom.
Još jedna moguća primjena je u izračunavanju op-
timalnih ruta za povezivanje gradova avionskim
linijama. Neekonomično je da svaki grad, koji ima
aerodrom, bude povezan sa svakim drugim takvim Slika 5.12: Arthur Cayley
gradom, a opet se želi da se avionskom vezom može doći do svakog grada
POGLAVLJE 5. TEORIJA GRAFOVA 215

uz minimalni trošak.
Nadalje, stabla se primijenjuju i u fizikalnoj kemiji. Osim toga, mnoge in-
formacijske strukture u računarstvu se temelje na stablima. Direktoriji i
poddirektoriji koji sadrže podatke predstavljaju vrhove u stablu. Binarna
stabla omogućuju efikasno spremanje uredenih podatka i tako dopuštaju
brzo pretraživanje.
Više o primjenama stabala možete pronaći u [5].

5.8.1 Osnovno o stablima


Definicija 5.20 Stablo (eng. tree) je povezani graf T koji ne sadrži niti
jedan ciklus.
Vrh se naziva listom (eng. leaf) stabla T = (V, E) ako ima samo jednog
susjeda.
Šuma (eng. forest) je graf (ne nužno povezani) koji ne sadrži niti jedan
ciklus.

Primjer 5.11 Evo nekoliko primjera stabala koja imaju n vrhova:

n=1 n=2 n=3 n=4 n=5

Slika 5.13

Nije teško pronaći sva moguća stabla za male brojeve n. Pokušajte!


Može se reći da je šuma disjunktna unija stabala, odnosno da su kom-
ponente povezanosti šume stabla.
Primijetimo da stablo s najmanje dva vrha ima najmanje dva lista.

Propozicija 5.5 Ako je T = (V, E) stablo s najmanje dva vrha, tada vri-
jedi:

1. Za svaki par vrhova u, v postoji jedinstveni put u T od u do v.

2. Ako iz stabla T izbacimo bilo koji brid dobili smo dva stabla.

3. |E| = |V | − 1.

Tvrdnje iz prethodne propozicije nisu medusobno nezavisne. Tako je


treća tvrdnja posljedica prve dvije. Nadalje, prva se tvrdnja može smatrati
alternativnom definicijom stabla. Vrijedi sljedeći teorem.

Teorem 5.7 Za graf G, sljedeće tvrdnje su ekvivalentne.


216 5.8. STABLA

1. G je stablo.
2. G nema ciklusa, a ima n vrhova i n − 1 brid.
3. Izmedu svaka dva vrha od G postoji točno jedan put.
4. G je povezani graf s n vrhova i ima n − 1 brid.
Dokaz. Teorem se dokazuje po shemi 1 ⇒ 2, 2 ⇒ 3, 3 ⇒ 4, 4 ⇒ 1,
1⇒2
Pretpostavimo da je G stablo, tj. G je povezani graf bez ciklusa. Treba
dokazati da izmedu svaka dva vrha postoji točno jedan put.
Pretpostavimo suprotno, tj. da izmedu vrhova u i v postoje dva različita
puta:

u = u0 , u1 , . . . , up = v
u = v 0 , v1 , . . . , v q = v
Neka je j najmanji indeks takav da je uj 6= vj . Nadalje, kako je za oba
puta završetak (vrh v), sigurno postoji najmanji indeks k (k > j), takav da
je uk = vl za neki l ≤ q. Medutim, time smo konstruirali ciklus u grafu G
koji počinje u uj−1 , nastavlja se po u-putu do uk = vl i vraća se po v-putu
u vj−1 , a to je kontradikcija s pretpostavkom, pa zaključujemo da izmedu
svaka dva vrha u stablu postoji jedinstveni put.
Ostale dijelove dokaza napravite sami. Poslužite se referencom [2].
Put duljine n − 1 najjednostavnije je stablo s n vrhova. Svaki put, osim
trivijalnog kad je n = 1, ima točno dva vrha stupnja 1.
U nekim problemima postoji vrh v ∗ u stablu kojeg želimo posebno is-
taknuti. Taj vrh zovemo korijenom (eng. root), a takvo stablo zovemo
stablo s korijenom ili korijensko stablo (eng. rooted tree) i označavamo ga s
(T, v ∗ ). U stablu s korijenom, vrhovi se mogu smjestiti u nivoe (eng. level).
Općenito, nivo vrha se definira kao duljina puta od korijena do tog vrha.
Korijen se nalazi na nivou 0, njegovi susjedi na nivou 1. Za k ≥ 2 nivo k
sadrži sve vrhove koji su susjedni vrhovima na nivou k − 1. List na nivou
k, u stablu s korijenom, nema susjeda na nivou k + 1. Visina (eng. height)
stabla s korijenom je maksimalna vrijednost od k na kojem postoji neki vrh
stabla. Za jedinstveni vrh v na nivou k − 1 koji je susjedan vrhu u na nivou
k, kažemo da je njegov roditelj ili prethodnik (eng. parent), a za vrh u
kažemo da je dijete ili sljedbenik (eng. child) vrha v.

Zadatak 5.21 U stablu s korijenom (T, v ∗ ) definiramo sljedeće relacije na


skupu svih vrhova V stabla T :

R = {(u, v) : duljine puteva od v ∗ do u i od v ∗ do v jednake} ,


P = {(u, v) : u = v ili u je prethodnik od v} .
POGLAVLJE 5. TEORIJA GRAFOVA 217

1. Pokažite da je R relacija ekvivalencije, a P relacija parcijalnog uredaja.

2. Opišite klase ekvivalencije od R na V.

5.8.2 Binarno stablo


Ako je m = 2 za stablo kažemo da je binarno stablo. Ako imamo dodatni
uvjet da razlikujemo desno od lijevog podstabla, kao što je to iskazano u
definiciji 5.21, onda govorimo o uredenom binarnom stablu. Ovdje ćemo
pod nazivom ”binarno stablo” podrazumijevati uredeno binarno stablo. Ako
svaki vrh roditelj u m− arnom stablu ima točno m djece, tada kažemo da
je stablo puno (eng. full).
Neka je T puno binarno stablo, visine veće od 0, a v ∗ je korijen tog
stabla. Brisanjem korijena dobivamo dva disjunktna binarna stabla, čiji su
korijeni dva vrha nivoa 1 iz T. Ta podstabla zovemo lijevo i desno podstablo
korijena v ∗ .

Definicija 5.21 Binarno stablo je trojka skupova (L, K, D) , gdje su L i D


lijevo i desno binarno stablo, a K jednočlani skup u kojem je korijen stabla.

Vrhove koji nisu niti listovi niti korijen zovemo unutarnjim vrhovima
(eng. internal vertex) stabla ili vrhom odluke (eng. decision vertex). Izraz
vrh odluke dolazi iz teorije odlučivanja gdje se stabla upotrebljavaju kao
model za proces odlučivanja, koji se provodi na više nivoa, a odluka donesena
na jednom nivou utječe na moguću odluku na nekom drugom nivou (mjestu).
U tom se kontekstu stablo zove stablo odlučivanja (eng. decision tree).

korijen

unutarnji vrh v*

list

Slika 5.14
218 5.8. STABLA

Stabla s korijenom imaju primjenu u informatici, posebno u organizaciji


i reprezentaciji podataka, te prikazu algebarskih izraza. Za sortiranje po-
dataka važna su binarna stabla. Obično se sortiranje podataka radi na os-
novi abecednog ili numeričkog kriterija. Pri tome je relacija, koja odreduje
uredaj, relacija potpunog (totalnog) uredaja, tj. svaki par elemenata iz
skupa je usporediv. Sortiranje je moguće napraviti različitim tehnikama
opisanima u poglavlju o algoritmima. Posebna tehnika je i sortiranje pomoću
stabla sortiranja (eng. tree sort). Stablo sortiranja posebna je vrsta bina-
rnog stabla kod kojeg je skup svih vrhova totalno uredeni skup.

Definicija 5.22 Stablo sortiranja (engl. sort tree) ili binarno stablo pre-
traživanja (engl. binary search tree) je binarno stablo T takvo da je:

1. Skup vrhova V totalno ureden skup.

2. Za svaki v ∈ V, uL ≤ v, za svaki vrh uL iz lijevog podstabla od v i


v ≤ uD , za svaki vrh uD iz desnog podstabla od v.

Za puno m-arno stablo kažemo da je potpuno ako su mu svi listovi na


istom nivou.

Primjer 5.12

Potpuno ternarno stablo Puno ternarno stablo

Slika 5.15

Sortiranje pomoću stabla sortiranja odvija se u dva koraka. U prvom


koraku se iz dane nesortirane liste a1 , a2 , ..., an konstruira stablo sortiranja
tako da su vrhovi stabla elementi dane liste, a korijen stabla je a1 . U drugom
se koraku sortirana lista dobiva iz stabla sortiranja.
U prvoj fazi gradi se stablo sortiranja prema danoj listi tako da prvi
element predstavlja korijen. Drugi element ide desno od korijena, ako je
a2 º a1 , odnosno a2 ide lijevo od a1 ako je a2 ¹ a1 . Element a3 stavlja se u
desno, odnosno lijevo podstablo ako je a3 º a1 , odnosno a3 ¹ a1 . Kad novi
element stigne u jedno podstablo on se smješta lijevo ili desno prema istom
kriteriju.

Algoritam 5.4
ULAZ: Niz elemenata iz skupa na kojem je uveden totalni uredaj.
IZLAZ: Stablo sortiranja Tn za taj niz elemenata.
POGLAVLJE 5. TEORIJA GRAFOVA 219

1. Za k = 1, a1 je korijen i T1 je stablo sortiranja u kojem je a1 jedini


vrh. Povećamo k na k + 1.

2. Ako je k > n završavamo postupak. U suprotnom usporedujemo ak s


korijenom.

(a) Ako je ak ¹ korijena, tada se postupak prebacuje na lijevo pod-


stablo. Ako je lijevo podstablo prazno, smještamo ak lijevo od
korijena i dobivamo sljedeće stablo sortiranja Tk i povećavamo k
na k + 1 te ponavljamo korak 2.
U suprotnom ponavljamo korak 2 na lijevom podstablu.

(b) U suprotnom nastavljamo u desnom podstablu.


Ako je desno podstablo prazno, smještamo ak desno od korijena
i dobivamo sljedeće stablo sortiranja Tk i povećavamo k na k + 1
te ponavljamo korak 2.
U suprotnom ponavljamo korak 2 na desnom podstablu.

Sada je svaki element u lijevom stablu manji ili jednak od korijena i svaki
element u desnom stablu je veći ili jednak korijenu. Dakle, svi se elementi
iz lijevog stabla trebaju ispisati prije korijena, a svi elementi desnog stabla
poslije korijena. Uočimo da su i lijevo i desno podstablo stabla sortiranja,
pa se prvi element podstabla može promatrati kao korijen.
Opišimo postupak rekurzivnog sortiranja.

1. Obradujemo sve elemente lijevog podstabla.

2. Ispisujemo korijen.

3. Obradujemo sve elemente desnog podstabla.

Primjer 5.13 Sortirajmo brojeve liste 3,4,6,1,2,5 po veličini.


Uzimamo broj 3 za korijen stabla. Broj 4 je veći od 3, pa ga povezujemo
desno od korijena. Nadalje je 6 > 3 i 6 > 4, pa se broj 6 postavlja desno
od 3, ali i desno od 4. S druge strane, broj 1 < 3, pa ga stavljamo lijevo od
3. Slijedi broj 2 i 2 < 3, pa ide lijevo od 3, ali desno od 1 jer je 2 > 1. Na
kraju, broj 8 ide desno od 3, ali lijevo od 6 u binarnom stablu.
220 5.8. STABLA

1 4

2 6

Slika 5.16

Sada prelazimo na drugu fazu sortiranja. Počinjemo s lijevim pod-


stablom i zapisujemo prvi korijen u lijevom podstablu, a to je 1. Poslije
njega ispisujemo 2, pa 3, čime iscrpljujemo lijevo podstablo. Prelazimo na
desno podstablo.

Evo primjera kako binarna stabla koristimo za prikaz algebarskih izraza.

Primjer 5.14 Neka su na skupu S zadane dvije binarne operacije × i ∗.


Izrazi kao što su (a × b) ∗ c i (a ∗ c) × (b ∗ c), mogu se prikazati pomoću bina-
rnih stabala. Na sljedećoj slici dan je prikaz prvog izraza pomoću binarnog
stabla.

× c

a b

Slika 5.17
POGLAVLJE 5. TEORIJA GRAFOVA 221

Drugi algebarski izraz prikažite pomoću binarnog stabla za vježbu.


Binarna stabla u kojima se pohranjuju (zapisuju) algebarski izrazi sasto-
je se od jednog vrha koji je identifikator ili su opisana sljedećim rekurzivnim
pravilima:

1. Operator koji se izračunava pri računu nalazi se u korijenu.

2. Lijevo podstablo predstavlja lijevi operand.

3. Desno podstablo predstavlja desni operand.

Dakle, stablo algebarskih izraza je prirodna informacijska struktura za


pohranjivanje algebarskih izraza.
Poznato je da se informacije pohranjuju u računalo pomoću nizova nula
i jedinica. Svakom slovu, brojki i znaku pridružen je drugačiji niz bitova.
Najpoznatije takvo kodiranje je poznato pod imenom ASCII kod. Binarni
kod pridružuje simbolima njihove nizove bitova. Svaki niz bitova je kodna
riječ. U nekim slučajevima kodne riječi mogu biti različite duljine. Pri tome
se kôd čitanja može javiti ako je jedna riječ dio neke druge riječi. Da bi se to
izbjeglo, uvodi se tzv. prefiks kôd. Prefiks kôd je binarni kod sa svojstvom
da nijedna kodna riječ nije početni dio neke druge riječi.
Binarno se stablo može upotrijebiti za konstrukciju prefiks kôda za dani
skup simbola. Pri tome se prvo nacrta proizvoljno binarno stablo čiji se
listovi mogu bijektivno preslikati na skup simbola, tj. listovi su označeni
simbolima. Nadalje, označimo svaki brid koji ide prema lijevom djetetu
s 0, a onaj koji ide prema desnom djetetu s 1. Sada se svakom simbolu
može pridružiti kodna riječ, koja je jednaka nizu oznaka bridova na jedin-
stvenom putu (svojstvo stabla), koji povezuje korijen s listom označenim
promatranim simbolom. Pokazuje se da dobivene kodne riječi predstavljaju
prefiks kôd.

Primjer 5.15 Evo prefiks koda čijih 9 kodnih riječi korespondira danom
binarnom stablu.
slovo a b c d e f g h i
kodna riječ 0000 0001 001 010 0110 0111 10 110 111
Stablo koje opisuje ovaj kod dano je na slici 5.18.

Zadatak 5.22 Slova, koja se češće upotrebljavaju, mogu imati pridružene


kraće kodne riječi, tj. češće upotrebljavani simboli trebaju biti smješteni u
listove nižih nivoa. David Huffman konstruirao je prefiks kôd koji vodi brigu
o efikasnosti kodiranja na gore opisani način. Više o Huffmanovom prefiks
kôdu možete naučiti izradite li projekt 4.
Obrazložite zašto su stabla bipartitni grafovi?
222 5.8. STABLA

0 1

0 1 0 1

g
0 1 0 1 0 1

c d e f
0 1 0 1

a b e f
Slika 5.18

5.8.3 Minimalno razapinjuće stablo


Promotrimo problem povezivanja gradova plinovodom, ako je za tu mrežu
dozvoljeno više ruta. Ako je potrebno povezati više gradova plinovodom,
to se povezivanje može napraviti na više različitih načina koristeći samo
dozvoljene rute. Ovdje gradove možemo promatrati kao vrhove grafa, a
dozvoljene rute su bridovi grafa. Neke od tih ruta su skuplje nego druge
jer su dulje, cijevi treba zakopati dublje ili iz nekog drugog razloga. Treba
stoga promatrati težinski graf. Ovdje bi nam cilj bio pronaći takvo stablo u
grafu, koje bi povezivalo sve gradove, ali da pri tome mreža ima najmanju
cijenu. Stablo koje bi imalo nabrojena svojstva zvali bismo minimalnim
razapinjućim stablom.
Prije nego matematički definiramo razapinjuće stablo uvedimo pojmove
podgrafa i nadgrafa.

Definicija 5.23 Graf H je podgraf od G(H ⊆ G) ako je V (H) ⊆ V (G),


E(H) ⊆ E(G) i funkcija incidencije od H je restrikcija funkcije incidencije
od G. Kažemo da je G nadgraf od H.
Za podgraf H od G, za koji je V (H) = V (G), kažemo da je razapinjući
podgraf od G.
Svaki povezani graf sadrži barem jedan podgraf, koji je stablo, i povezuje
sve vrhove u grafu. Takvo se stablo zove razapinjuće stablo. Graf može imati
više razapinjajućih stabala. Npr., potpuni graf s četiri vrha ima šesnaest
razapinjućih stabala. Pokušajte ih pronaći!
POGLAVLJE 5. TEORIJA GRAFOVA 223

Posljedica činjenice da je povezani graf G sa n vrhova stablo ako i samo


ako G ima n−1 brid, je da razapinjuće stablo za graf od n vrhova ima uvijek
n − 1 brid.
U problemu povezivanja gradova plinovodom važna je duljina tih ci-
jevi, pa svakom bridu pridružujemo težinsku funkciju w : E → N. Težinska
funkcija može predstavljati i cijenu izgradnje pojedinih plinovoda, koji po-
vezuju dane gradove.
Težina stabla T = (V, E) je tada suma težina njegovih bridova, tj.
X
w (T ) = w (e) .
e∈T
Postavlja se problem nalaženja razapinjućeg stabla minimalne težine.
Takav problem zovemo problem nalaženja minimalnog razapinjućeg stabla
(eng. minimum spanning tree problem, MST problem).
Za danu funkciju w uvijek postoji rješenje MST problema, budući da
za dani graf uvijek postoji konačno mnogo razapinjućih stabala. Naravno,
može postojati više razapinjućih stabala koja su minimalna.
Jednostavan, ali i često neefikasan način nalaženja minimalnog razapinju-
ćeg stabla je ispisivanje svih stabala za dani graf i pronalaženje minimalnog.
Za kompliciranije grafove ovo bi bilo vrlo neefikasno, a i trebao bi postojati
način da pronademo sva stabla.
Bolji način je da pronademo neko bitno svojstvo minimalnog razapinju-
ćeg stabla s kojim možemo odrediti pripada li pojedini brid u njega i zatim
izgraditi stablo brid po brid.
Neki od uspješnih algoritama za rješavanje MST problema temelje se na
pohlepnom algoritmu.
Tri poznata algoritma za rješavanje problema minimalnog razapinjućeg
stabla su Kruskalov, Primov i Boruvkin algoritam.
Prvi algoritam za rješenje MST problema razvio je češki znanstvenik
Otakar Borůvka 1926. godine, tražeći efikasni način postavljanja električne
mreže. Danas se najčešće upotrebljavaju Primov algoritam i Kruskalov al-
goritam. Oba algoritma pripadaju skupini pohlepnih algoritama i oba se
algoritma izvode u polinomijalnom vremenu.
Kruskalov algoritam (naden 1956. godine) je pogodan za rješavanje MST
problema za grafove s malim brojem vrhova i nije jednostavan za programi-
ranje. No, Kruskalov algoritam je najjednostavniji za razumijevanje i naj-
bolji za ručno rješavanje problema.
Algoritam se temelji na sljedećoj lemi.

Lema 5.1 Neka je X podskup vrhova iz G i neka je brid e najmanji brid


koji spaja X s G − X. Tada je e dio minimalnog razapinjućeg stabla.

Algoritam 5.5
ULAZ: Graf G = (V, E).
IZLAZ: Minimalno razapinjuće stablo T grafa G.
224 5.8. STABLA

1. Izaberemo jedan vrh i stavimo ga u skup S1 , dok sve druge vrhove


stavljamo u skup S2 .

2. Izabiremo brid najmanje težine koji povezuje neki vrh iz S1 s nekim


vrhom iz S2 .

3. Stavljamo brid u skup koji predstavlja rješenje, a vrh iz S2 , koji su-


djeluje u vezi, premještamo iz S2 u S1 .

4. Ako je S2 = ∅, onda smo gotovi, a inače se vraćamo na korak 2.

Kruskalov algoritam se izvodi u O(m log m) vremenu, gdje je m broj


bridova, a n broj vrhova u grafu.
Primov algoritam je 1930. godine otkrio matematičar Vojtech Jarnik,
a nezavisno od njega razvio ga je informatičar Robert Prim 1957. godine.
Medutim, primjenjivati se počinje tek nakon ”ponovljenog Dijkstrinog ot-
krića”, 1959. godine.
Umjesto da konstruira podgraf brid po brid, Primov algoritam konstru-
ira vrh po vrh.
Početni vrh se bira proizvoljno i on odmah postaje dio grafa. Primovo
stablo raste tako da mu se dodaje vrh za koji vrijedi da je njegova udaljenost
od nekog vrha iz Primovog stabla manja nego udaljenost nekog drugog vrha
od Primovog stabla. Postupak se iterativno nastavlja sve dok ne ostane niti
jedan slobodan vrh, odnosno dok svi vrhovi ne budu uključeni u graf.

Algoritam 5.6
ULAZ: Graf G = (V, E).
IZLAZ: Minimalno razapinjuće stablo T grafa G.

1. Izaberimo proizvoljan početni vrh.

2. Nadimo njemu najbliži vrh i taj vrh postaje dio grafa.

3. Nadimo grafu najbliži slobodni vrh i taj vrh postaje dio grafa.

4. Iterativno ponavljamo korak 3, dok svi vrhovi ne budu uključeni u


graf.
¡ ¢
Pokazuje se da je složenost Primovog algoritma reda O n2 .
Dokaze korektnosti oba algoritma možete naći u [4].

5.8.4 Pretraživanje stabla


Zadatak nam je pronaći vrhove u grafu, počevši od nekog unaprijed odrede-
nog vrha (korijen v0 ). U tom procesu posjećuju se svi vrhovi grafa prelazeći
bridovima grafa i pri tome i vrhovi i bridovi mogu biti obuhvaćeni više nego
POGLAVLJE 5. TEORIJA GRAFOVA 225

jedanput. Dakle, konstruiramo podgraf koji sadrži sve vrhove grafa, tj.
razapinjući podgraf.
Ovaj zadatak možemo riješiti na temelju dvije različite osnovne strate-
gije, a obje vode do konstruiranja razapinjućeg stabla u grafu. Prva, koja
prelazi na novi vrh, čim je on dostupan, tzv. potraga prvo u dubinu (depth-
first search - DFS, pronašao ga Tarjan 1972. godine) i druga, gdje se provje-
ravaju svi vrhovi na istoj razini (level) i tek se onda prelazi na sljedeći nivo
tzv. potraga prvo u širinu (breadth-first search - BFS, pronašao ga Dijkstra
1959. godine).
DFS se može promatrati i kao specijalni slučaj opće metode rasta stabla.
U DFS metodi počinjemo u danom vrhu v0 (baza indukcije) i traženo
stablo T se za sada sastoji samo od tog vrha, tj. T = {v0 } . U koraku
indukcije, uzmimo da je x novi vrh u stablu T . Ako je y susjedni vrh
od x u grafu G, koji ne pripada stablu T, uključujemo ga u stablo. Sada
y postaje novi vrh i ponavljamo postupak pretraživanja njegovih susjeda.
Ukoliko nema novih susjeda od y, vraćamo se natrag na vrh, od kojeg smo
došli do y (u našem slučaju na vrh x) i tražimo njegove susjede, koji još
nisu uključeni u stablo T . Kad se u tom postupku vratimo do korijena v0
postupak je završen i traženo stablo T je konstruirano.
Problem MST pripada u probleme rastućeg stabla (eng. tree-growing
problem), dok se ovdje radi o stablu pretraživanja (eng. search tree). Za
razliku od MST problema ovdje nismo pretpostavili da je graf G povezan,
stoga znamo da DFS metoda može naći samo vrhove koji su povezani s v0 .
Stoga vrijedi sljedeći teorem:

Teorem 5.8 Neka je v vrh grafa G i T podskup bridova od G konstruiranih


pomoću DFS metode. Tada je T razapinjuće stablo za komponentu grafa G
koja sadraži vrh v.

(Dobar način za opisivanje DFS metode je taj da se radi lista vrhova.


Kada prvi put dodemo do nekog vrha stavimo ga na listu. Objašnjenje liste
možete naći u [1].)
Druga metoda, koja nam omogućuje rješavanje problema traženja vrhova
u grafu je BFS metoda. Smisao ove metode je u provjeravanju svih vrhova
susjednih promatranom vrhu prije nego se pomaknemo dalje. Ona se kao i
DSF, može promatrati i kao metoda traženja razapinjućeg stabla, ali i kao
metoda pretraživanja.
U BFS metodi počinjemo u danom vrhu v0 (baza indukcije) i traženo
stablo T se za sada sastoji samo od tog vrha, tj. T = {v0 } . U koraku
indukcije, uzmimo da je x novi vrh u stablu T . Ako je y susjedni vrh od x u
grafu G, koji ne pripada stablu T, uključujemo ga u stablo i to isto učinimo
za sve vrhove susjedne vrhu v, koji još nisu uključeni u T . Tek kada više
nema novih vrhova susjednih vrhu x pomičemo se na vrh y, koji je prvi
sljedeći u postupku pojavljivanja u odnosu na x. Sada y postaje novi vrh i
226 5.9. USMJERENI GRAFOVI I MREŽE

ponavljamo postupak pretraživanja njegovih susjeda. Ukoliko nema novih


susjeda od y postupak je završen i traženo stablo T je konstruirano.
Vrijedi teorem sličan onome kod DFS metode.

Teorem 5.9 Neka je v vrh grafa G, a T podskup bridova od G konstruiranih


pomoću BFS metode. Tada je T razapinjuće stablo za komponentu grafa G
koja sadrži vrh v.

Spomenuti algoritmi DFS i BFS temelj su mnogim algoritmima koji se


upotrebljavaju u računalstvu i operacijskim istraživanjima. Pri tome je DFS
efikasniji kad treba naći samo neko od mogućih rješenja, a BFS je bolji kod
problema optimizacije (najmanje bridova u grafu i sl.), odnosno kada je
potrebno pronaći rješenje na najmanjem nivou stabla.
Općenito možemo promatrati problem traženja najkraćeg puta izmedu
vrhova v i w u težinskom grafu. U osnovi rješenja je BFS algoritam. Više o
toj temi možete naći u [1], str. 206.

5.9 Usmjereni grafovi i mreže


5.9.1 Usmjereni graf
U mnogim praktičnim problemima nije dovoljno koristiti graf kao model,
nego bridovima treba dodati i orijentaciju. Na primjer, crtamo li plan grada
važno je naznačiti da li je ulica jednosmjerna ili dvosmjerna. Ako je jedno-
smjerna, treba znati u kojem je smjeru dopušteno voziti. Tako smo došli do
pojma usmjerenog grafa.

Definicija 5.24 Usmjereni graf ili digraf (eng. directed graph, digraph)
je par (V, A), pri čemu je V neprazan skup vrhova grafa, a svaki element
skupa A je uredeni par različitih elemenata iz V. Elementi od A zovu se
lukovi (eng. arc).

Dakle, ako kod bilo kojeg grafa, svakom bridu dodamo orijentaciju, dobit
ćemo usmjereni graf. Obrat ove izjave ne vrijedi, tj. ne može se svaki us-
mjereni graf dobiti iz neusmjerenog. Kod usmjerenog grafa bridovi su pred-
stavljeni kao uredeni parovi vrhova, dok su kod neusmjerenog grafa bridovi
neuredeni parovi vrhova, tj. dvočlani skupovi. Pri crtanju, orijentaciju brida
naznačimo strelicom prema w, ako je sa (v, w) dan luk.
Nadalje, usmjereni graf možemo shvatiti kao prikaz relacije R na ele-
mentima istog skupa A (ρ ∈ A2 ). Sada je (v, w) luk u grafu R ako i samo
ako je vRw. Neka svojstva relacija sada se vizualiziraju na grafu. Svojstvo
simetričnosti na grafu možemo provjeriti tako da uočimo da za svaki luk
(v, w) postoji njemu suprotno orijentirani luk (w, v) tj. da se lukovi uvijek
javljaju u parovima. Refleksivnost se očituje tako da svaki vrh ima petlju.
POGLAVLJE 5. TEORIJA GRAFOVA 227

U usmjerenom grafu na prirodan se način uvode definicije usmjerene


šetnje, usmjernog puta i usmjerenog ciklusa.

Definicija 5.25 Usmjerena šetenja u usmjernom grafu D = (V, A) je niz


vrhova v1 v2 ...vk sa svojstvom da je (vi , vi+1 ) ∈ A, ∀1 ≤ i ≤ k − 1. Ako su svi
vrhovi usmjerne šetnje medusobno različiti, tada je to usmjerni put. Kod
usmjerenog ciklusa svi unutrašnji vrhovi usmjerene šetnje su medusobno
različiti i v1 = vk .

5.9.2 Turnir
Primjer usmjerenog grafa je graf koji nastaje kao prikaz turnira (engl. tour-
nament) gdje svaki igrač igra protiv svakog drugog. Uočite da na taj način
dobivamo jednostavni potpuni graf, koji pretvaramo u usmjereni graf. Luk
(v, w) nastaje ako igrač v pobijedi igrača w, a luk (w, v) ukoliko w pobijedi
igrača v. Svaki graf takvog oblika zove se turnir. U turniru se mogu javiti
usmjereni ciklusi duljine veće ili jednake 3, ali ne i ciklusi duljine manje od
3. Unatoč tome vrijedi sljedeći teorem.

Teorem 5.10 U svakom turniru postoji usmjereni put koji sadrži sve vr-
hove grafa (usmjereni Hamiltonov put) .

Dokaz. Ideja dokaza sastoji se u tome da se svaki usmjereni put, koji ne


sadrži sve vrhove grafa, može dopuniti još jednim vrhom. Počinjemo s usmje-
renim putem (v1 , v2 ), koji dopunjavamo vrhovima dok ne dobijemo do puta
koji sadrži sve vrhove grafa. Neka je x bilo koji vrh grafa koji nije sadržan u
putu (v1 , v2 , ...vk ). Ukoliko je (x, v1 ) luk vrh ćemo staviti na početak puta.
Ako to nije slučaj tada je (v1 , x) luk u grafu jer se radi o turniru. Neka
je, nadalje, m najveći cijeli broj takav da su svi (v1 , x) , (v2 , x) , ..., (vm , x)
lukovi u grafu. Ako je m < k tada su (vm , x) i (x, vm+1 ) lukovi, pa možemo
ubaciti vrh x u put izmedu vrhova vm i vm+1 . U suprotnom vrh x možemo
dodati na kraj puta.

Zadatak 5.23 Napišite program za nalaženje usmjerenog puta koristeći al-


goritam opisan u prethodnom dokazu.

Postoji alternativna definicija koja kaže da je turnir na skupu V svih


vrhova relacija za koju vrijede svojstva irefleksivnosti, antisimetričnosti i
kompletnosti. Povežite ovu definiciju s matricom relacije.

Zadatak 5.24 Turnir je zadan pomoću sljedeće tablice. Uredeni par (x, y)
predstavlja luk, ako je y u stupcu definiranom sa x.
228 5.9. USMJERENI GRAFOVI I MREŽE

a b c d e f
c a f b a a
d c c c b
e d d
f
Tablica 5.1

1. Nadite usmjereni put od vrha a do vrha d.

2. Nadite usmjerene cikluse u grafu.

3. Nadite usmjereni put koji sadrži sve vrhove u grafu.

Vrijedi i sljedeći teorem za turnire?

Teorem 5.11 Na svakom turniru ima neparan broj Hamiltonovih putova.


Teorem je 1934. godine dokazao Rédei. Dokaz se može pronaći u [8], str.
175.

5.9.3 Mreže i kritični putevi


Pretpostavimo da usmjereni graf predstavlja ulice unutar grada i da prema
grafu znamo koje su od njih jednosmjerne, a koje ne. Podatak koji bi takoder
bio važan za snalaženje u gradu bila bi i duljina ulica izražena u metrima
(ili kilometrima). Tako bismo usmjereni graf dopunili težinama lukova. Na
taj smo način dobili usmjerenu mrežu.

Definicija 5.26 Usmjerena mreža (engl. directed network) je usmjereni


graf čije su težine lukova cjelobrojne pozitivne vrijednosti.
Dakle, usmjerena mreža je usmjereni graf zajedno s težinskom funkcijom
w : A → N.
Razlog za uzimanje isključivo prirodnih brojeva za težine lukova leži u
činjenici da tako izbjegavamo poteškoće u traženju optimalnog rješenja za
probleme na mrežama.

5.9.4 Problem rasporeda


Široko područje primjene usmjerenih težinskih grafova je u poslovanju, gdje
se stalno traže nove i preciznije metode koje pomažu u radu s mnoštvom
kompleksnih podataka i zadanim rokovima, a cilj im je podizanje kompetitiv-
nosti poduzeća (vidi [6]). Tu pomažu različite tehnike za izradu rasporeda,
u koje pripadaju i tehnike mreža (networks). Poznate tehnike mreža su:

• Program Evaluation and Review Technique - PERT,


POGLAVLJE 5. TEORIJA GRAFOVA 229

• Metoda kritičnog puta (Critical Path Method ) - CPM, odnosno Arraw


Diagram Method (ADM).

Graf je pritom prikaz u kojem lukovi označavaju poslove, koji se moraju


izvesti odredenim redom, a težine lukova označavaju vrijeme potrebno da se
posao obavi. Problem se sastoji u nalaženju takvoga redosljeda obavljanja
poslova da svi poslovi budu izvršeni u najkraćem mogućem vremenu. Takvi
se problemi nazivaju i problemima rasporeda(eng. scheduling problems).
Uzet ćemo da su težine bridova cjelobrojne vrijednosti. Znamo da ovakve
usmjerene težinske grafove zovemo i usmjerenim mrežama.
PERT je razvijen 1958. do 1959. godine u laboratorijama američke ratne
mornarice, kako bi pomogle u vremenu velikog zamaha tehnologije, budući
da klasične tehnike rasporeda, kao što je Ganttov dijagram, nisu bile do-
voljne. Vrlo brzo PERT se proširio u sve grane privrede. U otprilike isto
vrijeme javila se još jedna slična metoda – Metoda kritičnog puta (CPM).
Jedan od ciljeva konstrukcije PERT dijagrama je odredivanje koliko je
vremena potrebno za završetak nekog projekta (procesa).
Klasični primjer mreže je mreža aktivnosti koje treba provesti da bi
se uspješno završio projekt. Takve mreže koristimo već u fazi planiranja
projekta. Vrhovi grafa predstavljaju dogadaje, a lukovi su aktivnosti koje
treba provesti da bi se odredeni dogadaj ostvario. Težine lukova označavaju
vrijeme potrebno za provodenje odredene aktivnosti. U fazi planiranja
potrebno je odrediti koliko će projekt trajati. Taj se problem svodi na
pronalaženje najduljeg puta koji sadrži sve vrhove grafa. To je tzv. kritični
put u grafu. S druge strane aktivnosti treba planirati tako da trajanje pro-
jekta bude što kraće.

Zadatak 5.25 U projektu su zadane aktivnosti a1 , a2 , a3 , a4 , a5 , a6 . Vre-


mena (izražena u tjednima) potrebna da se te aktivnosti obave su ti , 1 ≤
i ≤ 6 i ona su dana u sljedećoj tablici. U tablici su dani preduvjeti pi za
pojedine aktivnosti. Uočite da aktivnost može imati više od jedne aktivnosti
koje joj nužno prethode.

ai a1 a2 a3 a4 a5 a6
ti 2 4 6 5 4 3
pi − a1 a1 a3 a2 a5
pi a4
Slika 5.19

1. Prikažite projekt u obliku usmjerene mreže.

2. Koliko je minimalno trajanje projekta?

3. Označite najdulji put u tom grafu.


230 5.9. USMJERENI GRAFOVI I MREŽE

Mreža aktivnosti prikazana je na sljedećoj slici. Vrh p predstavlja poče-


tak, a z završetak projekta. Sada se za svaki vrh računa V (v) kao najkraće
vrijeme, računajući od početka projekta, kad se taj dogadaj može dogoditi.
Stavljamo da je V (p) = 0. Nadalje, V (q) = 3, V (r) = 2 + 6 = 8.
Vrijednosti najkraćih vremena dane su u sljedećoj tablici.

v p q r s t z
V(v) 0 3 8 13 17 20
Tablica 5.2

a2
4
q s
a1
2 a5
4
a3 a5
p 6 5
t
r
a6
3

Slika 5.20

Primijetite da to znači da se za svaki vrh traži najdulji put od početnog


vrha do promatranog vrha, tako da bi se stigle obaviti sve aktivnosti koje
promatranom dogadaju prethode. Vidimo da je najkraće trajanje projekta
20 tjedana. Primjenjena metoda analize mreže pripada metodama kritičnog
puta.
Najdulji put u grafu je sada put pqrstz.
Prethodni je zadatak primjer problema traženja najduljeg (kritičnog)
puta u grafu. Ponovimo sada metodu prikazanu u primjeru. Dakle, za
početni vrh p vrijedi V (p) = 0, a za svaki drugi vrh u grafu vrijedi rekurzivna
relacija
V (v) = max {V (u) + w (u, v)} ,
u

gdje je u svaki vrh takav da uv predstavlja luk.


POGLAVLJE 5. TEORIJA GRAFOVA 231

Sada ćemo za svaki vrh v računati krajnje vrijeme K (v), kad taj dogadaj
treba nastupiti, da bi projekt bio završen u zadanom roku. Ovdje imamo
rekurziju ”unatrag”. Ako je t vrijeme trajanja projekta tada za posljednji
vrh z vrijedi K (z) = t, a za svaki drugi vrh v

K (v) = min {K (u) − w (u, x)} ,


x

gdje je y svaki vrh takav da vx predstavlja luk. Sada definiramo (float time)
F (y, z) kao
F (y, z) = K (z) − V (y) − w (y, z) ,
što znači da aktivnost yz može početi bilo kada u vremenu od V (y) do
V (y) + F (y, z), bez da to utječe na završetak projekta. Aktivnost za yz,
koju je F (y, z) = 0, je kritična aktivnost za projekt. U svakoj mreži projekta
postoji barem jedan put koji se sastoji od kritičnih aktivnosti i zove se
kritični put.

Zadatak 5.26 Izračunajte F (y, z) za svaku aktivnost iz prethodnog pri-


mjera.
U projektu su zadane aktivnosti a1 , a2 , a3 , a4 , a5 , a6 , a7 . Vremena (izra-
žena u mjesecima) potrebna da se te aktivnosti obave su ti , 1 ≤ i ≤ 7 i
ona su dana u sljedećoj tablici. U tablici su dani preduvjeti pi za pojedine
aktivnosti. Uočite da aktivnost može imati više od jedne aktivnosti koje joj
nužno prethode.

ai a1 a2 a3 a4 a5 a6 a7
ti 1 3 5 4 6 2 3
pi − a1 a1 a3 a2 a5 a3
pi a4 a6
Tablica 5.3

1. Prikažite projekt u obliku usmjerne mreže.

2. Koliko je minimalno trajanje projetka?

3. Nadite kritični put u tom grafu.

4. Izradite potpunu analizu projekta (funkcije F (y, z))

5.9.5 Protoci i rezovi


Prototipom transportne mreže možemo smatrati naftovod. Takva mreža
ima jedan izvor (eng. source) i jedan ponor (eng. sink). Svaki luk grafa
ovdje predstavlja dio naftovoda čiji su vrhovi spojnice pojedinih cijevi. Ka-
pacitet luka je maksimalni protok koji je moguće ostvariti kroz promatranu
232 5.9. USMJERENI GRAFOVI I MREŽE

cijev. U transportne mreže spadaju i transportne rute pojedine robe, ali i


telefonske i električne mreže. Nadalje, primjer transportne mreže je i Inter-
net. Medutim, kod Interneta se javlja problem što je ta mreža prevelika da
bi se u potpunosti definirala . Stoga se ovdje javlja nešto drugačiji problem
minimizacije puta: problem minimizacije puta u grafu koji je djelomično
poznat.
Dakle, u transportnim mrežama uvijek postoji vrh i kojeg zovemo izvor
i za kojeg vrijedi da su svi lukovi koji sadrže taj vrh usmjereni od tog vrha.
Postoji i vrh p kojeg zovemo ponor i za kojeg vrijedi da su svi lukovi koji
ga sadrže usmjereni prema njemu.

Definicija 5.27 Transportna mreža je usmjereni graf D = (V, A) , takav da


je na grafu zadana funkcija kapaciteta c : A → N, te postoji izvor i ponor u
grafu.

Protok (eng. flow) mreže M je funkcija f : A → N gdje f (u, v) označava


količinu koja prolazi kroz luk (u, v) . Prirodno je pretpostaviti da količina
koja ude u vrh u (osim za izvor i ponor) mora biti jednaka onoj koja izade.
Taj zakon zovemo zakonom očuvanja. Da bi taj zakon mogli zapisati for-
mulom definiramo prvo ulazni i izlazni protok za svaki vrh kao što slijedi:
X X
ulaz (u) = f (x, u) , izlaz (u) = f (u, y) .
(x,u)∈E (u,y)∈E

Nadalje, vrijedi i zakon izvodljivosti (eng. feasibility) koji tvrdi da protok


kroz dani luk ne može biti veći od njegovog kapaciteta. Vrijedi dakle:

1. ulaz (u) = izlaz (u) , u 6= i, p (zakon očuvanja),

2. f (x, y) ≤ c (x, y) , (x, y) ∈ A (zakon izvodljivosti).

Zadatak 5.27 Dana je transportna mreža sa slike 5.21

1. Za mrežu na slici izračunajte za svaki vrh ulaz (u) i izlaz (u) .

2. Zadana je funkcija f na toj mreži sa

i (i, q) (i, r) (q, r) (q, s) (r, s) (r, t) (s, t) (t, p)


f (x, y) 1 4 5 5 4 5 4 6

Tablica 5.4
POGLAVLJE 5. TEORIJA GRAFOVA 233

4
q s
2
4
6 5
i
5 t
r 4
3

Slika 5.21

Provjerite zadovoljava li dana funkcija f zakone očuvanja i izvodlji-


vosti.

Zbog zakona očuvanja, za bilo koji luk (s, t) vrijedi da je ukupni izlaz iz
s jednak ukupnom ulazu u t. Dakle, izlaz (s) = ulaz (t) , za bilo koji protok
kroz (s, t) . Tu zajedničku vrijednost, koja mjeri ukupni protok kroz mrežu,
zovemo vrijednost protoka.
Vrijednost protoka f na mreži D definira se kao
X
val (f ) = f (i, v) .
v∈V

5.9.6 Max-flow min-cut teorem


Sada ćemo odgovoriti na pitanje kolika je maksimalna vrijednost protoka za
danu mrežu. U tu svrhu odredimo prvo gornju medu vrijednosti protoka.
Pretpostavimo da je na skupu svih vrhova V dana particija tog skupa na
dva podskupa S i T. Prisjetimo se da to znači da je S ∪ T = V i S ∩ T = ∅.
Protok izmedu skupova S i T definiramo na sljedeći način:
X X
val (f ) = f (x, y) − f (u, v) .
x∈S u∈T
y∈T v∈S

Prva suma mjeri ukupni protok od S prema T, a druga suma mjeri


ukupni protok od T prema S. Budući da je druga suma nenegativan broj,
vrijedi:
234 5.9. USMJERENI GRAFOVI I MREŽE

X
val (f ) ≤ f (x, y) .
x∈S
y∈T

Zakon izvodljivosti f (x, y) ≤ c (x, y), koji vrijedi za svaki luk (x, y) , primi-
jenimo na lukove čiji je početak u skupu S i završetak u T, pa imamo:
X
val (f ) ≤ c (x, y) .
x∈S
y∈T

Nadalje, za (S, T ) kažemo da je rez (cut) koji odvaja i i p ako je skup


{S, T } particija skupa svih vrhova V i vrijedi s ∈ S i t ∈ T. Sada definiramo
kapacitet reza sa X
cap (S, T ) = c (x, y) .
x∈S
y∈T

Uzmimo specijalno da je s = i izvor mreže i t = p ponor mreže, f bilo koji


protok od i do p, a (S, T ) bilo koji rez od i do p. Vrijedi:

val (f ) ≤ cap (S, T ) . (5.1)

Neka je sada f0 maksimalni protok i (S0 , T0 ) rez minimalnog mogućeg


kapaciteta, tada formula (5.1) tvrdi da je maksimalni protok manji ili jednak
minimalnom rezu. To se obično piše kao max − f low ≤ min − cut. Taj je
rezultat važan korak u dokazu teorema koji kaže da su te dvije vrijednosti
zapravo jednake. To je tzv. max-flow min-cut teorem.
Promotrimo mrežu D i na njoj protok f. Cilj nam je proširiti f do
maksimalnog protoka. U tu svrhu u mreži trebamo uočiti tzv. f -rastuće
puteve (eng. f -augmenting path). Ti putevi nisu nužno orijentirani i zapravo
ih promatramo kao puteve u grafu zanemarujući orijentaciju lukova.
Postoje dvije vrste f -rastućih puteva:

1. putevi u kojima se ne koristi puni kapacitet lukova,

2. putevi u kojima suprotni luk ( umjesto luka (a, b) promatramo (b, a))
nosi ”kontra-protok”.

Definicija 5.28 Neka je f protok na mreži D = (V, A) . Put i = x1 x2 ...,


xk = p zovemo f -rastućim putem, ako je

1. f (xi , xi+1 ) < c (xi , xi+1 ) i (xi , xi+1 ) ∈ A ili

2. f (xi , xi+1 ) > 0 za (xi , xi+1 ) ∈ A

za sve 1 ≤ i ≤ k − 1.
POGLAVLJE 5. TEORIJA GRAFOVA 235

Na f -rastućim putevima možemo povećati protok na lukovima do mak-


simalnog kapaciteta ili postaviti kontra-protok na nulu. Pri tome moramo
to raditi tako da ne prekršimo zakon očuvanja. Uzimamo, dakle, minimum
za sve 1 ≤ i ≤ k − 1 sljedećih veličina

c (xi , xi+1 ) − f (xi , xi+1 ) ako je (xi , xi+1 ) ∈ A,


f (xi , xi+1 ) ako je (xi+1 , xi ) ∈ A.

Neka je taj minimum jednak a. Sada veličinu a dodamo na lukovima i


oduzmemo od suprotnih lukova. Za tako dobiveni novi protok f˜ vrijedi
³ ´
val f˜ = val (f ) + a.

Novi protok ima veću vrijednost od početnog. Taj postupak nastavljamo


dok ne dostignemo maksimum.
Za dokaz max-flow min-cut teorema posebnu važnost imaju tzv. nepot-
puni f -rastući putevi. To su f -rastući putevi koji ne sadrže ponor p.
Pretpostavimo sada da je f maksimalni protok. Neka je S skup vrhova
s za koje postoji nepotpuni f -rastući put od i do s. Skup T je komplement
od S u skupu V i on je očito neprazan jer sadrži vrh p, jer bi u suprotnom
postojao f -rastući put od i do p, pa protok f ne bi bio maksimalan. Dakle,
{S, T } je rez koji razdvaja i i p.
Uzmimo sada da je (s, t) luk takav da je x ∈ S i y ∈ T. Slijedi da postoji
nepotpuni f -rastući put od i do s i ako je f (x, y) < c (x, y), tada ga možemo
proširiti do t, suprotno pretpostavki da je y ∈ T. Stoga je f (x, y) = c (x, y) .
Nadalje, za dani luk (u, v), takav da je u ∈ T i v ∈ S, postoji nepotpuni
f -rastući put od i do y i ako je f (u, v) > 0, tada ga možemo proširiti do u,
što je u suprotnosti s pretpostavkom da je u ∈ T. Dakle, f (u, v) = 0.
Sada je
X X X
val (f ) = f (x, y) − f (u, v) = c (x, y) = cap (S, T ) .
x∈S u∈T x∈S
y∈T v∈S y∈T

Prema tome, dokazali smo sljedeći teorem.

Teorem 5.12 (max-flow min-cut teorem, L. Ford, D. Fulkerson, 1956). U


transportnoj mreži je vrijednost maksimalnog protoka od s do t jednaka
kapacitetu minimalnog reza koji razdvaja s i t.

Primjere o primjeni prethodnog teorema naći ćete u [1].


Na dokazu prethodnog teorema temelji se i algoritam za pronalaženje
maksimalnog protoka (Ford-Fulkerson-ov algoritam). U tom algoritmu se
prvo metodom označavanja provjeri da li postoji f -rastući put. Ukoliko
postoji, prelazi se na proširenje f -rastućeg puta.
236 5.10. BOJENJE GRAFOVA

Algoritam 5.7
ULAZ: Transportna mreža G = (V, E).
IZLAZ: Maksimalni protok transportne mreže G.

1. Počinjemo s bilo kojim protokom, npr. protokom koji svakom luku


pridružuje nulu.

2. Upotrijebimo BSF (Breadth first search) algoritam za konstrukciju


stabla nepotpunih f -rastućih puteva s korijenom u izvoru i.

3. Ako stablo dostiže ponor p, proširimo f i vratimo se na korak 2. i


uzmimo novi protok.

4. Ako stablo ne dostiže p, stavimo da je S skup svih vrhova koji ne


dostižu p i sa T komplement od S. Protok f je maksimalni protok i
{S, T } je minimalni rez.

5.10 Bojenje grafova


5.10.1 Problem četiri boje
Godine 1853. Francis Guthrie je pokušao obojiti kartu engleskih pokrajina,
tako da pokrajine koje imaju zajedničku granicu budu obojene različitom
bojom i pri tome primijetio da su za to potrebne samo četiri boje. To
je opažanje prenio svom profesoru matematičaru de Morganu, a njega je
to potaknulo da postavi hipotezu četiri boje. Hipoteza kaže da se svaka
geografska karta može obojiti s najviše četiri boje tako da nijedna od dvije
susjedne regije (države) nisu obojene istom bojom. Za regije kažemo da su
susjedne (eng. adjacent) ako imaju zajedničku granicu, ali ne i ako imaju
samo zajedničku točku. Vrlo brzo je utvrdeno da tri boje nisu dovoljne da
se pravilno oboji karta, ali i da se s pet različitih boja može obojiti svaka
karta.
U rješavanju ovog problema angažirao se veliki broj matematičara kroz
period od stotinjak godina. U nekoliko navrata objavljeno je da je hipoteza
dokazana, ali su nakon toga bile otkrivene greške u postupku dokazivanja.
Važne doprinose dokazu hipoteze dao je i hrvatski matematičar Danilo Bla-
nuša sredinom 20. stoljeća.
Medutim, dokaz hipoteze izveden je tek 1977. godine uz značajnu upo-
trebu računala, a dokaz teorema o četiri boje napravili su Kenneth Appel
i Wolfgang Haken. Pomoću računala provjereno je 1936 mogućih slučajeva
(karata). Taj je dokaz, budući da je bio prvi dokaz nekog poznatog teorema
izveden pomoću računala, pokrenuo veliku raspravu u matematičkim kru-
govima o pitanju treba li se takav ”računalni dokaz” smatrati ispravnim.
Matematička je praksa da svaki dokaz čovjek (matematičar) treba biti u
stanju verificirati korak po korak. To nije bio slučaj s Appel-Hakenovim
POGLAVLJE 5. TEORIJA GRAFOVA 237

dokazom teorema o četiri boje. Dvadesetak godina kasnije (1996. godine)


dodatnom razradom matematičke teorije broj mogućnosti koje je trebalo
provjeriti smanjen je na 633. To su učinili Neil Robertson, Daniel Sanders,
Paul Seymour i Robin Thomas i tako omogućili da se dokaz provede (uz
dosta muke i vremena) i bez pomoći računala.
Teorem o četiri boje prirodno se može formulirati u teoriji grafova. Regije
na karti identificiraju se s vrhovima grafa. Svaka dva vrha su spojena bridom
ako pripadne regije na karti imaju zajedničku granicu.

Teorem 5.13 Vrhovi svakog ravninskog (planarnog) grafa mogu se obojiti


s najviše četiri boje tako da ne postoje dva susjedna vrha obojena istom
bojom.

5.10.2 Bojenje vrhova grafa


Problemi bojenja karata, kao i problemi slaganja rasporeda često se opisuju
u modelu bojenja vrhova grafa.

Definicija 5.29 Bojenje vrhova grafa G = (V, E) je funkcija c : V → N sa


svojstvom da je c (x) 6= c (y) kada je {x, y} ∈ E.

Kad govorimo o pridruživanju prirodnih brojeva vrhovima često mislimo


na pridruživanje boja vrhovima grafa i obrnuto. To je razlog zašto funkciju
označavamo sa c (eng. color).
Ponekad se u literaturi (npr. u [5] i [10]) može pronaći da je bojenje
vrhova grafa zapravo bilo kakvo pridruživanje boja vrhovima, dok se bo-
jenje koje susjednim vrhovima pridružuje različite boje zove pravilno bojenje
vrhova grafa (eng. proper vertex coloring).
Kromatski broj χ (G) grafa G je najmanji cijeli broj k takav da postoji
bojenje vrhova grafa G gdje je upotrebljeno točno k boja.
Pitamo se kako odrediti kromatski broj danog grafa. Ukoliko graf ima
relativno mali broj vrhova metodom pokušaja i pogrešaka može se odrediti
kromatski broj grafa. Medutim ako je broj vrhova grafa velik trebali bismo
naći dobar algoritam koji bi rješavao općenito taj problem. Za sada nije
poznat algoritam koji bi pronalazio kromatski broj grafa u polinomnom
vremenu. Ovaj problem pripada klasi NP-potpunih problema (eng. NP-
complete) u kojoj se nalazi i problem trgovačkog putnika.
Jedna od primjena kromatskog broja grafa je problem slaganja ras-
poreda. Na primjer, slaganje rasporeda velikog broja ispita na fakultetu
(ili čak na čitavom sveučilištu). Trebaju se izbjeći konflikti da ni profesor ni
student ne budu na rasporedu u isto vrijeme na dva različita ispita. Ovdje
ćemo pokazati sličan problem slaganja rasporeda na konferenciji.
238 5.10. BOJENJE GRAFOVA

Primjer 5.16 Na kongresu informatičara prezentira se 6 sekcija: s1 , s2 , ...,


s6 . Zbog interesa slušatelja, paralelno se ne smiju izvoditi sljedeće sekcije:
s1 i s2 , s1 i s4 , s3 i s5 , s3 i s6 , s2 i s6 , s5 i s6 . Kako treba napraviti raspored
izvodenja sekcija tako da se kongres održi u najkraćem vremenu i da je
interes slušatelja poštivan? Pretpostavljamo da sve sekcije traju jednako
dugo.
Prikažimo problem pomoću grafa tako da sekcije predstavljaju vrhove
grafa, pri čemu su dva vrha povezana bridom ukoliko se ne smiju izvoditi
paralelno.

s2 s7

s1
s5 s6

s4

Slika 5.22

Jedan od mogućih rasporeda je sljedeći:

1. termin 2. termin 3. termin


s1 , s5 s 2 , s3 , s4 s6

Tablica 5.5

Vidi se da nije moguće sve sekcije smjestiti u manje od tri termina, jer
postoji trokut s3 s5 s6 u grafu što znači da nijedan od ta tri vrha ne smije
biti u istom terminu s preostala dva. Dakle, kromatski broj ovog grafa je 3.
Vrhovi se prema tome mogu obojiti s 3 boje.
POGLAVLJE 5. TEORIJA GRAFOVA 239

s2 s7

s1
s5 s6

s4

Slika 5.23

Bojenje vrhova grafa možemo shvaćati i kao particiju skupa svih vrhova
takvu da su u svakom skupu particije samo oni vrhovi koji nemaju zajednički
brid. Dakle, svaki skup particije sadrži samo vrhove iste boje, pa se često
naziva i klasa boje (eng. color class).

Definicija 5.30 Klika (eng. clique) u grafu G je maksimalni podskup skupa


vrhova u grafu koji su medusobno susjedni. Broj klike (eng. clique number)
ω (G) je broj elemenata (vrhova) najveće klike u grafu.
U gornjem primjeru klike bi bili skupovi {s1 , s2 } , {s1 , s4 } , {s2 , s6 } ,
{s3 , s5 , s6 } , te je ω (G) = 3. Očito je da vrijedi sljedeća tvrdnja.

Propozicija 5.6 U svakom grafu G vrijedi χ (G) ≥ ω (G) .


Općenito rješenje problema traženja kromatskog broja ne postoji. Od-
nosno ne postoji algoritam koji bi dani problem riješio u polinomnom vre-
menu. Postoji, medutim, jednostavna metoda bojenja vrhova grafa, koja
je upotrebljiva ukoliko broj vrhova nije prevelik. Najprije se graf pokuša
obojiti s jednom, pa sa dvije boje, tako da se za vrh uvijek pokuša uzeti
svaka boja kojom nije obojen ni jedan od njegovih susjeda. Ako se na taj
način ne uspiju obojiti svi vrhovi grafa, poveća se broj boja, te se postu-
pak ponavlja iz početka. Ovaj algoritam temelji se na metodi pretraživanja
s vraćanjem (backtracking). On će sigurno pronaći bojenje vrhova grafa
minimalnim brojem boja, no problem je što se ovaj algoritam izvršava u
eksponencijalnom vremenu s obzirom na broj vrhova grafa.
Navedimo dva teorema koji se dokazuju pomoću pohlepnog algoritma.

Teorem 5.14 Neka je G graf u kojem je maksimalni stupanj jednak k. Tada


vrijedi:
240 5.10. BOJENJE GRAFOVA

1. χ (G) ≤ k + 1,

2. ako je G povezan graf i nije regularan tada je χ (G) ≤ k.

Prisjetimo se da je graf bipartitan ako i samo ako ne sadrži cikluse


neparne duljine.

Zadatak 5.28 Nadite kromatski broj potpunog grafa Kn .

Zadatak 5.29 Dokažite da za bipartitni graf G vrijedi χ (G) = 2, koristeći


teorem 5.14.

5.10.3 Bojenje bridova grafa


Postoje problemi u kojima je prirodnije uzeti model bojenja bridova grafa,
umjesto bojenja vrhova grafa.
Takav je primjer ploče sa strujnim krugovima, gdje žice koje se medu-
sobno spajaju trebaju biti obojene različitim bojama kako bismo ih mogli
razlikovati.

Definicija 5.31 Bojenje bridova grafa G = (V, E) je funkcija c : E → N sa


svojstvom da je c (e) 6= c (f ) kada su bridovi e i f incidentni.

Kromatski broj χ0 (G) bojenja bridova grafa G je najmanji cijeli broj k,


takav da postoji bojenje bridova grafa G gdje je upotrebljeno točno k boja.
Nadalje, promotrimo sljedeći problem.

Primjer 5.17 Želimo izraditi raspored posjeta pacijenata P = {u, v, z, x}


koji se trebaju pregledati kod specijalista S = {a, b, c, d, e, f, g}. Pri tome
pacijent treba posjetiti odredenog specijalistu kako je dano u tablici susjed-
nosti:

a b c d e f g
u 1 1 0 0 0 0 1
v 0 1 1 0 1 0 0
z 1 0 0 1 0 1 0
x 0 0 0 0 1 1 1
Tablica 5.6

Napravimo raspored posjeta pacijenata pojedinom specijalistu ako zna-


mo da svaki pregled traje pola sata i počinje se s radom u 8:00.
Nacrtajmo prvo bipartitni graf čiji se skup vrhova sastoji od P i S i čiji
su bridovi dani matricom susjednosti.
POGLAVLJE 5. TEORIJA GRAFOVA 241

u v z x

a b c d e f g

Slika 5.24

Uparivanje pacijenata i specijalista radi se u obliku rasporeda. Sada


svaka boja brida predstavlja odredeno mjesto u rasporedu. Tako se upotre-
bom bojenja bridova bipartitnog grafa dobiva izvediv raspored. Iz gornjeg
grafa može se izvesti raspored za svakog liječnika i za svakog pacijenta.
Vidimo da su potrebna četiri termina po liječniku.
Navedimo jedan očigledan rezultat koji vrijedi za bojenje bridova grafa

Propozicija 5.7 Za bipartitni graf G vrijedi χ0 (G) = δ max (G) .


Dokaz. Dokaz se provodi matematičkom indukcijom po broju bridova
grafa G. Neka je skup vrhova bipartitnog grafa dan kao unija X ∪Y. Uzmimo
graf samo s jednim bridom tj. jedan brid spaja vrhove iz X i Y. Sada je
očito da se graf može obojiti samo jednom bojom.
Pretpostavimo da teorem vrijedi za bipartitni graf s n bridova. Treba
dokazati da tvrdnja vrijedi za graf G s n + 1 bridova tj. da vrijedi χ0 (G) =
δ max (G) = k. Odstranimo li jedan brid iz G dobit ćemo graf s n bridova za
koji je χ0 (G0 ) = δ max (G0 ) jednak k ili k − 1.

Propozicija 5.8 Za graf G u kojem je k medusobno incidentnih bridova


vrijedi χ0 (G) ≥ k.

Propozicija 5.9 Za graf G vrijedi χ0 (G) ≥ δ max (G) .

Teorem 5.15 (Vizing; Gupta) Za jednostavni graf G postoji bojenje vr-


hova grafa tako da se pri tome koristi maksimalno δ max (G) + 1 boja.

Zadatak 5.30 Pomoću matematičke indukcije pokažite da za potpuni graf


Pn vrijedi

1. χ0 (G) = n − 1 ako je n paran broj,

2. χ0 (G) = n ako je n neparan broj.


242 5.11. SPARIVANJE U GRAFOVIMA

5.11 Sparivanje u grafovima


Definicija 5.32 Sparivanje (eng. matching) u grafu G = (V, E) je podskup
M skupa bridova grafa, takav da ni jedan vrh nije incidentan s više od dva
brida u M. Za vrh koji je incidentan nekom bridu u M kažemo da je zasićen
(eng. saturated). Sparivanje je savršeno (eng. perfect matching) ako i samo
ako je svaki vrh zasićen.

Zaključujemo da je sparivanje savršeno ako je svaki vrh incidentan točno


jednom vrhu iz sparivanja M. Medu važne probleme teorije grafova pripada
problem postoji li sparivanje s dovoljno mnogo bridova u danom grafu i
ukoliko postoji kako ga konstruirati.
Za sparivanje M 0 kažemo da je maksimalno ako ne postoji sparivanje
M koje ima više bridova od M 0 . Sparivanje koje je savršeno ujedno je i
maksimalno.
Primjenu sparivanja nalazimo na primjer kod dodjeljivanja posla rad-
nicima. Budući da nijednom radniku ne mogu (u isto vrijeme) biti dodi-
jeljena dva raličita posla ovo je problem sparivanja. Vrhovi u grafu pred-
stavljaju radnike i poslove, dok bridovi spajaju poslove i radnike za koje su
osposobljeni. Takav je graf bipartitan. Pretpostavimo da su u podskupu V1
radnici, a u podskupu V2 poslovi koje treba obaviti. Postavlja se pitanje,
postoji li sparivanje koje zasićuje sve vrhove iz V1 ? Očigledno je da ukoliko
postoji više radnika nego poslova, nije moguće uposliti sve radnike. Pret-
postavimo stoga da je |V1 | ≤ |V2 | . Nadalje, ako imamo k radnika, a broj
poslova za koje su oni svi obučeni je manji od k, opet nećemo moći zaposliti
sve radnike. Neka je X neki podskup skupa V1 . Označimo sada sa S (X)
skup svih vrhova iz V2 koji su susjedni nekom od vrhova u X. Zaključujemo
da mora biti |X| ≤ |S (X)| za svaki X, želimo li da postoji rješenje problema.
Sljedeći teorem tvrdi da je to ujedno i dovoljan uvjet.

Teorem 5.16 (P. Hall, 1935) Neka je G bipartitni graf, pri čemu su V1 i V2
podskupovi biparticije. Postoji sparivanje koje zasićuje V1 ako i samo ako
za svaki podskup X ⊆ V1 ,vrijedi da je |X| ≤ |S (X)| .

Zadatak 5.31 Neka je G bipartitni graf, pri čemu su V1 i V2 podskupovi


biparticije, te svaki vrh ima isti stupanj jednak k. Pokažite da postoji spari-
vanje koje zasićuje V1 .

5.12 Zadaci
1. Odredite broj bridova u potpunom bipartitnom grafu Km,n .

2. Nadite sve medusobno različite (neizomorfne) regularne grafove stup-


nja 4, koji imaju 7 vrhova. Napišite njihove matrice susjedstva.
POGLAVLJE 5. TEORIJA GRAFOVA 243

3. Ako sa δ označimo najmanji stupanj vrha u grafu, a sa ∆ najveći


stupanj vrha u grafu, dokažite da tada vrijedi


δ≤ ≤ ∆.
n
4. Imamo sljedeće definicije

Definicija 5.33 Duljina ciklusa jednaka je broju vrhova koji sudjelu-


ju u ciklusu.

Definicija 5.34 Struk grafa je duljina najkraćeg ciklusa u grafu.

Pokažite da ako je G k-partitan graf struka 4, onda je broj vrhova tog


grafa veći ili jednak 2k. Pokažite da postoji točno jedan takav graf s
točno 2k vrhova.

5. Dokažite da je graf G bipartitan ako i samo ako je svaki ciklus u njemu


parne duljine.

6. Nadite Hamiltonov ciklus u grafu kojeg odreduju vrhovi i bridovi


kocke.

7. U grafu na slici nadite:

(a) šetnju duljine 7 izmedu vrhova b i d,


(b) put maksimalne duljine.

a d

b c

Slika 5.25
244 5.12. ZADACI

8. U Petersenovom grafu nadite


(a) stazu duljine 5,
(b) put duljine 9,
(c) cikluse duljina 5,6,7 i 9.
9. Dokažite ili opovrgnite sljedeće tvrdnje:
(a) Svaki podgraf bipartitnog grafa je bipartitni graf.
(b) Relacija na skupu svih vrhova, takva da je a ∼ b ako i samo ako
postoji put od a do b, je relacija ekvivalencije.
(c) Sume svih elemenata po stupcima u matrici susjedstva u pot-
punom grafu su medusobno jednake.
10. Dokažite da je jednostavan graf u kojemu vrijedi d(u) + d(v) ≥ n − 1
za svaka dva vrha u, v ∈ V (G) povezan.
11. Za koji n ∈ N potpun graf Kn ima stazu, a nema Eulerovu turu?
12. Dokažite da Petersonov graf nije Hamiltonov.
13. Dokažite da je Petersonov graf bez ijednog vrha Hamiltonov.
¥ ¦
14. Dokažite da potpuni graf Kn ima najviše n−1
2 različitih Hamiltonovih
ciklusa.
15. Izdvojite Hamiltonove grafove iz sljedećeg popisa:
(a) potpuni graf Kn ,
(b) potpuni bipartitni graf Km,n ,
(c) stablo s n vrhova.
Ima li medu gornjim grafovima Eulerovih grafova?
16. Upotrebom Dijkstrinog algoritma nadite najkraći put od A do K na
grafu na sljedećoj slici.

5 3

2 2
5 4 7
3 6 4 4
A K
4 4
3 6 5
6 5
POGLAVLJE 5. TEORIJA GRAFOVA 245

Slika 5.26

17. Ciklički graf je graf čiji svi vrhovi i bridovi leže na istoj kružnici.
Nadite kromatski broj cikličkog grafa od 2n vrhova i cikličkog grafa
od 2n + 1 vrhova.

18. Pronadite kromatski broj sljedećih grafova:

Slika 5.27

19. Odredite kromatski broj stabla.

20. Ako je F = (V, E) šuma s e komponenti povezanosti, tada vrijedi


|E| = |V | − e. Dokažite tu tvrdnju.

21. Nacrtajte stabla koja zadovoljavaju sljedeća svojstva:

(a) Binarno stablo koje ima 12 vrhova i 4 nivoa.


(b) Ternarno stablo koje ima 10 vrhova i 4 nivoa.
246 5.12. ZADACI

22. Nadite razapinjuće stablo grafa kocke.

23. Nadite sva razapinjuća stabla potpunog grafa K4 .

24. Neka je graf G definiran sljedećom matricom:

a b c d e f g h
b a b a b g c a
d c d b f g
h d g c h
e

Tablica 5.7

Skicirajte DFS stablo u G počevši od g. Je li G povezani graf?

25. Napišite izraz koji je pohranjen u sljedećem binarnom stablu:

* ◦

- + e f

a b c d

Slika 5.28

26. Neka je G 3-regularan graf sa ciklusom duljine 3 i brojem vrhova većim


od 4. Koliki je kromatski broj grafa G?
POGLAVLJE 5. TEORIJA GRAFOVA 247

27. Neka je (d1 , . . . , dn ) niz stupnjeva vrhova nekog grafa. Dokažite da je


Pn
di paran broj.
i=1

28. Na slici je prikazana mreža na kojoj brojevi na lukovima predstavljaju


kapacitete lukova.

a
10
5 d
4
3 9
6 b
i u
11 4
2 e
8
6
c

Slika 5.29

Protok f definiran je sljedećom tablicom:

(x, y) (i, a) (i, b) (i, c) (a, b) (a, d) (b, c)


f (x, y) 5 6 0 0 5 1
(b, d) (b, e) (c, e) (d, u) (e, u)
2 3 1 7 4

Slika 5.30

(a) Nadite vrijednost od f .


(b) Nadite rez kapaciteta 12.
(c) Što zaključujete?

29. Primijenite Fleuryjev algoritam na graf na slici, počevši od vrha a.


248 5.13. PROJEKTI

Slika 5.31

30. Pokažite da ako je graf G stablo s n vrhova, tada je suma stupnjeva


svih vrhova od G jednaka 2n − 2.

31. Dokažite da vrijedi: graf s n vrhova je bipartitan ako i samo ako se


njegovi vrhovi mogu označiti tako da mu je matrica susjedstva oblika
· ¸
0k A
A> 0m

gdje je n = m + k.

5.13 Projekti
1. Povezani graf zovemo semieulerov graf ako postoji put u grafu koji
sadrži sve bridove grafa. Povezani graf zovemo semihamiltonov graf
ako postoji put u grafu koji sadrži sve vrhove grafa. Istražite svojstva
takvih grafova i njihovu vezu s Eulerovim i Hamiltonovim grafom.

2. Opišite primarne operacije na grafovima: brisanje vrhova ili bridova,


dodavanje vrhova ili bridova i njihova svojstva. Objasnite sekundarne
operacije na grafovima i izvedite njihova svojstva. Nadite primjene
gornjih operacija u informatici. (Uputa: poslužite se literaturom [5]).

3. Proučite način primjene stabala u teoriji odlučivanja, te usporedite


terminologiju koja se upotrebljava u teoriji odlučivanja s onom iz
matematičke teorije grafova.
POGLAVLJE 5. TEORIJA GRAFOVA 249

4. Upotrijebite binarna stabla za konstrukciju binarnih kodova. Opišite


način konstrukcije prefiks koda pomoću binarnog stabla. Opišite algo-
ritam za Huffmanov prefiks kod i Huffmanovo stablo.

5. Promatrajte planarne grafove, definirajte svojstva planarnih grafova,


te izvedite Eulerovu formulu za planarne grafove.

6. Za dva grafa kažemo da su homeomorfni ako se prvi može dobiti iz


drugog tako da se prvom dodaju i/ili izbrišu vrhovi stupnja 2. Nadite
primjere homeomorfnih grafova, te dokažite teorem Kuratowskog koji
daje uvjete da bi graf bio planaran.

7. Opišite veze bojenja bridova grafa i latinskih kvadrata.

8. Grafovi se mogu definirati na različitim plohama kao što su sfera ili


torus. Promatramo svojstva takvih grafova, koji se mogu nacrtati na
tim plohama, tako da im se bridovi sijeku samo u vrhovima. Napravite
nekoliko primjera takvih grafova i ispitajte da li za njih vrijedi Eulerova
formula kao i za planarne grafove.

9. Proučite, objasnite i implementirajte Edmonds-Johnsonov algoritam


te odredite njegovu složenost (Uputa: poslužite se literaturom [9]).
250 5.13. PROJEKTI
Bibliografija

[1] Biggs, N. L., Discrete Mathematics, Oxford University Press Inc., New
York, 2002.

[2] Dymaček, W.M.; Sharp, H.: Introduction to Discrete Mathematics,


WBC/McGraw-Hill, International Editions, 1998.

[3] Garnier, R.: Taylor, J.: Discrete Mathematics for New Technology, IOP
Publishing Ltd, London 1999.

[4] Goodaire, E. G.; Parmenter, M. M.: Discrete Mathematics with Graph


Theory, Prentice Hall, Upper Saddle River, 2002.

[5] Gross, J.; Yellen, J.: Graph Theory and its Applications, CRC Press,
London, 1999.

[6] Kerzner, H.: Project Management, a Systems Approach to Planning,


Scheduling and Controlling, John Wiley and Sons, Inc., 2003.

[7] Rosen, H. K.: Handbook of Discrete and Combinatorial Mathematics,


CRC Press, NY, 2000

[8] Skiena, S.: Implementing Discrete Mathematics, Combinatorics and


Graph Theory with Mathematica, Addison-Wesley, Reading, Masachus-
sets 1990.

[9] Thinbleby, H.: The directed Chinese Postman problem, UCLIC, Lon-
don, http://www.uclic.ucl.ac.uk/harold (27.1.2005.)

[10] Veljan, D.: Kombinatorna i diskretna matematika, Algoritam, Zagreb,


2001.

251
252 BIBLIOGRAFIJA
Poglavlje 6

Algebarske strukture

Zašto su brojevi prekrasni? To je isto


kao da pitate zašto je Beethovenova
Deveta simfonija prekrasna. Ako ne
vidite zašto, nitko vam to ne može
reći. Ja znam da su brojevi prekrasni.
Ako oni nisu, ništa nije.
Paul Erdös

Algebra je dio matematike koja izučava algebarske operacije i struk-


ture. Ovdje ćemo se baviti algebarskim strukturama koje su dijelovi ap-
straktne algebre i imaju značajnu primjenu u drugim područjima znanosti
i istraživanja.
U matematici često povezujemo i proučavamo povezivanje elemenata po-
jedinih skupova. Pri tome, na skupovima defini-
ramo relacije i operacije kao što smo vidjeli na
primjerima u prethodnim poglavljima. Svojstva
operacija možemo proučavati i na apstraktnoj
razini tako da se uzdignemo iznad konkretnih
skupova i stvarnih operacija i baviti se apstrakt-
nom generalnom strukturom (grupom, poljem i
sl.). Pri tome odabiremo ključna svojstva po-
jedninih struktura i njihove posljedice. To nam
omogućava klasifikaciju algebarskih struktura u
odredene klase čiji članovi imaju mnoga važna za-
jednička svojstva. Slika 6.1: Evarist Galois
Uočavamo da je ovdje važan i skup i operacija koja se izvodi na skupu.
Najčešće ćemo se baviti binarnim operacijama, koje povezuju dva elementa
i pridružuju im neki treći element.
Posebno značajne algebarske strukture su grupa i polje.

253
254 6.1. DEFINICIJA I PRIMJERI ALGEBARSKIH STRUKTURA

6.1 Definicija i primjeri algebarskih struktura


U svakoj algebarskoj strukturi imamo jedan ili više skupova i jednu ili više
operacija.
Algebarska operacija ◦ je svako preslikavanje ◦ : An → A pri čemu je
n
A Kartezijev produkt A × A × ... × A (n puta). Operacija tako pridružuje
svakoj n-torki (a1 , a2 , ..., an ) ∈ An jedan element skupa A.
Neprazan skup A, zajedno sa skupom operacija O i skupom relacija R
definiranim na tom skupu, zovemo algebarskom strukturom, a označavamo
sa A = (A, O, R) . Skup A zovemo skupom nosiocem algebarske strukture,
a njegove elemente osnovnim elementima algebarske strukture. Više o tome
pročitajte u [7].

Primjer 6.1 Primjeri algebarskih struktura:


Algebra propozicijske logike: (S, ∨, ∧, ¬) , gdje je S skup sudova, a ∨, ∧, ¬
skupovi na S.
Algebra skupova: (P (A) , ∪, ∩) partitivni skup uz uniju i presjek na
partitivnom skupu.

Zadatak 6.1 Nadite primjere algebarskih struktura na skupovima brojeva.


Posebno mjesto medu algebarskim operacijama pripada binarnim opera-
cijama. Prisjetimo se da su osnovne operacije zbrajanja i množenja realnih
brojeva binarne operacije. Slijedi općenita definicija binarne operacije.

Definicija 6.1 Binarna operacija ◦ na nepraznom skupu S je pravilo koje


svakom paru elemenata a, b ∈ S pridružuje neki element z ∈ S. Pri tome
pišemo z = a ◦ b.
Uočimo da se binarna operacija može promatrati i kao funkcija koja
elementima Kartezijevog kvadrata S 2 (uredenim parovima) pridružuje ele-
ment iz S. Dakle, binarna operacija na nepraznom skupu S je funkcija f :
S × S → S.
Binarna operacija na konačnom skupu S može se prikazati pomoću Cay-
leyeve tablice, koja je objašnjena u sljedećem primjeru. Tablica je dobila ime
po engleskom matematičaru Arthuru Cayleyu (1821-1895), koji je zaslužan
za uvodenje važnih algebarskih struktura u matematiku, ali i za donošenje
propisa koji su ženama omogućili studiranje na sveučilištu Cambridge.

Primjer 6.2 Zadan je skup S = {a, b, c} i binarna operacija ◦ na S pomoću


sljedeće Cayleyeve tablice.
POGLAVLJE 6. ALGEBARSKE STRUKTURE 255

◦ a b c
a a c b
b c b a
c b a c
tablica 6.1

Iz tablice slijedi da je a ◦ b = c, b ◦ a = c, c ◦ b = a itd.

6.2 Grupe
Algebarska struktura grupe motivirana je standardnim binarnim operaci-
jama zbrajanja i množenja na skupovima brojeva. Svojstva tih operacija
nabrojena su u prvom dijelu ove knjige. Ovdje dolazi do izražaja važnost
skupa brojeva na kojem je operacija definirana. Ovisno o skupu operacija,
na skupu brojeva postoji struktura grupe ili ne postoji.
Teorije permutacija, dizajna, te latinskih kvadrata samo su neke za koje
je potrebno poznavati teoriju grupa, polja i prstenova.

6.2.1 Definicija grupe


Ponovimo da u svakoj algebarskoj strukturi počinjemo od pojma skupa i
neke (binarne) operacije definirane na tom skupu. Nadalje, ta (binarna)
operacija treba zadovoljavati odredena svojstva da bismo došli do odredene
algebarske strukture.
Neka je S skup na čijim je elementima definirana binarna operaciju ◦.
Dakle, ◦ djeluje na dva elementa iz S. Ukoliko se kao rezultat djelovanja
operacije ◦ na elemente a, b ∈ S dobije opet neki element c ∈ S, tj. ako je

a ◦ b = c,

za binarnu operaciju ◦ kažemo da je zatvorena na skupu S.


Primjer binarnih relacija su operacije zbrajanja + i množenje ·. One su
zatvorene na skupovima N, Z, Q i R. Operacija − nije zatvorena na skupu
prirodnih brojeva N. Primijetite da za operacije + i · vrijedi svojstvo aso-
cijativnosti. Općenito operacija ◦ je asocijativna na skupu S ako za sve
elemente a, b, c ∈ S vrijedi

(a ◦ b) ◦ c = a ◦ (b ◦ c) .

Nadalje, prisjetimo se da je broj 0 neutralni element za zbrajanje na skupu


Z, ali ne i na N (jer nula nije element skupa prirodnih brojeva), a broj 1 je
neutralni element za množenje. U općem slučaju kažemo da je e neutralni
element (identiteta) za operaciju ◦ na skupu S, ako je e ∈ S i za svaki drugi
element a ∈ S vrijedi
a ◦ e = e ◦ a = a.
256 6.2. GRUPE

U skupu cijelih brojeva za svaki cijeli broj a postoji njemu suprotni broj −a
za koji vrijedi a + (−a) = 0. Promatramo li operaciju množenja na skupu Z,
ona na tom skupu nema inverzni (suprotni) element, tj. za svaki cijeli broj
a ne postoji takav broj a0 za koji je a · a0 = 1, jer je za a 6= 0 takav broj
a0 = a1 . Medutim u skupu Q\{0} svaki broj ima multiplikativni inverz.
Dakle, operacija ◦ ima inverzni (suprotni) element na skupu S, ako za
element a ∈ S \ {e} postoji takav broj a0 za koji je

a ◦ a0 = a0 ◦ a = e.

Slijede dvije tvrdnje o jedinstvenosti neutralnog i inverznog elementa.

Propozicija 6.1 Neka je ◦ binarna operacija na skupu S. Ako neutralni


element postoji, onda je on jedinstven.

Dokaz. Pretpostavimo suprotno, tj. da postoje dva neutralna elementa


e i e0 na S za operaciju ◦. Vrijedi:

e ◦ e0 = e0 ◦ e = e
e0 ◦ e = e ◦ e0 = e0 .

Dakle, slijedi e = e0 .

Propozicija 6.2 Neka je ◦ asocijativna binarna operacija na skupu S za


koju je e neutralni element. Ako za neki element postoji inverzni element
onda je on jedinstven.

Dokaz. Pretpostavimo suprotno, tj. da za x ∈ S postoje dva inverzna


elementa a i b na S za operaciju ◦. Vrijedi

x◦a = a◦x=e
x ◦ b = b ◦ x = e.

Sada je

a = a◦e
= a ◦ (x ◦ b)
= (a ◦ x) ◦ b
= e◦b
= b.

Operacije zbrajanja i množenja su i komutativne jer se redosljed eleme-


nata na koje se operacija primjenjuje može zamijeniti.
POGLAVLJE 6. ALGEBARSKE STRUKTURE 257

Općenito, operacija ◦ je komutativna na S ako za sve elemente a, b ∈ S


vrijedi
a ◦ b = b ◦ a.
Svojstva koja smo nabrojali važna su i imaju značajne posljedice. Stoga
se u algebri definira posebna struktura koja posjeduje gornja svojstva, a zove
se grupa.

Definicija 6.2 Grupa je uredeni par (S, ◦) , gdje S predstavlja skup, a ◦


binarnu operaciju na elementima tog skupa. Operacija ima sljedeća svojstva:
1. zatvorenost, tj. ako je a, b ∈ S, onda je a ◦ b ∈ S,
2. asocijativnost,
3. postojanje neutralnog elementa (identiteta),
4. svaki element od S ima inverzni element.
Ukoliko je (S, ◦) grupa za koju vrijedi komutativnost, kažemo da je grupa
komutativna ili Abelova grupa.
Abelova grupa je dobila ime po norveškom matematičaru Nielsu Abelu
(1802-1829) koji je u svom kratkom životu dao značajne doprinose teoriji
jednadžbi i beskonačnih redova.
Spomenimo još dva pojma koji se upotrebljavaju u ovom kontekstu.
Polugrupa je struktura (S, ◦) takva da je operacija ◦ zatvorena i asoci-
jativna na S.
Monoid je polugrupa (S, ◦) takva da operacija ◦ ima neutralni element
na S.

6.2.2 Konačne i cikličke grupe


Ako je skup S konačan, onda za kardinalni broj |S| kažemo da je red grupe
(eng. order) i da je grupa konačnog reda ili konačna. Za grupu gdje skup
ima beskonačno mnogo elemenata kažemo da ima beskonačan red.
Evo teorema koji govori o važnom svojstvu strukture koja je grupa, koji
ima značajan utjecaj na grupe konačnog reda.

Teorem 6.1 Neka su a, b ∈ S i G = (S, ◦) grupa. Tada jednadžba a ◦ x = b


ima jedinstveno rješenje u grupi G.
Dokaz. Pretpostavimo suprotno, tj. da jednadžba a ◦ x = b ima dva
različita rješenja x1 , x2 . Tada vrijedi a ◦ x1 = b i a ◦ x2 = b. Izjednačimo
jednadžbe i dobivamo a ◦ x1 = a ◦ x2 . Proširimo obje strane jednadžbe
s inverznim elementom a0 od a slijeva i primijenimo zakon asocijativnosti.
Imamo (a0 ◦ a) ◦ x1 = (a0 ◦ a) ◦ x2 . Sada je e ◦ x1 = e ◦ x2 , a budući da je e
identiteta, dobivamo x1 = x2 . To predstavlja kontradikciju s pretpostavkom,
pa zaključujemo da jednadžba a ◦ x = b ima jedinstveno rješenje.
Primijetimo kakav utjecaj ima prethodni teorem na izgled Cayleyeve
tablice grupe konačnog reda. U slučaju grupe, svaki se element u tablici
258 6.2. GRUPE

pojavljuje točno jedanput u svakom redu, odnosno stupcu. Zapišimo to u


obliku propozicije.

Propozicija 6.3 Neka je (S, ◦) konačna grupa. Tada se u Cayleyevoj tablici


svaki element skupa S pojavljuje točno jedanput u svakom retku, odnosno
stupcu.

Zadatak 6.2 Pokažite kontraprimjerom da obrat ove tvrdnje ne vrijedi.


Za svaki element a grupe G možemo definirati niz cjelobrojnih potencija
kao što slijedi:

a1 = a, a2 = a ◦ a, ..., an = a ◦ an−1 , za n ≥ 2,
a−1 = a0 , a−2 = a0 ◦ a0 , ..., a−n = a−1 ◦ a−(n−1) , za n ≥ 2.

Stavljamo takoder a0 = e. Često se umjesto a ◦ b piše jednostavno ab. Zbog


svojstva asocijativnosti očito vrijedi am an = am+n .
Ako je a element grupe i n najmanji prirodan broj, takav da je xn = e,
tada kažemo da je n red elementa a u grupi G i pišemo |a| = n. Ukoliko ne
postoji takav konačan prirodan broj n, kažemo da element a ima beskonačan
red.

Teorem 6.2 Neka je a element reda n konačne grupe G. Tada je am = e


ako i samo ako je m višekratnik od n.

Definicija 6.3 Za grupu G = (S, ◦) kažemo da je ciklička ako postoji ele-


ment a ∈ S takav da za svaki b ∈ S, b = an za neki n ∈ Z. Za grupu G tada
kažemo da je generirana elementom a i a zovemo generatorom grupe.

Zadatak 6.3 Pokažite da je grupa (Z, +) ciklička i da je broj 1 generator


grupe.

Primjer 6.3 Pokažite da je grupa Z7 , uz zbrajanje modulo 7 ciklička i da


je klasa ekvivalencije [3] generator grupe.
Vrijedi da je:

1[3] = [3]
2[3] = [3] +7 [3] = [6]
3[3] = [3] +7 [6] = [2]
4[3] = [3] +7 [2] = [5]
5[3] = [3] +7 [5] = [1]
6[3] = [3] +7 [1] = [4]
7[3] = [3] +7 [4] = [0].
POGLAVLJE 6. ALGEBARSKE STRUKTURE 259

Zadatak 6.4 Pokažite da su svi elementi grupe Z7 , osim [0], uz zbrajanje


modulo 7 generatori grupe (Z7 , +).

Rješenja prethodna dva zadataka možete naći u [[3], str 340].

Zadatak 6.5 Neka je M skup matrica oblika


· ¸
1 n
, n ∈ Z.
0 1

Pokažite da je M , uz operaciju množenja matrica, beskonačna ciklička grupa.

Zadatak 6.6 Dokažite da ciklička grupa sa samo jednim generatorom ne


može imati više od 2 elementa.

6.2.3 Primjeri grupa


Ovdje ćemo upoznati važnije primjere struktura, koje su grupe.

1. Najpoznatiji primjeri grupe su različiti skupovi brojeva uz operacije


množenja i zbrajanja.
Komutativne grupe su (Z, +), (Q, +), (Q\ {0} , ·), (R, +), (R\ {0} , ·) .

2. Neka je na skupu T definiran skup funkcija F = {f : T → T | f


je bijekcija}. Na elementima skupa F dana je operacija ◦ kompozicije
funkcija. Znamo da je operacija kompozicije zatvorena i asocijativna.
Nadalje, identiteta je funkcija e (x) = x, ∀x ∈ T. Budući da su elementi
skupa F bijekcije, za svaku funkciju f ∈ F, postoji inverzna funkcija
f −1 , takva da je f ◦ f −1 = f −1 ◦ f = e. Zaključujemo da je (F, ◦)
grupa. Kompozicija funkcija nije komutativna operacija, pa grupa
nije Abelova.

3. Grupa permutacija (simetrična grupa) je skup svih bijekcija na ko-


načnom skupu S = {1, 2, 3, ..., n} uz operaciju kompozicije funkcija.
Prisjetimo se da permutacije možemo zapisati pomoću matrice tipa
(2, n) . Primjerice permutacija p skupa od 5 elemenata zapiše se kao
· ¸
1 2 3 4 5
p= .
p (1) p (2) p (3) p (4) p (5)

Skup od n elemenata ima n! različitih permutacija. Stoga bi i Cayley-


jeva tablica imala n! redaka, odnosno stupaca. Iz tablice je vidljivo da
grupa nije komutativna.
Red grupe je n, a oznaka je Sn . Grupu (Sn , ◦) zovemo i simetričnom
grupom reda n.
260 6.2. GRUPE

4. Skup matrica tipa (m, n), uz operaciju zbrajanja matrica, je komuta-


tivna grupa. Više detalja o toj grupi možete naći u [2].

5. Skup Mn kvadratnih regularnih matrica reda n uz operaciju množenja


matrica je grupa (nije komutativna). Uočite da kao posljedicu teorema
6.1 vrijedi da svaka matrična jednadžba AX = B, gdje su A, B ∈ Mn ,
ima jedinstveno rješenje, tj. postoji jedinstvena matrica C ∈ Mn takva
da je AC = B.

Zadatak 6.7

· ¸
a b
1. Pokažite da je skup matrica oblika , gdje su a, b ∈ Z3 i a 6= 0,
0 1
uz operaciju množenja matrica grupa.

2. Ispišite sve matrice koje pripadaju gornjoj grupi.

Zadatak 6.8 Napišite Cayleyjevu tablicu za grupu permutacija skupa koji


ima 3 elementa.

6.2.4 Podgrupe
U prethodnoj točki smo utvrdili da su (Z, +) , (Q, +) , (R, +) grupe i pri tome
je Z ⊂ Q ⊂ R. Kažemo da je grupa koja je sadržana u drugim grupama
njezina podgrupa.

Definicija 6.4 Neka je (S, ◦) grupa, P ⊆ S i (P, ◦) takoder grupa. Kažemo


da je (P, ◦) podgrupa grupe (S, ◦) . Pišemo (P, ◦) ≤ (S, ◦) .

Svaka grupa G koja ima barem dva elementa, ima barem dvije pod-
grupe. To je cijela grupa G, te ({e} , ◦) gdje je e neutralni element u G.
Ove dvije podgrupe zovemo trivijalnim podgrupama. Ostale podgrupe dane
grupe zovemo pravim podgrupama. Pokazuje se da svaka beskonačna grupa
ima pravih podgrupa, dok to ne mora biti slučaj kod konačnih grupa. Poz-
nato je da ako je red grupe prosti broj, onda ona nema pravih podgrupa.
Dokaz ove tvrdnje možete naći u [6], str 22.
Slijede dva teorema koji daju test za podgrupe.

Teorem 6.3 Neka je (S, ◦) grupa i P neprazan podskup od S. Struktura


(P, ◦) je grupa ako i samo ako:

1. ab ∈ P za sve a, b ∈ P,

2. za sve a ∈ P slijedi da je a−1 ∈ P.


POGLAVLJE 6. ALGEBARSKE STRUKTURE 261

Dokaz. Nužan smjer je opet trivijalno ispunjen jer je neutralni element


jedinstven i svaki element ima jedinstveni inverzni element.
Pokažimo dovoljan uvjet, tj. ako vrijede uvjeti 1. i 2. iz prethodnog
teorema, onda je struktura (P, ◦) podgrupa grupe (S, ◦) .
Treba pokazati da u (P, ◦) vrijedi asocijativnost, tj. da postoji neutralni
element u P. Operacija je zatvorena u P zbog uvjeta 1. Asocijativnost je
naslijedena iz grupe (S, ◦) . Inverzni element svakog elementa iz P je takoder
u P zbog uvjeta 2. Neka je a ∈ P , tada je a−1 ∈ P, pa iz uvjeta 2. dobivamo
aa−1 = e ∈ P.
Uočite da prvi uvjet u prethodnom teoremu traži da operacija iz grupe
bude zatvorena u P, a drugi da svaki element iz P ima inverzni element, koji
se nalazi u P.
Ukoliko su ispunjena oba uvjeta tada je (P, ◦) podgrupa grupe (S, ◦).
Slijedi teorem koji daje još jedan test za podgrupu.

Teorem 6.4 Neka je (S, ◦) grupa i P neprazan podskup od S. Struktura


(P, ◦) je podgrupa grupe (S, ◦) ako i samo ako je

ab−1 ∈ P za sve a, b ∈ P. (6.1)

Dokaz. Nužan smjer je trivijalno ispunjen.


Pokažimo dovoljan uvjet, tj. ako vrijedi uvjet 6.1 onda je struktura (P, ◦)
podgrupa grupe (S, ◦) . Asocijativnost je naslijedena iz S. Uzmimo element
a iz P. Iz uvjeta 6.1 slijedi da je aa−1 = e ∈ P. Dakle P sadrži neutralni
element. Uzmimo sada e, a ∈ P, pa iz 6.1 slijedi da je a−1 ∈ P, što znači
da svi elementi iz P imaju inverzni element u P. Zatvorenost operacije ◦ u
P dokazujemo tako da promatramo dva elementa a, b ∈ ¡P, a ¢iz postojanja
−1
inverznog elementa u P dobivamo b−1 ∈ P, pa je iz 6.1 a b−1 = ab ∈ P.

Ako je P konačan neprazan podskup od S dovoljno je ispitati samo prvi


uvjet iz teorema 6.3, tj. da je operacija zatvorena u P. O tome govori sljedeća
propozicija, koja daje test za konačne podgrupe.

Propozicija 6.4 Neka je (S, ◦) grupa i P neprazni konačni podskup od


S. Ako je P zatvoren s obzirom na operaciju ◦, tada je struktura (P, ◦)
podgrupa grupe (S, ◦).

Dokaz ove propozicije možete naći u [3], str. 351.

Zadatak 6.9 Pokažite da su {[0] , [2], [4], [6]} , {[0] , [4]} podgrupe grupe (Z8
,+), gdje je operacija u grupi zbrajanje modulo 8.
· ¸
1 a
Zadatak 6.10 Pokažite da je skup matrica oblika , gdje su a ∈ Z ,
0 1
uz operaciju množenja matrica grupa. Nadalje, ispišite sve elemente gornjeg
262 6.2. GRUPE

skupa. Na kraju pokažite da taj skup predstavlja podgrupu grupe regularnih


matrica drugog reda uz operaciju množenja matrica.

U grupi G definiramo relaciju ∼ sa

a ∼ b ⇔ a−1 b ∈ P

gdje je P podgrupa od G. Tada je ∼ relacija ekvivalencije na G te postoji


particija skupa G u neprazne klase ekvivalencije. Te klase ekvivalencije su
oblika

bP = {a ∈ S|a = bx za neki x ∈ P }

i zovemo ih lijevim koskupovima (engl. coset) od P s obzirom na element


b ∈ G.
Dakle, različiti lijevi koskupovi čine particiju od G. Ova činjenica ima
za posljedicu sljedeći važan teorem, tzv. Lagrangeov teorem:

Teorem 6.5 Ako je G konačna grupa reda n i P njena podgrupa reda m,


onda je m djelitelj od n.

Dokaz. Svi lijevi koskupovi imaju kardinalni broj jednak m, a budući


da oni čine particiju od G, jasno je da vrijedi m|n.
Do istog bismo rezultata došli kad bismo umjesto lijevih koskupova
upotrebljavali desne koskupove.
Neka je sada a neki element grupe G = (S, ◦) . Postavlja se pitanje
koja je najmanja podgrupa od G koja sadrži element a? Zbog svojstva
zatvorenosti, tražena podgrupa P treba sadržavati sve pozitivne potencije
od a tj. elemente a2 , a3 , . . .. S druge strane, P treba sadržavati sve njihove
inverzne elemente, tj. negativne potencije od a. Vrijedi sljedeći teorem.

Teorem 6.6 Neka je G = (S, ◦) grupa i a ∈ S. Neka je nadalje H = {an :


n ∈ Z}. Struktura (H, ◦) je najmanja podgrupa od G koja sadrži element a.

Zadatak 6.11 Detalje dokaza teorema napravite za vježbu.

Sukladno konstrukciji, grupu (H, ◦) zovemo cikličkom podgrupom od G


generiranom sa a.
U dva specijalna slučaja cikličke podgrupe generirane sa a su trivi-
jalne. Prvo, kada je podgrupa generirana neutralnim elementom (({e}, ◦)).
I drugo, kada je G ciklička grupa generirana elementom a onda je P = G.

Primjer 6.4 Promatramo grupu (Z4 , +4 ) . Nadimo cikličke podgrupe ge-


nerirane sa [2].
POGLAVLJE 6. ALGEBARSKE STRUKTURE 263

Imamo

0[2] = [0],
1[2] = [2],
2[2] = [2] + [2] = [0],
−1[2] = [2].

Dakle, tražena podgrupa je ({[0], [2]}, +4 ) .

Zadatak 6.12 Promatrajte grupu (Z6 , +6 ) . Nadite cikličke podgrupe ge-


nerirane sa [2], odnosno [3].

6.3 Izomorfizam grupa


Usporedivanjem pojedinih grupa, odnosno njihovih Cayleyevih tablica (za
konačne grupe) može se uočiti njihova suštinska jednakost. Znači, ako bi
drugačije označili elemente jedne grupe dobili bismo drugu grupu. Za takve
grupe kažemo da su izomorfne.

Definicija 6.5 Izomorfizam grupa (G, ×) i (H, ◦) je bijekcija f : G → H


takva da vrijedi
f (g1 × g2 ) = f (g1 ) ◦ f (g2 )
za sve g1 , g2 ∈ G. Tada za grupe (G, ×) i (H, ◦) kažemo da su izomorfne i
pišemo (G, ×) ∼= (H, ◦) .

U prethodnoj definiciji izomorfizma tražili smo da je izomorfizam bijek-


cija, te da čuva strukturu grupe.

Primjer 6.5 Izomorfne grupe su skup pozitivnih realnih brojeva uz opera-


ciju množenja (R+ , ·) i grupa (R, +) . Izomorfizam tih grupa je, na primjer,
funkcija f (x) = ln x.
Znamo da je logaritamska funkcija bijekcija, pa da bi pokazali da je f
izomorfizam, trebamo provjeriti svojstvo 6.5. Dakle, treba biti f (x · y) =
f (x) · f (y) , za sve x, y ∈ R+ . Uvrstimo li umjesto f zadanu logaritamsku
funkciju, imamo ln (xy) = ln x + ln y. Dakle, vrijedi svojstvo zbog svojstva
logaritama, da je logaritam produkta jednak produktu logaritama.
Uočimo da su obje grupe komutativne. Nadalje, neutralni element u
prvoj grupi je 1, a u drugoj 0, ali vrijedi f (1) = 0. Znači neutralni se
element iz prve grupe preko izomorfizma preslikao u neutralni element iz
druge grupe.

Zadatak 6.13 Pokažite da je funkcija f −1 (x) = ex (inverz logaritamske


funkcije iz prethodnog zadatka) izomorfizam grupa (R, +) i (R+ , ·) .
264 6.3. IZOMORFIZAM GRUPA

Iz prethodnog primjera izlazi da je svaka logaritamska funkcija izomor-


fizam zadanim grupa, pa zaključujemo da izomorfizam, ako postoji, ne mora
biti jedinstven.
Dakle, da bismo pokazali da su dvije grupe izomorfne dovoljno je naći
jedan izomorfizam izmedu tih grupa. Problem je pokazati da dvije grupe
nisu izomorfne, jer činjenica da ne znamo naći izomorfizam ne povlači nužno
da on ne postoji. Stoga nam je važan sljedeći teorem koji daje neka svoj-
stva izomorfnih grupa. Upotrebom ovog teorema možemo uočiti svojstvo
koje jedna grupa ima, a druga nema, pa na temelju toga zaključujemo da
grupe nisu izomorfne. S druge strane, teorem nam daje neke informacije o
potencijalnom izomorfizmu izmedu grupa.

Teorem 6.7 Neka je f : G → H izomorfizam grupa (G, ×) i (H, ◦) . Tada


vrijede sljedeće tvrdnje:

1. Ako je (G, ×) komutativna grupa, tada je i (H, ◦) komutativna grupa.

2. Ako je e neutralni element u (G, ×), onda je f (e) neutralni element u


(H, ◦) .
¡ ¢
3. Ako je a−1 inverzni element od a u (G, ×), onda je f a−1 inverzni
element od f (a) u (H, ◦) .

4. Inverzna funkcija f −1 : H → G od f definira izomorfizam iz (H, ◦) u


(G, ×) .

5. Ako je (G, ×) ciklička grupa, onda je i (H, ◦) ciklička grupa.

6. Za a ∈ G vrijedi |a| = |f (a)| .

7. Ako je (G0 , ×) podrupa od G, onda je (H 0 = {f (a) : a ∈ G0 } , ◦) pod-


grupa od (H, ◦) i te su dvije podgrupe izomorfne.

Govorimo da izomorfizam čuva odredena svojstva grupe kao što su ko-


mutativnost, neutralni i inverzni element, zatim red elementa, podgrupe i
svojstvo cikličnosti grupe.
S apstraktnog gledišta sve su izometrične grupe medusobno jednake.
Tako, pojam izomorfizma predstavlja relaciju ekvivalencije, koja klasificira
sve grupe u klase medusobno izomorfnih grupa. Zbog toga često pokazu-
jemo da je neka grupa izomorfna nekom standardnom predstavniku odredene
klase medusobno izomorfnih grupa. Prikladno je za standardne predstavnike
upotrebljavati cikličke grupe.
Izmedu bilo koje dvije algebarske strukture (A, ◦) i (B, ×) možemo pro-
matrati preslikavanje f : A → B, kojeg zovemo morfizmom ukoliko vrijedi
svojstvo 6.5 iz definicije izomorfizma. Uočite da se morfizam razlikuje od
izomorfizama u tome što morfizam ne mora biti bijekcija izmedu zadanih
skupova. Dakle, morfizam je općenitiji pojam od izomorfizma.
POGLAVLJE 6. ALGEBARSKE STRUKTURE 265

Sljedeći teorem govori o načinu prenošenja struktura grupe preko pres-


likavanja koje je morfizam.

Teorem 6.8 Neka je (A, ◦) grupa, (B, ×) algebarska struktura i f : A →


f (A) ⊆ B morfizam. Tada je i (f (A) , ×) grupa.

Zadatak 6.14 Dokažite prethodni teorem.

Zadatak 6.15 Zadane su aditivna i multiplikativna grupa kongruencija


(Z6 , +6 ) i (Z7 \ {[0]}, ×6 ) .

1. Napravite Cayleyeve tablice za obje grupe.

2. Ispitajte da li su te grupe izomorfne, te ako jesu pronadite barem jedan


izomorfizam medu njima.

6.4 Primjena grupa u kodiranju


U ovom ćemo poglavlju objasniti jednu od brojnih mogućih primjena dis-
kretne matematike, koju obraduje i ova knjiga, na područje informatike.
Jedan od zadataka informatike je komunikacija (prijenos) podataka s
jednog mjesta na drugo. Ponekad se taj prijenos izvršava na malim udalje-
nostima, primjerice unutar memorije istog računala, a drugi puta se infor-
macije trebaju prenijeti na svemirsku letjelicu, milijune kilometara udaljenu
od Zemlje. Medutim, u svim slučajevima cilj nam je da dobijemo informa-
ciju koju smo i poslali, tj. da ona nema pogrešaka. Poznato je da je to
zbog niza faktora, koji utječu na informaciju tijekom prijenosa, često teško
izvedivo.
Ovdje ćemo prikazati kako se pogreška nastala u prijenosu može detek-
tirati i ispraviti. Pri tome ćemo koristiti popriličan matematički aparat.
Nabrojimo samo naprednija znanja ovdje potrebna: grupe, metrika (udalje-
nost), kongruencija, algebra matrica, rješavanje homogenog sustava linear-
nih jednadžbi, itd.

6.4.1 Teorija kodiranja kao grana matematike


Općenito, želimo li točno interpretirati signal, služimo se s barem tri znan-
stvena područja: električnim inženjerstvom, računarstvom i matematikom.
U matematici taj problem obraduje teorija kodiranja (eng. coding the-
ory). Dakle, teorija kodiranja je grana matematike koja se bavi slanjem
podataka kroz komunikacijski kanal, u kojem postoje smetnje koje utječu
na prijenos, te točnom interpretacijom poslanih podataka. Za razliku od
kriptografije koja se trudi zadržati informaciju u obliku teškom za čitanje
266 6.4. PRIMJENA GRUPA U KODIRANJU

(neautoriziranim subjektima), teorija kodiranja nam pomaže da informaciju


što lakše pročitamo.
U ovoj smo knjizi već govorili o kodiranju (Huffmanov kod), a ovdje
ćemo govoriti o detektiranju i ispravljanju pogrešaka.
Pretpostavljamo da se poruka šalje u binarnom obliku (nizovi 0 i 1), te
se pogreške pri prijenosu javljaju nasumično, ali u predvidljivom opsegu.
Da bi kompenzirali te pogreške šaljemo više bitova od onih pomoću kojih je
zapisana originalna poruka.
Najjednostavnija metoda detekcije pogrešaka je upotreba paritetnog ko-
da (eng. parity code), koji šalje jedan dodatni bit na svakih 7 bitova origi-
nalne poruke. Medutim, tom metodom mogu se samo uočiti neke pogreške,
ali nije ih moguće ispraviti, pa poruku treba slati ponovno.
Još jedna jednostavna metoda detekcije pogrešaka sastoji se u tome
da se svaki bit ponovi odredeni broj puta. Ta metoda, s druge strane,
bitno povećava troškove prijenosa poruke, jer se po toj shemi multipli-
cira broj bitova. U svrhu rješavanja tog problema,
1948. godine je Claude Shannon, koji je radio za
Bell Laboratories, udario temelje teorije kodiranja,
dokazujući da je moguće kodirati poruku tako da
broj dodatnih bitova ostane relativno mali. Nje-
gov doprinos nije imao praktičnih implikacija, ali
je zato 1950. godine njegov kolega iz Bell Labo-
ratories, Richard Hamming započeo proučavanje
kodova koji dopuštaju ispravljanje pogrešaka. On
je pronašao kod u kojem je informacija od 4 bita
bila dopunjena s tri dodatna bita, a kod je dozvo-
Slika 6.2: Richard Wesley ljavao i detekciju i korekciju pogrešaka.
Hamming
Istovremeno kad i spomenuta dva znanstvenika iz
SAD-a, na Cambridgeu je na teoriji kodiranja radio John Leech. On je
izumio sličan kod radeći na apstraktnoj teoriji grupa. To je istraživanje
uključivalo i problem pakiranja na sferi, te 24-dimenzionalnu Leech mrežu,
pomoću koje su objašnjene i klasificirane konačne simetrične grupe.
Važnost teorije kodiranja ubrzo je uočena te je našla brojne primjene.
Primjerice, u razdoblju od 1969. do 1973. NASA Mariner bespilotne letjelice
istraživale su Mars, Veneru, Merkur (više informacija na [13]), a pri prijenosu
impresivnih slika i drugih informacija na Zemlju upotrebljavale su Reed–
Mullerov kod. Taj kod može ispraviti 7 pogrešaka u 32 prenesena bita, a
sastoji se od 26 bitova poruke i samo 6 bitova korektivnog koda. U tom je
prijenosu 16000 bitova u sekundi sigurno stizalo na Zemlju.
Nadalje, teorija kodiranja je svoju primjenu našla u razvoju tehnologije
CD-ova, na kojima se signal takoder kodira digitalno. Da bi se diskovi
zaštitili od oštećenja kodira se pomoću koda koji ima mogućnost ispravljanja
pogrešaka.
U posljednjih nekoliko godina pronaden je i eksplicitni kod koji dostiže
POGLAVLJE 6. ALGEBARSKE STRUKTURE 267

granice predvidene u Shannonovom radu. Konstrukcija tog koda zahtjeva


tehnike iz vrlo širokog područja teorijske matematike: od linearne algebre,
teorije polja i algebarske geometrije, do algebarskih struktura.
Više o teoriji kodiranja možete naći u [9].

6.4.2 Problemi prijenosa informacija


Pretpostavimo da se svi podaci prikazuju kao nizovi nula i jedinica, tj. kao
riječi abecede {0, 1} . Takve riječi zovemo binarnim riječima, a njihove di-
jelove (nule i jedinice) bitovima. Nadalje, razumljive su sljedeće pretpostavke
koje se odnose na nastanak pogreške kod prijenosa podataka. Prvo, pogreška
nastaje zato jer se 0 pretvori u 1, ili obrnuto, na jednom ili više mjesta u
riječi. Drugo, jednaka je vjerojatnost da se 0 pretvori u 1, kao i da se 1
pretvori u 0, (iako u praksi to često nije tako, za teorijska razmatranja uzi-
ma se to kao pretpostavka). Pogreška na jednom bitu ne utječe na nastanak
pogreške na nekom drugom bitu i jednaka je vjerojatnost nastanka pogreške
na bilo kojem bitu. Na kraju, veća je vjerojatnost manjeg broja pogrešaka,
nego većeg broja pogrešaka.
Neka sada prenosimo riječi iz skupa svih riječi duljine 4 i da se pri tome
riječ 0011 greškom promijenila u 0010. Tu pogrešku ne bismo mogli detek-
tirati jer i ova deformirana riječ postoji u skupu iz kojeg uzimamo riječi.
Dakle, možemo uočiti samo one pogreške na riječima kod kojih dobivena
pogrešna riječ nije iz skupa očekivanih riječi. Pretpostavimo sada da riječi
uzimamo iz skupa R = {0000, 0001, 0011, 0101, 0111, 1010, 1101, 1111}. Riječ
0011 je element skupa R dok 0010 nije, pa znamo da se radi o pogrešci,
iako ne znamo na kojem je bitu pogreška i da li je pogreška samo na jed-
nom bitu. S druge strane, prema pretpostavkama navedenim u prethod-
nom odjeljku, znamo da je najvjerojatnije nastala pogreška na jednom bitu,
pa je poslana riječ najvjerojatnije 0011 ili 1010, ali ne znamo koja, jer su
riječi skupa R previše slične jedna drugoj. Medutim, promatramo li skup
R0 = {0000, 0001, 0011, 0101, 0111, 1101, 1111}, gornju pogrešku možemo de-
tektirati i ispraviti.
Cilj nam je vidjeti koje uvjete treba zadovoljavati skup riječi da bi uvijek
bilo moguće detektirati i ispraviti pogrešku na jednom ili n kodova.

6.4.3 Metrika na kodnim riječima


Da bi taj cilj postigli prvo moramo uvesti metriku na skupu svih binarnih
riječi. Tu metriku, koja nam omogućuje mjerenje stupnja različitosti dviju
riječi, zovemo Hammingovom udaljenošću, prema Richardu Hammingu koji
je sredinom dvadesetog stoljeća utemeljio teoriju detekcije i ispravljanja
pogrešaka u prijenosu podataka.
Ponovimo da svaka funkcija d : S × S → R+ ∪ {0}, koja predstavlja
metriku (udaljenost) na skupu S, u matematičkom smislu treba zadovolja-
268 6.4. PRIMJENA GRUPA U KODIRANJU

vati sljedeće aksiome metrike ([7]). Za svaki izbor x, y, z ∈ S vrijedi:

1. d (x, y) ≥ 0 (pozitivna definitnost),

2. d (x, y) = 0 akko x = y (nedegeneriranost),

3. d (x, y) = d (y, x) (simetričnost),

4. d (x, z) ≤ d (x, y) + d (y, z) (nejednakost trokuta).

Sljedeća definicija uvodi metriku na skup Rn svih binarnih riječi duljine


n.

Definicija 6.6 Hammingova udaljenost d (x, y) dviju binarnih riječi x, y


jednake duljine n, je broj bitova u kojima se x i y razlikuju.

Zadatak 6.16 Provjerite da li Hammingova udaljenost zadovoljava aksio-


me metrike?
Primijetimo da je za otkrivanje i ispravljanje pogrešaka važno da riječi
iz skupa riječi budu dosta ”razmaknute”, tj. da im je udaljenost čim veća.
Nadalje, prije slanja podataka, riječima se dodaje jedan ili više bitova na
kraju riječi i ti dodatni bitovi služe korekciji pogrešaka. Stoga se oni i zovu
kontrolni bitovi (eng. check digits). Dakle, ako je informacija sadržana u
riječi duljine m, na nju se dodaje r kontrolnih bitova, pa riječ koja se prenosi
ima duljinu n = m + r. Sada funkciju E : Rm → Rn sa skupa svih riječi
duljine m u skup svih riječi duljine n nazivamo kodirajućom funkcijom (eng.
encoding function), a riječi iz Rn zovemo kodnim riječima (eng. code-
word). Jasno je da je funkcija E injekcija. Definiramo i funkciju D : Rn →
Rm ∪ {pogreške}, koju nazivamo dekodirajućom funkcijom (eng. decoding
function). Kad ne bi bilo pogrešaka, funkcije D i E bi bile medusobno in-
verzne. Skup kodnih riječi je pravi podskup skupa svih binarnih riječi duljine
n, pa postoje elementi iz Rn koji ne predstavljaju kodne riječi. Kod prijema
riječi treba pronaći najbližu riječ i s njom je identificirati. Ovo je dekodi-
ranje po principu ”najbližeg susjeda”. Problem je veći ako takav ”najbliži
susjed” nije jedinstven.
Ponovimo, proces kodiranja i dekodiranja se sastoji od funkcija E :
Rm → Rn i D : Rn → Rm ∪ {pogreške}, a često se zove i (m, n) blok
kod. Blok kod je sistematičan (eng. systematic block code) ako je za dani
x ∈ Rm , prvih m bitova jednako bitovima od x (u istom poretku). Ovdje
ćemo govoriti samo o sistematičnim blok kodovima.
Najčešći oblik kodiranja je kodiranje pomoću kontrolnog koda koji se
sastoji od jednog bita i on je ili 0 ili 1, a bira se tako da ukupni broj jedinica
u kodnoj riječi bude paran broj (eng. even parity check code). Dakle,
kodni blok je (m, m + 1) . Kod ove vrste kodiranja otkiva se pogreška koja
je nastala u jednom bitu, ali se neće znati koji je bit promijenjen.
POGLAVLJE 6. ALGEBARSKE STRUKTURE 269

Tražimo takvo kodiranje kod kojeg će se moći otkriti k ili manje od k
pogrešaka i njega zovemo detektorom k pogrešaka (eng. k-error detecting),
kodiranje u kojem ćemo moći ispraviti k ili manje od k pogrešaka. Takvo
kodiranje zovemo korektorom k pogrešaka (eng. k-error correction). Dakle,
kodiranje opisano u prethodnom odjeljku, koje se temelji na parnom broju
jedinica, je detektor jedne pogreške i korektor 0 pogrešaka.
Ranije smo uočili da mogućnost otkrivanja i ispravljanja pogrešaka ovisi
i o udaljenosti medu riječima. U tu svrhu definiramo minimalnu udaljenost
kodova kao minimum svih udaljenosti medu parovima kodova.
Slijede teoremi koji upotrebom pojma minimalne udaljenosti, daju uvje-
te da bi kod bio detektor k pogrešaka, odnosno korektor k pogrešaka.
Minimalna udaljenost koda definira se kao minimum udaljenosti izmedu
parova kodnih riječi.

Teorem 6.9 Kod je detektor k pogrešaka ako i samo ako mu je minimalna


udaljenost koda najmanje k + 1.
Dokaz. Znamo da se pogreška u kodnoj riječi može uočiti samo ako zbog
pogreške nismo dobili neku drugu kodnu riječ. Dakle, ako je promijenjeno k
bitova, ne smije postojati kodna riječ koja se od poslane razlikuje u k bitova.
Drugim riječima, to znači da minimalna udaljenost riječi treba biti veća od
k.

Teorem 6.10 Kod je korektor k pogrešaka ako i samo ako mu je minimalna


udaljenost najmanje 2k + 1.
Dokaz. Dokaz se provodi upotrebom svojstava metrike. Ovdje ćemo
dokazati samo jedan smjer teorema, a drugi ostavljamo za vježbu.
Pretpostavimo da je kod korektor k pogrešaka, te želimo dokazati da je
tada minimalna udaljenost svakog para kodnih riječi najmanje 2k + 1.
Dokaz provodimo metodom suprotnog. Pretpostavimo da postoji par
kodnih riječi x, y čija je udaljenost manja od 2k + 1. Pišemo d (x, y) ≤ 2k,
ali po prethodnom teoremu imamo d (x, y) ≥ k + 1, pa vrijedi

k + 1 ≤ d (x, y) ≤ 2k.

Pretpostavimo sada da je na riječi x napravljeno k pogrešaka i da je


primljena riječ x0 , pa vrijedi d (x, x0 ) = k. Ako je svaka pogrešaka nastala
baš u znamenkama u kojima se x i y razlikuju, vrijedi da je d (x0 , y) ≤ k, pa
je x0 jednako udaljen od x i y, te ne može biti dekodiran.

6.4.4 Grupa koda


Sada ćemo formirati grupu na skupu svih kodnih riječi. Da bi to mogli
učiniti definirajmo, prvo, operaciju zbrajanja kodnih riječi na skupu Rn svih
kodnih riječi od n bitova. Dogovorno ćemo kodne riječi ponekad zapisivati
270 6.4. PRIMJENA GRUPA U KODIRANJU

kao uredene n-torke kako bismo jasno razdvojili pojedine bitove. Kad nema
opasnosti da se pomiješaju bitovi, kodne riječi ćemo i dalje prikazivati kao
nizove (bez zareza izmedu bitova).

Definicija 6.7 Neka su x, y ∈ Rn i x = (x1 , x2 , ..., xn ) , y = (y1 , y2 , ..., yn ) .


Zbroj kodnih riječi x i y je kodna riječ x ⊕ y ∈ Rn , definirana sa

x ⊕ y = (x1 +2 y1 , x2 +2 y2 , ..., xn +2 y2 ) .

Dakle, kodne se riječi zbrajaju tako da se zbroje komponente kodnih


riječi pomoću zbrajanja modulo 2. Zbrajanje modulo 2 nam osigurava da
će bitovi biti 0 ili 1.

Primjer 6.6 Zbrojimo kodne riječi:

10011011 ⊕ 10001110 = 00010101.

Zadatak 6.17 Zbrojite sljedeće kodne riječi:

1. 11001 ⊗ 01011,

2. 010101 ⊕ 101010.

Zbog zbrajanja modulo 2, znamo da će zbroj biti jedinica ako se na ko-
respodentnim mjestima bitovi razlikuju, a dobit ćemo nulu ako su bitovi
koji se zbrajaju jednaki. Ovo svojstvo nam omogućava identifikaciju ra-
zličitih bitova u kodnim riječima. Zbrojimo li jedinice u kodnoj riječi, koja
predstavlja zbroj dviju kodnih riječi, dobit ćemo udaljenost tih kodnih riječi.

Definicija 6.8 Težina riječi (eng. weight) x je broj w (x) , koji kazuje
koliko jedinica ima u toj riječi, tj. za x = (x1 , x2 , ..., xn ) težina je
n
X
w (x) = xi .
i=1

Propozicija 6.5 Udaljenost riječi x, y ∈ Rn je dana s:

d (x, y) = x ⊕ y. (6.2)

Kod za koji je skup kodnih riječi grupa s obzirom na zbrajanje kodnih


riječi zovemo grupa kodova (eng. group code). Nadalje, kod koji je zatvoren
s obzirom na operaciju ⊕ zovemo linearni kod (vidi [1], str. 341). Ekviva-
lentno, kod je linearan ako i samo ako predstavlja podgrupu od Rn . Dakle,
termini grupa kodova i linearni kod su sinonimi jer se radi o konačnim gru-
pama. Prema Lagrangeovom teoremu, iz činjenice da kodne riječi čine grupu
C, koja je podgrupa od Rn , slijedi da je red C grupe C djelitelj od 2n .
POGLAVLJE 6. ALGEBARSKE STRUKTURE 271

Zadatak 6.18 Dokažite da je (Rn , ⊕) grupa.

Ako ste riješili prethodnu vježbu znate da je (Rn , ⊕) grupa. Medutim,


znamo da su u tom skupu riječi vrlo slične, pa nema smisla koristiti taj
skup kod identifikacije i ispravljanja pogrešaka. Potrebno je da minimalna
udaljenost kodnih riječi bude veća od 1. Prisjetimo se da bi u svrhu nalaženja
minimalne udaljenosti unutar skupa trebalo izračunati udaljenosti svih pa-
rova kodnih riječi, što je u slučaju skupa s većim brojem elemenata dug
proces.
U svrhu skraćivanja tog postupka, uvedimo računanje udaljenosti pomo-
ću zbrajanja kodnih riječi kao što je dano u formuli 6.2. Nadalje, ukoliko je
skup kodova grupa, tada se minimalna udaljenost može dobiti kao minimalna
težina svih kodnih riječi, koje se ne sastoje od samih nula. Kodnu riječ koja
se sastoji od samih nula označavamo s 0. To je sadržaj sljedećeg teorema.

Teorem 6.11 Minimalna udaljenost kodnih riječi u grupi kodova je jednaka


minimalnoj težini svih kodnih riječi, koje se ne sastoje od samih nula.

Dokaz. Neka je m minimalna udaljenost kodnih riječi u skupu S. To


znači da postoje dvije kodne riječi x i y takve da je

m = d (x, y) = w (x ⊕ y) .

Zbog svojstva zatvorenosti u grupi znamo da je x⊕y ∈ S. Ako je n minimalna


težina riječi, koje se ne sastoje od samih nula, u grupi, tada vrijedi:

w (x ⊕ y) ≥ n.

Dakle m ≥ n.
S druge strane, uočimo da je 0 neutralni element u grupi, te da za svaki
x ∈ S vrijedi x ⊕ x = 0. Imamo x ⊕ 0 = x za svaki x ∈ S, pa je

d (x, 0) = w (x ⊕ 0) = w (x) .

Uzmimo specijalno da je z riječ minimalne težine, tj. w (z) = n. Sada


imamo n = d (z, 0) ≥ m.
Dokazali samo da je i n ≥ m, tako da možemo zaključiti da je m = n.

Zadatak 6.19 Neka je C grupa kodova. Pokažite da je podskup od C u


kojem su sve kodne riječi parne težine, grupa kodova. Nadalje, dokažite da
ili sve kodne riječi u C imaju parne težine ili njih točno polovica ima parne
težine.
272 6.4. PRIMJENA GRUPA U KODIRANJU

6.4.5 Matrica izvodnica kodirajuće funkcije


Uvedimo sada reprezentaciju kodirajuće funkcije E : Rm → Rn pomoću
matrice G tipa (m, n) , čiji su elementi nule i jedinice. Takvu matricu zovemo
matrica izvodnica (eng. generator matrix) za kod. Da bi kodirali riječ od
m bitova, riječ predstavimo kao uredenu m-torku (jednorečanu matricu) i
množimo je modulo 2 matricom izvodnicom. Naglasimo da su sve operacije
zbrajanja i množenja, zbrajanje i množenje modulo 2.
Za sistematične kodove vrijedi da je prvih m bitova u kodnoj riječi jed-
nako riječi koju smo kodirali, pa prvih m redaka i m stupaca matrice G čini
jediničnu matricu m-tog reda.

Primjer 6.7 Neka je matrica izvodnica dana s:


 
1 0 0 0 1 0 1 0
 0 1 0 0 0 1 1 0 
G=  0
.
0 1 0 1 1 0 1 
0 0 0 1 0 0 0 1

Ona prikazuje kodirajuću funkciju E : R4 → R8 . Dakle, riječi 1000


pridružena je kodna riječ 10001010. Pitamo se, koja je kodna riječ E (1101)
pridružena riječi 1101?
£ Odgovor
¤ bismo dobili tako da pomnožimo jed-
norečanu matricu 1 1 0 1 matricom G kao što slijedi
 
1 0 0
0 1 0 1 0
£ ¤ 0 1 0
0 0 1 1 0 
E (1101) = 1 1 0 1 
 0

0 1
0 1 1 0 1 
0 0 0
1 0 0 0 1
£ ¤
E (1101) = 1 1 0 1 1 1 0 1 .

Uzmimo sada da kodiramo neku općenitu riječ x = x1 x2 x3 x4 i pri tome


dobijemo kodnu riječ u = u1 u2 ...u8 . Imamo

 
1 0 0 0 1 0 1 0
£ ¤ 0 1 0 0 0 1 1 0 
E (1101) = x1 x2 x3 x4 
 0

0 1 0 1 1 0 1 
0 0 0 1 0 0 0 1
£ ¤
E (1101) = x1 x2 x3 x4 x1 +2 x3 x2 +2 x3 x1 +2 x2 x3 +2 x4 .

Sada je

u1 = x1 u2 = x2 u3 = x3 u4 = x4
u5 = x1 +2 x3 u6 = x2 +2 x3 u7 = x1 +2 x2 u8 = x3 +2 x4 ,
POGLAVLJE 6. ALGEBARSKE STRUKTURE 273

što, uz uvažavanje da je 0 +2 0 = 0 i 1 +2 1 = 0, vodi do homogenog sustava


linearnih jednadžbi

u1 +2 u3 +u5 =0
u2 +2 u3 +u6 =0
u1 +2 u2 +2 u7 =0
u3 +2 u4 +2 u8 = 0.

Matrica tog homogenog sustava je


 
1 0 1 0 1 0 0 0
 0 1 1 0 0 1 0 0 
K=  1 1 0

0 0 0 1 0 
0 0 1 1 0 0 0 1

i nju zovemo kontrolnom matricom (eng. parity check matrix), budući da


za svaku pravilno prenesenu kodnu riječ u mora vrijediti

KuT = O, (6.3)

gdje je O nul matrica tipa (4, 1) .


Ispitajmo još u kakvoj su medusobnoj ovisnosti matrice G i K. Uočimo
da se G može prikazati pomoću
£ T ¤ particije G = [Im A] , te da je tada pripadna
kontrolna matrica K = A Im .
To je bit sljedećeg teorema.

Teorem 6.12 Neka je kodirajuća funkcija E : Rm → Rn prikazana pomoću


matrice izvodnice G tipa (m, n) i matrica izvodnica je takva da je G = [Im A] .
Tada vrijedi:

1. E (x) = xG, ∀x ∈ Rm ,
£ ¤
2. KuT = O, ∀u ∈ Rn , gdje je K = AT Im .

Dokaz. Dokažimo sada da formula 6.3 vrijedi općenito za bilo koju


kodnu riječ u.
Za u ∈ Rn uvijek postoji riječ x ∈ Rm takva da je u = xG. Sada je

KuT = K (xG)T = (sv. transp. produkta matrica (AB)T = B T AT )


¡ ¢
= K GT xT = (asocijativnost množenja matrica) A (BC) = (AB)
¡ ¢
= KGT xT = (uzimamo particije od K i G)
· ¸
£ T ¤ Im
= A Im xT = (množenje blokova u matricama)
A
£ ¤
= AT +2 A xT = O(n−m,m) xT = O(n−m,1) .
274 6.4. PRIMJENA GRUPA U KODIRANJU

Zadatak 6.20 Pokažite da, u uvjetima prethodnog dokaza, vrijedi AT +2


A = O(n−m,m) .

Zadatak 6.21 Neka je matrica izvodnica dana s


 
1 0 0 0 1 0 1
G= 0 1 0 0 0 1 1 .
0 0 1 1 1 0 0
Ona prikazuje kodirajuću funkciju E : R3 → R7 .
1. Nadite E (101) .
2. Nadite kontrolnu matricu K.
3. Provjerite da li je kodna riječ 1011101 dobro prenesena?
Teorem 6.13 Neka je E : Rm → Rn kodirajuća funkcija takva da je
E (x) = xG, gdje je G matrica izvodnica. Skup svih kodnih riječi E (Rm ) je
grupa uz operaciju zbrajanja modulo 2.
Dokaz. Budući je (Rm , ⊕) grupa, prema teoremu 6.8 dovoljno je poka-
zati da je E morfizam, tj. da za sve x, y ∈ Rm vrijedi
E (x ⊕ y) = E (x) ⊕ E (y) .
Računamo:
E (x ⊕ y) = (x ⊕ y) G = xG ⊕ yG
= E (x) ⊕ E (y) .

Na kraju ove točke pokazat ćemo u kakvoj su vezi minimalna težina


kodnih riječi u grupi kodova i kontrolne matrice.
Uzmimo da je K kontrolna matrica tipa (r, n) , gdje je r = n − m, te
da su stupci matrice K označeni s K1 , K2 , ..., Kn . Pretpostavimo da je u
k stupaca zbroj elemenata u pripadnim recima jednak nuli, te označimo
te stupce sa Ki1 , Ki2 , ..., Kik . Riječ u, koja ima m bitova i jedinice na mjes-
tima i1 , i2 , ..., ik , a na ostalim mjestima nule zadovoljava matričnu jednadžbu
KuT = O i ona je kodna riječ. Vrijedi i obrat, tj. ako kodna riječ ima je-
dinice na mjestima i1 , i2 , ..., ik , a na ostalim mjestima nule, tada stupci pod
brojevima i1 , i2 , ..., ik imaju zbroj jednak nuli.
Dakle, zaključujemo da je minimalna težina koda definiranog pomoću
matrice izvodnice G, jednaka minimalnom broju stupaca od K čija je suma
jednaka nuli. Budući da je kod definiran pomoću matrice izvodnice grupa
znači da je minimalna težina koda jednaka minimalnoj udaljenosti kodnih
riječi, pa je važna kod pronalaženja i ispravljanja pogrešaka kod kodova.
Postoji jedinstveni teorem koji govori o uvjetima koje mora zadovoljavati
matrica K da bi kod ispravljao barem jednu pogrešku.
POGLAVLJE 6. ALGEBARSKE STRUKTURE 275

Teorem 6.14 Ako ne postoji stupac od K koji se sastoji od samih nula i


nijedna dva stupca nisu jednaka, onda kod definiran s K ispravlja barem
jednu pogrešku.

Dokaz. Dokaz napravite sami za vježbu.

Primjer 6.8 Vratimo se primjeru 6.7 u kojem je kodirajuća funkcija E :


R4 → R8 dana pomoću matrice izvodnice G. Kontrolna matrica je
 
1 0 1 0 1 0 0 0
 0 1 1 0 0 1 0 0 
K=  1 1 0 0 0 0 1 0 .

0 0 1 1 0 0 0 1

Nadimo minimalnu težinu koda u ovom primjeru.


Budući da nema stupaca u kojima su same nule, kao ni jednakih stupaca,
minimalna težina je barem 3. Ispitajmo da li je moguće zbrojiti modulo 2
bilo koja tri stupca tako da im suma bude jednoretčana nulmatrica. To
je moguće postići, na primjer, zbrajanjem prvog, petog i sedmog stupca.
Zaključujemo da je minimalna težina u grupi kodova jednaka 3, pa je i mini-
malna udaljenost jednaka 3. Znači da je općenito moguće pronaći pogrešku
u dva bita i ispraviti je u jednom bitu.

Zadatak 6.22 Neka je matrica izvodnica dana s


 
1 0 0 1 1 0

G= 0 1 0 1 0 1 .
0 0 1 0 1 1

Ona prikazuje kodirajuću funkciju E : R3 → R6 .

1. Nadite E (011) .

2. Nadite kontrolnu matricu K.

3. Provjerite da li je kodna riječ 101011 dobro prenesena?

4. Nadite minimalnu težinu ove grupe kodova.

6.5 Prsteni i polja


Na danom skupu moguće je definirati više različitih operacija. Pri tome
te operacije mogu, ali i ne moraju imati strukturu grupe. Tako se na
skupu realnih brojeva može osim operacije zbrajanja, definirati i operacija
množenja realnih brojeva. Izbacimo li nulu iz skupa realnih brojeva i ope-
racija množenja ima svojstva grupe. S druge strane definiramo li množenje
276 6.5. PRSTENI I POLJA

na skupu cijelih brojeva, tada (Z\ {0} , ·) nije grupa, jer ne postoji in-
verzni element za množenje u skupu cijelih brojeva. Inverzni element cijelog
broja n bio bi n1 , a to općenito nije cijeli broj. Medutim (Z, ·) ima svoj-
stvo zatvorenosti, asocijativnosti, a postoji i jedinica (neutralni element za
množenje). Takvu strukturu općenito zovemo prsten.

6.5.1 Prsten
U ovoj točki ćemo navesti formalnu definiciju prstena, a u sljedećoj najpoz-
natije primjere prstena. Još jedan važniji primjer prstena (prsten polinoma)
obradit ćemo u posebnoj točki na kraju ovog poglavlja.

Definicija 6.9 Neka je S neprazan skup na kojem su definirane dvije bina-


rne operacije ◦ i ×, koje zadovoljavaju sljedeća svojstva:

1. (S, ◦) je komutativna grupa.


2. Operacija × ima svojstvo zatvorenosti, asocijativnosti, a postoji i je-
dinica (neutralni element za operaciju ×).
3. Vrijede svojstva distributivnosti, tj. za svaki a, b, c ∈ S vrijedi:
a × (b ◦ c) = (a × b) ◦ (a × c) ,
(a ◦ b) × c = (a × c) ◦ (b × c) .

Tada strukturu (S, ◦, ×) nazivamo prstenom. Ako je operacija × još i ko-


mutativna govorimo o komutativnom prstenu.
Često se umjesto a × b piše ab, ali treba imati na umu da to može
označavati bilo kakvu operaciju na bilo kojem skupu. Nadalje, neutralni
element za operaciju ◦ ćemo označavati sa 0, a neutralni element od × s 1.

6.5.2 Primjeri prstena


1. Struktura (Z, +, ·) je prsten cijelih brojeva uz operacije standardnog
zbrajanja i množenja.
2. Skup kvadratnih matrica drugog reda, čiji su elementi cijeli brojevi
uz operacije zbrajanja matrica i množenja matrica je prsten. Primi-
jetite da operacija množenja matrica nije komutativna, pa ovo nije
komutativni prsten.
3. Neka je Zm skup različitih klasa ekvivalencije s obzirom na relaciju
kongruencije modulo m na Z. Prisjetimo se da su elementi od Zm pod-
skupovi od Z. Na Zm su definirane operacije zbrajanja ⊕ i množenja
⊗ na sljedeći način:
[x]m ⊕ [y]m = [x + y]m , [x]m ⊗ [y]m = [xy]m .
POGLAVLJE 6. ALGEBARSKE STRUKTURE 277

Pokazuje se da je (Zm , ⊕, ⊗) prsten.

Zadatak 6.23 Provjerite da gornje operacije imaju tražena svojstva.


U prstenu P pojedini elementi mogu imati multiplikativni inverz tj. in-
verz s obzirom na operaciju ×. Ako element x ima inverz y tada vrijedi
xy = 1 i yx = 1. Uobičajena je oznaka x−1 za inverz od x. Znamo da ukoliko
inverz postoji on je jedinstven.

Zadatak 6.24 Nadite sve cijele brojeve koji imaju multiplikativni inverz s
obzirom na standardnu operaciju množenja.

Primjer 6.9 Nadite sve kvadratne matrice drugog reda, čiji su elementi
cijeli brojevi, koje
· imaju¸multiplikative inverze.
a b
Neka je A = kvadratna matrica i a, b, c, d ∈ Z. Inverz A−1 od
c d
A dobijemo kao rješenje matričnih jednadžbi AA−1 = A−1 A = I, gdje je I
jedinična matrica. Iz linearne algebre znamo da je
· ¸
−1 1 d −b
A =
ad − bc −c a
a b c
i A−1 postoji ako je ad−bc 6= 0. Nadalje, ovdje treba biti ad−bc , ad−bc , ad−bc ,
d
ad−bc ∈ Z. Sljedeća su rješenja moguća: a = d = ±1 i b = c = 0, b = c = ±1
i a = d = 0. Dakle, sljedeće matrice imaju multiplikativne inverze:
· ¸ · ¸ · ¸ · ¸
1 0 1 0 −1 0 −1 0
A1 = , A2 = , A3 = , A4 =
0 1 0 −1 0 1 0 −1
· ¸ · ¸ · ¸ · ¸
0 1 0 1 0 −1 0 −1
B1 = , B2 = , B3 = , B4 = .
1 0 −1 0 1 0 −1 0

Zadatak 6.25 Popunite tablicu množenja za matrice iz prethodnog prim-


jera.

· A1 A2 A3 A4 B1 B2 B3 B4
A1
A2
A3
A4
B1
B2
B3
B4
Tablica 6.2
278 6.5. PRSTENI I POLJA

Primijetite da matrice iz prethodnog zadatka čine grupu. Ovakav za-


ključak vrijedi i općenito.

Teorem 6.15 Skup svih multiplikativnih invertibilnih elemenata prstena P


čini grupu s obzirom na množenje u P.

Dokaz. Neka su x, y ∈ P , te x−1 i y −1 njihovi multiplikativni elementi.


Znamo da je množenje zatvoreno u prstenu, te da vrijedi asocijativnost i da
postoji jedinica 1. Treba provjeriti da je operacija
¡ −1zatvorena
¢ na
¡ skupu
¢ −1svih
invertibilnih elemenata prstena. Vrijedi (xy) y x −1 = x yy −1 x =
xx−1 = 1, pa je y −1 x−1 inverz od xy.

Zadatak 6.26 Pokažite da je skup svih kvadratnih matrica reda n uz ope-


racije zbrajanja i množenja matrica nekomutativni prsten.

6.5.3 Polje
Ako umjesto skupa cijelih brojeva promatramo skup realnih brojeva i na
njemu opet operacije standardnog zbrajanja i množenja uočavamo da svaki
realni broj, osim 0, ima multiplikativni inverz. Dakle, (R\{0}, ·) je grupa i
to komutativna. Sada strukturu (R, +, ·) zovemo polje realnih brojeva. Polje
realnih brojeva najpoznatiji je primjer polja. Definirajmo polje u općenitom
slučaju.
Dakle, polje je skup opremljen s dvije operacije, koje imaju odredena
algebarska svojstva, kao što je specificirano u sljedećoj definiciji.

Definicija 6.10 Neka je S neprazan skup na kojem su definirane dvije bi-


narne operacije ◦ i ×, koje zadovoljavaju sljedeća svojstva:

1. (S, ◦) je komutativna grupa (nazivamo je aditivna grupa).

2. (S \{0}, ×) je komutativna grupa (nazivamo je multiplikativna grupa),


pri čemu je 0 neutralni element aditivne grupe. Dakle, vrijede sljedeća
svojstva:

(a) komutativnost u (S, ×),


(b) asocijativnost u (S, ×),
(c) postoji multiplikativni neutralni element,
(d) postoji multiplikativni inverz za sve elemente iz S, osim za 0.

3. Vrijede svojstva distributivnosti:

(a) a × (b ◦ c) = (a × b) ◦ (a × c) ,
(b) (a ◦ b) × c = (a × c) ◦ (b × c) , ∀a, b, c ∈ S.
POGLAVLJE 6. ALGEBARSKE STRUKTURE 279

Tada je (S, ◦, ×) polje.

Prisjetimo se da je skup cijelih brojeva Z bio prsten uz operacije stan-


dardnog zbrajanja i množenja. Budući da u Z brojevi nemaju multiplika-
tivne inverzne (u stvari, nijedan broj osim broja 1 nema multiplikativni
inverz u Z), (Z, +, ·) nije polje.
Dogovorno se, zbog jednostavnijeg zapisa, često puta prva operacija (iz
aditivne grupe) označava sa +, a druga (iz multiplikativne grupe) sa ·.

Zadatak 6.27 Dokažite da su sljedeća dva svojstva posljedica aksioma 2.a.,


o postojanju multiplikativnog inverza:

1. Ako je a 6= 0 i a · b = a · c, onda je b = c. (skraćivanje)

2. Ako je a · b = 0, onda je a = 0 ili b = 0. (nema djeljitelja nule)

Pokažite da prethodna svojstva vrijede u (Z, +, ·) .


Pokažite da su prethodna svojstva medusobno ekvivalentna.

Ukoliko za neku algebarsku strukturu (S, ◦, ×) vrijede svi aksiomi iz


definicije polja, osim aksioma 2.a., ali umjesto njega vrijede aksiomi iz
prethodnog zadatka, tada tu strukturu zovemo integralnom domenom. Ime
dolazi od činjenice da je skup cijelih (integers!) brojeva (Z, +, ·) najpoznatiji
primjer integralne domene.

Zadatak 6.28 Da li je skup svih kvadratnih regularnih matrica reda n uz


operacije zbrajanja i množenja matrica polje?

6.5.4 Primjeri polja


U ovoj ćemo točki nabrojiti neke primjere polja, a naglasak ćemo staviti
na polja koja se upotrebljavaju u informatici. Od čitatelja se očekuje da
ispita da nabrojeni primjeri zadovoljavaju tražene aksiome. Općenito, u
informatici su od posebnog interesa tzv. konačna polja, tj. polja koja sadrže
samo konačan broj elementa.

1. Trivijalni primjer konačnog polja je skup {0, 1}, uz zbrajanje i mno-


ženje.

2. U diskretnoj matematici je posebno važno polje (Zp , ⊕, ⊗) , gdje je


p prim broj, Zp = {0, 1, 2, ..., p − 1}, ⊕, ⊗ su operacije zbrajanja i
množenja modulo p . Da ne bi došlo do zabune o tome koliki je p
koriste se sljedeće oznake za zbrajanje i množenje: +p , ·p .
U svjetlu ovog primjera je prvi primjer specijalni slučaj modularne
aritmetike za p = 2, odnosno radi se o Z2 .
280 6.5. PRSTENI I POLJA

Ukoliko p nije prim broj, Zp nije polje. U slučaju kad p nije prim broj
nije ispunjen aksiom 2.a. iz definicije polja.
Detalji se mogu pročitati u poglavlju o kongruencijama.
U slučaju kada m nije prost broj, (Zm , ⊕, ⊗) komutativni prsten, ali
ne i integralna domena.

3. Neka je S2 (Z3 ) skup


· kososimetričnih
¸ kvadratnih matrica drugog reda.
a b
Matrice su oblika , gdje su a, b ∈ Z. Uz standardno zbra-
−b a
janje i množenje matrica S2 (Z3 ) je polje.

4. Polinom n-tog stupnja je funkcija oblika:

f (x) = an xn + an−1 xn−1 + ... + a2 x2 + a1 x + a0 , (6.4)

gdje su a0 , a1 , a2 , ..., an−1 , an ∈ R, n ∈ N, an 6= 0. Označimo skup


svih polinoma s koeficijentima u R sa R [x] . Na skupu svih polinoma
zadane su operacije zbrajanja i množenja polinoma. Uz te operacije
skup svih polinoma je prsten s komutativnim množenjem.

5. Nekomutativno polje je tijelo kvaterniona.


Kvaternione je u matematiku uveo W. R. Hamilton 1844. godine
(članak [5]). Po analogiji s kompleksnim brojevima, koji se prikazuju
kao suma realnog i imaginarnog dijela, kvaternioni se mogu zapisati
kao linearna kombinacija

a = a1 + a2 i + a3 j + c4 k,

gdje su a1 , a2 , a3 , a4 realni brojevi, te

i2 = j 2 = k 2 = ijk = −1.

Više o kvaternionima možete pročitati u [11].


Kvaternioni se mogu zapisati u obliku uredenih četvorki, pa se njihova
suma, odnosno množenje skalarom, definira kao standardna suma,
odnosno množenje skalarom n-torki.

Zadatak 6.29 Neka je m cijeli broj, veći od 1. Pokažite da su sljedeće


tvrdnje ekvivalentne:

1. m je prim broj.

2. Zm je integralna domena.

3. Zm je polje.
POGLAVLJE 6. ALGEBARSKE STRUKTURE 281

6.6 Vektorski prostor


Osnovni koncept linearne algebre je algebarska struktura vektorskog pros-
tora. Promatra se skup vektora, s operacijama zbrajanja vektora i množenja
vektora skalarom. Pri tome pod pojmom vektora ne podrazumijevamo samo
geometrijske vektore, nego sve one matematičke objekte koji zadovoljavaju
aksiome vektorskog prostora.
Detaljni opis vektorskih, odnosno linearnih prostora možete naći u [7].
Ovdje donosimo samo osnovne pojmove i primjere radi cjelovitosti u opisu
algebarskih struktura.
Najpoznatiji primjer prijelaza od polja na vektorski prostor nad poljem
je prijelaz od realnog pravca na trodimenzionalni vektorski prostor.
Ako je F polje i n prirodni broj, tada možemo promatrati algebarsku
strukturu F n čiji su elementi n-torke elemenata iz F , tj.

F n = {(a1 , a2 , ..., an ) : ai ∈ F } ,

i na njima dvije operacije: zbrajanje n-torki i množenje n-torki skalarom


(elementom polja F ).
Zbrajanje n-torki definiramo s:

(a1 , a2 , ..., an ) ⊕ (b1 , b2 , ..., bn ) = (a1 + b1 , a2 + b2 , ..., an + bn ) ,

a množenje skalarom α s:

α ¯ (a1 , a2 , ..., an ) = (α · a1 , α · a2 , ..., α · an ) .

Sada je F n uz gornje operacije vektorski ili linearni prostor.


Napišimo sada općenitu definiciju vektorskog prostora.

Definicija 6.11 Vektorski prostor (linearni prostor) V nad poljem F je


svaka četvorka (V, F, ⊕, ¯) takva da vrijede sljedeći uvjeti:

1. Skup V = {x, y, z, ...} , čije elemente zovemo vektori, a V je nosilac


vektorskog prostora V,

2. Skup F = {α, β, γ, ...}, čije elemente zovemo skalari, a F je polje s


obzirom na operacije + i ·,

3. Operacija ⊕ : V × V → V zbrajanje vektora,

4. Operacija ¯ : F × V → V množenje vektora skalarom.

Pri tome trebaju biti zadovoljeni sljedeći aksiomi vektorskog prostora:


V1: Skup V je komutativna grupa s obzirom na zbrajanje vektora.
V2: Za sve skalare α,β i vektore vrijedi x, y:
282 6.6. VEKTORSKI PROSTOR

1. α ¯ (x ⊕ y) = (α ¯ x) ⊕ (α ¯ y),

2. (α + β) ¯ x = (α ¯ x) + (β ¯ x),

3. α ¯ (β ⊕ x) = (αβ) ¯ x,

4. 1 ¯ x = x.

Konkretan primjer vektorskog prostora je realizacija ili model vektorskog


prostora. Primjer je vektorski prostor rješenja homogenog sustava.

Primjer 6.10 Promotrimo homogeni sustav:

2x − 3y + z − t = 0
−x + y − 5z + 2t = 0
3x − 5y − 3z = 0
2x − 10t + 28z = 0

Budući da je determinanta sustava jednaka nuli, prema poznatom Rou-


cheovom teoremu iz linearne algebre znamo da ovaj sustav ima i netrivijalna
rješenja (rješenja različita od (0, 0, 0, 0)). Dakle, sustav ima beskonačno
mnogo rješenja. Rješavanjem sustava, primjerice Gaussovim postupkom
eliminacije, dobivamo da su rješenja oblika (5a + b, 3a, b, a + 3b) , gdje su
a, b ∈ R. Skup svih rješenja možemo promatrati kao uredene četvorke ele-
menata danog oblika. Takve se uredene četvorke zbrajaju na standardni
način, po komponentama, te množe skalarom tako da se svaka komponenta
pomnoži skalarom. Pokazuje se da rješenja čine vektorski prostor. Budući da
općenito n-torke uz nabrojene operacije čine vektorski prostor, treba samo
provjeriti zatvorenost operacije zbrajanja, odnosno množenja skalarom.
Neka su (5a1 + b1 , 3a1 , b1 , a1 + 3b1 ) i (5a2 + b2 , 3a2 , b2 , a2 + 3b2 ) dvije če-
tvorke rješenja. Zbrajanjem dobivamo četvorku

¡ ¢
5 (a1 + a2 ) + b1 + b2 , 3 (a1 + a2 ) , b1 + b2 , a1 + a2 + 3 (b1 + b2 ) ,

pa stavimo li a = a1 + a2 , b = b1 + b2 dobivamo oblik rješenja zadanog


sustava. Za vježbu provjerite da množenjem četvorke rješenja skalarom,
opet dobijemo rješenje zadanog homogenog sustava!

Zadatak 6.30 Dokažite da je operacija zbrajanja n-torki rješenja homoge-


nog sustava linearnih jednadžbi i općenito zatvorena operacija nad skupom
svih rješenja.
Najčešći primjeri polja nad kojima se definira vektorski prostor su polje
realnih brojeva R i polje kompleksnih brojeva C.
Radi jednostavnosti obično pišemo x + y umjesto x ⊕ y, te αx umjesto
α ¯ x.
POGLAVLJE 6. ALGEBARSKE STRUKTURE 283

6.7 Primjeri vektorskog prostora


Slijedi popis poznatijih primjera vektorskih prostora.

1. Svako polje F je vektorski prostor. Specijalno, polje realnih brojeva


je vektorski prostor.

2. Skup svih usmjernih dužina ravnine i prostora uz operacije zbrajanja


vektora i množenja vektora skalarom je vektorski prostor. Ovaj vek-
torski prostor ”pravih vektora” ujedno je bio motivacija za uvodenje
apstraktnog pojma vektorskog prostora.

3. Skup svih polinoma s realnim ili kompleksnim koeficijentima je vek-


torski prostor. Više podataka o tom primjeru naći ćete u sljedećoj
točki ove knjige.

4. Skup svih n-torki elemenata polja F je vektorski prostor nad F uz


sljedeće operacije.
Zbrajanje n-torki:

(x1 , x2 , ...xn ) ⊕ (y1 , y2 , ...yn ) = (x1 + y1 , x2 + y2 , ...xn + yn ) .

Množenje n-torki skalarom:

α ¯ (x1 , x2 , ...xn ) = (αx1 , αx2 , ...αxn ) .

Provjerite da vrijede aksiomi vektorskog prostora.

5. Specijalno, Rn skup svih n-torki realnih brojeva uz standardne opera-


cije zbrajanja n-torki, odnosno množenja skalarom, je vektorski pros-
tor, kojeg zovemo realni n-dimenzionalni koordinatni prostor. Dokaz
potražite u [7].

6. Skup Mnm matrica tipa (n, m) je vektorski prostor uz operacije zbra-


janja matrica i množenja matrica skalarom.

7. Skup svih polinoma u jednoj varijabli uz operacije zbrajanja polinoma


i množenja polinoma skalarom.

8. Neka je X proizvoljan skup i V proizvoljan vektorski prostor nad F .


Prostor svih funkcija iz X u V je vektorski prostor nad F. Pri tome
je zbrajanje funkcija dano koordinatno tj. (f + g)(x) = f (x) + g(x),
za sve f : X → V, g : X → V, kao i množenje skalarom, tj. (αf )(x) =
αf (x), za sve f : X → V, α ∈ F. Operacije na desnoj strani jednakosti
su operacije u V. Neutralni element je konstantna funkcija, koja sve
elemente šalje u nulvektor iz V .
284 6.8. ALGEBARSKE STRUKTURE POLINOMA

6.8 Algebarske strukture polinoma


Polinomi predstavljaju vrlo važnu klasu funkcija. Možemo ih promatrati kao
funkcije realne, ali i kompleksne varijable. Klasični primjeri algoritama su
Hornerov i Euklidov algoritam, a oni se odnose na polinome. Spomenuli smo
ranije da se i u tzv. fundamentalnom teoremu algebre govori o egzistenciji
kompleksnih nultočaka polinoma. Danas se često spominje činjenica da je
naziv tog teorema pretenciozan, ali neosporna je njegova važnost u razvoju
algebre.
Nadalje, polinomi su dobro opremljeni algebarskim operacijama, tako da
ih možemo promatrati u kontekstu različitih algebarskih strukura. Ovdje
navodimo prsten polinoma i vektorski prostor polinoma.

6.8.1 Prsten polinoma


Polinom n-tog stupnja je funkcija oblika

f (x) = a0 xn + a1 xn−1 + ... + an−1 x + a0 , a0 6= 0. (6.5)

Ako su svi koeficijenti ai , i = 1, 2, ...n realni brojevi i x uzimamo iz skupa


realnih brojeva, govorimo o polinomima realne varijable s realnim koefici-
jentima ili kratko polinomima nad R. Skup svih polinoma jedne varijable
f : R → R nad poljem realnih brojeva označavamo sa R [x] . Medutim, ako su
koeficijenti i varijable iz skupa kompleksnih brojeva, govorimo o polinomima
kompleksne varijable s kompleksnim koeficijentima, odnosno o polinomima
nad C. Skup svih polinoma f : C → C nad poljem kompleksnih brojeva
označavamo s C [x].
U oba skupa moguće je definirati zbrajanje i množenje polinoma na način
kako definiramo zbrajanje i množenje funkcija. Dakle, ako su f i g polinomi
definiramo zbrajanje formulom

(f + g) (x) = f (x) + g (x) .

Slijedi da se suma polinoma dobije zbrajanjem koeficijenata uz mono-


me jednakog stupnja. To drugim riječima znači da stupanj sume ne prelazi
stupnjeve polinoma koje zbrajamo.
Polinome množimo po formuli

(f g) (x) = f (x) g (x) ,

pa za stupanj umnoška vrijedi st (f g) = st (f ) + st (g) .

Zadatak 6.31 Provjerite da vrijede sljedeće tvrdnje:

1. (R [x] , +) i (C [x] , +) su komutativne grupe.


POGLAVLJE 6. ALGEBARSKE STRUKTURE 285

2. Množenje polinoma je zatvorena operacija nad poljem R (odnosno C),


vrijedi asocijativnost i komutativnost. Postoji jedinica za množenje
polinoma. Multiplikativni inverz postoji samo za polinome stupnja
nula.

3. Vrijede obje distributivnosti množenja prema zbrajanju i zbrajanja


prema množenju.

Teorem 6.16 Skup polinoma R [x] , odnosno C [x] je komutativni prsten


polinoma s jedinicom.

Primijetite da se polinom 6.5 jedne varijable, može zapisati u obliku


uredene n-torke
(a0 , a1 , ..., an−1 , an ) , a0 6= 0,
a i operacije na polinomima mogu se prevesti na jezik n-torki.
Polinome možemo definirati i nad nekim drugim poljem F , te takoder
doći do strukture komutativnog prstena. Evo jednog primjera:

Primjer 6.11 Izračunajmo zbroj i umnožak polinoma

x2 + 4x + 5 i 4x2 + x + 3,

definiranih nad poljem Z7 .


Računamo:
¡ 2 ¢ ¡ 2 ¢
x + 4x + 5 + 4x + x + 2
¡ 2 ¢¡ 2 ¢ = 45x + 35x + 12
3
x + 4x + 5 4x + x + 3 = 4x + 3x + 6x + 3x + 1.

Na kraju, spomenimo još jednu upotrebu polinoma. Za kod C kažemo


da je ciklički ako je on linearan i ako vrijedi:

a0 a1 . . . an−1 ∈ C ⇒ an−1 a0 a1 . . . an−2 ∈ C.


Osnova algebarske manipulacije cikličkih kodova je korespondencija iz-
medu ključnih riječi a0 a1 . . . an−1 iz Rn i polinoma a(x) = a0 + a1 x + . . . +
an−1 xn−1 i Z[x].
Više o cikličkim kodovima i njihovu značenju, kao i povezanosti s poli-
nomima, možete pročitati u [1].

6.8.2 Vektorski prostor polinoma


Promatramo skup svih polinoma u jednoj varijabli, iz polja C, odnosno R.
U prethodnoj točki smo definirali operaciju zbrajanja polinoma i utvrdili
da polinomi zajedno s operacijom zbrajanja polinoma tvore komutativnu
grupu (aditivna grupa polinoma). Nadalje, definiramo operaciju množenja
polinoma skalarom, tj. elementima iz polja C, odnosno R. Pri tome,
286 6.9. ZADACI

rezultirajući polinom dobijemo tako da svaki koefcijent zadanog polinoma


pomnožimo danim skalarom.

Skup Pn svih polinoma stupnja manjeg ili jednakog n, s realnim ili kom-
pleksnim koeficijentima, je vektorski prostor, koji zovemo vektorski prostor
polinoma.
Više o toj temi možete naći u [7].
Primijetimo da skup svih polinoma stupnja n, nema strukturu vek-
torskog prostora, jer suma dva polinoma n-tog stupnja može biti manjeg
stupnja od n. Na primjer,
¡ 3 ¢ ¡ ¢
2x − x + 1 + −2x3 + 3x2 + 2x − 2 = 3x2 + x − 1.

Polinome možemo definirati i nad nekim drugim poljem F , a ne samo


nad poljem realnih, odnosno kompleksnih brojeva i ponoviti konstrukciju
vektorskog prostora polinoma nad poljem F .
Dakle, o polinomima možemo govoriti na mnogo različitih načina. Poli-
nomi se obično uvode kao funkcije (jedne ili više varijabli), da bi se u napred-
nijim stupnjevima o njima govorilo kao o vektorskim prostorima i prstenima.
Vidjeli smo takoder da ih se može poistovjetiti s uredenim n-torkama.

6.9 Zadaci
1. Na partitivom skupu P (A) definirana je operacija unije ∪.

(a) Da li je ∪ binarna operacija na P (A)?


(b) Nadite neutralni element na P (A) .
(c) Koji elementi imaju inverz?

2. Neka je na partitivom skupu P (A) definirana operacija simetrične


razlike
X 4 Y = (X \ Y ) ∪ (Y \ X) .

(a) Da li je 4 binarna operacija na P (A)?


(b) Nadite neutralni element na P (A) .
(c) Koji elementi imaju inverz?
(d) Da li je 4 asocijativna operacija?
(e) Da li je 4 komutativna operacija?

3. Zadan je skup S koji ima 4 elementa.

(a) Koliko različitih binarnih operacija možemo definirati na tom


skupu?
POGLAVLJE 6. ALGEBARSKE STRUKTURE 287

(b) Napišite Cayleyevu tablicu za jednu takvu operaciju ako znamo


da je operacija komutativna i da ima neutralni element.

4. Popunite Cayleyeve tablice za zbrajanje i množenje u Z6 .

5. Napišite Cayleyevu tablicu množenja u skupu kompleksnih brojeva


{1, −1, i, −i} . Da li je ta struktura grupa? Ako jest, da li je ciklička?

6. Neka su a, b elementi konačne grupe G. Pokažite da elementi a i ba−1 b


imaju isti red.

7. Promatrajte skup A2 antisimetričnih matrica drugog reda nad poljem


F. Pokažite da vrijedi:

(a) A2 je prsten s obzirom na standardne operacije s matricama.


(b) Množenje u A2 je komutativno.
(c) Ako je F = Z3 , tada je A2 polje nad F .
(d) Da li je A2 polje nad Z5 ?

8. Analizirajte moguće Cayleyeve tablice i dokažite da vrijede sljedeće


tvrdnje uz pretpostavku da su sve izomorfne grupe medusobno jed-
nake.

(a) Postoji samo jedna grupa reda 2.


(b) Postoji samo jedna grupa reda 3.
(c) Postoje samo dvije grupe reda 4.

9. Neka je M skup svih matrica oblika


· ¸
a b
, gdje je a, b, c ∈ Z7 i a 6= 0.
0 1

(a) Neka je matrica izvodnica kodirajuće funkcije E : R3 → R7 dana


s  
1 0 0 1 0 1 0
G= 0 1 0 0 1 1 0 .
0 0 1 1 1 0 1
i. Izračunajte E (110) .
ii. Nadite kontrolnu matricu, koja pripada matrici G.
(b) Pokažite da je M grupa uz operaciju zbrajanja matrica.
(c) Nadite redove elemenata
· ¸ · ¸
1 1 3 0
i .
0 1 0 1
288 6.10. PROJEKTI

10. Nadite minimalnu udaljenost u skupu kodova

{10000, 01010, 00001} .

Koliko je pogrešaka moguće detektirati, a koliko ispraviti u ovom


skupu?

11. Neka je matrica izvodnica Hammingovog koda dana sa


 
1 0 0 0 0 1 1
 0 1 0 0 1 0 1 
G=  0 0 1 0 1
.
1 0 
0 0 0 1 1 1 1

Ona prikazuje kodirajuću funkciju E : R4 → R7 . Dokažite da vrijedi


sljedeća tvrdnja: Ako je x 6= y tada se xG i yG razlikuju u najmanje
3 koordinate.

12. Neka je kodirajuća funkcija E : R3 → R9 dana s

E (x1 x2 x3 ) = x1 x2 x3 x1 x2 x3 x1 x2 x3 .

Ona predstavlja tzv. blok kod ponavljajućih trojki.

(a) Nadite kontrolnu matricu K.


(b) Nadite minimalnu težinu ove grupe kodova.
(c) Koliko grešaka ovaj kod može otkriti, odnosno ispraviti?

13. Izračunajte zbroj i umnožak polinoma nad Z5 [x] .

(a) x2 + 3x + 4 i 2x2 + 2x + 3
(b) x4 + 2x3 + x2 + 2x + 1 i 2x4 + 3x3 + 4x2 + 3x + 2

14. Pokažite da u Z7 [x] vrijedi

(x + 1)7 = x7 + 1.

6.10 Projekti
1. Promatramo jednakostranični trokut i skup svih transformacija koje
preslikavaju taj trokut u njega samog do na poredak vrhova. Taj skup
zovemo skup simetrija jednakostraničnog trokuta. U simetrije ulaze i
rotacije, dakle sve izometrije trokuta. Pronadite sve takve simetrije
i pokažite da one uz operaciju kompozicije preslikavanja čine grupu.
Ovu strukturu zovemo diedralna 4-grupa. Napišite Cayleyevu tablicu
POGLAVLJE 6. ALGEBARSKE STRUKTURE 289

za tu grupu. Da li je ta grupa komutativna? Sada promatramo pra-


vokutnik (koji nije kvadrat) i njegove simetrije. Pronadite 4 simetrije
pravokutnika i napišite Cayleyevu tablicu za simetrije pravokutnika uz
operaciju kompozicije. Pokažite da je ova struktura takoder grupa.
Ovu grupu zovemo Kleinova 4-grupa.

2. Opišite nekoliko primjera kodova iz teorije kodiranja i usporedite ih.


Uzmite u obzir kod ponavljanja (eng. repetition cod), paritetni kod
(eng. parity code), Hammingov [7,4] binarni kod, kao i poboljšani
Hammingov kod, te opći Reed-Solomonov kod.

3. Opišite kvaternione, njihova svojstva, operacije na njima, te reprezen-


taciju preko kvadratnih matrica drugog reda. Koje algebarske struk-
ture tvore kvaternioni. Koji brojevi predstavljaju proširenje kvaterni-
ona? Opišite primjene kvaterniona (npr. u geometriji).

4. Definirajte vektorski prostor nad poljem {0, 1} pridružen grafu. Pro-


matrajte u grafu G = (V, E) skup WE (G) kao skup svih podskupova
od E i na njemu definirajte operaciju zbrajanja (eng. ring sum) i
množenja skalarom. (Uputa: Upotrijebite referencu [4])

5. Geometrija u kojoj dva pravca imaju uvijek jednu točku presjeka


zovemo projektivna geometrija. Proučite konačne verzije projektivne
geometrije, njihove odnose i primjenu u teoriji dizajna. Osnovne defini-
cije, teoreme i primjene napišite u obliku eseja od 10 stranica.

6. Opišite cikličke kodove, njihovu klasifikaciju i svojstva. Objasnite nji-


hovu vezu s polinomima. (Uputa: Upotrijebite referencu [1])
290 6.10. PROJEKTI
Bibliografija

[1] Biggs, N. L.: Discrete Mathematics, Oxford University Press Inc., New
York, 2002.

[2] Divjak, B.; Hunjak, T.: Matematika za informatičare,TIVA-FOI,


Varaždin, 2004

[3] Garnier, R.; Taylor, J.: Discrete Mathematics for New Technology, IOP
Publishing Ltd, Bristol, 1999

[4] Gross, J.; Yellen, J.: Graph Theory and its Applications, CRC Press,
London, 1999.

[5] Hamilton, W. R.: On Quaternions, Proceedings of the Royal Irish Acad-


emy, Nov. 11, 1844,vol. 3 (1847), 1-16,
http://www.maths.tcd.ie/pub/HistMath/People/Hamilton/Quatern2
/Quatern2.html (22.2.2005)

[6] Horvatić, K.: Linearna algebra, PMF-MO, Zagreb, 1990

[7] Lončar, I.: Matematičke metode, odabrana poglavlja - I. dio, FOI,


Varaždin 1997.

[8] Toth, G.: Glimpses of Algebra and Geometry, Springer-Verlag, New


York, 1998

[9] Welsh, D.: Codes and cryptography, Oxford University Press, 1988

[10] Wikipedia, http://en.wikipedia.org/wiki/Polynomial (2.2.2005)

[11] Mathworld, http://mathworld.wolfram.com/Quaternion.html


(22.2.2005)

[12] Cut the knot, http://www.cut-the-knot.org/algebra.shtml (2.2.2005)

[13] Mariner Space Probes,


http://www.hq.nasa.gov/office/pao/History/mariner.html (21.2.2005)

291
292 BIBLIOGRAFIJA
Poglavlje 7

Matematička teorija
računalstva

Zadivljujuće je kako nam je potrebno


malo da bismo imali sve.
Christos Papadimitriou (o Turingovu
stroju)

Već smo u poglavlju 4.1 govorili o algoritmu, kao o intuitivnom pojmu.


Takoder smo govorili o tome kako u matematici postoji težnja da se pojam
algoritma formalizira. To je dovelo do interesantnih matematičkih struk-
tura koje ćemo opisati u ovom poglavlju. Iako nije dokazano da ijedna for-
malizacija dobro opisuje pojam algoritma, posto-
ji niz zanimljivih formalizacija, za koje se, prema
Church-Turingovoj tezi, vjeruje da dobro forma-
liziraju algoritam. Bez obzira na to, neke se od
ovih formalizacija koriste i za mnoge druge svrhe.
Tako se, npr, automati mogu gledati kao model
sustava u teoriji sustava, mogu opisivati strukturu
ekspertnog sustava i opisivati prijelaze iz stanja u
stanje i sl. Ovo će se poglavlje temeljiti upravo na
automatima, uključujući i Turingove strojeve.
Što se tiče značaja ovog poglavlja za ovu knjigu, Slika 7.1: Alan Mathison
ono je višestruko. Kao prvo, ovo poglavlje, gledano Turing
kao dio računalske znanosti, čini vrlo važan teorijski kontekst opisa jezika,
algoritama, sustava itd. S druge strane, ovo poglavlje pokazuje vrlo važno
područje računalske znanosti gdje se koristi gotovo cijelo gradivo opisano
u ovoj knjizi. Jezici, automati, gramatike - sve su to vrlo interesantne
matematičke strukture. Pri definiranju jezika i automata vrlo veliku ulogu
igraju relacije, funkcije i skupovi. Za prikaze automata standardno se koriste
usmjereni grafovi. Na kraju, sama se složenost, a posebno klase složenosti

293
294 7.1. JEZICI

algoritama definiraju na razini automata, a posebno Turingovih strojeva.

7.1 Jezici
Bit cijelog ovog poglavlja je u izradi automata, strojeva, gramatika vezanih
uz pojedine jezike. Stoga ćemo na početku ovog poglavlja obraditi pojam
jezika, te gramatika pomoću kojih se opisuju jezici.

Definicija 7.1 Abeceda ili alfabet Σ je konačan skup znakova.

Definicija 7.2 Riječ iz alfabeta Σ je konačan niz od 0 ili više znakova iz


alfabeta Σ.
Riječ s 0 znakova se označava sa ε i zove se prazna riječ.
Broj znakova u riječi w naziva se duljina riječi i označava se |w|.

Neka je Σ abeceda. Onda se s Σn , n ≥ 0 označava skup svih riječi


abecede Σ koje imaju duljinu n. Tada se skup svih riječi nad abecedom Σ
označava sa
X
Σ∗ = Σn .
n≥0

Slično se može definirati i skup svih nepraznih riječi nad abecedom Σ


kao
X
Σ+ = Σn .
n≥1

Ponekad je riječi dobro gledati kao diskretne funkcije. Svaka se riječ


w ∈ Σ∗ može definirati kao w : {1, . . . , |w|} → Σ, pri čemu w(i) predstavlja
i-to slovo riječi w.
Kažemo da se znak σ pojavljuje u riječi w ako postoji j ∈ {1, . . . , |w|}
takav da je w(j) = σ.

Definicija 7.3 Neka je Σ abeceda i neka su v, w ∈ Σ∗ riječi. Tada defini-


ramo konkatenaciju riječi v i w kao riječ z = vw za koju vrijedi da je

• z(i) = v(i) za i ∈ {1, . . . , |v|},

• z(j + |v|) = w(j) za j = {1, . . . , |w|}.

Jasno je da za svaku riječ w ∈ Σ∗ vrijedi wε = w. Isto je tako jasno da


je konkatenacija asocijativna operacija, tj. da vrijedi u(vw) = (uv)w = uvw
za proizvoljne riječi u, v, w ∈ Σ∗ .
POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 295

Definicija 7.4 Neka je Σ abeceda i v, w ∈ Σ∗ riječi. Kažemo da je riječ v


podriječ riječi w ako postoje riječi u, x ∈ Σ∗ takve da je w = uvx.
Ako je u = ε, tj. ako je w = vx, onda se riječ x zove prefiks riječi w.
Ako je x = ε, tj. ako je w = uv, onda se riječ v naziva sufiks riječi w.

Neka je dana riječ w ∈ Σ∗ nad abecedom Σ. Tada se definira

• w0 = ε,

• wk = wk−1 w.

Sada možemo prijeći na prvu važnu definiciju u ovom poglavlju – defini-


ciju jezika:

Definicija 7.5 (Jezik) Jezik L ⊆ Σ∗ nad abecedom Σ je svaki skup riječi


iz Σ.

Primjer 7.1 Neka je dana abeceda Σ = {0, 1}. Možemo definirati jezik
koji se sastoji od binarnih brojeva, koji nemaju vodećih nula kao:

L = {w : w = 1v, v ∈ Σ∗ }.

Primjer 7.2 Definirajmo sada jezik nad abecedom Σ = {a, b} koji se sastoji
od riječi koje počinju s konačnim brojem a-ova, iza čega slijedi jednak broj
b-ova:

L = {w : w = an bn }.

Jednostavni se jezici mogu zadavati kao jezici u prethodna dva primjera,


odnosno kao skupovi. No, jezici često imaju složeniju strukturu, koju bi bilo
prilično nezgrapno opisivati na gornji način.

7.1.1 Regularni izrazi


Jedan od važnijih načina prikaza jezika jesu regularni izrazi. Regularni
izrazi, osim u teoriji računalstva, igraju važnu ulogu i u stvarnim aplikaci-
jama na računalu. Regularni se izrazi koriste kod pretraživanja sa specijal-
nim znakovima (wildcard), kako u tekstovima, tako i u stablima direktorija
operacijskog sustava. UNIX operacijski sustavi u potpunosti podržavaju
regularne izraze kao način konciznog prikazivanja obrazaca za pretraživanje
nizova znakova.

Definicija 7.6 Neka je Σ abeceda, onda su sljedeći izrazi regularni izrazi


nad Σ:

• ∅ je regularni izraz.
296 7.1. JEZICI

• Ako je σ ∈ Σ, onda je σ regularni izraz.

• Ako su v i w regularni izrazi, onda je to i vw.

• Ako je w regularni izraz, onda je i (w)* regularan izraz.

• Ako su v i w regularni izrazi, onda je i (v)|(w) regularan izraz.


Time je dana sintaksa regularnih izraza. Prema tome sljedeći izrazi su
regularni izrazi nad abecedom Σ = {a, b, c}:

• (a) ∗ ((b)|(c))∗,

• ((a)|(b)|(c))∗,

• a(b) ∗ (a) ∗ b.

Neke od zagrada u regularnim izrazima se mogu izbaciti. Uvijek se


mogu izbaciti zagrade koje okružuju izraz, koji se sastoji od samo jednog
znaka. Tako bismo regularne izraze iz prethodnog primjera mogli prikazati
na sljedeći način:

• a ∗ (b|c)∗,

• (a|b|c)∗,

• ab ∗ a ∗ b,

Naravno, nas zanima i semantika regularnih izraza, i kako se i pojedini


jezici mogu reprezentirati pomoću regularnih izraza.
Značenje regularnog izraza je vrlo lagano objasniti. Regularni izrazi
zapravo predstavljaju obrasce za izgradnju riječi jezika.
Specijalni znakovi regularnih izraza imaju jednostavna značenja. Znak
∗ predstavlja 0 ili više ponavljanja izraza koji se nalazi ispred njega. To
znači da se na mjestu gdje se u regularnom izrazu nalazi izraz (w)∗, u riječi
jezika kojeg regularni izraz opisuje može se naći podriječ koju opisuje izraz
w ponovljena 0 ili više puta. Znak | predstavlja disjunkciju. Na mjestu gdje
se u regularnom izrazu nalazi izraz (v)|(w), u riječi jezika koji regularni izraz
opisuje može se naći ili podriječ koja je definirana izrazom v ili podriječ koja
je definirana izrazom w.

Primjer 7.3 Izvedimo neke riječi koje se nalaze u jezicima opisanim regu-
larnim izrazima iz prethodnog primjera:

• Prvi izraz definira jezik koji se sastoji od riječi koje na početku imaju
proizvoljan broj slova a, nakon čega slijedi proizvoljna riječ koja se
može sastaviti od slova b i c. Dakle sljedeće riječi su u tom jeziku:
ε
POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 297

b
aaaa
aaabcbbbcbcb

• Drugi izraz definira sve riječi koje se mogu sastaviti od slova a, b i c.

• Ovaj izraz definira riječi koje započinju slovom a, nakon čega ide
proizvoljan broj slova b, pa proizvoljan broj slova a i na kraju jedno
slovo b. Taj jezik sadrži sljedeće riječi:
ab
abbbb
aaaaab
abbbbaab

Dakle, regularni izrazi predstavljaju generativne definicije jezika.

Primjer 7.4 Napišimo regularni izraz koji će opisivati jezik koji se sastoji
od riječi nad abecedom Σ = {a, b, c}. Riječi su sastavljene tako da počinju
s proizvoljnim brojem b-ova iza kojih slijedi proizvoljan broj c-ova. Ove su
riječi povezane medusobno slovom a. Npr., sljedeće su riječi u tom jeziku:
bbbccacccababca

Regularan izraz koji opisuje taj jezik je

b ∗ c ∗ (ab ∗ c∗) ∗ .
Interesantan je jezik koji ovaj regularni izraz opisuje: to je jezik koji
se sastoji od svih mogućih riječi sastavljenih od slova a, b i c. Zadatak za
čitatelja je da to dokaže.

U regularnim se izrazima često definira još jedan znak: znak +. On se


definira na sljedeći način:

w+ ≡ ww ∗ .
Drugim riječima, w+ predstavlja jedno ili više ponavljanja riječi w.
Nadalje, možemo definirati potenciju riječi kao:

z }| {
wn ≡ ww . . . w .
Sada možemo napisati još neke primjere regularnih izraza:

Primjer 7.5

1. a + b ∗ c+ ≡ aa ∗ b ∗ cc∗
298 7.1. JEZICI

2. (a + b) ∗ c ≡ (aa ∗ b) ∗ c

3. (a3 b)+ ≡ aaab(aaab)∗

7.1.2 Kontekstno slobodne gramatike


Drugi formalizam kojim se mogu definirati jezici jesu kontekstno slobodne
gramatike ili samo gramatike. Kako ćemo kasnije vidjeti, gramatikama se
može definirati šira klasa jezika negoli regularnim izrazima.

Definicija 7.7 Kontekstno slobodna gramatika ili samo gramatika jest če-
tvorka G = hV, Σ, R, Si pri čemu vrijedi da je:

• V abeceda,

• Σ ⊆ V skup terminala,

• R ⊆ (V \Σ) × V ∗ skup pravila,

• S početni simbol.

Primjer 7.6 Napravimo gramatiku koja će definirati jezik nad abecedom
{a, b} i sastoji se od riječi koje imaju prvo i posljednje slovo a.
V = {a, b, S, A}, Σ = {a, b}, S je startni simbol, a R se definira na
sljedeći način:
S → aA
A → aA
A → bA
A→a

Primjer 7.7 Napravimo gramatiku koja će definirati jezik nad abecedom
Σ = {a, b} te koji se sastoji od riječi koje u sebi imaju paran broj a-ova.
S→A
A → aB
A → bA
A→b
B → aA
B → bB
B→b
B→a
POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 299

7.2 Konačni automati


U ovom poglavlju obradit ćemo konačne automate koji predstavljaju još
jedan način reprezentacije jezika. Konačni automati su pojednostavljeni
modeli računala. Sastoje se od procesorske jedinice, koja može obradivati
ulaze, koji se, recimo, nalaze na traci. Konačni se automat može prikazati
sljedećom slikom:

a b b a a a b

Slika 7.2

Pri tome se na traci nalaze simboli abecede konačnog automata. Konačni


automat čita zapis na traci s lijeva na desno, od njegova početka do kraja.
Automat ne može mijenjati zapis na traci, niti se može vraćati na već
pročitan dio zapisa. Automat u sebi sadrži program koji se sastoji od
konačnog skupa stanja, od kojih je jedno početno i funkcije prijelaza iz stanja
u stanje. Kada se automat nalazi u završnom stanju, žaruljica će zasvijetliti.
Kada automat pročita cijeli zapis, on stane. Ako je stao u završnom stanju,
žaruljica će svijetliti, indicirajući da je automat prepoznao riječ na traci kao
riječ jezika o kojem odlučuje. Ako automat stane u stanju koje nije završno,
onda žaruljica neće svijetliti, i tako će se znati da riječ ne pripada jeziku
danog automata.
Konačni automati imaju veliku ulogu u leksičkoj analizi kod prevodenja
programskih jezika, kod editora teksta, kod operacijskih sustava za evalu-
aciju regularnih izraza itd.
Konačni se automat može matematički definirati na sljedeći način:

Definicija 7.8 Deterministički konačni automat (DKA) ili samo konačni


automat je petorka M = hΣ, K, S, F, δi, pri čemu je:

• Σ konačna abeceda automata,

• K konačan skup stanja automata,


300 7.2. KONAČNI AUTOMATI

• S ∈ K početno stanje,

• F ⊆ K skup završnih stanja automata,

• δ : K × Σ → K funkcija prijelaza.

Neka je w : σ 1 . . . σ n ∈ Σ∗ riječ nad abecedom Σ. Tada konačni automat


M nad abecedom Σ vrši niz koraka na toj riječi;

(q0 , σ 1 σ 2 . . . σ n ) `M (qf (1) , σ 2 . . . σ n ) `M . . . `M (qf (n) , ε)),

odnosno

(q0 , σ 1 σ 2 . . . σ n ) `∗M (qf (n) , ε)).

Primjer 7.8 Napravimo sada konačan automat za jezike iz primjera 7.5

1. Σ = {a, b, c}
K = {q0 , q1 , q2 , q3 , q4 }
S = q0
F = {q3 }
Funkciju δ definiramo sljedećom tablicom:

a b c
q0 q1 q4 q4
q1 q1 q2 q3
q2 q4 q2 q3
q3 q4 q4 q3
q4 q4 q4 q4

Tablica 7.1

Konačni se automati najčešće prikazuju usmjerenim matematičkim


grafom, pa se ovaj automat može prikazati sljedećim grafom:
POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 301

q3 c
c

a q1
b
q2 b
a
a,b
a
q0
b,c
q4

Slika 7.3

2. Σ = {a, b, c}

K = {q0 , q1 , q2 , q3 , q4 }

S = q0

F = {q3 }

Funkcija δ definira se tablicom

a b c
q0 q1 q4 q4
q1 q1 q2 q4
q2 q1 q4 q3
q3 q4 q4 q4
q4 q4 q4 q4

Tablica 7.2

odnosno, usmjerenim grafom prikazano


302 7.2. KONAČNI AUTOMATI

a,b,c

c
q3 b
q4 a,b,c
q2

b c
a
b,c

q1 a

a q0

Slika 7.4

3. Σ = {a, b}
K = {q0 , q1 , q2 , q3 , q4 , q5 }
S = q0
F = {q4 }
Funkcija δ dana je sljedećom tablicom

a b
q0 q1 q5
q1 q2 q5
q2 q3 q5
q3 q5 q4
q4 q1 q5

Table 7.3

Ovaj se konačni automat može prikazati sljedećim grafom


POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 303

a a a b
q0 q1 q2 q3 q4

b b b a b

q5

a,b

Slika 7.5

Definirajmo sada nedeterministički konačni automat.

Definicija 7.9 Nedeterministički konačni automat (NKA) je petorka M =


hΣ, K, S, F, δi, pri čemu je

• Σ konačna abeceda automata,

• K konačan skup stanja automata,

• S ∈ K početno stanje,

• F ⊆ K skup završnih stanja automata,

• δ : K × Σ × K relacija prijelaza.

Razlika izmedu DKA i NKA je u tome što je kod DKA δ funkcija, dok
je kod N KA δ relacija. Drugim riječima, kod determinističkog je konačnog
automata, stanjem u kojem se automat nalazi i pročitanim znakom s trake,
jednoznačno odredeno stanje u koje će automat prijeći, dok kod NKA nije
tako. Kod NKA za isto stanje i ulazni znak automat ponekad može prijeći
u različita stanja.
Ova relaksacija dovodi, medutim do raznih nedoumica. Kako tretirati
mogućnost izbora? Hoće li automat stanje izabrati nasumce, ne vodeći
računa o rješenju ili će on upravo izabrati onaj izbor koji će dovesti do
rješenja. To su dvije vrste determinizma, od kojih se prvi naziva davolski
ili ”don’t care” nedeterminizam, a drugi andeoski ili ”don’t know” nede-
terminizam. Prvi je nedeterminizam vrlo lako izvesti, no on ne predstavlja
pravi nedeterminizam, koji bi dao veće mogućnosti programu, već pred-
stavlja randomizaciju algoritma. Druga je vrsta nedeterminizma ona koja
304 7.2. KONAČNI AUTOMATI

se podrazumijeva kada se govori o nedeterminizmu. Zaista, pretpostavlja se


da nedeterministički automat može, bez ikakve provjere u svakom slučaju
napraviti onaj izbor koji će ga dovesti do točnog rješenja i izbjeći sve izbore
koji bi ga doveli do pogrešnog. Ovaj se nedeterminizam često ilustrira i tako
da se kaže da se automat u trenutku nedeterminističkog izbora kopira u
onoliko kopija koliko je mogućnosti izbora, te da svaka kopija napravi jedan
od mogućih izbora, a ostatak se riječi procesira na svima njima paralelno.
Jasno je da stvarni automati ne mogu imati moć kopiranja samog sebe, ali
isto tako je jasno da oni ne mogu imati ni mogućnost nedeterminističkog
izbora. Stoga je nedeterminizam u potpunosti teorijski koncept koji nije
moguće praktično izvesti. No, on se svejedno koristi u teoriji računalstva jer
je vrlo bitan u klasifikaciji problema.

Primjer 7.9 Napravimo NKA koji odlučuje o jeziku nad abecedom Σ =


{a, b}, koji se sastoji od riječi koje na početku imaju proizvoljan broj a-ova,
nakon čega slijedi paran broj b-ova, iza čega se nalazi točno jedna pojava
slova a.
Konačni automat, koji odlučuje o gore opisanom jeziku, dan je sljedećim
grafom:

a q1 b
q0

b b q2 a
a

q1
q2 b

a,b
a,b
a,b q1

Slika 7.6

Sljedeće što ćemo definirati jest proširenje konačnog automata: deter-


ministički konačni automat s ε prijelazima. On se definira na sljedeći način:
POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 305

Definicija 7.10 Nedeterministički konačni automat s ε prijelazima (u oz-


naci εNKA) je petorka M = hΣ, K, S, F, δi, pri čemu je
• Σ konačna abeceda automata,
• K konačan skup stanja automata,
• S ∈ K početno stanje,
• F ⊆ K skup završnih stanja automata,
• δ : K × (Σ ∪ {ε}) × K relacija prijelaza.
Dakle, razlika u definicijama NKA i εNKA je minimalna, u definiciji
funkcije δ, i to samo u tome što je dopušteno da njen drugi argument,
osim slova abecede Σ bude i ε. Drugim riječima, osim standardnih prijelaza
dozvoljeni su i prijelazi iz stanja u stanje bez čitanja trake. Ovakvo svojstvo
nema smisla definirati nad determinističkim automatom jer bi kod DKA sva
stanja povezana ε prijelazima bila medusobno ekvivalentna, da bi se mogla
sažeti u jedno jedino stanje, čime bi se trivijalno eliminirali svi ε prijelazi.
Prirodno se postavlja pitanje o kojoj klasi jezika mogu odlučivati konačni
automati? Pokazuje se da vrijedi sljedeći teorem:

Teorem 7.1 Za jezik L može se napraviti deterministički konačni automat


koji odlučuje o L ako i samo ako je L regularan jezik.
Dokaz ovog teorema ide preko uspostavljanja veza svih triju uvedenih
konačnih automata. Dokazuje se sljedeći niz ekvivalencija:

DKA ⇔ N KA ⇔ εDKA ⇔ RL
Medutim, ovaj niz ekvivalencija nećemo dokazivati jer on prelazi okvire
ove knjige. Dokazi ovih ekvivalencija mogu se naći u [3].
No, postoji još jedno zanimljivo pitanje. Postoje li jezici koji nisu regu-
larni? Drugim riječima, postoji li neki jezik koji nije u u šrafiranom dijelu,
nego je u bijelom dijelu na sljedećoj slici?

RL

Slika 7.7
306 7.2. KONAČNI AUTOMATI

Na ovo važno pitanje odgovorit ćemo konstruiranjem jezika koji nisu


regularni. U dokazivanju da neki jezik nije regularan značajnu ulogu ima
sljedeći vrlo poznati teorem:

Teorem 7.2 (Lema o pumpanju) Neka je L regularan jezik. Tada pos-


toje nizovi znakova x, y, z ∈ Σ takvi da je y 6= ε i da je xy n z ∈ L za svaki
n ∈ N0 .
Dokaz. Kako je L beskonačan regularan jezik, za njega postoji DKA
koji o njemu odlučuje. Pretpostavimo da imamo DKA M s n stanja koji
odlučuje o jeziku L. No, kako je L beskonačan, L mora sadržavati nizove
znakova čija je duljina veća od n. Neka je w : σ 1 σ 2 . . . σ n ∈ L i neka je
|w| > n. Ako se riječ w obradi konačnim automatom M , on će izvršiti
sljedeći niz pretvorbi:

(q0 , w) `∗M (ε, qf (|w|) ),


pri čemu je qf (|w|) ∈ F . Kako je |w| > n, po Dirichletovom prin-
cipu, mora postojati stanje qi kroz koje je automat prošao barem dva puta
obradujući riječ w, tj. postoje 0 ≤ j < k ≤ |w| takvi da je qf (j) = qf (k) . To
znači da niz znakova σ j . . . σ k provodi automat iz stanja qf (j) u stanje qf (j) .
No, onda niz znakova σ j . . . σ k može biti maknut iz riječi w, a automat će
još uvijek završiti u istom, završnom stanju. Dakle, automat će prepoznati
i riječ xz.
S druge strane, dodamo li iza niza znakova σ j . . . σ k isti taj niz znakova
još n−1 puta, nakon procesiranja svih n pojava podstringa σ j . . . σ k automat
će se još uvijek nalaziti u stanju qf (j) , pa će do kraja riječi xy n z automat
završiti u stanju qf (|w|) , koje je završno, pa će automat prepoznavati i riječ
xy n z.
Sada ćemo dati nekoliko primjera jezika koji nisu regularni.

Primjer 7.10 Neka je dan jezik L = {an : n je prost broj}. Dokažimo da


jezik L nije regularan.
Neka je xyz ∈ L. Tada, prema lemi o pumpanju i riječ xy n z ∈ L.
Neka je y : ak . Tada je xz : an−k . No, tada je |xy n−k z| = (n − k) +
(n − k) · k = (n − k)(k + 1), što očito nije prost broj, a to se kosi s lemom o
pumpanju, pa zaključujemo da L nije regularan.

Primjer 7.11 Neka je dan jezik L = {an bn : n ∈ N0 }. Dokažimo da L nije


regularan.
Neka je xyz ∈ L. Imamo tri moguća slučaja:

1. Neka je y : ak . U tom slučaju će xy n z za n 6= 1 imati različit broj


a-ova i b-ova, pa neće biti element od L.

2. Slučaj kada je y : bk jednak je kao i prethodni slučaj.


POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 307

3. Neka je y : ak bl . No, tada će za n > 1 riječ xy n z imati pojavu slova b


kojoj slijedi pojava slova a, a to nije dozvoljeno u jeziku L.

Budući da nije zadovoljena lema o pumpanju, jezik L nije regularan.

7.3 Potisni automati


Druga važna klasa automata jesu potisni automati ili stog automati. To su
automati koji imaju lokalnu memoriju organiziranu u stog. Sljedeća slika
pokazuje potisni automat.

a b b a a a b

b
b
a

Slika 7.8

Kod potisnog automata funkcija prijelaza iz stanja u stanje ovisi o stanju


u kojiem se automat nalazi, o pročitanom znaku s trake, ali i o simbolu koji
se nalazi na vrhu stoga.

Definicija 7.11 Deterministički potisni automat s ε prijelazima je sed-


morka M = hK, Σ, Γ, S, ⊥, F, δi, pri čemu je

• K konačan skup stanja automata,

• Σ ulazna abeceda,

• Γ abeceda stoga,

• S ∈ Σ početno stanje,

• ⊥ ∈ Γ početni simbol stoga,

• F ⊆ K skup završnih stanja,


308 7.3. POTISNI AUTOMATI

• δ : K × (Σ ∪ {ε}) × Γ → K × Γ∗ parcijalna funkcija prijelaza takva


da za svaki q ∈ K i Z ∈ Γ postoji δ(σ, q, Z), za svaki σ ∈ Σ ili pak
postoji δ(ε, q, Z), ali onda nije definirano δ(σ, q, Z) ni za jedan σ ∈ Σ.

Time je definiran deterministički potisni automat s ε prijelazima.

Definicija 7.12 Nedeterministički potisni automat ε prijelazima ili samo


potisni automat je sedmorka M = hK, Σ, Γ, S, ⊥, F, δi, pri čemu je:

• K je konačan skup stanja automata,

• Σ ulazna abeceda,

• Γ abeceda stoga,

• S ∈ Σ početno stanje,

• ⊥ ∈ Γ početni simbol stoga,

• F ⊆ K skup završnih stanja,

• δ : K × Σ ∪ {ε}) × Γ × K × Γ∗ parcijalna relacija prijelaza takva da za


svaki q ∈ K i Z ∈ Γ postoji δ(σ, q, Z), za svaki σ ∈ Σ ili pak postoji
δ(ε, q, Z), ali onda nije definirano δ(σ, q, Z) ni za jedan σ ∈ Σ.

Primjer 7.12 Neka je dan jezik L = {an bn }. Potisni automat kojemu je


K = {q0 , q1 , q2 }, S = q0 , F = {q1 }, Γ = {⊥, 0}, Z0 = ⊥, a relacija prijelaza
δ neka je zadana sljedećom tablicom:

a b ε
(q0 , ⊥) (q0 , 0) (q2 , ⊥)
(q0 , 0) (q0 , 00) (q1 , ε)
(q1 , ⊥) (q2 , ⊥) (q2 , ⊥)
(q1 , 0) (q2 , 0) (q1 , ε) (q2 , 0)
Tablica 7.4

Onda taj PA odlučuje o jeziku L.


Ovaj primjer nam pokazuje jedan od načina kako potisni automat može
prepoznavati neki jezik. Ova vrsta prepoznavanja naziva se odlučivanje
završnim stanjem. Kod ove vrste prepoznavanja riječ je prihvaćena ako
je nakon čitanja riječi (i nakon izvršenja ε prijelaza) automat završio u
završnom stanju. Postoji, medutim, još jedna vrsta prepoznavanja jezika
koja se može definirati za potisni automat - odlučivanje praznim stogom.
Kod ove vrste prepoznavanja nije važno u kojem je automat stanju stao, već
je važno da je kod zaustavljanja stog automata prazan. Stoga se kod PA
POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 309

koji prepoznaje praznim stogom standardno stavlja F = ∅. Sljedeći primjer


daje deterministički automat koji prepoznaje jezik iz prethodnog primjera
praznim stogom.

Primjer 7.13 Zadan je jezik L = {an bn }. K = {q0 , q1 , q2 }, a S = q0 .


F = ∅, te neka je Γ = {⊥, 0} i neka je Z0 = ⊥. Sada imamo sljedeću
definiciju:

a b ε
(q0 , ⊥) (q0 , 0) (q2 , ⊥)
(q0 , 0) (q0 , 00) (q1 , ε)
(q1 , ⊥) (q2 , ⊥) (q2 , ⊥)
(q1 , 0) (q2 , 0) (q1 , ε)
Tablica 7.5

Upravo opisano sažeto je u sljedećoj definiciji:

Definicija 7.13 Neka je L jezik. Kažemo da potisni automat M1 odlučuje


završnim stanjem o jeziku L i pišemo L(M1 ), ako automat nakon procesi-
ranja svake riječi iz jezika L staje u završnom stanju.
Kažemo da potisni automat M2 odlučuje praznim stogom o jeziku L i
pišemo L(M1 ), ako je stog automata nakon procesiranja svake riječi iz jezika
L prazan.

Sada imamo sljedeći, vrlo zanimljiv teorem:

Teorem 7.3 Neka je L jezik. Za jezik L postoji deterministički potisni


automat M1 takav da je L = L(M1 ) ako i samo ako postoji deterministički
potisni automat M2 takav da je L = N (M2 ).

Dokaz. Neka je M1 PA koji odlučuje o jeziku L završnim stanjem.


Želimo napraviti PA M2 koji odlučuje o jeziku L praznim stogom.
Pri tome moramo imati na umu dvije stvari. Naravno, osnovno je da taj
automat mora isprazniti stog u trenutku kada automat M1 stane u završnom
stanju. No, isto tako je važno da osiguramo da PA M2 ne isprazni slučajno
stog kada mi to ne želimo, tj. kada M1 nije stao u završnom stanju.
Kako bismo onemogućili ovo drugo, abecedu stoga PA M2 proširit ćemo
jednim simbolom u odnosu na abecedu M1 . Recimo da je to simbol ⊥1 . Na
samom početku rada PA M2 osigurat ćemo da on zapiše na stog znak ⊥2 ,
čime ćemo kontrolirati da stog ne postane prazan, već da se na njemu uvijek
nalazi simbol ⊥1 . ­ ®
Neka je M1 = hK, Σ, Γ, q0 , ⊥, F, δi i neka je M2 = K 0 , Σ0 , Γ0 , q00 , ⊥, ∅, δ 0 .
Kako automat M2 ne odlučuje završnim stanjem, odmah možemo definirati
310 7.3. POTISNI AUTOMATI

da je F 0 = ∅. Kako ova dva automata trebaju opisivati isti jezik, onda je


jasno da je Σ0 = Σ. Rekli smo da je Γ0 = Γ ∪ {⊥1 }.
Dodat ćemo još jedno stanje, recimo q00 , koje će biti početno, i koje će se
ε prijelazom vezati za početno stanje automata M1 , dodajući tako simbol
⊥1 na početku rada na stog. Dakle, K 0 = K ∪ {q00 }.
Na kraju, ostala nam je definicija relacije δ 0 . Kao prvo, u relaciji δ sve po-
jave simbola ⊥, bilo u trećoj, bilo u petoj komponenti, mijenjamo simbolom
⊥1 . Nakon toga u δ dodajemo petorku (q00 , ε, ⊥, q0 , ⊥1 ). Takoder, za svako
stanje q ∈ F , te za svaki simbol γ ∈ Γ definiramo da je (q, ε, γ, q, ε) ∈ δ 0 .
Isto tako, za svako q ∈ F definiramo da je (q, ε, ⊥1 , q, ε) ∈ δ 0 , tako da zaista
dobijemo prazan stog, odnosno stog u kojem se nalazi samo simbol ⊥.
Obrnuto, neka je M2 PA koji odlučuje o jeziku L praznim stogom.
Potrebno je kreirati PA M1 koji će odlučivati o jeziku L završnim stanjem.
Neka je M2 = hK, Σ, Γ, q0 , ⊥, ∅, δi. Kreirajmo automat M1 =< K 0 , Σ0 ,
Γ0 , q00 , ⊥, F 0 , δ 0 >. Konstruiranje ovog PA je još jednostavnije. Naravno,
vrijedi Σ0 = Σ, Γ0 = Γ. Dodaje se novo stanje qF0 i stavlja se K 0 = K ∪ {qf0 }.
Takoder, za svako stanje q ∈ K definira se ε prijelaz (q, ε, ⊥, qF0 , ⊥). Na taj
način se svako pražnjenje stoga registrira prilazom u stanje qF0 . Konstrukcija
automata M1 završava definiranjem skupa F 0 = {qF0 }.
Time je teorem dokazan.
Iz definicija PA, ali i DPA može se vidjeti nekoliko važnih stvari vezanih
uz potisni automat. Potisni se automat standardno definira kao nedetermin-
istički automat u kojem su dozvoljeni ε prijelazi, dok se konačni automat
standardno definira kao deterministički. Razlog tome je sljedeći teorem.

Teorem 7.4 Neka je L jezik. Za jezik L postoji potisni automat M za koji


vrijedi L = N (M ) ako i samo ako je L kontekstno slobodan jezik.

Ovaj teorem nećemo dokazivati, kao što nismo dokazivali ni teorem 7.1.
Dokazi oba ova teorema mogu se naći u [3] i u [5].
No, dokazat ćemo teorem sličan onome koji smo dokazivali za regularne
jezike u prethodnom poglavlju za kontekstno slobodne jezike:

Teorem 7.5 (Lema o pumpanju) Neka je L kontekstno slobodan jezik.


Tada postoji k ∈ N takav da za svaku riječ w ∈ L, takvu da je |w| ≥ k,
postoji zapis w : uvxyz, takav da je v 6= ε ili y 6= ε i takav da je za proizvoljan
n ∈ N0 riječ uv n xy n z ∈ L.

Prije nego što krenemo na dokazivanje ovog teorema treba definirati


stabla izvoda za riječ w i gramatiku G. Stablo izvoda je stablo u kojem
je korijen označen sa startnim simbolom S. Nadalje, ako primijenjujemo u
nekom trenutku pravilo A → α, α : σ 1 . . . σ n , tada se u stablu kao djeca
vrha A javljaju vrhovi σ 1 , . . . , σ n . Listovi stabla su terminalni simboli, dok
su unutarnji čvorovi stabla izvoda oni simboli koji nisu terminalni.
POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 311

Primjer 7.14 Dan je jezik L koji se sastoji od palindroma nad abecedom


Σ = {a, b, c}. Palindromi su riječi koje su jednake, čitane sprijeda i straga.
Gramatika za ovaj jezik je:
S→ε
S → aSa
S → bSb
S → cSc
Pogledajmo sada riječ abccba i njeno stablo izvoda:

a S a

b S b

c S c

e
Slika 7.9

Dokaz. Neka je jezik L opisan gramatikom G : hV, Σ, R, Si. Ono što


treba dokazati jest da je svaki terminal čija je duljina veća ili jednaka k
izvodiv tako da je

S →∗ uAz →∗ uvAyz →∗ uvxyz.


Što se dogada kada je p najveći broj znakova na desnoj strani nekog
pravila iz gramatike G? Tada stablo koje ima m razina može imati najviše
pm listova. Ova se tvrdnja može dokazati indukcijom po m, no ovdje je
nećemo dokazivati. Zainteresirani čitatelj može sam izvesti ovaj jednostavan
dokaz.
Drugim riječima, ako stablo opisuje izvod riječi koja ima više od pm
slova, onda u tom stablu mora postojati put od korijena do terminala čija
je duljina veća od m.
Stavimo sada da je m = |V \Σ|, odnosno, neka je m broj slova abecede
V koja nisu terminali. Neka je k = pm , te neka je dana riječ w takva da
je |w| > k. Neka je T stablo izvoda riječi w. No, tada u stablu T postoji
bar jedan put od korijena do terminala duljine veće od |V \Σ|, tj. put koji
prolazi kroz više od |V \Σ| + 1 čvorova.
312 7.3. POTISNI AUTOMATI

No, kako abeceda ima samo |V \Σ| neterminalnih slova, to na tom putu
može biti najviše |V \Σ| različitih unutarnjih čvorova. Zbog toga na tom
putu moraju postojati dva čvora koja imaju istu oznaku. Pri tome treba
napomenuti da nijedan od ta dva čvora ne može biti list, jer listovi i unutarnji
čvorovi ne mogu imati iste oznake. Neka ti čvorovi imaju oznaku A.
To znači da u izvodu riječi w postoji dio izvoda opisan sljedećom she-
mom:

S →∗ uAz →∗ uvAyz →∗ uvxyz,


pri čemu barem jedna od riječi v i y mora biti neprazna.
Dio izvoda koji započinje i završava u istom stanju A možemo kontrahi-
rati tako da obrišemo sve od prve pojave simbola A do njegove druge pojave,
čime ćemo dobiti izvod

S →∗ uAz →∗ uxz,
dakle izvod riječi uxz. Dakle, uxz ∈ L.
Isto tako, taj se dio izvoda može ponoviti više puta, čime će se dobiti

n
z }| {
S → uAz →∗ uvAyz →∗ . . . →∗ uAz →∗ uv n Ay n z × →∗ uv n xy n z

pa je i uv n xy n z ∈ L za svaki n ∈ N.

Korolar 7.1 Svaki je regularni jezik kontekstno slobodan. Obratno ne vri-


jedi.
Dokaz. Svaki se konačni automat može prikazati kao potisni automat
koji uopće ne koristi stog, pa se svaki jezik koji se može prepoznavati pomoću
konačnog automata može prepoznavati pomoću potisnog automata.
U primjeru 7.10 pokazali smo da jezik L = {an bn } nije regularan. No, u
primjeru 7.13 smo pokazali da taj jezik jest kontekstno slobodan. Time je
pokazano da kontekstno slobodni jezici nisu nužno regularni.
Pitanje koje se postavlja jest, postoji li jezik koji nije kontekstno slobo-
dan? Odgovor na ovo pitanje dan je sljedećim primjerom.

Primjer 7.15 Neka je zadan jezik L = {an bn cn }. Pokažite da taj jezik nije
kontekstno slobodan.
Naravno, dokaz se provodi pomoću leme o pumpanju.
Neka je n > k3 . Tada se na riječ w : an bn cn može primijeniti lema
o pumpanju. U tom slučaju mora postojati zapis w : uvxyz takav da je
uv i xy i z ∈ L za svaki i ∈ N0 .
Ako v ili y sadrži različita slova, onda će se u riječi uv i xy i z za i > 1
imati pojavu slova b ispred slova a ili pak pojavu slova c ispred slova b, a to
ne može biti.
POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 313

Dakle, v i y mogu se sastojati samo od jednog simbola. No, u tom


slučaju, u riječi uv i xy i z za i > 1 povećat ćemo broj pojava jednog ili dva
različita slova, dok će broj pojava trećeg slova ostati isti, pa riječ više neće
pripadati jeziku L.
Dakle, kako se ne može ispoštovati lema o pumpanju, zaključuje se da L
nije kontekstno slobodan jezik.
Sljedeća slika daje klasifikaciju jezika koju smo do sada obradili:

CFL

RL

Slika 7.10

U ovom smo se poglavlju uglavnom bavili nedeterminističkim potisnim


automatom, dok smo deterministički potisni automat tek spomenuli. Zašto
deterministički potisni automat ima tako malu ulogu? Zato što je determi-
nistički potisni automat kao koncept preslab da bi opisao kontekstno slo-
bodne jezike, koji su ovdje interesantni.
Iz upravo rečenoga može se zaključiti da, za razliku od konačnih au-
tomata, nedeterministički i deterministički potisni automati ne definiraju
istu klasu jezika. I zaista, postoje kontekstno slobodni jezici o kojima se ne
može odlučivati pomoću determinističkog potisnog automata. Klasa jezika
o kojoj se može odlučiti pomoću determinističkog potisnog automata šira je
od klase regularnih jezika, ali je uža od klase kontekstno slobodnih jezika. Ta
se klasa naziva klasom determinističkih kontekstno slobodnih jezika. Drugim
riječima, imamo sljedeće odnose medu klasama jezika:

RL ⊂ DCF L ⊂ CF L.

7.4 Turingovi strojevi


Kroz prethodna smo dva poglavlja tragali za automatom koji bi mogao
opisati bilo koji jezik. Uveli smo dvije vrste automata, no ni jedan od njih,
kao što smo pokazali, nije sveobuhvatan. U prvom smo poglavlju imali jedan
vrlo jednostavan automat, koji je traku čitao sljedno i koji nije imao memo-
riju. Pokazali smo da taj koncept nije dovoljan da bi se njime mogli opisati
314 7.4. TURINGOVI STROJEVI

svi jezici. U drugom smo poglavlju automat proširili dodavši mu memo-


riju. Tako smo proširili klasu jezika koje možemo prepoznati automatom, no
pokazalo se da i time nismo definirali sveobuhvatni automat. U ovom ćemo
poglavlju opisati automat koji prepoznaje još širu klasu jezika – Turingov
stroj.
Turingov stroj je automat koji nema svoju zasebnu memoriju, ali može
traku s koje čita ulaz ujedno koristiti kao memoriju. Osim toga, Turingov
stroj traku ne mora čitati samo jednosmjerno - od početka prema kraju, već
su kod njega mogući pomaci po traci u oba smjera, tako da Turingov stroj
može isti simbol čitati i više puta.
Dakle, Turingov je stroj automat koji u svakom svom koraku može
pročitati s trake znak, upisati na istu tu poziciju trake drugi znak, te po-
maknuti glavu za čitanje na sljedeći ili prethodni znak na traci. Ovaj koncept
razvio je engleski matematičar Alan Turing (1912.-1954.).
Turingov se stroj formalno definira kao:

Definicija 7.14 Turingov stroj je petorka M = hK, Σ, S, F, δi, pri čemu je:

• K konačan skup stanja automata,

• Σ je abeceda, u kojoj imamo istakuti prazni (blank) simbol t ∈ Σ i


početni simbol .,

• S ∈ K početno stanje,

• F = {qT , qF } ⊆ S skup završnih stanja, koji sadrži stanja,

• δ : K\{qF , qT } × Σ → K × Σ × {L, R} funkcija prijelaza.

U literaturi se mogu pronaći vrlo različite definicije Turingovog stroja,


što može itekako zbuniti manje vještog čitatelja. Turingov stroj u literaturi
predstavlja kao četvorka, pa sve do sedmorke. Neki autori ne ističu posebno
skup završnih stanja, a neki da. U ovoj definiciji skup završnih stanja bi se
isto tako mogao izostaviti i reći samo da skup stanja sadrži stanja qT , qF i
qh . Neki autori razlikuju dvije abecede: jedna je abeceda jezika koji automat
prepoznaje, a druga je abeceda obogaćena specijalnim simbolima . i t. Neki
autori ne specificiraju, kao što smo mi napravili, posebno završno stanje za
riječ koju automat potvrduje (qT ) i za onu koju odbacuje (qF ) te posebno
završno stanje (qh ), koje služi u automatima koji ne rade odlučivanje, već
izračunavanje. U tom slučaju, autori definiraju funkciju δ kao parcijalnu
funkciju, te sve prijelaze u stanje qF zamijenjuju nedefiniranim prijelazima.
Na kraju, postoje razlike i u tome kako se definiraju mogući pokreti glave
za čitanje. Dok neki autori zahtijevaju da se u svakom koraku glava za
čitanje mora pomaknuti jedno polje lijevo ili desno, neki autori dozvoljavaju
da glava u nekim konfiguracijama ostane na mjestu. Drugim riječima, skup
simbola {L, R}, koji definira pomicanje glave za čitanje, može se nadopuniti
POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 315

do {L, N, R}. Bez obzira na sve te razlike, svi autori, definirajući Turingov
stroj, definiraju automat iste ekspresivnosti i istih osnovnih svojstava.

Primjer 7.16 Neka je Σ = {a, b}, i neka je zadan jezik L = {an bn } nad
Σ. Napravimo Turingov stroj koji prepoznaje ovaj jezik. On otkida jedan
a sprijeda, pa jedan b straga. Ako ostane višak a-ova ili višak b-ova, onda
riječ nije dobra, a ako ostane prazna riječ, onda je ulazna riječ bila dobra.

. a b t
q0 (., R, q0 ) (., R, q1 ) qF (t, L, qT )
q1 (., L, qF ) (a, R, q1 ) (b, R, q1 ) (t, L, q2 )
q2 (., L, qF ) (a, L, qF ) (t, L, q3 ) (t, L, qF )
q3 (., R, q0 ) (a, L, q3 ) (b, L, q3 ) (t, L, qF )
Tablica 7.6

Primijetimo da tablicu kojom smo opisali Turingov stroj nismo ispunili


do kraja. To bi značilo da je funkcija δ parcijalna funkcija. No, ona se može
upotpuniti tako da se sva nedefinirana stanja popune tako da Turingov stroj
upiše znak koji je pročitao, glavu premjesti u desno i prijede u stanje qF .

Primjer 7.17 Napravimo Turingov stroj koji će prepoznavati jezik L =


{an bn cn }.
Ideja je da se prvo provjeri ima li isti broj a-ova i c-ova, tako da se a-ovi
prepisuju c-ovima, a c-ovi se na kraju brišu. Ako se desi da ostane u riječi
neki a, a da iza b-ova više nema c-ova, onda riječ nije dobra. Isto je ako iza
b-ova ostane neki c, ali u riječi više nema a-ova. Ako istovremeno ponestane
a-ova i c-ova iza b ova, onda će nam preostati riječ koja započinje odredenim
brojem c-ova, iza čega slijedi odreden broj b-ova. Njihovo se prebrojavanje
vrši tako da se briše po jedan c s početka riječi i jedan b s kraja. Ako taj
postupak završi praznom riječi, onda je ulazna riječ bila dobra. Završi li ovaj
postupak riječju koja se sastoji od odredenog broja c-ova ili od odredenog
broja b-ova, onda riječ nije dobra.

. a b c t
q0 (., R, q0 ) (c, R, q1 ) (t, L, qT )
q1 (a, R, q1 ) (b, R, q1 ) (c, R, q1 ) (t, L, q2 )
q2 (t, L, q3 )
q3 (., R, q4 ) (a, L, q3 ) (b, L, q3 ) (c, L, q3 )
q4 (c, R, q1 ) (b, R, q5 ) (c, R, q4 )
q5 (b, R, q5 ) (c, R, q5 ) (t, L, q6 )
q6 (., R, qT ) (t, L, q7 )
q7 (., R, q8 ) (b, L, q7 ) (c, L, q7 )
q8 (., R, q5 ) (t, R, qF )
Tablica 7.7
316 7.4. TURINGOVI STROJEVI

No, kako Turingovi strojevi imaju, osim čitanja, mogućnost pisanja na


traku, oni, za razliku od prije navedenih automata, imaju mogućnost zapisi-
vanja izlaznog rezultata na traku. Tako se Turingovi strojevi mogu koristiti
i za različita izračunavanja.

Primjer 7.18 Neka su dva broja zapisana u unarnom zapisu, tj. broj n je
prikazan pomoću n nula. Ta dva broja na traci razdvojena su znakom +.
Potrebno je zbrojiti ta dva broja.
Rješenje je jednostavno: treba obrisati jednu nulu s kraja drugog broja,
a znak + treba zamijeniti nulom. Turingov stroj koji radi ovu operaciju
opisan je sljedećom tablicom.

. 0 + t
q0 (., R, q0 ) (0, R, q0 ) (0, R, q1 )
q1 (0, R, q1 ) (t, L, q2 )
q2 (t, R, qT )
Tablica 7.8

Dajmo još dva primjera:

Primjer 7.19 Napravimo sada Turingov stroj koji izokreće bilo koju riječ
nad abecedom Σ = {a, b, c} naopako.
Automat radi na sljedeći način. Na početku riječi će ostati praznina
ispred koje se prepisuje prvo slovo riječi. Nakon toga se prepisuje drugo
slovo riječi ispred prvoga, itd., sve do kraja riječi. Kao pomoćni simbol,
kojim ćemo ispunjavati prostor izmedu kreirane riječi i ostatka ulazne riječi
koristit ćemo simbol ..
Stroj je dan sljedećom tablicom.

. a b c t
q0 (., R, q0 ) (., L, qa ) (., L, qb ) (., L, qc ) (t, R, qh )
qa (a, L, q. ) (a, L, qa ) (b, L, qa ) (c, L, qa )
qb (b, L, q. ) (a, L, qb ) (b, L, qb ) (c, L, qb )
qc (c, l, q. ) (a, L, qc ) (b, L, qc ) (c, L, qc )
q. (., R, q1 ) (., R, q1 ) (., R, q1 ) (., R, q1 )
q1 (., R, q0 ) (a, R, q1 ) (b, R, q1 ) (c, R, q1 )
Tablica 7.9

Primjer 7.20 Napravimo Turingov stroj koji će ulazni niz znakova na traci
kopirati, tj. kao izlaz dati dva jednaka niza znakova odvojena razmakom.
Neka je abeceda ovog stroja binarna abeceda, tj. Σ = {0, 1, ., t}.
POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 317

Stroj će raditi tako da će prvi znak ulaznog niza znakova brisati, i
prepisati ga dva puta. Pri tome će se posljednja riječ na traci trebati pomi-
cati jedno polje desno prije svakog upisivanja slova u drugu riječ, kako bi se
dobilo mjesto za upis novog slova u drugu riječ.

. 0 1 t
q0 (., R, q0 ) (., R, q01 ) (., R, q11 ) (., R, qT )
q01 (0, R, q01 ) (1, R, q01 ) (t, R, q02 )
q02 (0, R, q003 ) (0, R, q103 ) (0, R, q0 4)
q003 (0, R, q003 ) (0, R, q103 ) (0, R, q04 )
q103 (1, R, q003 ) (1, R, q103 ) (1, R, q04 )
q04 (t, R, q005 ) (t, R, q105 ) (t, R, qt04 )
qt05 (0, R, q005 ) (0, R, q105 ) (0, L, q06 )
q005 (0, R, q005 ) (0, R, q105 ) (0, L, q06 )
q105 (1, R, q005 ) (1, R, q105 ) (1, L, q06 )
q06 (0, L, q06 ) (1, L, q06 ) (t, R, q07 )
q07 (0, L, q008 ) (1, L, q108 )
q008 (0, R, q008 ) (0, R, q108 ) (0, L, qrew )
q108 (1, R, q008 ) (1, R, q108 ) (1, L, qrew )
q11 (0, R, q11 ) (1, R, q11 ) (t, R, q12 )
q12 (1, R, q013 ) (1, R, q113 ) (1, R, q1 4)
q013 (0, R, q013 ) (0, R, q113 ) (0, R, q14 )
q113 (1, R, q013 ) (1, R, q113 ) (1, R, q14 )
q14 (t, R, q015 ) (t, R, q115 ) (t, R, qt14 )
qt15 (1, R, q015 ) (1, R, q115 ) (1, L, q16 )
q015 (0, R, q015 ) (0, R, q115 ) (0, L, q16 )
q115 (1, R, q015 ) (1, R, q115 ) (1, L, q16 )
q16 (0, L, q16 ) (1, L, q16 ) (t, R, q17 )
q17 (0, L, q018 ) (1, L, q118 )
q018 (0, R, q018 ) (0, R, q118 ) (0, L, qrew )
q118 (1, R, q018 ) (1, R, q118 ) (1, L, qrew )
qrew (., R, q0 ) (0, L, qrew ) (1, L, qrew ) (t, L, qrew )
Tablica 7.10

Ovaj je Turingov stroj nešto složeniji pa ćemo ga detaljnije opisati.


Stanje q0 je početno stanje i ujedno nam služi za brisanje prvog slova iz
ulazne riječi. Ovisno o tome je li prvo slovo bilo 0 ili 1, stroj odlazi u stanje
q01 ili q11 . Stanja q01 do q108 su stanja koja definiraju rad stroja u slučaju da
je obrisani znak bio 0, dok stanja q11 do q118 na sličan način definiraju rad
stroja u slučaju da je obrisani znak 1. Dalje ćemo opisati stanja q01 do q108 .
Stanje q01 se ponavlja dok se ne pročita do kraja ostatak ulazne riječi. Nakon
toga dolaze stanja q02 do q103 , koja dodaju na početak druge riječi, odnosno
318 7.4. TURINGOVI STROJEVI

prve riječi rezultata znak 0, dok preostale znakove te riječi premještaju za


jedno polje trake dalje. Stanje q02 izvršava se jednom i dodaje 0 na početak
riječi. S obzirom na to je li na mjestu gdje je upisana ta nula bio znak 0 ili
1 prelazi se u stanje q003 , odnosno q103 . Na kraju druge riječi prelazi se u
stanje q04 , čime počinje obrada treće riječi. U prvom prolazu treća se riječ
premješta za jedno mjesto desno na traci. Počinje se stanjem q04 , kojim se
premješta razmak izmedu druge i treće riječi, te se ponavljaju stanja q005 i
q105 dok se ne dode do kraja treće riječi. Tada stroj dode u stanje qt05 , te
nakon toga prelazi u stanje q06 . Stanje q06 služi za vraćanje na početak treće
riječi, a kada se dode do njenog početka, prelazi se u stanje q07 . Stanja q07
do q108 dodaju znak 0 na početak treće riječi i premještaju ostale znakove
treće riječi za jedno mjesto na traci u desno. Ova stanja djeluju slično kao
što djeluju stanja q02 do q103 , premještajući drugu riječ. Nakon toga, prelazi
se u stanje qrew koje služi za prematanje trake na početak zapisa. Kada se
dode do početka zapisa, prelazi se natrag na stanje q0 i postupak se ponavlja
za sljedeći znak ulazne riječi.

Sada se postavlja pitanje koju klasu jezika prepoznaju Turingovi stro-


jevi? Imamo sljedeće definicije:

Definicija 7.15 Neka je dan jezik L za koji postoji Turingov stroj koji za
svaku riječ w ∈ L staje u stanju qT , a za svaku riječ x 6∈ L staje u stanju
qF . Tada kažemo da je L rekurzivan jezik .
Za rekurzivne jezike kažemo da su odlučivi .

Definicija 7.16 Neka je L jezik za koji postoji Turingov stroj koji za svaku
riječ w ∈ L staje u stanju qT . Tada kažemo da je jezik L rekurzivno prebrojiv .

Jasno je da je klasa rekurzivnih jezika (RCL) podklasa klase rekurzivno


prebrojivih jezika (RCEL), tj. da vrijedi sljedeća slika:

RCEL
RCL
CFL

RL

Slika 7.11
POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 319

No, postavlja se pitanje postoji li jezik koji je rekurzivno prebrojiv, a


koji nije rekurzivan ili je RCL = RCEL. Pokazat ćemo da ove dvije klase
nisu jednake, tj, da postoje rekurzivno prebrojivi jezici koji nisu rekurzivni.
Krenimo u konstrukciju jezika koji je rekurzivno prebrojiv, a nije rekurzi-
van. Ponajprije, kreirajmo koncept koji se naziva univerzalni Turingov stroj.
Univerzalni Turingov stroj kao ulaz prima par (M, w), gdje je M opis
nekog Turingovog stroja, a w riječ. On staje u stanju qT ako stroj M
primjenjen na riječ w staje u stanju qT , a ako stroj M primijenjen na riječ
w staje u stanju qF , onda staje u stanju qF . Drugim riječima, univerzalni
Turingov stroj odlučuje prihvaća li dani Turingov stroj danu riječ ili ne.
Postavlja se pitanje može li se neki Turingov stroj M = hK, Σ, S, F, δi
efikasno kodirati na traku tako da ga univerzalni Turingov stroj može ko-
ristiti kao ulaz. Bez smanjenja općenitosti možemo pretpostaviti da je
Σ = {0, 1, ., t}. Stavimo da je X1 = 0, X2 = 1, X3 = ., a X4 = t. Nadalje,
preimenujmo stanja tako da stanja stroja budu q1 , . . . , qn . Pri tome, neka
je S = q1 te qn−1 = qF i qn = qT . Nadalje, kodirajmo pomicanja trake tako
da je D1 = L i D2 = R. Na samu traku nije potrebno zapisivati niti skup
stanja, niti ulaznu abecedu, jer će oboje biti implicitno zadano preko jedinog
što ćemo zapisivati na traku: preko funkcije δ prijelaza. Za svaki prijelaz je

δ(Qi , Xj ) = (Qk , Xl , Dm )
Definirajmo sljedeći kod:

0i 10j 10k 10l 10m .


Sada je jasno da se bilo koja druga abeceda, osim one koju smo uzeli
u razmatranje može jednako lagano enkodirati na ovaj način. Neka su
c1 , . . . , cr kodovi za sve prijelaze Turingovog stroja M dobiveni na gore
opisani način. Tada se cijeli Turingov stroj M kodira kao

111c1 11c2 11 . . . 11cn 111.


Dokažimo sada neka svojstva Turingovih strojeva koja će nam trebati u
daljnjem razmatranju.
Prvo svojstvo koje ćemo dokazati smo već koristili na prethodnoj slici,
pretpostavivši da je klasa RCL ⊆ RCEL. Taj je rezultat izravna posljedica
definicija 7.15 i 7.16.

Korolar 7.2 Neka je L rekurzivan jezik. Onda je L rekurzivno prebrojiv


jezik.

Lako se dokazuje sljedeće svojstvo:

Propozicija 7.1 Neka je L rekurzivan jezik. Onda je i Lc rekurzivan jezik.


320 7.4. TURINGOVI STROJEVI

Dokaz. Neka je L rekurzivan jezik. Tada postoji Turingov stroj M koji


odlučuje o jeziku L. Konstruirajmo Turingov stroj M 0 na sljedeći način:
Turingov stroj M 0 je jednak Turingovom stroju M u svemu, osim u prijela-
zima koji prevode stroj u završno stanje. Promjene su napravljene tako da
ako stroj M prelazi u stanje qT , onda stroj M 0 prelazi u stanje qF i obrnuto.
Jasno je da će tako definirani Turingov stroj M 0 stati u stanju qF za svaku
riječ w ∈ L te da će stati u stanju qT za svaku riječ w0 6∈ L. Drugim riječima,
Turingov stroj M 0 odlučuje o jeziku Lc .
Tvrdnja prethodne propozicije jest intuitivno vrlo jasna. No, isto je tako
jasno da klasa rekurzivno prebrojivih jezika ne mora biti zatvorena s obzirom
na komplement. Takoder, intuicija nam govori, ako je klasa rekurzivno
prebrojivih jezika zatvorena s obzirom na komplement, onda je RCEL=RCL.
Naime, vrijedi sljedeći teorem:

Teorem 7.6 Neka je L jezik. L je rekurzivan ako i samo ako su L i Lc


rekurzivno prebrojivi.

Iskaz ovog teorema može se prikazati sljedećom slikom:

RCEL coRCEL

RCL

Slika 7.12

Prije no što dokažemo ovu tvrdnju, dokazat ćemo sljedeću propoziciju.

Propozicija 7.2 Neka su L1 i L2 rekurzivni (rekurzivno prebrojivi) jezici


nad istom abecedom Σ. Onda je i jezik L1 ∪ L2 rekurzivan (rekurzivno
prebrojiv).

Dokaz.
Neka su jezici L1 i L2 rekurzivni. Neka su M1 i M2 Turingovi strojevi
koji odlučuju o jezicima L1 i L2 . Tada konstruiramo Turingov stroj M kako
slijedi.
POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 321

Prvo je potrebno ulazni niz znakova na traci iskopirati u dvije kopije


kako je to napravljeno u primjeru 7.20. Dakle, M prvo mora simulirati rad
TS iz primjera 7.20.
Nakon toga M simulira rad TS M1 na prvoj kopiji ulaznog niza znakova.
No, TS M1 se za svaku riječ nakon konačno mnogo koraka zaustavlja u stanju
qT ili u stanju qF , pa će tako i simulacija. Ako bi se stroj M1 zaustavio u
stanju qT , onda i stroj M staje u stanju qT . Ako bi se TS M1 zaustavio u
stanju qF , onda TS M nastavlja s radom, simulirajući sada TS M2 na drugoj
kopiji ulaznog niza znakova. M2 takoder za svaku riječ staje u konačno
mnogo koraka u stanju qT ili pak u stanju qF . U svakom slučaju TS M u
oba slučaja staje i to u istom onom stanju u kojem staje TS M2 .
Jasno je da će TS M stati u stanju qT ako u tom stanju staje TS M1 ili
pak M2 , dok za riječi za koje i M1 i M2 staju u stanju qF , i TS M staje u
stanju qF . Dakle, TS M odlučuje o jeziku L1 ∪ L2 .
Ako su jezici L1 i L2 rekurzivno prebrojivi, onda se M konstruira malo
drugačije. Naime, tada nije sigurno da će M1 ikada stati, pa ne možemo
prvo simulirati M1 , a nakon toga M2 .
Kao i u prethodnom slučaju, i u ovom slučaju moramo ulazni niz znakova
udvostručiti na traci.
Sada ćemo simulirati rad M1 i M2 paralelno, simulirajući jedan korak TS
M1 na prvoj kopiji ulaznog niza znakova, a nakon toga jedan korak TS M2
na drugoj kopiji ulaznog niza znakova, nakon čega se opet simulira korak TS
M1 na prvoj kopiji ulaznog niza znakova itd. Jedini problem koji je kod toga
potrebno riješiti je kako zapamtiti gdje se nalazi glava za čitanje pojedine
simulacije. To se može izvesti na različite načine. Najjednostavniji je da se
za svaki simbol σ ∈ Σ u abecedi TS M definira još jedan znak σ 0 koji će
imati značenje znaka σ, ali će dodatno pokazivati da bi se glava simuliranog
TS nalazila u tom trenutku na njemu.
Ako bilo koji od Turingovih strojeva M1 i M2 prepoznaje riječ koja se
obraduje, TS M će u simulaciji doći do koraka u kojem neki od simuliranih
Turingovih strojeva staje u stanju qT . Tada i M staje u stanju qT .
Tako konstruirani TS M prepoznaje jezik L1 ∪ L2 .
Sada možemo prijeći na dokaz teorema 7.6.
Dokaz teorema 7.6. Neka je jezik L rekurzivan. Tada je on, prema
korolaru 7.2, i rekurzivno prebrojiv.
No, ako je L rekurzivan onda je prema propoziciji 7.1 i jezik Lc rekurzi-
van. U tom slučaju je, prema korolaru 7.2 jezik Lc rekurzivno prebrojiv.
Obrnuto, neka su jezici L1 i L2 rekurzivno prebrojivi. Tada postoje
Turingovi strojevi M1 i M2 koji prepoznaju riječi jezika L i Lc .
Bez smanjenja općenitosti možemo pretpostaviti da su M1 i M2 kon-
struirani tako da u slučaju da ne prepoznaju neku riječ odlaze u beskonačnu
petlju. Naime, ako neki od ovih Turingovih strojeva staje u stanju qF , ili
pak funkcija prijelaza nije definirana, možemo ga prebaciti u novo stanje,
koje za bilo koji ulaz pomiče glavu u desno i vraća se u isto stanje.
322 7.4. TURINGOVI STROJEVI

Konstruirajmo TS M na sljedeći način:


M prvo kopira ulazni niz znakova u dvije kopije kako je to opisano u
primjeru 7.20. Nakon toga, slično kao u drugom dijelu dokaza propozicije
7.2, simuliramo Turingove strojeve M1 i M2 paralelno, tako da prvo simuli-
ramo jedan korak TS M1 na prvoj kopiji ulaznog niza znakova, pa onda
jedan korak TS M2 na drugoj kopiji ulaznog niza znakova, itd. Kako za
svaku riječ w ∈ Σ∗ vrijedi da je W ∈ L ili je we ∈ Lc , to svaku riječ w ∈ Σ∗
prepoznaje ili TS M1 ili TS M2 dakle, u konačno mnogo koraka ili će se M1
ili M2 naći u stanju qT . Ako se M1 nade u stanju qT , onda i M prelazi u
stanje qT . Ako se pak M2 nade u stanju qT , onda TS M prelazi u stanje qF .
Jasno je da TS M odlučuje o jeziku L, pa je L rekurzivan.
Konačno, definirajmo problem koji je, kako će se vidjeti, rekurzivno pre-
brojiv, ali nije rekurzivan.

Problem 7.1 (Problem zaustavljanja (HP)) Neka je dan TS M i ulaz-


ni niz znakova x. Hoće li se TS M zaustaviti za ulaz x?
Drugačije definirano, neka je H jezik nad abecedom univerzalnog Tu-
ringovog stroja definiran na sljedeći način: H = {(M, x) : |M (x) 6=%}.
Pri tome s M (x) =% označavamo da TS M za ulaz x odlazi u beskonačnu
petlju. Dakle, jezik H sadrži sve riječi za koje TS M ne odlazi u beskonačnu
petlju.

Propozicija 7.3 H je rekurzivno prebrojiv.


Dokaz. TS koji prepoznaje ovaj jezik je malo promijenjen univerzalni TS.
Jedina promjena koju trebamo napraviti jest da uvijek kada on staje, prijede
u stanje qT .
HP ima još jedno vrlo važno svojstvo: on je potpun problem za klasu
rekurzivno prebrojivih problema. To znači da vrijedi sljedeći teorem, koji
nećemo dokazivati:

Teorem 7.7 RCL = RCEL ako i samo ako je HP ∈ RCL.


No, odmah se ispostavlja sljedeća tvrdnja.

Teorem 7.8 H nije rekurzivan.


Dokaz. Pretpostavimo da postoji TS MH koji odlučuje o jeziku H.
Modificirajmo MH tako da dobijemo TS MD . MD kao ulaz prima kodove
Turingovih strojeva i obraduje ih na sljedeći način: za ulaz M , TS MD
simulira rad TS MH za ulaz (M, M ) sve do trenutka kada MH treba stati.
MH sigurno mora stati zbog pretpostavke da on odlučuje o jeziku H. Ako
MH staje u stanju qT , TS MD ulazi u stanje koje će u beskonačnoj petlji
pomicati glavu za čitanje u desno. Ako MH staje u stanju qF , onda MD
staje u stanju qT .
POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 323

Sada se postavlja pitanje što je MD (MD )?


Ako je MD (MD ) =%, to, po definiciji TS MD znači da MH prihvaća
riječ (MD , MD ). Dakle, (MD , MD ) ∈ H. No tada po definiciji od H vrijedi
da je (MD (MD ) 6=%.
Dakle, MD (MD ) 6=%. Tada, prema definiciji od MD TS MH odbacuje
riječ (MD , MD ). Dakle, (MD , MD ) 6∈ H. No tada, prema definiciji od H
vrijedi da je MD (MD ) =%.
Dakle, ovakav TS MD ne može postojati. No, ako je H rekurzivan, onda
je MD dobro definiran, pa se zaključuje da H ne može biti rekurzivan.
Dajmo, za kraj ovog poglavlja, još nekoliko jezika koji su rekurzivno
prebrojivi, a nisu rekurzivni.

Propozicija 7.4 Sljedeći jezici nisu rekurzivni:

1. {M |M se zaustavlja za sve ulaze}

2. {(M, x)| postoji y takav da je M (x) = y}.

3. {(M, x, y)|M (x) = y}.

Dokaz. Izvedite da sami. Reducirajte te probleme na HP.


Interesantno je vidjeti što će se dogoditi uvedemo li nedeterministički
Turingov stroj i kakva će biti klasa jezika koju će on prepoznavati s obzirom
na klasu jezika koju prepoznaje deterministički Turingov stroj.
Jasno je kako se definira nedeterministički Turingov stroj (NTS): tako
da se δ definira kao relacija prijelaza, a ne kao funkcija. No, pokazuje se da
se, što se tiče klase jezika o kojoj automat odlučuje, ne dobiva ništa nova.
Naime, vrijedi sljedeći teorem.

Teorem 7.9 Neka za jezik L postoji nedeterministički Turingov stroj M1


koji ga prihvaća (koji o njemu odlučuje). Tada postoji deterministički
Turingov stroj koji prihvaća jezik L (odlučuje o njemu).
Ovaj teorem se može dokazati na razne načine, no svi zahtjevaju uvode-
nje dodatnih automata preko kojih se uspostavlja ekvivalencija. Najlakše se
ekvivalencija uspostavlja preko determinističkih Turingovih strojeva s više
traka (VTTS). Tada se dokazuje da vrijedi T S ⇔ V T T S ⇔ N T S. No ovo
bi razmatranje znatno proširilo ovo poglavlje, za što nema potrebe. Oni koji
su zainteresirani, ovaj dokaz, kao i svu potrebnu aparaturu koju treba uvesti
za dokaz mogu pronaći u [3].
No, uvodenje nedeterminističkih Turingovih strojeva dovodi nas do druge
zanimljive stvari u teoriji algoritama. Označimo li s P klasu svih proble-
ma koji su rješivi u polinomno mnogo koraka determinističkog Turingovog
stroja s obzirom na veličinu ulaza, a s N P klasu svih onih koji su rješivi u
polinomno mnogo koraka nedeterminističkog Turingova stroja s obzirom na
veličinu ulaza. Prirodno se postavlja pitanje, koje je jedno od najpoznatijih
324 7.5. ZADACI

nerješenih problema današnje matematike: pitanje vrijedi li P = N P ? Ovo


pitanje već desetljećima pokušava riješiti velik broj matematičara. Jasno je
da je P ⊆ N P , no postoje klase problema za koje se lako dokazuje da se
nalaze u klasi N P , ali za koje ne postoji algoritam koji bi pokazao da su u
klasi P .
Ovdje se, zapravo, radi o definiciji vremenske složenosti algoritama na
Turingovom stroju. Nadalje, interesantno je, takoder, da vrijedi da ako je
Turingova složenost nekog problema (najmanja složenost koju može postići
TS rješavajući taj problem) Θ(f (n)), onda će algoritamska složenost tog
problema (u smislu računalnih programa, kako je definirano u poglavlju 4)
takoder Θ(f (n)).
Tijekom tog istraživanja došlo se do nekih interesantnih rezultata, a
jednim od najznačajnijih završit ćemo ovo poglavlje:
Taj se rezultat veže uz jedan istaknuti problem koji se zove problem
ispunjivosti propozicijske formule u konjunktivnoj normalnoj formi (SAT):

Problem 7.2 (SAT)


Neka je zadana formula računa sudova (sud) F u konjunktivnoj normalnoj
formi. Postoji li interpretacija i takva da je i(F ) = 1?

Teorem 7.10 (Cook) P = N P ako i samo ako je SAT ∈ P .

Dokaz ovog teorema provodi se dokazivanjem da se svaki Turingov stroj


M i svaki ulaz w poveže s nekom formulom računa sudova u konjunktivnoj
normalnoj formi s najviše tri literala po konjunktu koja je ispunjiva ako i
samo ako M prihvaća w. Takoder se pokazuje da se takva formula može
pronaći u polinomno mnogo koraka s obzirom na veličinu ulaza (M, w).
Postoji li TS (algoritam) koji može u polinomno mnogo koraka riješiti
problem SAT , on će moći zajedno s TS koji u polinomno mnogo koraka
generira formulu F , za svaki TS M i ulaz w odrediti prihvaća li M ulaz w i
to u polinomnom vremenu. Detalje ovog dokaza možete naći u [6].

7.5 Zadaci
1. Napravite determinističke konačne automate koji prihvaćaju sljedeće
jezike nad abecedom {0, 1}:

(a) Skup svih nizova znakova koji započinju s 00 ili završavaju s 11.
(b) Skup svih nizova znakova koji u sebi sadrže tri uzastopne jedinice.
(c) Skup svih nizova znakova koji imaju kao 10 znak broj 1.

2. Konstruirajte DKA koji je ekvivalentan sa sljedećim NKA:


POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 325

0,1 0
q0

q1

0,1

q2
q3
0

Slika 7.13

3. Konstruirajte DKA koji je ekvivalentan sa sljedećim NKA:

1
0,1
q0

q1
0
1 0,1
1

q2
q3
0

Slika 7.14

4. Napravite DKA koji prepoznaje jezik opisan sljedećim regularnim izra-


zom:

(a) (11|0) ∗ (00|1)∗


(b) 01[((10) ∗ |111) ∗ (ε|0|00]∗
(c) ((0|1)(0|1)) ∗ |((0|1)(0|1)(0|1))∗

5. Dokažite sljedeće tvrdnje.

(a) rs = st
(b) (rs)t = r(st)
326 7.5. ZADACI

(c) r|s = s|t


(d) (r|s)|t = r|(s|t)
(e) r(s|t) = rs|rt
(f) (r∗)∗ = r∗
(g) (r ∗ s∗)∗ = (r|s)∗

6. Koji su od sljedećih jezika regularni?

(a) {02n |n ≥ 1}
(b) {0m 1n 0m+n |m ≥ 1, n ≥ 1}
(c) {0n |n je prost broj}

7. Pokažite da jezik L = {0i 1j |M (i, j) = 1} nije regularan.

8. Napravite kontekstno slobodnu gramatiku za jezik L = {x|x je palin-


drom}.

9. Napravite kontekstno slobodnu gramatiku koja će nad skupom Σ =


{), (} prepoznavati izraze koji predstavljaju dobro uparivanje zagrada.

10. Jezik koji se sastoji od dobro definiranih regularnih izraza na d jezikom


Σ = {a, b, |, (, +, (, ), ε, ∅}.

11. Napravite potisni automat za sljedeću gramatiku:

S → aAA
A → aS
A → bS
A→a

12. Dokažite da postoji nedeterministički potisni automat koji prepoznaje


jezik L = {0n 1n |n ∈ N} ∪ {0n 12n |n ∈ N}, ali i da ne postoji determi-
nistički potisni automat koji bi prepoznavao taj jezik.

13. Pokažite da sljedeći jezici nisu kontekstno slobodni:

(a) L = {ai bj ck |i < j < k},


(b) L = {ai bj |j = i2 },
(c) {ai |i prost broj}.

14. Napravite Turingove strojeve koji prepoznaju sljedeće jezike:

(a) L = {0n 1n 0n |n ∈ N}.


POGLAVLJE 7. MATEMATIČKA TEORIJA RAČUNALSTVA 327

(b) Jezik koji se sastoji od riječi s jednakim brojem znakova 0 i 1.

15. Napravite Turingov stroj koji će vršiti sljedeća izračunavanja:

(a) n + m ako su n i m brojevi zapisani u binarnom zapisu.


(b) n · m ako su n i m brojevi zapisani u binarnom zapisu.
(c) n2 za n zapisan u binarnom zapisu.
(d) Dvostruki komplement broja u binarnom zapisu.
(e) n ∨ m ako su n i m brojevi zapisani u binarnom zapisu.
(f) n ∧ m ako su n i m brojevi zapisani u binarnom zapisu.

7.6 Projekti
1. Napravite računalni program koji će kao ulaz uzimati datoteku u koju
je zapisana definicija Turingovog stroja i ulazni niz znakova. Program
treba simulirati rad Turingovog stroja i vratiti izlazni niz znakova i
stanje u kojem je stao.

2. Proučite gramatike definitnih klauzula koje su dio programskog jezika


Prolog, usporedite ih s kontekstno slobodnim gramatikama. Odredite
koja se klasa jezika može opisati gramatikama definitnih klauzula.

3. Proučite nedeterminističke Turingove strojeve i pokažite da nedeter-


ministički Turingov stroj prepoznaje istu klasu jezika kao i determini-
stički Turingov stroj.

4. Proučite Turingove strojeve s više traka i nedeterminističke Turingove


strojeve. Pokažite da oni prepoznaju istu klasu jezika - klasu rekur-
zivno prebrojivih jezika. Takoder, pokažite da oni odlučuju o klasi
rekurzivnih jezika. Drugim riječima, pokažite da su oni ekvivalentni
Turingovim strojevima.

5. Dokažite Cookov teorem.


328 7.6. PROJEKTI
Bibliografija

[1] Atallah, M. J. (ed.) (1999): Algorithms and Theory of Computation


Handbook, CRC Press

[2] Hemaspaandra, L. A., Ogihara, M. (2002): The Complexity Theory


Companion, Springer Verlag

[3] Hopcroft, J. E.; Ullman, J. D. (1979): Introduction to Automata The-


ory, Languages, and Computation, Addison-Welsey

[4] Leeuwen, J. van (ed.) (1990): Handbook of Theoretical Computer Sci-


ence. Volume B: Formal Models and Semantics, MIT Press

[5] Lewis, H. R.; Papadimitriou, C. H. (1981): Elements of the Theory of


Computation, Prentice-Hall International

[6] Papadimitriou, C. H. (1994): Computational Complexity, Addison-


Wesley

329
Predmetno kazalo

abeceda, 29, 294 suprotni element, 256


aditivni inverz, 57 zatvorena, 255
alfabet, 294 binarne riječi, 267
algoritam, 125 binomni poučak, 96
Dijkstrin, 210 bitovi, 267
Euklidov, 126 bojenje bridova, 240
Fleuryjev, 212 bojenje vrhova, 237
Hornerov, 128 broj klike, 239
Kruskalov, 223
pretraživanje Cayleyeva tablica, 254
binarno, 141 Churchova hipoteza, 126
slijedno, 139 ciklus, 200
Primov, 224 Hamiltonov, 208
sortiranje
čvor, 49
izborom, 145
mjehuričasto, 153 digraf, 226
pomoću hrpe, 158 disjunkt, 27
pomoću pretinaca, 183 diskretni vjerojatnosni prostor, 97
prebrojavanjem, 180 distribucija slučajne varijable, 110
quicksort, 168 dogadaj
radix, 181 nemoguć, 97
spajanjem, 155 potpuni sustav, 105
umetanjem, 150 siguran, 97
zamjenom, 147 dokaz
antitautologija, 21, 32 direktni, 7
aritmetički niz, 79 po kontrapoziciji, 7, 24
razlika, 79 protuprimjer, 8
atom, 30 donja meda, 73
atomarna formula, 30 Duljina ciklusa, 243
duljina riječi, 294
bijekcija, 71
binarna operacija, 254 ekvivalencija, 7, 20
asocijativna, 255 ekvivalentne tvrdnje, 12
komutativna, 257
neutralni element, 255 F-sustav, 23

330
BIBLIOGRAFIJA 331

Fitchov sustav, 23 bipartitan, 196


formula, 30 Hamiltonov, 208
ekvikontradiktornost, 37 izomorfizam, 198
ispunjiva, 32 jednostavan, 194
otklonjiva, 32 komponente povezanosti, 201
zatvorena, 30 konačan, 194
fundamentalni teorem aritmetike, Petersenov, 199
68 planaran, 194
funkcija, 69, 71 potpuni, 194
algebarska, 72 potpuni bipartitan, 196
iracionalna, 72 povezan, 201
racionalna, 72 regularan, 199
bijekcija, 71 skup bridova, 193
dekodirajuća, 268 skup vrhova, 193
graf, 73 težinski, 210
homografska, 73 usmjereni, 226
identiteta, 70 gramatika
implicitno zadana, 73 kontekstno slobodna, 298
injekcija, 71 grupa, 257
inverzna, 71 Abelova, 257
kodirajuća, 268 ciklička, 258
kompozicija, 70 dihedralna, 288
konstantna, 71 izomorfizam, 263
lokalni ekstremi, 74 Kleinova 4-, 289
monotona, 74 kodova, 270
neparna, 72, 74 komutativna, 257
ograničena, 73 morfizam, 264
ograničena odozdo, 73 permutacija, 259
ograničena odozgo, 73 red, 257
padajuća, 74 simetrična, 259
parna, 72, 74
periodična, 74 Hammingova udaljenost, 267, 268
racionalna, 72 hrpa, 158
rastuća, 74
realna realne varijable, 72 identiteta, 70
strogo padajuća, 74 incidentan brid, 194
strogo rastuća, 74 incidentni vrhovi bridu, 194
surjekcija, 71 injekcija, 71
transcedentna, 72 instanca, 38
instanca masovnog problema, 126
generator grupe, 258 integralna domena, 279
geometrijski niz, 80 interpretacija, 19
gornja meda, 73 inverzija, 72
graf, 193 izomorfizam grafova, 198
332 BIBLIOGRAFIJA

izvod, 25 luk, 49
izvor, 232
maksimalna vrijednost, 74
jezik, 295 masovni problem, 126
deterministički kontekstno matematička indukcija, 9
slobodan, 313 jaka, 10
odlučiv, 318 matematička struktura, 2
rekurivno prebrojiv, 318 matematičko očekivanje, 109
rekurzivan, 318 matrica, 36
kapacitet reza, 234 matrica incidencije, 204
Kartezijev kvadrat, 49 matrica izvodnica, 272
Kartezijev produkt, 48, 49 matrica permutacija, 207
klasa ekvivalencije, 52 matrica susjedstva, 204
klika, 239 max-hrpa, 166
kod metrika, 268
ciklički, 285 min-hrpa, 166
linearni, 270 minimalna udaljenost koda, 269
sistematičan, 268 minimalna vrijednost, 74
kodne riječi, 268 model, 32
kombinacija modus ponens, 25
bez ponavljanja, 95 modus tollens, 26, 29
ponavljanjem, 95 monoid, 257
konačni automat most, 203
deterministički, 299 mreža
nedeterministički, 303 usmjerena, 228
nedeterministički s ε prijelaz-
ima, 305 nadgraf, 222
konjunktivna normalna forma, 27 najkraći put, 210
kontrapozicija, 6 najmanja gornja meda, 66
kontrolna matrica, 273 najmanji zajednički višekratnik,
kontrolni bit, 268 68
korijen, 216 najveća donja meda, 66
kritični put, 229, 231 najveća zajednička mjera, 68
kromatski broj, 237, 240 najveći zajednički djelitelj, 68
kvaternioni, 289 nulgraf, 193
nultočka, 73
lema o rukovanju, 197
list, 215 odlučivanje praznim stogom, 308,
literal, 27 309
negativni, 27 odlučivanje završnim stanjem,
pozitivni, 27 308, 309
logička posljedica, 20 ograničenje varijabli, 31
lokalni maksimum, 74 optimalni ciklus, 209
lokalni minimum, 74 osnovni period, 74
BIBLIOGRAFIJA 333

partikularno rješenje, 86 podijeli pa ovladaj, 89


period, 74 relacija
permutacija, 72, 93 antisimetrična, 62
s ponavljanjem, 94 asimetrična, 62
petlja, 194 binarna, 49
podgraf, 222 dualna, 51
razapinjući, 222 ekvivalencije, 51
podgrupa, 260 irefleksivna, 62
ciklička, 262 komplement, 51
trivijalna, 260 kompletna, 62
podriječ, 295 obrat, 51
polinom, 72 redukcija, 55
polje, 279 strogo kompletna, 62
konačno, 279 uredaja, 63
realnih brojeva, 278 -kvazi, 63
polugrupa, 257 dobrog, 65
ponor, 232 parcijalnog, 63
potisni automat parijalnog, 63
deterministički, 307 slabog, 63
nedeterministički, 308 totalnog, 63
prefiks, 36, 295 relativno prosti brojevi, 68
primitivna normalna forma, 36 rez, 234
princip dobrog uredaja, 69 rezolucija, 27
problem rasporeda, 229 hiper-, 29
proces, 2 linearna, 29
projektivna geometrija, 289 semantička, 29
prost broj, 68 rezolventa, 39
prostor elementarnih dogadaja, 97 rečenica, 30
protok, 232 riječ, 294
prošireno ograničenje varijabli, 31 konkatenacija, 294
prsten, 276 prazna, 294
komutativan, 276
pseudograf, 194 Skolemova normalna forma, 36
put, 200 skup
Hamiltonov, 208 beskonačan, 78
ekvivalentan, 77
red elementa grupe, 258 kardinalni broj, 78
refutacija, 28 konačan, 78
regularni izraz, 295 kvocijentni, 53
rekurzivna definicija, 10 neprebrojiv, 78
rekurzivna jednadžba parcijalno uredeni, 63
karakteristična jednadžba, 82 particija, 52
linearna homogena, 82 prebrojiv, 78
linearna nehomogena, 82 prebrojivo beskonačan, 78
334 BIBLIOGRAFIJA

totalno uredeni, 64 susjedni bridovi, 194


univerzalni, 46 susjedni vrhovi, 194
uzoraka, 97
složenost algoritma šetnja, 200
najbolji slučaj, 132 ciklus, 200
najgori slučaj, 132 usmjerena, 227
prosječni slučaj, 132 zatvorena, 200
prostorna, 130 šuma, 215
vremenska, 130
tautologija, 21, 32
slučajna varijabla
teorija kodiranja, 265
binomna, 107
term
diskretna uniformna, 107
temeljni, 38
hipergeometrijska, 109
težina riječi, 270
indikatorska, 114
težina stabla, 223
slučajni pokus, 97
tura
sparivanje, 242
Eulerova, 202
maksimalno, 242
Turingov stroj, 314
savršeno, 242
nedeterministički, 323
stablo, 215
s više traka, 323
binarno, 217
univerzalni, 319
binarno pretraživanja, 218
tvrdnja o egzistenciji, 7
izvoda, 310
korijensko, 216 unifikacija, 38
potpuno, 218 unifikator, 38
razapinjuće, 222 maksimalni, 38
soritranja, 218 univerzalna tvrdnja, 7
uredeno binarno, 217 uredena n-torka, 49
standardna devijacija, 114 uredeni par, 49
staza, 201
Eulerova, 201 valuacija, 38
Stirlingovi brojevi, 53 varijabla
strogi lokalni maksimum, 74 slobodna, 30
strogi lokalni minimum, 74 u dosegu, 30
struk, 243 varijacija
struktura bez ponavljanja, 94
semantička, 31 s ponavljanjem, 94
stupanj vrha, 196 varijanca, 114
sud, 5 vektorski prostor, 281
ispunjiv, 21 polinoma, 286
izvediv, 25 vjerojatnost
otklonjiv, 21 uvjetna, 104
složeni, 6 vrijednost protoka, 233
sufiks, 295
surjekcija, 71 zbroj kodnih riječi, 270

You might also like