MS-A0402 Diskreetin matematiikan perusteet

Samankaltaiset tiedostot
MS-A0401 Diskreetin matematiikan perusteet


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

Johdatus graafiteoriaan

Johdatus graafiteoriaan

Diskreetin matematiikan perusteet Esimerkkiratkaisut 3 / vko 10

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

MS-A0402 Diskreetin matematiikan perusteet

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

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

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

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

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

Johdatus graafiteoriaan

Algoritmi on periaatteellisella tasolla seuraava:

Diskreetit rakenteet

10. Painotetut graafit

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

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

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto, osa II

MS-A0401 Diskreetin matematiikan perusteet Yhteenveto, osa II

Puiden karakterisointi

MS-A0401 Diskreetin matematiikan perusteet Yhteenveto, osa II

MS-A0401 Diskreetin matematiikan perusteet Yhteenveto, osa II

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

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

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

Algoritmit 1. Luento 13 Ti Timo Männikkö

Johdatus verkkoteoriaan 4. luento

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

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto, osa II

Datatähti 2019 loppu

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

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

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

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

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto, osa II

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

MS-A0401 Diskreetin matematiikan perusteet

Algoritmit 1. Luento 8 Ke Timo Männikkö

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

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 }?

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

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

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

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Algoritmit 1. Luento 9 Ti Timo Männikkö

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

isomeerejä yhteensä yhdeksän kappaletta.

A TIETORAKENTEET JA ALGORITMIT

Eulerin verkkojen karakterisointi

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 Esimerkkejä, todistuksia ym., osa II

Algoritmit 2. Luento 11 Ti Timo Männikkö

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

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

MS-A0402 Diskreetin matematiikan perusteet

VERKKOTEORIAN ALKEITA. Martti E. Pesonen

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

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

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

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

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

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

MS-A0401 Diskreetin matematiikan perusteet

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

Algoritmit 1. Luento 13 Ma Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö

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

Diskreetin matematiikan perusteet Malliratkaisut 2 / vko 38

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

Pienin virittävä puu (minimum spanning tree)

13 Lyhimmät painotetut polut

MS-A0402 Diskreetin matematiikan perusteet

10. Painotetut graafit

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

6.4. Järjestyssuhteet

Tietojenkäsittelytieteen ja tilastotieteen matematiikkaa 1/137

Verkon värittämistä hajautetuilla algoritmeilla

PARITUS KAKSIJAKOISESSA

v 8 v 9 v 5 C v 3 v 4

Johdatus verkkoteoriaan luento Netspace

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

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

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

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

Eräs keskeinen algoritmien suunnittelutekniikka on. Palauta ongelma johonkin tunnettuun verkko-ongelmaan.

Yhtenäisyydestä. Johdanto. Lähipisteavaruus. Tuomas Korppi


Äärellisten mallien teoria

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

Shorin algoritmin matematiikkaa Edvard Fagerholm

Tarkennamme geneeristä painamiskorotusalgoritmia

1 Määrittelyjä ja aputuloksia

MS-A0402 Diskreetin matematiikan perusteet

Transkriptio:

MS-A0402 Diskreetin matematiikan perusteet Osa 6: Verkkoteoria Riikka Kangaslampi 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 / 44 R. Kangaslampi MS-A0402

Verkko Suunnattu verkko on pari [V, E], missä V on joukko, jonka alkiot ovat verkon solmut ja E on joukon V V osajoukko, jonka alkiot ovat solmujen väliset (suunnatut) kaaret eli linkit. Suuntaamaton verkko (tai vain 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 kaarien joukko. Jos verkon kahden solmun välillä on kaari, niin ne ovat toistensa naapureita ja kyseisen kaaren päätesolmut. Suuntamaton verkko [V, E] on yksinkertainen, jos {v, v} = {v} / E kaikilla v V ja suunnatun verkon tapauksessa jos [v, v] / E kaikilla v V. 2 / 44 R. Kangaslampi MS-A0402

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

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 kaari 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 / 44 R. Kangaslampi MS-A0402

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 kaari. 5 / 44 R. Kangaslampi MS-A0402

Solmun aste Määritelmä 3 Verkon (V, E) solmun v V aste on deg(v) = {A E : v A} eli niiden kaarien 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 kaaret läpi yksi kerrallaan. Kukin kaari kasvattaa solmujen astelukujen summaa kahdella, sillä kunkin kaaren molemmissa päissä on solmu, joiden astelukuun kaari lasketaan kerran. Siispä kaarien lukumäärä on puolet solmujen astelukujen summasta. 6 / 44 R. Kangaslampi MS-A0402

Solmun aste Esimerkki 5 Lasketaan kättelylemman avulla kaarien lukumäärä täydellisessä verkossa K n = (V, E), jossa siis V = n ja E sisältää kaikki mahdolliset kaaret. 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 / 44 R. Kangaslampi MS-A0402

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 / 44 R. Kangaslampi MS-A0402

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 / 44 R. Kangaslampi MS-A0402

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 / 44 R. Kangaslampi MS-A0402

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 kaaria (e 1,..., e n ) siten, että kahdella peräkkäisellä kaarella on yhteinen solmu. Käsitteellinen ero polun (path) ja kävelyn (walk) välillä: polku voidaan kävellä kahteen eri suuntaan. 11 / 44 R. Kangaslampi MS-A0402

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 / 44 R. Kangaslampi MS-A0402

Eulerin kävely Määritelmä 9 Verkon Eulerin kävely on kävely, joka käy läpi verkon kaikki kaaret 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 = kaaret, katujen risteykset = solmut.) 13 / 44 R. Kangaslampi MS-A0402

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 / 44 R. Kangaslampi MS-A0402

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

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 / 44 R. Kangaslampi MS-A0402

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

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 kaari, ja toisinpäin (yhdistetään paritonasteiset solmut kaarella). 18 / 44 R. Kangaslampi MS-A0402

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 / 44 R. Kangaslampi MS-A0402

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 / 44 R. Kangaslampi MS-A0402

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. Lemma 14 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) 21 / 44 R. Kangaslampi MS-A0402

