MS-A0401 Diskreetin matematiikan perusteet

Samankaltaiset tiedostot
MS-A0402 Diskreetin matematiikan perusteet


V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

Johdatus graafiteoriaan

Diskreetin matematiikan perusteet Esimerkkiratkaisut 3 / vko 10

Kurssikoe on maanantaina Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.

Johdatus graafiteoriaan

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

DMP / Kevät 2016 / Mallit Harjoitus 6 / viikko 13 / alkuviikko

keskenään isomorfiset? (Perustele!) Ratkaisu. Ovat. Tämän näkee indeksoimalla kärjet kuvan osoittamalla tavalla: a 1 b 3 a 5

MS-A0402 Diskreetin matematiikan perusteet

Johdatus graafiteoriaan

0 v i v j / E, M ij = 1 v i v j E.

Diskreetit rakenteet

j(j 1) = n(n2 1) 3 + (k + 1)k = (k + 1)(k2 k + 3k) 3 = (k + 1)(k2 + 2k + 1 1)

Algoritmi on periaatteellisella tasolla seuraava:

Johdatus verkkoteoriaan 4. luento

MS-A0401 Diskreetin matematiikan perusteet Esimerkkejä ym., osa II

MS-A0401 Diskreetin matematiikan perusteet Esimerkkejä ym., osa II

MS-A0401 Diskreetin matematiikan perusteet Esimerkkejä ym., osa II

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto, osa II

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto, osa II

10. Painotetut graafit

MS-A0401 Diskreetin matematiikan perusteet Yhteenveto, osa II

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto, osa II

MS-A0401 Diskreetin matematiikan perusteet Yhteenveto, osa II

MS-A0401 Diskreetin matematiikan perusteet Yhteenveto, osa II

Puiden karakterisointi

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa II

Tehtävä 10 : 1. Tehtävä 10 : 2

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa II

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto, osa II

A TIETORAKENTEET JA ALGORITMIT

Ratkaisu. Tulkitaan de Bruijnin jonon etsimiseksi aakkostossa S := {0, 1} sanapituudelle n = 4. Neljän pituisia sanoja on N = 2 n = 16 kpl.

Datatähti 2019 loppu

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto, osa II

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.

Algoritmit 1. Luento 13 Ti Timo Männikkö

Tehtävä 8 : 1. Tehtävä 8 : 2

Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005

MS-A0402 Diskreetin matematiikan perusteet

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

MS-A0401 Diskreetin matematiikan perusteet

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa II

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa II

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa II

v 8 v 9 v 5 C v 3 v 4

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa.

Algoritmit 1. Luento 8 Ke Timo Männikkö

Kysymys: Voidaanko graafi piirtää tasoon niin, että sen viivat eivät risteä muualla kuin pisteiden kohdalla?

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m.

Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }?

Algoritmit 2. Luento 11 Ti Timo Männikkö

3.1 Lineaarikuvaukset. MS-A0004/A0006 Matriisilaskenta. 3.1 Lineaarikuvaukset. 3.1 Lineaarikuvaukset

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120

Algoritmit 1. Luento 9 Ti Timo Männikkö

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut

MS-A0401 Diskreetin matematiikan perusteet

VERKKOTEORIAN ALKEITA. Martti E. Pesonen

isomeerejä yhteensä yhdeksän kappaletta.

Eulerin verkkojen karakterisointi

MS-A0401 Diskreetin matematiikan perusteet Yhteenveto ja esimerkkejä ym., osa II

MS-A0004/A0006 Matriisilaskenta

Näytetään nyt relaatioon liittyvien ekvivalenssiluokkien olevan verkon G lohkojen särmäjoukkoja. Olkoon siis f verkon G jokin särmä.

MS-A0402 Diskreetin matematiikan perusteet

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

MS-A0401 Diskreetin matematiikan perusteet Yhteenveto ja esimerkkejä ym., osa II

Johdatus verkkoteoriaan luento Netspace

Algoritmit 1. Luento 1 Ti Timo Männikkö

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

811312A Tietorakenteet ja algoritmit V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit


Diskreetin matematiikan perusteet Malliratkaisut 2 / vko 38

58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 2, , vastauksia

b) Olkoon G vähintään kaksi solmua sisältävä puu. Sallitaan verkon G olevan

Algoritmit 2. Luento 13 Ti Timo Männikkö

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

Algoritmit 1. Luento 13 Ma Timo Männikkö

