Verkon värittämistä hajautetuilla algoritmeilla

Samankaltaiset tiedostot
Itsestabilointi: perusmääritelmiä ja klassisia tuloksia

Seminaari: Hajautetut algoritmit syksy 2009

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

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

Parinmuodostuksesta tietojenkäsittelytieteen silmin. Petteri Kaski Tietojenkäsittelytieteen laitos Aalto-yliopisto

Verkon värittäminen ja riippumattomat joukot: johdantoa ja sovelluksia

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

58131 Tietorakenteet (kevät 2009) Harjoitus 11, ratkaisuja (Topi Musto)

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Algoritmit 2. Luento 10 To Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

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

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

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

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

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

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

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

Algoritmit 2. Luento 9 Ti Timo Männikkö

Luku 8. Aluekyselyt. 8.1 Summataulukko

Algoritmit 2. Luento 14 Ke Timo Männikkö

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe ratkaisuja (Jyrki Kivinen)

Datatähti 2019 loppu

Algoritmit 2. Luento 7 Ti Timo Männikkö

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

811312A Tietorakenteet ja algoritmit, , Harjoitus 6, Ratkaisu

Algoritmit 2. Luento 13 Ti Timo Männikkö

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

Algoritmit 1. Luento 10 Ke Timo Männikkö

Tietorakenteet ja algoritmit - syksy

Algoritmit 1. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 11 Ti Timo Männikkö

6. Approksimointialgoritmit

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

Diskreetit rakenteet

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

Yleinen paikallinen vakautuva synkronointialgoritmi

Algoritmi on periaatteellisella tasolla seuraava:

Algoritmit 1. Luento 13 Ti Timo Männikkö

3SAT-ongelman NP-täydellisyys [HMU ]

10. Painotetut graafit

Algoritmit 1. Luento 8 Ke Timo Männikkö

7.4 Sormenjälkitekniikka

Turingin koneen laajennuksia

Algoritmit 1. Luento 14 Ke Timo Männikkö

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

Diskreetin matematiikan perusteet Esimerkkiratkaisut 3 / vko 10

Algoritmit 2. Luento 14 To Timo Männikkö

7. Aikavaativuus. Ohjelmistotekniikan laitos OHJ-2300 Johdatus tietojenkäsittelyteoriaan, syksy

Tietorakenteet, laskuharjoitus 7, ratkaisuja

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

Tehtävä 2: Tietoliikenneprotokolla

Jukka Tulkki 8. Laskuharjoitus (ratkaisut) Palautus torstaihin 3.4 klo 12:00 mennessä. x 2

Oikeasta tosi-epätosi -väittämästä saa pisteen, ja hyvästä perustelusta toisen.

811312A Tietorakenteet ja algoritmit I Johdanto

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Algoritmit 1. Demot Timo Männikkö

811312A Tietorakenteet ja algoritmit, , Harjoitus 6, Ratkaisu

Algoritmit 1. Luento 2 Ke Timo Männikkö

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

Stabilointi. Marja Hassinen. p.1/48

3. Laskennan vaativuusteoriaa

PARITUS KAKSIJAKOISESSA

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

MS-A0402 Diskreetin matematiikan perusteet

MS-A0402 Diskreetin matematiikan perusteet

Diskreetin matematiikan perusteet Laskuharjoitus 5 / vko 41

MS-A0401 Diskreetin matematiikan perusteet

Algoritmit 1. Luento 9 Ti Timo Männikkö

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

Laskennan vaativuus ja NP-täydelliset ongelmat

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

Johdatus verkkoteoriaan 4. luento

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

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Stabiloivat synkronoijat ja nimeäminen

Maximum likelihood-estimointi Alkeet

Algoritmit 2. Luento 5 Ti Timo Männikkö

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina

Algoritmit 2. Luento 9 Ti Timo Männikkö

