150 88 5MB
Croatian Pages 344
Diskretna matematika s teorijom grafova Blaˇzenka Divjak
Alen Lovrenˇci´c
Varaˇzdin, 2005.
Predgovor Ova je knjiga nastala u ˇzelji da se kolegij Diskretne strukture s teorijom grafova, koji autori predaju na poslijediplomskom studiju informacijskih znanosti na Fakultetu organizacije i informatike Sveuˇciliˇsta u Zagrebu od 2002. godine, opermi prikladnom literaturom. Stoga je ova knjiga prilagodena studentima kojima je glavno podruˇcje izuˇcavanja informatika, i to ne samo onima koji studiraju na Fakultetu organizacije i informatike. Grada ove knjige birana je tako da daje skup matematiˇckih formalizama koji imaju ˇsiroku primjenu u informatici i raˇcunalstvu. Stoga ova knjiga moˇze biti od pomo´ci i inˇzenjerima koji se profesionalno bave raˇcunarstvom i informatikom. Zbog toga autorima nije bio glavni cilj da uvijek, pod svaku cijenu gradivo predoˇce u svoj matematiˇckoj strogosti i sa svim matematiˇckim aspektima koji se mogu razmatrati. Odrˇzavˇsi dovoljno matematiˇcke egzaktnosti, autori su pokuˇsali gradivo izloˇziti tako da ga bude ˇsto lakˇse primijeniti na konkretne probleme, koji se u informatici i raˇcunalstvu susre´cu.
Sadrˇ zaj knjige Prvo poglavlje ove knjige je naslovljeno Uvod, i predstavlja skup osnovnih pojmova koje je nuˇzno definirati da bi sljede´ca poglavlja mogla biti korektno predstavljena. Ona sadrˇzi opis metoda koje se koriste u matematici, modela te op´cenite tehnike koje matematiˇcari koriste u dokazivanju. Uvodno je poglavlje napisala Blaˇzenka Divjak. Sljede´ce poglavlje predstavlja produˇzetak prvog, uvodnog poglavlja i donosi opis matematiˇcke logike, a isto tako dva formalna dedukcijska sustava - 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 dokazivanje teorema pomo´cu raˇcunala. Poglavlje o matematiˇckoj logici napisao je Alen Lovrenˇci´c. U tre´cem poglavlju se uvode pojmovi koji pripadaju diskretnoj matematici - relacije, funkcije, skupove, pojam rekurzivne jednadˇzbe, rjeˇsavanje rekurzivnih jednadˇzbi, te na kraju, diskretnu teoriju vjerojatnosti. Ovo je poglavlje napisala Blaˇzenka Divjak, osim dijelova o rekurzijama i diskretne i
ii teorije vjerojatnosti, koje je napisao Alen Lovrenˇci´c. Ovo je ujedno i poglavlje koje sadrˇzi raznolike sadrˇzaje - sve ono iz podruˇcja diskretne matematike ˇsto se intenzivno koristi u informatici i raˇcunalstvu. U ˇcetvrtom se poglavlju obraduje vrlo vaˇzan pojam, kako u matematici, tako i u raˇcunalstvu i informatici - pojam algoritma. Poglavlje se sastoji od tri dijela. U prvom se dijelu uvodi i objaˇsnjava pojam algoritma. Drugi dio daje pregled teorije sloˇzenosti algoritama, dok je tre´ci dio primjeran i daje algoritme iz jednog vrlo vaˇznog podruˇcja - podruˇcja pretraˇzivanja i sortiranja niza elemenata. Ovo je poglavlje napisao Alen Lovrenˇci´c. Peto poglavlje daje teoriju grafova, koja je iznimno vaˇzna i koriˇstena matematiˇcka teorija u raˇcunarstvu i informatici, ali i u mnogim drugim znanstvenim i struˇcnim granama. Poglavlje sadrˇzi niz vrlo vaˇznih problema, kako u informatici i raˇcunarstvu, tako i u drugim srodnim granama, od problema pronalaˇzenja puteva, ˇsetnji i ciklusa te razapinju´cih stabala, pa do protoka i rezova te bojenja vrhova i bridova grafa. Autor ovog poglavlja je Blaˇzenka Divjak. ˇ Sesto poglavlje daje opis osnovnih algebarskih struktura. One su znaˇcajne u teoriji raˇcunalstva, optimizaciji, teoriji algoritama, teoriji inteligentnih agenata itd. Algebarske strukture su matematiˇcki okvir u koji se, zbog njihovih dobro definiranih svojstava uklapaju mnogi problemi, koji na taj naˇcin dobijaju novi kut glediˇsta pa se tako ˇcesto dobijaju novi rezultati vezani uz problem. Ovo je poglavlje napisala Blaˇzenka Divjak. Posljednje poglavlje je zamiˇsljeno, na neki naˇcin, kao poanta cijele knjige. Ono sadrˇzi matematiˇcki sadrˇzaj, koji je nastao tijekom godina iz pokuˇsaja da se matematiˇcki opiˇse intuitivni pojam algoritma. Tako je nastala cijela teorija automata i jezika, ˇcije su osnove opisane u ovom poglavlju. No, ovo poglavlje ima joˇs jednu vaˇznost za ovu knjigu - ono na neki naˇcin opravdava izbor sadrˇzaja cijele knjige, koriste´ci mnogo od prije opisanog sadrˇzaja. Ovo zavrˇsno poglavlje napisao je Alen Lovrenˇci´c.
Kako koristiti knjigu Ova knjiga sadrˇzi zaista razliˇcite matematiˇcke sadrˇzaje, koji se mogu zasebno prouˇcavati. Pri tome ne ˇzelimo re´ci 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ˇzna da bi zahtjevala slijedno prouˇcavanje sadrˇzaja. ˇ Stoviˇ se, tre´ce poglavlje napisano je tako da se njegova podpoglavlja mogu ˇ se tiˇce ostalih poglavlja, ona, uglavnom, zai sama izuˇcavati zasebno. Sto htjevaju slijedno prouˇcavanje. Neki su dijelovi knjige napisani manjim slovima. To su dijelovi koji se odnose na nadogradnje osnovnog materijala i na naprednije gradivo, koje se moˇze izostaviti kod prvog ˇcitanja. Ti se dijelovi nikako ne mogu smatrati nevaˇznima, ve´c onima koji zahtjevaju ve´ci angaˇzman i detaljnije poznavanje
PREDGOVOR
iii
podruˇcja. Pri izlaganju teksta su neki dijelovi izostavljeni i ostavljeni za samostalan rad ˇcitatelja, bilo kao zadaci unutar teksta, bilo kao izostavljeni dokazi ili problemi. U svakom sluˇcaju, izostavljeni dijelovi su paˇzljivo odabrani, tako da bi ih ˇcitatelj tijekom ˇcitanja morao mo´ci bez ve´cih problema i priprema samostalno izraditi. Autori preporuˇcuju da se zadaci unutar teksta, kao i dokazi za koje je napomenuto da su ostavljeni za samostalan rad ˇcitatelju, svakako tijekom ˇcitanja izrade, jer na taj naˇcin ˇcitatelj ve´c tijekom samog ˇcitanja poˇcinje baratati pojmovima koje prouˇcava, ˇsto znatno pove´cava njihovu razumljivost. Na kraju svakog poglavlja nalaze se zadaci. Zadaci pokrivaju sadrˇzaj poglavlja uz koje su vezani i svakako se preporuˇcuje da se zadani zadaci rijeˇse. Oni ne sluˇze samo za ponavljanje gradiva poglavlja, ve´c djelomiˇcno i nadograduju sadrˇzaj. Zadaci mogu ˇcitatelju pokazati koliko je zaista shvatio ono ˇsto je proˇcitao, ali mu mogu i dodatno objasniti neke detalje koji iz samog teksta nisu bili jasni. Osim toga, svako je poglavlje opskrbljeno i problemima. Od ˇcitatelja se ne oˇcekuje da izradi rjeˇsenje svakog problema u knjizi, jer su problemi zamiˇsljeni kao studijski zadaci, koji zahtjevaju duˇzi rad detaljnije prouˇcavanje literature i dublje upoznavanje podruˇcja na koje se odnose. Svakako, ovi problemi su pogodni za izradu seminarskih radova studenata koji sluˇsaju kolegije koji pokrivaju podruˇcje opisano u ovoj knjizi, ali oni predstavljaju i ideje za daljnji samostalan rad svim ˇcitateljima zainteresiranim za nadogradnju znanja iz danog podruˇcja. Svako poglavlje ima i literaturu koja je koriˇstena pri izradi sadrˇzaja, ali koja isto tako predstavlja smjernice za daljnji rad ˇcitateljima koji su posebno zainteresirani za sadrˇzaj dotiˇcnog poglavlja.
Zahvale i pokude Uobiˇcajeno je da se u predgovoru popiˇsu ljudi koji su autorima pomogli u izdavanju knjige te da se pokude autori ˇsto je u knjizi ostalo joˇs pogreˇsaka i ˇsto su neki sadrˇzaji moˇzda ostali nedovoljno pokriveni, pa ´cemo se i mi drˇzati tog obiˇcaja. No, uprkos naˇsem pristajanju na obiˇcaj, napravit ´cemo, matematiˇcki reˇceno, inverziju, pa ´cemo na poˇcetku zahvaliti naˇsim obiteljima. Oni su nas podupirali pri pisanju ove knjige, ˇcesto i ne znaju´ci toˇcno o ˇcemu se radi, imaju´ci puno povjerenje u nas i ono ˇsto radimo, odriˇcu´ci se onoga ˇsto im pripada - naˇse paˇznje. ˇ Zahvaljujemo naˇsim recenzentima Mirku Cubrilu, Tihomiru Hunjaku i Mariu Krni´cu (abecednim redom) koji su svojim sugestijama doprinijeli poboljˇsanju ove knjige, ali koji su, isto tako, garantiraju´ci svojim imenima kvalitetu ove knjige, omogu´cili da ona bude izdana. Knjiga je izdana uz
iv potporu projekta TEMPUS ”Aspects of Information and Organization Systems: Curriculum Development” (CD-JEP-16086-2001), na kojem su oba autora predano radila. Zahvaljujujemo naˇsim izdavaˇcima: Fakultetu organizacije i informatike i TIVA-i. Posebno zahvaljujemo Mireli Ostroˇski, na ˇcitenju teksta i na izradi nekih zadataka, te Renati Horvatek, koja je napravila lekturu teksta. Na kraju, sve pokude za pogreˇske koje su ”opstale” nakon svih isˇcitavanja knjige, nedostatke teksta, nejasno´ce i bilo koje probleme na koje ´ce ˇcitatelj nai´ci zadrˇzavamo iskljuˇcivo za sebe. Svim ˇcitateljima ˇzelimo ugodan i plodonosan rad uz ovu knjigu. B. Divjak, A. Lovrenˇci´c Varaˇzdin, 2005.
Sadrˇ zaj Predgovor
i
1 Uvod 1.1 Matematiˇcke metode i modeli . . . . . . . . . . . . . . . . . . 1.1.1 Znanstvena metoda . . . . . . . . . . . . . . . . . . . 1.1.2 Matematiˇcki model . . . . . . . . . . . . . . . . . . . . 1.1.3 Struktura matematike . . . . . . . . . . . . . . . . . . 1.2 Tehnike dokazivanja u matematici . . . . . . . . . . . . . . . 1.2.1 Sudovi i matematiˇcka logika kao okvir za matematiˇcke tvrdnje . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.2 Dokazivanje matematiˇckih tvrdnji . . . . . . . . . . . 1.2.3 Matematiˇcka indukcija i skup prirodnih brojeva . . . . 1.2.4 Princip dobrog uredaja u skupu N . . . . . . . . . . . 1.3 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 2 3 5 5 7 8 11 12
2 Matematiˇ cka logika 2.1 Raˇcun sudova . . . . . . 2.1.1 Sintaksa . . . . . 2.1.2 Semantika . . . . 2.2 Predikatni raˇcun . . . . 2.2.1 Sintaksa . . . . . 2.2.2 Semantika . . . . 2.2.3 Formalni sustavi 2.3 Zadaci . . . . . . . . . . 2.4 Projekti . . . . . . . . .
. . . . . . . . .
17 18 18 19 29 29 31 33 40 41
. . . . . .
45 46 46 46 47 47 48
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
3 Diskretna matematika 3.1 Skupovi . . . . . . . . . . . . . . . 3.1.1 Zadavanje skupa . . . . . . 3.1.2 Relacije medu skupovima . 3.1.3 Partitivni skup . . . . . . . 3.1.4 Operacije na skupovima . . 3.1.5 Kartezijev produkt skupova v
. . . . . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
ˇ SADRZAJ
vi 3.2
Binarne relacije . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Binarne relacije na diskretnim skupovima . . . . . . . 3.2.2 Obrat relacije, komplement relacije i dualna relacija . 3.3 Relacija ekvivalencije . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Definicija i svojstva relacija ekvivalencije . . . . . . . 3.3.2 Kongruencije . . . . . . . . . . . . . . . . . . . . . . . 3.3.3 Aritmetika u Zk . . . . . . . . . . . . . . . . . . . . . 3.3.4 Joˇs neka svojstva binarnih relacija . . . . . . . . . . . 3.4 Uredajne binarne relacije . . . . . . . . . . . . . . . . . . . . 3.4.1 Relacija parcijalnog uredaja . . . . . . . . . . . . . . . 3.4.2 Relacija djeljivosti na skupu cijelih brojeva . . . . . . 3.5 Funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.1 Kompozicija funkcija . . . . . . . . . . . . . . . . . . . 3.5.2 Bijekcija. Inverzna funkcija . . . . . . . . . . . . . . . 3.5.3 Funkcije kao relacije . . . . . . . . . . . . . . . . . . . 3.5.4 Realne funkcije realne varijable . . . . . . . . . . . . . 3.6 Graf funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.1 Neka svojstva realnih funkcija realne varijable . . . . 3.6.2 Konaˇcni i beskonaˇcni skupovi . . . . . . . . . . . . . . 3.7 Rekurzivne relacije . . . . . . . . . . . . . . . . . . . . . . . . 3.7.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7.2 Rjeˇsavanje rekurzija - karakteristiˇcna jednadˇzba . . . 3.7.3 Rjeˇsavanje rekurzivnih jednadˇzbi - funkcije izvodnice . 3.8 Diskretna teorija vjerojatnosti . . . . . . . . . . . . . . . . . . 3.8.1 Osnove kombinatorike . . . . . . . . . . . . . . . . . . 3.8.2 Osnovne definicije i teoremi diskretne teorije vjerojatnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8.3 Uvjetna vjerojatnost . . . . . . . . . . . . . . . . . . . 3.8.4 Sluˇcajne varijable . . . . . . . . . . . . . . . . . . . . . 3.9 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10 Projekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49 49 51 51 51 54 60 62 63 63 67 69 70 71 71 72 73 73 78 79 79 82 91 93 93 97 104 107 115 121
4 Algoritmi 125 4.1 Pojam algoritma . . . . . . . . . . . . . . . . . . . . . . . . . 125 4.2 Sloˇzenost algoritama . . . . . . . . . . . . . . . . . . . . . . . 130 4.3 Pretraˇzivanje i sortiranje . . . . . . . . . . . . . . . . . . . . . 139 4.3.1 Pretraˇzivanje . . . . . . . . . . . . . . . . . . . . . . . 139 4.3.2 Sortiranje . . . . . . . . . . . . . . . . . . . . . . . . . 145 4.3.3 Donja meda sloˇzenosti algoritama usporedivanja i sortiranja temeljenih na usporedivanju . . . . . . . . . . 176 4.3.4 Sortiranje u vremenu O(n) . . . . . . . . . . . . . . . 179 4.4 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 4.5 Projekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
ˇ SADRZAJ 5 Teorija grafova 5.1 Definicija grafa i osnovna svojstva . . . . 5.2 Izomorfizam grafova . . . . . . . . . . . . 5.3 Regularni grafovi . . . . . . . . . . . . . . ˇ 5.4 Setnje i ciklusi u grafu . . . . . . . . . . . 5.4.1 Eulerova staza . . . . . . . . . . . 5.5 Matrica incidencije i matrica susjedstva . 5.6 Hamiltonovi ciklusi . . . . . . . . . . . . . 5.7 Teˇzinski grafovi. Algoritmi najkra´ceg puta 5.7.1 Dijkstrin algoritam . . . . . . . . . 5.7.2 Problem kineskog poˇstara . . . . . 5.8 Stabla . . . . . . . . . . . . . . . . . . . . 5.8.1 Osnovno o stablima . . . . . . . . 5.8.2 Binarno stablo . . . . . . . . . . . 5.8.3 Minimalno razapinju´ce stablo . . . 5.8.4 Pretraˇzivanje stabla . . . . . . . . 5.9 Usmjereni grafovi i mreˇze . . . . . . . . . 5.9.1 Usmjereni graf . . . . . . . . . . . 5.9.2 Turnir . . . . . . . . . . . . . . . . 5.9.3 Mreˇze i kritiˇcni putevi . . . . . . . 5.9.4 Problem rasporeda . . . . . . . . . 5.9.5 Protoci i rezovi . . . . . . . . . . . 5.9.6 Max-flow min-cut teorem . . . . . 5.10 Bojenje grafova . . . . . . . . . . . . . . . 5.10.1 Problem ˇcetiri boje . . . . . . . . . 5.10.2 Bojenje vrhova grafa . . . . . . . . 5.10.3 Bojenje bridova grafa . . . . . . . 5.11 Sparivanje u grafovima . . . . . . . . . . . 5.12 Zadaci . . . . . . . . . . . . . . . . . . . . 5.13 Projekti . . . . . . . . . . . . . . . . . . .
vii
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
191 192 197 199 200 201 204 208 209 210 212 214 215 217 222 224 226 226 227 228 228 231 233 236 236 237 240 242 242 248
6 Algebarske strukture 6.1 Definicija i primjeri algebarskih struktura . . . 6.2 Grupe . . . . . . . . . . . . . . . . . . . . . . . 6.2.1 Definicija grupe . . . . . . . . . . . . . . 6.2.2 Konaˇcne i cikliˇcke grupe . . . . . . . . . 6.2.3 Primjeri grupa . . . . . . . . . . . . . . 6.2.4 Podgrupe . . . . . . . . . . . . . . . . . 6.3 Izomorfizam grupa . . . . . . . . . . . . . . . . 6.4 Primjena grupa u kodiranju . . . . . . . . . . . 6.4.1 Teorija kodiranja kao grana matematike 6.4.2 Problemi prijenosa informacija . . . . . 6.4.3 Metrika na kodnim rijeˇcima . . . . . . . 6.4.4 Grupa koda . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
253 254 255 255 257 259 260 263 265 265 267 267 269
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ˇ SADRZAJ
viii 6.4.5 Matrica izvodnica kodiraju´ce funkcije Prsteni i polja . . . . . . . . . . . . . . . . . . 6.5.1 Prsten . . . . . . . . . . . . . . . . . . 6.5.2 Primjeri prstena . . . . . . . . . . . . 6.5.3 Polje . . . . . . . . . . . . . . . . . . . 6.5.4 Primjeri polja . . . . . . . . . . . . . . 6.6 Vektorski prostor . . . . . . . . . . . . . . . . 6.7 Primjeri vektorskog prostora . . . . . . . . . 6.8 Algebarske strukture polinoma . . . . . . . . 6.8.1 Prsten polinoma . . . . . . . . . . . . 6.8.2 Vektorski prostor polinoma . . . . . . 6.9 Zadaci . . . . . . . . . . . . . . . . . . . . . . 6.10 Projekti . . . . . . . . . . . . . . . . . . . . . 6.5
7 Matematiˇ cka teorija raˇ cunalstva 7.1 Jezici . . . . . . . . . . . . . . . . . . . 7.1.1 Regularni izrazi . . . . . . . . . 7.1.2 Kontekstno slobodne gramatike 7.2 Konaˇcni automati . . . . . . . . . . . 7.3 Potisni automati . . . . . . . . . . . . 7.4 Turingovi strojevi . . . . . . . . . . . . 7.5 Zadaci . . . . . . . . . . . . . . . . . . 7.6 Projekti . . . . . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
272 275 276 276 278 279 281 283 284 284 285 286 288
. . . . . . . .
293 . 294 . 295 . 298 . 299 . 307 . 313 . 324 . 327
Poglavlje 1
Uvod Matematika je vrata, ali i kljuˇc ulaznih vrata u znanost. Roger Bacon
1.1
Matematiˇ cke metode i modeli
U ovom uvodnom poglavlju iznijet ´cemo kratki uvod u znanstvenu metodu, te njezine moderne inaˇcice. Nadalje, pokuˇsat ´cemo predstaviti vaˇznost matematike u znanstvenim problemima i svakodnevnom ˇzivotu i radu. Medutim, da bismo pravilno koristili matematiˇcke metode, treba poznavati osnove njezine strukture kao i metode dokazivanja hipoteza u matematici. Posebno ´cemo izdvojiti princip matematiˇcke indukcije kao metodu kojom dokazujemo tvrdnje koje ovise o prirodnim brojevima, te koju ˇcesto koristimo kod rekurzivnih definicija.
1.1.1
Znanstvena metoda
Znanost moˇzemo definirati kao metodiˇcki (sistematski) pristup prikupljanju znanja. U znanosti se za istraˇzivanje sluˇzimo znanstvenom metodom. Znanstvena metoda se temelji na ˇcinjenicama, a ne na uvjerenjima, a u op´cem smislu ukljuˇcuje nekoliko koraka. Koraci znanstvene metode su sljede´ci: promatranje, postavljanje pitanja, postavljanje hipoteze, testiranje hipoteze, eksperiment, analiza podataka i rezultata i zakljuˇcak. Hipoteza ne mora uvijek biti toˇcna, ali treba biti mjerljiva. Naˇcin na koji se testira hipoteza ovisi o podruˇcju znanosti u kojem se istraˇzuje. Medutim, danas je znanost kompleksnija nego ikad, bavi se sve teˇzim i teˇzim problemima koje nuˇzno treba rjeˇsavati multidisciplinarnim pristupom. U tom procesu potrebno je pametno kombinirati individualne ekspertize i kompetencije. Stoga je nuˇzan projektni pristup rjeˇsavanju problema i njihovom istraˇzivanju. Prema tradicionalnoj znanstvenoj metodi koja apo1
ˇ 1.1. MATEMATICKE METODE I MODELI
2
strofira objektivnost, a eksperimente pojednostavljuje tako da bi se moglo razmatrati samo jedno pitanje, problemi moderne znanosti ne mogu se viˇse uspjeˇsno rjeˇsavati. Istovremeno, jaˇca uloga raˇcunalnog modeliranja i simboliˇckih matematiˇckih eksperimenata, kao i uloga matematiˇckih i statistiˇckih metoda op´cenito. U tom svjetlu mnogi znanstvenici predlaˇzu da treba mijenjati i klasiˇcnu znanstvenu metodu [7]. Prema [7], alternativni izgled znanstvenog procesa ukljuˇcivao bi i razvoj novih metodologija koje bi odgovarale postavljenom problemu, te razvoj teorija, koje bi objaˇsnjavale rezultate. Nove tehnologije mogu iza´ci kao dodatni rezultat razvoja metodologije i alata, kao i konaˇcni rezultat istraˇzivanja. Primjerice, Kopernik je pri reviziji Ptolomejeve kozmologije, razvio matematiˇcku metodologiju koja ga je dovela do rezultata, koji su oznaˇcili preokret, ne samo u astronomiji, nego u ˇcovjekovu cjelokupnom poimanju svijeta. Jednom kad se pojavi problem, zada´ca je znanosti da nade metodologiju pomo´cu koje ´ce ga rijeˇsiti. Ali ne samo to. Znanstvenici trebaju razmotriti teorijsko znaˇcenje i vaˇznost problema kojeg obraduju te mogu´cnosti primjene njegovih direktnih i indirektnih rezultata.
1.1.2
Matematiˇ cki model
Osnova za razumijevanje svijeta je promatranje. Promatranjem prikupljamo informacije. Znanstvenik prikuplja informacije sistematski, u skladu sa znanstvenom metodologijom. Pri tome se sluˇzi mjerenjem da bi kvantificirao podatke. Na temelju pojedinaˇcnih informacija rade se generalizacije, najprije jednostavne, pa sve sloˇzenije. Konaˇcno, dolazimo do razumijevanja materije na temelju principa. Op´cenito, princip je poop´cenje ili apstraktna tvrdnja. U procesu istraˇzivanja, ali i u svakodnevnom rjeˇsavanju problema, upotrebljavamo modele. Model je analogija s nekim objektom ili konceptom, ili drugim interesantnim modelom, a koristi se kao objaˇsnjenje nekog procesa ili predvidanje dogadaja. O modelu moˇzemo razmiˇsljati kao o ”imaginarnoj, pojednostavljenoj verziji dijela svijeta kojeg promatramo.” ([5]) Iskustvo pokazuje da je matematika dobro sredstvo (jezik) za izraˇzavanje principa. Matematiˇcki modeli su modeli bazirani na matematiˇcki postavljenim principima. Dakle, oni predstavljaju matematiˇcku karakterizaciju ili opis nekog fenomena ili procesa. Matematiˇcki model sadrˇzi sljede´ce bitne komponente; pojavu ili proces iz realnog svijeta koji se ˇzeli modelirati, apstraktnu matematiˇcku strukturu i korespondenciju izmedu elemenata prve i druge komponente. Svrha matematiˇckog modela je: • prezentacija informacija u lako prihvatljivom obliku, • omogu´cavanje “lakog” raˇcunanja,
POGLAVLJE 1. UVOD
3
• olakˇsavanje istraˇzivanja i predvidanja. Matematiˇcki modeli op´cenito sadrˇze tri razliˇcite vrste kvantitativnih veliˇcina: izlazne varijable (output), ulazne varijable (input) i parametre (konstante). Viˇse o matematiˇckom modeliranju moˇzete na´ci u [4]. Jedan od poznatih modela u fizici je model plina u kinetiˇckoj teoriji plina. Molekule plina zamiˇsljamo kao vrlo male kuglice smjeˇstene u nekoj kocki. Kuglice se gibaju konstantnom brzinom, nezavisno jedna od druge, a njihove medusobne sudare, kao i sudare sa stjenkama kocke, smatramo elastiˇcnima. Smjerove brzina molekula smatramo nasumiˇcnima, tj. njihova rezultanta je nul-vektor. Na temelju ovog priliˇcno grubog modela, punog pretpostavki, dobivene su formule koje dobro opisuju realnu situaciju. Dakle, matematika je izuzetno korisna i to se moˇze dobro argumentirati. Ali na matematiku se moˇze gledati i drugaˇcije. O matematici se govori i kao o logiˇckoj igri ili o sredstvu za razvijanje logiˇckog i sistematskog razmiˇsljanja. Nadalje, matematiku se ponekad opisuje kao znanost o uzorcima (vidi [3]), jer matematiˇcari prouˇcavaju uzorke: numeriˇcke uzorke, uzorke oblika, uzorke gibanja, uzorke ponaˇsanja, izborne uzorke, uzorke sluˇcajnih dogadaja itd.
Matematiˇcka struktura
Proces u realnom svijetu
Slika 1.1
1.1.3
Struktura matematike
Povijesno gledaju´ci, matematiku je kao ”univerzalni jezik” prvi promatrao Gottfried Leibniz u 17. stolje´cu. On je smatrao da se argumenti u matematici, ali i svugdje drugdje, trebaju logiˇcki provjeravati. Nadalje, Gottlob Frege je u drugoj polovici 19. stolje´ca nastavio sliˇcno razmiˇsljati i tvrdio da se
ˇ 1.1. MATEMATICKE METODE I MODELI
4
matematika treba izgraditi na predikatnoj logici. U posljednjem desetlje´cu 19. st. Guiseppe Peano je napravio aksiomatski okvir koji je ukljuˇcivao logiku i teoriju skupova. Taj su rad poˇcetkom 20. st. nastavili Alfred Whitehead i Bertrand Russell. Ponovimo vaˇzne ˇcinjenice o matematiˇckim strukturama. Pojaˇsnjenja se mogu na´ci 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´cu osnovnih. Definicija je sud pomo´cu kojeg se odreduje sadrˇzaj nekog pojma. Isti se pojam moˇze definirati na viˇse ekvivalentnih naˇcina. Osnovni matematiˇcki pojmovi su generalizacija objekata iz stvarnog svijeta (npr. pravac je generalizacija zrake svjetlosti). Prilikom formiranja tvrdnji koristimo se zakljuˇcivanjem. Zakljuˇcivanje je naˇcin miˇsljenja kojim se viˇse sudova (premisa) dovodi u vezu i izvodi novi sud (zakljuˇcak, rezultat). Razlikujemo induktivno i deduktivno zakljuˇcivanje te zakljuˇcivanje po analogiji. Matematiˇcki oblici zakljuˇcivanja su induktivno i deduktivno zakljuˇcivanje. Indukcija moˇze biti potpuna (matematiˇcka) i nepotpuna. Pri dokazivanju u matematici sluˇzimo se potpunom ili matematiˇckom indukcijom. No i u ostalim ljudskim djelatnostima, gdje se vaˇznost pridaje ispravnom zakljuˇcivanju, ne smijemo se sluˇziti nepotpunom indukcijom. O tome ´ce biti viˇse govora u nastavku knjige. Deduktivna metoda karakterizira viˇsi nivo razvoja Slika 1.2: Gottfried Wilneke znanosti, jer ona podrazumijeva postojanje helm von Leibniz principa. Euklid (365. p. K.) je bio prvi poznati znanstvenik u povijesti koji je sustavno primijenio deduktivne metode, i to u geometriji. Geometrija je na taj naˇcin aksiomatizirana (vidi: [9], [2]), tj. utemeljena na sustavu aksioma, koji predstavljuju tvrdnje za koje postoji uvjerenje da su istinite. Tako dobivenu geometriju nazivamo euklidskom geometrijom. Aritmetika je aksiomatizirana znatno kasnije, u drugoj polovici 19. st. (vidi: [10]). Istaknimo bitne elemente matematiˇcke teorije deduktivnog pristupa. To su: 1. nabrajanje osnovnih pojmova, 2. definiranje sloˇzenih pojmova, 3. postavljanje aksioma, 4. iskazivanje teorema, 5. dokazi teorema.
POGLAVLJE 1. UVOD
5
Aksiomi i teoremi (pouˇcci, stavci) izriˇcu ekvivalentne tvrdnje i iznose zakljuˇcke o matematiˇckim pojmovima i njihovim medusobnim odnosima i vezama. Aksiomi su tvrdnje koje smatramo istinitima bez posebnog dokaza, dok su teoremi tvrdnje koje logiˇcki izviru iz aksioma. Svaki teorem treba izvesti (deducirati, dokazati) iz jednog ili viˇse aksioma u konaˇcno mnogo koraka. Dokaz je zakljuˇcivanje kojim se pokazuje da je neki teorem logiˇcka posljedica nekih aksioma ili ve´c dokazanih teorema. Dokaz moˇze biti direktan i indirektan.
1.2 1.2.1
Tehnike dokazivanja u matematici Sudovi i matematiˇ cka logika kao okvir za matematiˇ cke tvrdnje
U matematici, kao i drugim znanostima, susre´cemo tvrdnje koje izraˇzavaju odredene znanstvene spoznaje. Tvrdnje u znanosti se trebaju dokazati. Pojedine znanstvene discipline raspolaˇzu skupom metoda kojima se tvrdnje u tom podruˇcju dokazuju. Tehnike dokazivanja u druˇstvenim znanostima bitno se razlikuju od onih u prirodnim znanostima, a posebno matematici. U svakom je znanstvenom istraˇzivanju u poˇcetku potrebna istraˇzivaˇcka intuicija, koja je ˇcesto temeljena na ranijim spoznajama i iskustvu. Medutim, nakon ˇsto su formulirane odredene znanstvene hipoteze, potrebno je egzaktno dokazati njihovu toˇcnost. U tom smislu hipoteze trebaju biti sudovi . Iz matematiˇcke logike poznato je da su sudovi tvrdnje za koje se jednoznaˇcno moˇze re´ci jesu li istinite ili nisu. U povijesti znanosti poznato je mnogo hipoteza koje joˇs nisu postale sudovi. U matematici je poznata Goldbachova hipoteza, koja Slika 1.3: Pierre de Fermat tvrdi da je svaki paran broj, ve´ ci od 2, mogu´ce prikazati u obliku zbroja dvaju prostih brojeva (opisana u [4], 21). Donedavno je i posljednji Fermatov teorem (prozvan i veliki Fermatov teorem) bio samo matematiˇcka slutnja bez dokaza. Prisjetimo se jednostavne formulacije posljednjeg Fermatovog teorema: Za svaki prirodni broj ve´ci od 2 jednadˇzba an + bn = cn nema cjelobrojnih rjeˇsenja, pri ˇcemu su a, b, c, razliˇciti od nule. Preko 350 godina brojni su matematiˇcari, ali i amateri zaljubljenici u matematiku, pokuˇsavali dokazati tu hipotezu. Na taj su naˇcin razvijene mnoge teorije, dobivene ekvivalentne tvrdnje, i poploˇcen put koji je vodio do konaˇcnog dokaza, kojeg su 1994. zavrˇsili Andrew Wiles i Richard Taylor. Ipak dosta otvorenih problema u matematici i drugim znanstvenim podruˇcjima ˇceka rjeˇsenja. Jedan od takvih problema je pozna-
6
1.2. TEHNIKE DOKAZIVANJA U MATEMATICI
ti problem rjeˇsivosti svakog algoritamski rjeˇsivog problema u polinomnom vremenu, odnosno P = N P problem. Medutim, da bi netko uspjeˇsno rjeˇsavao probleme u matematici, ali i s razumijevanjem prihva´cao matematiˇcke teorije koje ´ce koristiti u drugim podruˇcjima istraˇzivanja i rada, nuˇzno je da se upozna s tehnikama dokazivanja u matematici. Dokazivanje u matematici temelji se na matematiˇckoj logici. Osnove matematiˇcke logike mogu se prona´ci primjerice u [4], ali i u drugom poglavlju ove knjige. Nabrojimo osnovne tipove tvrdnji koje susre´cemo u matematici. Tvrdnja ”20 je viˇsekratnik od 5” je jednostavni sud. Budu´ci da je 20 = 4 × 5 znamo da je ovaj sud istinit. Mnoge tvrdnje u matematici jesu sloˇzeni sudovi jer se sastoje od dva ili viˇse sudova povezanih logiˇckim operacijama. Osnovne operacije matematiˇcke logike su konjunkcija (veznik i), disjunkcija (veznik ili) i negacija. Ponovimo njihove vrijednosti istinitosti. Sloˇzeni sud a ∧ b (a i b) je istinit ako i samo ako su oba suda a i b istinita. Sloˇzeni 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ˇzan. Mnoge matematiˇcke tvrdnje su implikacije, odnosno oblika ako-onda. Sloˇzeni sud a ⇒ b (ako a onda b; a implicira b) je laˇzan samo ako je sud a istinit, sud b laˇzan. Primjer implikacije je sljede´ca tvrdnja. Primjer 1.1 Ako je prirodan broj n djeljiv brojem 6, onda je n djeljiv i brojem 3. Uoˇcite da implikacija nije komutativna operacija tj. ako je istinita implikacija a ⇒ b, tada obratna implikacija b ⇒ a nije nuˇzno 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ˇzemo da su tvrdnje a i b ekvivalentne i piˇsemo a ⇔ b. Evo primjera ekvivalencije. Primjer 1.2 Prirodan broj n je paran ako i samo ako je n2 paran. Dakle, znak ⇔ obiˇcno ˇcitamo ”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 ˇcinjenicu koristimo kod indirektnog dokazivanja. Istaknimo joˇs neke uobiˇcajene oblike matematiˇckih tvrdnji. Postoje tvrdnje koje govore da neˇsto postoji, pa ih nazivamo tvrdnjama o egzistenciji (postojanju). Takva je, na primjer, sljede´ca poznata tvrdnja iz linearne algebre.
POGLAVLJE 1. UVOD
7
Primjer 1.3 Uvijek postoji rjeˇsenje homogenog sustava linearnih jednadˇzbi. U iskazivanju tvrdnji o postojanju koristimo se kvantifikatorom egzistencije ∃, kojeg ˇcitamo ”za neki” ili ”postoji”. Nasuprot tvrdnjama o egzistenciji nalaze se univerzalne tvrdnje, tj. tvrdnje koje se odnose na sve elemente odredenog skupa. Za njihovo izricanje koristimo univerzalni kvantifikator ∀, kojeg ˇcitamo ”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ˇznju treba obratiti na ˇcinjenicu kako se operacija negacije odnosi prema kvatifikatorima. Negiramo li univerzalni kvantifikator umjesto njega moˇzemo pisati kvantifikator egzistencije i obrnuto, negacijom kvantifikatora egzistencije dobijemo univerzalni kvantifikator. Objaˇsnjenje moˇzete na´ci u poglavlju ove knjige koje se bavi matematiˇckom logikom, ali i u [4], str. 37.
1.2.2
Dokazivanje matematiˇ ckih tvrdnji
Dokaz predstavlja demonstraciju istinitosti zadane tvrdnje. U matematici ˇcesto treba dokazivati teoreme, propozicije, leme i korolare koji su dani u obliku implikacije A ⇒ B. Ovdje tvrdnju A nazivamo pretpostavka, a tvrdnju B zakljuˇcak. Te su dvije tvrdnje u teoremima i drugim suvislim matematiˇckim tvrdnjama medusobno povezane. Da bismo dokazali istinitost implikacije dovoljno je ispitati ne pojavljuje li se sluˇcaj da istinita pretpostavka vodi do laˇznog zakljuˇcka. Tvrdnja je trivijalno istinita ako je zakljuˇcak istinit. Direktni dokaz implikacije se stoga provodi tako da se uzima da je pretpostavka istinita i temeljem toga pokaˇze da tada i zakljuˇcak mora biti istinit. Ponekad je jednostavnije koristiti dokaz po kontrapoziciji (indirektni dokaz), koji umjesto tvrdnje A ⇒ B dokazuje tvrdnju ¬B ⇒ ¬A. Tvrdnje koje imaju jednake tablice istinitosti su ekvivalentne. Budu´ci se ekvivalencija sastoji od dvije implikacije, kod dokazivanja ekvivalencije provode se dokazi dviju implikacija i ukoliko su obje implikacije istinite, zakljuˇcuje se da je ekvivalencija istinita. U ekvivalentnim tvrdnjama koristimo formulaciju”A ako i samo ako B”, koja oznaˇcava da ”A povlaˇci B” i ”B povlaˇci A”. Primjer 1.5 Dokaˇzimo 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ˇci da se n moˇze zapisati kao n = 2k,
8
1.2. TEHNIKE DOKAZIVANJA U MATEMATICI
pri ˇcemu je k neki prirodan broj. Kvadriranjem te jednakosti dobivamo da je n2 = 4k 2 , ˇsto znaˇci 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. Kontrapozicija glasi: ”Ako je n neparan tada je i n2 neparan.” Dokaˇzite za vjeˇzbu tu tvrdnju. U nekim dokazima koristimo dokaz kontradikcijom kao varijaciju dokaza po kontrapoziciji. Pretpostavimo naime da je negacija poˇcetne tvrdnje istinita. Ta pretpostavka zatim vodi do tvrdnje koja je oˇcigledno laˇzna ili je u suprotnosti (kontradikciji) s nekom √ pretpostavkom. Klasiˇcan primjer dokaza kontradikcijom je dokaz da je 2 iracionalan broj. Tvrdnje o egzistenciji nekog objekta dokazuju se tako da se pronade primjer definiranog objekta. Primjer koji pokazuje da vrijedi tvrdnja o postojanju rjeˇsenja homogenog sustava linearnih jednadˇzbi je tzv. trivijalno rjeˇsenje (rjeˇsenje ˇcije su sve komponente rjeˇsenja jednake nuli). Traˇzenje primjera egzistencije nije uvijek jednostavan posao jer postoje matematiˇcke 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ˇzeni broj. Poneke tvrdnje se dokazuju provjeravanjem konaˇcnog broja sluˇcajeva (Primjer: Postoji prosti broj izmedu 100 i 115).
1.2.3
Matematiˇ cka indukcija i skup prirodnih brojeva
Matematiˇcka se teorija gradi tako da se prvo utvrdi skup aksioma koji su op´ce prihva´ceni kao istiniti pa se pomo´cu njih dokazuju sloˇzenije tvrdnje. Cilj ovog poglavlja knjige je dati jedan jednostavni primjer izgradnje matematiˇcke teorije. Svima je poznato da su prirodni brojevi oni koje koristimo za prebrojavanje u svakodnevnom ˇzivotu, 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 postojanje prirodnih brojeva tj. skupa N. Evo tih aksioma. Peanovi aksiomi: 1. 1 ∈ N. (Dakle, N nije prazan skup, ve´c sadrˇzi najmanje jedan element.) 2. Za svaki x ∈ N postoji prirodni broj x0 kojeg zovemo sljedbenikom od x. 3. x0 6= 1. (1 nije niˇciji sljedbenik.)
POGLAVLJE 1. UVOD
9
4. x0 = y 0 povlaˇci x = y. ( Razliˇciti prirodni brojevi imaju razliˇcite sljedbenike.) 5. Aksiom indukcije. Neka je M ⊆ N sa sljede´cim svojstvima: 1) 1∈ M, 2) x ∈ M povlaˇci x0 ∈ M. Tada je M = N. Aksiom matematiˇcke indukcije, odnosno princip matematiˇcke indukcije vaˇzno je orude u matematiˇckom dokazivanju. Taj se princip ne smije mijeˇsati s induktivnom metodom u znanosti. Induktivna metoda u znanosti sluˇzi samo za izvodenje op´cih principa iz pojedinaˇcnih sluˇcajeva. Princip matematiˇcke indukcije sluˇzi za dokazivanje tvrdnji koje vrijede za sve prirodne brojeve (osim moˇzda za konaˇcno mnogo njih). Tvrdnje koje se dokazuju matematiˇckom indukcijom ovise o cijelom (prirodnom) broju n. Prikladno je tvrdnju koju dokazujemo oznaˇciti sa P (n) . Princip matematiˇcke 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ˇzemo pogrijeˇsiti i ”dokazati” tvrdnju koja zapravo ne vrijedi (Eulerov primjer, Goldbachova hipoteza). Primjer 1.6 Za sve prirodne brojeve n vrijedi n X i=1
1 i (i + 3) = n (n + 1) (n + 5) . 3
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) , ˇcime je tvrdnja dokazana. U brojnim situacijama u matematici, ali ne samo u matematici, mogu´ce je na temelju eksperimentiranja na pojedinaˇcnim primjerima do´ci do dobre slutnje, a nakon toga je dokazati upotrebom matematiˇcke indukcije. Medutim, bez ovog drugog koraka, tj. bez matematiˇckog dokaza, ostajemo samo na slutnji, dakle ne znamo da li ona vrijedi za sve sluˇcajeve ili ne. Preporuˇcamo da viˇse o tome, kako slutnja moˇze postati teorem, proˇcitate u [1], str. 35. Istaknimo dvije od mogu´cih modifikacija principa matematiˇcke indukcije. Postoje tvrdnje koje ukljuˇcuju prirodne brojeve, ali ne vrijede za sve njih, nego vrijede za one koji su ve´ci od nekog prirodnog broja n0 . Primjerice, nejednakost n! > 2n je ispunjena za svaki n ≥ 4. Dokaz ove tvrdnje moˇze se provesti pomo´cu matematiˇcke indukcije, samo ˇsto u bazi ispitujemo da li tvrdnja vrijedi za n = 4. Op´cenito se svaka tvrdnja P (n) koja vrijedi za n ≥ n0 , moˇze podvesti pod princip matematiˇcke indukcije tako da se tvrdnja modificira u tvrdnju P (n + n0 − 1) . Zadatak 1.2 Dokaˇzite da vrijedi nejednakost n! > 2n , za svaki n ≥ 4. Matematiˇcku indukciju upotrebljavamo i za rekurzivne definicije razliˇcitih matematiˇckih objekata. Taj oblik matematiˇcke indukcije zovemo jaka matematiˇcka indukcija, iako je ona ekvivalentna ”obiˇcnoj” matematiˇckoj 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ˇcke indukcije pretpostavljamo da je tvrdnja istinita za sve prirodne brojeve manje od promatranog prirodnog broja i dokazujemo da je onda tvrdnja istinita za promatrani prirodni broj. Nadalje, jaku matematiˇcku indukciju koristimo i kod rekurzivnih definicija, o ˇcemu ´ce 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ˇzenja 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 2. a · b ∈ N 3. a + b = b + a 4. (a + b) + c = a + (b + c) 5. a · b = b · a 6. (a · b) · c = a · (b · c)
11 (zatvorenost) (komutativnost) (asocijativnost) (komutativnost) (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 sljede´cih tvrdnji x < y, x = y, y < x. Viˇse o relacijama i operacijama na razliˇcitim skupovima saznat ´cete u nastavku ove knjige. U tom kontekstu bit ´ce jasnija i uloga gornjih aksioma koji govore o dvije najvaˇznije 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 najmanji element. Dokaz. Ova se tvrdnja moˇze dokazati upotrebom principa matematiˇcke indukcije po broju elemenata skupa ˇciji najmanji element traˇzimo. 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 indukcije znamo da ima najmanji element b. Manji od brojeva a i b je najmanji element skupa B. Dakle, iz principa matematiˇcke indukcije slijedi princip dobrog uredaja. Medutim, vrijedi i obrnuto, tj. upotrebom principa dobrog uredaja moˇzemo dokazati da vrijedi princip matematiˇcke 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ˇcimo 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ˇcujemo da je poˇcetna pretpostavka pogreˇsna ˇsto znaˇci da je P istinita tvrdnja za sve prirodne brojeve n ≥ n0 . Zakljuˇcujemo, princip dobrog uredaja i princip matematiˇcke indukcije su ekvivalentne tvrdnje.
1.3
Zadaci
1. Dokaˇzite sljede´ce 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ˇzite da je sud a ⇒ (p ⇒ q) tautologija. 3. Pokaˇzite da je sud (a ∧ b) ∧ (¬a ∨ ¬b) kontradikcija. 4. Pojednostavite sljede´ce izraze: (a) (1 : 0 = ∧(1 < 10), (b) (π < 8) ∧ (π < 6), (c) (e < 4) ∧ (e2 < 9) 5. Odredite istinitost sljede´cih 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ˇzite da je mn neparan ako i samo ako su m i n neparni. 7. Napiˇsite sljede´ce izjave pomo´cu kvantifikatora i standardnih oznaka za skupove brojeva. (a) Jednadˇzba 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ˇsite negacije izjava iz prethodnog zadatka. 9. Koje su tvrdnje istinite? Univerzum razmatranja je zapisan u zagradama. (a) ∀x(x − 1 ≤ x)
(R).
(b) ∃x(x + 3 = 2x − 1) (c)
∃!x(x2
= 2)
(d) ∀x∃!y(y = x2 )
(N).
(R). (R).
x2 )
(e) ∀x∃!y(y = (N). √ 10. Dokaˇzite da je 3 iracionalan broj. 11. Dokaˇzite 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ˇzite da je T istinita tvrdnja upotrebljavaju´ci konstrukciju temeljenu na sljede´cim primjerima: 42 = 7 + 9, 62 = 17 + 19, 82 = 31 + 33, 102 = 49 + 51. (b) Napiˇsite ¬T . (c) Napiˇsite kotrapozitivnu tvrdnju tvrdnji T . Je li ona istinita? 13. Upotrebom matematiˇcke indukcije dokaˇzite sljede´ce 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. n P k(k + 1)(k + 2) = 14 n(n + 1)(n + 2)(n + 3). (c) k=1
14
1.3. ZADACI (d) Za svaki x ∈ R, x 6= ±1 i n ≥ 1 vrijedi
n Q
k
(1 + x2 ) =
k=1
k+1
1−x2 1−x2
.
14. Pomo´cu matematiˇcke indukcije pokaˇzite 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´cih skupova nadite najmanji i najve´ci element, ukoliko oni postoje: (a) A = {n ∈ N : n2 ≤ 52} (b) B = {n ∈ N : n2 ≤ 100n} (c) C = {n ∈ N : n je viˇsekratnik 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 ˇ znamo o najmanjem, odnosno najve´ci element u S1 , odnosno S2 . Sto najve´cem elementu skupova S1 ∪ S2 i S1 ∩ S2 ?
Bibliografija [1] Biggs, N. L.: Discrete Mathematics, Oxford University Press Inc., New York, 2002. ˇ Povijest ideja i metoda u matematici i fizici, Skolska ˇ [2] Dadi´c, Z.: 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ˇcare, TIVA-FOI, Varaˇzdin, 2004. [5] Gowers, T.: Mathematics, A Very short Introduction, Oxford University 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 Technology on the Scientific Method, submitted to: Science Compass, LA-UR01-5739 [8] Kerzner, H.: Project Management, a Systems Approach to Planning, Scheduling and Controlling, John Wiley and Sons Inc., New York, 2003. ˇ [9] Mintakovi´c, S.: Neeuklidska geometrija Lobaˇcevskog,Skolska knjiga, Zagreb, 1972. ˇ c, Z.: Kako je stvarana novovijekovna matematimka, Skolska ˇ knjiga, [10] Siki´ Zagreb, 1989.
15
16
BIBLIOGRAFIJA
Poglavlje 2
Matematiˇ cka logika Pretpostavimo da je pronadena kontradikcija u aksiomima teorije skupova. Da li ozbiljno vjerujete da bi se most mogao sruˇsiti? Frank Ramsey Logika je jedna od najstarijih, sustavno prouˇcavanih znanstvenih disciplina. Ona predstavlja formalizaciju znanstvenog razmiˇsljanja i osigurava njegovu valjanost. Njeni poˇceci seˇzu do Aristotela i drugih grˇckih 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ν), ˇsto znaˇci orude. Dakle, ve´c je Aristotel gledao na logiku kao na glavno orude znanstvenika, na alat koji znanstveniku omogu´cuje njegov rad, odnosno pronalaˇzenje znanstvenih spoznaja. Uz tu se knjigu veˇze prvo javljanje pojmova hipoteze, aksioma, teorema i dokaza, kao osnovnih gradevnih elemeSlika 2.1: Aristotel nata logike. Takoder, Aristotel uvodi tehnike induktivnog i deduktivnog dokazivanja, te tzv. Aristotelove forme, koje pokrivaju sve elementarne logiˇcke izjave. Matematiˇcka logika predstavlja formalizaciju logike te se posebno bavi matematiˇckim razmiˇsljanjem i dokazivanjem. Poˇceci razvoja matematiˇcke logike seˇzu u 18. st. do dublinskog biskupa Richarda Whatleya, koji se smatra zaˇcetnikom matematiˇcke logike. Prve znaˇcajne rezultate u matematiˇckoj logici objavili su u 19. stolje´cu George Boole, Augustus De Morgan i Ernst Schr¨oder. Veliki interes za matematiˇcku logiku izazvao je 20-tih godina 20. st. Bertrand Russel (1872-1970) objavljivanjem svojih poznatih paradoksa regularnog svojstva, do kojih je dovelo egzistencijalistiˇcko, nekonstruktivno 17
ˇ 2.1. RACUN SUDOVA
18
definiranje kakvo se koristilo prije toga u matematici. Otkrivanje paradoksa u mnogim matematiˇckim aksiomatikama dovelo je do revizije pojmova u tim matematiˇckim disciplinama. Tako su revidirane matematiˇcke teorije kao ˇsto su teorija skupova, algebra itd. U 20. st. vaˇznije su rezultate dali Albert Thorlaf Skolem, Bertrand Russel, Alfred North Whitehead, a za informatiˇcare su posebno interesantni rezultati koje je dao Alan Turing, koji se intenzivno bavio definiranjem intuitivnog pojma algoritma, te dao jedan od najpoznatijih logiˇckih modela algoritma - Turingov stroj. O tome ´cemo viˇse govoriti u posljednjem poglavlju ove knjige.
2.1
Raˇ cun sudova
Raˇcun sudova ili propozicijska logika je jednostavan logiˇcki jezik koji se sastoji od sudova koji su povezani pomo´cu logiˇckih veznika ¬, ∨, ∧, →, ↔.
2.1.1
Sintaksa
Definicija 2.1 (Jezik) Jezik L raˇcuna sudova sastoji se od: 1. najviˇse 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ˇcnim brojem uzastopnih primjena pravila 1-3. Primjer 2.1 Neka su A, B, C propozicijske varijable. Tada su sljede´ci izrazi sudovi: • (A ∨ (B ∧ ¬C)), • ((A → B) ↔ (¬A ∨ B)), • (C ↔ (A ∧ ¬B)). 1
Za skup kaˇzemo da je prebrojiv ako je konaˇcan ili bijektivan s N
ˇ POGLAVLJE 2. MATEMATICKA LOGIKA
19
Na kraju ovog podpoglavlja treba re´ci nekoliko rijeˇci o zagradama. Zagrade se u logici smatraju pomo´cnim simbolima koji osiguravaju jednoznaˇcnost formula. U klasiˇcnom su naˇcinu zapisivanja formula zagrade nuˇzne, ˇ jer bez njih sudovi ne bi bili jednoznaˇcni. Cak i ako se uvede prioritet logiˇckih operatora, kao ˇsto to neki logiˇcari ˇcine, zagrade se ne mogu u potpunosti izbaciti. Postoje, s druge strane, notacije koje osiguravaju jednoznaˇcnost formula bez upotrijebe zagrada i bez definiranja prioriteta logiˇckih veznika. Jedna je takva notacija postfiksna notacija ili obrnuta poljska notacija. Naˇzalost, iako su takve notacije bolje sa stajaliˇsta jedinstvenosti formula, one su neuobiˇcajene za ljude nenaviknute na njih, pa se rijetko koriste. Ipak, u prethodnoj definiciji formule se zadaju tako da je svaki izraz okruˇzen zagradama. No, sve te zagrade nisu potrebne. Postoje sluˇcajevi kada zagrade ne doprinose jednoznaˇcnosti formule i kada se neke njene zagrade izostave. U tom se sluˇcaju zagrade, koje ne doprinose jednoznaˇcnosti suda, tj. zagrade koje nisu potrebne i bez kojih sud ostaje jednako jasan, izostaviti. Tako se npr. uvijek izostavljaju zagrade koje okruˇzuju cijeli sud.
2.1.2
Semantika
U proˇslom smo poglavlju objasnili kako se tvore jeziˇcni konstrukti jezika raˇcuna sudova. Ovdje ´cemo opisati njihovo znaˇcenje, odnosno semantiku. Definicija 2.3 Neka je definirano proizvoljno preslikavanje i : A → {⊥, >}. Interpretacija je proˇsirenje preslikavanja i na skup svih sudova S definirano na sljede´ci naˇcin: Neka su F, G ∈ S sudovi. Tada vrijede sljede´ce 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ˇcunati 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´ci vaˇzan pojam, koji treba definirati, jest pojam logiˇcke posljedice.
ˇ 2.1. RACUN SUDOVA
20
Definicija 2.4 Sud G je logiˇcka posljedica skupa sudova F = {F1 , . . . , Fn }, ˇsto se piˇse 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ˇzimo da je sud B logiˇcka 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ˇcujemo da je i(B) = >. Uz pojam logiˇcke posljedice usko je vezan joˇs jedan semantiˇcki pojam – pojam logiˇcke ekvivalencije. Definicija 2.5 Sudovi F i G su logiˇcki ekvivalentni, ˇsto zapisujemo F ≡ G ili F ⇔ G, ako za svaku interpretaciju i vrijedi da je i(F ) = i(G). Iz definicije pojma logiˇcke ekvivalencije proizlazi sljede´ca karakterizacija logiˇcke ekvivalencije: Propozicija 2.1 F ≡ G ako i samo ako vrijedi da je F |= G i G |= F . Dokaz. Napravite sami za vjeˇzbu. 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ˇs neke ˇcinjenice koje slijede iz definicije 2.3 sadrˇzane su u sljede´coj 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. MATEMATICKA 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ˇcke posljedice, no koriste´ci samo tu definiciju, ponekad nije lako odrediti je li neka formula logiˇcka posljedica nekog skupa formula ili nije. Sre´com, postoje tzv. karakterizacije logiˇcke posljedice koje nam omogu´cuju da problem logiˇcke posljedice svedemo na problem tautologiˇcnosti, odnosno antitautologiˇcnosti logiˇcke formule, ˇsto predstavlja problem koji je mnogo lakˇse rijeˇsiti. No, prije no ˇsto to izvedemo, treba definirati joˇs nekoliko pojmova. Sud F je tautologija ako je i(F ) = > za svaku interpretaciju i. Ako je sud F laˇzan 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ˇze se da je ispunjiv . Za sud koji nije tautologija, odnosno za koji postoji interpretacija i u kojoj je i(F ) = ⊥ kaˇze se da je otklonjiv ili da nije ispunjiv. Teorem 2.1 (1. karakterizacija pojma logiˇ cke posljedice) Sud G je logiˇcka 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. RACUN 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ˇcka 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ˇcujemo da je G logiˇcka posljedica od F. Teorem 2.2 (2. karakterizacija pojma logiˇ cke posljedice) Sud G je logiˇcka 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ˇcka posljedica od F mora biti i(G) = >. No, onda je, prema definiciji 2.3 i((F1 ∧ . . . ∧ Fn ) → G) = >. Dakle, u svakom sluˇcaju je i((F1 ∧ . . . ∧ Fn ) → G) = >, pa je (F1 ∧ . . . ∧ Fn ) → G tautologija. Obrnuto, neka je (F1 ∧ . . . ∧ Fn ) → G tautologija. Ako ne postoji intepretacija u kojoj je i(Fk ) = > za svaki Fk ∈ F, onda trivijalno slijedi da je G logiˇcka 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ˇcka posljedica od F. Sliˇcno se moˇze postaviti i karakterizacija pojma logiˇcke ekvivalencije: Teorem 2.3 (Karakterizacija pojma logiˇ cke ekvivalencije) Dva suda F i G su logiˇcki ekvivalentni ako i samo ako je sud F ↔ G tautologija. Dokaz. Izvedite sami. Formalni sustavi Semantiˇcki izvodi, poput izvoda u primjeru 2.3, mogu biti sloˇzeni i teˇski. Stoga se uvode formalni sustavi za izvodenje, koji se sastoje od pravila izvoda, koja iz sudova izvode njihove logiˇcke posljedice.
ˇ POGLAVLJE 2. MATEMATICKA LOGIKA
23
Ovdje ´cemo prikazati dva sustava: jedan koji se temelji na klasiˇcnom matematiˇckom izvodenju, i drugi koji je posebno pogodan za dedukciju pomo´cu raˇcunala. 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ˇs naziva i sustav prirodne dedukcije jer se njegovi aksiomi temelje na standardnim logiˇckim pravilima zakljuˇcivanja. Takoder, ovaj je sustav ponekad referiran kao Fitchov sustav , prema ameriˇckom logiˇcaru Frederichu Fitchu, koji je prvi formalizirao ovaj sustav, povode´ci se za prirodnim pravilima dedukcije, koje matematiˇcari koriste u svojoj praksi. Pravila izvoda se u F-sustavu mogu prikazati grafiˇcki. 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´ca dva pravila bit ´ce pravila vezana uz disjunkciju. No, prije nego ih iskaˇzemo, moramo uvesti pojam poddokaza. Poddokaz je segment unutar dokaza, koji uz dodatne uvjete dokazuje odredenu tvrdnju. Treba joˇs jednom naglasiti da se tvrdnje unutar poddokaza izvode uz dodatne uvjete, koji op´cenito ne moraju vrijediti. Stoga tvrdnje koje su dokazane unutar poddokaza takoder ne moraju vrijediti op´cenito. Zbog toga koriˇstenje tvrdnji dokazanih u poddokazu izvan poddokaza nije dozvoljeno, osim ako to pravilo izvoda izriˇcito ne nalaˇze. Jedno takvo pravilo koje omogu´cuje koriˇstenje tvrdnje dokazane u poddokazu izvan samog poddokaza jest pravilo eliminacije disjunkcije. Uvodenje disjunkcije (∨ Intro) Fi .. . ⇒
F1 ∨ . . . ∨ Fn
Eliminacija negacije (¬ Elim)
ˇ 2.1. RACUN SUDOVA
24 F1 ∨ . . . ∨ Fn F1 .. . S ⇓ Fn .. . S
⇒ S Pravilo eliminacije disjunkcije zahtjeva dodatno objaˇsnjenje. Naime, kao ˇsto je ve´c reˇceno, F sustav slijedi standardne matematiˇcke tehnike dokazivanja. 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 eliminacija disjunkcije. Pravila koja predstavljaju strategije dokazivanja imaju u matematici i druge nazive, koji su ve´c spomenuti u poglavlju 1.2, gdje se ono zove dokaz podjelom na sluˇcajeve. Sada ´cemo uvesti dva pravila koja se odnose na negaciju. Uvodenje negacije (¬ Intro) F .. . G ∧ ¬G ⇒ ¬F Eliminacija negacije (¬ Elim) ¬¬F1 .. . ⇒ F Elimincija negacije je joˇs jedno pravilo koje predstavlja jednostavan korak direktnog dokaza. S druge strane, uvodenje negacije je joˇs jedna, moˇzda ˇcak i najˇceˇs´ce koriˇstena, 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. MATEMATICKA LOGIKA
25
F →G F .. . ⇒ G Uvodenje kondicionala je osnovna strategija dokazivanja sudova koji imaju kauzalnu formu, tj. koje sadrˇze kondicional. S druge strane, eliminacija kondicionala je samo korak u dokazivanju. Pravilo eliminacije kondicionala ima, medutim, znaˇcajnu ulogu u mnogim logiˇckim sustavima, posebno sustavima koji se koriste u klasiˇcnoj logici. Zato ima i posebno ime modus ponens, ˇsto u prijevodu znaˇci ”metoda potvrdivanja”. Uvodenje bikondicionala (↔ Intro) F .. . G G .. . F ⇒ F ↔G Eliminacija bikondicionala (↔ Elim) F ↔G F .. . ⇒ G Sliˇcno kao ˇsto je reˇceno za uvodenje kondicionala, uvodenje bikondicionala je osnovna strategija dokazivanja reˇcenica koje sadrˇze 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´cu formalnog sustava S ako za svaki i = 1, . . . , n vrijedi jedna od sljede´cih 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´cu sustava S ako postoji izvod suda G iz F pomo´cu formalnog sustava S. To se oznaˇcava sa F `S G Za izvodenje svakog formalnog sustava bitne su dvije stvari. Prva je da je sustav korektan. To znaˇci da sve ˇsto se pomo´cu sustava moˇze izvesti jest logiˇcka posljedica onoga iz ˇcega je izvedeno. Drugim rijeˇcima, 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ˇcku posljedicu zadanih pretpostavki.
ˇ 2.1. RACUN SUDOVA
26
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ˇcno dugaˇcak, pa ´cemo ga preskoˇciti. U projektima vezanim uz ovo poglavlje postoji i projekt dokazivanja ovog teorema. Dajmo sada nekoliko primjera dokazivanja pomo´cu ovog sustava. Primjer 2.4 Dokaˇzimo da iz A i ¬A slijedi B. 1. A 2. ¬A 3. ¬B (∧ Intro: 1,2) 4. A ∧ ¬A 5. ¬¬B (¬ Intro: 3-4) 6. B (¬ Elim: 5) Primjer 2.5 Dokaˇzimo pravilo modus tollens (metoda opovrgavanja), odnosno 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ˇzimo joˇs pravilo distributivnosti disjunkcije prema konjunkciji. 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) (∨ Intro: 2) 5. F ∨ H (∧ Intro: 4,5) 6. (F ∨ G) ∧ (F ∨ H) 7. G ∧ H 8. G 9. F ∨ G 10. H 11. F ∨ H 12. (F ∨ G) ∧ (F ∨ H) 13. (F ∨ G) ∧ (F ∨ H)
(∧ (∨ (∧ (∨ (∧ (∨
Elim: Intro: Elim: Intro: Intro: Intro:
7) 8) 7) 10) 9,11) 1,2-6,7-12)
ˇ POGLAVLJE 2. MATEMATICKA LOGIKA
27
Drugi sustav za dokazivanje koji ´cemo 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 zamijeniti 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ˇze da je u konjunktivnoj normalnoj formi. Teorem 2.5 Za svaki sud raˇcuna sudova postoji logiˇcki ekvivalentan sud u konjunktivnoj normalnoj formi. Umjesto dokaza ovdje ´cemo opisati kako se za zadanu formulu konstruira ekvivalentan sud u konjunktivnoj normalnoj formi. U propoziciji 2.2 dane su ekvivalencije ˇcijim se koriˇstenjem svaki sud raˇcuna sudova moˇze prevesti u ekvivalentan sud u konjunktivnoj normalnoj formi. Uz opis koraka dat ´cemo i primjer kako se pojedini koraci konkretno provode. Primjer 2.7 Kao primjer uzet ´cemo sud (A ↔ B) ∧ ¬(A → (B ∧ ¬C)). 1. Prvo se pomo´cu posljednja tri pravila opisana u propoziciji 2.2 eliminiraju 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 negacije kako bi se eliminirale negacije koje djeluju na sloˇzenim 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))
ˇ 2.1. RACUN SUDOVA
28
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 ˇsto se prevede u konjunktivnu normalnu formu, sud se moˇze, primjenom 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, ˇsto se prema idempotenciji mijenja s ¬B, a u ˇcetvrtom disjunktu se B ∨ ¬B prema pravilu 9 mijenja s >, zbog ˇcega se cijeli ˇcetvrti disjunkt, prema pravilu 11, mijenja s >, a onda se, prema pravilu 13, moˇze 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´ci disjunkt pretvara u >, nakon ˇcega se zbog pravila 14 moˇze ukloniti iz suda. Nakon toga ´ce formula izgledati ovako: (A ∨ ¬B) ∧ (A ∨ ¬B ∨ C). Sada, kad smo iznijeli naˇcin pretvaranja suda u konjunktivnu normalnu formu, moˇzemo opisati postupak dokazivanja pomo´cu rezolucijskog pravila. Prije nego ˇsto se krene u sam izvod, potrebno je urediti pretpostavke i zakljuˇcak koji ˇzelimo dokazati. Kod rezolucijskog postupka nikada se zakljuˇcak ne dokazuje izravno, ve´c se uvijek obara njegova negacija. Stoga je, prije svega, potrebno negirati zakljuˇcak koji ˇzelimo dokazati. Nakon toga se sve pretpostavke i zakljuˇcak pretvaraju u konjunktivnu normalnu formu. Time se dobija skup sudova u konjunktivnoj normalnoj formi, koji se sastoji od pretpostavki i negacije zakljuˇcka. Lako je dokazati da vrijedi {A, B} ≡ {A ∧ B}. Stoga se svaki sud u konjunktivnoj normalnoj formi u skupu moˇze zamijeniti s jednim ili viˇse sudova, koji su po svom obliku disjunkti. Na tako dobiven skup disjunkata se primijenjuje pravilo rezolucije, u ˇzelji da se iz skupa izvede prazan disjunkt. Prazan disjunkt ili refutacija oznaˇcava se s ⊥ i predstavlja antitautologiju. Dobije li se refutacija, negacija je zakljuˇcka oborena, a zakljuˇcak je dokazan. Da bi se ovaj postupak mogao koristiti potrebno je imati sljede´ci teorem: Teorem 2.6 Rezolucijski postupak je potpun i korektan za raˇcun sudova.
ˇ POGLAVLJE 2. MATEMATICKA LOGIKA
29
Primjer 2.8 Dokaˇzimo rezolucijom da iz A i ¬A slijedi B. Zakljuˇcak se negira i dobije se ¬B. Svi su sudovi ve´c u konjunktivnoj normalnoj formi, pa moˇzemo krenuti na rezolucijski izvod: 1. A 2. ¬A 3. ¬B 4. ⊥ (Res: 1,2) Primjer 2.9 Dokaˇzimo pravilo modus tollens, odnosno da iz A → B i ¬B slijedi ¬A. Negacija zakljuˇcka je ¬¬A, odnosno A. Prvi se sud pretvara u ¬A ∨ B, te imamo 1. ¬A ∨ B 2. ¬B 3. A (Res: 1,2) 4. ¬A 5. ⊥ (Res: 3,4) Detaljnim razmatranjem rezolucijskog postupka i njegovom implementacijom na raˇcunalu do´ci ´ce se do dedukcijskog algoritma temeljenog na metodi pretraˇzivanja s vra´canjem (backtracking). Problem je u tome ˇsto je taj algoritam u najgorem sluˇcaju sloˇzenosti O(2n ). Naˇzalost, poboljˇsanje sloˇzenosti najgoreg sluˇcaja ovog algoritma nije mogu´ce. No, mogu´ce je poboljˇsati njegovu prosjeˇcnu sloˇzenost. S tom su idejom smiˇsljena poboljˇsanja rezolucijskog postupka nazvana semantiˇcka rezolucija, a posebno njen specijalni sluˇcaj hiperrezolucija, te na kraju linearna rezolucija, koja se koristi u programskom jeziku Prolog. Viˇse o tim rezolucijskim postupcima ˇcitatelj moˇze na´ci u [3].
2.2
Predikatni raˇ cun
Za opis nekih sloˇzenijih sustava nije dovoljan raˇcun sudova. Tako se npr, nijedna matematiˇcka teorija ne moˇze opisati samo raˇcunom sudova. Za to je potreban neˇsto sloˇzeniji logiˇcki jezik - raˇcun predikata. U ovom ´cemo poglavlju uvesti taj sloˇzeniji i bogatiji logiˇcki jezik koji ´ce omogu´citi formalni prikaz mnogih, ali joˇs uvijek ne svih matematiˇckih teorija.
2.2.1
Sintaksa
Definicija 2.8 Jezik raˇcuna predikata ima abecedu koja se sastoji od: • najviˇse prebrojivog skupa P predikatnih simbola, • najviˇse prebrojivog skupa F funkcijskih simbola, • najviˇse prebrojivog skupa C konstanti,
ˇ 2.2. PREDIKATNI RACUN
30 • najviˇse prebrojivog skupa V varijabli, • logiˇckih veznika ¬, ∨, ∧, →, ↔, • kvantifikatora ∀, ∃, • zagrada ), (, ], [, }, {,. pri ˇcemu su skupovi C i V disjunktni.
Svakom predikatnom simbolu p ∈ P, kao i svakom funkcijskom simbolu f ∈ F pridruˇzena 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 ˇcemu je K ∈ {∀, ∃}, a x ∈ V varijabla, onda za svaki nastup varijable x u formuli G kaˇzemo da je vezan kvantifikatorom Kx. Za istu stvar joˇs kaˇzemo da je svaka takva varijabla x u dosegu kvantifikatora Kx. Za varijablu koja nije u dosegu nijednog kvantifikatora kaˇzemo da je slobodna. Formula koja nema slobodnih varijabli zove se zatvorena formula ili reˇcenica. Primjer 2.10 Dajmo nekoliko primjera formula raˇcuna predikata: • ∀x∃y(P (x, y) ∨ ¬Q(y)) → ∀x∀y(P (x, x) ↔ Q(y)),
ˇ POGLAVLJE 2. MATEMATICKA LOGIKA
31
• ∃x(P (x) → ∀yP (y)), • P (c) ∨ ∀x(Q(x, f (x, s)) ∧ p(f (x, x))). Ako je F formula onda ´cemo s F (x) oznaˇcavati ˇcinjenicu da u F nastupa varijabla x.
2.2.2
Semantika
Definicija 2.12 Svako preslikavanje µ : V → C naziva se ograniˇcenje varijabli . Semantiˇcka struktura predikatnog raˇcuna M je par M =< I, U >, pri ˇcemu je I interpretacija, a U domena. Interpretacija I =< ϕ, ψ >, pri ˇcemu je ϕ pridruˇzivanje koje svakom n-arnom funkcijskom simbolu pridruˇzuje totalnu funkciju U n → U , a svakoj konstanti pridruˇzuje nularnu funkciju. Funkcija ψ svakom n-arnom predikatnom simbolu pridruˇzuje n-arnu relaciju nad U . Kada se ovako definira semantiˇcka struktura predikatnog raˇcuna, domena je u potpunosti odredena interpretacijom i moˇze se izostaviti. Semantiˇcka struktura definira istinitost svakog pojedinog atoma. Istinitost se definira na sljede´ci naˇcin: Definicija 2.13 Neka je µ ograniˇcenje varijabli. Proˇsireno ograniˇcenje varijabli je proˇsirenje 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ˇcka struktura i neka je µ proˇsireno ograniˇcenje varijabli. Tada kaˇzemo 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 .
ˇ 2.2. PREDIKATNI RACUN
32
• M |=µ ∀xF (x) ako i samo ako za svako proˇsireno ograniˇcenje varijabli ν koje se podudara s µ na svim varijablama osim moˇzda na x vrijedi M |=ν F . • M |=µ ∃xF (x) ako i samo ako postoji proˇsireno ograniˇcenje varijabli ν koje se podudara s µ na svim varijablama osim moˇzda 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ˇcenica, onda njena istinitost ne´ce ovisiti o izboru proˇsirenog ograniˇcenja varijabli, ve´c samo o izboru semantiˇcke strukture. Ako je reˇcenica F istinita u semantiˇckoj strukturi, onda to piˇsemo M |= F . Formulu F , koja je istinita u svakoj mogu´coj semantiˇckoj strukturi (M, µ), nazivamo tautologija i oznaˇcavamo s |= F . Formula koja nije istinita ni u kojoj semantiˇckoj strukturi (M, µ) naziva se antitautologija. Za formulu F koja nije antitatutologija, tj. za koju postoji semantiˇcka struktura (M, µ) takva da je M |=µ F kaˇzemo da je ispunjiva. Sliˇcno, za reˇcenicu F koja nije tautologija, tj. za koju postoji semantiˇcka struktura (M, µ) takva da je M 6|=µ F kaˇzemo da je otklonjiva. Definicija 2.16 Formula G je logiˇcka posljedica formule F , ˇsto oznaˇcavamo s F |= G ako za svaku semantiˇcku strukturu M za koju vrijedi M |= F vrijedi i M |= G. Treba napomenuti da obje karakterizacije logiˇcke posljedice, kako su izreˇcene za raˇcun sudova, vrijede i za raˇcun predikata. Nadalje, uz standardno definiranu logiˇcku ekvivalenciju, u predikatnom raˇcunu vrijedi i propozicija 2.2. Ove dvije tvrdnje ne bi trebale ˇcuditi. Naime, pokazuje se da je segment raˇcuna predikata - raˇcun predikata bez varijabli ekvivalentan raˇcunu sudova, tj. sve ˇsto vrijedi u raˇcunu sudova vrijedi isto tako u raˇcunu predikata, ako atomarne sudove zamijenimo atomarnim formulama raˇcuna sudova. Medutim, u raˇcunu predikata postoje ekvivalencije koje nisu naslijedene iz raˇcuna sudova, ve´c su ekvivalencije koje se javljaju samo u raˇcunu predikata: Propozicija 2.3 Za formule F i G raˇcuna predikata vrijede sljede´ca svojstva: 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. MATEMATICKA LOGIKA
33
5. Ako je G formula u kojoj se ne javlja varijabla x, K ∈ {∀, ∃} kvantifikator, 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ˇzbu.
2.2.3
Formalni sustavi
Sustav F se prirodno proˇsiruje s raˇcuna sudova na raˇcun predikata dodavanjem 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
ˇ 2.2. PREDIKATNI RACUN
34
Pri tome se konstanta c ne pojavljuje nigdje, osim u poddokazu u kojem je uvedena.
Primjer 2.11 Dokaˇzimo da vrijede de Morganovi zakoni za kvantifikatore: ¬∀xP (x) ≡ ∃x¬P (x) te ¬∃xP (x) ≡ ∀x¬P (x). Ova se ekvivalencija dokazuje preko dokaza ˇcetiri tvrdnje. Prvo ´cemo dokazati da ¬∀xP (x) slijedi iz ∃x¬P (x). 1. ∃x¬P (x) c 2. ¬P (c) 3. ∀xP (x) 4. P (c) 5. P (c) ∧ ¬P (c) 6. ¬∀xP (x) 7. ¬∀xP (x)
(∀ Elim: 3) (∧ Intro:4,2) (¬ Intro: 3-5) (∃ 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) c 4. ¬¬P (c) 5. P (c) 6. ∀xP (x) 7. ∀xP (x) ∧ ¬∀xP (x) 8. ¬¬∃x¬P (x) 9. ∃x¬P (x)
(Teorem 1: 2) (∀ Elim: 3) (¬ Elim: 4) (∀ Intro: c -5) (∧ Intro: 6,1) (¬ Intro: 2-7) (¬ 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. MATEMATICKA LOGIKA 1. ∀x¬P (x) ∃xP (x) c 3. P (c) 4. ¬P (c) 5. ¬(Q ∧ ¬Q) 2. 6. P (c) ∧ ¬P (c) 7. ¬¬(Q ∧ ¬Q) 8. Q ∧ ¬Q 9. Q ∧ ¬Q 10. ¬∃xP (x) ˇsto daje sljede´ci teorem: Teorem 3: ∀x¬P (x) .. . ⇒ ¬∃xP (x) I na kraju: 1. ¬∃xP (x) 2. ¬∀x¬P (x) 3. ∃x¬¬P (x) c 4. ¬¬P (c) P (c) 6. ∃xP (x) 7. ∃xP (x) ∧ ¬∃xP (x) 8. ∃xP (x) ∧ ¬∃xP (x) 9. ¬¬∀x¬P (x) 10. ∀x¬P (x) Dakle, Teorem 4: ¬∃xP (x) .. . ⇒
35
(∀ Elim: 1) (∧ Intro: (¬ Intro: (¬ Elim: (∃ Elim: (¬ Intro:
3,4) 5-6) 7) c -8) 2-9)
(Teorem 2: 2)
(¬ Elim: 4) (∃ Intro: 5) (∧ Intro: 6,1) (∃ Elim: 3, c -7) (¬ Intro: 2-8) (¬ Elim: 9)
∀x¬P (x)
ˇ Time smo zavrˇsili razmatranje F sustava. Citatelj zainteresiran za detaljnije prouˇcavanje F sustava kao formalizacije matematiˇckog dokazivanja upu´cuje se na [2]. *** Kao i za F sustav, i za rezolucijsku proceduru postoji proˇsirenje na raˇcun predikata. Rezolucijska se procedura u raˇcunu predikata definira nad reˇcenicama. No, kao ˇsto ´cemo vidjeti, u raˇcunu predikata se svaka reˇcenica ne moˇze pretvoriti u ekvivalentnu reˇcenicu koja bi bila pogodna za rezolviranje. Svaka se reˇcenica raˇcuna predikata moˇze, medutim, pretvoriti u ekvivalentnu reˇcenicu u primitivnoj normalnoj formi.
ˇ 2.2. PREDIKATNI RACUN
36
Definicija 2.17 Za reˇcenicu raˇcuna predikata kaˇzemo 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ˇcuna predikata bez kvantifikatora. K1 x1 . . . Kn xn se naziva prefiks, a M (x1 , . . . , xn ) se naziva matrica reˇcenice u primitivnoj normalnoj formi. Teorem 2.7 Svaka reˇcenica raˇcuna predikata ima ekvivalentnu reˇcenicu u primitivnoj normalnoj formi. Umjesto formalnog dokaza ove propozicije navest ´cemo algoritam pomo´cu kojeg ´ce se reˇcenica raˇcuna predikata mo´ci pretvoriti u reˇcenicu u primitivnoj normalnoj formi. Kao prvo, pomo´cu pravila iz propozicije 2.2 eliminiramo sve kondicionale i bikondicionale. Nakon toga, pomo´cu 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 primitivnu 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ˇcenicu u primitivnoj normalnoj formi moˇzemo prona´ci ekvivalentnu reˇcenicu u primitivnoj normalnoj formi kojoj je matrica u konjunktivnoj normalnoj formi. Tako ´ce, npr., reˇcenica iz primjera 2.12 biti ekvivalentna reˇcenici ∀x∃u∀v((¬P (x, u) ∨ Q(x)) ∧ ¬Q(v) ∧ ¬P (x, x))
(2.1)
ˇcija je matrica u konjunktivnoj normalnoj formi. Primitivna normalna forma reˇcenice, pa ˇcak ni ako joj je matrica u konjunktivnoj normalnoj formi, nije dovoljna da bi reˇcenica bila pogodna za rezoluciju. Problem stvaraju egzistencijalni kvantifikatori. Naime, rezolucijski postupak u raˇcunu predikata zahtjeva da reˇcenica bude u Skolemovoj normalnoj formi. Definicija 2.18 Reˇcenica raˇcuna predikata je u Skolemovoj normalnoj formi ako je u primitivnoj normalnoj formi, te ako njen prefiks ne sadrˇzi ni jedan egzistencijalni kvantifikator. Naˇzalost, ne postoji naˇcin kojim bi se iz reˇcenice izbacili egzistencijalni kvantifikatori, a da ono ˇsto se dobije bude reˇcenica ekvivalentna polaznoj. To, medutim, za rezoluciju nije niti potrebno. Sada, naime, dolazi do izraˇzaja naˇcin na koji se rezolucijom izvode dokazi. Rezolucijom se dokazuje tako da se konjunkcija pretpostavki i negacije zakljuˇcka svodi na refutaciju. Stoga nam sljede´ca propozicija daje dovoljan uvjet za izvodenje rezolucije. Propozicija 2.4 Za svaku reˇcenicu raˇcuna predikata F postoji reˇcenica raˇcuna 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. MATEMATICKA LOGIKA
37
Umjesto dokaza opet ´cemo dati algoritam za dobivanje takve formule. 1. Pretvoriti reˇcenicu u primitivnu normalnu formu. ˇ prefiks reˇcenice redom s lijeva na desno, te svaki egzistencijalni kvantifikator 2. Citati na koji se naide izbrisati iz prefiksa. Varijabla koju je vezao taj kvantifikator se iz matrice eliminira na sljede´ci naˇcin: (a) Ako je egzistencijalni kvantifikator bio prvi u prefiksu, onda izaberemo konstantu koja se ne pojavljuje u formuli te svaki nastup varijable koju je izbaˇceni 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ˇceni kvantifikator vezao u matrici zamijenimo funkcijom s odabranim simbolom ˇciji su argumenti sve varijable koje se u prefiksu nalaze ispred izbaˇcenog kvantifikatora. Za reˇcenice koje imaju svojstvo navedeno u propoziciji 2.4 kaˇzemo da su ekvikontradiktorne. Primjer 2.13 Skolemizirajmo formulu 2.1. Potrebno je izbaciti kvantifikator koji veˇze varijablu u, a svaku pojavu varijable u u matrici zamijeniti funkcijom, recimo f (x). Tako dobijamo reˇcenicu ∀x∀v((¬P (x, f (x)) ∨ Q(x)) ∧ ¬Q(v) ∧ ¬P (x, x)).
(2.2)
koja je ekvikontradiktorna formuli 2.1 Prije no ˇsto krenemo dalje, dat ´cemo joˇs jedan primjer skolemizacije reˇcenice. Primjer 2.14 Skolemizirajmo formulu: ¬∀x∀yP (x, y) ∨ ∀x∃yQ(x, y) Prvo ´cemo reˇcenicu 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ˇcenicu u primitivnoj normalnoj formi: Ponajprije izbacujemo kvantifikator koji veˇze varijablu u, a svaku pojavu te varijable u matrici mijenjamo konstantom, recimo c: ∀v∃y(¬P (c, y) ∨ yQ(v, y)) Sada briˇsemo iz prefiksa kvantifikator koji veˇze 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ˇsili skolemizaciju zadane formule.
ˇ 2.2. PREDIKATNI RACUN
38
No, zbog postojanja varijabli termi koji grafiˇcki izgledaju razliˇcito mogu ponekad biti instancirani u isti temeljni term, tj. term bez varijabli. Stoga nije dovoljno pri rezoluciji gledati samo literale koji grafiˇcki izgledaju isto. Potrebno je uvesti postupak koji ´ce takve terme svoditi na isti term. Taj se postupak naziva unifikacija. Definicija 2.19 Neka su t1 , . . . , tn termi raˇcuna predikata, a v1 , . . . , vn varijable. Tada se izraz {t1 /v1 , . . . , tn /vn } naziva valuacija. Definicija 2.20 Neka je F formula raˇcuna 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´ci naˇcin: Za svaku formulu F je F (αβ) = (F α)β. Definicija 2.22 Za valuaciju α kaˇzemo da je op´cenitija od valuacije β ako postoji valuacija γ takva da je β = αγ. Definicija 2.23 Neka su F i G formule raˇcuna predikata. Valuacija α je unifikator formula F i G ako vrijedi da je F α grafiˇcki jednaka Gα. Za unifikator formula F i G kaˇzemo da je najop´cenitiji ili maksimalan ako je op´cenitiji od bilo kojeg drugog unifikatora formula F i G. Maksimalan unifikator je posebno vaˇzan jer je on onaj unifikator koji najmanje mijenja formule, a pri tome ih unificira. Za formule za koje postoji unifikator kaˇzemo da se mogu unificirati. Stoga je vaˇzan sljede´ci teorem: Teorem 2.8 Ako se formule F i G mogu unificirati, onda postoji maksimalni unifikator od F i G. Iako je mogu´ce izvesti algoritam koji djeluje na proizvoljnim formulama raˇcuna predikata, nama je za potrebe rezolucije dovoljno definirati unifikaciju nad atomima. Sljede´ci 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. Citamo redom s lijeva na desno atome P1 αi i P2 αi sve dok se u proˇcitanom ne javi razlika. 3. Napravimo skup razlika R = {r1 , r2 } tako da je r1 term koji je nastao ˇcitanjem od primje´cene razlike pa sve dok proˇcitani izraz ne ˇcini regularan term raˇcuna predikata. Sliˇcno 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ˇsava. 5. Ako je Wi+1 jednoˇclan skup, onda je αi+1 maksimalni unifikator, i algoritam zavrˇsava. 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. MATEMATICKA LOGIKA
39
Treba re´ci da se ovaj algoritam moˇze lagano proˇsiriti tako da radi s viˇse od dva atoma. Tada ´ce skupovi Wi , Ri imati viˇse ˇclanova. Traˇzit ´ce se da u skupu razlika postoji varijabla i term u kojem se ta varijabla ne pojavljuje, a cilj je, kao i kod sluˇcaja s dva atoma, dobiti jednoˇclan skup Wk . Nadalje, ovaj algoritam, u potpunosti nepromijenjen, moˇze se koristiti i za unifikaciju bilo kojih drugih formula raˇcuna predikata. Pri tome treba napomenuti da, bez obzira na kakvim se formulama ovaj postupak provede, on moˇze unificirati samo razlike u termima. Ako se pojavi razlika u predikatnom simbolu, logiˇckom vezniku ili kvantifikatoru, onda se unifikacija ne moˇze provesti. Sada, kad smo definirali skolemizaciju i unifikaciju mogu´ce je definirati i rezoluciju za raˇcun predikata. Neka je zadan skup reˇcenica {F1 , . . . , Fn } koje predstavljaju pretpostavke iz kojih ˇzelimo izvesti zakljuˇcak - reˇcenicu G. Prisjetimo se prve karakterizacije logiˇcke posljedice (teorem 2.1). Ona kaˇze da je formula G logiˇcka 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ˇze prona´ci ekvikontradiktorna formula u Skolemovoj normalnoj formi. No, je li potrebno skolemizirati cijelu tu, veliku fromulu? Odgovor je - nije. Ako pretpostavke i zakljuˇcak nemaju zajedniˇckih varijabli, dovoljno je da se skolemizira posebno svaka pretpostavka i negacija zakljuˇcka. Naime, u tom se sluˇcaju, zbog propozicije 2.3.5, Skolemove normalne forme pretpostavki i negacije zakljuˇcka mogu povezati konjunkcijama, a nakon toga se svi veznici mogu izvu´ci na poˇcetak formule i tako se dobije Skolemova normalna forma formule 2.3. Kako se radi o reˇcenicama u kojima su svi nastupi svih varijabli vezani, a kako su sve varijable koje su vezane vezane univerzalnim kvantifikatorima, kvantifikatore moˇzemo kod zapisa formule izostaviti. Na taj ´cemo naˇcin dobiti formulu koja ne sadrˇzi kvantifikatore. Ovoj se formuli moˇze prona´ci ekvivalentna formula u konjunktivnoj normalnoj formi na isti naˇcin kao ˇsto smo to radili za formule raˇcuna sudova. Formulu u konjunktivnoj normalnoj formi moˇzemo, kao ˇsto je ve´c reˇceno, gledati kao skup disjunkata, koji se mogu medusobno rezolvirati. Sam postupak rezolucije moramo, medutim, malo proˇsiriti. Naime, kod raˇcuna sudova rezolviranjem su se iz formula otklanjali atomarni sud i njegova negacija. Kod raˇcuna predikata otklanjati se mogu i atomi koji nisu medusobno jednaki. Dovoljno je da se atom i negacija atoma koje ˇzelimo 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´ci teorem nam osigurava da je rezolucija dobro definiran formalni sustav: Teorem 2.10 Postupak rezolucije za raˇcun predikata je korektan i potpun. Primjer 2.15 Dokaˇzimo rezolucijom da iz formule ∀x∀y(P (x) → Q(x, y)) i iz ∃xP (x) slijedi ∃x∀yQ(x, y). Imamo sljede´ce 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 ) ˇsto skolemizacijom prelazi ∀x3 ¬Q(x3 , f (x3 )) Dakle, imamo sljede´ci dokaz:
40
2.3. ZADACI 1. 2. 3. 4. 5. 6.
¬P (x1 ) ∨ Q(x1 , y1 ) P (c) ¬Q(x3 , f (x3 )) Q(c, y1 ) ¬P (x3 ) ⊥
(Res: 1,2 {c/x1 }) (Res: 1,3 {x3 /x1 , f (x3 )/y1 }) (Res: 3,4 {c/x2 , f (x3 )/y1 })
Za raˇcun predikata, isto kao i za raˇcun sudova, koristi se semantiˇcka rezolucija, hiperrezolucija i linearna rezolucija. Ovi se pojmovi mogu prona´ci detaljno opisani u [3], ali i u [6].
2.3
Zadaci
Koriˇstenjem definicije logiˇcke posljedice dokaˇzite da su sljede´ce tvrdnje tautologije: 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´cih formula 4. (A ∨ B) ↔ (C ∨ D) 5. (((¬A ∨ B) ∧ ¬C) ∨ D) ∧ ¬E 6. (¬A ∨ B) ∧ (C ∨ ¬D) 7. ¬((A ∨ B) → C) 8. Pomo´cu F sustava dokaˇzite tvrdnje iz propozicije 2.2 9. Pomo´cu rezolucije dokaˇzite tvrdnje iz propozicije 2.2 Bez upotrebe formalnih sustava dokaˇzite da su sljede´ce 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¨olemovu normalnu formu sljede´cih 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ˇzite tvrdnje propozicije 2.3 17. Pomo´cu rezolucijskog postupka dokaˇzite tvrdnje propozicije 2.3
ˇ POGLAVLJE 2. MATEMATICKA LOGIKA
2.4
41
Projekti
1. Definirajte potpunu sintaksu raˇcuna 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ˇcuna 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ˇcunalni program koji ´ce prepoznavati je li zadani izraz formula raˇcuna predikata. 4. Napravite program koji ´ce izraˇcunavati je li neki sud logiˇcka posljedica zadanih sudova, koriˇstenjem rezolucijskog postupka. Nakon toga prouˇcite hiperrezoluciju i napravite program koji ´ce raditi isto, ali primjenom hiperrezolucije. Na kraju implementirajte i linearnu rezoluciju. Usporedite rad ova tri programa. 5. Dokaˇzite 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. ˇ M.: Matematiˇcka logika za ekspertne sisteme, Informator, Za[4] Cubrilo, greb, 1989. [5] Deville, Y.: Logic Programming, Addison-Wesley, Workingham, England, 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ˇsao je prema sve ve´coj preciznosti i vodi do formalizacije takvih razmjera da ´ce se svaki teorem mo´ci dokazati samo pomo´cu nekoliko mehaniˇckih pravila. Kurt G¨odel vs. Trudim se izbje´ci duge numeriˇcke raˇcune i slijedim Riemannov postulat da dokazi trebaju biti dani kroz ideje, a ne kroz voluminozne raˇcune. David Hilbert Diskretna matematika je grana matematike koja prouˇcava probleme koji ukljuˇcuju konaˇcne i prebrojivo beskonaˇcne skupove. Konkretno, diskretna se matematika prvenstveno povezuje sa skupom prirodnih i cijelih brojeva, a ponekad i sa skupom racionalnih brojeva. Kontinuiranim skupovima, posebno skupom realnih brojeva, bavi se matematiˇcka analiza. Na temeljima diskretne matematike gradi se raˇcunalna geometrija i algebra, logika, teorija grafova i kombinatorika. Upotrebom raˇcunalne geometrije (computational geometry) grade se robotika, automatika, navigacija, menadˇzment, interaktivne tehnike vizualizacije i sl. Bez diskretne matematike nezamislivo je paralelno programiranje i alSlika 3.1: Georg Ferdinand goritmi te strukture podataka i ekspertni sustavi. Ludwig Philipp Cantor Stoga ´cemo u ovom dijelu knjige posvetiti paˇznju pojmovima koji nam pomaˇzu u prouˇcavanju problema diskretne matemati45
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ˇziti teme koje slijede u knjizi, a u znatnoj mjeri koriste skupove. Pojam skupa u matematiku uvodi Georg Cantor (1845-1918). Skup pripada osnovnim matematiˇckim pojmovima, odnosno pojmovima koje ne definiramo. O skupu razmiˇsljamo kao o kolekciji elemenata (ˇclanova), koje zamiˇsljamo kao cjelinu. Izuzetak je prazan skup ∅, koji nema elemenata.
3.1.1
Zadavanje skupa
Postoje dva osnovna naˇcina na koje moˇzemo 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 paradoksa. Tako je Cantor primjetio 1897. da postoji paradoks skupa svih skupova. Nadalje, Bertrand Russell je dao joˇs nekoliko zanimljivih paradoksa vezanih uz skupove. Dakle, Fregeov princip, da svako svojstvo odreduje neki skup, ne vrijedi, budu´ci da moˇze dovesti do paradoksa (tzv. paradoksi regularnog svojstva). Potrebno je, utvrdio je Zermelo, ograniˇciti svojstvo, tako da se elementi uzimaju iz nekog univerzalnog skupa U .
3.1.2
Relacije medu skupovima
Nabrojimo tri najvaˇznije relacije na skupovima. U svim definicijama velika tiskana slova A, B oznaˇcavaju skupove. Relacija sadrˇ zavanja 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ˇzite 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ˇcunajte: 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´cu tablice pripadnosti.
3.1.5
Kartezijev produkt skupova
Evo joˇs jednog naˇcina da od dva skupa dobijemo neki novi skup. Definicija 3.1 Neka su A,B dva neprazna skupa. Kartezijev produkt (direktni 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ˇzan 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ˇzan poredak elemenata. Zadatak 3.3 Ispiˇsite Kartezijev produkt A1 × A2 × A3 ako je A1 = {Ivan, M aja, Sanja}, A2 = {radnik, student, trgovac} i A3 = {bogat, siromaˇ san}.
3.2 3.2.1
Binarne relacije 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ˇzemo promatrati na kontinuiranim skupovima kao ˇsto je skup realnih brojeva, ali i na diskretnim skupovima, na primjer na skupu cijelih brojeva. U informatiˇckoj primjeni vaˇznije su relacije na diskretnim skupovima. Pretpostavimo da konaˇcni 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ˇcnim skupovima moˇzemo predstaviti na sljede´ce naˇcine: 1. Pomo´cu dijagrama koji prikazuje dva konaˇcna skupa A i B te strelice koje prikazuju pridruˇzivanje elementa skupa A onima u skupu B. Na taj su naˇcin opisani uredeni parovi ˇciji su elementi relaciji. 2. Pomo´cu 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´cu usmjerenog grafa, ako je relacija definirana na A2 . Posebno su vaˇzne relacije izmedu elemenata istog skupa, tj. relacije na A × A koje zovemo binarnim relacijama na A. U izuˇcavanju tih relacija pomaˇze mogu´cnost njihovog grafiˇckog prikazivanja pomo´cu grafova. Pri tom se koriste pojmovi: ˇcvor (vrh) grafa - to je svaki element skupa A, i luk -
50
3.2. BINARNE RELACIJE
svakom paru (a, b)²A × A pridruˇzen je jedan luk pri ˇcemu se prva komponenta para naziva izlaznim ˇcvorom grafa, a druga komponenta ulaznim ˇcvorom. Graf relacije se obiˇcno nacrta tako da se njegovi vrhovi rasporede otprilike kao vrhovi pravilnog mnogokuta, a zatim se lukovima poveˇzu elementi koji su u relaciji. Grafovi imaju veliku vrijednost za vizualizaciju relacija i njihovih svojstava. Brojne mogu´cnosti primjene grafova u modeliranju problema u razliˇcitim znanstvenim podruˇcjima i sasvim konkretnih problema, potakle su razvoj posebne matematiˇcke discipline koja se zove teorija grafova. Definicija 3.3 Graf relacije ρ ⊆ A × A je par (A, ρ) pri ˇcemu je A skup ˇcvorova 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ˇzite zadanu relaciju na tri gore navedena naˇcina. Binarne relacije definirane na podskupovima skupa realnih brojeva prikazujemo grafiˇcki pomo´cu koordinatnog sustava u ravnini. © ª Primjer 3.2 Zadana je relacija ρ na skupu R sa ρ = (x, y) : x = y 2 . Prikaˇzimo zadanu relaciju pomo´cu grafa u koordinatnom sustavu.
y 2
1
0
1
2
-1
-2
Slika 3.2
3
4
x
POGLAVLJE 3. DISKRETNA MATEMATIKA
3.2.2
51
Obrat relacije, komplement relacije i dualna relacija
Zadanoj relaciji ρ ⊆ A2 mogu se pridruˇziti joˇs neke relacije prema sljede´coj definiciji: Definicija 3.4 Neka je ρ ⊆ A2 . Obrat ρ ¯ relacije ρ : (a, b) ∈ ρ ¯ ⇔ (b, a) ∈ ρ. c Komplement ρ 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ˇsto teˇze je po definiciji formirati dualnu relaciju ρd = {(a, a), (a, c), (b, a), (b, c), (c, b), (c, c)} . Zbog toga je korisna sljede´ca propozicija. Propozicija 3.2 ρd = ρ ¯c = ρc . Dokaz. Dokaˇzimo prvo ρd = ρc (a, b)²ρd ⇐⇒ (b, a) ∈ / ρ ⇐⇒ (b, a) ∈ ρc ⇔ (a, b) ∈ ρc . Kompletirajte dokaz! Kojim se joˇs shemama moˇze dokazati ova tvrdnja?
3.3 3.3.1
Relacija ekvivalencije Definicija i svojstva relacija ekvivalencije
Relacija ekvivalencije predstavlja oslabljeni oblik jednakosti brojeva. S druge strane, klasificiramo li ljude prema karakteristikama kao ˇsto su drˇzava u kojoj stanuju, prema boji njihove kose ili pak prema njihovoj visini, definirat ´cemo relacije ekvivalencije. Pokazuje se da relacija ekvivalencije na nekom skupu definira particiju tog skupa na neprazne, disjunktne podskupove ˇcija unija daje ˇcitavi 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ˇ cna 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ˇskolskoj matematici, su jednakost realnih brojeva, relacija paralelnosti na skupu svih pravaca u ravnini ili prostoru, zatim sukladnost i sliˇcnost geometrijskih likova (npr. trokuta) u ravnini. To je razlog ˇsto o relaciji ekvivalencije razmiˇsljamo kao o oslabljenoj jednakosti na elementima nekog skupa. Zadatak 3.5 Za realne brojeve a, b razliˇcite od nule definiramo relaciju ρ sa: aρb ⇔ ab ∈ Q. Dokaˇzite da je ρ relacija ekvivalencije. Svaki stanovnik Europe ima boraviˇste u nekoj od europskih drˇzava. Kaˇzemo da su Europljani a i b u relaciji s ako su oni stanovnici iste drˇzave. Ovako definirana relacija s predstavlja jednu relaciju ekvivalencije. Primijetimo da jedan ˇcovjek moˇze (prema svojim sluˇzbenim dokumentima) biti stanovnik samo jedne drˇzave, te da su svi stanovnici drˇzave 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ˇsite) klase ekvivalencije za relaciju s medu elementima skupa A = { stanovnici Europe} danu sa © ª s = (a, b) ∈ A2 : a i b stanuju u istoj drˇzavi . Kako bismo izrekli vaˇzna svojstva relacije ekvivalencije uvest ´cemo vaˇzan 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ˇcimo da se familija skupova moˇzSe 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´cenito se moˇze postaviti pitanje za konaˇcni skup od n elemenata, koliko ima razliˇcitih particija od k dijelova. Taj broj se oznaˇcava sa S (n, k) i zove Stirlingov broj (druge vrste). Op´cenito 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ˇse se o toj temi moˇze proˇcitati u [1]. Propozicija 3.3 Neka je ρ relacija ekvivalencije na A. Skup klasa ekvivalencije obzirom na ρ je particija skupa A (kvocijentni skup od A s obzirom na ρ; oznaka A/ρ). Dokaz. Pretpostavimo da je ρ relacija ekvivalencije na A. Treba dokazati da za klase ekvivalencije elemenata tog skupa s obzirom na tu relaciju vrijede sljede´ce 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ˇcito vrijede jer je zbog svojstva ekvivalencije svaki element u relaciji sam sa sobom. Da bismo dokazali tre´cu tvrdnju pretpostavimo da su [a]ρ i [b]ρ dvije razliˇcite klase ekvivalencije. Pokazat ´cemo metodom suprotnog da su u tom sluˇcaju one disjunktne. Pretpostavimo dakle da postoji element x² [a]ρ ∩ [b]ρ . Zbog toga vrijedi xρa i xρb. Budu´ci da je ρ relacija ekvivalencije, vrijedi implikacija aρx ∧ xρb =⇒ aρb. To bi pak znaˇcilo da elementi a i b pripadaju istoj klasi. Zbog tranzitivnosti relacije ρ u tom sluˇcaju 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ˇcite. Vrijedi i obrat tj. sljede´ca propozicija. Propozicija 3.4 Svaka particija skupa A prirodno definira jednu relaciju ekvivalencije na A. Dokaz. Stavimo: aρb ⇔ (a, b) pripadaju istom ˇclanu dekompozicije. Zakljuˇcujemo 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´cih 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ˇcunskih 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´cenito se moˇze 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) ˇcitamo ”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ˇcnosti i tranzitivnosti. Refleksivnost je oˇcita jer vrijedi ∀a²Z =⇒ a−a = 0·k, gdje je k ∈ N proizvoljan. Dokaˇzimo simetriˇcnost: a ≡ b (mod k) ⇐⇒ ∃n ∈ Z, a − b = nk =⇒ b − a = (−n)k ⇐⇒ b ≡ a (mod k) . Dokaˇzimo 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, ˇsto je ekvivalentno s a ≡ c (mod k) .
Primjer 3.6 Odredimo kvocijentni skup relacije modularne ekvivalencije. Promatramo li modularnu ekvivalenciju modulo k inducirat ´cemo 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ˇcajeno je klase ekvivalencije kod modularne ekvivalencije (kongruencije) zvati klasama kongruencije i oznaˇcavati sa a ¯. Tako je kod kongruencije 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ˇcaju se piˇse i ¯0 = 4Z, ¯ 1 = 4Z+1, ¯ 2 = 4Z+2, ¯ 3 = 4Z+3. Dakle, postoje klase kongruencije koje korespondiraju svim mogu´cim ostacima pri dijeljenju s k. Uoˇcimo da vrijedi a ≡ b mod n ⇔ a ¯ = ¯b, n ∈ N. Preko kongruencija moˇzemo sve cijele brojeve reducirati na njihove ostatke 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´cava nam lakˇse rjeˇsavanje jednadˇzbi koje sadrˇze kongruencije. Kao rjeˇsenje jednadˇzbe nademo ostatak, a podrazumijevamo da su rjeˇsenja i brojevi r mod k. Primjer 3.7 Rijeˇsimo jednadˇzbu 2x ≡ 1 mod 4. Uvrˇstavamo 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ˇzba nema rjeˇsenje. Primjer 3.8 Rijeˇsimo jednadˇzbu 2x ≡ 2 mod 4. Uvrˇstavamo 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ˇzba ima dva rjeˇsenja x = 1 i x = 3. Izvedimo formule za zbrajanje i mnoˇzenje kongruencija modulo k. One su sre´com 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,
ˇsto je ekvivalentno tvrdnji a + c ≡ (b + d) mod k. Nadalje, da bismo dokazali formulu za mnoˇzenje kongruencija treba dokazati da je ac − bd djeljivo sa k. Proˇsirimo izraz ac − bd sa ad i −ad pa raˇcunamo ac − ad + ad − bd = a (c − d)+d (a − b) = akm+dkn = k (am − dn) . Zakljuˇcujemo da je ac−bd djeljivo s k. Pogreˇsno bi bilo zakljuˇciti da je formula za dijeljenje kongruencija prirodna, kao ˇsto su formule za zbrajanje i mnoˇzenje kongruencija. Zapravo kongruenciju moˇzemo dijeliti s brojem koji je relativno prost s modulom k. Da kongruencije ne moˇzemo dijeliti s proizvoljnim cijelim brojem pokazuje sljede´ci primjer. Oˇcito vrijedi 90 ≡ 30 mod 12, ali dijeljenjem s brojem 6 dobili bismo 15 ≡ 5 mod 12, a to oˇcito nije istinito. S druge strane dijeljenjem gornje kongruencije s 5 dobivamo da je 18 ≡ 6 mod 12, ˇsto je istinito. Uzmimo op´cenito da je ac ≡ bc mod k i M (c, k) = 1. Znaˇci 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ˇcak ne vrijedi. Vrijedi sljede´ca 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ˇze 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´ci 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ˇzemo reducirati modulo k na brojeve 1, 2, ..., (p − 1) . Sada je a · 2a · ... · (p − 1) a ≡ 1 · 2 · ... · (p − 1) mod k, pa dijeljenje sa (p − 1)! daje traˇzenu jednakost. Primijetimo da smijemo dijeliti jer su p i (p − 1)! relativno prosti. Posvetimo joˇs malo prostora rjeˇsavanju osnovnih tipova jednadˇzbi s kongruencijama.
POGLAVLJE 3. DISKRETNA MATEMATIKA
57
Promotrimo, prvo, jednadˇzbu a + x ≡ b mod k. Takva jednadˇzba uvijek ima rjeˇsenje budu´ci da svaki cijeli broj a ima aditivni inverz modulo k. To znaˇci 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ˇzba a + x ≡ b mod k se rjeˇsava tako da se aditivni inverz od a doda s lijeve i desne strane kongruencije. U drugu ruku, jednadˇzbe tipa ax ≡ b mod k nemaju uvijek rjeˇsenje, kao ˇsto se vidi na primjeru jednadˇzbe 2x ≡ 1 mod 4. Razlog leˇzi 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´ci da je najve´ca zajedniˇcka mjera dvaju brojeva uvijek njihova linearna kombinacija, postoji cijeli broj t takav da je va + tk = 1. Ova nam relacija omogu´cava raˇcunanje multiplikativnog inverza od a. Primjer 3.9 Rijeˇsimo jednadˇzbu 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ˇsenje x = 65 je jedinstveno mod 119, znaˇci da je svako drugo rjeˇsenje kongruentno mod 119 sa 65. Zadatak 3.7 Rijeˇsite sljede´ce jednadˇzbe 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 ˇsirokom podruˇcju kodiranja proizvoda, ali i u kriptografiji. Slijede dvije primjene modularne ekvivalencije (kongruencije). ISBN - International Standard Book Number Od godine 1968. svakoj se knjizi pridruˇzuje ISBN koji sadrˇzi informaciju o zemlji izdanja, izdavaˇcu i samoj knjizi. Te su informacije sadrˇzane u 9 znamenaka, a deseta znamenka sluˇzi za provjeru prvih 9 znamenaka. Neka su znamenke u ISDN-u oznaˇcene 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ˇcunajmo 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ˇsno zapisan npr. promijenimo 3. znamenku. 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ˇze se pokazati da na ovaj naˇcin uvijek detektiramo pogreˇsku, ukoliko je ona u jednoj znamenci. Moˇze se, medutim dogoditi da se pogreˇske u dvije znamenke anuliraju pa ih na ovaj naˇcin ne uoˇcavamo. Zadatak 3.8 U prethodnom primjeru promijenite dvije znamenke tako da test ne registrira pogreˇsku. Zadatak 3.9 Provjerite na prethodnom primjeru da test reagira na zamjenu mjesta znamenaka. Universal Product Code Ve´cina proizvoda na trˇziˇstu 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´cu koje provjeravamo prethodnih 10. Nakon ˇsto skener oˇcita pogreˇsno UPC, zadnja znamenka ukaˇze na pogreˇsku. Provjera se radi po sljede´cem pravilu. 3(suma znamenaka na parnim mjestima) + (suma znamenaka na neparnim 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 ) .. . x ≡ ar (mod mr ) ima rjeˇsenja.
(3.2)
POGLAVLJE 3. DISKRETNA MATEMATIKA
59
Ako je x0 jedno rjeˇsenje, onda su sva rjeˇsenja sustava 3.2 dana sa x ≡ x0 (mod m1 · m2 · . . . · mr ). m Dokaz. Neka je m = m1 · m2 · . . . · mr . Definiramo nj = m , j = 1, . . . , r. j Tada je (nj , mj ) = 1. Da bismo pokazali da sustav 3.2 ima rjeˇsenja koristimo sljede´ci teorem:
Teorem 3.4 Ako su a i m prirodni brojevi te b ∈ Z, kongruencija ax ≡ b(mod m) ima rjeˇsenje ako i samo ako d = (a, m) dijeli b. Ako je ovaj uvjet zadovoljen, onda gornja kongruencija ima d rjeˇsenja 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ˇsenje kongruencije nj xj ≡ aj (mod mj ), j = 1, . . . , r. ˇ Uzmimo sada da je x0 = n1 x1 + n2 x2 + . . . + nr xr . Zelimo pokazati da ako je x0 jedno rjeˇsenje sustava 3.2 da su tada sva rjeˇsenja 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ˇsenje sustava 3.2. Neka su sada x i y dva rjeˇsenja 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 ), ˇcime je teorem dokazan.
60
3.3. RELACIJA EKVIVALENCIJE
Primjer 3.11 Rijeˇsite sustav kongruencija x ≡ 1(mod 5) x ≡ 5(mod 7) x ≡ 4(mod 11) Rjeˇ senje: 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 = 385 11 = 35 x = n1 x1 + n2 x2 + n3 x3 x = 77x1 + 55x2 + 35x3 , pri ˇcemu 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´ci da je kongruencija modulo k relacija ekvivalencije, ona definira particiju 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ˇzimo preko zbrajanja i mnoˇzenja predstavnika pojedinih klasa. Dakle zbrajanje ⊕ i mnoˇzenje ⊗ klasa definiramo na sljede´ci naˇcin:
[a]k ⊕ [b]k = [a + b]k , [a]k ⊗ [b]k = [ab]k . Iako se svaka klasa moˇze predstaviti preko beskonaˇcno mnogo predstavnika, pokazuje se da je rezultat primjene ovih dviju operacija ne ovisi o predstavnicima klasa. Klasu s ostacima 0 oznaˇcavamo ˇcesto s 0, a onu s ostacima jednakim 1 s 1. Teorem 3.5 Operacije zbrajanja ⊕ i mnoˇzenja ⊗, za a, b, c ∈ Zk , imaju sljede´ca 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ˇcke znamo da ´ce multiplikativni element postojati jedino ako je k prost broj. Nabrojena svojstva ´ce osigurati da (Zk , ⊕, ⊗) ima strukturu polja za sluˇcaj kad je k prost broj o ˇcemu ´ce biti viˇse govora u poglavlju o algebarskim strukturama.
62
3.3. RELACIJA EKVIVALENCIJE
3.3.4
Joˇ s neka svojstva binarnih relacija
Evo joˇs 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ˇcna ako vrijedi (∀x, y, ∈ A) (x, y) ∈ ρ ∧ (y, x) ∈ ρ ⇒ x = y, 3. asimetriˇcna 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ˇsimo joˇs algebarske karakterizacije svojstava binarnih relacija. Zadan je skup A i ρ ⊆ A × A. Paru (a, b) pridruˇzuje se kod cab i vrijedi cab = 1 ⇔ (a, b)²ρ, a cab = 0 ⇔ (a, b) ∈ / ρ. Svojstva binarnih relacija mogu se algebarski interpretirati pomo´cu kodova na sljede´ci naˇcin: Svojstvo refleksivnost irefleksivnost simetrija antisimetrija asimetrija kompletnost stroga kompletnost tranzitivnost
Algebarska reprezentacija caa = 1 ∀a ∈ A caa = 0 ∀a ∈ A cab − cba = 0 ∀a, b ∈ A cab + cba ≤ 1 ∀a, b ∈ A ∧ a 6= b cab + cba ≤ 1 ∀a, b ∈ A cab + cba ≥ 1 ∀a, b ∈ A ∧ a 6= b cab + cba ≥ 1 ∀a, b ∈ A cac ≥ cab + cbc − 1 ∀a, b, c ∈ A Tablica 3.1
POGLAVLJE 3. DISKRETNA MATEMATIKA
3.4
63
Uredajne binarne relacije
Postoje relacije koje imaju po nekoliko od nabrojanih svojstava. Za problem uredivanja skupova posebno su vaˇzne sljede´ce relacije koje zajedniˇckim imenom zovemo uredajne relacije: 1. relacija djelomiˇcnog (parcijalnog) uredaja: refleksivna, antisimetriˇcna, tranzitivna; 2. relacija slabog uredaja: strogo kompletna, tranzitivna; 3. relacija kvazi-uredaja: refleksivna, tranzitivna. 4. relacija totalnog (linearnog) uredaja: antisimetriˇcna, strogo kompletna, tranzitivna.
3.4.1
Relacija parcijalnog uredaja
Relacija parcijalnog uredaja poop´cava relaciju ≤ na skupu realnih brojeva, tako da preuzima tri njezina najvaˇznija svojstva. Prisjetimo se da za relaciju ≤ vrijedi svojstvo refleksivnosti jer je a ≤ a za svaki realni broj a. Nadalje, ta je relacija antisimetriˇcna jer iz a ≤ b i b ≤ a slijedi a = b. Na kraju, relacija je i tranzitivna jer oˇcigledno vrijedi da ako je a ≤ b i b ≤ c, tada je a ≤ c. To je razlog ˇsto ovu relaciju ˇcesto oznaˇcavamo 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ˇcna 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ˇcki prikaz relacija parcijalnog uredaja ˇcesto se upotrebljavaju Hasseovi dijagrami. Hasseovi dijagrami prikazuju elemente skupa kao vrhove grafa, koriste´ci svojstvo da ako je a ”manji” od b tj. a ¹ b, vrh a bit ´ce na slici povezan sa b, ali smjeˇsten ispod njega. Hasseovi dijagrami imaju manje lukova od usmjerenih grafova koji prikazuju relacije, poˇsto se ne crtaju svi lukovi, zato jer su neki dani posredno kao kombinacija dvaju ili viˇse 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ˇcite visine i postoje´ca dva luka podrazumijeva luk izmedu {1} i {1, 2, 3}. Kad je skup parcijalno ureden ne znaˇci da svaka dva elementa skupa moˇzemo 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´cenito (P (A) , ⊆) nije linearno uredeni skup. Definicija 3.13 Neka je (A, ¹) parcijalno ureden skup i B ⊆ A. Tada 1. b ∈ B je najve´ci 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ˇzite pomo´cu grafa. Ispitajte postojanje najve´ceg i najmanjeg elementa za razliˇcite podskupove ovog skupa.
{a}
{a,b}
∅
{b} Slika 3.3
POGLAVLJE 3. DISKRETNA MATEMATIKA
65
a) B = {{a}} , {a} je najve´ci i najmanji element, b) B = {{a} , {b}} nema ni najve´ceg ni najmanjeg elementa, c) B = {∅, {a}} {a} je najve´ci element, ∅ je najmanji element. Zadatak 3.11 Parcijalno uredeni skup iz prethodnog primjera prikaˇzite pomo´cu 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´ci element, onda je on jedinstven. Dokaz. Neka su a, b dva razliˇcita, najve´ca elementa. a je najve´ci ⇒ b ¹ a, b je najve´ci ⇒ a ¹ b. Zbog antisimetriˇcnosti 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´ceg elementa moˇze definirati i maksimalni element, koji ne mora biti jedinstven. Osnovno je kod definicije maksimalnog elementa da ne postoji element koji je od njega ve´ci, ali on ne mora biti od svih ve´ci. To se moˇze 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ˇze 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ˇzemo definirati najve´cu donju medu i najmanju gornju medu na sljede´ci naˇcin. Definicija 3.16 Neka je (A, ¹) parcijalno ureden skup i a, b ∈ A. Tada je d ∈ A najve´ca 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ˇcimo da je na skupu realnih brojeva uz relaciju ≤ najve´ca donja meda dva broja manji od dva broja, a najmanja gornja meda jednaka je ve´cem od brojeva. Na parcijalno uredenom skupu (P (A) , ⊆) najve´ca donja meda elemenata X, Y je X ∩ Y, a najmanja gornja meda je X ∪ Y. Definicija najve´ce donje i najmanje gornje mede moˇze se proˇsiriti na nizove elemenata parcijalno uredenog skupa. Posebno, u skupovima brojeva kao ˇsto su R, Q, Z, N mogu se promatrati beskonaˇcni nizovi brojeva i njihove mede. Postavlja se pitanje postoji li strogo padaju´ci niz brojeva u svakom od promatranih skupova brojeva. Oˇcito, u skupu prirodnih brojeva strogo padaju´ci niz ne postoji. Nadalje, moˇzemo rjeˇsavati problem da li omedeni, strogo padaju´ci niz racionalnih brojeva ima najve´cu donju medu koja je racionalan broj. Odgovor nam je poznat iz matematiˇcke analize i negativan
POGLAVLJE 3. DISKRETNA MATEMATIKA
67
je. Medutim ograniˇceni, strogo padaju´ci niz realnih brojeva ima najve´cu donju medu koja je realni broj. Ova je tvrdnja vrlo vaˇzna, pa se ˇcesto 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 elementa imaju najve´cu donju medu i najmanju gornju medu zovemo mreˇza (eng. lattice). Parcijalno uredeni skupovi (R, ≤) i (P (A) , ⊆) su mreˇze. Zadatak 3.13 Dokaˇzite da ako postoji najve´ca donja meda dvaju elemenata u parcijalno uredenom skupu onda je ona jedinstvena. Dokaˇzite da ako postoji najmanja gornja meda dvaju elemenata u parcijalno uredenom skupu onda je ona jedinstvena. Zadatak 3.14 Pokaˇzite da je (P (A) , ⊆) (k (A) ≥ 2) parcijalno uredeni skup koji ima najve´ci 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ˇzemo da ako a dijeli b znaˇci da postoji neki drugi cijeli broj q takav da je b = qa. U tom sluˇcaju upotrebljavamo notaciju a | b i kaˇzemo da je a divizor (ili djelitelj ili faktor), q kvocijent, te da a dijeli b. Broj b je tada viˇsekratnik broja a. Ukoliko a ne dijeli b piˇsemo 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ˇzimo da tada a dijeli linearnu kombinaciju brojeva b i c, tj. da vrijedi a | (xb + yc) za sve cijele brojeve x i y. Tvrdnju ´cemo 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ˇcunamo: xb + yc = xqa + ypa = (xq + yp) a, ˇcime 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ˇcnost i tranzitivnost. Refleksivnost vrijedi jer za svaki prirodni broj n vrijedi n | n. Da bismo dokazali antisimetriˇcnost pretpostavimo da postoje dva prirodna 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ˇstavanjem n iz druge jednakosti u prvu dobijamo m = pqm, pa slijedi da je pq = 1. U skupu prirodnih brojeva mogu´ce je samo jedno rjeˇsenje i to p = q = 1. Iz toga slijedi m = n, pa je antisimetriˇcnost relacije | na skupu prirodnih brojeva dokazana. Primjetimo
68
3.4. UREDAJNE BINARNE RELACIJE
da u skupu cijelih brojeva nalazimo i rjeˇsenje p = q = −1, koje ´ce znaˇciti da ne vrijedi antisimetriˇcnost relacije | na skupu Z. Dokaˇzimo 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, ˇsto znaˇci da n dijeli s. Zapamtimo da (Z, |) nije parcijalno uredeni skup. Koja svojstva ne vrijede? Znamo da je najve´ci zajedniˇcki djelitelj dva cijela broja razliˇcita od nule, najve´ci cijeli broj koji dijeli oba zadana broja. Najve´ci zajedniˇcki djelitelj od a i b, zovemo joˇs i mjera dva broja i oznaˇcavamo ga sa M (a, b) ili D (a, b) . Pogledajmo prethodnu definiciju u kontekstu parcijalno uredenih skupova. Ovdje to znaˇci da parcijalno uredenom skupu (N, |) interpretiramo pojam najve´ceg zajedniˇckog djeljitelja kao najve´cu donju medu para brojeva. To nam i garantira jedinstvenost najve´ceg zajedniˇckog djelitelja para prirodnih brojeva. Propozicija 3.8 Najve´ci zajedniˇcki djelitelj para prirodnih brojeva u parcijalno uredenom skupu (N, ≤) predstavlja najve´cu donju medu tih brojeva. Korolar 3.1 Najve´ci zajedniˇcki djelitelj dvaju prirodnih brojeva je jedinstveni je prirodni broj. Problem nalaˇzenja najve´ceg zajedniˇckog djelitelja obraden je u poglavlju o algoritmima. Tamo je izloˇzen i Euklidov algoritam pomo´cu kojeg se efektivno nalazi najve´ci zajedniˇcki djelitelj para cijelih brojeva razliˇcitih 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 ˇcinjenicu ponavljamo uzastopno u Euklidovom algoritmu. Za cijele brojeve a, b kaˇzemo 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ˇzenim brojevima. Posebno zanimljiv problem teorije brojeva je problem nalaˇzenja prostih brojeva. Za odredivanje relativno malih prostih brojeva upotrebljava se tzv. Eratostenovo sito. ˇ Cinjenica da se svaki prirodan broj n > 1 moˇze na jedinstveni naˇcin prikazati u obliku produkta prostih brojeva zove se fundamentalni teorem aritmetike. Ovaj se teorem dokazuje jakim oblikom matematiˇcke indukcije. Definira se i najmanji zajedniˇcki viˇsekratnik cijelih brojeva a i b razliˇcitih od nule kao najmanji prirodni broj koji je viˇsekratnik brojeva a i b. Oznaka za najmanji zajedniˇcki viˇsekratnik je V (a, b) .
POGLAVLJE 3. DISKRETNA MATEMATIKA
69
Propozicija 3.9 Najmanji zajedniˇcki viˇsekratnik dvaju prirodnih brojeva u parcijalno uredenom skupu (N, ≤) predstavlja najmanju gornju medu tih brojeva. Korolar 3.2 Najmanji zajedniˇcki viˇsekratnik dvaju prirodnih brojeva je jedinstven. Znamo da za svaka dva prirodna broja postoje njihovi zajedniˇcki djelitelji, jedan od njih je uvijek broj 1, pa je skup zajedniˇckih djelitelja neprazan. S druge strane taj je skup omeden odozgo sa zadanim prirodnim brojevima. Znamo da svaki odozgo omedeni skup prirodnih brojeva ima najve´ci element, pa to osigurava postojanje najve´ceg zajedniˇckog djelitelja. Nadalje, poznato je da uvijek postoji barem jedan zajedniˇcki viˇsekratnik para n, m prirodnih brojeva (broj nm) pa postoji i njihov najmanji zajedniˇcki viˇsekratnik. Postojanje najmanjeg zajedniˇckog viˇsekratnika 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ˇcki viˇsekratnik i najve´cu zajedniˇcku mjeru pa parcijalno uredeni skup (N, |) ispunjava zahtjeve da bude mreˇza. Propozicija 3.10 Parcijalno uredeni skup (N, |) je mreˇza. Zadatak 3.15 Pokaˇzite da za cijele brojeve a, b vrijedi M (a, b) V (a, b) = |ab| .
3.5
Funkcije
Pojam funkcije toliko je vaˇzan da se na razliˇcite naˇcine i u razliˇcitim ulogama pojavljuje u svim granama matematike, ali i u drugim znanstvenim disciplinama i praktiˇcnim problemima. Evo op´cenite definicije funkcije. Definicija 3.19 Funkcija f je preslikavanje (pridruˇzivanje) elemenata izmedu dva skupa (domene i kodomene) i to takvo da svakom elementu prvog skupa (domene) pridruˇzuje jedan i samo jedan element drugog skupa (kodomene). Funkcija se moˇze shvatiti i kao binarna relacija f na Kartezijevom produktu 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ˇcite prve komponente. Piˇsemo f˙ : A → B, gdje A predstavlja domenu, a B kodomenu funkcije f.
70
3.5. FUNKCIJE
Funkcije se mogu zadavati formulom, nabrajanjem uredenih parova, grafiˇcki te pomo´cu svojstva. Nabrajanjem elemenata funkcija se moˇze zadati iskljuˇcivo u diskretnom sluˇcaju, a posebno kad radimo s konaˇcnim skupovima. Pridruˇzivanje koje svakom gradaninu Hrvatske pridruˇzuje njegov JMBG (jedinstveni matiˇcni broj gradana) je primjer funkcije koja se moˇze zadati nabrajanjem elemenata. Pri tome je prvi ˇclan para gradanin Hrvatske (opisan preko odredenih atributa), a drugi ˇclan 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ˇzemo zadati i pomo´cu 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ˇzivanja elemenata, funkciju f : A → B piˇsemo 1 7→ 1, 2 7→ 4, 3 7→ 9. Kad se radi o funkciji f obiˇcno umjesto (a, b) ∈ f piˇsemo b = f (a) . Odnosno, za svaki b ∈ B jednadˇzba b = f (x) ima rjeˇsenje 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ˇzemo 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ˇcno 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
3.5.2
71
Bijekcija. Inverzna funkcija
Definicija 3.21 Funkcija f : D → K je injekcija ako razliˇcite elemente iz domene preslikava u razliˇcite 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ˇcita 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ˇsite definicije surjekcije, injekcije i bijekcije koriste´ci pojam funkcije kao relacije. −1 Definicija ¡ −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ˇzenjenih ljudi i f : S → S funkcija koja svakoj osobi iz S pridruˇzuje njezinog braˇcnog partnera. Je li zadana funkcija bijekcija? Izraˇcunajte f ◦ f.
72
3.5. FUNKCIJE
Definicija 3.25 Permutacija je bijekcija na skupu A. Ako je A konaˇcan skup, tada je funkcija p : A → A injekcija ako i samo ako je p surjekcija. Svaka se permutacija konaˇcnog skupa moˇze prikazati kao µ ¶ 1 2 . . . n p= . p (1) p (2) . . . p (n) Definicija 3.26 Svaki sluˇcaj kad u permutaciji vrijedi i < j ⇒ p (i) > p (j) zovemo inverzijom u p. Oznaˇcimo 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ˇzemo da je permutacija parna. Ako je sign (p) = −1 kaˇzemo 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ˇcnom broju algebarskih operacija (zbrajanju, oduzimanju, mnoˇzenju konstantom, mnoˇzenju, dijeljenju, potenciranju racionalnim brojem). Funkcije koje nisu algebarske zovemo transcedentnima. Za algebarsku funkciju kaˇzemo 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) , (3.4) f (x) = Q (x) gdje su P (x) , Q (x) polinomi i Q (x) 6= 0.
POGLAVLJE 3. DISKRETNA MATEMATIKA
73
Specijalni sluˇcaj racionalne funkcije je homografska funkcija, odnosno funkcija oblika f (x) =
ax + b , 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ˇznijih realnih funkcija realne varijable. • racionalna funkcija oblika 3.4 ima domenu Df = {x ∈ R | Q (x) 6= 0} . • iracionalna funkcija oblika f (x) =
p
2k
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ˇcaka ravnine definiran sa Γf = {(x, f (x)) | x ∈ Df } . Graf implicitno zadane funkcije (jednadˇzbe) F (x, y) = 0 s varijablama x, y je skup toˇcaka (x, y) ravnine, koje zadovoljavaju jednadˇzbu.
3.6.1
Neka svojstva realnih funkcija realne varijable
Slijede vaˇznija svojstva realnih funkcija realne varijable. • Za broj x0 ∈ R kaˇzemo da je nultoˇcka funkcije y = f (x) ako je f (x0 ) = 0. • Za funkciju y = f (x) kaˇzemo da je ograniˇcena odozgo (odozdo) ako ∃M ∈ R (∃m ∈ R), takav da je f (x) ≤ M (f (x) ≥ m), ∀x ∈ Df . Funkcija je ograniˇcena (omedena) ako je ograniˇcena 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´ci realan broj m, koji je donja meda funkcije, zovemo najve´com donjom medom.
74
3.6. GRAF FUNKCIJE • Za funkciju y = f (x) kaˇzemo 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ˇzemo 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ˇcju definicije zovemo monotonom. • Za funkciju y = f (x) kaˇzemo da ima lokalni maksimum u toˇcki xM ako ∃O, O ⊆ Df , xM ∈ O, takav da ∀x, x ∈ O, f (x) ≤ f (xM ) . Vrijednost f (xM ) funkcije f u toˇcki xM zovemo maksimalnom vrijednoˇs´cu. Za funkciju y = f (x) kaˇzemo da ima lokalni minimum u toˇcki xm ako ∃O, O ⊆ Df , xm ∈ O takav da ∀x, x ∈ O, f (x) ≥ f (xm ) . Vrijednost f (xm ) funkcije f u toˇcki xm zovemo minimalnom vrijednoˇs´cu. Jednim imenom za lokalni maksimum i minimum kaˇzemo da su lokalni ekstremi funkcije. Za funkciju y = f (x) kaˇzemo da ima strogi lokalni maksimum u toˇcki 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ˇzemo da je periodiˇcna ako ∃T ∈ R, T > 0 takav da vrijedi f (x + T ) = f (x) , ∀x ∈ Df .
(3.5)
Za T kaˇzemo 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ˇzemo da je parna ako vrijedi f (−x) = f (x) , ∀x ∈ Df . Za funkciju y = f (x) kaˇzemo da je neparna ako vrijedi f (−x) = −f (x) , ∀x ∈ Df . Graf parne funkcije je osno simetriˇcan s obzirom na os y, a graf neparne funkcije je centralno simetriˇcan s obzirom na ishodiˇste. Ve´cina 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ˇ caj 3.1 0 < a < 1. Funkcija pada na cijeloj domeni. f (x) → 0 kad x → +∞.
POGLAVLJE 3. DISKRETNA MATEMATIKA Primjer 3.20 f (x) =
75
1 x 2
y 4 3 2
1 -2
-1
0
1
2
x
2
x
Slika 3.5
Sluˇ caj 3.2 a > 1. Funkcija raste na cijeloj domeni. f (x) → 0 kad x → −∞. Primjer 3.21 f (x) = 2x
y 4 3 2 1
-2
-1
0
1
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 ˇcemu 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. 6. loga
x = y p
loga x − loga y.
7. loga x = p loga x, p ∈ R, p6=0. 8. loga x =
logb x . logb a
9. loga b =
1 . logb a
Sluˇ caj 3.3 0 < a < 1. Funkcija pada na cijeloj domeni. f (x) → 0 kad x → +∞. Primjer 3.22 f (x) = log 1 x 2
y 3 2 1 -1
0
1
2
-1 -2
Slika 3.7
3
4
x
POGLAVLJE 3. DISKRETNA MATEMATIKA
77
Sluˇ caj 3.4 a > 1. Funkcija raste na cijeloj domeni. f (x) → 0 kad x → −∞. Primjer 3.23 f (x) = log2 x
y 3 2 1 -1
1
0
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ˇznu ulogu u informatici. To su realne funkcije realne varijable, ˇcija je kodomena skup cijelih brojeva. Spomenimo funkciju ”najve´ce cijelo manje od” (floor - pod) i ”najmanje cijelo ve´ce 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´ci cijeli broj manji ili jednak x. Za svaki realni broj x definiramo dxe kao najmanji cijeli broj ve´ci ili jednak od x. Vrijede sljede´ce nejednakosti medu tim funkcijama: bxc
≤
x ≤ dxe ,
x−1
≤
bxc ≤ x,
x
≤
dxe ≤ x + 1.
78
3.6. GRAF FUNKCIJE
3.6.2
Konaˇ cni i beskonaˇ cni skupovi
Skupovi se mogu klasificirati s obzirom na broj elemenata. Medutim, da bi ta klasifikacija imala smisla, tj. da bi nam omogu´cila particiju skupova s obzirom na broj elementa, moramo na skupovima definirati relaciju ekvivalencije. U definiciji jednakobrojnosti skupova kljuˇcnu 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ˇcko svojstvo svih ekvipotentnih skupova. Definicija 3.31 Skup A je konaˇcan 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ˇcan onda je beskonaˇcan. Ako je A konaˇcan, A 6= ∅ i bijektivan sa Nn = {1, 2, 3, ..., n} , tada on ima n elemenata i piˇsemo |A| = n ili k (A) = n. Vrijedi |∅| = 0. Primjer 3.24 Skupovi N i R su beskonaˇcni zbog sljede´cih injekcija: f (x)
=
g (x)
=
2x, x + 1, x ≥ 0, . 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ˇcni oni ipak nemaju isti kardinalni broj. Definicija 3.32 Skup A je prebrojivo beskonaˇcan ako i samo ako |A| = |N|, a prebrojiv ako i samo ako je konaˇcan ili prebrojivo beskonaˇcan. Beskonaˇcni 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ˇcan i piˇsemo |h0, 1i| = c (kontinuum). Propozicija se dokazuje metodom kontradikcije, a dokaz se moˇze prouˇciti u [5], str. 92. Vrijedi nadalje da je kontinuum ujedno i kardinalni broj skupa realnih brojeva tj. |R| = c. Name´ce se pitanje postoji li kardinalni broj k takav da je ℵ0 < k < c ? Ovu je hipotezu postavio veliki njemaˇcki matematiˇcar Georg Cantor (1845-1918) i nazvao je hipoteza kontinuuma. Paul Cohen je 1966. godine razrijeˇsio hipotezu kontinuuma i za to dobio Fieldsovu medalju, koja predstavlja najviˇse odlikovanje za matematiku. Odgovor glasi: uz standarni skup aksioma teorije skupova ne moˇze se odgovoriti na to pitanje. Zato matematiˇcari ovu hipotezu ponekad dodaju skupu osnovnih aksioma teorije skupova. Detaljna razrada vaˇzne teme o kardinalnim brojevima moˇze se na´ci u [4] i posebno u [12].
POGLAVLJE 3. DISKRETNA MATEMATIKA
3.7 3.7.1
79
Rekurzivne relacije Uvod
Neka je dan niz brojeva a1 , a2 , . . . , an , . . .. Najˇceˇs´ce se nizovi zadaju tako da se eksplicitno zada formula za izraˇcunavanje op´ceg ˇclana niza. Tako su zadani nizovi u primjeru 3.25. Primjer 3.25 Nizovi zadani pomo´cu op´ceg ˇclana: • an = 2n • an =
3n −1 2
No, ponekad je niz jednostavnije zapisati tako da se vrijednost n-tog ˇclana niza zada preko prethodnih ˇclanova niza. Takav naˇcin zadavanja ˇclanova niza naziva se rekurzivno zadavanje ˇclanova niza. Nizovi iz primjera 3.25 mogu se zadati rekurzivno i to je uˇcinjeno 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ˇ cki niz Jedan od najpoznatijih rekurzivno zadanih nizova je aritmetiˇcki niz o kojem govori definicija 3.33: Definicija 3.33 Neka su a, d ∈ R te neka je d 6= 0. Aritmetiˇcki niz definiramo rekurzivno kao a1 = a, an = an−1 + d.
(3.8)
Pri tome se d zove razlika ˇclanova aritmetiˇckog niza. Primjer 3.27 • Niz koji se sastoji od prirodnih brojeva redom od najmanjeg prema ve´cima zadaje se kao aritmetiˇcki niz na sljede´ci naˇcin: a1 = 1, an = an−1 + 1. • Niz koji se sastoji od negativnih cijelih brojeva poredanih od najve´ceg prema manjima se zadaje ovako: a1 = −1, an = an−1 − 1.
80
3.7. REKURZIVNE RELACIJE
Pokuˇsajmo sada zadati op´ci ˇclan aritmetiˇckog niza eksplicitno. Rekurzivna formula za aritmetiˇcki niz dana je s 3.8. Primijenimo li istu formulu na n − 1 ˇclan niza, dobit ´cemo 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ˇcunavanje op´ceg ˇclana aritmetiˇckog niza. Sljede´ca zanimljiva formula je ona koja daje sumu prvih n ˇclanova aritmetiˇckog niza. Ta je formula dana u sljede´coj propoziciji: Propozicija 3.13 Neka je sa Sn oznaˇcena suma prvih n ˇclanova aritmetiˇckog niza. Tada je Sn dana sljede´com formulom: Sn = n · a +
n · (n − 1) n · d = (a1 + an ) 2 2
(3.9)
Dokaz. Dokaz ide indukcijom po n. Napravite ga sami. Geometrijski niz Geometrijski niz je drugi vrlo vaˇzan niz koji se moˇze 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´cim: a1 = 1, an = 2 · an−1 . • Rekurzivna definicija geometrijskog niza koji poˇcinje brojem 2, a svaki sljede´ci broj u nizu dva puta je manji od prethodnog: a1 = 2, an = 1 2 · an−1 . Sliˇcno kao kod aritmetiˇckog reda, izraˇcunat ´cemo eksplicitnu formulu za izraˇcunavanje op´ceg ˇclana geometrijskog niza. Primijenimo li formulu 3.10 na (n − 1)-vi ˇclan niza i uvrstimo ono ˇsto smo dobili opet u formulu 3.10, dobit ´cemo
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ˇcki, moˇze izvesti formula za sumu prvih n ˇclanova. Propozicija 3.14 Neka je sa Sn oznaˇcena suma prvih n ˇclanova geometrijskog niza. Tada Sn iznosi Sn = a ·
1 − qn 1−q
(3.11)
Dokaz. Indukcijom po n. Izvedite ga sami. *** No, geometrijski je red konvergentan za q ∈< −1, 1 >. To znaˇci da, pustimo li da broj ˇclanova geometrijskog niza raste prema beskonaˇcnosti, njihova ´ce se suma sve viˇse pribliˇzavati nekom broju koji nije beskonaˇcan. Kojem ´ce se broju pribliˇzavati 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 lim Sn =
n→∞
a1 . 1−q
(3.12)
Dokaz. Potrebno je izraˇcunati limes lim Sn = lim an ·
n→∞
n→∞
1 − qn 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´cu poznati matematiˇcar Leonardo Fibonacci iz Pise, bavio se problemom pove´canja broja zeˇceva razmnoˇzavanjem. Problem je zadan na sljede´ci naˇcin: svaki par zeˇceva starih barem dva mjeseca dobiju par zeˇci´ca svaki mjesec, pri tome je uvijek jedan zeˇci´c muˇskog a jedan ˇzenskog spola. Ako smo zapoˇceli uzgoj s jednim parom novorodenih zeˇci´ca, koliko ´cemo zeˇceva imati nakon n mjeseci? Fibonacci je dokuˇcio da se broj zeˇceva pove´cava prema sljede´cem nizu: 1, 1, 2, 3, 5, 8, 13, 21, . . .. Odnosno prema nizu koji se moˇze zadati rekurzivno kao f1 = 1, f2 = 1, fn = fn−1 + fn−2
(3.13)
82
3.7. REKURZIVNE RELACIJE
To je joˇs jedan vrlo poznati primjer rekurzivno zadanog niza brojeva. Naravno, i ovdje se postavlja problem pronalaˇzenja eksplicitne jednadˇzbe za op´ci ˇclan. Rjeˇsenje tog problema nije, medutim tako oˇcito kao ˇsto je to bio sluˇcaj u prethodna dva primjera, ve´c je za njegovo rjeˇsavanje potreban razvijeniji matematiˇcki aparat. Stoga ´cemo se problemu eksplicitne formule op´ceg ˇclana Fibonaccijevog niza vratiti kasnije, kada razvijemo tehnike rjeˇsavanja rekurzivnih jednadˇzbi.
3.7.2
Rjeˇ savanje rekurzija - karakteristiˇ cna jednadˇ zba
Definicija 3.35 Neka su c0 , . . . , ck−1 konstante i neka je f (n) funkcija. Tada se jednadˇzba an = ck−1 · an−1 + . . . c1 · an−k+1 + c0 · an−k + f (n)
(3.14)
naziva linearna nehomogena rekurzivna jednadˇzba k-tog reda s konstantim koeficijentima, dok se jednadˇzba an = ck−1 · an−1 + . . . c1 · an−k+1 + c0 · an−k
(3.15)
zove linearna homogena rekurzivna jednadˇzba k-tog reda s konstantim koeficijentima. Za jednadˇzbu 3.15 kaˇzemo da je pripadna homogena jednadˇzba jednadˇzbe 3.14. Definicija 3.36 Neka je dana linearna homogena rekurzivna jednadˇzba 3.15. Tada se jednadˇzba xk − ck · xk + . . . c1 · x + c0 = 0
(3.16)
naziva karakteristiˇcna jednadˇzba linearne homogene rekurzivne jednadˇzbe 3.15 Teorem 3.9 Neka je zadana linearna homogena rekurzivna jednadˇzba 3.15. Pretpostavimo da karakteristiˇcna jednadˇzba linearne homogene rekurzivne jednadˇzbe 3.15 ima sve jednostruke i realne korijene x1 , . . . , xk . Tada je op´ce rjeˇsenje linearne homogene rekurzivne jednadˇzbe 3.15 oblika an = C1 · xn1 + . . . + Ck · xnk . Dokaz ovog teorema ne´cemo provoditi. Zainteresirani ˇcitatelj dokaz moˇze na´ci u [12], str. 182. Primjer 3.29 Izraˇcunajmo sada eksplicitnu formulu za op´ci ˇclan Fibonaccijevog niza. Podsjetimo se da rekurzivna formula za op´ci ˇclan Fibonaccijevog niza glasi: fn = fn−1 + fn−2 ,
(3.17)
POGLAVLJE 3. DISKRETNA MATEMATIKA
83
uz poˇcetne uvjete f1 = f2 = 1.
(3.18)
Karakteristiˇcna jednadˇzba ove rekurzije je kvadratna jednadˇzba x2 − x − 1 = 0. Stoga su korijeni ove jednadˇzbe √ √ 1+4 1± 5 x1,2 = = , 2 2 pa op´ce rjeˇsenje rekurzije 3.17 glasi: " " √ #n √ #n 1+ 5 1− 5 fn = C1 · + C2 · . 2 2 1±
(3.19)
Vrijednosti konstanti C1 i C2 dobivamo iz poˇcetnih uvjeta. Uvrstimo li poˇcetne uvjete u jednadˇzbu 3.19 dobivamo sustav jednadˇzbi √ √ 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ˇsimo li ovaj sustav dobit ´cemo C1 = √15 i C2 = − √15 . Dakle, op´ci ˇclan Fibonaccijevog niza iznosi " " √ #n √ #n 1 1+ 5 1 1− 5 fn = √ · −√ · . 2 2 5 5 Opisali smo kako se izraˇcunava eksplicitna formula homogene linearne rekurzivne jednadˇzbe s konstantnim koeficijentima u sluˇcaju da su svi korijeni karakteristiˇcne jednadˇzbe razliˇciti i realni. Moˇze se, medutim dogoditi da karakteristiˇcna jednadˇzba ima viˇsestruke korijene. Tada nam rjeˇsenje daje sljede´ci teorem. Teorem 3.10 Neka je dana linearna homogena rekurzivna jednadˇzba ktog reda s konstantnim koeficijentima 3.15, te neka njena karakteristiˇcna jednadˇzba ima t-struki korijen x. Tada x tvori t pribrojnika op´ceg rjeˇsenja rekurzije 3.15 C1 · xn , C2 · n · xn , . . . , Ct · nt−1 · xn . Ni ovaj teorem ne´cemo dokazivati. Njegov se dokaz takoder moˇze prona´ci u [12], str. 186. Pogledajmo, rade, kako ovaj teorem funkcionira na konkretnom primjeru.
84
3.7. REKURZIVNE RELACIJE
Primjer 3.30 Izraˇcunajmo eksplicitnu formulu za rekurziju an = 5 · an−1 − 8 · an−2 + 4 · an−3 , uz poˇcetne uvjete a1 = 0, a2 = 2, a3 = 2. Karakteristiˇcna jednadˇzba ove rekurzije je x3 − 5 · x2 + 8 · x − 4 = 0. Uoˇcimo da ovu jednadˇzbu moˇzemo faktorizirati na sljede´ci naˇcin: (x − 1) · (x − 2)2 = 0. Iz posljednje formule slijedi da jednadˇzba ima jednostruki korijen 1 i dvostruki korijen 2, pa je njeno op´ce rjeˇsenje oblika: an = C1 · 1n + C2 · 2n + C3 · n · 2n ,
(3.21)
gdje cu c1 , c2 i c3 proizvoljne konstante. Uvrstimo li poˇcetne uvjete u jednadˇzbu 3.21 dobit ´cemo sljede´ci sustav: a1 = 0 = C1 + 2 · C2 + 2 · C3 a2 = 2 = C1 + 4 · C2 + 8 · C3 a3 = 2 = C1 + 8 · C2 + 24 · C3 Rjeˇsavanjem ovog sustava dobijamo C1 = −6, C2 = 4, C3 = −1, odnosno eksplicitnu jednadˇzbu op´ceg ˇclana niza an = −6 + 4 · 2n − n · 2n . Tre´ci je sluˇcaj kada rekurzivna jednadˇzba ima konjugirano kompleksne korijene. Kako govorimo o rekurzivnim jednadˇzbama s konstantnim realnim koeficijentima, njihove su karakteristiˇcne jednadˇzbe se dobivaju izjednaˇcavanjem polinoma realne varijable s realnim koeficijentima sa nulom. Prema tome, ako karakteristiˇcna jednadˇzba ima kompleksan korijen, on mora ˇciniti par korijena s njemu konjugiranim kompleksnim brojem (vidi [7], str. 51.). Ovaj se sluˇcaj moˇze rjeˇsavati sliˇcno kao sluˇcaj s realnim korijenima. Medutim, imamo li korijene z1,2 = a ± b · i, tada ta dva korijena daju u rjeˇsenju: C1 · (a + b · i)n + C1 · (a − b · i)n . Primijenimo li de Moivreovu formulu dobit ´cemo 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 ˇcemu je cos ϕ = sin ϕ =
a √ , 2 a + b2 b √ . a2 + b2
S druge strane, kako su z1 i z2 konjugirano kompleskni brojevi, njihova je √ 2 apsolutna vrijednost jednaka i iznosi a + b2 . Sliˇcno, ϕ2 = −ϕ1 , pa je cos nϕ1 = cos nϕ1 i sin nϕ2 = − sin nϕ2 . Raspiˇsemo 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 ´cemo |z|n (K1 · cos nϕ + K2 · i sin nϕ). Primjer 3.31 Nadimo eksplicitnu formulu za op´ci ˇclan niza definiranog formulom an = 2 · an−1 − 2 · an−2 , uz poˇcetne uvjete a1 = 2, a2 = 2. Karakteristiˇcna jednadˇzba ove rekurzije je x2 − 2 · x + 2 = 0 Njeni korijeni su x1,2 = 1 ± i, pa imamo p √ |z| = 12 + 12 = 2 Nadalje,
cos ϕ = sin ϕ =
√ 2 1 √ = , 2 2 2 1 +1 √ 1 2 √ = , 2 2 2 1 +1
iz ˇcega slijedi da je ϕ=
π 4
te da je ³ √ π π´ an = ( 2)n · K1 · cos n + K2 · i · sin n . 4 4 Uvrstimo li poˇcetne uvjete dobivamo sustav jednadˇzbi √ ³ π´ π , 2 · K1 · cos + K2 · i · sin 4 4 ³√ ´2 ³ π π´ 2 = 2 · K1 · cos 2 + K2 · i · sin 2 , 4 4 2 =
86
3.7. REKURZIVNE RELACIJE
odnosno √ 2 = 2·
Ã
√ √ ! 2 2 K1 · + K2 · i · , 2 2
2 = 2 · (K2 · i) . Iz druge jednadˇzbe izlazi da je K2 = −i, a kada to uvrstimo u prvu jednadˇzbu, dobijamo à √ √ ! √ 2 2 2 = 2 · K1 · + , 2 2 iz ˇcega izlazi da je K1 = 1. Dakle, op´ce rjeˇsenje ove rekurzije je µ ¶ √ n Π Π an = ( 2) · cos n + sin n . 4 4 Time smo opisali sve mogu´ce sluˇcajeve koji se javljaju kod rjeˇsavanja linearnih homogenih rekurzivnih jednadˇzbi s konstantnim koeficijentima. Sljede´ci problem koji se postavlja jest problem rjeˇsavanja nehomogenih linearnih rekurzivnih jednadˇzbi. Teorem 3.11 Neka je zadana linearna nehomogena rekurzivna jednadˇzba k-tog reda s konstantnim koeficijentima 3.14. Neka je q op´ce rjeˇsenje pripadne linearne homogene rekurzije rekurzije 3.14 te neka je p bilo koje rjeˇsenje nehomogene linearne rekurzije 3.141 . Tada je an = q + p op´ce rjeˇsenje jednadˇzbe 3.14. Dokaz ovog teorema, kao i prethodna dva, moˇze se na´ci u [12], str. 188. Postavlja se problem kako prona´ci partikularno rjeˇsenje? Za taj problem ne postoji neka standardna metoda no za neke je funkcije poznat oblik partikularnog rjeˇsenja. Neke od tih funkcija dane su u sljede´coj tablici:
Funkcija f (n) d dn dnm an
Partikularno rjeˇ senje an A A1 n + A2 Pm (n) (polinom m-tog stupnja) A · an Tablica 3.2
1
Obiˇcno se takvo proizvoljno rjeˇsenje naziva partikularno rjeˇsenje
POGLAVLJE 3. DISKRETNA MATEMATIKA
87
Primjer 3.32 Potrebno je prona´ci rjeˇsenje rekurzivne jednadˇzbe an = 2an−1 + 1, uz uvjet da je a1 = 1. Pripadna homogena jednadˇzba ove rekurzije je an = 2an−1 , a njena karakteristiˇcna jednadˇzba je x − 2 = 0. Korijen ove jednadˇzbe je x1 = 2 pa je op´ce rjeˇsenje pripadne homogene rekurzivne jednadˇzbe an = C · 2n . Iz tablice proˇcitamo partikularno rjeˇsenje, te dobijamo da je op´ce rjeˇsenje nehomogene rekurzivne jednadˇzbe an = C · 2n + A. Kako bismo pronaˇsli partikularno rjeˇsenje, stavljamo da je an = A. Uvrstimo li originalnu jednadˇzbu 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ˇcetni uvjet, imat ´cemo 1 = C1 · 2 − 1. iz ˇcega slijedi da je C1 = 1, odnosno an = 2n − 1. Nehomogene rekurzije mogu se jednostavno izraˇcunavati i na drugi naˇcin, bez upotrebe tablice partikularnih rjeˇsenja: svodenjem nehomogene rekurzije na homogenu. Prikazat ´cemo kako se to radi na rekurzijama iz prethodna dva zadatka. Primjer 3.33 Rijeˇsimo ponovo rekurziju iz zadatka 3.32. Jednadˇzbu za n-ti ˇclan primijenimo na (n − 1)-vi ˇclan, te oduzmemo ˇsto smo dobili od jednadˇzbe za n-ti ˇclan:
88
3.7. REKURZIVNE RELACIJE an an−1 an − an−1
= = =
2an−1 + 1 2an−2 + 1 2an−1 − 2an−2 .
Dakle, poˇcetnu rekurziju sveli smo na homogenu rekurziju an = 3an−1 − 2an−2 . Karakteristiˇcna jednadˇzba ove rekurzije je x2 − 3x + 2 = 0. Korijeni ove jednadˇzbe su x1 = 1, x2 = 2, pa je op´ce rjeˇsenje rekurzije oblika: an = C1 · 1n + C2 · 2n .
(3.23)
Kako se prilikom homogenizacije pove´cao stupanj rekurzije, potrebno je prona´ci joˇs jedan poˇcetni uvjet: a2 = 2a1 + 1 = 3. Uvrstimo li sada oba poˇcetna uvjeta u dobiveno op´ce rjeˇsenje 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ˇsimo joˇs jednadˇzbu an = 4 · an−1 + n · 2n uz poˇcetni uvjet a0 = 4. Formulu za n-ti ˇclan ´cemo primijeniti na (n − 1)-vi ˇclan, te ´cemo tako dobivenu formulu pomnoˇziti s dva i oduzeti od formule za n-ti ˇclan: an 2an−1 an − 2an−1
= = =
4an−1 + n · 2n+1 8an−2 + (n − 1) · 2n+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ˇzbu:
POGLAVLJE 3. DISKRETNA MATEMATIKA an 2an−1 an − 2an−1
= = =
89
6an−1 − 8an−2 + 2n+1 12an−2 − 16an−3 + 2n+1 6an−1 − 18an−2 + 16an−3 .
Dobili smo homogenu rekurziju: an = 8an−1 − 20an−2 + 16an−3 . Karakteristiˇcna jednadˇzba ove rekurzije je x3 − 8x2 + 20x − 16 = 0. Korijeni ove jednadˇzbe su x1,2 = 2, x3 = 4. Dakle, op´ce rjeˇsenje ove rekurzije ima oblik: an = C1 · 2n + C2 · n · 2n + C3 · 4n . Za rjeˇsavanje su nam potrebna tri poˇcetna uvjeta, pa trebamo izraˇcunati joˇs a1 i a2 . a1 = 4 · 4 + 2 · 2 = 20, a2 = 4 · 20 + 2 · 2 · 22 = 96. Uvrˇstavanjem poˇcetnih uvjeta u op´ce rjeˇsenje dobivamo sustav jednadˇzbi 4 = C1 + C3 20 = 2C1 + 2C2 + 4C3 96 = 4C1 + 8C2 + 16C3 Rjeˇsenja ovog sustava su C1 = −4, C2 = −2, C3 = 8, pa op´ce rjeˇsenje nehomogene rekurzije glasi: an = −4 · 2n + −2 · n · 2n + 8 · 4n . Prije no ˇsto krenemo na metodu rjeˇsavanja rekurzija na joˇs jedan naˇcin, pomo´cu funkcija izvodnica, opisat ´cemo joˇs jedan oblik rekurzija koje nisu linearne, ali se mogu izraˇcunati pomo´cu linearnih rekurzivnih jednadˇzbi. Ove jednadˇzbe igraju bitnu ulogu u ocjenjivanju sloˇzenosti algoritama, jer se vrlo ˇcesto javljaju pri ocjeni sloˇzenosti algoritama koji su izvedeni metodom podijeli pa ovladaj . Stoga se ove rekurzije ˇcesto 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ˇsiti pomo´cu karakteristiˇcnog polinoma.
90
3.7. REKURZIVNE RELACIJE
Primjer 3.35 Rijeˇsimo rekurziju an = a n2 + n uz poˇcetni uvjet a1 = 0. Upotrijebimo li supstituciju sn = a2n , dobijamo sn = a2n = a 2n + n = a2n−1 + n = sn−1 + n, 2
ˇcime smo dobili linearnu nehomogenu rekurziju prvog reda. Oduzmimo jednadˇzbu za ˇclan sn−1 od jednadˇzbe za ˇclan sn sn sn−1 sn − sn−1
= = =
sn−1 + n sn−2 + n − 1 sn−1 − sn−2 + 1,
iz ˇcega slijedi da je sn = 2sn−1 − sn−2 + 1. Oduzmemo li opet formulu za (n − 1)-vi ˇclan niza od formule za n-ti ˇclan, imamo: sn sn−1 sn − sn−1
= = =
2sn−1 − sn−2 + 1 2sn−2 − sn−3 + 1 2sn−1 + 3sn−2 + sn−3 .
Tako smo dobili linearnu homogenu rekurziju sn = 3sn−1 − 3sn−2 + sn−3 . Njena karakteristiˇcna jednadˇzba glasi: x3 − 3x2 + 3x − 1 = 0. Karakteristiˇcna jednadˇzba ima trostruki korijen x1,2,3 = 1, pa je op´ce rjeˇsenje oblika sn = C1 · 1n + C2 · n · 1n + C3 · n2 · 1n , odnosno sn = C1 + C2 · n + C3 · n2 . potrebno je prona´ci tri poˇcetna uvjeta kako bismo mogli odrediti koeficijente u op´cem rjeˇsenju: s0 = a1 = 0, s1 = a2 = a1 + 2 = 2, s2 = a4 = a2 + 4 = 6.
POGLAVLJE 3. DISKRETNA MATEMATIKA
91
Uvrstimo li poˇcetne uvjete u op´ce rjeˇsenje, 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´ce rjeˇsenje izvedene rekurzivne jednadˇzbe sn = n + n2 . Vratimo se sada zadanoj rekurziji. Sada imamo: sn = a2n = n + n2 , odnosno, an = log2 n + log22 n.
3.7.3
Rjeˇ savanje rekurzivnih jednadˇ zbi - funkcije izvodnice
Postoji joˇs jedna metoda, pomo´cu koje se mogu rjeˇsavati neke rekurzivne jednadˇzbe. Radi se o metodi rjeˇsavanja rekurzivnih jednadˇzbi pomo´cu polinoma beskonaˇcnog 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ˇzite da, za x 6= 1 vrijedi: 1 = 1 + x + x2 + . . . 1−x
(3.25)
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ˇzbe s 1 − x dobit ´cemo jednadˇzbu 3.25
92
3.7. REKURZIVNE RELACIJE
Zadatak 3.21 Dokaˇzite da za x 6= 1 vrijedi: 1 = 1 + 2x + 3x2 + . . . (1 − x)2
(3.27)
Deriviramo li lijevu i desnu stranu jednadˇzbe 3.25, dobit ´cemo 1 = 1 + 2x + 3x2 + . . . (1 − x)2
(3.28)
odnosno upravo jednadˇzbu 3.27. Primjer 3.36 Rijeˇsimo sada rekurziju an = 3an−1 , uz poˇcetni uvjet a0 = 1. Oduzmemo li sljede´ce dvije funkcije izvodnice: f (x) 3xf (x)
= =
a0 +
a1 x+ 3a0 x +
a2 x2 + 3a1 x2 +
...+ ...+
an x n + . . . 3an−1 xn + . . .
dobit ´cemo 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ˇcetni uvjet, imamo f (x)(1 − 3x) = 1, odnosno f (x) =
1 . 1 − 3x
Koriste´ci jednadˇzbu 3.25 dobivamo f (x) = 1 + 3x + (3x)2 + . . . + (3x)n + . . . odnosno f (x) = 1 + 3x + 32 x2 + . . . + 3n xn + . . . , pa je rjeˇsenje an = 3n . Zadatak 3.22 Rijeˇsite rekurziju an = 2an−1 + an−2 uz poˇcetne uvjete a0 = 3, a1 = −2 (koristite jednakost 3.27).
POGLAVLJE 3. DISKRETNA MATEMATIKA
93
Primijetimo da se ovom metodom izravno mogu rjeˇsavati samo homogene linearne rekurzije, dok se nehomogene rekurzije moraju rjeˇsavati na iste naˇcine kako je to prikazano u prethodnom poglavlju. Nadalje, treba napomenuti da se ovom metodom mogu rjeˇsavati samo one rekurzije za koje, nakon oduzimanja, znamo razvoj u red.
3.8
Diskretna teorija vjerojatnosti
Teorija vjerojatnosti je novija matematiˇcka grana, ˇciji poˇceci seˇzu u 17. st. Oni se veˇzu uz kockarske igre te ˇzelju za izraˇcunavanjem vjerojatnosti dobitka na njima. Zasluˇznima za poˇcetke teorije vjerojatnosti smatraju se B. Pascal i P. Fermat. Njen brˇzi razvoj dogada se u 19. st., rezultatima 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ˇcunavanje vjeroSlika 3.9: Andrey Kol- jatnosti dogadaja na diskretnim, odnosno konaˇ cmogorov nim i prebrojivim skupovima dogadaja. Ona se koristi u raˇcunarstvu u mnogim podruˇcjima. Ovdje posebno istiˇcemo koriˇstenje diskretne teorije vjerojatnosti kod takozvanih randomiziranih algoritama, te kod izraˇcunavanja prosjeˇcnog trajanja algoritma.
3.8.1
Osnove kombinatorike
Iako je kombinatorika zasebna matematiˇcka disciplina, u ovoj ´cemo je knjizi obraditi ukratko u sklopu diskretne teorije vjerojatnosti. Ona predstavlja osnovu za izraˇcunavanje vjerojatnosti u konaˇcnim vjerojatnosnim prostorima. Ovdje ´cemo opisati osnovne formule iz podruˇcja kombinatorike, bez pretenzije da se te formule dokaˇzu ili da se potpuno matematiˇcki fundiraju. Za ˇcitatelje koje zanima konzistentna razrada kombinatorike kao matematiˇcke discipline, preporuˇcamo naslove [6], [12], te [11]. Permutacije Prvi kombinatorni problem koji ´cemo ovdje prikazati jest problem permutacija. Imamo skup od n razliˇcitih elemenata. Postavlja se pitanje, na koliko razliˇcitih naˇcina se ti elementi mogu poredati u uredenu n-torku? Drugim rijeˇcima, koliko razliˇcitih nizova od n elemenata, ili permutacija, moˇzemo naˇciniti od tih n brojeva? Broj permutacija dan je sljede´com formulom: P (n) = n! = n · (n − 1) · . . . · 1.
(3.29)
94
3.8. DISKRETNA TEORIJA VJEROJATNOSTI
Primjer 3.37 Na koliko naˇcina moˇzemo poredati 5 raznobojnih kuglica u niz? Odgovor na ovo pitanje je: P (5) = 5! = 120
(3.30)
Imamo li k razliˇcitih vrsta elemenata, i ako od i-te vrste imamo ni komada. Koliko ima razliˇcitih permutacija takvih elemenata? Odgovor je n! . n1 ! · . . . · nk ! Ovakve se permutacije nazivaju permutacije s ponavljanjem. (n1 ,...,nk )
Pn
=
Primjer 3.38 Neka imamo 5 ˇzutih, 4 crvene i 3 plave kuglice. Ako istobojne kuglice medusobno ne razlikujemo, na koliko se naˇcina moˇze napraviti niz od tih kuglica? P 1 2(5,4,3) =
12! = 27720. 5! · 4! · 3!
Varijacije Drugi vaˇzan kombinatorni pojam koji ´cemo ovdje definirati jest pojam varijacije. Postoje dvije vrste varijacija - varijacije bez i sa ponavljanjem. Pitanje koje se postavlja je, na neki naˇcin, proˇsirenje pitanja koje smo postavili kada smo govorili o permutacijama, samo ˇsto se sada niz ne tvori od svih n elemenata, ve´c od k elemenata. Dakle, koliko razliˇcitih nizova duljine k moˇzemo napraviti od n razliˇcitih elemenata, odnosno koliko postoji varijacija k-tog razreda od n elemenata bez ponavljanja? Odgovor je dan sljede´com formulom: Vn(k) =
n! . (n − k)!
(3.31)
Primjer 3.39 Od 7 vojnika potrebno je izabrati 5 i poredati ih u vrstu. Na koliko je to naˇcina mogu´ce uˇciniti? 7! = 2520 2! Pretpostavimo da se ne radi o skupu, ve´c o multiskupu, tj. da se odredeni element moˇze izabrati viˇse puta. Pitanje, na koliko se naˇcina moˇze izabrati k elemenata iz multiskupa, koji sadrˇzi n razliˇcitih elemenata, je pitanje varijacija n elemenata k-tog razreda s ponavljanjem. Broj razliˇcitih varijacija k-tog razreda od n elemenata s ponavljanjem je (5)
V7
=
(k)
V n = nk .
(3.32)
POGLAVLJE 3. DISKRETNA MATEMATIKA
95
Primjer 3.40 Koliko ima troznamenkastih brojeva? Izmedu 10 razliˇcitih 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ˇcina moˇzemo izabrati preostale dvije znamenke. Dakle ukupan broj troznamenkastih brojeva je (3)
(2)
V 10 − V 10 = 1000 − 100 = 900. Kombinacije Posljednji kombinatorni pojam, koji ´cemo definirati, je pojam kombinacija. Pitanje koje se postavlja je pitanje izbora nekog podskupa danog skupa, a ne niza elemenata. Dakle, ˇzelimo doznati na koliko naˇcina se moˇze 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 ˇskoli za lektiru predloˇzeno 17 knjiga, ali oni moraju proˇcitati samo 10. Koliko razliˇcitih izbora djeca mogu uˇciniti? Djeca mogu uˇciniti µ
(10)
C17
¶ 17 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ˇcina, ˇsto je iznenaduju´ce velik broj. Posljednje ˇsto ´cemo opisati u ovom poglavlju, jesu kombinacije s ponavljanjem. Kombinacije s ponavljanjem jesu svi multiskupovi elemenata skupa A. Ako imamo skup A koji sadrˇzi n elemenata, i od njih moramo naˇciniti 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ˇcitih kombinacija s ponavljanjem k-tog razreda od n elemenata je µ ¶ n+k−1 (k) . Cn = k Primjer 3.42 Tvrtka mora kupiti 10 automobila. Ponuda se sastoji od 5 vrsti automobila. Na koliko razliˇcitih naˇcina tvrtka moˇze napraviti ovu kupnju? µ
(10) C5
= = = =
5 + 10 − 1 10 µ ¶ 14 10 14! 10! · 4! 1001.
¶
Sljede´ce ˇsto ˇzelimo uˇciniti, i ˇsto ´ce biti vrlo korisno, jest uvesti vezu izmedu kombinacija i binomnih koeficijenata, te uvesti neke propozicije koje ´ce nam opisati odnose izmedu razliˇcitih binomnih koeficijenata. Teorem 3.12 (Binomni pouˇ cak) ¶ n µ X n (a + b) = ai bn−i . i n
i=0
Dokaz ovog teorema moˇze se na´ci u [12], str. 113. Sada ´cemo samo navesti neke identitete s binomnim koeficijentima, bez njihova µ dokazivanja: ¶ µ ¶ n n = , (simetrija) i n−i µ ¶ µ ¶ n n n−1 = , (apsorpcija) i i−1 i µ ¶ µ ¶ µ ¶ n n−1 n−1 = + , (Pascalova formula) i i i−1 µ ¶µ ¶ µ ¶µ ¶ n i n n−k = , (Trinomna revizija) i k k i−k µ ¶ n P n = 2n , i=0 µ i ¶ µ ¶ r P n+i n+r+1 = , (paralelna sumacija) i r+1 i=0 µ ¶ µ ¶ k P r+i r+k+1 = , (gornja sumacija) r r+1 i=0
POGLAVLJE 3. DISKRETNA MATEMATIKA µ
97
¶ µ ¶ n m+n = , (Vandermondeova konvolucija) r+i m+r i=1 µ ¶2 µ ¶ n P n 2n = , n i=0 µ i ¶ µ ¶ µ ¶ m P m−i n+i m+n+1 = . (Vandermondeova konv.) r s r+s+1 i=1 Dokazi ovih identiteta mogu se prona´ci u [12]. m P
3.8.2
m i
¶µ
Osnovne definicije i teoremi diskretne teorije vjerojatnosti
Osnovni pojam od kojeg se kre´ce u teoriji vjerojatnosti jest sluˇcajni pokus. Sluˇcajni pokus je pokus ˇciji rezultati nisu jednoznaˇcno odredeni uvjetima u kojima se izvodi. Primjer toga je pokus bacanja igra´ce kocke. Kod tog pokusa postoji ˇsest mogu´cih ishoda iz sljede´ceg skupa: Ω = {1, 2, 3, 4, 5, 6}. Definicija 3.37 Skup Ω svih mogu´cih 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ˇcajnog pokusa. Npr. imamo li sluˇcajni pokus bacanja 5 igra´cih kocaka, onda se ”palo je pet ˇsestica” smatra dogadajem. Jasno je da su ∅ ⊆ Ω i Ω ⊆ Ω takoder dogadaji. Prvi se naziva nemogu´c dogadaj , a drugi siguran dogadaj . Definicija 3.38 Dogadaji A i B se medusobno iskljuˇcuju 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´ce tvrdnje: 1. P (∅) = 0
98
3.8. DISKRETNA TEORIJA VJEROJATNOSTI 2. Ako su A1 , . . . , An ⊆ Ω po parovima medusobno disjunktni dogadaji, n n S P 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 vjerojatnosti 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ˇze 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 k S je Ak+1 ∩ Ai = ∅ za svaki i = 1, . . . , k, sigurno je ( Ai ) ∩ Ak+1 = i=1
∅. Neka je A =
k S i=1
P (A) =
k P i=1
Ai . Prema pretpostavci indukcije vrijedi da je
P (Ai ). Isto tako, prema pretpostavci indukcije vrijedi da
je P (A ∪ Ak+1 ) = P (A) + P (Ak+1 ). Dakle, k+1 [
P(
Ai ) = P (
i=1
k [
Ai ∪ Ak+1 )
i=1
= P (A ∪ Ak+1 ) = P (A) + P (Ak+1 ) = =
k X i=1 k+1 X i=1
ˇsto je itrebalo dokazati.
P (Ai ) + P (Ak+1 ) P (Ai )
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 ´cemo 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 ´cemo P (Ac ) = 1 − P (A). 5. Oˇcito 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 dogadaji na vjerojatnosnom prostoru < Ω, P >. Tada je à P
n [
! Ai
=
i=1
n X i=1
+
X
P (Ai ) −
X
P (Ai ∩ Aj ∩ Ak ) − . . .
1≤i i < 0, +∞ > imaju jednake kardinalne brojeve. 27. Neka su f : A → B i g : B → C funkcije. Dokaˇzite (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ˇzenje. 29. Dokaˇzite pomo´cu matematiˇcke 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). ˇ je S , a ˇsto T ? 31. Neka je za svaki n ∈ N, An = {n}. Sto n∈N
n∈N
32. Koje su od sljede´cih 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ˇcnih nizova koji se sastoje od nula i jedinica. Pokaˇzite da je S neprebrojivo beskonaˇcan. 34. Pomo´cu metode karakteristiˇcne jednadˇzbe pronadite eksplicitni zapis sljede´cih rekurzivnih jednadˇzbi: (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ˇsajte rijeˇsiti prethodne zadatke pomo´cu funkcija izvodnica. 36. Bakterije se razvijaju prema shemi: svaka ˇzivi jedan sat i svakih pola sata daje jednu novu bakteriju (dakle, svega dvije tijekom ˇzivota). 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ˇcina moˇzemo poredati jedinice na paradi? 38. U selu ima 10 mladi´ca i 8 djevojaka. Na koliko se naˇcina oni mogu spojiti u parove, tako da svaka djevojka ima jednog momka? 39. Imamo po tri kuglice crvene, plave i ˇzute boje. Na koliko naˇcina ih moˇzemo razvrstati u tri kutije tako da u svakoj kutiji budu toˇcno tri kuglice?
120
3.9. ZADACI
40. Na koliko se razliˇcitih naˇcina ˇcovjek moˇze popeti uz n stepenica, ako odjednom moˇze zakoraˇciti na jednu ili dvije stepenice? Dva uspinjanja smatramo jednakim ako smo kroˇcili na toˇcno 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ˇse dijelova dijeli kruˇznicu? 43. Od 8 ˇzena i 4 muˇskarca treba izabrati delegaciju. Na koliko se naˇcina moˇze izabrati: (a) Petero ljudi od kojih su barem dvije ˇzene? ˇ (b) Sestero ljudi, po troje istog spola? (c) Bilo koji broj ljudi, uz uvjet da mora biti jednak broj muˇskih i ˇzenskih osoba? 44. U neprozirnoj vre´ci nalazi se devet obojenih kuglica: tri crvene, tri ˇzute i tri plave. Izvlaˇcimo tri kuglice. Kolika je vjerojatnost da sve tri izvuˇcene kuglice budu iste boje? 45. U koˇsari se nalazi 20 jabuka, 10 crvenih i 10 ˇzutih. Zna se da crvene jabuke trule brˇze od ˇzutih i da je 20% crvenih jabuka trulo, a 10% ˇzutih. Ako nasumce uzmemo 5 jabuka, i ako je od njih jedna trula, kolika je vjerojatnost da trula jabuka bude ˇzuta? 46. Imamo 50 ˇzutih i 50 crvenih sijalica u istoj kutiji. 10% posto ˇzutih i 15% crvenih sijalica ne radi. Iz kutije izvlaˇcimo 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ˇze ispaliti dva metka. Vjerojatnost pogotka svakim metkom jest 20%. Lovac puca na 10 golubova. Koliko se oˇcekuje da ´ce lovac pogoditi golubova? Kolika je standardna devijacija matematiˇckog oˇcekivanja? 48. Ljut na dvorskog matematiˇcara car naredi da se donese n urni, n crnih i n bijelih kuglica. Matematiˇcar mora rasporediti sve kuglice u urne tako da u svakoj urni bude barem jedna kuglica. Dvorski ´ce krvnik nasumce odabrati jednu od tih urni i sluˇcajno izvu´ci jednu kuglicu. Ako izvuˇce bijelu, car ´ce pomilovati matematiˇcara, a ako izvuˇce crnu, bit ´ce pogubljen. Kako matematiˇcar treba rasporediti kuglice da ima najve´ce izglede da preˇzivi? Nadite optimalan raspored i vjerojatnost pomilovanja. Za koji najmanji n matematiˇcar ima bar 90% izgleda da preˇzivi?
POGLAVLJE 3. DISKRETNA MATEMATIKA
121
49. Meta se gada ˇcetiri puta uz vjerojatnost pogotka od 0,8. Neka je X sluˇcajna varijabla ˇcija je vrijednost broj pogodaka u metu. Pronadite (a) distribuciju za X, (b) P (1 ≤ X ≤ 3). 50. Pokus se sastoji od bacanja nesimetriˇcnog novˇci´ca, na kojemu vjerojatnost da se pojavi glava iznosi p. Neka se pokus sastoji od n bacanja novˇci´ca. Koriˇstenjem indikatorske varijable izraˇcunajte vjerojatnost da se glava pojavila najmanje k puta.
3.10
Projekti
1. Promatrajte relacije na S × S i njima pridruˇzene matrice susjedstva. Relaciji ρ pridruˇzena je matrica M (ρ). Na matricama definiramo Booleovu aritmetiku (zbrajanje i mnoˇzenje modulo 2). Pokaˇzite kako se kompozicija relacija povezuje s operacijama na njima pripadnim matricama. Interpretirajte na isti naˇcin 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ˇze se napraviti algoritam za izraˇcunavanje 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ˇcek, W.M.; Sharp, H.: Introduction to Discrete Mathematics, WBC/McGraw-Hill, International Editions, New York, 1998. [4] Divjak, B.; Hunjak, T.: Matematika za informatiˇcare, TIVA-FOI, Varaˇzdin, 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´c, B., Daki´c, B.: Polinomi, Skolska knjiga, Zagreb, 1987. ˇ [8] Sarapa, N.: Teorija vjerojatnosti, Skolska knjiga, Zagreb, 1987. [9] Shen, A.; Vereschchagin: Basic Set Theory, AMS, 2002. ˇ c, Z: Kako je stvarana novovijekovna matematimka, Skolska ˇ [10] Siki´ knjiga, Zagreb, 1989. [11] Tucker, A.: Applied Combinatorics, 3rd edition, John Wiley & Sons, New York, 1995. ˇ [12] Veljan, D.: Kombinatorika s teorijom grafova, Skolska knjiga, Zagreb, 1989. [13] Whitesitt, J. E.: Boolen Algebra and Its Application, Dover Publications, 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ˇze se ˇciniti da smo dostigli granice mogu´ceg u raˇcunalnoj tehnologiji. Ipak, s takvim izjavama treba biti oprezan, jer bi mogle zvuˇcati smijeˇsno za pet godina. John von Neumann (izrekao 1949.)
4.1
Pojam algoritma
Algoritam je striktno definirani postupak koji daje rjeˇsenje nekog problema. Iako se pojam algoritma koristi intenzivno u posljednje vrijeme, odnosno od pojave raˇcunala, on je nastao mnogo ranije, prvenstveno u matematici. Prvi znaˇcajni algoritam, koji se joˇs i danas koristi, nastao je joˇs u 3. st. prije naˇse ere. Taj je algoritam poznat kao Euklidov algoritam jer ga je prvi opisao grˇcki matematiˇcar Euklid u svojoj knjizi ”Elementi” (Στ oιχεια). Sam naziv dolazi od imena Iranskog matematiˇcara Abu Ja’far Mohammed ibn Mˆ usˆa al-Khowˆarizmˆı koji je 825. godine napisao knjigu pod nazivom ”Pravila restoracije i reduk- Slika 4.1: Donald Erwin Knuth cije”. D.E. Knuth (1938-) je dao pet svojstava koja algoritam mora zadovoljavati: 1. Konaˇ cnost. Algoritam mora zavrˇsiti nakon izvrˇsenih konaˇcno mnogo koraka. Takoder, algoritam mora biti opisan pomo´cu konaˇcnog broja operacija, a i svaka operacija mora biti konaˇcne duljine. 2. Definitnost. Svaki korak algoritma mora sadrˇzavati nedvosmislene, rigorozno definirane operacije. 125
126
4.1. POJAM ALGORITMA
3. Ulaz. Svaki algoritam mora imati 0 ili viˇse ulaza. 4. Izlaz. Svaki algoritam mora imati 1 ili viˇse izlaza. 5. Efektivnost. Algoritam mora biti efektivan, tj. mora biti takav da se moˇze izvesti samo uz pomo´c olovke i papira u konaˇcno vrijeme. Treba napomenuti da je algoritam intuitivni pojam te da ga ve´c godinama matematiˇcari pokuˇsavaju striktno definirati. Postoji ˇcitav niz razliˇcitih pokuˇsaja formalizacije pojma algoritma. Medutim, do danas nije dokazano da li je ijedna od tih formalizacija korektna. Postoji tek tvrdnja, poznata kao Churchova teza ili Churchova hipoteza koja kaˇze da su λ-raˇcun, Turingov stroj, logika Hornovih klauzula itd, dobro definirani modeli algoritma. Ova tvrdnja, medutim, nikada nije dokazana. Bez obzira na to, moˇze se re´ci da je algoritam postupak za rjeˇsavanje nekog masovnog problema. Slika 4.2: Alonzo Church Masovni problem je op´ cenito pitanje na koje je potrebno na´ci odgovor, a koje obiˇcno ima parametre koji kod zadavnja problema ostaju neodredeni. Upravo zbog toga ˇsto parametri masovnog problema ostaju neodredeni, za problem kaˇzemo da je masovan. Pri definiciji masovnog problema potrebno je zadati: 1. generalni opis svih parametara, 2. ograniˇcenja koja rjeˇsenje masovnog problema mora zadovoljavati. Specificiranjem svih parametara masovnog problema dobivamo instancu problema. Za algoritam kaˇzemo da rjeˇsava masovni problem ako daje rjeˇsenje za svaku pojedinu instancu problema. Kao primjer opiˇsimo jedan od najstarijih i najpoznatijih algoritama, ve´c ranije spomenuti Euklidov algoritam za pronalaˇzenje najve´ce zajedniˇcke mjere dvaju prirodnih brojeva. Algoritam 4.1 (Euklidov algoritam) ULAZ: Dva prirodna broja a i b. IZLAZ: Najve´ca zajedniˇcka 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ˇzemo biti sigurni da je algoritam ispravan? Potrebno je formalno dokazati da je ovaj algoritam korektan. To znaˇci da treba dokazati da ´ce za svaka dva broja ovaj algoritam dati rjeˇsenje nakon konaˇcnog broja koraka, a da ´ce dano rjeˇsenje zaista biti najve´ca zajedniˇcka 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ˇcetku da brojevi a i b moraju biti razliˇciti od 0, jer u suprotnom njihova najve´ca zajedniˇcka mjera nije definirana. M (b, r) mora biti djeljivo s b i s r po definiciji zajedniˇcke mjere. No onda je M (b, r) djeljivo s bq+r = a. Dakle, M (b, r) je zajedniˇcka mjera brojeva a i b. Op´cenito, kako je M (a, b) najve´ca zajedniˇcka mjera brojeva a i b, a M (b, r) je takoder zajedniˇcka 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ˇcka mjera brojeva b i r. No kako je M (b, r) najve´ca mjera tih dvaju brojeva, onda je M (a, b) ≤ M (b, r). Zajedno izlazi da je M (a, b) = M (b, r) ˇsto je i trebalo dokazati. Propozicija 4.1 Algoritam 4.1 ´ce uvijek zavrˇsiti, a kada zavrˇsi vratit ´ce najve´cu zajedniˇcku mjeru brojeva s ulaza. Dokaz. Prvo dokaˇzimo da algoritam zavrˇsava. 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 ˇcinjenice nakon najviˇse b koraka r mora postati 0 i u tom trenutku algoritam ´ce stati. Drugo ˇsto trebamo dokazati jest toˇcnost rjeˇsenja 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´ca zajedniˇcka mjera broj b, a to je upravo ono ˇsto ´ce algoritam vratiti u ovom sluˇcaju. Korak indukcije: pretpostavimo da tvrdnja vrijedi kada se do rjeˇsenja dode u najviˇse k prolaza. Pretpostavimo da je algoritam zavrˇsio 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ˇsao mjeru brojeva b i r, a onda prema tvrdnji 4.1 vrijedi da je nadeni broj ujedno i najve´ca zajedniˇcka mjera brojeva a i b.
128
4.1. POJAM ALGORITMA
Primijetimo da svaka dva prirodna broja imaju jedinstvenu najve´cu zajedniˇcku mjeru. Zadatak 4.1 Dokaˇzite postojanje i jedinstvenost najve´ce zajedniˇcke mjere dvaju prirodnih brojeva. Najve´ca zajedniˇcka mjera se, na isti naˇcin kao ˇsto je definirana za priˇ rodne brojeve, moˇze definirati i za polinome. Stoviˇ se, tom sluˇcaju za njeno pronalaˇzenje moˇzemo primijeniti algoritam analogan Euklidovom algoritmu za brojeve. Viˇse o tome moˇze se na´ci u [8] Sljede´ci algoritam, koji ´cemo ovdje obraditi jest Hornerov algoritam ili Hornerova shema. To je algoritam koji izraˇcunava vrijednost polinoma u zadanoj toˇcki. Prije negoli zapiˇsemo ovaj algoritam, dokazat ´cemo njegovu ispravnost. Nas Hornerov algoritam prvenstveno zanima s aspekta izraˇcunavanja vrijednosti polinoma u zadanoj toˇcki, no sam Hornerov algoritam ima i druge aspekte. Viˇse o tome moˇzete na´ci u [8]. Polinom n-tog stupnja je funkcija oblika Pn (x) = an xn + an−1 xn−1 + . . . + a1 x + a0 . Izluˇcimo li iz prvih n pribrojnika gornjeg polinoma x, dobit ´cemo Pn (x) = (an xn−1 + an−1 xn−2 + . . . + a1 )x + a0 . Ponovimo li ovaj postupak na prvih n − 1 pribrojnika unutar zagrade, imat ´cemo Pn (x) = ((an xn−2 + an−1 xn−3 + . . . + a2 )x + a1 )x + a0 . Ponovimo li ovaj postupak joˇs n − 3 puta konaˇcno dobivamo Pn (x) = ((. . . ((an x + an−1 )x + an−2 ) + . . . + a2 )x + a1 )x + a0 . Ovaj se oblik polinoma naziva Hornerova shema. Sljede´ci algoritam izraˇcunava vrijednost polinoma Pn (x) u toˇcki x koriste´ci 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 ˇcemu koristiti Hornerov algoritam kada se vrijednost polinoma moˇze izraˇcunati i iz njegovog uobiˇcajenog oblika sljede´cim 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ˇcita. Usporedimo sada ova dva algoritma za pronalaˇzenje vrijednosti polinoma. Usporedivat ´cemo ih po broju raˇcunskih operacija koje trebaju izvesti da bi izraˇcunali rjeˇsenje. Pri tome ne´cemo uraˇcunavati raˇcunske operacije potrebne za pove´canje, odnosno smanjenje brojaˇca i. To i tako nije vaˇzno, jer prvi algoritam ima n smanjenja, a drugi n + 1 pove´canje brojaˇca i, ˇsto je zanemariva razlika. Algoritam 4.2 prolazi kroz korake od 2 do 4 toˇcno n puta. U svakom prolazu on u koraku 2 napravi jedno zbrajanje i jedno mnoˇzenje. To ukupno daje n zbrajanja i n mnoˇzenja. Algoritam 4.3 pak prolazi n + 1 puta kroz korake 2 do 4. U svakom prolazu on u koraku 2 napravi jedno zbrajanje, jedno mnoˇzenje i jedno potenciranje. Bez ve´ce pogreˇske, potenciranje se moˇze shvatiti kao niz uzastopnih mnoˇzenja. Pri tome izraˇcunavanje x0 i x1 ne zahtjeva nijedno mnoˇzenje, n−1 P dok za i > 1 xi zahtjeva i − 1 mnoˇzenje. To ukupno daje i = (n−1)n 2 i=1
mnoˇzenja. Dakle, algoritam 4.3 zahtijeva n + 1 zbrajanje i (n + 1) + (n−1)n 2 mnoˇzenja. Broj mnoˇzenja u ovom algoritmu raste kvadratno i ve´ci je od broja mnoˇzenja u Hornerovu algoritmu za svaki n ∈ N. Primijetimo da se u algoritmu 4.3 izraˇcunavaju sve ve´ce i ve´ce potencije istog broja x. Jasno je da se svaka sljede´ca potencija moˇze izraˇcunati mnoˇzenjem potencije dobivene u prethodnom koraku s x, tj. xi = xi−1 · x. Ovakav ´ce pristup znatno smanjiti broj mnoˇzenja u algoritmu. Ugradivanjem ove ideje u algoritam 4.3 dobit ´cemo sljede´ci algoritam:
ˇ 4.2. SLOZENOST ALGORITAMA
130
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ˇzenja i zbrajanja u ovom algoritmu. I opet broj prolaza kroz korake 2 do 4 bit ´ce n + 1. U svakom prolazu imamo jedno zbrajanje u koraku 2. Isto tako imamo jedno mnoˇzenje u koraku 2, ali i jedno mnoˇzenje u koraku 3. To daje ukupno n + 1 zbrajanja i 2n + 2 mnoˇzenja, ˇsto je daleko bolje nego kod algoritma 4.3, ali joˇs uvijek viˇse nego dvostruko loˇsije nego kod algoritma 4.2. Cilj ove analize jest prona´ci broj operacija koje algoritam mora izvesti kako bi izraˇcunao rjeˇsenje. Smatrat ´cemo da je bolji onaj algoritam koji izvodi manje operacija, jer ´ce on i brˇze zavrˇsiti. Stoga je Hornerov algoritam superioran nad preostala dva, i to je razlog zbog ˇcega se on koristi. Ova nas analiza uvodi u sljede´ce poglavlje koje ´ce se baviti sloˇzenoˇs´cu algoritama, tj. mjerom pomo´cu koje ´ce se mo´ci usporedivati razliˇciti algoritmi koji rjeˇsavaju isti problem.
4.2
Sloˇ zenost algoritama
U proˇslom smo poglavlju vidjeli da se za isti problem mogu dati razliˇciti algoritmi. Ako su dana dva ili viˇse algoritma, koja rjeˇsavaju isti masovni problem, prirodno se postavlja pitanje koji od njih izabrati i koristiti. Zbog toga je potrebno odrediti mjeru kakvo´ce algoritma, kako bismo pri izboru mogli izabrati onaj algoritam koji je bolji. U ovom ´cemo se poglavlju baviti upravo mjerenjem kakvo´ce algoritama. Kako mjeriti kakvo´cu pojedinog algoritma, odnosno ˇsto treba mjeriti da bi se dobila kakvo´ca algoritma? Ono ˇsto se mjeri jest koliˇcina resursa koje algoritam treba da bi rijeˇsio problem. Dvije mjere koje se najˇceˇs´ce koriste za odredivanje kakvo´ce algoritma jesu vrijeme potrebno za izvrˇsenje algoritma i prostor potreban za pohranjivanje ulaznih i izlaznih rezultata, kao i medurezultata. Prva od ovih dviju mjera zove se vremenska sloˇzenost algoritma, a druga se zove prostorna sloˇzenost algoritma. U ovom ´cemo se poglavlju, medutim, baviti samo vremenskom sloˇzenoˇs´cu algoritama, jer je ona mjera koja se najˇceˇs´ce koristi za ocjenjivanje kakvo´ce algoritama.
POGLAVLJE 4. ALGORITMI
131
Prostorna se sloˇzenost koristi mnogo rijede. Za to postoje razlozi u koje sada ne´cemo ulaziti. Prvi problem koji se javlja kod odredivanja vremenske sloˇzenosti algoritma jest kako na´ci mjeru koja ne´ce ovisiti o brzini raˇcunala na kojem se algoritam izvodi, ve´c samo o samom algoritmu. Vrijeme potrebno algoritmu da izraˇcuna rjeˇsenje znatno ´ce ovisiti o brzini raˇcunala na kojem se algoritam izvodi. Tako, uzmemo li vrijeme trajanja dvaju algoritama, takva ´ce mjera vrijediti jedino ako se oba algoritma izvode na istom raˇcunalu. Medutim, takva mjera ne bi op´cenito mnogo znaˇcila. Mjera koju ˇzelimo izvesti jest takva da ona ne ovisi o raˇcunalu, ve´c samo o algoritmu. Na taj bismo naˇcin dobili mjeru koja bi imala apsolutno znaˇcenje. Stoga se vremenska sloˇzenost ne izraˇzava vremenom potrebnim da algoritam izraˇcuna rezultat, ve´c brojem elementarnih operacija koje algoritam mora izvesti da bi izraˇcunao rjeˇsenje. Brˇza raˇcunala izvode elementarne operacije brˇze od sporijih. No, radi li se o raˇcunalima koja imaju procesore iste arhitekture, koji se tek razlikuju u brzini internog sata, onda ´ce broj operacija koje algoritam mora izvesti biti isti. Naravno, radi li se o razliˇcitim procesorima, i broj ´ce se elementarnih operacija razlikovati. No, ove ´ce razlike biti neznatne: broj elementarnih operacija razlikovat ´ce se najviˇse za neku multiplikativnu konstantu.
složenost fmax
favg
fmin
n0
Duljina ulaza Slika 4.3
Sljede´ci problem je ˇsto broj operacija koje izvodi algoritam nije fiksan, ve´c ovisi o veliˇcini ulaza. Dakle, instance problema razliˇcitih dimenzija za-
132
ˇ 4.2. SLOZENOST ALGORITAMA
htjevat ´ce razliˇcit broj elementarnih operacija za obradu. Medutim, masovni problem moˇze imati i razliˇcite instance iste duljine, ˇcija vremenska sloˇzenost ne mora biti jednaka. Dakle, sloˇzenost algoritma nije funkcija veliˇcine ulaza (vidi sliku 4.3.) Stoga se ocjena sloˇzenosti vezuje uz odredenu instancu problema. Najˇceˇs´ce se koristi ocjena sloˇzenosti najgoreg sluˇcaja. Pri tome se ocjenjuje sloˇzenost one instance problema odredene duljine za ˇciju obradu algoritam treba najviˇse vremena. Druga mogu´cnost, koja nije tako znaˇcajna jest ocjena sloˇzenosti najboljeg sluˇcaja. Tre´ca, najbolja, ali i najsloˇzenija za izraˇcunavanje, jest ocjena sloˇzenosti prosjeˇcnog sluˇcaja. Ova sloˇzenost nam opisuje kako ´ce se u prosjeku algoritam ponaˇsati. Dok se prve dvije sloˇzenosti vezuju za jednu instancu problema, u posljednjoj je potrebno u obzir uzeti sve instance problema odredene duljine ulaza, te svakoj od njih pridruˇziti vjerojatnost pojavljivanja. Odabirom jedne od ove tri mogu´ce sloˇzenosti, dobijamo funkciju sloˇzenosti algoritma u ovisnosti o duljini ulaza. No, sama sloˇzenost, bez obzira radi li se o maksimalnoj, minimalnoj ili prosjeˇcnoj, moˇze biti funkcija koja nije analitiˇcka, a ako i jest analitiˇcka, moˇze zahtjevati vrlo sloˇzenu formulu za prikaz. Podsjetimo se: analitiˇcka je ona funkcija koja se moˇze prikazati formulom izgradenom pomo´cu aritmetiˇckih operacija i transcedentnih funkcija. S druge strane, ˇzelimo aproksimativno izraziti sloˇzenost, a ne toˇcno. Naime, toˇcan broj operacija je vrlo teˇsko izraˇcunati, a i taj raˇcun ne bi dao neki znaˇcajan rezultat. Osim toga, sama brzina rada algoritma, kao ˇsto smo ve´c rekli ovisit ´ce o raˇcunalu na kojem se algoritam izvodi. Sve su to razlozi zbog kojih se toˇcan raˇcun sloˇzenosti ne isplati. Ono ˇsto se isplati, i ˇsto ´ce znaˇcajno razlikovati algoritme, jest ˇcinjenica koliko brzo ´ce sloˇzenost algoritma rasti u ovisnosti porasta veliˇcine ulaza. Zbog toga ´cemo funkciju sloˇzenosti aproksimirati jednostavnijom funkcijom, koja ´ce dobro opisivati rast funkcije sloˇzenosti pove´canjem nezavisne varijable (vidi sliku 4.3). Zato je prikladno uvesti notaciju koja ´ce jednostavno opisivati brzinu rasta funkcije sloˇzenosti algoritma. Uvodi se asimptotska ocjena rasta funkcije. Najˇceˇs´ce, kada se izraˇcunava sloˇzenost, aproksimacija se vrˇsi tako da aproksimativna funkcija koja je jednostavnija od same funkcije sloˇzenosti, dobro asimptotski opisuje rast funkcije sloˇzenost. No, dozvoljava se da za male n-ove ova aproksimacija ne vrijedi (vidi sliku 4.3). Naime, pretpostavlja se da ´ce svi algoritmi, bez obzira na njihovu sloˇzenost raditi zadovoljavaju´ce za male n-ove, a da ´ce ve´ci problemi nastati kad veliˇcina ulaza poraste. Stoga se kod definicije asimptotskih ocjena funkcija dozvoljava da ocjena ne ocjenjuje funkciju dobro za n < n0 . Na gornjem je grafu funkcija kojom se ocjenjuje sloˇzenost nacrtana tako da omeduje odozgo sloˇzenost u najgorem sluˇcaju. To, medutim, nije nuˇzno. Naime, ako je funkcija f (n) ocjena sloˇzenosti nekog algoritma, onda ´ce i funkcija f (n) + c takoder biti funkcija koja ocjenjuje sloˇzenost tog algoritma. Radi se o tome da nas ne zanima stvarni iznos funkcije sloˇzenosti, ve´c samo koliko brzo ta funkcija raste. Ovime smo zavrˇsili opis ocjene kakvu
POGLAVLJE 4. ALGORITMI
133
ˇzelimo napraviti, pa nam samo joˇs preostaje da definiramo asimptotske ocjene funkcija sloˇzenosti algoritama. Definicija 4.1 Zadane su funkcije f, g : R → R. 1. Kaˇzemo 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ˇzemo 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ˇzemo 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ˇzemo 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ˇzemo 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ˇzenosti su uvijek funkcije sa N u N. Mi ´cemo, medutim, u ovom poglavlju funkcije s kojima ´cemo raditi definirati neˇsto ˇsire, kao funkcije sa N u R. Razlog tome je ˇsto se kod ocjene sloˇzenosti ˇcesto 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ˇzenost je funkcija sa skupa prirodnih brojeva u skup prirodnih brojeva, ali se njihova brzina rasta ocjenjuje analitiˇckom funkcijom kojoj kodomena nije skup N. Definirane ocjene formaliziraju intuitivni pojam brzine rasta funkcije. Tako moˇzemo kazati da ako vrijedi f (n) = O(g(n)) onda funkcija f ne raste brˇze od g. Ako je pak f (n) = o(g(n)), onda kaˇzemo da funkcija f raste sporije od g. Ako su O i o ocjene koje ocjenjuju funkciju ograniˇcavaju´ci je odozgo, onda su Ω i ω ocjene koje to rade odozdo. Dakle, ako je f (n) = Ω(g(n)), onda kaˇzemo da funkcija f ne raste sporije od g, a ako je f (n) = ω(g(n)), onda kaˇzemo da funkcija f raste brˇze od g. Na kraju imamo ocjenu Θ, koja u sebi objedinjuje ocjene O i Ω. Ako je f (n) = Θ(g(n)), onda kaˇzemo 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.
ˇ 4.2. SLOZENOST ALGORITAMA
134
• 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ˇcke u prethodnom korolaru nazivaju se transpozitna simetriˇcnost. 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ˇzimo i obratno. Treba pokazati da je nm = O(P (n)). Napiˇsimo polinom P (n) u sljede´cem obliku: P (n) = nm (a0 ·
1 1 + a1 · m−1 + . . . + am ). m n n
Za dovoljno veliki n ≥ n0 vrijedi da je |am | 2m pa je
ai nm
≤
|am | 2m ,
m| a isto tako je − |a2m ≤
|am | |am | − ... − ) 2m 2m |am | = nm (|am | − m · ) 2m |am | = nm (|am | − ) 2 |am | = nm · . 2
P (n) ≥ nm (|am | −
Time je dokazano da vrijedi P (n) = Ω(nm ), ˇsto zajedno s prije dokazanom tvrdnjom P (n) = O(n), a prema korolaru 4.1 daje tvrdnju ove propozicije. Iz prethodne propozicije proizlazi sljede´ci korolar: Korolar 4.2 Za proizvoljni a ∈ R je a = Θ(1). Sljede´ci teorem daje karakterizaciju asimptotskih notacija.
POGLAVLJE 4. ALGORITMI
135
Teorem 4.1 f (n) n→∞ g(n)
= 0, onda je f (n) = o(g(n))
f (n) n→∞ g(n)
= C, onda je f (n) = O(g(n))
g(n) n→∞ f (n)
= 0, onda je f (n) = ω(g(n))
g(n) n→∞ f (n)
= C, onda je f (n) = Ω(g(n))
g(n) n→∞ f (n)
= C, C 6= 0, onda je f (n) = Θ(g(n))
1. Ako je lim 2. Ako je lim 3. Ako je lim 4. Ako je lim 5. Ako je lim
Dokaz. Sve tvrdnje se dokazuju sliˇcno. Dokazat ´cemo, na primjer, prvu tvrdnju. Neka je f (n) = 0. n→∞ g(n) lim
Onda je i lim
n→∞
|f (n)| = 0. |g(n)|
Prema definiciji limesa to znaˇci 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ˇzimo li gornju jednadˇzbu s |g(x)| > 0 dobit ´cemo |f (n)| < ε|g(n)|, odakle slijedi da je f (n) = o(g(n)). Ostale tvrdnje dokaˇzite sami. Sada ´cemo dati joˇs neke odnose medu funkcijama koje se ˇcesto javljaju kod analize sloˇzenosti algoritama. Propozicija 4.3 Ako je a < b, onda je na ≺ nb .
ˇ 4.2. SLOZENOST ALGORITAMA
136 Dokaz. Vrijedi da je
na 1 = lim b−a b n→∞ n n→∞ n No, kako je b − a > 1, onda je lim
na 1 = lim b−a = 0 b n→∞ n n→∞ n lim
Sada prema teoremu 4.1 slijedi da je na ≺ nb . Sljede´ce propozicije se odnose na logaritme i njihove odnose s potencijama. 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ˇcitim bazama a, b ∈ N\{1} vrijedi loga n =
logb n logb a
Stavimo li c = log1b a , imamo loga n = c · logb n, odnosno c · logb n ≤ loga n ≤ c · logb n ˇsto daje traˇzenu tvrdnju. Ova propozicija nam govori da logaritmi po svim bazama asimptotski jednako brzo rastu. Stoga se ˇcesto, pri ocjeni sloˇzenosti algoritma, baza logaritma zanemaruje i piˇse se lg n, ˇsto znaˇci ”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 n→∞ n→∞ n na+1 lim
Primijenimo li L’Hospitalovo pravilo na posljednji limes dobit ´cemo na · lgb n n→∞ na+1 lim
· lgb−1 n n→∞ 1 c · b · lgb−1 n = lim , n→∞ n =
lim
c·b·
1 n
pri ˇcemu konstanta c ovisi o bazi logaritama. Nakon b primjena L’Hospitalovog pravila dobija se na · lgb n cb · b! = lim =0 n→∞ n→∞ n na+1 lim
Dakle,
POGLAVLJE 4. ALGORITMI
137
na · lg n 1 = lim c · = 0 n→∞ na+1 n→∞ n a a+1 odakle slijedi n · lg n ≺ n . Druga se tvrdnja pokazuje sliˇcno. Dokaz provedite sami. Iz gornje propozicije izlazi sljede´ci korolar: lim
Korolar 4.3 lg n = o(n). Uoˇcimo iz gornjeg korolara da logaritmi asimptotski rastu sporije od linearne funkcije. Na kraju ´cemo dati propoziciju, koja u ovaj kontekst stavlja eksponencijalne funkcije. Propozicija 4.6 Neka su a ∈ N i neka je b ∈ N\{1}. Tada je na ≺ bn Dokaz. Primijenimo li na limes bn n→∞ na a puta L’Hospitalovo pravilo, dobivamo lim
na a! =0 = lim n n n→∞ b n→∞ b · lna b lim
Iz ˇcega, prema teoremu 4.1, slijedi tvrdnja propozicije. Ova propozicija je vrlo vaˇzna i u svom iskazu daje jednu vrlo ˇcesto spominjanu tvrdnju, kako u teoriji algoritama, tako i u drugim matematiˇckim disciplinama: tvrdnju da eksponencijalna funkcija raste brˇze od bilo koje polinomne funkcije. Propozicija 4.7 Neka su a, b ∈ N\{1}, pri ˇcemu je a < b. Tada je an ≺ bn . Dokaz. Kako je 0
n onda odgovori ne i stani. 3. Ako je ai = x odgovori da i stani.
140
ˇ 4.3. PRETRAZIVANJE I SORTIRANJE
4. i := i + 1. 5. Idi na 2. Jasno je da ´ce ovaj algoritam stati nakon najviˇse n prolaza kroz korake od 2 do 5. Isto tako je oˇcito da ´ce algoritam vratiti da ako traˇzena vrijednost postoji u listi, dok ´ce u suprotnom vratiti ne. Pogledajmo sada sloˇzenost ovog algoritma. U najgorem sluˇcaju, kada traˇzene 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ˇzenost ovog algoritma moˇze se opisati sljede´com formulom: search Tmax (n) = c1 + n · c2 + c3 .
Pri tome je c1 vrijeme trajanja prvog koraka algoritma, c2 ukupno vrijeme trajanja koraka 2 do 5, a c3 vrijeme trajanja koraka 2. Dakle, search Tmax (n) = Θ(n).
Pogledajmo kako ovaj algoritam radi kada traˇzena vrijednost postoji u listi. U tom sluˇcaju, za algoritam je najgore da vrijednost bude na posljednjem mjestu u listi. Tada se koraci 2 i 3 izvrˇsavaju n puta, a koraci 4 i 5 n − 1 puta. U tom je sluˇcaju search Tmax (n) = c1 + n · c2 + (n − 1) · c3
= c1 − c3 + n · (c2 + c3 ) = Θ(n) pri ˇcemu je c1 trajanje prvog koraka, c2 trajanje koraka 2 i 3 zajedno, a c3 trajanje koraka 4 i 5 zajedno. Najbolji je sluˇcaj kada se element nalazi na prvom mjestu u listi. Tada se koraci 1 do 3 izvrˇsavaju toˇcno jednom, a koraci 4 i 5 nijednom. Sloˇzenost je u najboljem sluˇcaju search Tmin (n) = c1 = Θ(1).
Pogledajmo joˇs i prosjeˇcni sluˇcaj kada se element nalazi u listi. Pretpostavljamo da je vjerojatnost da se traˇzeni element nalazi na bilo kojem mjestu u listi jednaka i iznosi n1 , odnosno, distribucija elemenata je uniformna. Ako se element nalazi na i-tom mjestu u listi 1 ≤ i ≤ n, onda se korak 1 izvrˇsava jednom, koraci 2 i 3 i puta, a koraci 4 i 5 i − 1 puta. Stoga imamo:
POGLAVLJE 4. ALGORITMI
search Tavg (n) = c1 +
141
n X 1 · [i · c2 + (i − 1) · c3 ] n i=1
n
n−1
i=1
i=0
X 1 X i] i + c3 = c1 + [c2 n 1 n(n + 1) (n − 1)n = c1 + [c2 + c3 ] n 2 2 c3 c2 · (n + 1) + + · (n − 1) = c1 + 2 2 c2 c3 c2 c3 = c1 + − + ( + ) · n = Θ(n). 2 2 2 2 Ako je lista neuredena, bolje od ovog algoritma se ne moˇze. Ako su, medutim, elementi u listi uredeni po veliˇcini, onda se moˇze prona´ci bolji algoritam za odredivanje postojanja neke vrijednosti u listi. Binarno pretraˇ zivanje Pretpostavimo da je zadana sortirana lista, tj. lista u kojoj su elementi poredani od najmanjeg do najve´ceg. Pretraˇzivanje koje se u tom sluˇcaju moˇze koristiti, naziva se binarno pretraˇzivanje. Uredenost liste omogu´cuje da se ne pregledavaju svi elementi liste, ve´c samo neki od njih. Prvo usporedujemo zadanu vrijednost s elementom koji se nalazi u sredini liste (ili otprilike u sredini, ako lista ima paran broj elemenata). Ako je taj element jednak traˇzenoj vrijednosti, onda zavrˇsavamo s pretraˇzivanjem. Ako nije tako, onda se gleda je li vrijednost srednjeg elementa liste ve´ca ili manja od traˇzene. Ako je vrijednost ve´ca od traˇzene, onda se traˇzeni element, ukoliko se nalazi u listi, mora nalaziti u njenoj prvoj polovici. Ako je srednji element manji od traˇzenog, onda traˇzeni element, ukoliko se nalazi u listi, mora biti u drugoj polovici liste. U drugom se koraku uzima polovica liste u kojoj se moˇze nalaziti traˇzeni element i na njoj se primjenjuje binarno pretraˇzivanje. Tako se lista smanjuje dok se ne dode do jednoˇclane liste, u kojoj se izravno provjerava sadrˇzi li njen element traˇzenu vrijednost ili ne. Formalno, algoritam izgleda ovako: Algoritam 4.6 (Binarno pretraˇ zivanje) binsearch(f, l, x, a) ULAZ: Kursor f na poˇcetak liste, kursor l na kraj liste i traˇzena 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.
ˇ 4.3. PRETRAZIVANJE I SORTIRANJE
142
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ˇse 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ˇceˇs´ce daje vrlo efikasne algoritme. Propozicija 4.8 Binarno pretraˇzivanje je korektan algoritam za pretraˇzivanje sortirane liste. Dokaz. Treba dokazati da ´ce algoritam uvijek stati, te da ´ce vratiti ispravan odgovor. Pretpostavimo da x nije u listi. Tada algoritam sigurno ne´ce stati u koraku 2. No kod svakog novog poziva funkcije binsearch, njoj se smanji parametar f ili joj se pove´ca parametar l. Tako da je nakon konaˇcno mnogo prolaza sigurno l − f ≤ 1. No, kada se to dogodi, ne´ce biti zadovoljen uvjet izvrˇsavanja ni koraka 3, ni koraka 4, pa ´ce se izvrˇsiti korak 5 i algoritam ´ce 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ˇcima, element koji ima vrijednost x je uvijek izmedu af i al . No, zbog pribliˇzavanja vrijednosti f i l u svakom prolazu, na kraju ´ce postati ap = x i algoritam ´ce stati u koraku 2 i to s ispravnim odgovorom. Odredimo sada sloˇzenost ovog algoritma. Neka je n duljina liste koja se promatra. Ako je n = 1, onda ´ce se, sadrˇzi li lista vrijednost x, izvrˇsiti samo koraci 1 i 2. Ne sadrˇzi li lista vrijednost x, izvrˇsit ´ce se korak 1, provjerit ´ce se uvjeti koraka od 2 do 4 i na kraju ´ce se izvrˇsiti korak 5. Kako su sve operacije u svim koracima elementarne, sloˇzenost je svakog koraka konstantna. Odavde zakljuˇcujemo da je binsearch binsearch Tmax (1) = Tmin (1) = Θ(1).
No, onda je i binsearch Tavg (1) = Θ(1).
Pretpostavimo sada najgori sluˇcaj za ve´ce n-ove. Najgore je za algoritam kada se vrijednost x ne nalazi u listi. U tom sluˇcaju se izvrˇsava korak 1, provjerava se uvjet koraka 2, te se izvrˇsava korak 3 ili 4. Primijetimo da ´ce sloˇzenost biti neˇsto manja ako se izvrˇsi 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´ce
POGLAVLJE 4. ALGORITMI
143
utjecati na ocjenu sloˇzenosti ovog algoritma. Dakle, moˇzemo zakljuˇciti da je sloˇzenost binarnog pretraˇzivanja dana sa: binsearch binsearch n Tmax (n) ≤ c1 + Tmax (b c) 2 Rekurzija koju trebamo rijeˇsiti glasi:
tn = t n2 + c1 . To je podijeli pa ovladaj rekurzija. Ona se rjeˇsava tako da se stavi supstitucija an = t2n . Sada je an = t2n = t 2n + c1 = t2n−1 + c1 = an−1 + c1 . 2
Izvrˇsi se homogenizacija an an−1 an − an−1
= = =
an−1 + c1 an−2 + c1 an−1 − an−2 ,
ˇcime se dobiva homogena rekurzija an = 2an−1 − an−2 . Karakteristiˇcna jednadˇzba posljednje rekurzije je x2 − 2x + 1 = 0. Ona ima dvostruki korijen x1,2 = 1, pa je op´ce rjeˇsenje 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ˇcima, binsearch Tmax (n) = O(lg n).
Prosjeˇcnu ´cemo sloˇzenost izraˇcunavati samo za sluˇcaj kada se element nalazi u listi. Jasno je da, ako se element ne nalazi u listi sloˇzenost iznosi Θ(lg n).
ˇ 4.3. PRETRAZIVANJE I SORTIRANJE
144
Neka lista ima n elemenata. Bez smanjenja op´cenitosti moˇzemo pretpostaviti da je n = 2k − 1. Ovo je vaˇzno samo zato da osiguramo da u svakom koraku niz ima srednji element. U prvom koraku algoritma pregledavamo srednji element. Ako je traˇzeni element jednak srednjem, onda ´ce algoritam zavrˇsiti u jednom koraku. Sljede´ca dva elementa: onaj koji se nalazi na ˇcetvrtini liste i onaj koji se nalazi na tri ˇcetvrtine liste, moˇzemo na´ci u dva koraka. Nadalje, imamo 4 elementa koja nalazimo u tri koraka, itd. Dakle, imamo sluˇcajnu varijablu µ X=
binsearch Tavg (k)
1
2
1 n
2 n
... ...
¶
k 2k−1 n
= EX · c1 = c1
k X
.
i·
i=1
=
2k
c1 −1
k X
2i−1 2k − 1
i · 2i−1 .
i=1
Pogledajmo na trenutak neˇsto op´cenitiju sumu niza: R(x) =
k X
i · xi−1 .
i=1
Formalno integriramo ovaj red i dobivamo: Z R(x) =
k X
xi =
i=1
xk+1 − 1 . x−1
Sada to natrag formalno deriviramo i dobivamo R(x) =
k · xk+1 − (k + 1) · xk + 1 . (x − 1)2
(4.2)
Uvrstimo li (4.2) u (4.2), dobit ´cemo: c1 k · 2k+1 − (k + 1) · 2k + 1 12 2k − 1 (k − 1) · 2k + 1 = c1 · 2k − 1 · ¸ k = c1 (k − 1) + k . 2 −1
binsearch Tavg (k) =
Iz (4.3) i definicije broja k slijedi da je
(4.3)
POGLAVLJE 4. ALGORITMI
145 ·
binsearch Tavg (n)
¸ lg n = c1 · lg(n − 1) + . n−1
Konaˇcno, binsearch Tavg (n) = Θ(lg n).
I na kraju, potrebno je izraˇcunati sloˇzenost binarnog pretraˇzivanja u najboljem sluˇcaju. Najbolji je sluˇcaj kada se traˇzeni element nalazi toˇcno u sredini liste. Tada se on pronalazi u toˇcno 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ˇzivanje jest da lista bude sortirana. To nije jedini algoritam i jedina situacija koja zahtjeva sortiranu listu. Zapravo, sortiranje je jedna od najˇceˇs´cih operacija koje raˇcunalo izvodi. Stoga nije ˇcudno da je problemu sortiranja posve´cena posebna paˇznja u teoriji algoritama. Ovdje ´cemo opisati nekoliko razliˇcitih algoritama sortiranja i usporediti njihovu sloˇzenost. Sortiranje izborom Prvi, vrlo jednostavan algoritam sortiranja je sortiranje izborom (engl. selection sort) . Algoritam radi sljede´ce: u listi se pronalazi najmanji element i on mijenja mjesto s prvim elementom u listi. Nakon toga, prvi ´ce sadrˇzavati onu vrijednost koju ´ce sadrˇzavati u konaˇcnoj, sortiranoj listi, tj. najmanju vrijednost u listi. Sada se isti postupak ponavlja za preostale elemente, osim prvog. Drugim rijeˇcima, postupak se ponavlja za elemente od drugog do posljednjeg. U svakom sljede´cem prolazu se dio liste koji treba obraditi smanjuje za jedan element. Zbog toga, ako je lista dugaˇcka n elemenata, onda ´ce, nakon n − 1 prolaza, ovaj algoritam sortirati listu. Primjer 4.2 Sortirajmo listu 7
3
5
1
8
4
2
9
6
4
2
9
6
4
2
9
6
Najmanji element je onaj s vrijednoˇs´cu 1. 7
3
5
1
8
Zamijenimo ga s prvim elementom 1
3
5
7
8
ˇ 4.3. PRETRAZIVANJE I SORTIRANJE
146
U ostatku element s najmanjom vrijednoˇs´cu je onaj s vrijednoˇs´cu 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ˇsimo 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ˇcno n − 1 puta, bez obzira na instancu problema. Koraci 3 i 4 se u svakom prolazu ponavljaju razliˇcit broj puta - u prvom prolazu n − 1 puta, u drugom n − 2 puta, itd. Jedina je razlika medu razliˇcitim instancama problema u tome koliko ´ce se puta izvesti pridruˇzivanje vrijednosti varijabli min u koraku 4. Najgori je sluˇcaj kada je uvjet u koraku 4 uvijek ispunjen. Treba napomenuti da se ovdje radi o hipotetiˇckom najgorem sluˇcaju te da on nije izvediv za liste ve´ce od 2 elementa, jer ne postoji takva instanca za koju bi uvjet u koraku 4 uvijek bio ispunjen. Imamo
SelectionSort Tmax (n) = c1 · n +
n−1 X
c2 · i
i=1
n · (n − 1) = c1 · n + c2 · 2 c2 2 c2 ·n , = (c1 − ) · n + 2 2 odnosno SelectionSort Tmax (n) = O(n2 ).
U najboljem se sluˇcaju, pridruˇzivanje u koraku 4 ne´ce izvrˇsiti nikad. Taj sluˇcaj je realan sluˇcaj, kada je lista ve´c unaprijed sortirana. Tada je
SelectionSort Tmin (n) = c1 · n +
n−1 X
c2 · i
i=1
= (c1 −
c2 2 c2 )·n+ ·n , 2 2
odnosno SelectionSort Tmin (n) = O(n2 ).
Kako prosjeˇcna sloˇzenost mora biti izmedu najbolje i najgore, zakljuˇcujemo da je SelectionSort Tavg (n) = O(n2 ).
Jednostavno sortiranje zamjenom Sortiranje zamjenom (engl. simple exchange sort) je joˇs jedan od osnovnih algoritama sortiranja. Sortiranje se vrˇsi 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
ˇ 4.3. PRETRAZIVANJE I SORTIRANJE
148
preostali elementi s novim prvim elementom u listi. Nakon prvog prolaza kroz listu, u prvom ´ce 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 ´ce se nalaziti i u izlaznoj, sortiranoj listi, pa ´ce se algoritam zavrˇsiti nakon (n − 1)-og koraka. Primjer 4.3 Opet sortirajmo istu listu: 7
3
5
1
8
4
2
9
6
9
6
Najprije prvi i drugi element mijenjaju mjesta. 3
7
5
1
8
4
2
Sada se pretraˇzuje dalje i dode se do ˇcetvrtog 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ˇse nemamo ˇsto mijenjati. 1
7
5
3
8
4
2
9
6
Sada se usporeduju elementi s drugim elementom liste. Odmah nalazimo da je tre´ci 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ˇzemo opisati na sljede´ci naˇcin: 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ˇzenost ovog algoritma. U svakom sluˇcaju, vanjska se petlja izvodi toˇcno n−1 puta. Unutarnja se petlja u prvom prolazu izvodi toˇcno n− 1 puta, u drugom n − 2 puta, u tre´cem n − 3 puta itd. U svakom izvrˇsavanju unutraˇsnje petlje izvede se provjera uvjeta, te ako je uvjet ispunjen, onda se elementima zamijene mjesta. U najgorem sluˇcaju, kada je lista na poˇcetku obrnuto sortirana, uvjet ´ce uvijek biti zadovoljen. Neka kontrola vanjske petlje ima sloˇzenost c1 , neka kontrola unutarnje petlje, zajedno s provjerom uvjeta i zamjenom mjesta elementima ima sloˇzenost c2 . Tada je, u najgorem sluˇcaju, sloˇzenost jednaka:
ExchangeSort Tmax = (n − 1) · c1 +
i−1 X
i · c2
i=1
= (n − 1) · c1 + c2 ·
i−1 X
i
i=1
n · (n + 1) = (n − 1) · c1 + c2 · 2 c2 2 c2 = · n + (c1 + ) · n − c1 , 2 2 iz ˇcega slijedi da je ExchangeSort Tmax = Θ(n2 ).
(4.4)
U najboljem sluˇcaju, kada je lista unaprijed sortirana, uvjet u koraku 3 se nikada ne ispunjava, pa nema ni jedne zamjene mjesta. Neka je sa c3
ˇ 4.3. PRETRAZIVANJE I SORTIRANJE
150
oznaˇceno trajanje kontrole unutarnje petlje zajedno s provjerom uvjeta u koraku 3. Tada je ExchangeSort Tmax
= (n − 1) · c1 +
i−1 X
i · c3 ,
i=1
ˇsto sliˇcno gornjem raˇcunu daje ExchangeSort Tmin = Θ(n2 ).
(4.5)
Kako su maksimalna i minimalna sloˇzenost ovog algoritma asimptotski jednake, slijedi da je i ExchangeSort Tavg = Θ(n2 ).
(4.6)
Sortiranje umetanjem Sortiranje umetanjem (engl. insertion sort) je joˇs jedan od osnovnih algoritama sortiranja. Ovaj se algoritam temelji na ideji dijeljenja liste na dva dijela: prvi koji je ve´c sortiran i drugi koji tek treba sortirati. Na poˇcetku se u prvom dijelu nalazi samo prvi element liste. U svakom se sljede´cem koraku uzima prvi element iz drugog dijela liste i ume´ce se na odgovaraju´ce 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´ci element, koji se usporeduje s drugim. Ako je manji, onda drugi element prelazi na tre´ce mjesto, a promatrani se element usporeduje s prvim. Ako je ve´ci od prvog, onda se ume´ce na drugo mjesto, a ako je manji, onda se prvi element pomiˇce na drugo mjesto, a promatrani dolazi na prvo mjesto. Isti se postupak ponavlja za ˇcetvrti 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´ci od promatranog pomiˇcu 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´c prije toga element pomaknut za jedno mjesto dalje. Tako se sortirani dio liste pove´cava za jedan element i moˇze se prije´ci na sljede´ci element liste. Kada se svi elementi liste obrade na ovaj naˇcin, cijela ´ce 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´cem koraku pretraˇzujemo prva dva elementa traˇze´ci onaj koji ima ve´cu vrijednost od 5, a to je drugi element. Njega pomiˇcemo za jedno mjesto dalje a na njegovo mjesto dolazi tre´ci element. 3
5
3
5
7
1
8
4
2
9
6
1
8
4
2
9
6
ˇ Cetvrti element ima vrijednost 1 i on dolazi na poˇcetak liste, a svi se elementi prije njega pomiˇcu 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
8
4
2
9
6
4
2
9
6
7
Sljede´ci element ostaje na svom mjestu: 1
3
5
7
8
Prva dva elementa su manja od 4, pa ostaju gdje jesu, dok se ostali elementi pomiˇcu 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
2
9
6
8
Sljede´ci 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
ˇ 4.3. PRETRAZIVANJE I SORTIRANJE
152 1
2
3
4
5
7
8
9
6
7
8
9
6
Sljede´ci element ostaje na svom mjestu. 1
2
3
4
5
Posljednji element ide na ˇsesto 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ˇsi korake 2-4 za j := 2, . . . , n. 2. p := aj . 3. Izvrˇsi korak 4 za i := 1, . . . , j − 1. 4. Ako je ai > aj onda swap(ai , aj ). Pogledajmo sloˇzenost ovog algoritma. U svakom sluˇcaju koraci 1 i 2 izvrˇsavaju se n − 1 puta, a svaki od njih ima konstantno trajanje. Broj prolaza kroz korake 3 i 4 pove´cava se za svaki prolaz kroz korake 1 i 2. Najgori je sluˇcaj obrnuto sortirana lista. Onda se izvrˇsava maksimalan broj zamjena elemenata. U tom ´ce sluˇcaju uvjet iz 4 uvijek biti zadovoljen. U tom sluˇcaju je sloˇzenost inssort Tmax (n) = c1 · n +
n−1 X
c2 · i = c1 · n + c2 ·
i=1
c2 c2 (n − 1)n = (c1 − ) · n + · n2 . 2 2 2
Dakle, inssort Tmax (n) = Θ(n2 ).
Sliˇcno, ako je lista ve´c sortirana, onda ´ce svaki puta uvjet iz koraka 4 biti neistinit, pa se ne´ce izvrˇsiti nijedno mijenjanje mjesta. No, sve ostale operacije ´ce se izvrˇsavati. Stoga ´ce biti inssort Tmin (n) = Θ(n2 ).
No, u tom je sluˇcaju i inssort Tavg (n) = Θ(n2 ).
POGLAVLJE 4. ALGORITMI
153
Mjehuriˇ casto sortiranje U mjehuriˇcastom sortiranju (engl. bubble sort) prolazi se redom po elementima liste i svaki se od njih usporeduje sa svojim sljedbenikom. Ako je neki element ve´ci od sljedbenika, onda im se zamjenjuju mjesta. Nakon prvog prolaza na kraj liste ”isplivat” ´ce najve´ca vrijednost. Nakon toga se isti postupak ponavlja za prvih n − 1 elemenata, pa ´ce nakon prolaza kroz listu u predposljednji element do´ci druga najve´ca vrijednost. Tako ´ce 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
5
7
1
8
4
2
9
6
5
1
7
8
4
2
9
6
Nakon toga drugi i tre´ci, 3 pa tre´ci i ˇcetvrti. 3
ˇ Cetvrti i peti element ne mijenjanju mjesta, ve´c mjesta mijenjaju peti i ˇsesti element. 3
5
1
7
4
8
2
9
6
9
6
Nakon toga, mjesta mijenjaju ˇsesti i sedmi element: 3
5
1
7
4
2
8
Sedmi i osmi element ne mijenjaju mjesta, ve´c samo osmi i deveti. 3
5
1
7
4
2
8
6
9
Time je zavrˇsen prvi prolaz kroz listu i na posljednjem se mjestu nalazi najve´ca vrijednost. Sada se postupak ponavlja za prvih n − 1 elemenata. Mijenjaju se drugi i tre´ci element, 3
1
5
7
4
2
8
6
9
8
6
9
pa ˇcetvrti i peti, a nakon toga peti i ˇsesti. 3
1
5
4
2
7
ˇ 4.3. PRETRAZIVANJE I SORTIRANJE
154
Na kraju ovog koraka mijenjaju se sedmi i osmi element 3
1
5
4
2
7
6
8
9
U sljede´cem se prolazu obraduje prvih sedam elemenata Mijenja se prvi i drugi, 1
3
5
4
2
7
6
8
9
7
6
8
9
pa tre´ci i ˇcetvrti te ˇcetvrti i peti element. 1
3
4
2
5
Na kraju ovog koraka se mijenjaju ˇsesti i sedmi element. 1
3
4
2
5
6
7
8
9
U sljede´cem se prolazu mijenjaju samo tre´ci i ˇcetvrti 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´ci element. 1
3
2
4
5
6
7
8
9
U sljede´cem se prolazu promatraju prva ˇcetiri elementa liste, no mijenjaju se samo drugi i tre´ci. 1
2
3
4
5
6
7
8
9
Iako smo time dobili sortiranu listu, algoritam ´ce izvesti joˇs 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´ci element u listi. Kada algoritam naide u prvom prolazu na taj element, on ´ce biti ve´ci od svakog sljede´ceg elementa u listi, pa ´ce s njime mijenjati mjesta. Na kraju prolaza, taj ´ce element biti na kraju liste. U drugom ´ce se koraku na isti naˇcin na pretposljednjem mjestu na´ci drugi najve´ci element i tako redom. To dokazuje da je ovaj algoritam korektan. Ocijenimo sada njegovu sloˇzenost. Bez obzira kako izgleda instanca problema, korak 1 ´ce se ponavljati n − 1 puta. U prvom ´ce se prolazu koraci 2 i 3 ponavljati n − 1 puta, a u svakom ´ce sljede´cem prolazu njihov broj ponavljanja biti za jedan manji. Najgori je sluˇcaj kada je uvjet iz koraka 3 uvijek ispunjen (kada je lista na poˇcetku obrnuto sortirana). U tom ´ce se sluˇcaju svaki puta izvrˇsavati naredba swap. Najbolji je sluˇcaj kada ovaj uvjet nije ispunjen ni jednom (kada je lista na poˇcetku ve´c bila sortirana). Tada se naredba swap ne´ce izvrˇsiti ni jednom, no broj provjera uvjeta u tom koraku ne´ce se promijeniti. Iz toga zakljuˇcujemo da ´ce najgori i najbolji sluˇcaj za ovaj algoritam biti asimptotski jednaki.
bubsort Tmax (n) = c1 · (n − 1) +
n−1 X
j · c2
j=1
(n − 1) · n = c2 · (n − 1) + c2 · 2 c2 2 c2 ·n = −c1 + (c1 − ) · n + 2 2 = Θ(n2 )
(4.7)
Iz gornjeg razmatranja zakljuˇcujemo 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´c nakon ˇsestog koraka. Poboljˇsanje ovog algoritma se moˇze posti´ci ako se u njega ugradi provjera, koja ´ce provjeravati je li u nekom prolazu napravljena zamjena, a ako to nije sluˇcaj, ono ´ce zaustavljati algoritam. Sortiranje spajanjem Sortiranje spajanjem (engl. merge sort) je prvi algoritam koji ´cemo ovdje opisati, a koji ima sloˇzenost manju od kvadratne. Vidjet ´cemoda je sloˇzenost ovog algoritma jednaka O(n lg n). Algoritmi sortiranja s takvom sloˇzenoˇs´cu najˇceˇs´ce koriste metodu podijeli pa ovladaj (engl. divide and conquer). Podijeli pa ovladaj je metoda kod koje se problem reducira na jedan ili viˇse problema istog tipa, ali manjih dimenzija, a rjeˇsenje originalnog problema dobija se kompozicijom rjeˇsenja reduciranih problema. Sortiranje spajanjem
ˇ 4.3. PRETRAZIVANJE I SORTIRANJE
156
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ˇce 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ˇcno je jasno da ovaj algoritam zaista spaja dvije sortirane liste u sortiranu listu. Ocijenimo njegovu sloˇzenost. Neka su k i l duljine ulaznih lista. Korak 1 ´ce se izvrˇsiti jednom. Nadalje, za svaki element ulaznih listi, izvrˇsit ´ce se jedan od blokova naredbi iz koraka 3 ili blok naredbi iz koraka 5 ili pak iz koraka 7. Pogledamo li paˇzljivije vidjet ´cemo da su svi ti blokovi sliˇcni i da imaju istu, konstantnu sloˇzenost. Provjeravat ´ce se uvjet iz koraka 2 i 3 ili uvjet iz 4 ili pak 6. Sva se ta tri uvjeta mogu odozgo ograniˇciti nekom konstantom, pa je sloˇzenost spajanja merge Tmax (k, l) ≤ c1 + (k + l) · (c2 + c3 )
= O(k + l) Na sliˇcan se naˇcin 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ˇcin. Tako se problem smanjuje dok se ne dode do jednoˇclanih listi. Sortiranje jednoˇclane liste je trivijalno, tj. svaka jednoˇclana lista je ve´c 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´cu sloˇzenost: lnm l m jnk merge n ) + Tmax ( , ) 2m 2 2 ln mersort ≤ 2 · Tmax ( ) + d1 · n + d2 . 2
mersort mersort Tmax (n) ≤ 2 · Tmax (
Napiˇsemo li to kako je to uobiˇcajeno za rekurzije imat ´cemo: 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ˇzbu za (n − 1)-vi ˇclan od jednadˇzbe za n-ti ˇclan: sn sn−1 sn − sn−1
2 · sn−1 + d1 · 2n + d2 2 · sn−2 + d1 · 2n−1 + d2 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 ˇclan pomnoˇzenu s 2 od formule za n-ti ˇclan. sn 2 · sn−1 sn − 2 · sn−1
= = =
3 · sn−1 − 2 · sn−2 + 2n · d1 6 · sn−2 − 4 · sn−3 + 2n · d1 3 · sn−1 − 8 · sn−2 + 4 · sn−3
ˇ 4.3. PRETRAZIVANJE I SORTIRANJE
158 odnosno,
sn = 5 · sn−1 − 8 · sn−1 + 4 · sn−3 . ˇ Cime smo dobili homogeu rekurziju. Karakteristiˇcna jednadˇzba ove rekurzije je x3 − 5x2 + 8x − 4 = 0. Ova jednadˇzba ima dvostruki korijen x1,2 = 2 i jednostruki korijen x3 = 1. Dakle op´ce rjeˇsenje ove jednadˇzbe je sn = C1 · 2n + C2 · n · 2n + C3 · 1n . Konaˇcno, dobivamo da je t2n = C1 · 2n + C2 · n · 2n + C3 . iz ˇcega slijedi da je tn = C1 · n + C2 · ·n lg n + C3 . Drugim rijeˇcima, M ergesort Tmax = O(n lg n).
Ovaj algoritam nije osjetljiv na razliˇcitosti instanci. Kakva god bila instanca, algoritam ´ce imati jednaku sloˇzenost. Stoga je M ergesort M ergesort Tmin = Tavg = O(n lg n).
Primije´cuje se jedan nedostatak sortiranja spajanjem naspram drugih dosada opisanih algoritama sortiranja: sortiranje spajanjem za svoj rad treba dodatno polje, odnosno dodatni memorijski prostor. Nijedan od dosad opisanih algoritama, osim sortiranja spajanjem, nema taj nedostatak. Sortiranje pomo´ cu hrpe Sortiranje pomo´cu 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´cem 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 popunjene. 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 ´cemo opisati algoritme za dodavanje i brisanje elemenata u hrpi.
POGLAVLJE 4. ALGORITMI
159
Algoritam dodavanja elemenata u hrpu je sljede´ci: novi se element dodaje na najljevije slobodno mjesto na posljednjoj razini stabla. Nakon toga se usporeduje njegova vrijednost s vrijednoˇs´cu 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 ´cemo listu koju smo i ranije koristili u hrpu.
7
7
3
3
7
5
1
1
1
3 7
5 8
4
3
4
7
8
1 3 7 9
2 8
6
5
4
5
2
ˇ 4.3. PRETRAZIVANJE I SORTIRANJE
160
1 3 6 9
2 8
5
4
7 Slika 4.4
Najefikasnija implementacija hrpe je ona pomo´cu polja. Stavimo li korijen u element polja s indeksom 1, te ako lijevo dijete ˇcvora 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 ´ce svaki element imati svoje mjesto u polju. Takoder, zbog toga ˇsto je hrpa potpuno stablo, u kojem se posljednja razina puni s lijeva na desno, elementi hrpe ´ce 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ˇzava sva svojstva hrpe. Pogledajmo njegovu sloˇzenost. Neka je n broj elemenata u hrpi. Jasno je da, poˇsto je potpuna, hrpa od n elemenata ima visinu 1 + blog2 nc. Kako algoritam mijenja element s elementom prethodne razine, on moˇze izvrˇsiti toˇcno blog2 nc zamjena, odnosno koraci od 2 do 3 se ponavljaju najviˇse blog2 nc puta. Dakle sloˇzenost ovog algoritma je InsHeap Tmax (n) ≤ c1 + c2 · blog2 nc
= O(lg n). S druge strane, najbolji sluˇcaj je kada je dodani element odmah ve´ci od svog roditelja. U tom sluˇcaju 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 ´ce novododani element na kraju zavrˇsiti, algoritam ´ce se kroz stablo kretati istim putem. Stoga pretpostavimo da je jednako vjerojatno da ´ce novododani element ostati na svakoj od razina stabla. Tada ta vjerojatnost iznosi blog1 nc , pa je sloˇzenost prosjeˇcnog sluˇcaja 2
blog2 nc InsHeap Tavg (n)
= c1 +
X i=1
1 · i · c2 blog2 nc
1 blog2 nc · (blog2 nc + 1) · · c2 blog2 nc 2 c2 · (blog2 nc + 1) = O(lg n) = c1 + 2 = c1 +
Jedno vaˇzno svojstvo hrpe jest to ˇsto se najmanji element hrpe uvijek nalazi u njenom korijenu. Odatle proizlazi ideja sortiranja pomo´cu hrpe - iz hrpe se izvadi korijen, stavi se na poˇcetak liste, a ostatak hrpe se ponovno preuredi tako da zadovoljava sva svojstva hrpe. Postupak praˇznjenja hrpe je sljede´ci. Iz hrpe se vrijednost korijena preseli u izlaznu listu. Nakon toga se vrijednost najdesnijeg elementa na zadnjoj razini hrpe preseli u korijen a posljednji se element hrpe obriˇse. Time je stablo ostalo potpuno. Joˇs je potrebno osigurati uredaj u hrpi. Promatrana vrijednost, koja naruˇsava uredaj u hrpi nalazi se u korijenu. Usporedimo tu vrijednost s manjim od djece korijena te ako je promatrana vrijednost ve´ca, zamjenimo im mjesta. I dalje se promatrana vrijednost, sada smjeˇstena na drugoj razini stabla, usporeduje s manjim svojim djetetom. Ovaj se postupak ponavlja sve dok promatrana vrijednost ne bude manja od manjeg djeteta (pa onda i od ve´ceg) ili dok se promatrana vrijednost ne nade u ˇcvoru bez djece. Sljede´ci primjer pokazuje kako se prazni hrpa i kreira sortirana lista.
Primjer 4.7 Ispraznimo hrpu iz prethodnog primjera i kreirajmo sortiranu listu.
ˇ 4.3. PRETRAZIVANJE I SORTIRANJE
162
1 3
2
6
8
9
5
4
7
1
7 3 6
2 8
5
4
9
1
2 3 6 9
4 8
5
7
POGLAVLJE 4. ALGORITMI
163
1, 2
9 3
4
6
8
5
7
1, 2
3 6
4
9
8
5
7
1, 2, 3
7
4
6 9
4 8
5
6 9
5 8
7
1, 2, 3, 4
7 6 9
5 5
8
6 9
7 8
ˇ 4.3. PRETRAZIVANJE I SORTIRANJE
164
1, 2, 3, 4, 5
8
6
6
7
9
8
7
9
1, 2, 3, 4, 5, 6
9 8
7 7
8
9
1, 2, 3, 4, 5, 6, 7
9 8
8 9
1, 2, 3, 4, 5, 6, 7, 8
9
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´coj razini. Stoga se koraci od 2 do 4 mogu ponoviti najviˇse blog2 nc puta. Stoga je njegova sloˇzenost: DelHeap Tmax (n) ≤ c1 + c2 · blog2 nc
= O(lg n) U najboljem ´ce sluˇcaju prebaˇceni element ostati korijen i ne´ce prolaziti kroz stablo. U tom je sluˇcaju sloˇzenost DelHeap Tmin (n) = c1 + c2
= Θ(1). Nadalje, vrlo sliˇcno kao i kod punjenja zakljuˇcuje se da je DelHeap Tavg (n) = O(lg n).
I na kraju, algoritam sortiranja pomo´cu hrpe ˇcita redom elemente liste i stavlja ih u hrpu. Nakon ˇsto se svi elementi liste nadu u hrpi, poˇcinje praˇznjenje hrpe. Kako se elementi izbacuju iz hrpe tako se redom upisuju natrag u listu. Nakon ˇsto se hrpa isprazni, lista ´ce 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.
ˇ 4.3. PRETRAZIVANJE I SORTIRANJE
166
Jasno je da se u svakom sluˇcaju koraci od 1 do 2, te koraci od 3 do 4 izvode n puta, pri ˇcemu je n duljina ulazne liste. Sloˇzenost algoritama za umetanje elemenata u hrpu i brisanje elemenata iz hrpe izraˇcunata je ranije, pa imamo:
HeapSort Tmax (n) = c1 +
n X
InsHeap Tmax (i) +
i=1
n X
DelHeap Tmax (i)
i=1
n n X 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ˇcno se dobija i da je HeapSort Tavg (n) = O(n lg n).
I na kraju,
HeapSort Tmin (n) = c1 +
n X
InsHeap Tmin (i) +
i=1
≤ c1 +
n X i=1
n X
DelHeap Tmin (i)
i=1
d1 +
n X
e1
i=1
≤ c1 + n · d1 + n · e1 = c1 + (d1 + e1 ) · n = O(n). Ovako izvedeno sortiranje pomo´cu hrpe ima istu manu koju smo spomenuli kod sortiranja spajanjem - potreban je dodatni memorijski prostor za hrpu u kojoj mora biti mjesta za joˇs jednu kopiju svakog elementa ulazne liste. Moˇze li se to izbje´ci? Za razliku od sortiranja spajanjem, sortiranje pomo´cu hrpe se moˇze izvesti prirodno i bez dodatnog prostora. Polje u kojem su smjeˇsteni elementi moˇze 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´ca od oznaka njegove djece. U takvoj hrpi u korijenu ´ce se nalaziti najve´ci element u hrpi. Primjer ovakve hrpe za listu iz naˇseg prethodnog primjera je
POGLAVLJE 4. ALGORITMI
167
9 8
5
7 1
3
4
2
6 Slika 4.6
Ovakva se hrpa moˇze izvesti u samom polju koje sadrˇzi ulazne podatke. Kre´ce se od prvog elementa. Nakon toga se promatra drugi element polja i na ve´c ranije opisani naˇcin, uz zamjenu usporedbe, prva se dva elementa pretvore u hrpu. Nakon toga se promatra tre´ci element u polju i iz prva tri elementa se, na ranije opisani naˇcin, stvori hrpa, itd. Tako se radi sve dok svi elementi polja ne ˇcine hrpu. Nakon toga ´ce se u korijenu nalaziti najve´ci element. Brisanje elemenata iz hrpe ide na isti naˇcin kao i ranije, samo ˇsto se obrisani element ne stavlja u posebno polje, ve´c korijen mijenja mjesto s posljednjim elementom u polju. Nakon toga je sigurno da je element, koji je bio u korijenu, stavljen na svoje zavrˇsno 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ˇzena svojstva. Ovaj je postupak isto tako ve´c opisan ranije. Dakle, postupak je sljede´ci: 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. PRETRAZIVANJE 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ˇce 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ˇzenost ovog algoritma ista je kao i sloˇzenost originalnog algoritma za sortiranje pomo´cu hrpe. Naime, ovo je u biti isti algoritam kao i prethodni, samo s manje koriˇstenog memorijskog prostora. Quicksort algoritam Sada ´cemo obraditi algoritam sortiranja koji danas predstavlja jedan od vrhunaca algoritama za sortiranje. Promiˇsljanjem kako bi se mogao ubrzati algoritam sortiranja spajanjem te izbje´ci potrebu za upotrebom pomo´cnog polja, nastao je ovaj algoritam. Naime, kod algoritma sortiranja spajanjem, sortiranje se vrˇsi u dvije faze: dijeljenje liste na manje podliste, te spajanje podlista u sortiranu listu. Pokuˇsaji ubrzanja faze dijeljenja liste doveli su do algoritma prirodnog sortiranja spajanjem (natural merge sort) ([6] str 161-163), dok je pokuˇsaj ubrzanja faze spajanja doveo do potpuno novog algoritma sortiranja - quicksort algoritma. Quicksort algoritam, kao i algoritam 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ˇze uzeti prvi element liste, srednji izmedu prva tri ili ga se moˇze izraˇcunati na bilo koji drugi naˇcin. Jedino ˇsto je vaˇzno jest da se pivot mora izraˇcunati 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´ci 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 ˇsto su elementi u podlistama sortirani nije potrebno nikakvo spajanje. Naime, zbog preuredenja polja, svi su elementi u drugom dijelu liste ve´ci od svakog elementa iz prvog dijela liste.
POGLAVLJE 4. ALGORITMI
169
Prije negoli prikaˇzemo primjer sortiranja liste ovim algoritmom potrebno je razrijeˇsiti neke tehniˇcke detalje izvedbe. Toˇcnije, potrebno je re´ci kako ´ce se vrˇsiti premjeˇstanje elemenata liste? Za to su potrebna dva kursora, od kojih ´ce prvi biti iniciran na drugi element liste i rasti, a drugi ´ce biti iniciran na posljednji element liste i padati. Neka je pivot prvi element liste. Promatramo preostale elemente liste redom. Ako je promatrani element (onaj na kojeg pokazuje prvi kursor) manji od pivota, prvi se kursor pomiˇce za jedan element dalje. Ako je ve´ci od pivota, tada se prelazi na pretraˇzivanje liste odzada. Pretraˇzuje se lista odzada sve dok se ne pronade element manji od pivot elementa. Nadenim se elementima promijene mjesta i nastavlja se traˇziti od prvog kursora. Pretraˇzivanje zavrˇsava kada prvi kursor premaˇsi drugi. Zanimljivo je da ´ce u trenutku kada se prvi kursor nade iza drugoga, drugi kursor pokazivati toˇcno na ono mjesto u listi na kojem ´ce se nalaziti pivot kada ´ce lista biti sortirana. Kako se pivot element, prema naˇsem algoritmu, sada nalazi na poˇcetku 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ˇse nije potrebno obradivati jer se on, kao ˇsto smo ve´c rekli, nalazi na mjestu na kojem ´ce 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ˇs´cu 7. Pretraˇzuje se lista od poˇcetka i traˇzi se vrijednost ve´ca od pivota. Prva je takva vrijednost broj 8. Sa straˇznje strane liste traga se za elementom s vrijednoˇs´cu manjom od pivota. To je element s vrijednoˇs´cu 6. 7
3
5
1
8
4
2
9
6
2
9
8
Zamijenimo mjesta tim dvama elementima. 7
3
5
1
6
4
Traˇzimo dalje. Sljede´ci element s ve´com vrijednoˇs´cu od pivota je element s vrijednoˇs´cu 9. S druge strane, sljede´ci element s vrijednoˇs´cu manjom od pivota je element s vrijednoˇs´cu 2. U tom je trenutku drugi kursor preˇsao ispred prvog i ovaj se dio algoritma zavrˇsava. Sada se lista dijeli na dva dijela - od poˇcetka liste pa do drugog kursora, te od prvog kursora do kraja. 7
3
5
1
6
4
2
9
8
ˇ 4.3. PRETRAZIVANJE I SORTIRANJE
170
Kako je pivot najve´ci 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 ´ce se na´ci i u sortiranoj listi, pa njega ne treba viˇse 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´ci od pivota je element s vrijednoˇs´cu 3. Straga, prvi element s vrijednoˇs´cu 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ˇzivanje sprijeda ´ce se zaustaviti na sljede´cem elementu, s vrijednoˇs´cu 5. Pretraˇzivanje odostraga ´ce opet stati na broju 1, te ´ce u tom trenutku opet prvi kursor prije´ci iza drugoga. Mijenjamo pivot sa zadnjim elementom u prvom dijelu, tj., u ovom sluˇcaju, 2 i 1. 1
2
5
3
6
4
7
9
8
Sada promatramo posljednja dva elementa. Pivot je element s vrijednoˇs´cu 9. Traˇze´ci sprijeda element ve´ci od pivota, prije´ci ´cemo posljednji element liste i u tom trenu prvi kursor ´ce prije´ci iza drugog. Pivot mijenja mjesto s posljednjim u prvom dijelu, ˇcime 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 ´ce biti element s vrijednoˇs´cu 5. Pretraga sprijeda staje na elementu s vrijednoˇs´cu 6, a straga na elementu s vrijednoˇs´cu 4. 1
2
5
3
6
4
7
8
9
5
3
4
6
7
8
9
Mijenjamo im mjesta. 1
2
Daljnja pretraga sprijeda ´ce zavrˇsiti na broju 6, a pretragom straga ´cemo prije´ci ispred prvog kursora. Pivot mijenja mjesto s elementom s vrijednoˇs´cu 4. 1
2
4
3
5
6
7
8
9
POGLAVLJE 4. ALGORITMI
171
Preostao je joˇs jedan segment polja, koji ima viˇse od jednog elementa, i njega takoder sortiramo. Pivot je element s vrijednoˇs´cu 4. Pretraga sprijeda ´ce prije´ci posljednji element promatranog segmenta. Pivot mijenja mjesto s elementom na kojeg pokazuje drugi kursor, ˇcime 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ˇcetak, 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 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´cina 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 polje. Dokaz. Indukcijom po broju znamenaka k, najve´ce vrijednosti u polju. Baza indukcije: Neka k = 1. Ako su svi brojevi jednoznamenkasti, onda ´cemo ih u prvom prolazu podijeliti na 10 pomo´cnih polja. U prvom ´ce biti sve nule, u drugom sve jedinice, itd. Kod spajanja ´ce nule do´ci na poˇcetak, jedinice iza njih itd., pa ´ce polje biti sortirano. Pretpostavimo da radix sort ispravno sortira brojeve do m znamenaka. Neka je k = m + 1. Nakon m-tog spajanja brojevi ´ce biti sortirani ispravno po posljednjih m znamenaka. U (m + 1)-om razdijelimo brojeve u 10 pomo´cnih polja, tako da u prvom budu svi koji imaju vode´cu nulu, u drugom svi koji imaju vode´cu jedinicu itd. Osim toga, kako su brojevi bili sortirani po preostalih m znamenaka, u svakom ´ce pomo´cnom polju brojevi biti sortirani. Kada spojimo pomo´cna polja tako da prvo stavimo brojeve s vode´com nulom, pa one s vode´com jedinicom i tako redom, dobit ´cemo sortirano polje.
POGLAVLJE 4. ALGORITMI
183
Pogledajmo sada sloˇzenost ovog algoritma. Neka najve´ci broj u polju ima k znamenaka. Tada ´ce 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 ´cemo imati T RadixSort (n) = O(n). Ovo vrijedi neovisno o distribuciji, odnosno instanci koju ovaj algoritam sortira. No, valja re´ci da sloˇzenost ovog algoritma znaˇcajno ovisi o veliˇcini brojeva koji se sortiraju. Sortiranje pomo´ cu pretinaca Tre´ci algoritam sortiranja, sortiranje pomo´cu pretinaca (engl. bucket sort), nije u najgorem sluˇcaju vremenske sloˇzenosti O(n), ve´c je, u odredenom sluˇcaju prosjeˇcne sloˇzenosti 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 ˇsto je ve´c reˇceno, da bi ovaj algoritam radio dobro, elementi polja moraju biti uniformno distribuirani izmedu minimalnog i maksimalnog elementa u polju. Ako polje ima n elemenata, stvara se struktura koja ima n pretinaca takvih da u svaki pretinac moˇzemo staviti od 0 do n elemenata. Ovo se moˇze implementirati kao polje ili vezana lista, koja sadrˇzi pokazivaˇce na n vezanih listi ili polja. Ova struktura je poznata kao otvorena hashtablica, pri ˇcemu je hash-funkcija, koja se ovdje koristi, vrlo jednostavna: » ¼ M −m h(i) = +m n U sluˇcaju normalne distribucije oˇcekuje se da ´ce u svakom pretincu hashtablice biti toˇcno jedan element. Ako ih je viˇse, onda se sortiraju nekom od poznatih standardnih metoda sortiranja. Mi ´cemo koristiti metodu sortiranja pomo´cu hrpe iz dva razloga: prvo zato jer ima sloˇzenost O(n · lg n) u najgorem sluˇcaju, pa ´ce i bucket sort naslijediti tu najgoru sloˇzenost i drugo, jer se i tako nakon razmjeˇstanja elemenata u hash-tablicu, elemente iz pojedinih pretinaca treba proˇcitati i sortirati. Kako bismo odrˇzali ˇcisto´cu bucket sort algoritma, ne ulaze´ci u detalje pomo´cne metode sortiranja, u algoritmu ´cemo kreirati pomo´cno polje i sortirati ga koriste´ci neku od ranije opisanih metoda sortiranja. Kod prepisivanja elemenata odmah ´cemo ih prepisivati
ˇ 4.3. PRETRAZIVANJE I SORTIRANJE
184
u pomo´cnu hrpu. Na taj naˇcin pove´cavamo prostor koji ovaj algoritam zahtjeva, jer koristimo pomo´cnu strukturu. Moglo bi se pro´ci 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ˇstenje, tada bismo to i uˇcinili, smanjuju´ci time njegovu prostornu, ali i vremensku sloˇzenost. No, na ovoj razini, nama to nije u interesu, jer bi to znatno zakompliciralo naˇse izlaganje, kao i algoritam koji bismo dobili, i odvelo nas nepotrebno od biti metode u detalje neke druge metode sortiranja. Stoga imamo sljede´ci 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ˇcun sloˇzenosti za najbolji i najgori sluˇcaj vrlo je jednostavan. Najgori je sluˇcaj kada je distribucija vrijednosti elemenata krajnje neuniformna, tj. kada svi elementi osim jednog ulaze u prvi ili posljednji pretinac hash tablice. U tom sluˇcaju imamo sljede´cu sloˇzenost: 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 algoritma. Pri tome se pretpostavlja da se umetanje elemenata u hash-tablicu izvodi u konstantnom vremenu.
POGLAVLJE 4. ALGORITMI
185
Petlja iz koraka 4 izvrˇsit ´ce se toˇcno n puta, za svaki pretinac hash-tablice po jednom. Stoga ´ce se koraci 5 i 12, kao i provjera uvjeta iz koraka 9 izvrˇsiti toˇcno n puta, pa ´cemo i njihovo vrijeme dodati u vrijednost konstante c2 . Petlja iz koraka 6 ´ce se ukupno, u svim koracima petlje iz koraka 4 izvrˇsiti toˇcno n puta, za svaki element ulaznog polja po jednom. Stoga i sva vremena potrebna za izvrˇsenje jednog njenog koraka, moˇzemo dodati u konstantu c2 . Sliˇcno je i s petljom iz koraka 10. Preostalo je joˇs samo uvrstiti sloˇzenost koju donosi poziv funkcije heapsort. Najgore je, kao ˇsto smo ranije rekli, kada se svi elementi osim jednog svrstavaju u jedan pretinac, a to je sluˇcaj koji je opisan u formuli 4.9. To nas dovodi do formule 4.9. Uvrstimo li sloˇzenost sortiranja pomo´cu hrpe imat ´cemo: 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ˇzenost dobije se ako se pretpostavi u potpunosti uniformna distribucija elemenata. Tada svaki element dolazi u svoj pretinac hashtablice, 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ˇcnu sloˇzenost treba pretpostaviti uniformnu distribuciju na veliˇcinu svakog pojedinog elementa, tj. pretpostaviti da je jednako vjerojatno da ´ce svaki pojedini element u´ci u bilo koji pretinac hash-tablice. " # n X BucketSort heapsort Tavg (n) = E Θ(n) + Tavg (Ni ) , i=1
pri ˇcemu je Ni broj elemenata u i-tom pretincu hash tablice. Zbog linearnosti matematiˇckog oˇcekivanja imamo BucketSort Tavg (n) = n + E
" n X
# heapsort Tavg (Ni )
i=1
= n+ = n+
n X i=1 n X i=1
heapsort E[Tavg (Ni )]
heapsort Tavg (ENi ).
186
4.4. ZADACI
Sada joˇs treba izraˇcunati koliko je oˇcekivanje varijable Ni . Vjerojatnost da j-ti element padne u i-ti pretinac jest n1 . Neka je s Xij oznaˇcena indikatorska varijabla vjerojatnosti da je j-ti element u i-tom pretincu. P (Xij = 1) =
1 . n
Sada je ENi =
n X
P (Xij ) = 1.
j=1
Drugim rijeˇcima, matematiˇcko oˇcekivanje 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ˇcunalu u programskom jeziku po ˇzelji. 2. Izvedite algoritme iz poglavlja 4.3 na raˇcunalu u programskom jeziku po ˇzelji. 3. Napravite algoritam koji ´ce pozivati funkciju double f ja(double x), te za nju izraˇcunavati integral u zadanim granicama Rombergovim algoritmom. 4. Eratostenovo sito je algoritam koji traˇzi prvih n prostih brojeva na sljede´ci naˇcin: kreira se binarno polje veliˇcine n, u kojem se svi ele√ menti iniciraju na 1. Poˇcevˇsi od 2 pa do b nc, radi se sljede´ce: 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ˇzite da ´ce nakon izvrˇsavanja ovog algoritma i-ti element polja biti 1 ako i samo ako je i prost broj. (b) Izvedite algoritam koji ´ce pronalaziti prvih n prostih brojeva koriste´ci Eratostenovo sito. (c) Ocijenite sloˇzenost ovog algoritma. (d) Napravite quicksort algoritam bez koriˇstenja rekurzije. 5. Napravite algoritam koji ´ce za zadani broj x izraˇcunavati n-ti korijen zadanog broja metodom polovljenja. Algoritam treba odrediti poˇcetni interval u kojem se nalazi n-ti korijen od zadanog broja te ga u svakom koraku smanjiveti na pola uzimaju´ci 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ˇzenost ovog algoritma. 6. Napravite algoritam koji rjeˇsava sljede´ci problem: Problem 4.2 (Partition) ULAZ: Multiskup prirodnih brojeva A = {a1 , . . . , an }. IZLAZ: Potrebno je prona´ci 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ˇzi najdulji zajedniˇcki niz znakova, koji se pojavljuju tim redoslijedom u ulaznim nizovima, ali ne nuˇzno jedan za drugim. Npr. za nizove AT CT T GA i CCACT T GGCA traˇzeni je niz ACT T GA. Napravite algoritam koji ´ce traˇziti takav maksimalan niz. Algoritam mora biti polinomne sloˇzenosti s duljinom nizova. (Za pomo´c vidi [2]).
4.5
Projekti
1. Napravite program koji ´ce sortirati datoteku. Za sortiranje u vanjskoj memoriji koristi se modificirano sortiranje spajanjem. Kako bi sortiranje spajanjem radilo ˇsto bolje, prije poˇcetka sortiranja datoteku prepiˇsite u drugu datoteku, ali tako da elementi prije prepisivanja prolaze 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ˇse ne stane ni jedan element. Cijeli algoritam mora imati sloˇzenost O(n · lg n), pri ˇcemu je n broj ˇcitanja i pisanja podataka u vanjskoj memoriji. 2. Implementirajte u ovoj glavi navedene algoritme sortiranja, te ih usporedite za razliˇcite veliˇcine ulaza. Empirijski odredite koji algoritam je najbrˇzi za odredene veliˇcine ulaza, te napravite algoritam koji ´ce ovisno o veliˇcini ulaza izabirati onaj algoritam koji ´ce biti najbrˇzi. Imajte na umu da se algoritam, koji se koristi, moˇze mijenjati tijekom rada, kada se ulaz dovoljno smanji! 3. Implementirajte randomizirani quicksort algoritam. Kod njega se pivot element uzima kao sluˇcajni element polja koje se sortira. Napravite vjerojatnosnu analizu oˇcekivane vrijednosti izabranog pivota, te s obzirom na to, prosjeˇcnu sloˇzenost.
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 Searching, Addison-Welsey, Reading, Massachusets, 1973. [7] Leeuwen, J. van (ed.): Handbook of Theoretical Computer Science. Volume A: Algorithms and Complexity, MIT Press, Cambrige, 1990. ˇ [8] Pavkovi´c, B., Daki´c, B.: Polinomi, Skolska knjiga, Zagreb, 1987. [9] Sedgewick, R.: Boston, 1998.
Algorithms in C++:
Parts 1-4, Addison-Wesley,
[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ˇs´cu traˇzio sam znanje. ˇ ˇ Zelio sam razumijeti srca ljudi. Zudio sam znati zaˇsto zvijezde sjaje. I pokuˇsao sam razumijeti pitagorejsku mo´c po kojoj brojevi imaju mo´c nad strujom (flux). Mali dio toga, ne mnogo, ja sam i ostvario. Bertrand Russell Postoji cijeli niz praktiˇcnih problema, koji se mogu jednostavnije rijeˇsiti upotrebom grafova. Grafovi ponekad prikazuju stvarne fiziˇcke mreˇze, kao ˇsto su ceste, plinovodi i sliˇcno, ali i apstraktne objekte kao ˇsto su baze podataka, tok raˇcunalnog programa, prikaz aktivnosti u projektu, itd. Grafovi se primijenjuju i u znanstvenim i struˇcnim disciplinama u kojima ih ne bi oˇcekivali. Spomenimo da se pomo´cu grafova prikazuju socijalni odnosi i hijerarhija u organizaciji, hranidbeni lanci u biologiji, karte u kartografiji, zaduˇzenja zaposlenika u poslovnoj organizaciji, ali i optimalna ˇsetnja preko rijeˇcnih mostova. Podugaˇcki popis primjena teorije grafova moˇze se na´ci u tablici [7], str. 527528. Medutim dvije glavne aplikativne domene teorije grafova su informatika u ˇsirem smislu i primijenjena matematika, posebno kombinatorna optimizacija. Pristup teoriji grafova u literaturi varira od egzaktnog, koji se temelji na zaokruˇzenoj matematiˇckoj Slika 5.1: Leonhard Euler strukturi, do intuitivnog koji se uop´ce ne bavi matematiˇckom pozadinom, ve´c samo primjenom na odredeni skup zanimljivih problema. Ovdje je izabran srednji put, koji ´ce poˇstivati matematiˇcku utemeljenost teorije, ali se 191
192
5.1. DEFINICIJA GRAFA I OSNOVNA SVOJSTVA
ne´ce uvijek drˇzati strogog matematiˇckog formalizma kako bi ostavio prostora za primjene grafova na probleme iz prakse.
5.1
Definicija grafa i osnovna svojstva
Veliki ˇsvicarski matematiˇcar Leonhard Euler (1707-1783) smatra se utemeljiteljem teorije grafova. On je rijeˇsio do tada nerijeˇsen problem K¨onigsberˇskih mostova. Evo prikaza tog problema. Problem 5.1 (K¨ onigsberˇ ski mostovi) K¨onigsberg je u 18. stolje´cu bio grad u istoˇcnoj Prusiji (danas je to grad Kalingrad u Rusiji) i kroz njega su prolazila dva rukavca rijeke Pregel (Slika 5.2), koja su okruˇzivala otoˇci´c Kneiphof. Na rijeci je bilo ukupno 7 mostova, koji su povezivali 4 dijela grada odvojena rijekom. Problem glasi da li je mogu´ce napraviti ˇsetnju gradom koja bi zapoˇcela na jednom dijelu grada, obuhvatila svih sedam mostova toˇcno jedanput i zavrˇsila u poˇcetnoj toˇcki?
Slika 5.2 Euler je taj problem rijeˇsio tako da je prvo naˇcinio 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ˇcevˇsi od bio kojeg vrha prode kroz sve bridove toˇcno jedanput i vrati na poˇcetak. Takvo se obilaˇzenje u teoriji grafova Euleru u ˇcast danas naziva Eulerova staza.
POGLAVLJE 5. TEORIJA GRAFOVA
193
2
1
3
4 Slika 5.3
U naˇsim razmatranjima graf ´cemo promatrati kao matematiˇcku strukturu. Teorija grafova je matematiˇcka disciplina koja prouˇcava zakonitosti na grafovima. Definirajmo prvo graf matematiˇckom definicijom. Kod definiranja novih pojmova u zagradama navest ´cemo engleske termine budu´ci da je velik dio literature iz teorije grafova na engleskom jeziku, a hrvatski prijevodi nisu standardizirani. Definicija 5.1 Neusmjereni graf (eng. undirected graph) G je par (V, E), pri ˇcemu je V skup vrhova (eng. vertices) grafa, a E ⊆ V × V skup neuredenih parova elemenata iz V , koji ˇcini skup bridova (eng. edges) grafa G. U ovoj ´cemo se knjizi baviti samo s konaˇcnim grafovima tj. grafovima kod kojih je skup vrhova V neprazan konaˇcan skup i skup bridova E konaˇcan 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 ´cemo ˇcesto jednostavno zvati grafom, a napomenut ´cemo posebno ako ´cemo 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ˇze prikazati na sljede´ci naˇcin. Sa slike je vidljivo da je mogu´ce i drugaˇcije oznaˇcavanje bridova i da vrijedi 12 = a, 13 = d, 23 = b, 34 = c.
194
5.1. DEFINICIJA GRAFA I OSNOVNA SVOJSTVA
2 b
a 1
d
3 c
4 Slika 5.4
Definicija 5.2 Za par vrhova u i v kaˇzemo da su susjedni (eng. adjacent) ako postoji brid e, koji ih povezuje. Pri tome kaˇzemo da je brid e incidentan (eng. incident) vrhovima u i v. Primjer 5.2 Za vrhove 1 i 3 kaˇzemo da su susjedni, jer su povezani bridom. Joˇs kaˇzemo i da su vrhovi 1 i 3 incidentni bridu d. Bridovi e i f su susjedni ako imaju zajedniˇcki barem jedan vrh. Definicija 5.3 Graf G je planaran (ravninski) graf ako se grafiˇcki moˇze predoˇciti tako da se bridovi sijeku samo u vrhovima. Brid koji je incidentan samo s jednim jedinim vrhom se zove petlja. Graf G je konaˇcan ako su oba skupa V i E konaˇcni. Graf je jednostavan ako nema petlje i ako ne postoje dva brida koji spajaju isti par vrhova. Ako drugaˇcije ne kaˇzemo, pod pojmom grafa podrazumijevat ´cemo jednostavni graf, a kad govorimo o grafu koji moˇze sadrˇzavati petlje, govorit ´cemo 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ˇcavamo s Kn .
POGLAVLJE 5. TEORIJA GRAFOVA
195
Slika 5.5
Primjer 5.4 Slijedi primjer potpunog grafa K4 .
1
4
2
3 Slika 5.6
196
5.1. DEFINICIJA GRAFA I OSNOVNA SVOJSTVA
Definicija 5.5 Bipartitni graf (eng. bipartite graph) je graf za ˇciji 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ˇcno 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 .
1 4 2 5 3 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 incidentnih sa v. Pri tome petlja u pseudografu doprinosi stupnju vrha kao dva brida, tj. ako graf ima jednu petlju njegov stupanj podiˇzemo za 2. Zadatak 5.2 Kolika je maksimalna valencija vrha mogu´ca 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 prebrojavanje bridova koji su incidentni svakom pojedinom vrhu. Pri tome svaki brid brojimo dva puta, jer on spaja dva razliˇcita 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ˇsimo 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 je paran
v∈V 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ˇze na´ci pod nazivom Handshaking lemma ili Lema o rukovanju. Razlog tom nazivu je to ˇsto se problem te tvrdnje moˇze svesti na rjeˇsenje sljede´ceg 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 ˇcetiri vrha i svi su vrhovi razliˇcitog stupnja.
5.2
Izomorfizam grafova
Definicija 5.7 Neka su G1 i G2 dva grafa i f funkcija ˇcija 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ˇzemo da je izomorfizam grafova G1 i G2 . Za grafove G1 i G2 kaˇzemo da su izomorfni. Dakle grafovi G1 i G2 su izomorfni ako postoji barem jedna bijekcija izmedu njihovih vrhova sa svojstvom da ”ˇcuva” susjednost vrhova. Takve grafove smatramo jednakima, jer se razlikuju samo u poloˇzaju vrhova. Zadatak 5.5 Nacrtajte sve razliˇcite grafove s ˇcetiri vrha. Koliko ih ima? Zadatak 5.6 Pokaˇzite da je izomorfizam grafova relacija ekvivalencije. Iz ˇcinjenice 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ˇzemo identificirati.Iako oni mogu reprezentirati razliˇcite objekte, sa apstraktnog stanoviˇsta smatramo ih jednakima. Dakle, izomorfni grafovi imaju jednake osnovne karakteristike, ˇsto kazuje sljede´ca 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 ˇcija je domena skup vrhova grafa G1 , a kodomena skup vrhova grafa G2 . Znamo da ukoliko postoji bijekcija izmedu dva skupa oni su jednakobrojni, pa vrijedi tvrdnja 1. Dokaˇzimo 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´ci da ona za dva grafa kaˇze kad oni nisu izomorfni. Ipak, valja paziti ˇsto tvrdi propozicija: ako su dva grafa izomorfna, tada oni imaju jednak broj vrhova, bridova, nizove stupnjeva, i joˇs neka svojstva, koja ´cemo u nastavku prouˇcavati. No, ne vrijedi obratno. Naime, ako dva grafa imaju jednak broj vrhova, bridova, nizove stupnjeva i broj komponenata povezanosti to ne znaˇci da su oni izomorfni. Medutim, obrat suprotne tvrdnje u propoziciji kaˇze da ako dva grafa imaju, na primjer, razliˇciti broj vrhova, onda oni nisu izomorfni, itd. Zadatak 5.7 Koji su od sljede´cih grafova izomorfni: K3,4 , K4,3 , K7 , K4 , K3,2 ?
POGLAVLJE 5. TEORIJA GRAFOVA
199
Zadatak 5.8 Dokaˇzite 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ˇcimo 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 ˇciji su svi vrhovi stupnja r kaˇzemo da je regularan reda r, r-regularan ili r-valentan. Primjer 5.6 Kolika je suma stupnjeva svih vrhova kod r-regularnog grafa? n X X Iz definicije regularnog grafa slijedi da je d(v) = r = nr. i=1
v∈V
Primjer 5.7 Koliko bridova ima r−regularan graf s n vrhova? Iz Teorema 5.1 slijedi da je suma stupnjeva svih vrhova jednaka dvostrukom 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ˇzite sljede´ce 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) . 3. Za potpuni graf Kn broj bridova je jednak
n(n−1) . 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ˇsite elemente relacije i prikaˇzite relaciju pomo´cu grafa. (b) Da li je taj graf regularan? Kako to ovisi o skupu na kojem je relacija | zadana?
ˇ 5.4. SETNJE I CIKLUSI U GRAFU
200
5.4
ˇ Setnje i ciklusi u grafu
Mnogi stvarni problemi koje rjeˇsavamo uvodenjem modela grafova svode se na nalaˇzenje putova unutar grafova (primjerice problem keningsberˇskih mostova ili problem kineskog poˇstara). Stoga je znaˇcajno istraˇziti teorijske preduvjete za postojanje takvih rjeˇsenja. ˇ u grafu G je netrivijalni konaˇcan niz, ˇciji su ˇclanovi Definicija 5.9 Setnja naizmjenice vrhovi i bridovi. Vrhovi su na poˇcetku i kraju ˇsetnje. Vrhovi, koji nisu na poˇcetku ili na kraju, zovu se unutarnji vrhovi. Duljina ˇsetnje k je broj bridova u ˇsetnji. Ako su svi vrhovi u ˇsetnji medusobno razliˇciti, ˇsetnju zovemo put. Primjer 5.8 U grafu na slici prikazana je ˇsetnja 3d1a2, gdje je 3 poˇcetak ˇsetnje i 2 kraj ˇsetnje. Duljina ˇsetnje je k=2. Istaknimo joˇs i ˇsetnju 3d1a2b3 koja sadrˇzi prethodnu ˇsetnju i koja nije put.
2 b
a 1
d
3 c
4 Slika 5.8 ˇ Definicija 5.10 Setnja je zatvorena ako joj se podudaraju poˇcetak i kraj. Definicija 5.11 Zatvorenu ˇsetnju kod koje su poˇcetak i unutraˇsnji vrhovi razliˇciti, zovemo ciklus. Ako ciklus ima r razliˇcitih bridova i r razliˇcitih vrhova, govorimo o ciklusu duljine r ili r−ciklusu. Navedimo sada jedan vaˇzan teorem, koji daje karakterizaciju bipartitnog grafa pomo´cu ciklusa. Teorem 5.2 Graf G je bipartitan ako i samo ako G ne sadrˇzi cikluse neparne duljine.
POGLAVLJE 5. TEORIJA GRAFOVA
201
Ovaj teorem ne´cemo dokazivati, a njegov se dokaz moˇze na´ci u [1], str. 190. Ve´c smo spopmenuli da je pseudograf graf koji moˇze sadrˇzavati petlje i viˇsestruke bridove. Definicija 5.12 Pseudograf je povezan ako i samo ako postoji ˇsetnja izmedu bilo koja dva njegova vrha. Piˇsemo v1 ∼ v2 ako postoji ˇsetnja u grafu koja povezuje vrhove v1 i v2 . Zadatak 5.11 Pokaˇzite da je ∼ relacija ekvivalencije na skupu V svih vrhova grafa G. Budu´ci 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ˇcno jednoj klasi. Svi vrhovi koji pripadaju jednoj klasi medusobno su povezani. Definicija 5.13 Neka je G (V, E) graf s pripadaju´com particijom s obzirom na relaciju ∼, danom s V = V1 ∪ V2 ∪ ... ∪ Vr . Oznaˇcimo s Ei (1 ≤ i ≤ r) podskup od E ˇciji 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ˇs 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 ´cemo dokazati metodom suprotnog. Uzmimo da graf G1 ima viˇse komponenata povezanosti od grafa G2 . To znaˇci 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 ´ce toˇcka produbiti i proˇsiriti problem keningsberˇskih mostova, iz kojeg je izrasla teorija grafova. Definicija 5.14 Staza je ˇsetnja u kojoj su svi bridovi razliˇciti. Eulerova staza (eng. Euler trail) je staza koja prolazi svakim bridom od G.
202
ˇ 5.4. SETNJE I CIKLUSI U GRAFU
Problem keningsberˇskih mostova svodi se na pitanje postoji li Eulerova staza na grafu? Budu´ci da je Euler prvi prouˇcavao taj problem, njemu u ˇcast, te su posebne staze dobile ime. On je uvidio da ako su a i b dva razliˇcita vrha, tada je nuˇzan uvjet za postojanje Eulerove staze, koja poˇcinje u a i zavrˇsava 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ˇzan uvjet za postojanje Eulerove staze u grafu je da graf ima najviˇse dva vrha neparnog stupnja. Pokazuje se da je to ujedno i dovoljan uvjet. Euler je 1736. godine utvrdio da graf keningsberˇskih mostova nema Eulerove staze. Teorem 5.3 Povezani pseudograf ima Eulerovu stazu ako i samo ako ima najviˇse dva vrha neparnog stupnja. Dokaz teorema daje ujedno i algoritam za nalaˇzenje 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ˇzi svaki brid i svaki vrh grafa. Graf je Eulerov ako dopuˇsta Eulerovu turu. Teorem 5.4 (Eulerov teorem) Neprazni povezani graf je Eulerov ako i samo ako su mu svi vrhovi parnog stupnja. Dokaz. Ve´c je Euler dokazao da ako Eulerova tura postoji, onda u svaki vrh u koji se ude mora biti mogu´ce i iza´ci ˇsto znaˇci da su stupnjevi bridova parni brojevi. Pretpostavimo sada da je pseudograf povezan i svi su vrhovi parnog stupnja i pokaˇzimo da je graf Eulerov. Neka je v vrh u grafu. Ako vrh ima petlji, treba slijediti svaku petlju bez ponavljanja. Budu´ci da je broj vrhova u grafu barem 2, postoji barem joˇs jedan vrh v1 , pa poveˇzemo v i v1 . U v1 prvo obidemo sve petlje, a onda se pomaknemo u sljede´ci vrh v2 (ako postoji). Kad god dodemo u novi vrh, prvo obidemo sve petlje, a onda izademo iz vrha. Uvijek je mogu´ce iza´ci iz vrha u koji smo uˇsli, jer je stupanj svakog vrha paran broj. Joˇs se moramo uvjeriti da se moˇzemo vratiti u vrh v. Uzmimo da smo zaokruˇzili turu C1 , tj. vratili smo se prvi puta u v. Ako smo pri tome obiˇsli sve bridove, posao je zavrˇsen. Ako to nije sluˇcaj, 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´ci da je G povezan onda G1 i C1 imaju barem jedan zajedniˇcki vrh u. Krenuvˇsi 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ˇse ukljuˇcenih bridova od C1 . Postupak nastavljamo dok ne iscrpimo sve vrhove i bridove iz konaˇcnog 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ˇse dva vrha neparnog stupnja. Ako ima toˇcno dva vrha neparnog stupnja, onda Eulerova staza mora poˇceti i zavrˇsiti u tim vrhovima. Dokaz. Prema Eulerovom teoremu graf nema vrhova neparnog stupnja ako i samo ako dopuˇsta Eulerovu turu. Dakle, pretpostavimo da graf G ima vrhove neparnog stupnja. Pretpostavimo da graf G = (V, E) ima Eulerovu stazu koja nije zatvorena. Unutraˇsnji vrhovi staze su uvijek incidentni s dva brida, pa krajnji vrhovi staze imaju neparne stupnjeve, a svi ostali vrhovi imaju parne stupnjeve. S druge strane, znamo da je broj vrhova neparnog stupnja paran broj. Dakle,u grafu ne moˇze biti samo jedan vrh neparnog stupnja koji ima Eulerovu stazu. Neka su sada vi i vj jedina dva vrha u G koji imaju neparan stupanj. Promotrimo dva sluˇcaja. Prvi sluˇcaj: vrhovi vi i vj nisu susjedni. Dodamo li njihovu spojnicu, brid eij , u skup svih bridova u grafu G, tada ´ce tako uve´cani graf imati sve vrhove parnog stupnja i dopuˇstat ´ce Eulerovu turu. Brisanjem brida eij iz Eulerove ture dobit ´cemo Eulerovu stazu koja poˇcinje u vi i zavrˇsava u vj ili obrnuto. Drugi sluˇcaj: vrhovi vi i vj jesu susjedni. Sada skupu vrhova od G dodamo novi vrh vn , za koji vrijedi da ga brid eni veˇze s vrhom vi , a brid enj s vj . Pri tome smo skup bridova E od G uve´cali za dva brida eni i enj . Sada su u uve´canom grafu svi vrhovi parnog stupnja, pa graf dopuˇsta 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ˇcke. Naglasimo da Eulerov teorem i gornji korolar vrijede i u grafu koji sadrˇzi viˇsestruke bridove, tzv. pseudografu. Postoji algoritam za traˇzenje Eulerove staze u grafu. Algoritam je pronaˇsao 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ˇcu na povezanost grafa (do kada je to mogu´ce). Brid eij je most (engl. bridge) u G ako njegovo brisanje daje podgraf od G s viˇse komponenti povezanosti. Algoritam 5.1 (Fleuryjev algoritam) ULAZ: Povezani graf G = (V, E) ˇciji 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ˇcimo 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 ˇcemu 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ˇzite da je Fleuryjev algoritam korektan i pronadite mu sloˇzenost. Zadatak 5.13 Nadite uvjete pod kojima su potpuni grafovi i potpuni bipartitni grafovi Eulerovi.
5.5
Matrica incidencije i matrica susjedstva
Ovdje ´cemo pokazati kako se graf moˇze zapisati pomo´cu matrica. To je mogu´ce uˇciniti na najmanje dva naˇcina: u prvom sluˇcaju opisujemo u matrici 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ˇsestrukih 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 ½ bij =
1 ako je vi incidentan s ej 0 inaˇce
Matricu B = [bij ] zovemo matricom incidencije i ona jew tipa (n, m). Primjer 5.9 Napiˇsimo matricu susjedstva za graf na slici.
POGLAVLJE 5. TEORIJA GRAFOVA
205
2 b
a d
1
3 c
4 Slika 5.9 Matricu susjedstva formiramo na sljede´ci naˇcin: 1 2 3 4
1 0 0 1 1
0 0 Matrica susjedstva: A = 1 1 Matrica incidencije M: 1 2 3 4
2 0 0 0 0 0 0 0 0
a 0 1 1 0
3 1 1 0 1
1 0 1 0
1 1 0 1 b 0 0 1 1
4 1 0 1 0
c 1 0 0 1
d 1 0 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ˇcna matrica. 3. Oznaˇcimo 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 ˇsetnji od i do j duljine 2.
206
5.5. MATRICA INCIDENCIJE I MATRICA SUSJEDSTVA
5. (i, j) mjesto u An predstavlja broj ˇsetnji od i do j koje ukljuˇcuju n bridova. Dokaz. Neka je A = [aij ] matrica susjedstva grafa G koji ima n vrhova. 1. Budu´ci da je G jednostavan graf pa ne sadrˇzi 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ˇcna. Vrijedi i obrat. Dakle, simetriˇcne matrice, ˇciji su elementi nule i jedinice, i imaju nule na glavnoj dijagonali, mogu se smatrati matricama incidencije nekog jednostavnog grafa. 3. Svojstvo je posljedica ˇcinjenice da je matrica A simetriˇcna. 4. Svojstvo je posljedica definicije mnoˇzenja matrica. Naime, mjesto bij u matrici A2 = [bij ] dobijemo kao bij =
n X
aik akj .
k=1
U sumi su samo oni produkti razliˇciti od nule kod kojih je aik = 1 i akj = 1, tj. samo oni kod kojih postoji ˇsetnja izmedu ta dva vrha preko vrha vk . To su, dakle, ˇsetnje koje ukljuˇcuju vrhove vi , vk , vj , pa su duljine 2. 5. Dokaz se provodi matematiˇckom indukcijom. Baza indukcije dokazana je u prethodnoj toˇcki dokaza. Da bi proveli korak indukcije pretpostavimo da (i, j) mjesto u An−1 predstavlja broj ˇsetnji od i do j duljine n − 1. Trebamo pokazati da (i, j) mjesto u An predstavlja broj ˇsetnji od i do j, koje ukljuˇcuju n bridova. Taj postupak je jednak onome iz prethodne toˇcke dokaza.
Korolar 5.3 Postoji bijekcija izmedu skupa svih jednostavnih grafova i simetriˇcnih matrica, ˇciji su elementi nule i jedinice i koje imaju nule na glavnoj dijagonali. Zadatak 5.14 Zadana je matrica 0 1 A= 1 1
1 0 1 0
1 1 1 0
1 0 . 0 0
POGLAVLJE 5. TEORIJA GRAFOVA
207
1. Moˇze li matrica A biti matrica susjedstva nekog jednostavnog grafa ili pseudografa? 2. Nacrtajte jedan takav graf, odnosno pseudograf. 3. Koliko ima ˇsetnji duljine 2 izmedu vrhova v1 i v2 ? 4. Koliko ima ˇsetnji 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ˇciti tako da su im jednake matrice susjedstva. Definicija 5.17 Matrica permutacija P je matrica ˇciji su redovi permutirani redovi jediniˇcne matrice. Teorem 5.6 Dva su grafa s pripadnim matricama susjedstva A i B izomorfna ako i samo ako je B = P AP T za neku matricu permutacija P . Zadatak 5.15 Zadana je matrica susjedstva
1 2 A= 1 0
2 0 1 0
1 1 0 0
0 0 0 0
na grafu ˇciji 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ˇcunajte stupnjeve svih vrhova. 4. Skicirajte graf. 5. Izraˇcunajte A2 , te odredite broj bridova duljine 2 koji spajaju vrhove vi i vj . 6. Izraˇcunajte 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 A= 1 1
2 0 1 1
1 1 0 3
1 3 1 3 0 1 ,B = 1 1 3 1 1 1
1 1 1 2
1 1 . 2 0
208
5.6. HAMILTONOVI CIKLUSI
1. Nacrtajte grafove G i H. ˇ primje´cujete? 2. Sto 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 ´cemo prikazati komplementarni problem tako da traˇzimo ciklus u grafu koji prolazi svim vrhovima samo jedanput. Taj je problem 1956. godine posebno razmatrao poznati irski matematiˇcar William R. Hamilton (1805-1865). Definicija 5.18 Hamiltonov put na G je put koji sadrˇzi sve vrhove od G. Hamiltonov ciklus (eng. Hamilton circuit, cycles) na G je ciklus koji sadrˇzi sve vrhove od G. Graf G je Hamiltonov ako sadrˇzi Hamiltonov ciklus. Za razliku od Eulerovog grafa, joˇs je uvijek otvoreni problem karakterizacije Hamiltonovog grafa, tj. nalaˇzenja nuˇznog i dovoljnog uvjeta da (netrivijalni) graf bude Hamiltonov. Oˇcito je da je jedan od nuˇznih uvjeta da bi graf bio Hamiltonov, da je povezan. Postoji dosta parcijalnih razultata koji doprinose mogu´cem rjeˇsenju najpoznatijeg problema iz teorije grafova. Evo jednog od tih rezultata. Propozicija 5.4 (Dirac, 1952) Ako je G povezan (jednostavni) graf u kojem je broj vrhova n ve´ci 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´cim brojem vrhova grafa. Svaka ˇsetnja 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 ˇsetnja uv1 v2 ...vr ne prolazi nekim vrhom iz P dva puta i dulja je od puta P , ˇsto je u kontradikciji s pretpostavkom, pa je svaki vrh koji je povezan sa v1 u P. Sliˇcnim naˇcinom pokazujemo da su svi vrhovi susjedni vrhu vr takoder u P. Budu´ci 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ˇciti, 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ˇse od n vrhova, ˇsto je kontradikcija. Sada zakljuˇcujemo da put P sadrˇzi ciklus C : v1 vk+1 vk+2 ...vr vk vk+1 ...v1 . Preostaje nam dokazati da C sadrˇzi 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ˇzi od puta P, ˇsto dovodi do kontradikcije. Uoˇcite da u prethodnoj propoziciji vrijedi samo jedan smjer. Znaˇci, postoje Hamiltonovi grafovi za koje ne vrijedi da je d (v) ≥ n2 . Zadatak 5.17 Nadite primjer grafa za koji je d (v) ≥ miltonov, tj. da ne vrijedi Diracov teorem.
n−1 2 ,
a da nije Ha-
Zadatak 5.18 Pokaˇzite da su pojmovi Eulerov grafi Hamiltonov graf nezavisni, tj. ako je graf Eulerov moˇze i ne mora biti Hamiltonov i obrnuto.
5.7
Teˇ zinski grafovi. Algoritmi najkra´ ceg puta
Cilj ove toˇcke je definirati i teorijski istraˇziti teˇzinske grafove, ali i povezati dobivene rezultate s praktiˇcnim problemima i naznaˇciti njihove primjene. Istaknimo na poˇcetku da je glavna domena primjene teˇzinskih grafova na probleme optimizacije. U tu svrhu poˇcinjemo motiviraju´cim problemom trgovaˇckog putnika. Problem 5.2 (Problem trgovaˇ ckog putnika) Trgovaˇcki putnik treba obi´ci odredene gradove i vratiti se na polaziˇste. Ako je dano vrijeme putovanja izmedu gradova, kako treba putovati tako da se svaki grad obide samo jedanput i da na putu provede ˇsto kra´ce vrijeme? Da bismo rijeˇsili probleme sliˇcne problemu trgovaˇckog putnika, promatramo grafove ˇciji su bridovi ”oteˇzani”, tj. bridovima su pridruˇzene teˇzine koje mogu oznaˇcavati udaljenost u kilometrima, vrijeme provedeno na putu u satima, cijenu goriva u kunama. itd. Zadatak je u takvim primjerima prona´ci u potpunom teˇzinskom grafu, Hamiltonov ciklus najmanje teˇzine, tzv. optimalni ciklus. Nije poznat efikasni algoritam (koji se izvrˇsava u polinomnom vremenu) za rjeˇsavanje tog problema, tzv. NP-potpuni problem. Medutim, neki drugi problemi, sliˇcni problemu trgovaˇckog putnika, ipak se daju rijeˇsiti u polinomnom vremenu. Takav je i sljede´ci problem najkra´ceg puta u ˇzeljezniˇckoj mreˇzi.
210
ˇ ´ 5.7. TEZINSKI GRAFOVI. ALGORITMI NAJKRACEG PUTA
Problem 5.3 U danoj ˇzeljezniˇckoj mreˇzi kojom su povezani neki gradovi, treba odrediti najkra´cu rutu izmedu dva zadana grada iz te mreˇze. Definicija 5.19 Teˇzinski (weighted) graf je graf G ˇcijem je svakom bridu e pridruˇzen nenegativni broj w (e), kojeg zovemo teˇzinom brida e. Teˇzine bridova u problemu 5.3 predstavljaju duljine pruge izmedu dva grada. Teˇzina podgrafa grafa G je suma teˇzina svih bridova u grafu. Najkra´cim putem izmedu dva vrha u teˇzinskom grafu smatramo put najmanje teˇzine.
5.7.1
Dijkstrin algoritam
Postoji dosta algoritama koji sluˇze za pronalaˇzenje najkra´ceg puta u teˇzinskom grafu, a najpoznatiji medu njima je Dijkstrin algoritam otkriven 1959. Otkrio ga je nizozemac Edsger Dijkstra (1930 - 2002.), vode´ci informatiˇcar danaˇsnjice, koji je izmislio veliki broj algoritama na grafovima. Dijkstrin algoritam pronalazi najkra´ci put ili signalizira da on ne postoji. On otkriva najkra´ci put iz odredenog vrha (koji je izabran da bude poˇcetni vrh) do krajnjeg vrha, koji je cilj. Uz ”osnovni” Dijkstrin algoritam postoji joˇs i takozvani poboljˇsani Dijkstrin algoritam (engl. improved), koji takoder rjeˇsava problem najkra´ceg puta u teˇzinskom grafu (vrhovi imaju znak beskonaˇcno (∞) kao trenutnu oznaku u tijeku raˇcunanja). Ideja algoritma je sljede´ca: oznaˇcavamo svaki vrh oznakom (label) najkra´ceg puta od poˇcetne toˇcke (izvora) do tog vrha. Privremena oznaka se mijenja kad god je naden kra´ci put od izvora do tog vrha. Kad smo sigurni da nema kra´ceg puta, vrhu pridruˇzujemo trajnu oznaku. Evo procedure algoritma: Algoritam 5.2 (poboljˇsani Dijkstrin algoritam) ULAZ: Graf G = (V, E) i dva vrha u, v ∈ V . IZLAZ: Najkra´ci put od vrha u do vrha v 1. Oznaˇcite poˇcetni 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ˇs nije pridruˇzena trajna oznaka. Za takav vrh Y, privremena vrijednost (oznaka) bit ´ce manja od dviju vrijednosti: D+(teˇzina luka XY) i postoje´ce privremene oznake (ukoliko postoji). 3. Uoˇcite najmanju privremenu oznaku na grafu i uˇcini je trajnom (uokvirite je).
POGLAVLJE 5. TEORIJA GRAFOVA
211
4. Ponavljajte korake 2 i 3 dok krajnja toˇcka (cilj) ne dobije trajnu oznaku. 5. Krenite unatrag po grafu i oznaˇcite put minimalne teˇzine, od cilja (ponora) prema poˇcetku. Zadatak 5.19 Broje´ci osnove operacije zbrajanja i usporedivanja u Dijkstrinom algoritmu pokaˇzite da je sloˇzenost Dijkstrinog algoritma jednaka 2 5 f (n) = n2 − n + 1. 3 2 Dakle, O(n2 ) je gornja meda. Uz Dijkstrin algoritam, za traˇzenje najkra´ceg puta priliˇcno je popularan i Floyd-Warshallov algoritam. U ve´cini odredenih aplikacija, ovaj je algoritam brˇzi od Dijkstrinog algoritma. Jedna od prednosti ovog algoritma je njegova sposobnost lakog prilagodavanja, ukoliko dode do promjene vrijednosti teˇzina bridova. Naime, tada je dovoljno promijeniti parametre u matrici, koja sadrˇzi teˇzine bridova, a daljnji postupak ostaje isti. Sloˇzenost Floyd-Warshallovog algoritama je O(n3 ), kao i sloˇzenost osnovne verzije Dijkstrinog algoritma. Zadatak 5.20 Upotrebom Dijkstrinog algoritma nadite najkra´ci put od A do K na grafu na sljede´coj slici:
(P,2) 6
C 2
(P,8) D 3
5 (P,3)
(-,0)
P
3 4
B
5
3
3
A
9
E
(B,8) (A,7)
K
(A,13) (E,12)
5
(P,4) Slika 5.10 Vidimo da je najkra´ci put od P do K, put P AEK duljine 12.
212
ˇ ´ 5.7. TEZINSKI GRAFOVI. ALGORITMI NAJKRACEG PUTA
5.7.2
Problem kineskog poˇ stara
U ovoj toˇcki razmotrit ´cemo primjene traˇzenja Eulerove staze i ture u grafu na rjeˇsavanje problema kineskog poˇstara. Problem 5.4 (Problem kineskog poˇ stara) Poˇstar uzima poˇstu u poˇstanskom uredu, dijeli je i vra´ca se u ured. Kod dijeljenja poˇste svakom ulicom treba pro´ci barem jednom. Naravno da pri tome ˇzeli prije´ci ˇsto manju udaljenost. Problem je dobio ime po tome ˇsto ga je 1962. godine op´cenito obradio i prouˇcio kineski matematiˇcar Mei-ko Kwan. Prvo rjeˇsenje specijalnog sluˇcaja tog problema dao je H. E. Dudeney 1917. godine. U ovom problemu ulice predstavljaju bridove, a raskrˇs´ca vrhove grafa. Dakle, dan je teˇzinski povezani graf i traˇzi se najkra´ca zatvorena ˇsetnja, 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ˇzinskom je grafu teˇzina ture suma teˇzina svih bridova u turi. Problem kineskog poˇstara sastoji se u pronalaˇzenju ture najmanje teˇzine u povezanom teˇzinskom grafu s pozitivnim teˇzinama. Takvu turu zovemo optimalna tura. Problem je teˇzi ako graf nije Eulerov, tj. ako postoje vrhovi neparnog stupnja. Kwan je predloˇzio da se rjeˇsenje dobije tako da se od originalnog grafa prijede na pseudograf na kojem je Eulerova tura mogu´ca, udvostruˇcavanjem odredenih bridova originalnog grafa. Cilj je na´ci bridove koje treba udvostruˇciti, ali tako da se dobije optimalna tura. Udvostruˇcene bridove zapravo treba pro´ci dva puta u traˇzenoj Eulerovoj turi. Spomenimo da postoji algoritam koji traˇzi optimalnu turu i koji se izvodi u polinomnom vremenu. Upotrijebimo Fleuryjev algoritam za pronalaˇzenje Eulerove ture u neusmjerenom 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ˇzine, koji ih povezuje. 3. Uparimo sve takve parove na naˇcin da suma teˇzina puteva iz koraka 2 bude minimalna.
POGLAVLJE 5. TEORIJA GRAFOVA
213
4. U originalnom grafu, udvostruˇcimo puteve minimalne teˇzine 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 neparnog reda. To je istina za svaki graf ( v∈V d(v) = 2²). Ukoliko se radi o grafu s velikim brojem vrhova (primjer londonske podzemne ˇzeljeznice), ovaj algoritam zahtjeva mnogo vremena. Primjer 5.10 Nadite zatvorenu minimalnu turu koja sadrˇzi sve bridove danog grafa.
6
D 2
C 3
E
7 4
9 5
8
A
B
Slika 5.11
1. Neparni vrhovi: A, B, C i D 2. Minimalne teˇzine 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 ´ce optimalna Eulerova tura prelaziti dva puta. 5. Eulerova tura minimalne teˇzine je na primjer ABAEBCECDEDA. Teˇzina 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ˇse od dva puta (algoritam najviˇse udvostruˇcuje brid). Nekoliko godina nakon Kwanovog problema kineskog poˇstara u literaturi se pojavio sliˇcan problem koji se tumaˇci na usmjernom grafu (bridovi imaju naznaˇcene smjerove). Problem je nazvan problemom ˇcistaˇca ulica u New Yorku, jer je opisivao situaciju s kojom se suoˇcavaju ˇcistaˇci 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ˇzi Eulerovu stazu ako i samo ako je povezan i ako su svi, osim dva vrha, parnog stupnja. Ta dva vrha su poˇcetak i kraj puta. Usmjereni graf sadrˇzi Eulerovu turu ako i samo ako je povezan i svaki vrh ima jednak broj ulaznih i izlaznih lukova. Usmjereni graf sadrˇzi 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ˇzenje Eulerove ture upotrebljava Edmonds-Johnsonov algoritam (1973) (vidi [9]). Sluˇcaj usmjerenog grafa, primjene, kao i pseudokod algoritma moˇzete na´ci u [9].
5.8
Stabla
Pojam stabla u 19 st. uveo je Arthur Cayley prouˇcavaju´ci posebne klase grafova, koji prikazuju odredene kemijske spojeve (hidrokarbonate). Ti su grafovi imali jedno vaˇzno svojstvo: nisu sadrˇzavali cikluse. Stabla imaju primjenu u rjeˇsavanju problema kao ˇsto je povezivanje udaljenih lokacija mreˇzom. Treba, npr. povezati lokacije u razliˇcitim gradovima, a koncesionar mreˇze (bilo da je rijeˇc telefonskim linijama, ili o raˇcunalnoj mreˇzi) razliˇcito napla´cuje veze izmedu pojedinih gradova. Takoder, stabla se mogu primjeniti na problem kada je potrebno neko podruˇcje pokriti telefonskom, elektriˇcnom ili vodovodnom mreˇzom. Joˇs jedna mogu´ca primjena je u izraˇcunavanju optimalnih ruta za povezivanje gradova avionskim linijama. Neekonomiˇcno je da svaki grad, koji ima aerodrom, bude povezan sa svakim drugim takvim Slika 5.12: Arthur Cayley gradom, a opet se ˇzeli da se avionskom vezom moˇze do´ci do svakog grada
POGLAVLJE 5. TEORIJA GRAFOVA
215
uz minimalni troˇsak. Nadalje, stabla se primijenjuju i u fizikalnoj kemiji. Osim toga, mnoge informacijske strukture u raˇcunarstvu se temelje na stablima. Direktoriji i poddirektoriji koji sadrˇze podatke predstavljaju vrhove u stablu. Binarna stabla omogu´cuju efikasno spremanje uredenih podatka i tako dopuˇstaju brzo pretraˇzivanje. Viˇse o primjenama stabala moˇzete prona´ci u [5].
5.8.1
Osnovno o stablima
Definicija 5.20 Stablo (eng. tree) je povezani graf T koji ne sadrˇzi niti jedan ciklus. Vrh se naziva listom (eng. leaf) stabla T = (V, E) ako ima samo jednog susjeda. ˇ Suma (eng. forest) je graf (ne nuˇzno povezani) koji ne sadrˇzi 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ˇsko prona´ci sva mogu´ca stabla za male brojeve n. Pokuˇsajte! Moˇze se re´ci da je ˇsuma disjunktna unija stabala, odnosno da su komponente povezanosti ˇsume 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 vrijedi: 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´ca tvrdnja posljedica prve dvije. Nadalje, prva se tvrdnja moˇze smatrati alternativnom definicijom stabla. Vrijedi sljede´ci teorem. Teorem 5.7 Za graf G, sljede´ce 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ˇcno 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ˇcno jedan put. Pretpostavimo suprotno, tj. da izmedu vrhova u i v postoje dva razliˇcita 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ˇsetak (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ˇcinje u uj−1 , nastavlja se po u-putu do uk = vl i vra´ca se po v-putu u vj−1 , a to je kontradikcija s pretpostavkom, pa zakljuˇcujemo da izmedu svaka dva vrha u stablu postoji jedinstveni put. Ostale dijelove dokaza napravite sami. Posluˇzite se referencom [2]. Put duljine n − 1 najjednostavnije je stablo s n vrhova. Svaki put, osim trivijalnog kad je n = 1, ima toˇcno dva vrha stupnja 1. U nekim problemima postoji vrh v ∗ u stablu kojeg ˇzelimo posebno istaknuti. Taj vrh zovemo korijenom (eng. root), a takvo stablo zovemo stablo s korijenom ili korijensko stablo (eng. rooted tree) i oznaˇcavamo ga s (T, v ∗ ). U stablu s korijenom, vrhovi se mogu smjestiti u nivoe (eng. level). Op´cenito, 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ˇzi 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ˇzemo da je njegov roditelj ili prethodnik (eng. parent), a za vrh u kaˇzemo da je dijete ili sljedbenik (eng. child) vrha v. Zadatak 5.21 U stablu s korijenom (T, v ∗ ) definiramo sljede´ce 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ˇzite da je R relacija ekvivalencije, a P relacija parcijalnog uredaja. 2. Opiˇsite klase ekvivalencije od R na V.
5.8.2
Binarno stablo
Ako je m = 2 za stablo kaˇzemo da je binarno stablo. Ako imamo dodatni uvjet da razlikujemo desno od lijevog podstabla, kao ˇsto je to iskazano u definiciji 5.21, onda govorimo o uredenom binarnom stablu. Ovdje ´cemo pod nazivom ”binarno stablo” podrazumijevati uredeno binarno stablo. Ako svaki vrh roditelj u m− arnom stablu ima toˇcno m djece, tada kaˇzemo da je stablo puno (eng. full). Neka je T puno binarno stablo, visine ve´ce od 0, a v ∗ je korijen tog stabla. Brisanjem korijena dobivamo dva disjunktna binarna stabla, ˇciji 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ˇclani 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ˇcivanja gdje se stabla upotrebljavaju kao model za proces odluˇcivanja, koji se provodi na viˇse nivoa, a odluka donesena na jednom nivou utjeˇce na mogu´cu odluku na nekom drugom nivou (mjestu). U tom se kontekstu stablo zove stablo odluˇcivanja (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 podataka vaˇzna su binarna stabla. Obiˇcno se sortiranje podataka radi na osnovi abecednog ili numeriˇckog kriterija. Pri tome je relacija, koja odreduje uredaj, relacija potpunog (totalnog) uredaja, tj. svaki par elemenata iz skupa je usporediv. Sortiranje je mogu´ce napraviti razliˇcitim tehnikama opisanima u poglavlju o algoritmima. Posebna tehnika je i sortiranje pomo´cu stabla sortiranja (eng. tree sort). Stablo sortiranja posebna je vrsta binarnog stabla kod kojeg je skup svih vrhova totalno uredeni skup. Definicija 5.22 Stablo sortiranja (engl. sort tree) ili binarno stablo pretraˇzivanja (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ˇzemo 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´cu 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ˇsta 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´camo k na k + 1. 2. Ako je k > n zavrˇsavamo postupak. U suprotnom usporedujemo ak s korijenom. (a) Ako je ak ¹ korijena, tada se postupak prebacuje na lijevo podstablo. Ako je lijevo podstablo prazno, smjeˇstamo ak lijevo od korijena i dobivamo sljede´ce stablo sortiranja Tk i pove´cavamo 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ˇstamo ak desno od korijena i dobivamo sljede´ce stablo sortiranja Tk i pove´cavamo 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´ci ili jednak korijenu. Dakle, svi se elementi iz lijevog stabla trebaju ispisati prije korijena, a svi elementi desnog stabla poslije korijena. Uoˇcimo da su i lijevo i desno podstablo stabla sortiranja, pa se prvi element podstabla moˇze promatrati kao korijen. Opiˇsimo 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ˇcini. Uzimamo broj 3 za korijen stabla. Broj 4 je ve´ci 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
3
1
4
2
6
5 Slika 5.16 Sada prelazimo na drugu fazu sortiranja. Poˇcinjemo s lijevim podstablom i zapisujemo prvi korijen u lijevom podstablu, a to je 1. Poslije njega ispisujemo 2, pa 3, ˇcime 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 ˇsto su (a × b) ∗ c i (a ∗ c) × (b ∗ c), mogu se prikazati pomo´cu binarnih stabala. Na sljede´coj slici dan je prikaz prvog izraza pomo´cu binarnog stabla.
*
c
×
a
b Slika 5.17
POGLAVLJE 5. TEORIJA GRAFOVA
221
Drugi algebarski izraz prikaˇzite pomo´cu binarnog stabla za vjeˇzbu. Binarna stabla u kojima se pohranjuju (zapisuju) algebarski izrazi sastoje se od jednog vrha koji je identifikator ili su opisana sljede´cim rekurzivnim pravilima: 1. Operator koji se izraˇcunava pri raˇcunu 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ˇcunalo pomo´cu nizova nula i jedinica. Svakom slovu, brojki i znaku pridruˇzen je drugaˇciji niz bitova. Najpoznatije takvo kodiranje je poznato pod imenom ASCII kod. Binarni kod pridruˇzuje simbolima njihove nizove bitova. Svaki niz bitova je kodna rijeˇc. U nekim sluˇcajevima kodne rijeˇci mogu biti razliˇcite duljine. Pri tome se kˆod ˇcitanja moˇze javiti ako je jedna rijeˇc dio neke druge rijeˇci. Da bi se to izbjeglo, uvodi se tzv. prefiks kˆod. Prefiks kˆod je binarni kod sa svojstvom da nijedna kodna rijeˇc nije poˇcetni dio neke druge rijeˇci. Binarno se stablo moˇze upotrijebiti za konstrukciju prefiks kˆoda za dani skup simbola. Pri tome se prvo nacrta proizvoljno binarno stablo ˇciji se listovi mogu bijektivno preslikati na skup simbola, tj. listovi su oznaˇceni simbolima. Nadalje, oznaˇcimo svaki brid koji ide prema lijevom djetetu s 0, a onaj koji ide prema desnom djetetu s 1. Sada se svakom simbolu moˇze pridruˇziti kodna rijeˇc, koja je jednaka nizu oznaka bridova na jedinstvenom putu (svojstvo stabla), koji povezuje korijen s listom oznaˇcenim promatranim simbolom. Pokazuje se da dobivene kodne rijeˇci predstavljaju prefiks kˆod. Primjer 5.15 Evo prefiks koda ˇcijih 9 kodnih rijeˇci korespondira danom binarnom stablu. slovo a b c d e f g h i kodna rijeˇc 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 ˇceˇs´ce upotrebljavaju, mogu imati pridruˇzene kra´ce kodne rijeˇci, tj. ˇceˇs´ce upotrebljavani simboli trebaju biti smjeˇsteni u listove niˇzih nivoa. David Huffman konstruirao je prefiks kˆod koji vodi brigu o efikasnosti kodiranja na gore opisani naˇcin. Viˇse o Huffmanovom prefiks kˆodu moˇzete nauˇciti izradite li projekt 4. Obrazloˇzite zaˇsto su stabla bipartitni grafovi?
222
5.8. STABLA
0
0
1
1
0
1
g 0
1
0 c
0 a
1
d
e
1
0 b
0
1 f
1
e
f
Slika 5.18
5.8.3
Minimalno razapinju´ ce stablo
Promotrimo problem povezivanja gradova plinovodom, ako je za tu mreˇzu dozvoljeno viˇse ruta. Ako je potrebno povezati viˇse gradova plinovodom, to se povezivanje moˇze napraviti na viˇse razliˇcitih naˇcina koriste´ci samo dozvoljene rute. Ovdje gradove moˇzemo 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ˇzinski graf. Ovdje bi nam cilj bio prona´ci takvo stablo u grafu, koje bi povezivalo sve gradove, ali da pri tome mreˇza ima najmanju cijenu. Stablo koje bi imalo nabrojena svojstva zvali bismo minimalnim razapinju´cim stablom. Prije nego matematiˇcki definiramo razapinju´ce 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ˇzemo da je G nadgraf od H. Za podgraf H od G, za koji je V (H) = V (G), kaˇzemo da je razapinju´ci podgraf od G. Svaki povezani graf sadrˇzi barem jedan podgraf, koji je stablo, i povezuje sve vrhove u grafu. Takvo se stablo zove razapinju´ce stablo. Graf moˇze imati viˇse razapinjaju´cih stabala. Npr., potpuni graf s ˇcetiri vrha ima ˇsesnaest razapinju´cih stabala. Pokuˇsajte ih prona´ci!
POGLAVLJE 5. TEORIJA GRAFOVA
223
Posljedica ˇcinjenice da je povezani graf G sa n vrhova stablo ako i samo ako G ima n−1 brid, je da razapinju´ce stablo za graf od n vrhova ima uvijek n − 1 brid. U problemu povezivanja gradova plinovodom vaˇzna je duljina tih cijevi, pa svakom bridu pridruˇzujemo teˇzinsku funkciju w : E → N. Teˇzinska funkcija moˇze predstavljati i cijenu izgradnje pojedinih plinovoda, koji povezuju dane gradove. Teˇzina stabla T = (V, E) je tada suma teˇzina njegovih bridova, tj. X w (T ) = w (e) . e∈T
Postavlja se problem nalaˇzenja razapinju´ceg stabla minimalne teˇzine. Takav problem zovemo problem nalaˇzenja minimalnog razapinju´ceg stabla (eng. minimum spanning tree problem, MST problem). Za danu funkciju w uvijek postoji rjeˇsenje MST problema, budu´ci da za dani graf uvijek postoji konaˇcno mnogo razapinju´cih stabala. Naravno, moˇze postojati viˇse razapinju´cih stabala koja su minimalna. Jednostavan, ali i ˇcesto neefikasan naˇcin nalaˇzenja minimalnog razapinju´ceg stabla je ispisivanje svih stabala za dani graf i pronalaˇzenje minimalnog. Za kompliciranije grafove ovo bi bilo vrlo neefikasno, a i trebao bi postojati naˇcin da pronademo sva stabla. Bolji naˇcin je da pronademo neko bitno svojstvo minimalnog razapinju´ceg stabla s kojim moˇzemo odrediti pripada li pojedini brid u njega i zatim izgraditi stablo brid po brid. Neki od uspjeˇsnih algoritama za rjeˇsavanje MST problema temelje se na pohlepnom algoritmu. Tri poznata algoritma za rjeˇsavanje problema minimalnog razapinju´ceg stabla su Kruskalov, Primov i Boruvkin algoritam. Prvi algoritam za rjeˇsenje MST problema razvio je ˇceˇski znanstvenik Otakar Bor˚ uvka 1926. godine, traˇze´ci efikasni naˇcin postavljanja elektriˇcne mreˇze. Danas se najˇceˇs´ce upotrebljavaju Primov algoritam i Kruskalov algoritam. Oba algoritma pripadaju skupini pohlepnih algoritama i oba se algoritma izvode u polinomijalnom vremenu. Kruskalov algoritam (naden 1956. godine) je pogodan za rjeˇsavanje MST problema za grafove s malim brojem vrhova i nije jednostavan za programiranje. No, Kruskalov algoritam je najjednostavniji za razumijevanje i najbolji za ruˇcno rjeˇsavanje problema. Algoritam se temelji na sljede´coj 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´ceg stabla. Algoritam 5.5 ULAZ: Graf G = (V, E). IZLAZ: Minimalno razapinju´ce 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ˇzine koji povezuje neki vrh iz S1 s nekim vrhom iz S2 . 3. Stavljamo brid u skup koji predstavlja rjeˇsenje, a vrh iz S2 , koji sudjeluje u vezi, premjeˇstamo iz S2 u S1 . 4. Ako je S2 = ∅, onda smo gotovi, a inaˇce se vra´camo 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ˇcar Vojtech Jarnik, a nezavisno od njega razvio ga je informatiˇcar Robert Prim 1957. godine. Medutim, primjenjivati se poˇcinje tek nakon ”ponovljenog Dijkstrinog otkri´ca”, 1959. godine. Umjesto da konstruira podgraf brid po brid, Primov algoritam konstruira vrh po vrh. Poˇcetni 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ˇceni u graf. Algoritam 5.6 ULAZ: Graf G = (V, E). IZLAZ: Minimalno razapinju´ce stablo T grafa G. 1. Izaberimo proizvoljan poˇcetni vrh. 2. Nadimo njemu najbliˇzi vrh i taj vrh postaje dio grafa. 3. Nadimo grafu najbliˇzi slobodni vrh i taj vrh postaje dio grafa. 4. Iterativno ponavljamo korak 3, dok svi vrhovi ne budu ukljuˇceni u graf. ¡ ¢ Pokazuje se da je sloˇzenost Primovog algoritma reda O n2 . Dokaze korektnosti oba algoritma moˇzete na´ci u [4].
5.8.4
Pretraˇ zivanje stabla
Zadatak nam je prona´ci vrhove u grafu, poˇcevˇsi od nekog unaprijed odredenog vrha (korijen v0 ). U tom procesu posje´cuju se svi vrhovi grafa prelaze´ci bridovima grafa i pri tome i vrhovi i bridovi mogu biti obuhva´ceni viˇse nego
POGLAVLJE 5. TEORIJA GRAFOVA
225
jedanput. Dakle, konstruiramo podgraf koji sadrˇzi sve vrhove grafa, tj. razapinju´ci podgraf. Ovaj zadatak moˇzemo rijeˇsiti na temelju dvije razliˇcite osnovne strategije, a obje vode do konstruiranja razapinju´ceg stabla u grafu. Prva, koja prelazi na novi vrh, ˇcim je on dostupan, tzv. potraga prvo u dubinu (depthfirst search - DFS, pronaˇsao ga Tarjan 1972. godine) i druga, gdje se provjeravaju svi vrhovi na istoj razini (level) i tek se onda prelazi na sljede´ci nivo tzv. potraga prvo u ˇsirinu (breadth-first search - BFS, pronaˇsao ga Dijkstra 1959. godine). DFS se moˇze promatrati i kao specijalni sluˇcaj op´ce metode rasta stabla. U DFS metodi poˇcinjemo u danom vrhu v0 (baza indukcije) i traˇzeno 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ˇcujemo ga u stablo. Sada y postaje novi vrh i ponavljamo postupak pretraˇzivanja njegovih susjeda. Ukoliko nema novih susjeda od y, vra´camo se natrag na vrh, od kojeg smo doˇsli do y (u naˇsem sluˇcaju na vrh x) i traˇzimo njegove susjede, koji joˇs nisu ukljuˇceni u stablo T . Kad se u tom postupku vratimo do korijena v0 postupak je zavrˇsen i traˇzeno stablo T je konstruirano. Problem MST pripada u probleme rastu´ceg stabla (eng. tree-growing problem), dok se ovdje radi o stablu pretraˇzivanja (eng. search tree). Za razliku od MST problema ovdje nismo pretpostavili da je graf G povezan, stoga znamo da DFS metoda moˇze na´ci samo vrhove koji su povezani s v0 . Stoga vrijedi sljede´ci teorem: Teorem 5.8 Neka je v vrh grafa G i T podskup bridova od G konstruiranih pomo´cu DFS metode. Tada je T razapinju´ce stablo za komponentu grafa G koja sadraˇzi vrh v. (Dobar naˇcin za opisivanje DFS metode je taj da se radi lista vrhova. Kada prvi put dodemo do nekog vrha stavimo ga na listu. Objaˇsnjenje liste moˇzete na´ci u [1].) Druga metoda, koja nam omogu´cuje rjeˇsavanje problema traˇzenja 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ˇze promatrati i kao metoda traˇzenja razapinju´ceg stabla, ali i kao metoda pretraˇzivanja. U BFS metodi poˇcinjemo u danom vrhu v0 (baza indukcije) i traˇzeno 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ˇcujemo ga u stablo i to isto uˇcinimo za sve vrhove susjedne vrhu v, koji joˇs nisu ukljuˇceni u T . Tek kada viˇse nema novih vrhova susjednih vrhu x pomiˇcemo se na vrh y, koji je prvi sljede´ci u postupku pojavljivanja u odnosu na x. Sada y postaje novi vrh i
ˇ 5.9. USMJERENI GRAFOVI I MREZE
226
ponavljamo postupak pretraˇzivanja njegovih susjeda. Ukoliko nema novih susjeda od y postupak je zavrˇsen i traˇzeno stablo T je konstruirano. Vrijedi teorem sliˇcan onome kod DFS metode. Teorem 5.9 Neka je v vrh grafa G, a T podskup bridova od G konstruiranih pomo´cu BFS metode. Tada je T razapinju´ce stablo za komponentu grafa G koja sadrˇzi vrh v. Spomenuti algoritmi DFS i BFS temelj su mnogim algoritmima koji se upotrebljavaju u raˇcunalstvu i operacijskim istraˇzivanjima. Pri tome je DFS efikasniji kad treba na´ci samo neko od mogu´cih rjeˇsenja, a BFS je bolji kod problema optimizacije (najmanje bridova u grafu i sl.), odnosno kada je potrebno prona´ci rjeˇsenje na najmanjem nivou stabla. Op´cenito moˇzemo promatrati problem traˇzenja najkra´ceg puta izmedu vrhova v i w u teˇzinskom grafu. U osnovi rjeˇsenja je BFS algoritam. Viˇse o toj temi moˇzete na´ci u [1], str. 206.
5.9 5.9.1
Usmjereni grafovi i mreˇ ze Usmjereni graf
U mnogim praktiˇcnim problemima nije dovoljno koristiti graf kao model, nego bridovima treba dodati i orijentaciju. Na primjer, crtamo li plan grada vaˇzno je naznaˇciti da li je ulica jednosmjerna ili dvosmjerna. Ako je jednosmjerna, treba znati u kojem je smjeru dopuˇsteno voziti. Tako smo doˇsli do pojma usmjerenog grafa. Definicija 5.24 Usmjereni graf ili digraf (eng. directed graph, digraph) je par (V, A), pri ˇcemu je V neprazan skup vrhova grafa, a svaki element skupa A je uredeni par razliˇcitih elemenata iz V. Elementi od A zovu se lukovi (eng. arc). Dakle, ako kod bilo kojeg grafa, svakom bridu dodamo orijentaciju, dobit ´cemo usmjereni graf. Obrat ove izjave ne vrijedi, tj. ne moˇze se svaki usmjereni graf dobiti iz neusmjerenog. Kod usmjerenog grafa bridovi su predstavljeni kao uredeni parovi vrhova, dok su kod neusmjerenog grafa bridovi neuredeni parovi vrhova, tj. dvoˇclani skupovi. Pri crtanju, orijentaciju brida naznaˇcimo strelicom prema w, ako je sa (v, w) dan luk. Nadalje, usmjereni graf moˇzemo shvatiti kao prikaz relacije R na elementima 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ˇcnosti na grafu moˇzemo provjeriti tako da uoˇcimo da za svaki luk (v, w) postoji njemu suprotno orijentirani luk (w, v) tj. da se lukovi uvijek javljaju u parovima. Refleksivnost se oˇcituje tako da svaki vrh ima petlju.
POGLAVLJE 5. TEORIJA GRAFOVA
227
U usmjerenom grafu na prirodan se naˇcin uvode definicije usmjerene ˇsetnje, usmjernog puta i usmjerenog ciklusa. Definicija 5.25 Usmjerena ˇsetenja 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 ˇsetnje medusobno razliˇciti, tada je to usmjerni put. Kod usmjerenog ciklusa svi unutraˇsnji vrhovi usmjerene ˇsetnje su medusobno razliˇciti i v1 = vk .
5.9.2
Turnir
Primjer usmjerenog grafa je graf koji nastaje kao prikaz turnira (engl. tournament) gdje svaki igraˇc igra protiv svakog drugog. Uoˇcite da na taj naˇcin dobivamo jednostavni potpuni graf, koji pretvaramo u usmjereni graf. Luk (v, w) nastaje ako igraˇc v pobijedi igraˇca w, a luk (w, v) ukoliko w pobijedi igraˇca v. Svaki graf takvog oblika zove se turnir. U turniru se mogu javiti usmjereni ciklusi duljine ve´ce ili jednake 3, ali ne i ciklusi duljine manje od 3. Unatoˇc tome vrijedi sljede´ci teorem. Teorem 5.10 U svakom turniru postoji usmjereni put koji sadrˇzi sve vrhove grafa (usmjereni Hamiltonov put) . Dokaz. Ideja dokaza sastoji se u tome da se svaki usmjereni put, koji ne sadrˇzi sve vrhove grafa, moˇze dopuniti joˇs jednim vrhom. Poˇcinjemo s usmjerenim putem (v1 , v2 ), koji dopunjavamo vrhovima dok ne dobijemo do puta koji sadrˇzi sve vrhove grafa. Neka je x bilo koji vrh grafa koji nije sadrˇzan u putu (v1 , v2 , ...vk ). Ukoliko je (x, v1 ) luk vrh ´cemo staviti na poˇcetak puta. Ako to nije sluˇcaj tada je (v1 , x) luk u grafu jer se radi o turniru. Neka je, nadalje, m najve´ci 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ˇzemo ubaciti vrh x u put izmedu vrhova vm i vm+1 . U suprotnom vrh x moˇzemo dodati na kraj puta. Zadatak 5.23 Napiˇsite program za nalaˇzenje usmjerenog puta koriste´ci algoritam opisan u prethodnom dokazu. Postoji alternativna definicija koja kaˇze da je turnir na skupu V svih vrhova relacija za koju vrijede svojstva irefleksivnosti, antisimetriˇcnosti i kompletnosti. Poveˇzite ovu definiciju s matricom relacije. Zadatak 5.24 Turnir je zadan pomo´cu sljede´ce tablice. Uredeni par (x, y) predstavlja luk, ako je y u stupcu definiranom sa x.
ˇ 5.9. USMJERENI GRAFOVI I MREZE
228 a c d
b a c e
c f
d b c
e a c d f
f a b d
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ˇzi sve vrhove u grafu. Vrijedi i sljede´ci teorem za turnire? Teorem 5.11 Na svakom turniru ima neparan broj Hamiltonovih putova. Teorem je 1934. godine dokazao R´edei. Dokaz se moˇze prona´ci u [8], str. 175.
5.9.3
Mreˇ ze i kritiˇ cni 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ˇzan za snalaˇzenje u gradu bila bi i duljina ulica izraˇzena u metrima (ili kilometrima). Tako bismo usmjereni graf dopunili teˇzinama lukova. Na taj smo naˇcin dobili usmjerenu mreˇzu. Definicija 5.26 Usmjerena mreˇza (engl. directed network) je usmjereni graf ˇcije su teˇzine lukova cjelobrojne pozitivne vrijednosti. Dakle, usmjerena mreˇza je usmjereni graf zajedno s teˇzinskom funkcijom w : A → N. Razlog za uzimanje iskljuˇcivo prirodnih brojeva za teˇzine lukova leˇzi u ˇcinjenici da tako izbjegavamo poteˇsko´ce u traˇzenju optimalnog rjeˇsenja za probleme na mreˇzama.
5.9.4
Problem rasporeda
ˇ Siroko podruˇcje primjene usmjerenih teˇzinskih grafova je u poslovanju, gdje se stalno traˇze nove i preciznije metode koje pomaˇzu u radu s mnoˇstvom kompleksnih podataka i zadanim rokovima, a cilj im je podizanje kompetitivnosti poduze´ca (vidi [6]). Tu pomaˇzu razliˇcite tehnike za izradu rasporeda, u koje pripadaju i tehnike mreˇza (networks). Poznate tehnike mreˇza su: • Program Evaluation and Review Technique - PERT,
POGLAVLJE 5. TEORIJA GRAFOVA
229
• Metoda kritiˇcnog puta (Critical Path Method ) - CPM, odnosno Arraw Diagram Method (ADM). Graf je pritom prikaz u kojem lukovi oznaˇcavaju poslove, koji se moraju izvesti odredenim redom, a teˇzine lukova oznaˇcavaju vrijeme potrebno da se posao obavi. Problem se sastoji u nalaˇzenju takvoga redosljeda obavljanja poslova da svi poslovi budu izvrˇseni u najkra´cem mogu´cem vremenu. Takvi se problemi nazivaju i problemima rasporeda(eng. scheduling problems). Uzet ´cemo da su teˇzine bridova cjelobrojne vrijednosti. Znamo da ovakve usmjerene teˇzinske grafove zovemo i usmjerenim mreˇzama. PERT je razvijen 1958. do 1959. godine u laboratorijama ameriˇcke ratne mornarice, kako bi pomogle u vremenu velikog zamaha tehnologije, budu´ci da klasiˇcne tehnike rasporeda, kao ˇsto je Ganttov dijagram, nisu bile dovoljne. Vrlo brzo PERT se proˇsirio u sve grane privrede. U otprilike isto vrijeme javila se joˇs jedna sliˇcna metoda – Metoda kritiˇcnog puta (CPM). Jedan od ciljeva konstrukcije PERT dijagrama je odredivanje koliko je vremena potrebno za zavrˇsetak nekog projekta (procesa). Klasiˇcni primjer mreˇze je mreˇza aktivnosti koje treba provesti da bi se uspjeˇsno zavrˇsio projekt. Takve mreˇze koristimo ve´c u fazi planiranja projekta. Vrhovi grafa predstavljaju dogadaje, a lukovi su aktivnosti koje treba provesti da bi se odredeni dogadaj ostvario. Teˇzine lukova oznaˇcavaju vrijeme potrebno za provodenje odredene aktivnosti. U fazi planiranja potrebno je odrediti koliko ´ce projekt trajati. Taj se problem svodi na pronalaˇzenje najduljeg puta koji sadrˇzi sve vrhove grafa. To je tzv. kritiˇcni put u grafu. S druge strane aktivnosti treba planirati tako da trajanje projekta bude ˇsto kra´ce. Zadatak 5.25 U projektu su zadane aktivnosti a1 , a2 , a3 , a4 , a5 , a6 . Vremena (izraˇzena u tjednima) potrebna da se te aktivnosti obave su ti , 1 ≤ i ≤ 6 i ona su dana u sljede´coj tablici. U tablici su dani preduvjeti pi za pojedine aktivnosti. Uoˇcite da aktivnost moˇze imati viˇse od jedne aktivnosti koje joj nuˇzno prethode. ai ti pi pi
a1 2 −
a2 4 a1
a3 6 a1
a4 5 a3
a5 4 a2 a4
Slika 5.19 1. Prikaˇzite projekt u obliku usmjerene mreˇze. 2. Koliko je minimalno trajanje projekta? 3. Oznaˇcite najdulji put u tom grafu.
a6 3 a5
ˇ 5.9. USMJERENI GRAFOVI I MREZE
230
Mreˇza aktivnosti prikazana je na sljede´coj slici. Vrh p predstavlja poˇcetak, a z zavrˇsetak projekta. Sada se za svaki vrh raˇcuna V (v) kao najkra´ce vrijeme, raˇcunaju´ci od poˇcetka projekta, kad se taj dogadaj moˇze dogoditi. Stavljamo da je V (p) = 0. Nadalje, V (q) = 3, V (r) = 2 + 6 = 8. Vrijednosti najkra´cih vremena dane su u sljede´coj tablici. v V(v)
p 0
q 3
r 8
s 13
t 17
z 20
Tablica 5.2
a2 a1
4
q
s a5
2 p
4 a3
a5
6
5 t r a6
3 z Slika 5.20 Primijetite da to znaˇci da se za svaki vrh traˇzi najdulji put od poˇcetnog vrha do promatranog vrha, tako da bi se stigle obaviti sve aktivnosti koje promatranom dogadaju prethode. Vidimo da je najkra´ce trajanje projekta 20 tjedana. Primjenjena metoda analize mreˇze pripada metodama kritiˇcnog puta. Najdulji put u grafu je sada put pqrstz. Prethodni je zadatak primjer problema traˇzenja najduljeg (kritiˇcnog) puta u grafu. Ponovimo sada metodu prikazanu u primjeru. Dakle, za poˇcetni 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 ´cemo za svaki vrh v raˇcunati krajnje vrijeme K (v), kad taj dogadaj treba nastupiti, da bi projekt bio zavrˇsen 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) , ˇsto znaˇci da aktivnost yz moˇze poˇceti bilo kada u vremenu od V (y) do V (y) + F (y, z), bez da to utjeˇce na zavrˇsetak projekta. Aktivnost za yz, koju je F (y, z) = 0, je kritiˇcna aktivnost za projekt. U svakoj mreˇzi projekta postoji barem jedan put koji se sastoji od kritiˇcnih aktivnosti i zove se kritiˇcni put. Zadatak 5.26 Izraˇcunajte F (y, z) za svaku aktivnost iz prethodnog primjera. U projektu su zadane aktivnosti a1 , a2 , a3 , a4 , a5 , a6 , a7 . Vremena (izraˇzena u mjesecima) potrebna da se te aktivnosti obave su ti , 1 ≤ i ≤ 7 i ona su dana u sljede´coj tablici. U tablici su dani preduvjeti pi za pojedine aktivnosti. Uoˇcite da aktivnost moˇze imati viˇse od jedne aktivnosti koje joj nuˇzno prethode. ai ti pi pi
a1 1 −
a2 3 a1
a3 5 a1
a4 4 a3
a5 6 a2 a4
a6 2 a5
a7 3 a3 a6
Tablica 5.3 1. Prikaˇzite projekt u obliku usmjerne mreˇze. 2. Koliko je minimalno trajanje projetka? 3. Nadite kritiˇcni put u tom grafu. 4. Izradite potpunu analizu projekta (funkcije F (y, z))
5.9.5
Protoci i rezovi
Prototipom transportne mreˇze moˇzemo smatrati naftovod. Takva mreˇza ima jedan izvor (eng. source) i jedan ponor (eng. sink). Svaki luk grafa ovdje predstavlja dio naftovoda ˇciji su vrhovi spojnice pojedinih cijevi. Kapacitet luka je maksimalni protok koji je mogu´ce ostvariti kroz promatranu
ˇ 5.9. USMJERENI GRAFOVI I MREZE
232
cijev. U transportne mreˇze spadaju i transportne rute pojedine robe, ali i telefonske i elektriˇcne mreˇze. Nadalje, primjer transportne mreˇze je i Internet. Medutim, kod Interneta se javlja problem ˇsto je ta mreˇza prevelika da bi se u potpunosti definirala . Stoga se ovdje javlja neˇsto drugaˇciji problem minimizacije puta: problem minimizacije puta u grafu koji je djelomiˇcno poznat. Dakle, u transportnim mreˇzama uvijek postoji vrh i kojeg zovemo izvor i za kojeg vrijedi da su svi lukovi koji sadrˇze taj vrh usmjereni od tog vrha. Postoji i vrh p kojeg zovemo ponor i za kojeg vrijedi da su svi lukovi koji ga sadrˇze usmjereni prema njemu. Definicija 5.27 Transportna mreˇza 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ˇze M je funkcija f : A → N gdje f (u, v) oznaˇcava koliˇcinu koja prolazi kroz luk (u, v) . Prirodno je pretpostaviti da koliˇcina koja ude u vrh u (osim za izvor i ponor) mora biti jednaka onoj koja izade. Taj zakon zovemo zakonom oˇcuvanja. Da bi taj zakon mogli zapisati formulom definiramo prvo ulazni i izlazni protok za svaki vrh kao ˇsto slijedi: ulaz (u) =
X
f (x, u) , izlaz (u) =
(x,u)∈E
X
f (u, y) .
(u,y)∈E
Nadalje, vrijedi i zakon izvodljivosti (eng. feasibility) koji tvrdi da protok kroz dani luk ne moˇze biti ve´ci od njegovog kapaciteta. Vrijedi dakle: 1. ulaz (u) = izlaz (u) , u 6= i, p (zakon oˇcuvanja), 2. f (x, y) ≤ c (x, y) , (x, y) ∈ A (zakon izvodljivosti). Zadatak 5.27 Dana je transportna mreˇza sa slike 5.21 1. Za mreˇzu na slici izraˇcunajte za svaki vrh ulaz (u) i izlaz (u) . 2. Zadana je funkcija f na toj mreˇzi 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 5
6
i
t
5 r
4 3
p Slika 5.21 Provjerite zadovoljava li dana funkcija f zakone oˇcuvanja i izvodljivosti. Zbog zakona oˇcuvanja, 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ˇcku vrijednost, koja mjeri ukupni protok kroz mreˇzu, zovemo vrijednost protoka. Vrijednost protoka f na mreˇzi D definira se kao X val (f ) = f (i, v) . v∈V
5.9.6
Max-flow min-cut teorem
Sada ´cemo odgovoriti na pitanje kolika je maksimalna vrijednost protoka za danu mreˇzu. 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ˇci da je S ∪ T = V i S ∩ T = ∅. Protok izmedu skupova S i T definiramo na sljede´ci naˇcin: val (f ) =
X x∈S y∈T
f (x, y) −
X
f (u, v) .
u∈T v∈S
Prva suma mjeri ukupni protok od S prema T, a druga suma mjeri ukupni protok od T prema S. Budu´ci da je druga suma nenegativan broj, vrijedi:
ˇ 5.9. USMJERENI GRAFOVI I MREZE
234
val (f ) ≤
X
f (x, y) .
x∈S y∈T
Zakon izvodljivosti f (x, y) ≤ c (x, y), koji vrijedi za svaki luk (x, y) , primijenimo na lukove ˇciji je poˇcetak u skupu S i zavrˇsetak u T, pa imamo: X val (f ) ≤ c (x, y) . x∈S y∈T
Nadalje, za (S, T ) kaˇzemo 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 c (x, y) . cap (S, T ) = x∈S y∈T
Uzmimo specijalno da je s = i izvor mreˇze i t = p ponor mreˇze, 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´ceg kapaciteta, tada formula (5.1) tvrdi da je maksimalni protok manji ili jednak minimalnom rezu. To se obiˇcno piˇse kao max − f low ≤ min − cut. Taj je rezultat vaˇzan korak u dokazu teorema koji kaˇze da su te dvije vrijednosti zapravo jednake. To je tzv. max-flow min-cut teorem. Promotrimo mreˇzu D i na njoj protok f. Cilj nam je proˇsiriti f do maksimalnog protoka. U tu svrhu u mreˇzi trebamo uoˇciti tzv. f -rastu´ce puteve (eng. f -augmenting path). Ti putevi nisu nuˇzno orijentirani i zapravo ih promatramo kao puteve u grafu zanemaruju´ci orijentaciju lukova. Postoje dvije vrste f -rastu´cih 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ˇzi D = (V, A) . Put i = x1 x2 ..., xk = p zovemo f -rastu´cim 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´cim putevima moˇzemo pove´cati protok na lukovima do maksimalnog kapaciteta ili postaviti kontra-protok na nulu. Pri tome moramo to raditi tako da ne prekrˇsimo zakon oˇcuvanja. Uzimamo, dakle, minimum za sve 1 ≤ i ≤ k − 1 sljede´cih veliˇcina 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ˇcinu 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´cu vrijednost od poˇcetnog. Taj postupak nastavljamo dok ne dostignemo maksimum. Za dokaz max-flow min-cut teorema posebnu vaˇznost imaju tzv. nepotpuni f -rastu´ci putevi. To su f -rastu´ci putevi koji ne sadrˇze ponor p. Pretpostavimo sada da je f maksimalni protok. Neka je S skup vrhova s za koje postoji nepotpuni f -rastu´ci put od i do s. Skup T je komplement od S u skupu V i on je oˇcito neprazan jer sadrˇzi vrh p, jer bi u suprotnom postojao f -rastu´ci 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´ci put od i do s i ako je f (x, y) < c (x, y), tada ga moˇzemo proˇsiriti 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´ci put od i do y i ako je f (u, v) > 0, tada ga moˇzemo proˇsiriti do u, ˇsto je u suprotnosti s pretpostavkom da je u ∈ T. Dakle, f (u, v) = 0. Sada je X X X f (x, y) − f (u, v) = c (x, y) = cap (S, T ) . val (f ) = x∈S y∈T
u∈T v∈S
x∈S y∈T
Prema tome, dokazali smo sljede´ci teorem. Teorem 5.12 (max-flow min-cut teorem, L. Ford, D. Fulkerson, 1956). U transportnoj mreˇzi je vrijednost maksimalnog protoka od s do t jednaka kapacitetu minimalnog reza koji razdvaja s i t. Primjere o primjeni prethodnog teorema na´ci ´cete u [1]. Na dokazu prethodnog teorema temelji se i algoritam za pronalaˇzenje maksimalnog protoka (Ford-Fulkerson-ov algoritam). U tom algoritmu se prvo metodom oznaˇcavanja provjeri da li postoji f -rastu´ci put. Ukoliko postoji, prelazi se na proˇsirenje f -rastu´ceg puta.
236
5.10. BOJENJE GRAFOVA
Algoritam 5.7 ULAZ: Transportna mreˇza G = (V, E). IZLAZ: Maksimalni protok transportne mreˇze G. 1. Poˇcinjemo s bilo kojim protokom, npr. protokom koji svakom luku pridruˇzuje nulu. 2. Upotrijebimo BSF (Breadth first search) algoritam za konstrukciju stabla nepotpunih f -rastu´cih puteva s korijenom u izvoru i. 3. Ako stablo dostiˇze ponor p, proˇsirimo f i vratimo se na korak 2. i uzmimo novi protok. 4. Ako stablo ne dostiˇze p, stavimo da je S skup svih vrhova koji ne dostiˇzu 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 ˇ cetiri boje
Godine 1853. Francis Guthrie je pokuˇsao obojiti kartu engleskih pokrajina, tako da pokrajine koje imaju zajedniˇcku granicu budu obojene razliˇcitom bojom i pri tome primijetio da su za to potrebne samo ˇcetiri boje. To je opaˇzanje prenio svom profesoru matematiˇcaru de Morganu, a njega je to potaknulo da postavi hipotezu ˇcetiri boje. Hipoteza kaˇze da se svaka geografska karta moˇze obojiti s najviˇse ˇcetiri boje tako da nijedna od dvije susjedne regije (drˇzave) nisu obojene istom bojom. Za regije kaˇzemo da su susjedne (eng. adjacent) ako imaju zajedniˇcku granicu, ali ne i ako imaju samo zajedniˇcku toˇcku. Vrlo brzo je utvrdeno da tri boje nisu dovoljne da se pravilno oboji karta, ali i da se s pet razliˇcitih boja moˇze obojiti svaka karta. U rjeˇsavanju ovog problema angaˇzirao se veliki broj matematiˇcara kroz period od stotinjak godina. U nekoliko navrata objavljeno je da je hipoteza dokazana, ali su nakon toga bile otkrivene greˇske u postupku dokazivanja. Vaˇzne doprinose dokazu hipoteze dao je i hrvatski matematiˇcar Danilo Blanuˇsa sredinom 20. stolje´ca. Medutim, dokaz hipoteze izveden je tek 1977. godine uz znaˇcajnu upotrebu raˇcunala, a dokaz teorema o ˇcetiri boje napravili su Kenneth Appel i Wolfgang Haken. Pomo´cu raˇcunala provjereno je 1936 mogu´cih sluˇcajeva (karata). Taj je dokaz, budu´ci da je bio prvi dokaz nekog poznatog teorema izveden pomo´cu raˇcunala, pokrenuo veliku raspravu u matematiˇckim krugovima o pitanju treba li se takav ”raˇcunalni dokaz” smatrati ispravnim. Matematiˇcka je praksa da svaki dokaz ˇcovjek (matematiˇcar) treba biti u stanju verificirati korak po korak. To nije bio sluˇcaj s Appel-Hakenovim
POGLAVLJE 5. TEORIJA GRAFOVA
237
dokazom teorema o ˇcetiri boje. Dvadesetak godina kasnije (1996. godine) dodatnom razradom matematiˇcke teorije broj mogu´cnosti koje je trebalo provjeriti smanjen je na 633. To su uˇcinili Neil Robertson, Daniel Sanders, Paul Seymour i Robin Thomas i tako omogu´cili da se dokaz provede (uz dosta muke i vremena) i bez pomo´ci raˇcunala. Teorem o ˇcetiri boje prirodno se moˇze 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ˇcku granicu. Teorem 5.13 Vrhovi svakog ravninskog (planarnog) grafa mogu se obojiti s najviˇse ˇcetiri 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 ˇcesto 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ˇzivanju prirodnih brojeva vrhovima ˇcesto mislimo na pridruˇzivanje boja vrhovima grafa i obrnuto. To je razlog zaˇsto funkciju oznaˇcavamo sa c (eng. color). Ponekad se u literaturi (npr. u [5] i [10]) moˇze prona´ci da je bojenje vrhova grafa zapravo bilo kakvo pridruˇzivanje boja vrhovima, dok se bojenje koje susjednim vrhovima pridruˇzuje razliˇcite 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ˇcno k boja. Pitamo se kako odrediti kromatski broj danog grafa. Ukoliko graf ima relativno mali broj vrhova metodom pokuˇsaja i pogreˇsaka moˇze se odrediti kromatski broj grafa. Medutim ako je broj vrhova grafa velik trebali bismo na´ci dobar algoritam koji bi rjeˇsavao op´cenito taj problem. Za sada nije poznat algoritam koji bi pronalazio kromatski broj grafa u polinomnom vremenu. Ovaj problem pripada klasi NP-potpunih problema (eng. NPcomplete) u kojoj se nalazi i problem trgovaˇckog putnika. Jedna od primjena kromatskog broja grafa je problem slaganja rasporeda. Na primjer, slaganje rasporeda velikog broja ispita na fakultetu (ili ˇcak na ˇcitavom sveuˇciliˇstu). Trebaju se izbje´ci konflikti da ni profesor ni student ne budu na rasporedu u isto vrijeme na dva razliˇcita ispita. Ovdje ´cemo pokazati sliˇcan problem slaganja rasporeda na konferenciji.
238
5.10. BOJENJE GRAFOVA
Primjer 5.16 Na kongresu informatiˇcara prezentira se 6 sekcija: s1 , s2 , ..., s6 . Zbog interesa sluˇsatelja, paralelno se ne smiju izvoditi sljede´ce 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ˇzi u najkra´cem vremenu i da je interes sluˇsatelja poˇstivan? Pretpostavljamo da sve sekcije traju jednako dugo. Prikaˇzimo problem pomo´cu grafa tako da sekcije predstavljaju vrhove grafa, pri ˇcemu su dva vrha povezana bridom ukoliko se ne smiju izvoditi paralelno.
s2
s1
s7
s5
s6
s4 Slika 5.22 Jedan od mogu´cih rasporeda je sljede´ci:
1. termin s1 , s5
2. termin s 2 , s3 , s4
3. termin s6
Tablica 5.5 Vidi se da nije mogu´ce sve sekcije smjestiti u manje od tri termina, jer postoji trokut s3 s5 s6 u grafu ˇsto znaˇci 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
s1
s7
s5
s6
s4 Slika 5.23 Bojenje vrhova grafa moˇzemo shva´cati i kao particiju skupa svih vrhova takvu da su u svakom skupu particije samo oni vrhovi koji nemaju zajedniˇcki brid. Dakle, svaki skup particije sadrˇzi samo vrhove iste boje, pa se ˇcesto 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´ce klike u grafu. U gornjem primjeru klike bi bili skupovi {s1 , s2 } , {s1 , s4 } , {s2 , s6 } , {s3 , s5 , s6 } , te je ω (G) = 3. Oˇcito je da vrijedi sljede´ca tvrdnja. Propozicija 5.6 U svakom grafu G vrijedi χ (G) ≥ ω (G) . Op´cenito rjeˇsenje problema traˇzenja kromatskog broja ne postoji. Odnosno ne postoji algoritam koji bi dani problem rijeˇsio u polinomnom vremenu. Postoji, medutim, jednostavna metoda bojenja vrhova grafa, koja je upotrebljiva ukoliko broj vrhova nije prevelik. Najprije se graf pokuˇsa obojiti s jednom, pa sa dvije boje, tako da se za vrh uvijek pokuˇsa uzeti svaka boja kojom nije obojen ni jedan od njegovih susjeda. Ako se na taj naˇcin ne uspiju obojiti svi vrhovi grafa, pove´ca se broj boja, te se postupak ponavlja iz poˇcetka. Ovaj algoritam temelji se na metodi pretraˇzivanja s vra´canjem (backtracking). On ´ce sigurno prona´ci bojenje vrhova grafa minimalnim brojem boja, no problem je ˇsto se ovaj algoritam izvrˇsava u eksponencijalnom vremenu s obzirom na broj vrhova grafa. Navedimo dva teorema koji se dokazuju pomo´cu 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ˇzi cikluse neparne duljine. Zadatak 5.28 Nadite kromatski broj potpunog grafa Kn . Zadatak 5.29 Dokaˇzite da za bipartitni graf G vrijedi χ (G) = 2, koriste´ci 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ˇce sa strujnim krugovima, gdje ˇzice koje se medusobno spajaju trebaju biti obojene razliˇcitim 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ˇcno k boja. Nadalje, promotrimo sljede´ci problem. ˇ Primjer 5.17 Zelimo 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 susjednosti:
u v z x
a 1 0 1 0
b 1 1 0 0
c 0 1 0 0
d 0 0 1 0
e 0 1 0 1
f 0 0 1 1
g 1 0 0 1
Tablica 5.6 Napravimo raspored posjeta pacijenata pojedinom specijalistu ako znamo da svaki pregled traje pola sata i poˇcinje se s radom u 8:00. Nacrtajmo prvo bipartitni graf ˇciji se skup vrhova sastoji od P i S i ˇciji su bridovi dani matricom susjednosti.
POGLAVLJE 5. TEORIJA GRAFOVA
u
a
v
b
c
241
z
d
x
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 upotrebom bojenja bridova bipartitnog grafa dobiva izvediv raspored. Iz gornjeg grafa moˇze se izvesti raspored za svakog lijeˇcnika i za svakog pacijenta. Vidimo da su potrebna ˇcetiri termina po lijeˇcniku. Navedimo jedan oˇcigledan rezultat koji vrijedi za bojenje bridova grafa Propozicija 5.7 Za bipartitni graf G vrijedi χ0 (G) = δ max (G) . Dokaz. Dokaz se provodi matematiˇckom 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ˇcito da se graf moˇze 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 ´cemo 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 vrhova grafa tako da se pri tome koristi maksimalno δ max (G) + 1 boja. Zadatak 5.30 Pomo´cu matematiˇcke indukcije pokaˇzite 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
5.11. SPARIVANJE U GRAFOVIMA
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ˇse od dva brida u M. Za vrh koji je incidentan nekom bridu u M kaˇzemo da je zasi´cen (eng. saturated). Sparivanje je savrˇseno (eng. perfect matching) ako i samo ako je svaki vrh zasi´cen. Zakljuˇcujemo da je sparivanje savrˇseno ako je svaki vrh incidentan toˇcno jednom vrhu iz sparivanja M. Medu vaˇzne 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ˇzemo da je maksimalno ako ne postoji sparivanje M koje ima viˇse bridova od M 0 . Sparivanje koje je savrˇseno ujedno je i maksimalno. Primjenu sparivanja nalazimo na primjer kod dodjeljivanja posla radnicima. Budu´ci da nijednom radniku ne mogu (u isto vrijeme) biti dodijeljena dva raliˇcita posla ovo je problem sparivanja. Vrhovi u grafu predstavljaju 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´cuje sve vrhove iz V1 ? Oˇcigledno je da ukoliko postoji viˇse radnika nego poslova, nije mogu´ce uposliti sve radnike. Pretpostavimo stoga da je |V1 | ≤ |V2 | . Nadalje, ako imamo k radnika, a broj poslova za koje su oni svi obuˇceni je manji od k, opet ne´cemo mo´ci zaposliti sve radnike. Neka je X neki podskup skupa V1 . Oznaˇcimo sada sa S (X) skup svih vrhova iz V2 koji su susjedni nekom od vrhova u X. Zakljuˇcujemo da mora biti |X| ≤ |S (X)| za svaki X, ˇzelimo li da postoji rjeˇsenje problema. Sljede´ci teorem tvrdi da je to ujedno i dovoljan uvjet. Teorem 5.16 (P. Hall, 1935) Neka je G bipartitni graf, pri ˇcemu su V1 i V2 podskupovi biparticije. Postoji sparivanje koje zasi´cuje 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 ˇcemu su V1 i V2 podskupovi biparticije, te svaki vrh ima isti stupanj jednak k. Pokaˇzite da postoji sparivanje koje zasi´cuje V1 .
5.12
Zadaci
1. Odredite broj bridova u potpunom bipartitnom grafu Km,n . 2. Nadite sve medusobno razliˇcite (neizomorfne) regularne grafove stupnja 4, koji imaju 7 vrhova. Napiˇsite njihove matrice susjedstva.
POGLAVLJE 5. TEORIJA GRAFOVA
243
3. Ako sa δ oznaˇcimo najmanji stupanj vrha u grafu, a sa ∆ najve´ci stupanj vrha u grafu, dokaˇzite da tada vrijedi δ≤
2ε ≤ ∆. n
4. Imamo sljede´ce definicije Definicija 5.33 Duljina ciklusa jednaka je broju vrhova koji sudjeluju u ciklusu. Definicija 5.34 Struk grafa je duljina najkra´ceg ciklusa u grafu. Pokaˇzite da ako je G k-partitan graf struka 4, onda je broj vrhova tog grafa ve´ci ili jednak 2k. Pokaˇzite da postoji toˇcno jedan takav graf s toˇcno 2k vrhova. 5. Dokaˇzite 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) ˇsetnju 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ˇzite ili opovrgnite sljede´ce 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 potpunom grafu su medusobno jednake. 10. Dokaˇzite 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ˇzite da Petersonov graf nije Hamiltonov. 13. Dokaˇzite da je Petersonov graf bez ijednog vrha Hamiltonov. ¥ ¦ 14. Dokaˇzite da potpuni graf Kn ima najviˇse n−1 razliˇcitih Hamiltonovih 2 ciklusa. 15. Izdvojite Hamiltonove grafove iz sljede´ceg 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´ci put od A do K na grafu na sljede´coj slici.
5 2
A
2 5
4 6
3 4
3
3
7
6 6
4
4 5 5
4
K
POGLAVLJE 5. TEORIJA GRAFOVA
245
Slika 5.26 17. Cikliˇcki graf je graf ˇciji svi vrhovi i bridovi leˇze na istoj kruˇznici. Nadite kromatski broj cikliˇckog grafa od 2n vrhova i cikliˇckog grafa od 2n + 1 vrhova. 18. Pronadite kromatski broj sljede´cih grafova:
Slika 5.27 19. Odredite kromatski broj stabla. 20. Ako je F = (V, E) ˇsuma s e komponenti povezanosti, tada vrijedi |E| = |V | − e. Dokaˇzite tu tvrdnju. 21. Nacrtajte stabla koja zadovoljavaju sljede´ca 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´ce stablo grafa kocke. 23. Nadite sva razapinju´ca stabla potpunog grafa K4 . 24. Neka je graf G definiran sljede´com matricom:
a b d h
b a c d e
c b d g
d a b c
e b
f g
g c f h
h a g
Tablica 5.7 Skicirajte DFS stablo u G poˇcevˇsi od g. Je li G povezani graf? 25. Napiˇsite izraz koji je pohranjen u sljede´cem binarnom stablu:
/
*
◦
-
a
+
b
c
e
f
d Slika 5.28
26. Neka je G 3-regularan graf sa ciklusom duljine 3 i brojem vrhova ve´cim od 4. Koliki je kromatski broj grafa G?
POGLAVLJE 5. TEORIJA GRAFOVA
247
27. Neka je (d1 , . . . , dn ) niz stupnjeva vrhova nekog grafa. Dokaˇzite da je n P di paran broj. i=1
28. Na slici je prikazana mreˇza na kojoj brojevi na lukovima predstavljaju kapacitete lukova.
a 10 5
2
8
9
3
b
6
i
d
4
u 11
c
e
4
6
Slika 5.29 Protok f definiran je sljede´com tablicom:
(x, y) f (x, y)
(i, a) 5 (b, d) 2
(i, b) 6 (b, e) 3
(i, c) 0 (c, e) 1
(a, b) 0
(a, d) 5
(d, u) 7
(e, u) 4
(b, c) 1
Slika 5.30
(a) Nadite vrijednost od f . (b) Nadite rez kapaciteta 12. ˇ zakljuˇcujete? (c) Sto 29. Primijenite Fleuryjev algoritam na graf na slici, poˇcevˇsi od vrha a.
248
5.13. PROJEKTI
a Slika 5.31 30. Pokaˇzite da ako je graf G stablo s n vrhova, tada je suma stupnjeva svih vrhova od G jednaka 2n − 2. 31. Dokaˇzite da vrijedi: graf s n vrhova je bipartitan ako i samo ako se njegovi vrhovi mogu oznaˇciti 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ˇzi sve bridove grafa. Povezani graf zovemo semihamiltonov graf ako postoji put u grafu koji sadrˇzi sve vrhove grafa. Istraˇzite svojstva takvih grafova i njihovu vezu s Eulerovim i Hamiltonovim grafom. 2. Opiˇsite 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ˇzite se literaturom [5]). 3. Prouˇcite naˇcin primjene stabala u teoriji odluˇcivanja, te usporedite terminologiju koja se upotrebljava u teoriji odluˇcivanja s onom iz matematiˇcke teorije grafova.
POGLAVLJE 5. TEORIJA GRAFOVA
249
4. Upotrijebite binarna stabla za konstrukciju binarnih kodova. Opiˇsite naˇcin konstrukcije prefiks koda pomo´cu binarnog stabla. Opiˇsite algoritam 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ˇzemo da su homeomorfni ako se prvi moˇze dobiti iz drugog tako da se prvom dodaju i/ili izbriˇsu vrhovi stupnja 2. Nadite primjere homeomorfnih grafova, te dokaˇzite teorem Kuratowskog koji daje uvjete da bi graf bio planaran. 7. Opiˇsite veze bojenja bridova grafa i latinskih kvadrata. 8. Grafovi se mogu definirati na razliˇcitim plohama kao ˇsto 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ˇcite, objasnite i implementirajte Edmonds-Johnsonov algoritam te odredite njegovu sloˇzenost (Uputa: posluˇzite se literaturom [9]).
250
5.13. PROJEKTI
Bibliografija [1] Biggs, N. L., Discrete Mathematics, Oxford University Press Inc., New York, 2002. [2] Dymaˇcek, 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, Masachussets 1990. [9] Thinbleby, H.: The directed Chinese Postman problem, UCLIC, London, 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ˇsto su brojevi prekrasni? To je isto kao da pitate zaˇsto je Beethovenova Deveta simfonija prekrasna. Ako ne vidite zaˇsto, nitko vam to ne moˇze re´ci. Ja znam da su brojevi prekrasni. Ako oni nisu, niˇsta nije. Paul Erd¨os Algebra je dio matematike koja izuˇcava algebarske operacije i strukture. Ovdje ´cemo se baviti algebarskim strukturama koje su dijelovi apstraktne algebre i imaju znaˇcajnu primjenu u drugim podruˇcjima znanosti i istraˇzivanja. U matematici ˇcesto povezujemo i prouˇcavamo povezivanje elemenata pojedinih skupova. Pri tome, na skupovima definiramo relacije i operacije kao ˇsto smo vidjeli na primjerima u prethodnim poglavljima. Svojstva operacija moˇzemo prouˇcavati i na apstraktnoj razini tako da se uzdignemo iznad konkretnih skupova i stvarnih operacija i baviti se apstraktnom generalnom strukturom (grupom, poljem i sl.). Pri tome odabiremo kljuˇcna svojstva pojedninih struktura i njihove posljedice. To nam omogu´cava klasifikaciju algebarskih struktura u odredene klase ˇciji ˇclanovi imaju mnoga vaˇzna zaSlika 6.1: Evarist Galois jedniˇcka svojstva. Uoˇcavamo da je ovdje vaˇzan i skup i operacija koja se izvodi na skupu. Najˇceˇs´ce ´cemo se baviti binarnim operacijama, koje povezuju dva elementa i pridruˇzuju im neki tre´ci element. Posebno znaˇcajne algebarske strukture su grupa i polje.
253
254
6.1
6.1. DEFINICIJA I PRIMJERI ALGEBARSKIH STRUKTURA
Definicija i primjeri algebarskih struktura
U svakoj algebarskoj strukturi imamo jedan ili viˇse skupova i jednu ili viˇse operacija. Algebarska operacija ◦ je svako preslikavanje ◦ : An → A pri ˇcemu je n A Kartezijev produkt A × A × ... × A (n puta). Operacija tako pridruˇzuje 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ˇcavamo sa A = (A, O, R) . Skup A zovemo skupom nosiocem algebarske strukture, a njegove elemente osnovnim elementima algebarske strukture. Viˇse o tome proˇcitajte 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 operacijama. Prisjetimo se da su osnovne operacije zbrajanja i mnoˇzenja realnih brojeva binarne operacije. Slijedi op´cenita definicija binarne operacije. Definicija 6.1 Binarna operacija ◦ na nepraznom skupu S je pravilo koje svakom paru elemenata a, b ∈ S pridruˇzuje neki element z ∈ S. Pri tome piˇsemo z = a ◦ b. Uoˇcimo da se binarna operacija moˇze promatrati i kao funkcija koja elementima Kartezijevog kvadrata S 2 (uredenim parovima) pridruˇzuje element iz S. Dakle, binarna operacija na nepraznom skupu S je funkcija f : S × S → S. Binarna operacija na konaˇcnom skupu S moˇze se prikazati pomo´cu Cayleyeve tablice, koja je objaˇsnjena u sljede´cem primjeru. Tablica je dobila ime po engleskom matematiˇcaru Arthuru Cayleyu (1821-1895), koji je zasluˇzan za uvodenje vaˇznih algebarskih struktura u matematiku, ali i za donoˇsenje propisa koji su ˇzenama omogu´cili studiranje na sveuˇciliˇstu Cambridge. Primjer 6.2 Zadan je skup S = {a, b, c} i binarna operacija ◦ na S pomo´cu sljede´ce Cayleyeve tablice.
POGLAVLJE 6. ALGEBARSKE STRUKTURE ◦ a b c
a a c b
b c b a
255
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 operacijama zbrajanja i mnoˇzenja na skupovima brojeva. Svojstva tih operacija nabrojena su u prvom dijelu ove knjige. Ovdje dolazi do izraˇzaja vaˇznost 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ˇcinjemo od pojma skupa i neke (binarne) operacije definirane na tom skupu. Nadalje, ta (binarna) operacija treba zadovoljavati odredena svojstva da bismo doˇsli do odredene algebarske strukture. Neka je S skup na ˇcijim 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ˇzemo da je zatvorena na skupu S. Primjer binarnih relacija su operacije zbrajanja + i mnoˇzenje ·. 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 asocijativnosti. Op´cenito 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ˇzenje. U op´cem sluˇcaju kaˇzemo 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ˇzenja 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ˇzenja su i komutativne jer se redosljed elemenata na koje se operacija primjenjuje moˇze zamijeniti.
POGLAVLJE 6. ALGEBARSKE STRUKTURE
257
Op´cenito, operacija ◦ je komutativna na S ako za sve elemente a, b ∈ S vrijedi a ◦ b = b ◦ a. Svojstva koja smo nabrojali vaˇzna su i imaju znaˇcajne 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´ca 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ˇzemo da je grupa komutativna ili Abelova grupa. Abelova grupa je dobila ime po norveˇskom matematiˇcaru Nielsu Abelu (1802-1829) koji je u svom kratkom ˇzivotu dao znaˇcajne doprinose teoriji jednadˇzbi i beskonaˇcnih redova. Spomenimo joˇs dva pojma koji se upotrebljavaju u ovom kontekstu. Polugrupa je struktura (S, ◦) takva da je operacija ◦ zatvorena i asocijativna na S. Monoid je polugrupa (S, ◦) takva da operacija ◦ ima neutralni element na S.
6.2.2
Konaˇ cne i cikliˇ cke grupe
Ako je skup S konaˇcan, onda za kardinalni broj |S| kaˇzemo da je red grupe (eng. order) i da je grupa konaˇcnog reda ili konaˇcna. Za grupu gdje skup ima beskonaˇcno mnogo elemenata kaˇzemo da ima beskonaˇcan red. Evo teorema koji govori o vaˇznom svojstvu strukture koja je grupa, koji ima znaˇcajan utjecaj na grupe konaˇcnog reda. Teorem 6.1 Neka su a, b ∈ S i G = (S, ◦) grupa. Tada jednadˇzba a ◦ x = b ima jedinstveno rjeˇsenje u grupi G. Dokaz. Pretpostavimo suprotno, tj. da jednadˇzba a ◦ x = b ima dva razliˇcita rjeˇsenja x1 , x2 . Tada vrijedi a ◦ x1 = b i a ◦ x2 = b. Izjednaˇcimo jednadˇzbe i dobivamo a ◦ x1 = a ◦ x2 . Proˇsirimo obje strane jednadˇzbe 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´ci da je e identiteta, dobivamo x1 = x2 . To predstavlja kontradikciju s pretpostavkom, pa zakljuˇcujemo da jednadˇzba a ◦ x = b ima jedinstveno rjeˇsenje. Primijetimo kakav utjecaj ima prethodni teorem na izgled Cayleyeve tablice grupe konaˇcnog reda. U sluˇcaju grupe, svaki se element u tablici
258
6.2. GRUPE
pojavljuje toˇcno jedanput u svakom redu, odnosno stupcu. Zapiˇsimo to u obliku propozicije. Propozicija 6.3 Neka je (S, ◦) konaˇcna grupa. Tada se u Cayleyevoj tablici svaki element skupa S pojavljuje toˇcno jedanput u svakom retku, odnosno stupcu. Zadatak 6.2 Pokaˇzite kontraprimjerom da obrat ove tvrdnje ne vrijedi. Za svaki element a grupe G moˇzemo definirati niz cjelobrojnih potencija kao ˇsto 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. Cesto se umjesto a ◦ b piˇse jednostavno ab. Zbog svojstva asocijativnosti oˇcito vrijedi am an = am+n . Ako je a element grupe i n najmanji prirodan broj, takav da je xn = e, tada kaˇzemo da je n red elementa a u grupi G i piˇsemo |a| = n. Ukoliko ne postoji takav konaˇcan prirodan broj n, kaˇzemo da element a ima beskonaˇcan red. Teorem 6.2 Neka je a element reda n konaˇcne grupe G. Tada je am = e ako i samo ako je m viˇsekratnik od n. Definicija 6.3 Za grupu G = (S, ◦) kaˇzemo da je cikliˇcka ako postoji element a ∈ S takav da za svaki b ∈ S, b = an za neki n ∈ Z. Za grupu G tada kaˇzemo da je generirana elementom a i a zovemo generatorom grupe. Zadatak 6.3 Pokaˇzite da je grupa (Z, +) cikliˇcka i da je broj 1 generator grupe. Primjer 6.3 Pokaˇzite da je grupa Z7 , uz zbrajanje modulo 7 cikliˇcka 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ˇzite da su svi elementi grupe Z7 , osim [0], uz zbrajanje modulo 7 generatori grupe (Z7 , +). Rjeˇsenja prethodna dva zadataka moˇzete na´ci u [[3], str 340]. Zadatak 6.5 Neka je M skup matrica oblika · ¸ 1 n , n ∈ Z. 0 1 Pokaˇzite da je M , uz operaciju mnoˇzenja matrica, beskonaˇcna cikliˇcka grupa. Zadatak 6.6 Dokaˇzite da cikliˇcka grupa sa samo jednim generatorom ne moˇze imati viˇse od 2 elementa.
6.2.3
Primjeri grupa
Ovdje ´cemo upoznati vaˇznije primjere struktura, koje su grupe. 1. Najpoznatiji primjeri grupe su razliˇciti skupovi brojeva uz operacije mnoˇzenja 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´ci 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ˇcujemo da je (F, ◦) grupa. Kompozicija funkcija nije komutativna operacija, pa grupa nije Abelova. 3. Grupa permutacija (simetriˇcna grupa) je skup svih bijekcija na konaˇcnom skupu S = {1, 2, 3, ..., n} uz operaciju kompozicije funkcija. Prisjetimo se da permutacije moˇzemo zapisati pomo´cu matrice tipa (2, n) . Primjerice permutacija p skupa od 5 elemenata zapiˇse se kao · p=
1 2 3 4 5 p (1) p (2) p (3) p (4) p (5)
¸ .
Skup od n elemenata ima n! razliˇcitih permutacija. Stoga bi i Cayleyjeva 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ˇcnom grupom reda n.
260
6.2. GRUPE
4. Skup matrica tipa (m, n), uz operaciju zbrajanja matrica, je komutativna grupa. Viˇse detalja o toj grupi moˇzete na´ci u [2]. 5. Skup Mn kvadratnih regularnih matrica reda n uz operaciju mnoˇzenja matrica je grupa (nije komutativna). Uoˇcite da kao posljedicu teorema 6.1 vrijedi da svaka matriˇcna jednadˇzba AX = B, gdje su A, B ∈ Mn , ima jedinstveno rjeˇsenje, tj. postoji jedinstvena matrica C ∈ Mn takva da je AC = B. Zadatak 6.7 ·
a b 1. Pokaˇzite da je skup matrica oblika 0 1 uz operaciju mnoˇzenja matrica grupa.
¸ , gdje su a, b ∈ Z3 i a 6= 0,
2. Ispiˇsite sve matrice koje pripadaju gornjoj grupi.
Zadatak 6.8 Napiˇsite Cayleyjevu tablicu za grupu permutacija skupa koji ima 3 elementa.
6.2.4
Podgrupe
U prethodnoj toˇcki smo utvrdili da su (Z, +) , (Q, +) , (R, +) grupe i pri tome je Z ⊂ Q ⊂ R. Kaˇzemo da je grupa koja je sadrˇzana u drugim grupama njezina podgrupa. Definicija 6.4 Neka je (S, ◦) grupa, P ⊆ S i (P, ◦) takoder grupa. Kaˇzemo da je (P, ◦) podgrupa grupe (S, ◦) . Piˇsemo (P, ◦) ≤ (S, ◦) . Svaka grupa G koja ima barem dva elementa, ima barem dvije podgrupe. 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ˇcna grupa ima pravih podgrupa, dok to ne mora biti sluˇcaj kod konaˇcnih grupa. Poznato je da ako je red grupe prosti broj, onda ona nema pravih podgrupa. Dokaz ove tvrdnje moˇzete na´ci 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ˇzan smjer je opet trivijalno ispunjen jer je neutralni element jedinstven i svaki element ima jedinstveni inverzni element. Pokaˇzimo 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ˇcite da prvi uvjet u prethodnom teoremu traˇzi 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ˇs 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ˇzan smjer je trivijalno ispunjen. Pokaˇzimo 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ˇzi neutralni element. Uzmimo sada e, a ∈ P, pa iz 6.1 slijedi da je a−1 ∈ P, ˇsto znaˇci 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ˇcan 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´ca propozicija, koja daje test za konaˇcne podgrupe. Propozicija 6.4 Neka je (S, ◦) grupa i P neprazni konaˇcni podskup od S. Ako je P zatvoren s obzirom na operaciju ◦, tada je struktura (P, ◦) podgrupa grupe (S, ◦). Dokaz ove propozicije moˇzete na´ci u [3], str. 351. Zadatak 6.9 Pokaˇzite 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ˇzite da je skup matrica oblika , gdje su a ∈ Z , 0 1 uz operaciju mnoˇzenja matrica grupa. Nadalje, ispiˇsite sve elemente gornjeg
262
6.2. GRUPE
skupa. Na kraju pokaˇzite da taj skup predstavlja podgrupu grupe regularnih matrica drugog reda uz operaciju mnoˇzenja 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ˇciti lijevi koskupovi ˇcine particiju od G. Ova ˇcinjenica ima za posljedicu sljede´ci vaˇzan teorem, tzv. Lagrangeov teorem: Teorem 6.5 Ako je G konaˇcna 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´ci da oni ˇcine particiju od G, jasno je da vrijedi m|n. Do istog bismo rezultata doˇsli 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ˇzi element a? Zbog svojstva zatvorenosti, traˇzena podgrupa P treba sadrˇzavati sve pozitivne potencije od a tj. elemente a2 , a3 , . . .. S druge strane, P treba sadrˇzavati sve njihove inverzne elemente, tj. negativne potencije od a. Vrijedi sljede´ci 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ˇzi element a. Zadatak 6.11 Detalje dokaza teorema napravite za vjeˇzbu. Sukladno konstrukciji, grupu (H, ◦) zovemo cikliˇckom podgrupom od G generiranom sa a. U dva specijalna sluˇcaja cikliˇcke podgrupe generirane sa a su trivijalne. Prvo, kada je podgrupa generirana neutralnim elementom (({e}, ◦)). I drugo, kada je G cikliˇcka grupa generirana elementom a onda je P = G. Primjer 6.4 Promatramo grupu (Z4 , +4 ) . Nadimo cikliˇcke podgrupe generirane sa [2].
POGLAVLJE 6. ALGEBARSKE STRUKTURE
263
Imamo 0[2] = [0], 1[2] = [2], 2[2] = [2] + [2] = [0], −1[2] = [2]. Dakle, traˇzena podgrupa je ({[0], [2]}, +4 ) . Zadatak 6.12 Promatrajte grupu (Z6 , +6 ) . Nadite cikliˇcke podgrupe generirane sa [2], odnosno [3].
6.3
Izomorfizam grupa
Usporedivanjem pojedinih grupa, odnosno njihovih Cayleyevih tablica (za konaˇcne grupe) moˇze se uoˇciti njihova suˇstinska jednakost. Znaˇci, ako bi drugaˇcije oznaˇcili elemente jedne grupe dobili bismo drugu grupu. Za takve grupe kaˇzemo 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ˇzemo da su izomorfne i piˇsemo (G, ×) ∼ = (H, ◦) . U prethodnoj definiciji izomorfizma traˇzili smo da je izomorfizam bijekcija, te da ˇcuva strukturu grupe. Primjer 6.5 Izomorfne grupe su skup pozitivnih realnih brojeva uz operaciju mnoˇzenja (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ˇcimo da su obje grupe komutativne. Nadalje, neutralni element u prvoj grupi je 1, a u drugoj 0, ali vrijedi f (1) = 0. Znaˇci neutralni se element iz prve grupe preko izomorfizma preslikao u neutralni element iz druge grupe. Zadatak 6.13 Pokaˇzite 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 izomorfizam zadanim grupa, pa zakljuˇcujemo da izomorfizam, ako postoji, ne mora biti jedinstven. Dakle, da bismo pokazali da su dvije grupe izomorfne dovoljno je na´ci jedan izomorfizam izmedu tih grupa. Problem je pokazati da dvije grupe nisu izomorfne, jer ˇcinjenica da ne znamo na´ci izomorfizam ne povlaˇci nuˇzno da on ne postoji. Stoga nam je vaˇzan sljede´ci teorem koji daje neka svojstva izomorfnih grupa. Upotrebom ovog teorema moˇzemo uoˇciti svojstvo koje jedna grupa ima, a druga nema, pa na temelju toga zakljuˇcujemo 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´ce 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ˇcka grupa, onda je i (H, ◦) cikliˇcka grupa. 6. Za a ∈ G vrijedi |a| = |f (a)| . 7. Ako je (G0 , ×) podrupa od G, onda je (H 0 = {f (a) : a ∈ G0 } , ◦) podgrupa od (H, ◦) i te su dvije podgrupe izomorfne. Govorimo da izomorfizam ˇcuva odredena svojstva grupe kao ˇsto su komutativnost, neutralni i inverzni element, zatim red elementa, podgrupe i svojstvo cikliˇcnosti grupe. S apstraktnog glediˇsta sve su izometriˇcne grupe medusobno jednake. Tako, pojam izomorfizma predstavlja relaciju ekvivalencije, koja klasificira sve grupe u klase medusobno izomorfnih grupa. Zbog toga ˇcesto pokazujemo da je neka grupa izomorfna nekom standardnom predstavniku odredene klase medusobno izomorfnih grupa. Prikladno je za standardne predstavnike upotrebljavati cikliˇcke grupe. Izmedu bilo koje dvije algebarske strukture (A, ◦) i (B, ×) moˇzemo promatrati preslikavanje f : A → B, kojeg zovemo morfizmom ukoliko vrijedi svojstvo 6.5 iz definicije izomorfizma. Uoˇcite da se morfizam razlikuje od izomorfizama u tome ˇsto morfizam ne mora biti bijekcija izmedu zadanih skupova. Dakle, morfizam je op´cenitiji pojam od izomorfizma.
POGLAVLJE 6. ALGEBARSKE STRUKTURE
265
Sljede´ci teorem govori o naˇcinu prenoˇsenja struktura grupe preko preslikavanja 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ˇzite 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 ´cemo poglavlju objasniti jednu od brojnih mogu´cih primjena diskretne matematike, koju obraduje i ova knjiga, na podruˇcje informatike. Jedan od zadataka informatike je komunikacija (prijenos) podataka s jednog mjesta na drugo. Ponekad se taj prijenos izvrˇsava na malim udaljenostima, primjerice unutar memorije istog raˇcunala, a drugi puta se informacije trebaju prenijeti na svemirsku letjelicu, milijune kilometara udaljenu od Zemlje. Medutim, u svim sluˇcajevima cilj nam je da dobijemo informaciju koju smo i poslali, tj. da ona nema pogreˇsaka. Poznato je da je to zbog niza faktora, koji utjeˇcu na informaciju tijekom prijenosa, ˇcesto teˇsko izvedivo. Ovdje ´cemo prikazati kako se pogreˇska nastala u prijenosu moˇze detektirati i ispraviti. Pri tome ´cemo koristiti popriliˇcan matematiˇcki aparat. Nabrojimo samo naprednija znanja ovdje potrebna: grupe, metrika (udaljenost), kongruencija, algebra matrica, rjeˇsavanje homogenog sustava linearnih jednadˇzbi, itd.
6.4.1
Teorija kodiranja kao grana matematike
Op´cenito, ˇzelimo li toˇcno interpretirati signal, sluˇzimo se s barem tri znanstvena podruˇcja: elektriˇcnim inˇzenjerstvom, raˇcunarstvom i matematikom. U matematici taj problem obraduje teorija kodiranja (eng. coding theory). Dakle, teorija kodiranja je grana matematike koja se bavi slanjem podataka kroz komunikacijski kanal, u kojem postoje smetnje koje utjeˇcu na prijenos, te toˇcnom interpretacijom poslanih podataka. Za razliku od kriptografije koja se trudi zadrˇzati informaciju u obliku teˇskom za ˇcitanje
266
6.4. PRIMJENA GRUPA U KODIRANJU
(neautoriziranim subjektima), teorija kodiranja nam pomaˇze da informaciju ˇsto lakˇse proˇcitamo. U ovoj smo knjizi ve´c govorili o kodiranju (Huffmanov kod), a ovdje ´cemo govoriti o detektiranju i ispravljanju pogreˇsaka. Pretpostavljamo da se poruka ˇsalje u binarnom obliku (nizovi 0 i 1), te se pogreˇske pri prijenosu javljaju nasumiˇcno, ali u predvidljivom opsegu. Da bi kompenzirali te pogreˇske ˇsaljemo viˇse bitova od onih pomo´cu kojih je zapisana originalna poruka. Najjednostavnija metoda detekcije pogreˇsaka je upotreba paritetnog koda (eng. parity code), koji ˇsalje jedan dodatni bit na svakih 7 bitova originalne poruke. Medutim, tom metodom mogu se samo uoˇciti neke pogreˇske, ali nije ih mogu´ce ispraviti, pa poruku treba slati ponovno. Joˇs jedna jednostavna metoda detekcije pogreˇsaka sastoji se u tome da se svaki bit ponovi odredeni broj puta. Ta metoda, s druge strane, bitno pove´cava troˇskove prijenosa poruke, jer se po toj shemi multiplicira broj bitova. U svrhu rjeˇsavanja tog problema, 1948. godine je Claude Shannon, koji je radio za Bell Laboratories, udario temelje teorije kodiranja, dokazuju´ci da je mogu´ce kodirati poruku tako da broj dodatnih bitova ostane relativno mali. Njegov doprinos nije imao praktiˇcnih implikacija, ali je zato 1950. godine njegov kolega iz Bell Laboratories, Richard Hamming zapoˇceo prouˇcavanje kodova koji dopuˇstaju ispravljanje pogreˇsaka. On je pronaˇsao kod u kojem je informacija od 4 bita bila dopunjena s tri dodatna bita, a kod je dozvoSlika 6.2: Richard Wesley ljavao i detekciju i korekciju pogreˇ saka. Hamming Istovremeno kad i spomenuta dva znanstvenika iz SAD-a, na Cambridgeu je na teoriji kodiranja radio John Leech. On je izumio sliˇcan kod rade´ci na apstraktnoj teoriji grupa. To je istraˇzivanje ukljuˇcivalo i problem pakiranja na sferi, te 24-dimenzionalnu Leech mreˇzu, pomo´cu koje su objaˇsnjene i klasificirane konaˇcne simetriˇcne grupe. Vaˇznost teorije kodiranja ubrzo je uoˇcena te je naˇsla brojne primjene. Primjerice, u razdoblju od 1969. do 1973. NASA Mariner bespilotne letjelice istraˇzivale su Mars, Veneru, Merkur (viˇse informacija na [13]), a pri prijenosu impresivnih slika i drugih informacija na Zemlju upotrebljavale su Reed– Mullerov kod. Taj kod moˇze ispraviti 7 pogreˇsaka 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ˇsla u razvoju tehnologije CD-ova, na kojima se signal takoder kodira digitalno. Da bi se diskovi zaˇstitili od oˇste´cenja kodira se pomo´cu koda koji ima mogu´cnost ispravljanja pogreˇsaka. U posljednjih nekoliko godina pronaden je i eksplicitni kod koji dostiˇze
POGLAVLJE 6. ALGEBARSKE STRUKTURE
267
granice predvidene u Shannonovom radu. Konstrukcija tog koda zahtjeva tehnike iz vrlo ˇsirokog podruˇcja teorijske matematike: od linearne algebre, teorije polja i algebarske geometrije, do algebarskih struktura. Viˇse o teoriji kodiranja moˇzete na´ci u [9].
6.4.2
Problemi prijenosa informacija
Pretpostavimo da se svi podaci prikazuju kao nizovi nula i jedinica, tj. kao rijeˇci abecede {0, 1} . Takve rijeˇci zovemo binarnim rijeˇcima, a njihove dijelove (nule i jedinice) bitovima. Nadalje, razumljive su sljede´ce pretpostavke koje se odnose na nastanak pogreˇske kod prijenosa podataka. Prvo, pogreˇska nastaje zato jer se 0 pretvori u 1, ili obrnuto, na jednom ili viˇse mjesta u rijeˇci. Drugo, jednaka je vjerojatnost da se 0 pretvori u 1, kao i da se 1 pretvori u 0, (iako u praksi to ˇcesto nije tako, za teorijska razmatranja uzima se to kao pretpostavka). Pogreˇska na jednom bitu ne utjeˇce na nastanak pogreˇske na nekom drugom bitu i jednaka je vjerojatnost nastanka pogreˇske na bilo kojem bitu. Na kraju, ve´ca je vjerojatnost manjeg broja pogreˇsaka, nego ve´ceg broja pogreˇsaka. Neka sada prenosimo rijeˇci iz skupa svih rijeˇci duljine 4 i da se pri tome rijeˇc 0011 greˇskom promijenila u 0010. Tu pogreˇsku ne bismo mogli detektirati jer i ova deformirana rijeˇc postoji u skupu iz kojeg uzimamo rijeˇci. Dakle, moˇzemo uoˇciti samo one pogreˇske na rijeˇcima kod kojih dobivena pogreˇsna rijeˇc nije iz skupa oˇcekivanih rijeˇci. Pretpostavimo sada da rijeˇci uzimamo iz skupa R = {0000, 0001, 0011, 0101, 0111, 1010, 1101, 1111}. Rijeˇc 0011 je element skupa R dok 0010 nije, pa znamo da se radi o pogreˇsci, iako ne znamo na kojem je bitu pogreˇska i da li je pogreˇska samo na jednom bitu. S druge strane, prema pretpostavkama navedenim u prethodnom odjeljku, znamo da je najvjerojatnije nastala pogreˇska na jednom bitu, pa je poslana rijeˇc najvjerojatnije 0011 ili 1010, ali ne znamo koja, jer su rijeˇci skupa R previˇse sliˇcne jedna drugoj. Medutim, promatramo li skup R0 = {0000, 0001, 0011, 0101, 0111, 1101, 1111}, gornju pogreˇsku moˇzemo detektirati i ispraviti. Cilj nam je vidjeti koje uvjete treba zadovoljavati skup rijeˇci da bi uvijek bilo mogu´ce detektirati i ispraviti pogreˇsku na jednom ili n kodova.
6.4.3
Metrika na kodnim rijeˇ cima
Da bi taj cilj postigli prvo moramo uvesti metriku na skupu svih binarnih rijeˇci. Tu metriku, koja nam omogu´cuje mjerenje stupnja razliˇcitosti dviju rijeˇci, zovemo Hammingovom udaljenoˇs´cu, prema Richardu Hammingu koji je sredinom dvadesetog stolje´ca utemeljio teoriju detekcije i ispravljanja pogreˇsaka u prijenosu podataka. Ponovimo da svaka funkcija d : S × S → R+ ∪ {0}, koja predstavlja metriku (udaljenost) na skupu S, u matematiˇckom smislu treba zadovolja-
268
6.4. PRIMJENA GRUPA U KODIRANJU
vati sljede´ce 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ˇcnost), 4. d (x, z) ≤ d (x, y) + d (y, z) (nejednakost trokuta). Sljede´ca definicija uvodi metriku na skup Rn svih binarnih rijeˇci duljine n. Definicija 6.6 Hammingova udaljenost d (x, y) dviju binarnih rijeˇci x, y jednake duljine n, je broj bitova u kojima se x i y razlikuju. Zadatak 6.16 Provjerite da li Hammingova udaljenost zadovoljava aksiome metrike? Primijetimo da je za otkrivanje i ispravljanje pogreˇsaka vaˇzno da rijeˇci iz skupa rijeˇci budu dosta ”razmaknute”, tj. da im je udaljenost ˇcim ve´ca. Nadalje, prije slanja podataka, rijeˇcima se dodaje jedan ili viˇse bitova na kraju rijeˇci i ti dodatni bitovi sluˇze korekciji pogreˇsaka. Stoga se oni i zovu kontrolni bitovi (eng. check digits). Dakle, ako je informacija sadrˇzana u rijeˇci duljine m, na nju se dodaje r kontrolnih bitova, pa rijeˇc koja se prenosi ima duljinu n = m + r. Sada funkciju E : Rm → Rn sa skupa svih rijeˇci duljine m u skup svih rijeˇci duljine n nazivamo kodiraju´com funkcijom (eng. encoding function), a rijeˇci iz Rn zovemo kodnim rijeˇcima (eng. codeword). Jasno je da je funkcija E injekcija. Definiramo i funkciju D : Rn → Rm ∪ {pogreˇ ske}, koju nazivamo dekodiraju´com funkcijom (eng. decoding function). Kad ne bi bilo pogreˇsaka, funkcije D i E bi bile medusobno inverzne. Skup kodnih rijeˇci je pravi podskup skupa svih binarnih rijeˇci duljine n, pa postoje elementi iz Rn koji ne predstavljaju kodne rijeˇci. Kod prijema rijeˇci treba prona´ci najbliˇzu rijeˇc i s njom je identificirati. Ovo je dekodiranje po principu ”najbliˇzeg susjeda”. Problem je ve´ci ako takav ”najbliˇzi susjed” nije jedinstven. Ponovimo, proces kodiranja i dekodiranja se sastoji od funkcija E : Rm → Rn i D : Rn → Rm ∪ {pogreˇ ske}, a ˇcesto se zove i (m, n) blok kod. Blok kod je sistematiˇcan (eng. systematic block code) ako je za dani x ∈ Rm , prvih m bitova jednako bitovima od x (u istom poretku). Ovdje ´cemo govoriti samo o sistematiˇcnim blok kodovima. Najˇceˇs´ci oblik kodiranja je kodiranje pomo´cu 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ˇci bude paran broj (eng. even parity check code). Dakle, kodni blok je (m, m + 1) . Kod ove vrste kodiranja otkiva se pogreˇska koja je nastala u jednom bitu, ali se ne´ce znati koji je bit promijenjen.
POGLAVLJE 6. ALGEBARSKE STRUKTURE
269
Traˇzimo takvo kodiranje kod kojeg ´ce se mo´ci otkriti k ili manje od k pogreˇsaka i njega zovemo detektorom k pogreˇsaka (eng. k-error detecting), kodiranje u kojem ´cemo mo´ci ispraviti k ili manje od k pogreˇsaka. Takvo kodiranje zovemo korektorom k pogreˇsaka (eng. k-error correction). Dakle, kodiranje opisano u prethodnom odjeljku, koje se temelji na parnom broju jedinica, je detektor jedne pogreˇske i korektor 0 pogreˇsaka. Ranije smo uoˇcili da mogu´cnost otkrivanja i ispravljanja pogreˇsaka ovisi i o udaljenosti medu rijeˇcima. U tu svrhu definiramo minimalnu udaljenost kodova kao minimum svih udaljenosti medu parovima kodova. Slijede teoremi koji upotrebom pojma minimalne udaljenosti, daju uvjete da bi kod bio detektor k pogreˇsaka, odnosno korektor k pogreˇsaka. Minimalna udaljenost koda definira se kao minimum udaljenosti izmedu parova kodnih rijeˇci. Teorem 6.9 Kod je detektor k pogreˇsaka ako i samo ako mu je minimalna udaljenost koda najmanje k + 1. Dokaz. Znamo da se pogreˇska u kodnoj rijeˇci moˇze uoˇciti samo ako zbog pogreˇske nismo dobili neku drugu kodnu rijeˇc. Dakle, ako je promijenjeno k bitova, ne smije postojati kodna rijeˇc koja se od poslane razlikuje u k bitova. Drugim rijeˇcima, to znaˇci da minimalna udaljenost rijeˇci treba biti ve´ca od k. Teorem 6.10 Kod je korektor k pogreˇsaka ako i samo ako mu je minimalna udaljenost najmanje 2k + 1. Dokaz. Dokaz se provodi upotrebom svojstava metrike. Ovdje ´cemo dokazati samo jedan smjer teorema, a drugi ostavljamo za vjeˇzbu. Pretpostavimo da je kod korektor k pogreˇsaka, te ˇzelimo dokazati da je tada minimalna udaljenost svakog para kodnih rijeˇci najmanje 2k + 1. Dokaz provodimo metodom suprotnog. Pretpostavimo da postoji par kodnih rijeˇci x, y ˇcija je udaljenost manja od 2k + 1. Piˇsemo 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ˇci x napravljeno k pogreˇsaka i da je primljena rijeˇc x0 , pa vrijedi d (x, x0 ) = k. Ako je svaka pogreˇsaka nastala baˇs 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ˇze biti dekodiran.
6.4.4
Grupa koda
Sada ´cemo formirati grupu na skupu svih kodnih rijeˇci. Da bi to mogli uˇciniti definirajmo, prvo, operaciju zbrajanja kodnih rijeˇci na skupu Rn svih kodnih rijeˇci od n bitova. Dogovorno ´cemo kodne rijeˇci 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ˇsaju bitovi, kodne rijeˇci ´cemo 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ˇci x i y je kodna rijeˇc x ⊕ y ∈ Rn , definirana sa x ⊕ y = (x1 +2 y1 , x2 +2 y2 , ..., xn +2 y2 ) . Dakle, kodne se rijeˇci zbrajaju tako da se zbroje komponente kodnih rijeˇci pomo´cu zbrajanja modulo 2. Zbrajanje modulo 2 nam osigurava da ´ce bitovi biti 0 ili 1. Primjer 6.6 Zbrojimo kodne rijeˇci: 10011011 ⊕ 10001110 = 00010101. Zadatak 6.17 Zbrojite sljede´ce kodne rijeˇci: 1. 11001 ⊗ 01011, 2. 010101 ⊕ 101010. Zbog zbrajanja modulo 2, znamo da ´ce zbroj biti jedinica ako se na korespodentnim mjestima bitovi razlikuju, a dobit ´cemo nulu ako su bitovi koji se zbrajaju jednaki. Ovo svojstvo nam omogu´cava identifikaciju razliˇcitih bitova u kodnim rijeˇcima. Zbrojimo li jedinice u kodnoj rijeˇci, koja predstavlja zbroj dviju kodnih rijeˇci, dobit ´cemo udaljenost tih kodnih rijeˇci. Definicija 6.8 Teˇzina rijeˇci (eng. weight) x je broj w (x) , koji kazuje koliko jedinica ima u toj rijeˇci, tj. za x = (x1 , x2 , ..., xn ) teˇzina je w (x) =
n X
xi .
i=1
Propozicija 6.5 Udaljenost rijeˇci x, y ∈ Rn je dana s: d (x, y) = x ⊕ y.
(6.2)
Kod za koji je skup kodnih rijeˇci grupa s obzirom na zbrajanje kodnih rijeˇci zovemo grupa kodova (eng. group code). Nadalje, kod koji je zatvoren s obzirom na operaciju ⊕ zovemo linearni kod (vidi [1], str. 341). Ekvivalentno, 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ˇcnim grupama. Prema Lagrangeovom teoremu, iz ˇcinjenice da kodne rijeˇci ˇcine 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ˇzite da je (Rn , ⊕) grupa. Ako ste rijeˇsili prethodnu vjeˇzbu znate da je (Rn , ⊕) grupa. Medutim, znamo da su u tom skupu rijeˇci vrlo sliˇcne, pa nema smisla koristiti taj skup kod identifikacije i ispravljanja pogreˇsaka. Potrebno je da minimalna udaljenost kodnih rijeˇci bude ve´ca od 1. Prisjetimo se da bi u svrhu nalaˇzenja minimalne udaljenosti unutar skupa trebalo izraˇcunati udaljenosti svih parova kodnih rijeˇci, ˇsto je u sluˇcaju skupa s ve´cim brojem elemenata dug proces. U svrhu skra´civanja tog postupka, uvedimo raˇcunanje udaljenosti pomo´cu zbrajanja kodnih rijeˇci kao ˇsto je dano u formuli 6.2. Nadalje, ukoliko je skup kodova grupa, tada se minimalna udaljenost moˇze dobiti kao minimalna teˇzina svih kodnih rijeˇci, koje se ne sastoje od samih nula. Kodnu rijeˇc koja se sastoji od samih nula oznaˇcavamo s 0. To je sadrˇzaj sljede´ceg teorema. Teorem 6.11 Minimalna udaljenost kodnih rijeˇci u grupi kodova je jednaka minimalnoj teˇzini svih kodnih rijeˇci, koje se ne sastoje od samih nula. Dokaz. Neka je m minimalna udaljenost kodnih rijeˇci u skupu S. To znaˇci da postoje dvije kodne rijeˇci 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ˇzina rijeˇci, koje se ne sastoje od samih nula, u grupi, tada vrijedi: w (x ⊕ y) ≥ n. Dakle m ≥ n. S druge strane, uoˇcimo 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ˇc minimalne teˇzine, tj. w (z) = n. Sada imamo n = d (z, 0) ≥ m. Dokazali samo da je i n ≥ m, tako da moˇzemo zakljuˇciti da je m = n. Zadatak 6.19 Neka je C grupa kodova. Pokaˇzite da je podskup od C u kojem su sve kodne rijeˇci parne teˇzine, grupa kodova. Nadalje, dokaˇzite da ili sve kodne rijeˇci u C imaju parne teˇzine ili njih toˇcno polovica ima parne teˇzine.
272
6.4. PRIMJENA GRUPA U KODIRANJU
6.4.5
Matrica izvodnica kodiraju´ ce funkcije
Uvedimo sada reprezentaciju kodiraju´ce funkcije E : Rm → Rn pomo´cu matrice G tipa (m, n) , ˇciji su elementi nule i jedinice. Takvu matricu zovemo matrica izvodnica (eng. generator matrix) za kod. Da bi kodirali rijeˇc od m bitova, rijeˇc predstavimo kao uredenu m-torku (jednoreˇcanu matricu) i mnoˇzimo je modulo 2 matricom izvodnicom. Naglasimo da su sve operacije zbrajanja i mnoˇzenja, zbrajanje i mnoˇzenje modulo 2. Za sistematiˇcne kodove vrijedi da je prvih m bitova u kodnoj rijeˇci jednako rijeˇci koju smo kodirali, pa prvih m redaka i m stupaca matrice G ˇcini jediniˇcnu matricu m-tog reda. Primjer 6.7 Neka je matrica 1 0 G= 0 0
izvodnica dana s: 0 1 0 0
0 0 1 0
0 0 0 1
1 0 1 0
0 1 1 0
1 1 0 0
0 0 . 1 1
Ona prikazuje kodiraju´cu funkciju E : R4 → R8 . Dakle, rijeˇci 1000 pridruˇzena je kodna rijeˇc 10001010. Pitamo se, koja je kodna rijeˇc E (1101) pridruˇzena rijeˇci 1101? Odgovor £ ¤ bismo dobili tako da pomnoˇzimo jednoreˇcanu matricu 1 1 0 1 matricom G kao ˇsto slijedi
1 £ ¤ 0 1 1 0 1 E (1101) = 0 0 £ 1 1 0 1 1 1 E (1101) =
0 1 0 0
0 0 1 0
0 0 0 1 ¤ 0 1 .
1 0 1 0
0 1 1 0
1 1 0 0
0 0 1 1
Uzmimo sada da kodiramo neku op´cenitu rijeˇc x = x1 x2 x3 x4 i pri tome dobijemo kodnu rijeˇc u = u1 u2 ...u8 . Imamo
E (1101) = E (1101) =
£ £
x1 x2 x3
1 ¤ 0 x4 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 0 1 0
0 1 1 0
1 1 0 0
0 0 1 1
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
ˇsto, uz uvaˇzavanje da je 0 +2 0 = 0 i 1 +2 1 = 0, vodi do homogenog sustava linearnih jednadˇzbi u1 u1
+2 u3 +u5 =0 u2 +2 u3 +u6 =0 +2 u2 +2 u7 =0 u3 +2 u4 +2 u8 = 0.
Matrica tog homogenog sustava je 1 0 1 0 1 1 K= 1 1 0 0 0 1
0 0 0 1
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
i nju zovemo kontrolnom matricom (eng. parity check matrix), budu´ci da za svaku pravilno prenesenu kodnu rijeˇc u mora vrijediti KuT = O,
(6.3)
gdje je O nul matrica tipa (4, 1) . Ispitajmo joˇs u kakvoj su medusobnoj ovisnosti matrice G i K. Uoˇcimo da se G moˇze prikazati pomo´ £ T cu¤ particije G = [Im A] , te da je tada pripadna kontrolna matrica K = A Im . To je bit sljede´ceg teorema. Teorem 6.12 Neka je kodiraju´ca funkcija E : Rm → Rn prikazana pomo´cu 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ˇzimo sada da formula 6.3 vrijedi op´cenito za bilo koju kodnu rijeˇc u. Za u ∈ Rn uvijek postoji rijeˇc 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ˇzenja matrica) A (BC) = (AB) ¡ ¢ = KGT xT = (uzimamo particije od K i G) · ¸ £ T ¤ Im = A Im xT = (mnoˇzenje 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ˇzite da, u uvjetima prethodnog dokaza, vrijedi AT +2 A = O(n−m,m) . Zadatak 6.21 Neka je matrica izvodnica dana 1 0 0 0 1 0 G= 0 1 0 0 0 1 0 0 1 1 1 0
s
1 1 . 0
Ona prikazuje kodiraju´cu funkciju E : R3 → R7 . 1. Nadite E (101) . 2. Nadite kontrolnu matricu K. 3. Provjerite da li je kodna rijeˇc 1011101 dobro prenesena? Teorem 6.13 Neka je E : Rm → Rn kodiraju´ca funkcija takva da je E (x) = xG, gdje je G matrica izvodnica. Skup svih kodnih rijeˇci E (Rm ) je grupa uz operaciju zbrajanja modulo 2. Dokaz. Budu´ci je (Rm , ⊕) grupa, prema teoremu 6.8 dovoljno je pokazati da je E morfizam, tj. da za sve x, y ∈ Rm vrijedi E (x ⊕ y) = E (x) ⊕ E (y) . Raˇcunamo: E (x ⊕ y) = (x ⊕ y) G = xG ⊕ yG = E (x) ⊕ E (y) . Na kraju ove toˇcke pokazat ´cemo u kakvoj su vezi minimalna teˇzina kodnih rijeˇci 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ˇceni s K1 , K2 , ..., Kn . Pretpostavimo da je u k stupaca zbroj elemenata u pripadnim recima jednak nuli, te oznaˇcimo te stupce sa Ki1 , Ki2 , ..., Kik . Rijeˇc u, koja ima m bitova i jedinice na mjestima i1 , i2 , ..., ik , a na ostalim mjestima nule zadovoljava matriˇcnu jednadˇzbu KuT = O i ona je kodna rijeˇc. Vrijedi i obrat, tj. ako kodna rijeˇc ima jedinice na mjestima i1 , i2 , ..., ik , a na ostalim mjestima nule, tada stupci pod brojevima i1 , i2 , ..., ik imaju zbroj jednak nuli. Dakle, zakljuˇcujemo da je minimalna teˇzina koda definiranog pomo´cu matrice izvodnice G, jednaka minimalnom broju stupaca od K ˇcija je suma jednaka nuli. Budu´ci da je kod definiran pomo´cu matrice izvodnice grupa znaˇci da je minimalna teˇzina koda jednaka minimalnoj udaljenosti kodnih rijeˇci, pa je vaˇzna kod pronalaˇzenja i ispravljanja pogreˇsaka kod kodova. Postoji jedinstveni teorem koji govori o uvjetima koje mora zadovoljavati matrica K da bi kod ispravljao barem jednu pogreˇsku.
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ˇsku. Dokaz. Dokaz napravite sami za vjeˇzbu. Primjer 6.8 Vratimo se primjeru 6.7 u kojem je kodiraju´ca funkcija E : R4 → R8 dana pomo´cu 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ˇzinu koda u ovom primjeru. Budu´ci da nema stupaca u kojima su same nule, kao ni jednakih stupaca, minimalna teˇzina je barem 3. Ispitajmo da li je mogu´ce zbrojiti modulo 2 bilo koja tri stupca tako da im suma bude jednoretˇcana nulmatrica. To je mogu´ce posti´ci, na primjer, zbrajanjem prvog, petog i sedmog stupca. Zakljuˇcujemo da je minimalna teˇzina u grupi kodova jednaka 3, pa je i minimalna udaljenost jednaka 3. Znaˇci da je op´cenito mogu´ce prona´ci pogreˇsku u dva bita i ispraviti je u jednom bitu. Zadatak 6.22 Neka je matrica izvodnica 1 0 0 1 G= 0 1 0 1 0 0 1 0
dana s 1 0 0 1 . 1 1
Ona prikazuje kodiraju´cu funkciju E : R3 → R6 . 1. Nadite E (011) . 2. Nadite kontrolnu matricu K. 3. Provjerite da li je kodna rijeˇc 101011 dobro prenesena? 4. Nadite minimalnu teˇzinu ove grupe kodova.
6.5
Prsteni i polja
Na danom skupu mogu´ce je definirati viˇse razliˇcitih operacija. Pri tome te operacije mogu, ali i ne moraju imati strukturu grupe. Tako se na skupu realnih brojeva moˇze osim operacije zbrajanja, definirati i operacija mnoˇzenja realnih brojeva. Izbacimo li nulu iz skupa realnih brojeva i operacija mnoˇzenja ima svojstva grupe. S druge strane definiramo li mnoˇzenje
276
6.5. PRSTENI I POLJA
na skupu cijelih brojeva, tada (Z\ {0} , ·) nije grupa, jer ne postoji inverzni element za mnoˇzenje u skupu cijelih brojeva. Inverzni element cijelog broja n bio bi n1 , a to op´cenito nije cijeli broj. Medutim (Z, ·) ima svojstvo zatvorenosti, asocijativnosti, a postoji i jedinica (neutralni element za mnoˇzenje). Takvu strukturu op´cenito zovemo prsten.
6.5.1
Prsten
U ovoj toˇcki ´cemo navesti formalnu definiciju prstena, a u sljede´coj najpoznatije primjere prstena. Joˇs jedan vaˇzniji primjer prstena (prsten polinoma) obradit ´cemo u posebnoj toˇcki na kraju ovog poglavlja. Definicija 6.9 Neka je S neprazan skup na kojem su definirane dvije binarne operacije ◦ i ×, koje zadovoljavaju sljede´ca svojstva: 1. (S, ◦) je komutativna grupa. 2. Operacija × ima svojstvo zatvorenosti, asocijativnosti, a postoji i jedinica (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ˇs i komutativna govorimo o komutativnom prstenu. ˇ Cesto se umjesto a × b piˇse ab, ali treba imati na umu da to moˇze oznaˇcavati bilo kakvu operaciju na bilo kojem skupu. Nadalje, neutralni element za operaciju ◦ ´cemo oznaˇcavati 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ˇzenja. 2. Skup kvadratnih matrica drugog reda, ˇciji su elementi cijeli brojevi uz operacije zbrajanja matrica i mnoˇzenja matrica je prsten. Primijetite da operacija mnoˇzenja matrica nije komutativna, pa ovo nije komutativni prsten. 3. Neka je Zm skup razliˇcitih klasa ekvivalencije s obzirom na relaciju kongruencije modulo m na Z. Prisjetimo se da su elementi od Zm podskupovi od Z. Na Zm su definirane operacije zbrajanja ⊕ i mnoˇzenja ⊗ na sljede´ci naˇcin: [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ˇzena svojstva. U prstenu P pojedini elementi mogu imati multiplikativni inverz tj. inverz s obzirom na operaciju ×. Ako element x ima inverz y tada vrijedi xy = 1 i yx = 1. Uobiˇcajena 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ˇzenja. Primjer 6.9 Nadite sve kvadratne matrice drugog reda, ˇciji 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ˇsenje matriˇcnih jednadˇzbi AA−1 = A−1 A = I, gdje je I jediniˇcna matrica. Iz linearne algebre znamo da je · ¸ 1 d −b −1 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 ∈ Z. Sljede´ c a su rjeˇ s enja mogu´ c a: a = d = ±1 i b = c = 0, b = c = ±1 ad−bc i a = d = 0. Dakle, sljede´ce 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ˇzenja za matrice iz prethodnog primjera.
· A1 A2 A3 A4 B1 B2 B3 B4
A1
A2
A3
A4
B1
Tablica 6.2
B2
B3
B4
278
6.5. PRSTENI I POLJA
Primijetite da matrice iz prethodnog zadatka ˇcine grupu. Ovakav zakljuˇcak vrijedi i op´cenito. Teorem 6.15 Skup svih multiplikativnih invertibilnih elemenata prstena P ˇcini grupu s obzirom na mnoˇzenje u P. Dokaz. Neka su x, y ∈ P , te x−1 i y −1 njihovi multiplikativni elementi. Znamo da je mnoˇzenje zatvoreno u prstenu, te da vrijedi asocijativnost i da postoji jedinica 1. Treba provjeriti da je operacija na ¡ −1zatvorena ¢ ¡ skupu ¢ −1svih −1 −1 invertibilnih elemenata prstena. Vrijedi (xy) y x = x yy x = xx−1 = 1, pa je y −1 x−1 inverz od xy. Zadatak 6.26 Pokaˇzite da je skup svih kvadratnih matrica reda n uz operacije zbrajanja i mnoˇzenja 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ˇzenja uoˇcavamo 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´cenitom sluˇcaju. Dakle, polje je skup opremljen s dvije operacije, koje imaju odredena algebarska svojstva, kao ˇsto je specificirano u sljede´coj definiciji. Definicija 6.10 Neka je S neprazan skup na kojem su definirane dvije binarne operacije ◦ i ×, koje zadovoljavaju sljede´ca svojstva: 1. (S, ◦) je komutativna grupa (nazivamo je aditivna grupa). 2. (S \{0}, ×) je komutativna grupa (nazivamo je multiplikativna grupa), pri ˇcemu je 0 neutralni element aditivne grupe. Dakle, vrijede sljede´ca 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 standardnog zbrajanja i mnoˇzenja. Budu´ci da u Z brojevi nemaju multiplikativne inverzne (u stvari, nijedan broj osim broja 1 nema multiplikativni inverz u Z), (Z, +, ·) nije polje. Dogovorno se, zbog jednostavnijeg zapisa, ˇcesto puta prva operacija (iz aditivne grupe) oznaˇcava sa +, a druga (iz multiplikativne grupe) sa ·. Zadatak 6.27 Dokaˇzite da su sljede´ca 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´civanje) 2. Ako je a · b = 0, onda je a = 0 ili b = 0. (nema djeljitelja nule) Pokaˇzite da prethodna svojstva vrijede u (Z, +, ·) . Pokaˇzite 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 ˇcinjenice 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ˇzenja matrica polje?
6.5.4
Primjeri polja
U ovoj ´cemo toˇcki nabrojiti neke primjere polja, a naglasak ´cemo staviti na polja koja se upotrebljavaju u informatici. Od ˇcitatelja se oˇcekuje da ispita da nabrojeni primjeri zadovoljavaju traˇzene aksiome. Op´cenito, u informatici su od posebnog interesa tzv. konaˇcna polja, tj. polja koja sadrˇze samo konaˇcan broj elementa. 1. Trivijalni primjer konaˇcnog polja je skup {0, 1}, uz zbrajanje i mnoˇzenje. 2. U diskretnoj matematici je posebno vaˇzno polje (Zp , ⊕, ⊗) , gdje je p prim broj, Zp = {0, 1, 2, ..., p − 1}, ⊕, ⊗ su operacije zbrajanja i mnoˇzenja modulo p . Da ne bi doˇslo do zabune o tome koliki je p koriste se sljede´ce oznake za zbrajanje i mnoˇzenje: +p , ·p . U svjetlu ovog primjera je prvi primjer specijalni sluˇcaj 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ˇcaju kad p nije prim broj nije ispunjen aksiom 2.a. iz definicije polja. Detalji se mogu proˇcitati u poglavlju o kongruencijama. U sluˇcaju kada m nije prost broj, (Zm , ⊕, ⊗) komutativni prsten, ali ne i integralna domena.
3. Neka je S2 (Z3 ) skup · kososimetriˇ ¸ cnih kvadratnih matrica drugog reda. a b Matrice su oblika , gdje su a, b ∈ Z. Uz standardno zbra−b a janje i mnoˇzenje 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ˇcimo skup svih polinoma s koeficijentima u R sa R [x] . Na skupu svih polinoma zadane su operacije zbrajanja i mnoˇzenja polinoma. Uz te operacije skup svih polinoma je prsten s komutativnim mnoˇzenjem. 5. Nekomutativno polje je tijelo kvaterniona. Kvaternione je u matematiku uveo W. R. Hamilton 1844. godine (ˇclanak [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ˇse o kvaternionima moˇzete proˇcitati u [11]. Kvaternioni se mogu zapisati u obliku uredenih ˇcetvorki, pa se njihova suma, odnosno mnoˇzenje skalarom, definira kao standardna suma, odnosno mnoˇzenje skalarom n-torki. Zadatak 6.29 Neka je m cijeli broj, ve´ci od 1. Pokaˇzite da su sljede´ce tvrdnje ekvivalentne: 1. m je prim broj. 2. Zm je integralna domena. 3. Zm je polje.
POGLAVLJE 6. ALGEBARSKE STRUKTURE
6.6
281
Vektorski prostor
Osnovni koncept linearne algebre je algebarska struktura vektorskog prostora. Promatra se skup vektora, s operacijama zbrajanja vektora i mnoˇzenja vektora skalarom. Pri tome pod pojmom vektora ne podrazumijevamo samo geometrijske vektore, nego sve one matematiˇcke objekte koji zadovoljavaju aksiome vektorskog prostora. Detaljni opis vektorskih, odnosno linearnih prostora moˇzete na´ci 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ˇzemo promatrati algebarsku strukturu F n ˇciji 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ˇzenje 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ˇzenje skalarom α s: α ¯ (a1 , a2 , ..., an ) = (α · a1 , α · a2 , ..., α · an ) . Sada je F n uz gornje operacije vektorski ili linearni prostor. Napiˇsimo sada op´cenitu definiciju vektorskog prostora. Definicija 6.11 Vektorski prostor (linearni prostor) V nad poljem F je svaka ˇcetvorka (V, F, ⊕, ¯) takva da vrijede sljede´ci uvjeti: 1. Skup V = {x, y, z, ...} , ˇcije elemente zovemo vektori, a V je nosilac vektorskog prostora V, 2. Skup F = {α, β, γ, ...}, ˇcije 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ˇzenje vektora skalarom. Pri tome trebaju biti zadovoljeni sljede´ci 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ˇsenja 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´ci da je determinanta sustava jednaka nuli, prema poznatom Roucheovom teoremu iz linearne algebre znamo da ovaj sustav ima i netrivijalna rjeˇsenja (rjeˇsenja razliˇcita od (0, 0, 0, 0)). Dakle, sustav ima beskonaˇcno mnogo rjeˇsenja. Rjeˇsavanjem sustava, primjerice Gaussovim postupkom eliminacije, dobivamo da su rjeˇsenja oblika (5a + b, 3a, b, a + 3b) , gdje su a, b ∈ R. Skup svih rjeˇsenja moˇzemo promatrati kao uredene ˇcetvorke elemenata danog oblika. Takve se uredene ˇcetvorke zbrajaju na standardni naˇcin, po komponentama, te mnoˇze skalarom tako da se svaka komponenta pomnoˇzi skalarom. Pokazuje se da rjeˇsenja ˇcine vektorski prostor. Budu´ci da op´cenito n-torke uz nabrojene operacije ˇcine vektorski prostor, treba samo provjeriti zatvorenost operacije zbrajanja, odnosno mnoˇzenja skalarom. Neka su (5a1 + b1 , 3a1 , b1 , a1 + 3b1 ) i (5a2 + b2 , 3a2 , b2 , a2 + 3b2 ) dvije ˇcetvorke rjeˇsenja. Zbrajanjem dobivamo ˇcetvorku ¡
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ˇsenja zadanog sustava. Za vjeˇzbu provjerite da mnoˇzenjem ˇcetvorke rjeˇsenja skalarom, opet dobijemo rjeˇsenje zadanog homogenog sustava! Zadatak 6.30 Dokaˇzite da je operacija zbrajanja n-torki rjeˇsenja homogenog sustava linearnih jednadˇzbi i op´cenito zatvorena operacija nad skupom svih rjeˇsenja. Najˇceˇs´ci primjeri polja nad kojima se definira vektorski prostor su polje realnih brojeva R i polje kompleksnih brojeva C. Radi jednostavnosti obiˇcno piˇsemo x + y umjesto x ⊕ y, te αx umjesto α ¯ x.
POGLAVLJE 6. ALGEBARSKE STRUKTURE
6.7
283
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ˇzina ravnine i prostora uz operacije zbrajanja vektora i mnoˇzenja vektora skalarom je vektorski prostor. Ovaj vektorski prostor ”pravih vektora” ujedno je bio motivacija za uvodenje apstraktnog pojma vektorskog prostora. 3. Skup svih polinoma s realnim ili kompleksnim koeficijentima je vektorski prostor. Viˇse podataka o tom primjeru na´ci ´cete u sljede´coj toˇcki ove knjige. 4. Skup svih n-torki elemenata polja F je vektorski prostor nad F uz sljede´ce operacije. Zbrajanje n-torki: (x1 , x2 , ...xn ) ⊕ (y1 , y2 , ...yn ) = (x1 + y1 , x2 + y2 , ...xn + yn ) . Mnoˇzenje 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 operacije zbrajanja n-torki, odnosno mnoˇzenja skalarom, je vektorski prostor, kojeg zovemo realni n-dimenzionalni koordinatni prostor. Dokaz potraˇzite u [7]. 6. Skup Mnm matrica tipa (n, m) je vektorski prostor uz operacije zbrajanja matrica i mnoˇzenja matrica skalarom. 7. Skup svih polinoma u jednoj varijabli uz operacije zbrajanja polinoma i mnoˇzenja 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ˇzenje 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 ˇsalje u nulvektor iz V .
284
6.8
6.8.
ALGEBARSKE STRUKTURE POLINOMA
Algebarske strukture polinoma
Polinomi predstavljaju vrlo vaˇznu klasu funkcija. Moˇzemo ih promatrati kao funkcije realne, ali i kompleksne varijable. Klasiˇcni 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ˇcaka polinoma. Danas se ˇcesto spominje ˇcinjenica da je naziv tog teorema pretenciozan, ali neosporna je njegova vaˇznost u razvoju algebre. Nadalje, polinomi su dobro opremljeni algebarskim operacijama, tako da ih moˇzemo promatrati u kontekstu razliˇcitih 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 koeficijentima ili kratko polinomima nad R. Skup svih polinoma jedne varijable f : R → R nad poljem realnih brojeva oznaˇcavamo 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ˇcavamo s C [x]. U oba skupa mogu´ce je definirati zbrajanje i mnoˇzenje polinoma na naˇcin kako definiramo zbrajanje i mnoˇzenje 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 monome jednakog stupnja. To drugim rijeˇcima znaˇci da stupanj sume ne prelazi stupnjeve polinoma koje zbrajamo. Polinome mnoˇzimo po formuli (f g) (x) = f (x) g (x) , pa za stupanj umnoˇska vrijedi st (f g) = st (f ) + st (g) . Zadatak 6.31 Provjerite da vrijede sljede´ce tvrdnje: 1. (R [x] , +) i (C [x] , +) su komutativne grupe.
POGLAVLJE 6. ALGEBARSKE STRUKTURE
285
2. Mnoˇzenje polinoma je zatvorena operacija nad poljem R (odnosno C), vrijedi asocijativnost i komutativnost. Postoji jedinica za mnoˇzenje polinoma. Multiplikativni inverz postoji samo za polinome stupnja nula. 3. Vrijede obje distributivnosti mnoˇzenja prema zbrajanju i zbrajanja prema mnoˇzenju. 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ˇze 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ˇzemo definirati i nad nekim drugim poljem F , te takoder do´ci do strukture komutativnog prstena. Evo jednog primjera: Primjer 6.11 Izraˇcunajmo zbroj i umnoˇzak polinoma x2 + 4x + 5 i 4x2 + x + 3, definiranih nad poljem Z7 . Raˇ ¡ 2cunamo: ¢ ¡ 2 ¢ 2 x + 4x + 5 + 4x + x + 3 ¡ 2 ¢¡ 2 ¢ = 45x + 35x + 12 x + 4x + 5 4x + x + 3 = 4x + 3x + 6x + 3x + 1. Na kraju, spomenimo joˇs jednu upotrebu polinoma. Za kod C kaˇzemo da je cikliˇcki ako je on linearan i ako vrijedi: a0 a1 . . . an−1 ∈ C ⇒ an−1 a0 a1 . . . an−2 ∈ C. Osnova algebarske manipulacije cikliˇckih kodova je korespondencija izmedu kljuˇcnih rijeˇci a0 a1 . . . an−1 iz Rn i polinoma a(x) = a0 + a1 x + . . . + an−1 xn−1 i Z[x]. Viˇse o cikliˇckim kodovima i njihovu znaˇcenju, kao i povezanosti s polinomima, moˇzete proˇcitati u [1].
6.8.2
Vektorski prostor polinoma
Promatramo skup svih polinoma u jednoj varijabli, iz polja C, odnosno R. U prethodnoj toˇcki smo definirali operaciju zbrajanja polinoma i utvrdili da polinomi zajedno s operacijom zbrajanja polinoma tvore komutativnu grupu (aditivna grupa polinoma). Nadalje, definiramo operaciju mnoˇzenja polinoma skalarom, tj. elementima iz polja C, odnosno R. Pri tome,
286
6.9. ZADACI
rezultiraju´ci polinom dobijemo tako da svaki koefcijent zadanog polinoma pomnoˇzimo danim skalarom. Skup Pn svih polinoma stupnja manjeg ili jednakog n, s realnim ili kompleksnim koeficijentima, je vektorski prostor, koji zovemo vektorski prostor polinoma. Viˇse o toj temi moˇzete na´ci u [7]. Primijetimo da skup svih polinoma stupnja n, nema strukturu vektorskog prostora, jer suma dva polinoma n-tog stupnja moˇze biti manjeg stupnja od n. Na primjer, ¡ 3 ¢ ¡ ¢ 2x − x + 1 + −2x3 + 3x2 + 2x − 2 = 3x2 + x − 1. Polinome moˇzemo 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ˇzemo govoriti na mnogo razliˇcitih naˇcina. Polinomi se obiˇcno uvode kao funkcije (jedne ili viˇse varijabli), da bi se u naprednijim stupnjevima o njima govorilo kao o vektorskim prostorima i prstenima. Vidjeli smo takoder da ih se moˇze 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ˇcne 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ˇcitih binarnih operacija moˇzemo definirati na tom skupu?
POGLAVLJE 6. ALGEBARSKE STRUKTURE
287
(b) Napiˇsite 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ˇzenje u Z6 . 5. Napiˇsite Cayleyevu tablicu mnoˇzenja u skupu kompleksnih brojeva {1, −1, i, −i} . Da li je ta struktura grupa? Ako jest, da li je cikliˇcka? 6. Neka su a, b elementi konaˇcne grupe G. Pokaˇzite da elementi a i ba−1 b imaju isti red. 7. Promatrajte skup A2 antisimetriˇcnih matrica drugog reda nad poljem F. Pokaˇzite da vrijedi: (a) A2 je prsten s obzirom na standardne operacije s matricama. (b) Mnoˇzenje 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´ce Cayleyeve tablice i dokaˇzite da vrijede sljede´ce tvrdnje uz pretpostavku da su sve izomorfne grupe medusobno jednake. (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 s 1 G= 0 0
kodiraju´ce funkcije E : R3 → R7 dana 0 0 1 0 1 0 1 0 0 1 1 0 . 0 1 1 1 0 1
i. Izraˇcunajte E (110) . ii. Nadite kontrolnu matricu, koja pripada matrici G. (b) Pokaˇzite 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ˇsaka mogu´ce detektirati, a koliko ispraviti u ovom skupu? 11. Neka je matrica izvodnica Hammingovog 1 0 0 0 0 0 1 0 0 1 G= 0 0 1 0 1 0 0 0 1 1
koda dana sa 1 1 0 1 . 1 0 1 1
Ona prikazuje kodiraju´cu funkciju E : R4 → R7 . Dokaˇzite da vrijedi sljede´ca tvrdnja: Ako je x 6= y tada se xG i yG razlikuju u najmanje 3 koordinate. 12. Neka je kodiraju´ca 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´cih trojki. (a) Nadite kontrolnu matricu K. (b) Nadite minimalnu teˇzinu ove grupe kodova. (c) Koliko greˇsaka ovaj kod moˇze otkriti, odnosno ispraviti? 13. Izraˇcunajte zbroj i umnoˇzak 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ˇzite da u Z7 [x] vrijedi (x + 1)7 = x7 + 1.
6.10
Projekti
1. Promatramo jednakostraniˇcni trokut i skup svih transformacija koje preslikavaju taj trokut u njega samog do na poredak vrhova. Taj skup zovemo skup simetrija jednakostraniˇcnog trokuta. U simetrije ulaze i rotacije, dakle sve izometrije trokuta. Pronadite sve takve simetrije i pokaˇzite da one uz operaciju kompozicije preslikavanja ˇcine grupu. Ovu strukturu zovemo diedralna 4-grupa. Napiˇsite Cayleyevu tablicu
POGLAVLJE 6. ALGEBARSKE STRUKTURE
289
za tu grupu. Da li je ta grupa komutativna? Sada promatramo pravokutnik (koji nije kvadrat) i njegove simetrije. Pronadite 4 simetrije pravokutnika i napiˇsite Cayleyevu tablicu za simetrije pravokutnika uz operaciju kompozicije. Pokaˇzite da je ova struktura takoder grupa. Ovu grupu zovemo Kleinova 4-grupa. 2. Opiˇsite 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ˇsani Hammingov kod, te op´ci Reed-Solomonov kod. 3. Opiˇsite kvaternione, njihova svojstva, operacije na njima, te reprezentaciju preko kvadratnih matrica drugog reda. Koje algebarske strukture tvore kvaternioni. Koji brojevi predstavljaju proˇsirenje kvaterniona? Opiˇsite primjene kvaterniona (npr. u geometriji). 4. Definirajte vektorski prostor nad poljem {0, 1} pridruˇzen grafu. Promatrajte 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ˇzenja skalarom. (Uputa: Upotrijebite referencu [4]) 5. Geometrija u kojoj dva pravca imaju uvijek jednu toˇcku presjeka zovemo projektivna geometrija. Prouˇcite konaˇcne verzije projektivne geometrije, njihove odnose i primjenu u teoriji dizajna. Osnovne definicije, teoreme i primjene napiˇsite u obliku eseja od 10 stranica. 6. Opiˇsite cikliˇcke kodove, njihovu klasifikaciju i svojstva. Objasnite njihovu 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.: Varaˇzdin, 2004
Matematika za informatiˇcare,TIVA-FOI,
[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 Academy, 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´c, K.: Linearna algebra, PMF-MO, Zagreb, 1990 [7] Lonˇcar, I.: Matematiˇcke metode, odabrana poglavlja - I. dio, FOI, Varaˇzdin 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ˇ cka teorija raˇ cunalstva Zadivljuju´ce je kako nam je potrebno malo da bismo imali sve. Christos Papadimitriou (o Turingovu stroju) Ve´c smo u poglavlju 4.1 govorili o algoritmu, kao o intuitivnom pojmu. Takoder smo govorili o tome kako u matematici postoji teˇznja da se pojam algoritma formalizira. To je dovelo do interesantnih matematiˇckih struktura koje ´cemo opisati u ovom poglavlju. Iako nije dokazano da ijedna formalizacija dobro opisuje pojam algoritma, postoji niz zanimljivih formalizacija, za koje se, prema Church-Turingovoj tezi, vjeruje da dobro formaliziraju 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 ´ce se poglavlje temeljiti upravo na automatima, ukljuˇcuju´ci i Turingove strojeve. ˇ se tiˇce znaˇcaja ovog poglavlja za ovu knjigu, Slika 7.1: Alan Mathison Sto ono je viˇsestruko. Kao prvo, ovo poglavlje, gledano Turing kao dio raˇcunalske znanosti, ˇcini vrlo vaˇzan teorijski kontekst opisa jezika, algoritama, sustava itd. S druge strane, ovo poglavlje pokazuje vrlo vaˇzno podruˇcje raˇcunalske znanosti gdje se koristi gotovo cijelo gradivo opisano u ovoj knjizi. Jezici, automati, gramatike - sve su to vrlo interesantne matematiˇcke 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ˇzenost, a posebno klase sloˇzenosti 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 ´cemo na poˇcetku ovog poglavlja obraditi pojam jezika, te gramatika pomo´cu kojih se opisuju jezici. Definicija 7.1 Abeceda ili alfabet Σ je konaˇcan skup znakova. Definicija 7.2 Rijeˇc iz alfabeta Σ je konaˇcan niz od 0 ili viˇse znakova iz alfabeta Σ. Rijeˇc s 0 znakova se oznaˇcava sa ε i zove se prazna rijeˇc. Broj znakova u rijeˇci w naziva se duljina rijeˇci i oznaˇcava se |w|. Neka je Σ abeceda. Onda se s Σn , n ≥ 0 oznaˇcava skup svih rijeˇci abecede Σ koje imaju duljinu n. Tada se skup svih rijeˇci nad abecedom Σ oznaˇcava sa Σ∗ =
X
Σn .
n≥0
Sliˇcno se moˇze definirati i skup svih nepraznih rijeˇci nad abecedom Σ kao Σ+ =
X
Σn .
n≥1
Ponekad je rijeˇci dobro gledati kao diskretne funkcije. Svaka se rijeˇc w ∈ Σ∗ moˇze definirati kao w : {1, . . . , |w|} → Σ, pri ˇcemu w(i) predstavlja i-to slovo rijeˇci w. Kaˇzemo da se znak σ pojavljuje u rijeˇci w ako postoji j ∈ {1, . . . , |w|} takav da je w(j) = σ. Definicija 7.3 Neka je Σ abeceda i neka su v, w ∈ Σ∗ rijeˇci. Tada definiramo konkatenaciju rijeˇci v i w kao rijeˇc 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ˇc w ∈ Σ∗ vrijedi wε = w. Isto je tako jasno da je konkatenacija asocijativna operacija, tj. da vrijedi u(vw) = (uv)w = uvw za proizvoljne rijeˇci u, v, w ∈ Σ∗ .
ˇ ˇ POGLAVLJE 7. MATEMATICKA TEORIJA RACUNALSTVA
295
Definicija 7.4 Neka je Σ abeceda i v, w ∈ Σ∗ rijeˇci. Kaˇzemo da je rijeˇc v podrijeˇc rijeˇci w ako postoje rijeˇci u, x ∈ Σ∗ takve da je w = uvx. Ako je u = ε, tj. ako je w = vx, onda se rijeˇc x zove prefiks rijeˇci w. Ako je x = ε, tj. ako je w = uv, onda se rijeˇc v naziva sufiks rijeˇci w. Neka je dana rijeˇc w ∈ Σ∗ nad abecedom Σ. Tada se definira • w0 = ε, • wk = wk−1 w. Sada moˇzemo prije´ci na prvu vaˇznu definiciju u ovom poglavlju – definiciju jezika: Definicija 7.5 (Jezik) Jezik L ⊆ Σ∗ nad abecedom Σ je svaki skup rijeˇci iz Σ. Primjer 7.1 Neka je dana abeceda Σ = {0, 1}. Moˇzemo definirati jezik koji se sastoji od binarnih brojeva, koji nemaju vode´cih nula kao: L = {w : w = 1v, v ∈ Σ∗ }. Primjer 7.2 Definirajmo sada jezik nad abecedom Σ = {a, b} koji se sastoji od rijeˇci koje poˇcinju s konaˇcnim brojem a-ova, iza ˇcega 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 ˇcesto imaju sloˇzeniju strukturu, koju bi bilo priliˇcno nezgrapno opisivati na gornji naˇcin.
7.1.1
Regularni izrazi
Jedan od vaˇznijih naˇcina prikaza jezika jesu regularni izrazi. Regularni izrazi, osim u teoriji raˇcunalstva, igraju vaˇznu ulogu i u stvarnim aplikacijama na raˇcunalu. Regularni se izrazi koriste kod pretraˇzivanja sa specijalnim znakovima (wildcard), kako u tekstovima, tako i u stablima direktorija operacijskog sustava. UNIX operacijski sustavi u potpunosti podrˇzavaju regularne izraze kao naˇcin konciznog prikazivanja obrazaca za pretraˇzivanje nizova znakova. Definicija 7.6 Neka je Σ abeceda, onda su sljede´ci 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´ci 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ˇzuju izraz, koji se sastoji od samo jednog znaka. Tako bismo regularne izraze iz prethodnog primjera mogli prikazati na sljede´ci naˇcin: • 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´cu regularnih izraza. Znaˇcenje regularnog izraza je vrlo lagano objasniti. Regularni izrazi zapravo predstavljaju obrasce za izgradnju rijeˇci jezika. Specijalni znakovi regularnih izraza imaju jednostavna znaˇcenja. Znak ∗ predstavlja 0 ili viˇse ponavljanja izraza koji se nalazi ispred njega. To znaˇci da se na mjestu gdje se u regularnom izrazu nalazi izraz (w)∗, u rijeˇci jezika kojeg regularni izraz opisuje moˇze se na´ci podrijeˇc koju opisuje izraz w ponovljena 0 ili viˇse puta. Znak | predstavlja disjunkciju. Na mjestu gdje se u regularnom izrazu nalazi izraz (v)|(w), u rijeˇci jezika koji regularni izraz opisuje moˇze se na´ci ili podrijeˇc koja je definirana izrazom v ili podrijeˇc koja je definirana izrazom w. Primjer 7.3 Izvedimo neke rijeˇci koje se nalaze u jezicima opisanim regularnim izrazima iz prethodnog primjera: • Prvi izraz definira jezik koji se sastoji od rijeˇci koje na poˇcetku imaju proizvoljan broj slova a, nakon ˇcega slijedi proizvoljna rijeˇc koja se moˇze sastaviti od slova b i c. Dakle sljede´ce rijeˇci su u tom jeziku: ε
ˇ ˇ POGLAVLJE 7. MATEMATICKA TEORIJA RACUNALSTVA
297
b aaaa aaabcbbbcbcb • Drugi izraz definira sve rijeˇci koje se mogu sastaviti od slova a, b i c. • Ovaj izraz definira rijeˇci koje zapoˇcinju slovom a, nakon ˇcega ide proizvoljan broj slova b, pa proizvoljan broj slova a i na kraju jedno slovo b. Taj jezik sadrˇzi sljede´ce rijeˇci: ab abbbb aaaaab abbbbaab Dakle, regularni izrazi predstavljaju generativne definicije jezika. Primjer 7.4 Napiˇsimo regularni izraz koji ´ce opisivati jezik koji se sastoji od rijeˇci nad abecedom Σ = {a, b, c}. Rijeˇci su sastavljene tako da poˇcinju s proizvoljnim brojem b-ova iza kojih slijedi proizvoljan broj c-ova. Ove su rijeˇci povezane medusobno slovom a. Npr., sljede´ce su rijeˇci 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´cih rijeˇci sastavljenih od slova a, b i c. Zadatak za ˇcitatelja je da to dokaˇze. U regularnim se izrazima ˇcesto definira joˇs jedan znak: znak +. On se definira na sljede´ci naˇcin: w+ ≡ ww ∗ . Drugim rijeˇcima, w+ predstavlja jedno ili viˇse ponavljanja rijeˇci w. Nadalje, moˇzemo definirati potenciju rijeˇci kao: n×
z }| { wn ≡ ww . . . w . Sada moˇzemo napisati joˇs 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 ´cemo kasnije vidjeti, gramatikama se moˇze definirati ˇsira klasa jezika negoli regularnim izrazima. Definicija 7.7 Kontekstno slobodna gramatika ili samo gramatika jest ˇcetvorka G = hV, Σ, R, Si pri ˇcemu vrijedi da je: • V abeceda, • Σ ⊆ V skup terminala, • R ⊆ (V \Σ) × V ∗ skup pravila, • S poˇcetni simbol. Primjer 7.6 Napravimo gramatiku koja ´ce definirati jezik nad abecedom {a, b} i sastoji se od rijeˇci koje imaju prvo i posljednje slovo a. V = {a, b, S, A}, Σ = {a, b}, S je startni simbol, a R se definira na sljede´ci naˇcin: S → aA A → aA A → bA A→a Primjer 7.7 Napravimo gramatiku koja ´ce definirati jezik nad abecedom Σ = {a, b} te koji se sastoji od rijeˇci 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. MATEMATICKA TEORIJA RACUNALSTVA
7.2
299
Konaˇ cni automati
U ovom poglavlju obradit ´cemo konaˇcne automate koji predstavljaju joˇs jedan naˇcin reprezentacije jezika. Konaˇcni automati su pojednostavljeni modeli raˇcunala. Sastoje se od procesorske jedinice, koja moˇze obradivati ulaze, koji se, recimo, nalaze na traci. Konaˇcni se automat moˇze prikazati sljede´com slikom: a b b a a a b
Slika 7.2 Pri tome se na traci nalaze simboli abecede konaˇcnog automata. Konaˇcni automat ˇcita zapis na traci s lijeva na desno, od njegova poˇcetka do kraja. Automat ne moˇze mijenjati zapis na traci, niti se moˇze vra´cati na ve´c proˇcitan dio zapisa. Automat u sebi sadrˇzi program koji se sastoji od konaˇcnog skupa stanja, od kojih je jedno poˇcetno i funkcije prijelaza iz stanja u stanje. Kada se automat nalazi u zavrˇsnom stanju, ˇzaruljica ´ce zasvijetliti. Kada automat proˇcita cijeli zapis, on stane. Ako je stao u zavrˇsnom stanju, ˇzaruljica ´ce svijetliti, indiciraju´ci da je automat prepoznao rijeˇc na traci kao rijeˇc jezika o kojem odluˇcuje. Ako automat stane u stanju koje nije zavrˇsno, onda ˇzaruljica ne´ce svijetliti, i tako ´ce se znati da rijeˇc ne pripada jeziku danog automata. Konaˇcni automati imaju veliku ulogu u leksiˇckoj analizi kod prevodenja programskih jezika, kod editora teksta, kod operacijskih sustava za evaluaciju regularnih izraza itd. Konaˇcni se automat moˇze matematiˇcki definirati na sljede´ci naˇcin: Definicija 7.8 Deterministiˇcki konaˇcni automat (DKA) ili samo konaˇcni automat je petorka M = hΣ, K, S, F, δi, pri ˇcemu je: • Σ konaˇcna abeceda automata, • K konaˇcan skup stanja automata,
ˇ 7.2. KONACNI AUTOMATI
300 • S ∈ K poˇcetno stanje, • F ⊆ K skup zavrˇsnih stanja automata, • δ : K × Σ → K funkcija prijelaza.
Neka je w : σ 1 . . . σ n ∈ Σ∗ rijeˇc nad abecedom Σ. Tada konaˇcni automat M nad abecedom Σ vrˇsi niz koraka na toj rijeˇci; (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ˇcan automat za jezike iz primjera 7.5 1. Σ = {a, b, c} K = {q0 , q1 , q2 , q3 , q4 } S = q0 F = {q3 } Funkciju δ definiramo sljede´com tablicom:
q0 q1 q2 q3 q4
a q1 q1 q4 q4 q4
b q4 q2 q2 q4 q4
c q4 q3 q3 q3 q4
Tablica 7.1
Konaˇcni se automati najˇceˇs´ce prikazuju usmjerenim matematiˇckim grafom, pa se ovaj automat moˇze prikazati sljede´cim grafom:
ˇ ˇ POGLAVLJE 7. MATEMATICKA TEORIJA RACUNALSTVA
301
c c
q3
c q1
a
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
q0 q1 q2 q3 q4
a q1 q1 q1 q4 q4
b q4 q2 q4 q4 q4
Tablica 7.2
odnosno, usmjerenim grafom prikazano
c q4 q4 q3 q4 q4
ˇ 7.2. KONACNI AUTOMATI
302 a,b,c
q3
c
b a,b,c
q4
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´com tablicom
q0 q1 q2 q3 q4
a q1 q2 q3 q5 q1
b q5 q5 q5 q4 q5
Table 7.3 Ovaj se konaˇcni automat moˇze prikazati sljede´cim grafom
ˇ ˇ POGLAVLJE 7. MATEMATICKA TEORIJA RACUNALSTVA
303
a
a
q0 b
a
q1
a
q2
b
b
q3 a
b
q4 b
q5
a,b
Slika 7.5 Definirajmo sada nedeterministiˇcki konaˇcni automat. Definicija 7.9 Nedeterministiˇcki konaˇcni automat (NKA) je petorka M = hΣ, K, S, F, δi, pri ˇcemu je • Σ konaˇcna abeceda automata, • K konaˇcan skup stanja automata, • S ∈ K poˇcetno stanje, • F ⊆ K skup zavrˇsnih stanja automata, • δ : K × Σ × K relacija prijelaza. Razlika izmedu DKA i NKA je u tome ˇsto je kod DKA δ funkcija, dok je kod N KA δ relacija. Drugim rijeˇcima, kod deterministiˇckog je konaˇcnog automata, stanjem u kojem se automat nalazi i proˇcitanim znakom s trake, jednoznaˇcno odredeno stanje u koje ´ce automat prije´ci, dok kod NKA nije tako. Kod NKA za isto stanje i ulazni znak automat ponekad moˇze prije´ci u razliˇcita stanja. Ova relaksacija dovodi, medutim do raznih nedoumica. Kako tretirati mogu´cnost izbora? Ho´ce li automat stanje izabrati nasumce, ne vode´ci raˇcuna o rjeˇsenju ili ´ce on upravo izabrati onaj izbor koji ´ce dovesti do rjeˇsenja. To su dvije vrste determinizma, od kojih se prvi naziva davolski ili ”don’t care” nedeterminizam, a drugi andeoski ili ”don’t know” nedeterminizam. Prvi je nedeterminizam vrlo lako izvesti, no on ne predstavlja pravi nedeterminizam, koji bi dao ve´ce mogu´cnosti programu, ve´c predstavlja randomizaciju algoritma. Druga je vrsta nedeterminizma ona koja
ˇ 7.2. KONACNI AUTOMATI
304
se podrazumijeva kada se govori o nedeterminizmu. Zaista, pretpostavlja se da nedeterministiˇcki automat moˇze, bez ikakve provjere u svakom sluˇcaju napraviti onaj izbor koji ´ce ga dovesti do toˇcnog rjeˇsenja i izbje´ci sve izbore koji bi ga doveli do pogreˇsnog. Ovaj se nedeterminizam ˇcesto ilustrira i tako da se kaˇze da se automat u trenutku nedeterministiˇckog izbora kopira u onoliko kopija koliko je mogu´cnosti izbora, te da svaka kopija napravi jedan od mogu´cih izbora, a ostatak se rijeˇci procesira na svima njima paralelno. Jasno je da stvarni automati ne mogu imati mo´c kopiranja samog sebe, ali isto tako je jasno da oni ne mogu imati ni mogu´cnost nedeterministiˇckog izbora. Stoga je nedeterminizam u potpunosti teorijski koncept koji nije mogu´ce praktiˇcno izvesti. No, on se svejedno koristi u teoriji raˇcunalstva jer je vrlo bitan u klasifikaciji problema. Primjer 7.9 Napravimo NKA koji odluˇcuje o jeziku nad abecedom Σ = {a, b}, koji se sastoji od rijeˇci koje na poˇcetku imaju proizvoljan broj a-ova, nakon ˇcega slijedi paran broj b-ova, iza ˇcega se nalazi toˇcno jedna pojava slova a. Konaˇcni automat, koji odluˇcuje o gore opisanom jeziku, dan je sljede´cim grafom:
b
a
q1
q0
a
b
b
q2
b
a
q1 b
q2 a,b a,b
a,b q1
Slika 7.6 Sljede´ce ˇsto ´cemo definirati jest proˇsirenje konaˇcnog automata: deterministiˇcki konaˇcni automat s ε prijelazima. On se definira na sljede´ci naˇcin:
ˇ ˇ POGLAVLJE 7. MATEMATICKA TEORIJA RACUNALSTVA
305
Definicija 7.10 Nedeterministiˇcki konaˇcni automat s ε prijelazima (u oznaci εNKA) je petorka M = hΣ, K, S, F, δi, pri ˇcemu je • Σ konaˇcna abeceda automata, • K konaˇcan skup stanja automata, • S ∈ K poˇcetno stanje, • F ⊆ K skup zavrˇsnih stanja automata, • δ : K × (Σ ∪ {ε}) × K relacija prijelaza. Dakle, razlika u definicijama NKA i εNKA je minimalna, u definiciji funkcije δ, i to samo u tome ˇsto je dopuˇsteno da njen drugi argument, osim slova abecede Σ bude i ε. Drugim rijeˇcima, osim standardnih prijelaza dozvoljeni su i prijelazi iz stanja u stanje bez ˇcitanja trake. Ovakvo svojstvo nema smisla definirati nad deterministiˇckim automatom jer bi kod DKA sva stanja povezana ε prijelazima bila medusobno ekvivalentna, da bi se mogla saˇzeti u jedno jedino stanje, ˇcime bi se trivijalno eliminirali svi ε prijelazi. Prirodno se postavlja pitanje o kojoj klasi jezika mogu odluˇcivati konaˇcni automati? Pokazuje se da vrijedi sljede´ci teorem: Teorem 7.1 Za jezik L moˇze se napraviti deterministiˇcki konaˇcni automat koji odluˇcuje o L ako i samo ako je L regularan jezik. Dokaz ovog teorema ide preko uspostavljanja veza svih triju uvedenih konaˇcnih automata. Dokazuje se sljede´ci niz ekvivalencija: DKA ⇔ N KA ⇔ εDKA ⇔ RL Medutim, ovaj niz ekvivalencija ne´cemo dokazivati jer on prelazi okvire ove knjige. Dokazi ovih ekvivalencija mogu se na´ci u [3]. No, postoji joˇs jedno zanimljivo pitanje. Postoje li jezici koji nisu regularni? Drugim rijeˇcima, postoji li neki jezik koji nije u u ˇsrafiranom dijelu, nego je u bijelom dijelu na sljede´coj slici?
L
RL
Slika 7.7
306
ˇ 7.2. KONACNI AUTOMATI
Na ovo vaˇzno pitanje odgovorit ´cemo konstruiranjem jezika koji nisu regularni. U dokazivanju da neki jezik nije regularan znaˇcajnu ulogu ima sljede´ci vrlo poznati teorem: Teorem 7.2 (Lema o pumpanju) Neka je L regularan jezik. Tada postoje 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ˇcan regularan jezik, za njega postoji DKA koji o njemu odluˇcuje. Pretpostavimo da imamo DKA M s n stanja koji odluˇcuje o jeziku L. No, kako je L beskonaˇcan, L mora sadrˇzavati nizove znakova ˇcija je duljina ve´ca od n. Neka je w : σ 1 σ 2 . . . σ n ∈ L i neka je |w| > n. Ako se rijeˇc w obradi konaˇcnim automatom M , on ´ce izvrˇsiti sljede´ci niz pretvorbi: (q0 , w) `∗M (ε, qf (|w|) ), pri ˇcemu je qf (|w|) ∈ F . Kako je |w| > n, po Dirichletovom principu, mora postojati stanje qi kroz koje je automat proˇsao barem dva puta obraduju´ci rijeˇc w, tj. postoje 0 ≤ j < k ≤ |w| takvi da je qf (j) = qf (k) . To znaˇci da niz znakova σ j . . . σ k provodi automat iz stanja qf (j) u stanje qf (j) . No, onda niz znakova σ j . . . σ k moˇze biti maknut iz rijeˇci w, a automat ´ce joˇs uvijek zavrˇsiti u istom, zavrˇsnom stanju. Dakle, automat ´ce prepoznati i rijeˇc xz. S druge strane, dodamo li iza niza znakova σ j . . . σ k isti taj niz znakova joˇs n−1 puta, nakon procesiranja svih n pojava podstringa σ j . . . σ k automat ´ce se joˇs uvijek nalaziti u stanju qf (j) , pa ´ce do kraja rijeˇci xy n z automat zavrˇsiti u stanju qf (|w|) , koje je zavrˇsno, pa ´ce automat prepoznavati i rijeˇc xy n z. Sada ´cemo dati nekoliko primjera jezika koji nisu regularni. Primjer 7.10 Neka je dan jezik L = {an : n je prost broj}. Dokaˇzimo da jezik L nije regularan. Neka je xyz ∈ L. Tada, prema lemi o pumpanju i rijeˇc 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), ˇsto oˇcito nije prost broj, a to se kosi s lemom o pumpanju, pa zakljuˇcujemo da L nije regularan. Primjer 7.11 Neka je dan jezik L = {an bn : n ∈ N0 }. Dokaˇzimo da L nije regularan. Neka je xyz ∈ L. Imamo tri mogu´ca sluˇcaja: 1. Neka je y : ak . U tom sluˇcaju ´ce xy n z za n 6= 1 imati razliˇcit broj a-ova i b-ova, pa ne´ce biti element od L. 2. Sluˇcaj kada je y : bk jednak je kao i prethodni sluˇcaj.
ˇ ˇ POGLAVLJE 7. MATEMATICKA TEORIJA RACUNALSTVA
307
3. Neka je y : ak bl . No, tada ´ce za n > 1 rijeˇc xy n z imati pojavu slova b kojoj slijedi pojava slova a, a to nije dozvoljeno u jeziku L. Budu´ci da nije zadovoljena lema o pumpanju, jezik L nije regularan.
7.3
Potisni automati
Druga vaˇzna klasa automata jesu potisni automati ili stog automati. To su automati koji imaju lokalnu memoriju organiziranu u stog. Sljede´ca 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ˇcitanom znaku s trake, ali i o simbolu koji se nalazi na vrhu stoga. Definicija 7.11 Deterministiˇcki potisni automat s ε prijelazima je sedmorka M = hK, Σ, Γ, S, ⊥, F, δi, pri ˇcemu je • K konaˇcan skup stanja automata, • Σ ulazna abeceda, • Γ abeceda stoga, • S ∈ Σ poˇcetno stanje, • ⊥ ∈ Γ poˇcetni simbol stoga, • F ⊆ K skup zavrˇsnih 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ˇcki potisni automat s ε prijelazima. Definicija 7.12 Nedeterministiˇcki potisni automat ε prijelazima ili samo potisni automat je sedmorka M = hK, Σ, Γ, S, ⊥, F, δi, pri ˇcemu je: • K je konaˇcan skup stanja automata, • Σ ulazna abeceda, • Γ abeceda stoga, • S ∈ Σ poˇcetno stanje, • ⊥ ∈ Γ poˇcetni simbol stoga, • F ⊆ K skup zavrˇsnih 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´com tablicom:
(q0 , ⊥) (q0 , 0) (q1 , ⊥) (q1 , 0)
a (q0 , 0) (q0 , 00) (q2 , ⊥) (q2 , 0)
b (q2 , ⊥) (q1 , ε) (q2 , ⊥) (q1 , ε)
ε
(q2 , 0)
Tablica 7.4 Onda taj PA odluˇcuje o jeziku L. Ovaj primjer nam pokazuje jedan od naˇcina kako potisni automat moˇze prepoznavati neki jezik. Ova vrsta prepoznavanja naziva se odluˇcivanje zavrˇsnim stanjem. Kod ove vrste prepoznavanja rijeˇc je prihva´cena ako je nakon ˇcitanja rijeˇci (i nakon izvrˇsenja ε prijelaza) automat zavrˇsio u zavrˇsnom stanju. Postoji, medutim, joˇs jedna vrsta prepoznavanja jezika koja se moˇze definirati za potisni automat - odluˇcivanje praznim stogom. Kod ove vrste prepoznavanja nije vaˇzno u kojem je automat stanju stao, ve´c je vaˇzno da je kod zaustavljanja stog automata prazan. Stoga se kod PA
ˇ ˇ POGLAVLJE 7. MATEMATICKA TEORIJA RACUNALSTVA
309
koji prepoznaje praznim stogom standardno stavlja F = ∅. Sljede´ci primjer daje deterministiˇcki 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´cu definiciju:
(q0 , ⊥) (q0 , 0) (q1 , ⊥) (q1 , 0)
a (q0 , 0) (q0 , 00) (q2 , ⊥) (q2 , 0)
b (q2 , ⊥) (q1 , ε) (q2 , ⊥) (q1 , ε)
ε
Tablica 7.5 Upravo opisano saˇzeto je u sljede´coj definiciji: Definicija 7.13 Neka je L jezik. Kaˇzemo da potisni automat M1 odluˇcuje zavrˇsnim stanjem o jeziku L i piˇsemo L(M1 ), ako automat nakon procesiranja svake rijeˇci iz jezika L staje u zavrˇsnom stanju. Kaˇzemo da potisni automat M2 odluˇcuje praznim stogom o jeziku L i piˇsemo L(M1 ), ako je stog automata nakon procesiranja svake rijeˇci iz jezika L prazan. Sada imamo sljede´ci, vrlo zanimljiv teorem: Teorem 7.3 Neka je L jezik. Za jezik L postoji deterministiˇcki potisni automat M1 takav da je L = L(M1 ) ako i samo ako postoji deterministiˇcki potisni automat M2 takav da je L = N (M2 ). Dokaz. Neka je M1 PA koji odluˇcuje o jeziku L zavrˇsnim stanjem. ˇ Zelimo napraviti PA M2 koji odluˇcuje 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ˇsnom stanju. No, isto tako je vaˇzno da osiguramo da PA M2 ne isprazni sluˇcajno stog kada mi to ne ˇzelimo, tj. kada M1 nije stao u zavrˇsnom stanju. Kako bismo onemogu´cili ovo drugo, abecedu stoga PA M2 proˇsirit ´cemo jednim simbolom u odnosu na abecedu M1 . Recimo da je to simbol ⊥1 . Na samom poˇcetku rada PA M2 osigurat ´cemo da on zapiˇse na stog znak ⊥2 , ˇcime ´cemo kontrolirati da stog ne postane prazan, ve´c 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ˇcuje zavrˇsnim stanjem, odmah moˇzemo 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 ´cemo joˇs jedno stanje, recimo q00 , koje ´ce biti poˇcetno, i koje ´ce se ε prijelazom vezati za poˇcetno stanje automata M1 , dodaju´ci tako simbol ⊥1 na poˇcetku rada na stog. Dakle, K 0 = K ∪ {q00 }. Na kraju, ostala nam je definicija relacije δ 0 . Kao prvo, u relaciji δ sve pojave simbola ⊥, bilo u tre´coj, 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ˇcuje o jeziku L praznim stogom. Potrebno je kreirati PA M1 koji ´ce odluˇcivati o jeziku L zavrˇsnim stanjem. Neka je M2 = hK, Σ, Γ, q0 , ⊥, ∅, δi. Kreirajmo automat M1 =< K 0 , Σ0 , Γ0 , q00 , ⊥, F 0 , δ 0 >. Konstruiranje ovog PA je joˇs 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ˇcin se svako praˇznjenje stoga registrira prilazom u stanje qF0 . Konstrukcija automata M1 zavrˇsava definiranjem skupa F 0 = {qF0 }. Time je teorem dokazan. Iz definicija PA, ali i DPA moˇze se vidjeti nekoliko vaˇznih stvari vezanih uz potisni automat. Potisni se automat standardno definira kao nedeterministiˇcki automat u kojem su dozvoljeni ε prijelazi, dok se konaˇcni automat standardno definira kao deterministiˇcki. Razlog tome je sljede´ci 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´cemo dokazivati, kao ˇsto nismo dokazivali ni teorem 7.1. Dokazi oba ova teorema mogu se na´ci u [3] i u [5]. No, dokazat ´cemo teorem sliˇcan 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ˇc 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ˇc uv n xy n z ∈ L. Prije nego ˇsto krenemo na dokazivanje ovog teorema treba definirati stabla izvoda za rijeˇc w i gramatiku G. Stablo izvoda je stablo u kojem je korijen oznaˇcen 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 ˇcvorovi stabla izvoda oni simboli koji nisu terminalni.
ˇ ˇ POGLAVLJE 7. MATEMATICKA TEORIJA RACUNALSTVA
311
Primjer 7.14 Dan je jezik L koji se sastoji od palindroma nad abecedom Σ = {a, b, c}. Palindromi su rijeˇci koje su jednake, ˇcitane sprijeda i straga. Gramatika za ovaj jezik je: S→ε S → aSa S → bSb S → cSc Pogledajmo sada rijeˇc abccba i njeno stablo izvoda:
S
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 ˇsto treba dokazati jest da je svaki terminal ˇcija je duljina ve´ca ili jednaka k izvodiv tako da je S →∗ uAz →∗ uvAyz →∗ uvxyz. ˇ se dogada kada je p najve´ci broj znakova na desnoj strani nekog Sto pravila iz gramatike G? Tada stablo koje ima m razina moˇze imati najviˇse pm listova. Ova se tvrdnja moˇze dokazati indukcijom po m, no ovdje je ne´cemo dokazivati. Zainteresirani ˇcitatelj moˇze sam izvesti ovaj jednostavan dokaz. Drugim rijeˇcima, ako stablo opisuje izvod rijeˇci koja ima viˇse od pm slova, onda u tom stablu mora postojati put od korijena do terminala ˇcija je duljina ve´ca 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ˇc w takva da je |w| > k. Neka je T stablo izvoda rijeˇci w. No, tada u stablu T postoji bar jedan put od korijena do terminala duljine ve´ce od |V \Σ|, tj. put koji prolazi kroz viˇse od |V \Σ| + 1 ˇcvorova.
312
7.3. POTISNI AUTOMATI
No, kako abeceda ima samo |V \Σ| neterminalnih slova, to na tom putu moˇze biti najviˇse |V \Σ| razliˇcitih unutarnjih ˇcvorova. Zbog toga na tom putu moraju postojati dva ˇcvora koja imaju istu oznaku. Pri tome treba napomenuti da nijedan od ta dva ˇcvora ne moˇze biti list, jer listovi i unutarnji ˇcvorovi ne mogu imati iste oznake. Neka ti ˇcvorovi imaju oznaku A. To znaˇci da u izvodu rijeˇci w postoji dio izvoda opisan sljede´com shemom: S →∗ uAz →∗ uvAyz →∗ uvxyz, pri ˇcemu barem jedna od rijeˇci v i y mora biti neprazna. Dio izvoda koji zapoˇcinje i zavrˇsava u istom stanju A moˇzemo kontrahirati tako da obriˇsemo sve od prve pojave simbola A do njegove druge pojave, ˇcime ´cemo dobiti izvod S →∗ uAz →∗ uxz, dakle izvod rijeˇci uxz. Dakle, uxz ∈ L. Isto tako, taj se dio izvoda moˇze ponoviti viˇse puta, ˇcime ´ce 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 vrijedi. Dokaz. Svaki se konaˇcni automat moˇze prikazati kao potisni automat koji uop´ce ne koristi stog, pa se svaki jezik koji se moˇze prepoznavati pomo´cu konaˇcnog automata moˇze prepoznavati pomo´cu 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ˇzno regularni. Pitanje koje se postavlja jest, postoji li jezik koji nije kontekstno slobodan? Odgovor na ovo pitanje dan je sljede´cim primjerom. Primjer 7.15 Neka je zadan jezik L = {an bn cn }. Pokaˇzite da taj jezik nije kontekstno slobodan. Naravno, dokaz se provodi pomo´cu leme o pumpanju. Neka je n > k3 . Tada se na rijeˇc w : an bn cn moˇze primijeniti lema o pumpanju. U tom sluˇcaju mora postojati zapis w : uvxyz takav da je uv i xy i z ∈ L za svaki i ∈ N0 . Ako v ili y sadrˇzi razliˇcita slova, onda ´ce se u rijeˇci 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ˇze biti.
ˇ ˇ POGLAVLJE 7. MATEMATICKA TEORIJA RACUNALSTVA
313
Dakle, v i y mogu se sastojati samo od jednog simbola. No, u tom sluˇcaju, u rijeˇci uv i xy i z za i > 1 pove´cat ´cemo broj pojava jednog ili dva razliˇcita slova, dok ´ce broj pojava tre´ceg slova ostati isti, pa rijeˇc viˇse ne´ce pripadati jeziku L. Dakle, kako se ne moˇze ispoˇstovati lema o pumpanju, zakljuˇcuje se da L nije kontekstno slobodan jezik. Sljede´ca slika daje klasifikaciju jezika koju smo do sada obradili:
L CFL RL
Slika 7.10 U ovom smo se poglavlju uglavnom bavili nedeterministiˇckim potisnim automatom, dok smo deterministiˇcki potisni automat tek spomenuli. Zaˇsto deterministiˇcki potisni automat ima tako malu ulogu? Zato ˇsto je deterministiˇcki potisni automat kao koncept preslab da bi opisao kontekstno slobodne jezike, koji su ovdje interesantni. Iz upravo reˇcenoga moˇze se zakljuˇciti da, za razliku od konaˇcnih automata, nedeterministiˇcki i deterministiˇcki potisni automati ne definiraju istu klasu jezika. I zaista, postoje kontekstno slobodni jezici o kojima se ne moˇze odluˇcivati pomo´cu deterministiˇckog potisnog automata. Klasa jezika o kojoj se moˇze odluˇciti pomo´cu deterministiˇckog potisnog automata ˇsira je od klase regularnih jezika, ali je uˇza od klase kontekstno slobodnih jezika. Ta se klasa naziva klasom deterministiˇckih kontekstno slobodnih jezika. Drugim rijeˇcima, imamo sljede´ce 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 ˇsto smo pokazali, nije sveobuhvatan. U prvom smo poglavlju imali jedan vrlo jednostavan automat, koji je traku ˇcitao sljedno i koji nije imao memoriju. 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ˇsirili dodavˇsi mu memoriju. Tako smo proˇsirili klasu jezika koje moˇzemo prepoznati automatom, no pokazalo se da i time nismo definirali sveobuhvatni automat. U ovom ´cemo poglavlju opisati automat koji prepoznaje joˇs ˇsiru klasu jezika – Turingov stroj. Turingov stroj je automat koji nema svoju zasebnu memoriju, ali moˇze traku s koje ˇcita ulaz ujedno koristiti kao memoriju. Osim toga, Turingov stroj traku ne mora ˇcitati samo jednosmjerno - od poˇcetka prema kraju, ve´c su kod njega mogu´ci pomaci po traci u oba smjera, tako da Turingov stroj moˇze isti simbol ˇcitati i viˇse puta. Dakle, Turingov je stroj automat koji u svakom svom koraku moˇze proˇcitati s trake znak, upisati na istu tu poziciju trake drugi znak, te pomaknuti glavu za ˇcitanje na sljede´ci ili prethodni znak na traci. Ovaj koncept razvio je engleski matematiˇcar Alan Turing (1912.-1954.). Turingov se stroj formalno definira kao: Definicija 7.14 Turingov stroj je petorka M = hK, Σ, S, F, δi, pri ˇcemu je: • K konaˇcan skup stanja automata, • Σ je abeceda, u kojoj imamo istakuti prazni (blank) simbol t ∈ Σ i poˇcetni simbol ., • S ∈ K poˇcetno stanje, • F = {qT , qF } ⊆ S skup zavrˇsnih stanja, koji sadrˇzi stanja, • δ : K\{qF , qT } × Σ → K × Σ × {L, R} funkcija prijelaza. U literaturi se mogu prona´ci vrlo razliˇcite definicije Turingovog stroja, ˇsto moˇze itekako zbuniti manje vjeˇstog ˇcitatelja. Turingov stroj u literaturi predstavlja kao ˇcetvorka, pa sve do sedmorke. Neki autori ne istiˇcu posebno skup zavrˇsnih stanja, a neki da. U ovoj definiciji skup zavrˇsnih stanja bi se isto tako mogao izostaviti i re´ci samo da skup stanja sadrˇzi stanja qT , qF i qh . Neki autori razlikuju dvije abecede: jedna je abeceda jezika koji automat prepoznaje, a druga je abeceda oboga´cena specijalnim simbolima . i t. Neki autori ne specificiraju, kao ˇsto smo mi napravili, posebno zavrˇsno stanje za rijeˇc koju automat potvrduje (qT ) i za onu koju odbacuje (qF ) te posebno zavrˇsno stanje (qh ), koje sluˇzi u automatima koji ne rade odluˇcivanje, ve´c izraˇcunavanje. U tom sluˇcaju, 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´ci pokreti glave za ˇcitanje. Dok neki autori zahtijevaju da se u svakom koraku glava za ˇcitanje mora pomaknuti jedno polje lijevo ili desno, neki autori dozvoljavaju da glava u nekim konfiguracijama ostane na mjestu. Drugim rijeˇcima, skup simbola {L, R}, koji definira pomicanje glave za ˇcitanje, moˇze se nadopuniti
ˇ ˇ POGLAVLJE 7. MATEMATICKA TEORIJA RACUNALSTVA
315
do {L, N, R}. Bez obzira na sve te razlike, svi autori, definiraju´ci 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ˇsak a-ova ili viˇsak b-ova, onda rijeˇc nije dobra, a ako ostane prazna rijeˇc, onda je ulazna rijeˇc bila dobra. q0 q1 q2 q3
. (., R, q0 ) (., L, qF ) (., L, qF ) (., R, q0 )
a (., R, q1 ) (a, R, q1 ) (a, L, qF ) (a, L, q3 )
b qF (b, R, q1 ) (t, L, q3 ) (b, L, q3 )
t (t, L, qT ) (t, L, q2 ) (t, L, qF ) (t, L, qF )
Tablica 7.6 Primijetimo da tablicu kojom smo opisali Turingov stroj nismo ispunili do kraja. To bi znaˇcilo da je funkcija δ parcijalna funkcija. No, ona se moˇze upotpuniti tako da se sva nedefinirana stanja popune tako da Turingov stroj upiˇse znak koji je proˇcitao, glavu premjesti u desno i prijede u stanje qF . Primjer 7.17 Napravimo Turingov stroj koji ´ce 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ˇsu. Ako se desi da ostane u rijeˇci neki a, a da iza b-ova viˇse nema c-ova, onda rijeˇc nije dobra. Isto je ako iza b-ova ostane neki c, ali u rijeˇci viˇse nema a-ova. Ako istovremeno ponestane a-ova i c-ova iza b ova, onda ´ce nam preostati rijeˇc koja zapoˇcinje odredenim brojem c-ova, iza ˇcega slijedi odreden broj b-ova. Njihovo se prebrojavanje vrˇsi tako da se briˇse po jedan c s poˇcetka rijeˇci i jedan b s kraja. Ako taj postupak zavrˇsi praznom rijeˇci, onda je ulazna rijeˇc bila dobra. Zavrˇsi li ovaj postupak rijeˇcju koja se sastoji od odredenog broja c-ova ili od odredenog broja b-ova, onda rijeˇc nije dobra. q0 q1 q2 q3 q4 q5 q6 q7 q8
. (., R, q0 )
(., R, q4 )
(., R, qT ) (., R, q8 )
a (c, R, q1 ) (a, R, q1 ) (a, L, q3 ) (c, R, q1 )
b
c
(b, R, q1 )
(c, R, q1 ) (t, L, q3 ) (c, L, q3 ) (c, R, q4 ) (c, R, q5 )
(b, L, q3 ) (b, R, q5 ) (b, R, q5 ) (t, L, q7 ) (b, L, q7 )
Tablica 7.7
(c, L, q7 ) (., R, q5 )
t (t, L, qT ) (t, L, q2 )
(t, L, q6 )
(t, R, qF )
316
7.4. TURINGOVI STROJEVI
No, kako Turingovi strojevi imaju, osim ˇcitanja, mogu´cnost pisanja na traku, oni, za razliku od prije navedenih automata, imaju mogu´cnost zapisivanja izlaznog rezultata na traku. Tako se Turingovi strojevi mogu koristiti i za razliˇcita izraˇcunavanja. Primjer 7.18 Neka su dva broja zapisana u unarnom zapisu, tj. broj n je prikazan pomo´cu n nula. Ta dva broja na traci razdvojena su znakom +. Potrebno je zbrojiti ta dva broja. Rjeˇsenje je jednostavno: treba obrisati jednu nulu s kraja drugog broja, a znak + treba zamijeniti nulom. Turingov stroj koji radi ovu operaciju opisan je sljede´com tablicom.
q0 q1 q2
. (., R, q0 )
0 (0, R, q0 ) (0, R, q1 ) (t, R, qT )
+ (0, R, q1 )
t (t, L, q2 )
Tablica 7.8 Dajmo joˇs dva primjera: Primjer 7.19 Napravimo sada Turingov stroj koji izokre´ce bilo koju rijeˇc nad abecedom Σ = {a, b, c} naopako. Automat radi na sljede´ci naˇcin. Na poˇcetku rijeˇci ´ce ostati praznina ispred koje se prepisuje prvo slovo rijeˇci. Nakon toga se prepisuje drugo slovo rijeˇci ispred prvoga, itd., sve do kraja rijeˇci. Kao pomo´cni simbol, kojim ´cemo ispunjavati prostor izmedu kreirane rijeˇci i ostatka ulazne rijeˇci koristit ´cemo simbol .. Stroj je dan sljede´com tablicom.
q0 qa qb qc q. q1
. (., R, q0 ) (a, L, q. ) (b, L, q. ) (c, l, q. ) (., R, q1 ) (., R, q0 )
a (., L, qa ) (a, L, qa ) (a, L, qb ) (a, L, qc ) (., R, q1 ) (a, R, q1 )
b (., L, qb ) (b, L, qa ) (b, L, qb ) (b, L, qc ) (., R, q1 ) (b, R, q1 )
c (., L, qc ) (c, L, qa ) (c, L, qb ) (c, L, qc ) (., R, q1 ) (c, R, q1 )
t (t, R, qh )
Tablica 7.9
Primjer 7.20 Napravimo Turingov stroj koji ´ce 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. MATEMATICKA TEORIJA RACUNALSTVA
317
Stroj ´ce raditi tako da ´ce prvi znak ulaznog niza znakova brisati, i prepisati ga dva puta. Pri tome ´ce se posljednja rijeˇc na traci trebati pomicati jedno polje desno prije svakog upisivanja slova u drugu rijeˇc, kako bi se dobilo mjesto za upis novog slova u drugu rijeˇc.
q0 q01 q02 q003 q103 q04 qt05 q005 q105 q06 q07 q008 q108 q11 q12 q013 q113 q14 qt15 q015 q115 q16 q17 q018 q118 qrew
. (., R, q0 )
(., R, q0 )
0 (., R, q01 ) (0, R, q01 ) (0, R, q003 ) (0, R, q003 ) (1, R, q003 ) (t, R, q005 ) (0, R, q005 ) (0, R, q005 ) (1, R, q005 ) (0, L, q06 ) (0, L, q008 ) (0, R, q008 ) (1, R, q008 ) (0, R, q11 ) (1, R, q013 ) (0, R, q013 ) (1, R, q013 ) (t, R, q015 ) (1, R, q015 ) (0, R, q015 ) (1, R, q015 ) (0, L, q16 ) (0, L, q018 ) (0, R, q018 ) (1, R, q018 ) (0, L, qrew )
1 (., R, q11 ) (1, R, q01 ) (0, R, q103 ) (0, R, q103 ) (1, R, q103 ) (t, R, q105 ) (0, R, q105 ) (0, R, q105 ) (1, R, q105 ) (1, L, q06 ) (1, L, q108 ) (0, R, q108 ) (1, R, q108 ) (1, R, q11 ) (1, R, q113 ) (0, R, q113 ) (1, R, q113 ) (t, R, q115 ) (1, R, q115 ) (0, R, q115 ) (1, R, q115 ) (1, L, q16 ) (1, L, q118 ) (0, R, q118 ) (1, R, q118 ) (1, L, qrew )
t (., R, qT ) (t, R, q02 ) (0, R, q0 4) (0, R, q04 ) (1, R, q04 ) (t, R, qt04 ) (0, L, q06 ) (0, L, q06 ) (1, L, q06 ) (t, R, q07 ) (0, L, qrew ) (1, L, qrew ) (t, R, q12 ) (1, R, q1 4) (0, R, q14 ) (1, R, q14 ) (t, R, qt14 ) (1, L, q16 ) (0, L, q16 ) (1, L, q16 ) (t, R, q17 ) (0, L, qrew ) (1, L, qrew ) (t, L, qrew )
Tablica 7.10 Ovaj je Turingov stroj neˇsto sloˇzeniji pa ´cemo ga detaljnije opisati. Stanje q0 je poˇcetno stanje i ujedno nam sluˇzi za brisanje prvog slova iz ulazne rijeˇci. 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ˇcaju da je obrisani znak bio 0, dok stanja q11 do q118 na sliˇcan naˇcin definiraju rad stroja u sluˇcaju da je obrisani znak 1. Dalje ´cemo opisati stanja q01 do q108 . Stanje q01 se ponavlja dok se ne proˇcita do kraja ostatak ulazne rijeˇci. Nakon toga dolaze stanja q02 do q103 , koja dodaju na poˇcetak druge rijeˇci, odnosno
318
7.4. TURINGOVI STROJEVI
prve rijeˇci rezultata znak 0, dok preostale znakove te rijeˇci premjeˇstaju za jedno polje trake dalje. Stanje q02 izvrˇsava se jednom i dodaje 0 na poˇcetak rijeˇci. 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ˇci prelazi se u stanje q04 , ˇcime poˇcinje obrada tre´ce rijeˇci. U prvom prolazu tre´ca se rijeˇc premjeˇsta za jedno mjesto desno na traci. Poˇcinje se stanjem q04 , kojim se premjeˇsta razmak izmedu druge i tre´ce rijeˇci, te se ponavljaju stanja q005 i q105 dok se ne dode do kraja tre´ce rijeˇci. Tada stroj dode u stanje qt05 , te nakon toga prelazi u stanje q06 . Stanje q06 sluˇzi za vra´canje na poˇcetak tre´ce rijeˇci, a kada se dode do njenog poˇcetka, prelazi se u stanje q07 . Stanja q07 do q108 dodaju znak 0 na poˇcetak tre´ce rijeˇci i premjeˇstaju ostale znakove tre´ce rijeˇci za jedno mjesto na traci u desno. Ova stanja djeluju sliˇcno kao ˇsto djeluju stanja q02 do q103 , premjeˇstaju´ci drugu rijeˇc. Nakon toga, prelazi se u stanje qrew koje sluˇzi za prematanje trake na poˇcetak zapisa. Kada se dode do poˇcetka zapisa, prelazi se natrag na stanje q0 i postupak se ponavlja za sljede´ci znak ulazne rijeˇci. Sada se postavlja pitanje koju klasu jezika prepoznaju Turingovi strojevi? Imamo sljede´ce definicije: Definicija 7.15 Neka je dan jezik L za koji postoji Turingov stroj koji za svaku rijeˇc w ∈ L staje u stanju qT , a za svaku rijeˇc x 6∈ L staje u stanju qF . Tada kaˇzemo da je L rekurzivan jezik . Za rekurzivne jezike kaˇzemo da su odluˇcivi . Definicija 7.16 Neka je L jezik za koji postoji Turingov stroj koji za svaku rijeˇc w ∈ L staje u stanju qT . Tada kaˇzemo da je jezik L rekurzivno prebrojiv . Jasno je da je klasa rekurzivnih jezika (RCL) podklasa klase rekurzivno prebrojivih jezika (RCEL), tj. da vrijedi sljede´ca slika:
L RCEL RCL CFL RL
Slika 7.11
ˇ ˇ POGLAVLJE 7. MATEMATICKA TEORIJA RACUNALSTVA
319
No, postavlja se pitanje postoji li jezik koji je rekurzivno prebrojiv, a koji nije rekurzivan ili je RCL = RCEL. Pokazat ´cemo 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 rekurzivan. 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ˇc. On staje u stanju qT ako stroj M primjenjen na rijeˇc w staje u stanju qT , a ako stroj M primijenjen na rijeˇc w staje u stanju qF , onda staje u stanju qF . Drugim rijeˇcima, univerzalni Turingov stroj odluˇcuje prihva´ca li dani Turingov stroj danu rijeˇc ili ne. Postavlja se pitanje moˇze li se neki Turingov stroj M = hK, Σ, S, F, δi efikasno kodirati na traku tako da ga univerzalni Turingov stroj moˇze koristiti kao ulaz. Bez smanjenja op´cenitosti moˇzemo 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 ´ce oboje biti implicitno zadano preko jedinog ˇsto ´cemo zapisivati na traku: preko funkcije δ prijelaza. Za svaki prijelaz je δ(Qi , Xj ) = (Qk , Xl , Dm ) Definirajmo sljede´ci kod: 0i 10j 10k 10l 10m . Sada je jasno da se bilo koja druga abeceda, osim one koju smo uzeli u razmatranje moˇze jednako lagano enkodirati na ovaj naˇcin. Neka su c1 , . . . , cr kodovi za sve prijelaze Turingovog stroja M dobiveni na gore opisani naˇcin. Tada se cijeli Turingov stroj M kodira kao 111c1 11c2 11 . . . 11cn 111. Dokaˇzimo sada neka svojstva Turingovih strojeva koja ´ce nam trebati u daljnjem razmatranju. Prvo svojstvo koje ´cemo dokazati smo ve´c koristili na prethodnoj slici, pretpostavivˇsi 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´ce 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ˇcuje o jeziku L. Konstruirajmo Turingov stroj M 0 na sljede´ci naˇcin: Turingov stroj M 0 je jednak Turingovom stroju M u svemu, osim u prijelazima koji prevode stroj u zavrˇsno 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 ´ce tako definirani Turingov stroj M 0 stati u stanju qF za svaku rijeˇc w ∈ L te da ´ce stati u stanju qT za svaku rijeˇc w0 6∈ L. Drugim rijeˇcima, Turingov stroj M 0 odluˇcuje 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´ci 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ˇze se prikazati sljede´com slikom:
RCEL
coRCEL
RCL
Slika 7.12 Prije no ˇsto dokaˇzemo ovu tvrdnju, dokazat ´cemo sljede´cu 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ˇcuju o jezicima L1 i L2 . Tada konstruiramo Turingov stroj M kako slijedi.
ˇ ˇ POGLAVLJE 7. MATEMATICKA TEORIJA RACUNALSTVA
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ˇc nakon konaˇcno mnogo koraka zaustavlja u stanju qT ili u stanju qF , pa ´ce 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´ci sada TS M2 na drugoj kopiji ulaznog niza znakova. M2 takoder za svaku rijeˇc staje u konaˇcno mnogo koraka u stanju qT ili pak u stanju qF . U svakom sluˇcaju TS M u oba sluˇcaja staje i to u istom onom stanju u kojem staje TS M2 . Jasno je da ´ce TS M stati u stanju qT ako u tom stanju staje TS M1 ili pak M2 , dok za rijeˇci za koje i M1 i M2 staju u stanju qF , i TS M staje u stanju qF . Dakle, TS M odluˇcuje o jeziku L1 ∪ L2 . Ako su jezici L1 i L2 rekurzivno prebrojivi, onda se M konstruira malo drugaˇcije. Naime, tada nije sigurno da ´ce M1 ikada stati, pa ne moˇzemo prvo simulirati M1 , a nakon toga M2 . Kao i u prethodnom sluˇcaju, i u ovom sluˇcaju moramo ulazni niz znakova udvostruˇciti na traci. Sada ´cemo simulirati rad M1 i M2 paralelno, simuliraju´ci jedan korak TS M1 na prvoj kopiji ulaznog niza znakova, a nakon toga jedan korak TS M2 na drugoj kopiji ulaznog niza znakova, nakon ˇcega se opet simulira korak TS M1 na prvoj kopiji ulaznog niza znakova itd. Jedini problem koji je kod toga potrebno rijeˇsiti je kako zapamtiti gdje se nalazi glava za ˇcitanje pojedine simulacije. To se moˇze izvesti na razliˇcite naˇcine. Najjednostavniji je da se za svaki simbol σ ∈ Σ u abecedi TS M definira joˇs jedan znak σ 0 koji ´ce imati znaˇcenje znaka σ, ali ´ce 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ˇc koja se obraduje, TS M ´ce u simulaciji do´ci 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ˇzemo prije´ci 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 rekurzivan. U tom sluˇcaju 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ˇci jezika L i Lc . Bez smanjenja op´cenitosti moˇzemo pretpostaviti da su M1 i M2 konstruirani tako da u sluˇcaju da ne prepoznaju neku rijeˇc odlaze u beskonaˇcnu petlju. Naime, ako neki od ovih Turingovih strojeva staje u stanju qF , ili pak funkcija prijelaza nije definirana, moˇzemo ga prebaciti u novo stanje, koje za bilo koji ulaz pomiˇce glavu u desno i vra´ca se u isto stanje.
322
7.4. TURINGOVI STROJEVI
Konstruirajmo TS M na sljede´ci naˇcin: M prvo kopira ulazni niz znakova u dvije kopije kako je to opisano u primjeru 7.20. Nakon toga, sliˇcno kao u drugom dijelu dokaza propozicije 7.2, simuliramo Turingove strojeve M1 i M2 paralelno, tako da prvo simuliramo 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ˇc w ∈ Σ∗ vrijedi da je W ∈ L ili je we ∈ Lc , to svaku rijeˇc w ∈ Σ∗ prepoznaje ili TS M1 ili TS M2 dakle, u konaˇcno mnogo koraka ili ´ce se M1 ili M2 na´ci 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ˇcuje o jeziku L, pa je L rekurzivan. Konaˇcno, definirajmo problem koji je, kako ´ce se vidjeti, rekurzivno prebrojiv, ali nije rekurzivan. Problem 7.1 (Problem zaustavljanja (HP)) Neka je dan TS M i ulazni niz znakova x. Ho´ce li se TS M zaustaviti za ulaz x? Drugaˇcije definirano, neka je H jezik nad abecedom univerzalnog Turingovog stroja definiran na sljede´ci naˇcin: H = {(M, x) : |M (x) 6=%}. Pri tome s M (x) =% oznaˇcavamo da TS M za ulaz x odlazi u beskonaˇcnu petlju. Dakle, jezik H sadrˇzi sve rijeˇci za koje TS M ne odlazi u beskonaˇcnu 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ˇs jedno vrlo vaˇzno svojstvo: on je potpun problem za klasu rekurzivno prebrojivih problema. To znaˇci da vrijedi sljede´ci teorem, koji ne´cemo dokazivati: Teorem 7.7 RCL = RCEL ako i samo ako je HP ∈ RCL. No, odmah se ispostavlja sljede´ca tvrdnja. Teorem 7.8 H nije rekurzivan. Dokaz. Pretpostavimo da postoji TS MH koji odluˇcuje o jeziku H. Modificirajmo MH tako da dobijemo TS MD . MD kao ulaz prima kodove Turingovih strojeva i obraduje ih na sljede´ci naˇcin: 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ˇcuje o jeziku H. Ako MH staje u stanju qT , TS MD ulazi u stanje koje ´ce u beskonaˇcnoj petlji pomicati glavu za ˇcitanje u desno. Ako MH staje u stanju qF , onda MD staje u stanju qT .
ˇ ˇ POGLAVLJE 7. MATEMATICKA TEORIJA RACUNALSTVA
323
Sada se postavlja pitanje ˇsto je MD (MD )? Ako je MD (MD ) =%, to, po definiciji TS MD znaˇci da MH prihva´ca rijeˇc (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ˇc (MD , MD ). Dakle, (MD , MD ) 6∈ H. No tada, prema definiciji od H vrijedi da je MD (MD ) =%. Dakle, ovakav TS MD ne moˇze postojati. No, ako je H rekurzivan, onda je MD dobro definiran, pa se zakljuˇcuje da H ne moˇze biti rekurzivan. Dajmo, za kraj ovog poglavlja, joˇs nekoliko jezika koji su rekurzivno prebrojivi, a nisu rekurzivni. Propozicija 7.4 Sljede´ci 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 ˇsto ´ce se dogoditi uvedemo li nedeterministiˇcki Turingov stroj i kakva ´ce biti klasa jezika koju ´ce on prepoznavati s obzirom na klasu jezika koju prepoznaje deterministiˇcki Turingov stroj. Jasno je kako se definira nedeterministiˇcki Turingov stroj (NTS): tako da se δ definira kao relacija prijelaza, a ne kao funkcija. No, pokazuje se da se, ˇsto se tiˇce klase jezika o kojoj automat odluˇcuje, ne dobiva niˇsta nova. Naime, vrijedi sljede´ci teorem. Teorem 7.9 Neka za jezik L postoji nedeterministiˇcki Turingov stroj M1 koji ga prihva´ca (koji o njemu odluˇcuje). Tada postoji deterministiˇcki Turingov stroj koji prihva´ca jezik L (odluˇcuje o njemu). Ovaj teorem se moˇze dokazati na razne naˇcine, no svi zahtjevaju uvodenje dodatnih automata preko kojih se uspostavlja ekvivalencija. Najlakˇse se ekvivalencija uspostavlja preko deterministiˇckih Turingovih strojeva s viˇse traka (VTTS). Tada se dokazuje da vrijedi T S ⇔ V T T S ⇔ N T S. No ovo bi razmatranje znatno proˇsirilo ovo poglavlje, za ˇsto nema potrebe. Oni koji su zainteresirani, ovaj dokaz, kao i svu potrebnu aparaturu koju treba uvesti za dokaz mogu prona´ci u [3]. No, uvodenje nedeterministiˇckih Turingovih strojeva dovodi nas do druge zanimljive stvari u teoriji algoritama. Oznaˇcimo li s P klasu svih problema koji su rjeˇsivi u polinomno mnogo koraka deterministiˇckog Turingovog stroja s obzirom na veliˇcinu ulaza, a s N P klasu svih onih koji su rjeˇsivi u polinomno mnogo koraka nedeterministiˇckog Turingova stroja s obzirom na veliˇcinu ulaza. Prirodno se postavlja pitanje, koje je jedno od najpoznatijih
324
7.5. ZADACI
nerjeˇsenih problema danaˇsnje matematike: pitanje vrijedi li P = N P ? Ovo pitanje ve´c desetlje´cima pokuˇsava rijeˇsiti velik broj matematiˇcara. 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ˇzenosti algoritama na Turingovom stroju. Nadalje, interesantno je, takoder, da vrijedi da ako je Turingova sloˇzenost nekog problema (najmanja sloˇzenost koju moˇze posti´ci TS rjeˇsavaju´ci taj problem) Θ(f (n)), onda ´ce algoritamska sloˇzenost tog problema (u smislu raˇcunalnih programa, kako je definirano u poglavlju 4) takoder Θ(f (n)). Tijekom tog istraˇzivanja doˇslo se do nekih interesantnih rezultata, a jednim od najznaˇcajnijih zavrˇsit ´cemo ovo poglavlje: Taj se rezultat veˇze 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ˇcuna 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ˇze s nekom formulom raˇcuna sudova u konjunktivnoj normalnoj formi s najviˇse tri literala po konjunktu koja je ispunjiva ako i samo ako M prihva´ca w. Takoder se pokazuje da se takva formula moˇze prona´ci u polinomno mnogo koraka s obzirom na veliˇcinu ulaza (M, w). Postoji li TS (algoritam) koji moˇze u polinomno mnogo koraka rijeˇsiti problem SAT , on ´ce mo´ci zajedno s TS koji u polinomno mnogo koraka generira formulu F , za svaki TS M i ulaz w odrediti prihva´ca li M ulaz w i to u polinomnom vremenu. Detalje ovog dokaza moˇzete na´ci u [6].
7.5
Zadaci
1. Napravite deterministiˇcke konaˇcne automate koji prihva´caju sljede´ce jezike nad abecedom {0, 1}: (a) Skup svih nizova znakova koji zapoˇcinju s 00 ili zavrˇsavaju s 11. (b) Skup svih nizova znakova koji u sebi sadrˇze tri uzastopne jedinice. (c) Skup svih nizova znakova koji imaju kao 10 znak broj 1. 2. Konstruirajte DKA koji je ekvivalentan sa sljede´cim NKA:
ˇ ˇ POGLAVLJE 7. MATEMATICKA TEORIJA RACUNALSTVA
0,1
325
0
q0
q1 0,1
q2 q3
0 Slika 7.13
3. Konstruirajte DKA koji je ekvivalentan sa sljede´cim 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´cim regularnim izrazom: (a) (11|0) ∗ (00|1)∗ (b) 01[((10) ∗ |111) ∗ (ε|0|00]∗ (c) ((0|1)(0|1)) ∗ |((0|1)(0|1)(0|1))∗ 5. Dokaˇzite sljede´ce 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´cih jezika regularni? (a) {02n |n ≥ 1} (b) {0m 1n 0m+n |m ≥ 1, n ≥ 1} (c) {0n |n je prost broj} 7. Pokaˇzite da jezik L = {0i 1j |M (i, j) = 1} nije regularan. 8. Napravite kontekstno slobodnu gramatiku za jezik L = {x|x je palindrom}. 9. Napravite kontekstno slobodnu gramatiku koja ´ce 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´cu gramatiku:
S → aAA A → aS A → bS A→a 12. Dokaˇzite da postoji nedeterministiˇcki potisni automat koji prepoznaje jezik L = {0n 1n |n ∈ N} ∪ {0n 12n |n ∈ N}, ali i da ne postoji deterministiˇcki potisni automat koji bi prepoznavao taj jezik. 13. Pokaˇzite da sljede´ci 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´ce jezike: (a) L = {0n 1n 0n |n ∈ N}.
ˇ ˇ POGLAVLJE 7. MATEMATICKA TEORIJA RACUNALSTVA
327
(b) Jezik koji se sastoji od rijeˇci s jednakim brojem znakova 0 i 1. 15. Napravite Turingov stroj koji ´ce vrˇsiti sljede´ca izraˇcunavanja: (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ˇcunalni program koji ´ce 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ˇcite gramatike definitnih klauzula koje su dio programskog jezika Prolog, usporedite ih s kontekstno slobodnim gramatikama. Odredite koja se klasa jezika moˇze opisati gramatikama definitnih klauzula. 3. Prouˇcite nedeterministiˇcke Turingove strojeve i pokaˇzite da nedeterministiˇcki Turingov stroj prepoznaje istu klasu jezika kao i deterministiˇcki Turingov stroj. 4. Prouˇcite Turingove strojeve s viˇse traka i nedeterministiˇcke Turingove strojeve. Pokaˇzite da oni prepoznaju istu klasu jezika - klasu rekurzivno prebrojivih jezika. Takoder, pokaˇzite da oni odluˇcuju o klasi rekurzivnih jezika. Drugim rijeˇcima, pokaˇzite da su oni ekvivalentni Turingovim strojevima. 5. Dokaˇzite 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 Theory, Languages, and Computation, Addison-Welsey [4] Leeuwen, J. van (ed.) (1990): Handbook of Theoretical Computer Science. 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, AddisonWesley
329
Predmetno kazalo abeceda, 29, 294 aditivni inverz, 57 alfabet, 294 algoritam, 125 Dijkstrin, 210 Euklidov, 126 Fleuryjev, 212 Hornerov, 128 Kruskalov, 223 pretraˇzivanje binarno, 141 slijedno, 139 Primov, 224 sortiranje izborom, 145 mjehuriˇcasto, 153 pomo´cu hrpe, 158 pomo´cu pretinaca, 183 prebrojavanjem, 180 quicksort, 168 radix, 181 spajanjem, 155 umetanjem, 150 zamjenom, 147 antitautologija, 21, 32 aritmetiˇcki niz, 79 razlika, 79 atom, 30 atomarna formula, 30
suprotni element, 256 zatvorena, 255 binarne rijeˇci, 267 binomni pouˇcak, 96 bitovi, 267 bojenje bridova, 240 bojenje vrhova, 237 broj klike, 239 Cayleyeva tablica, 254 Churchova hipoteza, 126 ciklus, 200 Hamiltonov, 208 ˇcvor, 49 digraf, 226 disjunkt, 27 diskretni vjerojatnosni prostor, 97 distribucija sluˇcajne varijable, 110 dogadaj nemogu´c, 97 potpuni sustav, 105 siguran, 97 dokaz direktni, 7 po kontrapoziciji, 7, 24 protuprimjer, 8 donja meda, 73 Duljina ciklusa, 243 duljina rijeˇci, 294
bijekcija, 71 binarna operacija, 254 asocijativna, 255 komutativna, 257 neutralni element, 255
ekvivalencija, 7, 20 ekvivalentne tvrdnje, 12 F-sustav, 23 330
BIBLIOGRAFIJA Fitchov sustav, 23 formula, 30 ekvikontradiktornost, 37 ispunjiva, 32 otklonjiva, 32 zatvorena, 30 fundamentalni teorem aritmetike, 68 funkcija, 69, 71 algebarska, 72 iracionalna, 72 racionalna, 72 bijekcija, 71 dekodiraju´ca, 268 graf, 73 homografska, 73 identiteta, 70 implicitno zadana, 73 injekcija, 71 inverzna, 71 kodiraju´ca, 268 kompozicija, 70 konstantna, 71 lokalni ekstremi, 74 monotona, 74 neparna, 72, 74 ograniˇcena, 73 ograniˇcena odozdo, 73 ograniˇcena odozgo, 73 padaju´ca, 74 parna, 72, 74 periodiˇcna, 74 racionalna, 72 rastu´ca, 74 realna realne varijable, 72 strogo padaju´ca, 74 strogo rastu´ca, 74 surjekcija, 71 transcedentna, 72 generator grupe, 258 geometrijski niz, 80 gornja meda, 73 graf, 193
331 bipartitan, 196 Hamiltonov, 208 izomorfizam, 198 jednostavan, 194 komponente povezanosti, 201 konaˇcan, 194 Petersenov, 199 planaran, 194 potpuni, 194 potpuni bipartitan, 196 povezan, 201 regularan, 199 skup bridova, 193 skup vrhova, 193 teˇzinski, 210 usmjereni, 226 gramatika kontekstno slobodna, 298 grupa, 257 Abelova, 257 cikliˇcka, 258 dihedralna, 288 izomorfizam, 263 Kleinova 4-, 289 kodova, 270 komutativna, 257 morfizam, 264 permutacija, 259 red, 257 simetriˇcna, 259 Hammingova udaljenost, 267, 268 hrpa, 158 identiteta, 70 incidentan brid, 194 incidentni vrhovi bridu, 194 injekcija, 71 instanca, 38 instanca masovnog problema, 126 integralna domena, 279 interpretacija, 19 inverzija, 72 izomorfizam grafova, 198
332 izvod, 25 izvor, 232 jezik, 295 deterministiˇcki kontekstno slobodan, 313 odluˇciv, 318 rekurivno prebrojiv, 318 rekurzivan, 318 kapacitet reza, 234 Kartezijev kvadrat, 49 Kartezijev produkt, 48, 49 klasa ekvivalencije, 52 klika, 239 kod cikliˇcki, 285 linearni, 270 sistematiˇcan, 268 kodne rijeˇci, 268 kombinacija bez ponavljanja, 95 ponavljanjem, 95 konaˇcni automat deterministiˇcki, 299 nedeterministiˇcki, 303 nedeterministiˇcki s ε prijelazima, 305 konjunktivna normalna forma, 27 kontrapozicija, 6 kontrolna matrica, 273 kontrolni bit, 268 korijen, 216 kritiˇcni put, 229, 231 kromatski broj, 237, 240 kvaternioni, 289 lema o rukovanju, 197 list, 215 literal, 27 negativni, 27 pozitivni, 27 logiˇcka posljedica, 20 lokalni maksimum, 74 lokalni minimum, 74
BIBLIOGRAFIJA luk, 49 maksimalna vrijednost, 74 masovni problem, 126 matematiˇcka indukcija, 9 jaka, 10 matematiˇcka struktura, 2 matematiˇcko oˇcekivanje, 109 matrica, 36 matrica incidencije, 204 matrica izvodnica, 272 matrica permutacija, 207 matrica susjedstva, 204 max-hrpa, 166 metrika, 268 min-hrpa, 166 minimalna udaljenost koda, 269 minimalna vrijednost, 74 model, 32 modus ponens, 25 modus tollens, 26, 29 monoid, 257 most, 203 mreˇza usmjerena, 228 nadgraf, 222 najkra´ci put, 210 najmanja gornja meda, 66 najmanji zajedniˇcki viˇsekratnik, 68 najve´ca donja meda, 66 najve´ca zajedniˇcka mjera, 68 najve´ci zajedniˇcki djelitelj, 68 nulgraf, 193 nultoˇcka, 73 odluˇcivanje praznim stogom, 308, 309 odluˇcivanje zavrˇsnim stanjem, 308, 309 ograniˇcenje varijabli, 31 optimalni ciklus, 209 osnovni period, 74
BIBLIOGRAFIJA partikularno rjeˇsenje, 86 period, 74 permutacija, 72, 93 s ponavljanjem, 94 petlja, 194 podgraf, 222 razapinju´ci, 222 podgrupa, 260 cikliˇcka, 262 trivijalna, 260 podrijeˇc, 295 polinom, 72 polje, 279 konaˇcno, 279 realnih brojeva, 278 polugrupa, 257 ponor, 232 potisni automat deterministiˇcki, 307 nedeterministiˇcki, 308 prefiks, 36, 295 primitivna normalna forma, 36 princip dobrog uredaja, 69 problem rasporeda, 229 proces, 2 projektivna geometrija, 289 prost broj, 68 prostor elementarnih dogadaja, 97 protok, 232 proˇsireno ograniˇcenje varijabli, 31 prsten, 276 komutativan, 276 pseudograf, 194 put, 200 Hamiltonov, 208 red elementa grupe, 258 refutacija, 28 regularni izraz, 295 rekurzivna definicija, 10 rekurzivna jednadˇzba karakteristiˇcna jednadˇzba, 82 linearna homogena, 82 linearna nehomogena, 82
333 podijeli pa ovladaj, 89 relacija antisimetriˇcna, 62 asimetriˇcna, 62 binarna, 49 dualna, 51 ekvivalencije, 51 irefleksivna, 62 komplement, 51 kompletna, 62 obrat, 51 redukcija, 55 strogo kompletna, 62 uredaja, 63 -kvazi, 63 dobrog, 65 parcijalnog, 63 parijalnog, 63 slabog, 63 totalnog, 63 relativno prosti brojevi, 68 rez, 234 rezolucija, 27 hiper-, 29 linearna, 29 semantiˇcka, 29 rezolventa, 39 reˇcenica, 30 rijeˇc, 294 konkatenacija, 294 prazna, 294 Skolemova normalna forma, 36 skup beskonaˇcan, 78 ekvivalentan, 77 kardinalni broj, 78 konaˇcan, 78 kvocijentni, 53 neprebrojiv, 78 parcijalno uredeni, 63 particija, 52 prebrojiv, 78 prebrojivo beskonaˇcan, 78
334 totalno uredeni, 64 univerzalni, 46 uzoraka, 97 sloˇzenost algoritma najbolji sluˇcaj, 132 najgori sluˇcaj, 132 prosjeˇcni sluˇcaj, 132 prostorna, 130 vremenska, 130 sluˇcajna varijabla binomna, 107 diskretna uniformna, 107 hipergeometrijska, 109 indikatorska, 114 sluˇcajni pokus, 97 sparivanje, 242 maksimalno, 242 savrˇseno, 242 stablo, 215 binarno, 217 binarno pretraˇzivanja, 218 izvoda, 310 korijensko, 216 potpuno, 218 razapinju´ce, 222 soritranja, 218 uredeno binarno, 217 standardna devijacija, 114 staza, 201 Eulerova, 201 Stirlingovi brojevi, 53 strogi lokalni maksimum, 74 strogi lokalni minimum, 74 struk, 243 struktura semantiˇcka, 31 stupanj vrha, 196 sud, 5 ispunjiv, 21 izvediv, 25 otklonjiv, 21 sloˇzeni, 6 sufiks, 295 surjekcija, 71
BIBLIOGRAFIJA susjedni bridovi, 194 susjedni vrhovi, 194 ˇsetnja, 200 ciklus, 200 usmjerena, 227 zatvorena, 200 ˇsuma, 215 tautologija, 21, 32 teorija kodiranja, 265 term temeljni, 38 teˇzina rijeˇci, 270 teˇzina stabla, 223 tura Eulerova, 202 Turingov stroj, 314 nedeterministiˇcki, 323 s viˇse traka, 323 univerzalni, 319 tvrdnja o egzistenciji, 7 unifikacija, 38 unifikator, 38 maksimalni, 38 univerzalna tvrdnja, 7 uredena n-torka, 49 uredeni par, 49 valuacija, 38 varijabla slobodna, 30 u dosegu, 30 varijacija bez ponavljanja, 94 s ponavljanjem, 94 varijanca, 114 vektorski prostor, 281 polinoma, 286 vjerojatnost uvjetna, 104 vrijednost protoka, 233 zbroj kodnih rijeˇci, 270