6.4. Järjestyssuhteet

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Verkon värittämistä hajautetuilla algoritmeilla

Pienin virittävä puu (minimum spanning tree)

13 Lyhimmät painotetut polut

10. Painotetut graafit

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto ja esimerkkejä ym., osa II

MS-A0402 Diskreetin matematiikan perusteet

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Äärellisten mallien teoria

Tietojenkäsittelytieteen ja tilastotieteen matematiikkaa 1/137

TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Jenna Laine. Ramseyn teoria

MS-C1340 Lineaarialgebra ja

Shorin algoritmin matematiikkaa Edvard Fagerholm

Tehtävä 4 : 2. b a+1 (mod 3)

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

Transkriptio:

MS-A0401 Diskreetin matematiikan perusteet Osa 6: Verkkoteoria Riikka Kangaslampi Syksy 2017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto

Verkkojen peruskäsitteitä

Motivaatiota (...) networks may be used to model a huge array of phenomena across all scientific and social disciplines. Examples include the World Wide Web, citation networks, social networks (e.g., Facebook), recommendation networks (e.g., Netflix), gene regulatory networks, neural connectivity networks, oscillator networks, sports playoff networks, road and traffic networks, chemical networks, economic networks, epidemiological networks, game theory, geospatial networks, metabolic networks, protein networks and food webs, to name a few. (Grady & Polimeni: Discrete Calculus. Springer 2010.) 1 / 46 R. Kangaslampi MS-A0401

Verkko Verkko on pari [V, E], missä V on joukko, jonka alkiot ovat verkon solmut, ja E {{a, b} : a, b V } on verkon solmujen välisten linkkien joukko. Verkko on suunnattu tai suuntaamaton riippuen siitä, tarkastellaanko yksi- vai kaksisuuntaisia linkkejä. Jos verkon kahden solmun välillä on linkki, niin ne ovat toistensa naapureita ja kyseisen linkin päätesolmut. Suuntamaton verkko [V, E] on yksinkertainen, jos {v, v} / E kaikilla v V, eli verkossa ei ole silmukoita. 2 / 46 R. Kangaslampi MS-A0401

Verkko Esimerkki 1 Montako linkkiä n-solmuisessa yksinkertaisessa verkossa voi enintään olla? ( ) n Vastaus:. Tällaista verkkoa kutsutaan täydelliseksi. 2 3 / 46 R. Kangaslampi MS-A0401

Verkko Verkon [V, E] polku (solmusta v 0 solmuun v n ) on jono [v 0, v 1,..., v n ], missä v j V, j = 0, 1,..., n ja jokaisella j = 1,..., n on olemassa linkki solmujen v j 1 ja v j välillä. Polun [v 0, v 1,..., v n ] pituus on n. Verkon [V, E] sykli (tai kierros) on sen polku [v 0, v 1,..., v n ] missä v n = v 0. Polku [v 0, v 1,..., v n ] on yksinkertainen jos v j v k, 0 j < k n. Sykli [v 0, v 1,..., v n ] on yksinkertainen jos [v 0, v 1,..., v n 1 ] on yksinkertainen ja suuntaamattomassa verkossa n 2. 4 / 46 R. Kangaslampi MS-A0401

Verkko Esimerkki 2 (Yhtenäinen, ei-yksinkertainen verkko) 1 4 7 10 2 5 8 11 3 6 9 12 Punaisella on piirretty yksinkertainen sykli [1, 2, 6, 8, 10, 7, 4, 1] ja vihreällä polku [3, 5, 9, 11, 12, 9], joka ei ole yksinkertainen. Solmujono [1, 2, 3, 4, 5, 6] ei sen sijaan ole polku, koska esimerkiksi {3, 4} ei ole linkki. 5 / 46 R. Kangaslampi MS-A0401

Solmun aste Määritelmä 3 Verkon (V, E) solmun v V aste on deg(v) = {A E : v A} eli niiden linkkien lukumäärä, joiden toinen päätepiste on v. Lause 4 (Kättelylemma) Jokaiselle verkolle (V, E) pätee deg(v) = 2 E. v V Todistus. Käydään linkit läpi yksi kerrallaan. Kukin linkki kasvattaa solmujen astelukujen summaa kahdella, sillä kunkin linkin molemmissa päissä on solmu, joiden astelukuun linkki lasketaan kerran. Siispä linkkien lukumäärä on puolet solmujen astelukujen summasta. 6 / 46 R. Kangaslampi MS-A0401