v 1 v 2 v 3 v 4 d lapsisolmua d 1 avainta lapsen v i alipuun avaimet k i 1 ja k i k 0 =, k d = Sisäsolmuissa vähint. yksi avain vähint.

MS-A0402 Diskreetin matematiikan perusteet

Kytkentäkentät, luento 2 - Kolmiportaiset kentät

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.

Integrointialgoritmit molekyylidynamiikassa

Johdatus graafiteoriaan

Harjoitus 1 ( )

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

Algoritmit 1. Luento 10 Ke Timo Männikkö

Konsensusongelma hajautetuissa järjestelmissä

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

Algoritmit 2. Luento 4 Ke Timo Männikkö

Algoritmit 1. Luento 7 Ti Timo Männikkö

Kombinatorinen optimointi

Transkriptio:

Verkon värittämistä hajautetuilla algoritmeilla 5 12 30 19 72 34 Jukka Suomela 15 77 18 4 9. tammikuuta 2012 19 2 68

Verkko 2

Verkko solmu 3

Verkko solmu kaari 4

Hajautettu järjestelmä solmu (tietokone) kaari (tiedonsiirtoyhteys) 5

Verkon väritys Naapurisolmut aina eri värisiä kukin solmu v tulostaa värin c(v) {1, 2,, k} jos verkossa on kaari {u, v} niin oltava c(u) c(v) 6

Verkon väritys Sovelluksia: resurssien jakaminen, aikatauluttaminen kaari = radiolähetykset häiritsevät toisiaan väri = radiokanava kaikki voivat lähettää samaan aikaan 7

Verkon väritys Keskeinen hajautetun laskennan alalla Moni ongelma palautettavissa verkon väritykseen joskus myös päinvastoin nopea algoritmi verkon väritykseen nopea algoritmi maksimaalisiin riippumattomiin joukkoihin 8

Verkon väritys Värittäminen mahdollisimman pienellä määrällä värejä vaikeaa olisiko 3 väriä riittänyt tässä? yleisesti NP-kova ongelma 9

Verkon väritys Värittäminen mahdollisimman pienellä määrällä värejä vaikeaa Mutta hyvin helppoa, jos värejä käytettävissä reilusti ahne algoritmi 10

Verkon väritys hajautetulla algoritmilla? Värittäminen mahdollisimman pienellä määrällä värejä vaikeaa Mutta hyvin helppoa, jos värejä käytettävissä reilusti ahne algoritmi 11

Verkon väritys Miten rikkoa symmetria? identtiset tietokoneet sama deterministinen algoritmi käynnistetään samaan aikaan, toimivat synkronisesti symmetrinen verkko 12

Verkon väritys Kaikki solmut samassa tilassa ennen kierrosta 1 kaikki lähettävät samat viestit kierroksella 1 kaikki vastaanottavat samat viestit kierroksella 1 Kaikki solmut samassa tilassa kierroksen 1 jälkeen 13

Verkon väritys Kaikki solmut samassa tilassa ennen kierrosta i kaikki lähettävät samat viestit kierroksella i kaikki vastaanottavat samat viestit kierroksella i Kaikki solmut samassa tilassa kierroksen i jälkeen 14

Verkon väritys Jos kierroksen i jälkeen jokin solmu tulostaa värin x ja pysähtyy 15

Verkon väritys Jos kierroksen i jälkeen jokin solmu tulostaa värin x ja pysähtyy niin kaikki muutkin solmut tulostavat samanaikaisesti saman värin x ja pysähtyvät 16

Verkon väritys Mikään deterministinen hajautettu algoritmi ei voi tuottaa kelvollista väritystä (esim. syklissä) Ellei käytettävissä ole jotain lisäinformaatiota, joka rikkoo symmetrian 17

Solmujen nimet Oletetaan, että kullakin solmulla on yksilöllinen tunniste esim. IP-osoite, MAC-osoite, koneen nimi 72 5 12 30 19 34 Tällöin väritys on 15 4 helppo löytää ahneesti 77 18 19 2 68 18