Naapurimatriisi Esimerkki 15 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 22 / 44 R. Kangaslampi MS-A0402

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]. 23 / 44 R. Kangaslampi MS-A0402

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 24 / 44 R. Kangaslampi MS-A0402

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ä. Kaarien väritys voidaan määritellä vastaavasti. Sille eivät kuitenkaan päde samat tulokset! 25 / 44 R. Kangaslampi MS-A0402

Sovellus: konfliktiverkot Esimerkki 19 Viisi opiskelijaa A, B, C, D ja E tekevät kuutta eri projektityötä seuraavissa ryhmissä: 1. A, B, C 2. B, D 3. B, C 4. B, E 5. A, C 6. D, E. 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ä? 26 / 44 R. Kangaslampi MS-A0402

Sovellus: konfliktiverkot Esimerkki 19 (jatkuu) Muodostetaan konfliktiverkko G, jonka kuusi solmua numeroidaan ryhmien mukaisilla numeroilla 1 6 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ä. 27 / 44 R. Kangaslampi MS-A0402

Sovellus: konfliktiverkot Esimerkki 19 (jatkuu) Koska solmut {1, 2, 3, 4} 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 6 ja 3. 5 4 6 3 1 2 Siten χ(g) = 4 eli neljä päivää riittää. 28 / 44 R. Kangaslampi MS-A0402

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 käytettävissä vähän. Muodostetaan verkko G, jonka solmut ovat silmukassa käytetyt muuttujat ja solmujen välillä on kaari jos niitä vastaavien muuttujien on silmukkaa suoritettaessa oltava käytössä yhtäaikaa. Tarvittavien suoritinmuistipaikkojen määrä on tällöin χ(g). 29 / 44 R. Kangaslampi MS-A0402

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.) 30 / 44 R. Kangaslampi MS-A0402

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 }. 31 / 44 R. Kangaslampi MS-A0402

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 32 / 44 R. Kangaslampi MS-A0402

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ä. 33 / 44 R. Kangaslampi MS-A0402

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. 34 / 44 R. Kangaslampi MS-A0402

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ä kaaria. 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. 35 / 44 R. Kangaslampi MS-A0402

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 kaari e 1, jonka paino on minimaalinen. Valitaan e 1 :n naapurikaari e 2, jonka paino on e 1 :n naapurikaarien joukossa minimaalinen. Jatketaan: joka vaiheessa valitaan tähänastisten kaarien naapurien joukosta minimaalinen siten, että puurakenne (yhtenäisyys, ei syklejä) säilyy Näin saadaan minimaalinen virittäjäpuu T, jonka kaaret ovat {e 1,..., e n }. 36 / 44 R. Kangaslampi MS-A0402

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

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 kaarista {e 1,..., e n }, joka ei ole U:n kaari. Kävellään u:sta v:hen puussa U; olkoon e tämän kävelyn ensimmäinen kaari, joka ei ole joukossa {e 1,..., e k 1 }. Tällöin ahneen algoritmin nojalla w(e k ) w(e). Korvataan kaari e kaarella 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 kaari, joka ei ole U k :n kaari. 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). 38 / 44 R. Kangaslampi MS-A0402

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

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

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 41 / 44 R. Kangaslampi MS-A0402

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. 42 / 44 R. Kangaslampi MS-A0402

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

Lopuksi Suurkiitos kaikille! 44 / 44 R. Kangaslampi MS-A0402