Solmun aste Esimerkki 5 Lasketaan kättelylemman avulla linkkien lukumäärä täydellisessä verkossa K n = (V, E), jossa siis V = n ja E sisältää kaikki mahdolliset linkit. Toisaalta deg(v) = n 1 kaikilla v V, joten deg(v) = n(n 1). v V Toisaalta (kättelylemma) 2 E = deg(v), joten v V E = 1 ( ) n 2 n(n 1) =. 2 7 / 46 R. Kangaslampi MS-A0401

Verkkoisomorfismi Isomorfismilla tarkoitetaan sellaista kahden joukon välistä bijektiota, joka säilyttää joukon rakenteen; esimerkiksi ryhmä- tai verkkorakenteen. Määritelmä 6 Kaksi verkkoa (V 1, E 1 ) ja (V 2, E 2 ) ovat isomorfiset, jos on olemassa niiden välinen isomorfismi eli bijektio f : V 1 V 2 jolle {u, v} E 1 {f (u), f (v)} E 2. Isomorfiset verkot ovat esitystä vaille samat. Esimerkiksi solmujen asteluvut ja syklien pituudet ovat samoja. 8 / 46 R. Kangaslampi MS-A0401

Verkkoisomorfismi Esimerkki 7 Ovatko alla olevat verkot isomorfiset? 3 2 c b 4 1 d a 5 6 e f Eivät. Vasemmanpuoleisessa verkossa ei ole yhtään sykliä, jonka pituus olisi 3, mutta sellaisia on oikeanpuoleisessa verkossa. Tästä seuraa, etteivät verkot voi olla isomorfiset. 9 / 46 R. Kangaslampi MS-A0401

Verkkoisomorfismi Esimerkki 8 Ovatko alla olevat verkot isomorfiset? 2 1 b a 5 e 3 4 c d Kyllä. Isomorfismiksi verkkojen välille kelpaa esim. ψ : V 1 V 2, missä ψ(2) = c ja ψ(4) = e (tai päinvastoin), jolloin täytyy olla ψ(1) = d, ψ(3) = b ja ψ(5) = a. 10 / 46 R. Kangaslampi MS-A0401

Kävely verkolla Määritelmä Kävely verkolla (V, E) on jono solmuja (v 0,..., v n ) siten, että {v i, v i+1 } E kaikilla i = 0,..., n 1. Luku n on kävelyn pituus. Kävely alkaa solmusta v 0 ja päättyy solmuun v n. Jos v 0 = v n, niin kävely on suljettu. Kävely voidaan ilmaista myös jonona linkkejä (e 1,..., e n ) siten, että kahdella peräkkäisellä linkillä on yhteinen solmu. Käsitteellinen ero polun (path) ja kävelyn (walk) välillä: polku voidaan kävellä kahteen eri suuntaan. 11 / 46 R. Kangaslampi MS-A0401

Yhtenäisyys Määritelmä Verkko on yhtenäinen, jos sen jokaisen kahden solmun välillä on kävely. (Yhtäpitävästi: polku.) Solmujen joukon relaatio u v u:n ja v:n välillä on polku on ekvivalenssi, joka jakaa verkon solmut yhtenäisiin ekvivalenssiluokkiin eli komponentteihin. 12 / 46 R. Kangaslampi MS-A0401

Eulerin kävely Määritelmä 9 Verkon Eulerin kävely on kävely, joka käy läpi verkon kaikki linkit täsmälleen kerran. Vastaavasti Eulerin sykli: Eulerin kävely, jossa lähtöpiste = päätepiste. Sovellus: Chinese postman problem Postimiehen kannattaa etsiä jakelualueelleen reitti, jossa samaa katua ei kävellä kahdesti ja jossa palataan lähtöpisteeseen. Tällainen löytyy täsmälleen silloin, kun jakelualueen ruutukaavasta löytyy Eulerin sykli. (Kadut = linkit, katujen risteykset = solmut.) 13 / 46 R. Kangaslampi MS-A0401

Eulerin kävely Lause 10 (Euler 1736) Yhtenäisellä verkolla on Eulerin sykli täsmälleen silloin, kun sen jokaisen solmun aste on parillinen. Todistus ( ) Jos verkolla on Eulerin sykli, niin sykli (kävely) saapuu kuhunkin solmuun yhtä monta kertaa kuin se lähtee ko. solmusta. ( ) Olkoon verkon (V, E) jokaisen solmun aste parillinen. Verkolla (V, E) on ainakin yksi sykli: 14 / 46 R. Kangaslampi MS-A0401

