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 prilago- dena 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 cijenugradivopredoˇceusvojmatematiˇckojstrogostiisasvimmatematiˇckim aspektima koji se mogu razmatrati. Odrˇzavˇsi dovoljno matematiˇcke egzak- tnosti,autorisupokuˇsaligradivoizloˇzititakodagabudeˇstolakˇseprimijeniti 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 pojmovakojejenuˇznodefiniratidabisljede´capoglavljamoglabitikorektno 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 susta- va - F-sustav i rezolucijsku proceduru. F-sustav predstavlja formalizaciju pravila dokazivanja opisanih u poglavlju 1.2. S druge strane, rezolucijska procedurapredstavljadeduktivnisustav,kojijeposebnopogodanzadokazi- vanje 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 mate- matici - 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 teorijevjerojatnosti, kojejenapisaoAlenLovrenˇci´c. Ovojeujednoipoglav- lje 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 proble- ma, 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. Sˇestopoglavljedajeopisosnovnihalgebarskihstruktura. Onesuznaˇcaj- ne 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. Posljednjepoglavljejezamiˇsljeno,nanekinaˇcin,kaopoantacijeleknjige. 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 izborsadrˇzajacijeleknjige, koriste´cimnogoodprijeopisanogsadrˇzaja. Ovo zavrˇsno poglavlje napisao je Alen Lovrenˇci´c. Kako koristiti knjigu Ovaknjigasadrˇzizaistarazliˇcitematematiˇckesadrˇzaje,kojisemoguzasebno 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. Sˇtoviˇse,tre´cepoglavljenapisanojetakodasenjegovapodpoglavljamogu i sama izuˇcavati zasebno. Sˇto se tiˇce ostalih poglavlja, ona, uglavnom, za- 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. Priizlaganjutekstasunekidijeloviizostavljeniiostavljenizasamostalan 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 nji- hovu 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 nadogradujusadrˇzaj. Zadacimoguˇcitateljupokazatikolikojezaistashvatio 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ˇca- vanje literature i dublje upoznavanje podruˇcja na koje se odnose. Svakako, oviproblemisupogodnizaizraduseminarskihradovastudenatakojisluˇsaju kolegije koji pokrivaju podruˇcje opisano u ovoj knjizi, ali oni predstavljaju i ideje za daljnji samostalan rad svim ˇcitateljima zainteresiranim za nado- gradnju znanja iz danog podruˇcja. Svako poglavlje ima i literaturu koja je koriˇstena pri izradi sadrˇzaja, ali kojaistotakopredstavljasmjernicezadaljnjiradˇcitateljimakojisuposebno 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 Cˇubrilu, 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 Sys- tems: 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. Nakraju,svepokudezapogreˇskekojesu”opstale”nakonsvihisˇ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.1 Matematiˇcke metode i modeli . . . . . . . . . . . . . . . . . . 1 1.1.1 Znanstvena metoda . . . . . . . . . . . . . . . . . . . 1 1.1.2 Matematiˇcki model . . . . . . . . . . . . . . . . . . . . 2 1.1.3 Struktura matematike . . . . . . . . . . . . . . . . . . 3 1.2 Tehnike dokazivanja u matematici . . . . . . . . . . . . . . . 5 1.2.1 Sudoviimatematiˇckalogikakaookvirzamatematiˇcke tvrdnje . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.2 Dokazivanje matematiˇckih tvrdnji . . . . . . . . . . . 7 1.2.3 Matematiˇcka indukcija i skup prirodnih brojeva . . . . 8 1.2.4 Princip dobrog uredaja u skupu N . . . . . . . . . . . 11 1.3 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2 Matematiˇcka logika 17 2.1 Raˇcun sudova . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.1.1 Sintaksa . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.1.2 Semantika . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2 Predikatni raˇcun . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.2.1 Sintaksa . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.2.2 Semantika . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.2.3 Formalni sustavi . . . . . . . . . . . . . . . . . . . . . 33 2.3 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.4 Projekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3 Diskretna matematika 45 3.1 Skupovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.1.1 Zadavanje skupa . . . . . . . . . . . . . . . . . . . . . 46 3.1.2 Relacije medu skupovima . . . . . . . . . . . . . . . . 46 3.1.3 Partitivni skup . . . . . . . . . . . . . . . . . . . . . . 47 3.1.4 Operacije na skupovima . . . . . . . . . . . . . . . . . 47 3.1.5 Kartezijev produkt skupova . . . . . . . . . . . . . . . 48 v vi SADRZˇAJ 3.2 Binarne relacije . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.2.1 Binarne relacije na diskretnim skupovima . . . . . . . 49 3.2.2 Obrat relacije, komplement relacije i dualna relacija . 51 3.3 Relacija ekvivalencije . . . . . . . . . . . . . . . . . . . . . . . 51 3.3.1 Definicija i svojstva relacija ekvivalencije . . . . . . . 51 3.3.2 Kongruencije . . . . . . . . . . . . . . . . . . . . . . . 54 3.3.3 Aritmetika u Z . . . . . . . . . . . . . . . . . . . . . 60 k 3.3.4 Joˇs neka svojstva binarnih relacija . . . . . . . . . . . 62 3.4 Uredajne binarne relacije . . . . . . . . . . . . . . . . . . . . 63 3.4.1 Relacija parcijalnog uredaja . . . . . . . . . . . . . . . 63 3.4.2 Relacija djeljivosti na skupu cijelih brojeva . . . . . . 67 3.5 Funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.5.1 Kompozicija funkcija . . . . . . . . . . . . . . . . . . . 70 3.5.2 Bijekcija. Inverzna funkcija . . . . . . . . . . . . . . . 71 3.5.3 Funkcije kao relacije . . . . . . . . . . . . . . . . . . . 71 3.5.4 Realne funkcije realne varijable . . . . . . . . . . . . . 72 3.6 Graf funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.6.1 Neka svojstva realnih funkcija realne varijable . . . . 73 3.6.2 Konaˇcni i beskonaˇcni skupovi . . . . . . . . . . . . . . 78 3.7 Rekurzivne relacije . . . . . . . . . . . . . . . . . . . . . . . . 79 3.7.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 3.7.2 Rjeˇsavanje rekurzija - karakteristiˇcna jednadˇzba . . . 82 3.7.3 Rjeˇsavanje rekurzivnih jednadˇzbi - funkcije izvodnice . 91 3.8 Diskretna teorija vjerojatnosti . . . . . . . . . . . . . . . . . . 93 3.8.1 Osnove kombinatorike . . . . . . . . . . . . . . . . . . 93 3.8.2 Osnovne definicije i teoremi diskretne teorije vjerojat- nosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 3.8.3 Uvjetna vjerojatnost . . . . . . . . . . . . . . . . . . . 104 3.8.4 Sluˇcajne varijable. . . . . . . . . . . . . . . . . . . . . 107 3.9 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 3.10 Projekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Donjamedasloˇzenostialgoritamausporedivanjaisor- tiranja temeljenih na usporedivanju . . . . . . . . . . 176 4.3.4 Sortiranje u vremenu O(n) . . . . . . . . . . . . . . . 179 4.4 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 4.5 Projekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 SADRZˇAJ vii 5 Teorija grafova 191 5.1 Definicija grafa i osnovna svojstva . . . . . . . . . . . . . . . 192 5.2 Izomorfizam grafova . . . . . . . . . . . . . . . . . . . . . . . 197 5.3 Regularni grafovi . . . . . . . . . . . . . . . . . . . . . . . . . 199 5.4 Sˇetnje i ciklusi u grafu . . . . . . . . . . . . . . . . . . . . . . 200 5.4.1 Eulerova staza . . . . . . . . . . . . . . . . . . . . . . 201 5.5 Matrica incidencije i matrica susjedstva . . . . . . . . . . . . 204 5.6 Hamiltonovi ciklusi . . . . . . . . . . . . . . . . . . . . . . . . 208 5.7 Teˇzinski grafovi. Algoritmi najkra´ceg puta . . . . . . . . . . . 209 5.7.1 Dijkstrin algoritam . . . . . . . . . . . . . . . . . . . . 210 5.7.2 Problem kineskog poˇstara . . . . . . . . . . . . . . . . 212 5.8 Stabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 5.8.1 Osnovno o stablima . . . . . . . . . . . . . . . . . . . 215 5.8.2 Binarno stablo . . . . . . . . . . . . . . . . . . . . . . 217 5.8.3 Minimalno razapinju´ce stablo . . . . . . . . . . . . . . 222 5.8.4 Pretraˇzivanje stabla . . . . . . . . . . . . . . . . . . . 224 5.9 Usmjereni grafovi i mreˇze . . . . . . . . . . . . . . . . . . . . 226 5.9.1 Usmjereni graf . . . . . . . . . . . . . . . . . . . . . . 226 5.9.2 Turnir . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 5.9.3 Mreˇze i kritiˇcni putevi . . . . . . . . . . . . . . . . . . 228 5.9.4 Problem rasporeda . . . . . . . . . . . . . . . . . . . . 228 5.9.5 Protoci i rezovi . . . . . . . . . . . . . . . . . . . . . . 231 5.9.6 Max-flow min-cut teorem . . . . . . . . . . . . . . . . 233 5.10 Bojenje grafova . . . . . . . . . . . . . . . . . . . . . . . . . . 236 5.10.1 Problem ˇcetiri boje . . . . . . . . . . . . . . . . . . . . 236 5.10.2 Bojenje vrhova grafa . . . . . . . . . . . . . . . . . . . 237 5.10.3 Bojenje bridova grafa . . . . . . . . . . . . . . . . . . 240 5.11 Sparivanje u grafovima . . . . . . . . . . . . . . . . . . . . . . 242 5.12 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 5.13 Projekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 6 Algebarske strukture 253 6.1 Definicija i primjeri algebarskih struktura . . . . . . . . . . . 254 6.2 Grupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 6.2.1 Definicija grupe . . . . . . . . . . . . . . . . . . . . . . 255 6.2.2 Konaˇcne i cikliˇcke grupe . . . . . . . . . . . . . . . . . 257 6.2.3 Primjeri grupa . . . . . . . . . . . . . . . . . . . . . . 259 6.2.4 Podgrupe . . . . . . . . . . . . . . . . . . . . . . . . . 260 6.3 Izomorfizam grupa . . . . . . . . . . . . . . . . . . . . . . . . 263 6.4 Primjena grupa u kodiranju . . . . . . . . . . . . . . . . . . . 265 6.4.1 Teorija kodiranja kao grana matematike . . . . . . . . 265 6.4.2 Problemi prijenosa informacija . . . . . . . . . . . . . 267 6.4.3 Metrika na kodnim rijeˇcima . . . . . . . . . . . . . . . 267 6.4.4 Grupa koda . . . . . . . . . . . . . . . . . . . . . . . . 269 viii SADRZˇAJ 6.4.5 Matrica izvodnica kodiraju´ce funkcije . . . . . . . . . 272 6.5 Prsteni i polja . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 6.5.1 Prsten . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 6.5.2 Primjeri prstena . . . . . . . . . . . . . . . . . . . . . 276 6.5.3 Polje . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 6.5.4 Primjeri polja . . . . . . . . . . . . . . . . . . . . . . . 279 6.6 Vektorski prostor . . . . . . . . . . . . . . . . . . . . . . . . . 281 6.7 Primjeri vektorskog prostora . . . . . . . . . . . . . . . . . . 283 6.8 Algebarske strukture polinoma . . . . . . . . . . . . . . . . . 284 6.8.1 Prsten polinoma . . . . . . . . . . . . . . . . . . . . . 284 6.8.2 Vektorski prostor polinoma . . . . . . . . . . . . . . . 285 6.9 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 6.10 Projekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 7 Matematiˇcka teorija raˇcunalstva 293 7.1 Jezici. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 7.1.1 Regularni izrazi . . . . . . . . . . . . . . . . . . . . . . 295 7.1.2 Kontekstno slobodne gramatike . . . . . . . . . . . . . 298 7.2 Konaˇcni automati . . . . . . . . . . . . . . . . . . . . . . . . 299 7.3 Potisni automati . . . . . . . . . . . . . . . . . . . . . . . . . 307 7.4 Turingovi strojevi . . . . . . . . . . . . . . . . . . . . . . . . . 313 7.5 Zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 7.6 Projekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327