Ahne väritys Solmu aktiivinen, jos sen oma tunniste on pienempi kuin naapureilla 5 12 30 19 72 15 77 18 34 4 19 2 68 19

Ahne väritys Solmu aktiivinen, jos sen oma tunniste on pienempi kuin naapureilla Aktiiviset solmut 5 12 30 19 valitsevat ensimmäisen 72 34 vapaan värin voidaan tehdä samanaikaisesti rinnakkain 15 77 19 2 68 18 4 20

Ahne väritys Solmu aktiivinen, jos sen oma tunniste on pienempi kuin naapureilla unohdetaan naapurit, jotka on jo väritetty 5 12 30 19 72 34 15 4 77 18 19 2 68 21

Ahne väritys Solmu aktiivinen, jos sen oma tunniste on pienempi kuin naapureilla Aktiiviset solmut 5 12 30 19 valitsevat ensimmäisen 72 34 vapaan värin 15 4 77 18 19 2 68 22

Ahne väritys Solmu aktiivinen, jos sen oma tunniste on pienempi kuin naapureilla unohdetaan naapurit, jotka on jo väritetty 5 12 30 19 72 34 15 4 77 18 19 2 68 23

Ahne väritys Solmu aktiivinen, jos sen oma tunniste on pienempi kuin naapureilla Aktiiviset solmut 5 12 30 19 valitsevat ensimmäisen 72 34 vapaan värin 15 4 77 18 19 2 68 24

Ahne väritys Löydetään aina kelvollinen väritys Esim. syklissä tarvitaan vain 3 väriä 5 12 30 19 yleisemmin: enintään + 1 väriä, jossa = verkon maksimiasteluku 72 15 77 18 34 4 19 2 68 25

Ahne väritys Ahne algoritmi on kuitenkin pahimmassa tapauksessa hyvin hidas esim. solmujen tunnisteet kasvavassa järjestyksessä pitkin sykliä 12 11 13 1 2 3 4 5 10 6 9 8 7 26

Ahne väritys Ahne algoritmi on kuitenkin pahimmassa tapauksessa hyvin hidas esim. solmujen tunnisteet kasvavassa järjestyksessä pitkin sykliä 12 11 13 1 2 3 4 5 10 6 9 8 7 27

Ahne väritys Ahne algoritmi on kuitenkin pahimmassa tapauksessa hyvin hidas esim. solmujen tunnisteet kasvavassa järjestyksessä pitkin sykliä 12 11 13 1 2 3 4 5 10 6 9 8 7 28

Ahne väritys Ahne algoritmi on kuitenkin pahimmassa tapauksessa hyvin hidas esim. solmujen tunnisteet kasvavassa järjestyksessä pitkin sykliä 12 11 13 1 2 3 4 5 10 6 9 8 7 29

Ahne väritys Ahne algoritmi on kuitenkin pahimmassa tapauksessa hyvin hidas esim. solmujen tunnisteet kasvavassa järjestyksessä pitkin sykliä 12 11 13 1 2 3 4 5 10 6 9 8 7 30

Ahne väritys Ahne algoritmi on kuitenkin pahimmassa tapauksessa hyvin hidas esim. solmujen tunnisteet kasvavassa järjestyksessä pitkin sykliä 12 11 13 1 2 3 4 5 jne 10 6 9 8 7 31

Ahne väritys Ahne algoritmi on kuitenkin pahimmassa tapauksessa hyvin hidas esim. solmujen tunnisteet kasvavassa järjestyksessä pitkin sykliä 12 11 13 1 2 3 4 5 jne jne 10 6 9 8 7 32

Ahne väritys Ahne algoritmi on kuitenkin pahimmassa tapauksessa hyvin hidas esim. solmujen tunnisteet kasvavassa järjestyksessä pitkin sykliä 12 11 13 1 2 3 4 5 valmistuihan se lopulta 10 6 9 8 7 33