Eulerin kävely Todistus (jatkuu) Aloitetaan kävely mielivaltaisesta solmusta ja valitaan kullakin askeleella uusi linkki kunnes joku solmu toistuu. (Verkko on äärellinen, joten joku solmu toistuu lopulta. Siihen asti voidaan asteiden parillisuuden nojalla valita aina uusi linkki.) Kun edellä löydetyn syklin linkit poistetaan E:stä, niin saadun verkon (V, E ) kaikkien solmujen aste on edelleen parillinen. (Huom. poistettiin syklistä pelkät linkit.) Siten verkolla (V, E ) on jälleen vähintään yksi sykli, ja voidaan toistaa syklien poistamista kunnes yhtään linkkiä ei jää jäljelle. Näin alkuperäinen linkkien joukko E on yhdiste erillisistä sykleistä. 15 / 46 R. Kangaslampi MS-A0401

Eulerin kävely Todistus (jatkuu) Erilliset syklit voidaan edelleen asettaa järjestykseen siten, että peräkkäisillä sykleillä on yksi yhteinen solmu. (Jos tämä ei onnistuisi, niin verkko ei olisi yhtenäinen.) Etsitty Eulerin sykli saadaan, kun kävellään erilliset syklit läpi järjestyksessä seuraavasti: siirrytään seuraavaan sykliin heti kun kohdataan yhteinen solmu, viimeinen sykli kierretään kokonaan, ja lopuksi peruutetaan samojen yhteisten solmujen kautta ja kierretään syklit loppuun. 16 / 46 R. Kangaslampi MS-A0401

Eulerin kävely Esimerkki 11 (Terveisiä ala-asteelta) Voiko alla olevan kuvion piirtää nostamatta kynää paperista? Eli: onko vastaavalla verkolla Eulerin kävely? Vastaus: Kyllä. Perustelemme sen seuraavalla seurauksella edellisestä lauseesta: 17 / 46 R. Kangaslampi MS-A0401

Eulerin kävely Seuraus Verkolla on Eulerin kävely, joka ei ole sykli. Verkolla on täsmälleen kaksi solmua, joiden aste on pariton. Todistus. Kaksi paritonasteista solmua syntyy, kun poistetaan Eulerin syklistä yksi linkki, ja toisinpäin (yhdistetään paritonasteiset solmut linkillä). 18 / 46 R. Kangaslampi MS-A0401

Hamiltonin kävely Määritelmä 12 Verkon Hamiltonin kävely on kävely, joka käy läpi verkon kaikki solmut täsmälleen kerran. Vastaavasti Hamiltonin sykli: Hamiltonin kävely, jossa lähtöpiste = päätepiste ja välissä olevat solmut käydään läpi täsmälleen kerran. Siinä missä Eulerin kävelylle löytyi helppo kriteeri algoritmeineen, niin Hamiltonin kävely on vaikeampi juttu. Yhtäpitävää ehtoa ei tunneta! 19 / 46 R. Kangaslampi MS-A0401

Hamiltonin kävely Riittävä ehto: Lause 13 Lause (G. Dirac 1952) Jos verkolla on n 3 solmua siten, että kullekin solmulle v pätee deg(v) n/2, niin verkolla on Hamiltonin sykli. Todistus. Sivuutetaan. Ks. esim. http://www.proofwiki.org/wiki/dirac s_theorem 20 / 46 R. Kangaslampi MS-A0401

Naapurimatriisi (n m)-matriisi on taulukko, jossa on n riviä ja m saraketta. Esimerkiksi [ ] 2 1 3 A = 0 1 1 on 2 3-matriisi. Matriisin elementtiin viitataan ilmoittamalla rivin ja sarakkeen numerot, esimerkiksi yllä olevalle matriisille A(1, 3) = 3 ja A(2, 2) = 1. Matriisit esittävät lineaarikuvauksia, tähän perehdytään kurssilla MS-A000X Matriisilaskenta. Matriiseihin voidaan kuitenkin kerätä myös tieto verkon rakenteesta. 21 / 46 R. Kangaslampi MS-A0401

