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