Ahne väritys Vaaditaan pahimmillaan Θ(n) kommunikaatiokierrosta n-solmuisessa verkossa 13 1 2 3 Onko mahdollista 12 4 nopeuttaa? 11 5 10 6 9 8 7 34

Nopea väritys Keskitytään yksinkertaiseen erikoistapaukseen sykli 5 12 30 19 solmuilla uniikit nimet joukosta {1, 2,, n} 72 34 kaaret suunnistettu: jokaisella solmulla yksi edeltäjä ja yksi seuraaja 15 77 19 2 68 18 4 35

Nopea väritys Tulkitaan solmujen nimet väritykseksi! kelvollinen väritys mutta hyvin suuri määrä värejä 5 12 30 19 Ratkaistaan sitten 72 34 värinvähennysongelma pienennetään värien määrää 15 77 18 4 Toistetaan 19 2 68 36

Värinvähennys 9252 13348 1029 13573 3108 5443 15715 7491 7523 9315 Annettu väritys, suuri väripaletti 3139 15683 3427 37

Värinvähennys 9252 13348 1029 13573 9315 15715 3108 Verrataan omaa väriä edeltäjän väriin binäärilukuna 5443 7491 3139 7523 3427 110001000011 11110101000011 15683 38

Värinvähennys 9252 13348 1029 13573 3108 5443 9315 15715 Bitti numero 8 eroaa 7491 3139 7523 10001 (8, 1) 110001000011 11110101000011 15683 3427 39

Värinvähennys 9252 13348 1029 13573 3108 5443 15715 Bitti numero 8 eroaa 7491 9315 1110101000011 3139 7523 10000 10001 (8, 0) (8, 1) 110001000011 11110101000011 15683 3427 40

Värinvähennys 9252 13348 1029 13573 3108 Bitti numero 11 eroaa 5443 15715 1010101000011 7491 9315 10111 (11, 1) 1110101000011 3139 7523 10000 10001 (8, 0) (8, 1) 110001000011 11110101000011 15683 3427 41

Värinvähennys Uudet värit 23 10111 16 10000 10001 17 42

Värinvähennys Kelvollinen väritys! 23 10111 (11, 1) eri bitti 16 10000 10001 (8, 0) (8, 1) 17 43

Värinvähennys Kelvollinen väritys! 23 10111 (11, 1) eri bitti 16 10000 10001 (8, 0) (8, 1) tai sama bitti, eri arvo 17 44

Värinvähennys 0 22 25 1 17 3 17 23 16 25 Yhden kierroksen jälkeen 16 17 45

Värinvähennys 0 3 1 6 9 3 1 5 0 0 Kahden kierroksen jälkeen 1 46

Värinvähennys 0 1 2 0 1 3 1 2 0 Kolmen kierroksen jälkeen 1 47

Värinvähennys Väripaletin kokoa voidaan vähentää k väristä O(log k) väriin yhdessä kierroksessa Päästään hyvin nopeasti 6 väriin Esim.: 2 128 256 16 8 6 Lopuksi ahneella algoritmilla 3 väriin 48

Värinvähennys Värien määrä vähennetty n 3 Yhteensä O(log* n) kierrosta log* x = montako kertaa pitää ottaa x:stä logaritmi, jotta tulos olisi alle 1 äärimmäisen hitaasti kasvava funktio! log* 10 = 3, log* 10000 = 4, log* 10 10000 = 5, 49

Yhteenveto Suunnatussa syklissä on mahdollista löytää 3-väritys erittäin nopeasti O(log* n) kommunikaatiokierrosta riittää Osoittautuu, että tämä algoritmi on myös asymptoottisesti nopein o(log* n) kommunikaatiokierrosta ei riitä lisää tästä IV periodin kurssilla! 50