Naapurimatriisi Jos [V, E] on verkko, jossa on m solmua V = {v 1,... v m }, niin sen naapurimatriisi on m m-matriisi 1, {v j, v k } E, A(j, k) = 0, {v j, v k } / E. Naapurimatriisissa rivillä i on siis numero 1 sarakkeessa j, jos solmut v i ja v j ovat naapureita. 22 / 46 R. Kangaslampi MS-A0401

Naapurimatriisi Esimerkki 14 Verkon 2 4 1 3 5 naapurimatriisi on 0 1 1 0 0 1 0 1 0 0 A = 1 1 0 1 1. 0 0 1 0 1 0 0 1 1 0 23 / 46 R. Kangaslampi MS-A0401

Naapurimatriisi Matriiseita voidaan kertoa keskenään. (n n)-matriisien A ja B tulo AB on (n n)-matriisi, jossa AB(i, j) = n A(i, k)b(k, j) k=1 eli AB(i, j) on matriisin A rivin i ja matriisin B sarakkeen j skalaaritulo. (Tämä tulee tutuksi matriisilaskentakurssilla, nyt vain kuriositeettina.) Lemma 15 Jos n 1 niin A n (j, k) on n-pituisten polkujen lukumäärä solmusta v j solmuun v k. (Todistetaan kurssilla MS-E1050 Graph Theory) 24 / 46 R. Kangaslampi MS-A0401

Naapurimatriisi Esimerkki 15 (jatkuu) Nyt 2 1 1 1 1 1 2 1 1 1 A 2 = 1 1 4 1 1 1 1 1 2 1 1 1 1 1 2 2 3 5 2 2 3 2 5 2 2 ja A 3 = 5 5 4 5 5, 2 2 5 2 3 2 2 5 3 2 Matriisin A 3 alkio A 3 (1, 2) = 3 kertoo, että solmusta 1 solmuun 2 on kolme polkua, joiden pituus on 3. Nämä ovat [1, 3, 1, 2], [1, 2, 1, 2] ja [1, 2, 3, 2]. 25 / 46 R. Kangaslampi MS-A0401

Solmujen väritykset

Solmujen värittäminen Määritelmä 16 Verkon G = (V, E) solmuväritys on funktio ω : V {1, 2,..., k} (jollekin k) siten, että {u, v} E ω(u) ω(v). Pienintä lukua k, jolle tällainen funktio löytyy, sanotaan verkon G kromaattiseksi luvuksi ja merkitään χ(g). Esimerkki 17 26 / 46 R. Kangaslampi MS-A0401

Solmujen värittäminen Esimerkki 18 Täydelliselle n-solmuiselle verkolle K n pätee χ(k n ) = n χ(g) = 1 E = 0 χ(g) = 2 G on kaksijakoinen χ(g) 3: ei tunnettua kriteeriä. Linkkien väritys voidaan määritellä vastaavasti. Sille eivät kuitenkaan päde samat tulokset! 27 / 46 R. Kangaslampi MS-A0401

Sovellus: konfliktiverkot Esimerkki 19 Kuusi opiskelijaa A, B, C, D, E ja F tekevät kuutta eri projektityötä seuraavissa ryhmissä: 1. A, B, C, F 2. B, D 3. C, F 4. B, E 5. A, C, F 6. D, E, F. Jos kunkin projektin tekeminen valmiiksi kestää kokonaisen päivän kultakin ryhmän jäseneltä, onko mahdollista saada kaikkia projekteja valmiiksi vähemmässä kuin kuudessa päivässä? 28 / 46 R. Kangaslampi MS-A0401

Sovellus: konfliktiverkot Esimerkki 19 (jatkuu) Muodostetaan konfliktiverkko G, jonka kuusi solmua numeroidaan ryhmien mukaisilla numeroilla 1 7 ja jossa solmujen välillä on kaari ryhmillä on yhteisiä jäseniä. 5 4 6 3 1 2 Tällöin kaikkien projektien saaminen valmiiksi on mahdollista χ(g) päivässä. 29 / 46 R. Kangaslampi MS-A0401

Sovellus: konfliktiverkot Esimerkki 19 (jatkuu) Koska solmut {1, 2, 3, 6} ja niitä yhdistävät kaaret muodostavat täydellisen verkon K 4, niin on oltava χ(g) 4. Toisaalta näemme kuvasta, että solmut 5 ja 2 voidaan värittää samalla värillä, samoin solmut 4 ja 3. 5 4 6 3 1 2 Siten χ(g) = 4 eli neljä päivää riittää. 30 / 46 R. Kangaslampi MS-A0401

Sovellus: ohjelmointikielen kääntäjä Ohjelman silmukan (for, while) suorittaminen nopeutuu, kun kääntäjä tallentaa silmukassa toistuvasti käytetyt muuttujat tavallisen muistin asemesta suorittimen muistiin. Toisaalta suorittimen muistia on käytettävissä vähän. Muodostetaan verkko G, jonka solmut ovat silmukassa käytetyt muuttujat ja solmujen välillä on linkki, jos niitä vastaavien muuttujien on silmukkaa suoritettaessa oltava käytössä yhtäaikaa. Tarvittavien suoritinmuistipaikkojen määrä on tällöin χ(g). 31 / 46 R. Kangaslampi MS-A0401

Solmujen värittäminen ahneella algoritmilla Kromaattisen luvun löytäminen on vaikea ongelma: ei tunneta algoritmia, jonka nopeus solmujen lukumäärän kasvaessa olisi polynominen. Kuitenkin seuraavan kalvon ahne algoritmi on usein hyödyllinen sekä käytännössä että osana teoreettisia todistuksia ( by the greedy algorithm... ). Ahneen algoritmin antama luku riippuu järjestyksestä, jossa algoritmi käy läpi verkon solmut, ja ainakin yksi solmujen järjestys antaa verkon kromaattisen luvun. (Mietitään kohta miksi.) 32 / 46 R. Kangaslampi MS-A0401

Solmujen värittäminen ahneella algoritmilla Helppo, mutta ei välttämättä optimaalinen tapa solmujen värityksen löytämiseksi on seuraava ahne algoritmi: Ahne algoritmi Aseta solmut johonkin järjestykseen: [v 1, v 2,..., v n ]. Aseta värit johonkin järjestykseen: [c 1, c 2,..., c r ]. Väritä ensimmäinen solmu ensimmäisellä värillä, eli ω(v 1 ) = c 1. Jos solmut v 1,..., v k on väritetty, niin väritä solmu v k+1 ensimmäisellä käytettävissä olevalla värillä siten, että ehto ettei naapureita väritetä samalla värillä toteutuu, eli ω(v k+1 ) = c j missä j = min {i 1 : {v p, v k+1 } E & p k ω(v p ) c i }. 33 / 46 R. Kangaslampi MS-A0401

Solmujen värittäminen ahneella algoritmilla Esimerkki 20 Väritetään äskeinen konfliktiverkko ahneella algoritmilla, solmun numerojärjestyksessä ja värit järjestyksessä punainen, sininen, vihreä, keltainen, oranssi, violetti. 5 4 6 3 1 2 34 / 46 R. Kangaslampi MS-A0401

Solmujen värittäminen ahneella algoritmilla Lause 21 Olkoon verkon G solmujen suurin asteluku k. Tällöin χ(g) k + 1. Todistus. Kullakin solmulla on enintään k naapuria, joten enintään k väriä riittää naapurien värittämiseen, ja siten itse solmu voidaan värittää jollakin (k + 1):stä ensimmäisestä käytettävissä olevasta väristä. 35 / 46 R. Kangaslampi MS-A0401

Virittäjäpuut

Puu Määritelmä 22 Puu on yhtenäinen, syklitön verkko. Määritelmä 23 Juurrettu puu on puu, jonka yksi solmu v 0 on valittu sen juureksi. Tällöin solmun v taso (eng. level) on kävelyn (v 0,..., v) pituus solmu on lehti (eng. leaf) jos se on tasolla i eikä sillä ole naapureita tasolla i + 1. Esimerkki 24 Sukupuut, tiedostopuut, valintapuut. 36 / 46 R. Kangaslampi MS-A0401

Virittäjäpuu, painotettu verkko Määritelmä 25 Yhtenäisen verkon virittäjäpuu on puu, joka sisältää verkon kaikki solmut. (Tällainen löytyy aina; poistetaan sykleistä linkkejä. Huom. ei yksikäsitteinen.) Määritelmä 26 Painotettu verkko on verkko G = (V, E) varustettuna painofunktiolla w : E R. Verkon kokonaispaino on w(g) = e E w(e). Esimerkki 27 Kaupungit yhdistettyinä datakaapeleilla; w(e) on kaapelin e hinta, tai sähköverkot; w(e) on johtimen e resistanssi. 37 / 46 R. Kangaslampi MS-A0401

Minimaalinen virittäjäpuu (eng. MST) Määritelmä 28 Painotetun verkon G minimaalinen virittäjäpuu on sellainen G:n virittäjäpuu T, jolle w(t ) w(u) mille tahansa G:n virittäjäpuulle U. Ahne algoritmi (Prim) Valitaan linkki e 1, jonka paino on minimaalinen. Valitaan e 1 :n naapurilinkki e 2, jonka paino on e 1 :n naapurilinkkien joukossa minimaalinen. Jatketaan: joka vaiheessa valitaan tähänastisten linkkien naapurien joukosta minimaalinen siten, että puurakenne (yhtenäisyys, ei syklejä) säilyy Näin saadaan minimaalinen virittäjäpuu T, jonka linkit ovat {e 1,..., e n }. 38 / 46 R. Kangaslampi MS-A0401

MST (= Minimal Spanning Tree) Esimerkki 29 (Virittäjäpuu Primin algoritmilla) 3 A B 6 5 F 7 4 5 C 5 3 E 6 D 39 / 46 R. Kangaslampi MS-A0401

MST Miksi edellä saatu virittäjäpuu T todella on minimaalinen? Olkoon U T toinen virittäjäpuu ja olkoon e k = {u, v} ensimmäinen linkeistä {e 1,..., e n }, joka ei ole U:n linkki. Kävellään u:sta v:hen puussa U; olkoon e tämän kävelyn ensimmäinen linkki, joka ei ole joukossa {e 1,..., e k 1 }. Tällöin ahneen algoritmin nojalla w(e k ) w(e). Korvataan linkki e linkillä e k. Virittäjäpuu U tulee korvattua virittäjäpuulla U k, jolle w(u k ) = w(u) w(e) + w(e k ) w(u). Olkoon e k+1 ensimmäinen T :n linkki, joka ei ole U k :n linkki. Toistetaan samaa prosessia; saadaan virittäjäpuiden jono U, U k,..., U n = T siten, että w(t ) = w(u n ) w(u n 1 )... w(u k ) w(u). 40 / 46 R. Kangaslampi MS-A0401

MST Edellä esitelty ahne MST-algoritmi oli Primin algoritmi. Toinen ahne algoritmi on Kruskalin algoritmi: valitaan linkki e 1, jonka paino on minimaalinen valitaan linkki e 2, jonka paino on minimaalinen joukossa E \ {e 1 } kussakin vaiheessa hylätään sellaiset linkit, jotka muodostaisivat syklin; jatketaan kunnes virittäjäpuu. Esimerkit näistä algoritmeista verkkotehtävissä. 41 / 46 R. Kangaslampi MS-A0401

MST Esimerkki 30 (Virittäjäpuu Kurskalin algoritmilla) 3 A B 6 5 F 7 4 5 C 5 3 E 6 D 42 / 46 R. Kangaslampi MS-A0401

Lopuksi

Jatkoa? Monta diskreetin matematiikan aihealuetta jäi käsittelemättä. Hyvä niin, tästä voi sitten jatkaa eteenpäin! Diskreetin matematiikan jatkokursseja: MS-C1080 - Algebran perusrakenteet MS-E1050 - Graph theory MS-E1051 - Combinatorics MS-E1110 - Number theory MS-E1111 - Galois theory 43 / 46 R. Kangaslampi MS-A0401

Jatkoa? Verkoista kiinnostunut hyötyy myös tilastotieteestä, esim. MS-C2104 - Tilastollisen analyysin perusteet MS-C2103 - Koesuunnittelu ja tilastolliset mallit ja diskreetistä optimoinnista esim. MS-C2105 - Optimoinnin perusteet MS-E2140 - Linear programming MS-E2139 - Nonlinear programming unohtamatta tietotekniikan laitoksen verkkoihin ja algoritmeihin liittyviä kursseja. 44 / 46 R. Kangaslampi MS-A0401

Lopuksi Palautekysely aukeaa lähipäivinä, vastauslinkki tulee sähköpostitse. Jos haluat osallistua loppukokeeseen, muista ilmoittautua Oodissa. 45 / 46 R. Kangaslampi MS-A0401

Lopuksi Suurkiitos kaikille! 46 / 46 R. Kangaslampi MS-A0401