7.4. Eulerin graafit 1 / 22 Viivojen läpikäynti Graafin pisteiden/viivojen läpikäyminen esiintyy usein sovelluksissa: Etsintäalgoritmit, reititykset Läpikäyminen tehdään nopeimmin, kun yhtäkään viivaa/pistettä ei kuljeta kahta kertaa. Milloin mahdollista? 2 / 22 Königsberg Aikaisemmin tarkasteltiin Königsbergin siltaongelmaa: 3 / 22 1
Määritelmä GraafillaG = (V,E) on Eulerin reitti (Euler trail), jos se sisältää reitin jossa jokaineng:n viiva esiintyy. Suljettu Eulerin reitti on Eulerin kierros (Euler tour). Yhtenäinen graafi on Eulerin graafi tai euleriaaninen (eulerian), jos se sisältää Eulerin kierroksen. Selvästi aina kune 1 e 2 e n on Eulerin kierros, niin sitä on myöse i e i+1 e n e 1 e 2 e i 1. 4 / 22 Siltaongelman ratkaisu Euler ratkaisi Königsbergin siltaongelman todistamalla toisenpuolen seuraavasta tuloksesta. Toisen osan todisti Hierholzer (1873) Lause 7.5. Yhtenäinen graafi (myös multigraafi) on Eulerin graafi jos ja vain jos jokaisen pisteen aste on parillinen. Todistus. (Euler 1736) OlkoonW : u u Eulerin kierros. Olkoonv W piste joka esiintyyk kertaaw :ssä. Joka kerta kunw :ssä viiva saapuu pisteeseenv, niin se myös lähtee pisteestäv. v:n aste on parillinen. Pisteenuaste on parillinen, koskaw alkaau:sta ja loppuuu:hun. 5 / 22 2
Todistus jatkoa Hierholzer (1873) Oletus:G = (V,E) on yhtenäinen ja ei-triviaali graafi, jonka jokaisen pisteen aste on parillinen. Väite:Gon Eulerin graafi. OlkoonW, pising:n reitti: W = e 1 e 2 e n : v 0 vn, jollee i = v i 1 v i. Viivae = v n u E e W. Muuten reittiwe on pidempi kuinw. Josv 0 v n ja pistev n esiintyyk kertaa polussaw, niin silloinv n :stä lähtevien/saapuvien viivojen määrä olisi 2(k 1)+1 Siis pisteenv n aste olisi pariton. Oltavav 0 = v n eli reitti W on suljettu. 6 / 22 Todistus jatkoa 2 JosW ei ole Eulerin kierros, niin on olemassa viivaf = v i u E jollakinijaf / W. (G on yhtenäinen) Reitti e i+1 e i+2 e n e 1 e i f on pidempi kuinw Ristiriita reitinw valinnan suhteen. 7 / 22 3
Eulerin reitin olemassaolo Ed. lause Graafi, jonka jonkin pisteen aste on pariton, ei sisällä Eulerin kierrosta. Handshaking lemma Graafin parittoman asteen omaavien pisteiden lukumäärä on aina parillinen. Ei ole olemassa graafia jolla on vain yksi parittoman asteen omaava piste. 8 / 22 Eulerin reitin olemassaolo OlkoonG = (V,E) graafi, jossa on täsmälleen kaksi parittoman asteen omaavaa pistettäujav. G+e on uusi graafi (tai multigraafi), missäe = uv on uusi viiva Jokaisen graafing+episteen aste on parillinen G+e sisältää Eulerin kierroksen (ja tietenkin viivaeesiintyy siinä) Poistamalla tästä kierroksesta viivaesaadaan graafingeulerin reittiu v. 9 / 22 4
Eulerin reitti On todistettu: Lause 7.6. Yhtenäinen graafi (myös multigraafi) sisältää Eulerin reitin Graafi sisältää korkeintaan kaksi parittoman asteen omaavaa pistettä. 10 / 22 Königsberg Pisteiden A, B, C ja D aste on pariton. Königsbergin siltaongelmalle ei ole ratkaisua: 11 / 22 5
7.5. Hamiltonin graafit 12 / 22 Pisteiden läpikäynti Milloin graafin pisteet voidaan kulkea läpi täsmälleen kerran? Määritelmä. Graafin G = (V, E) polku P on Hamiltonin polku (Hamilton path): Jokainen graafingpiste esiintyy polussap. PiiriC on Hamiltonin piiri: Jokainen graafin piste esiintyy piirissäc. Graafi on jäljitettävissä oleva (traceable), jos se sisältää Hamiltonin polun. Graafi on Hamiltonin graafi (Hamilton graph), jos se sisältää Hamiltonin piirin. 13 / 22 Ominaisuuksia Jokainen piste esiintyy Hamiltonin polussa (piirissä) täsmälleen kerran. C : u 1 u 2 u n u 1 on Hamiltonin piiri u i u i+1 u n u 1 u i 1 u i on Hamiltonin piiri 14 / 22 6
Esimerkkejä Hamiltonin graafeja PiiriC n,n 3 Täydellinen graafik n,n 3 15 / 22 Hamiltonin graafin karakterisointi Hamiltonin graafit ja Eulerin graafit muodostavat erilliset graafiluokat. Hamiltonin graafeille ei tunneta vastaavaa karakterisointia, kuin mikä oli pisteiden asteiden parillisuus Eulerin graafeille. Ongelma: OnkoGHamiltonin graafi? onnp-täydellinen 16 / 22 7
Hamiltonin graafi ja hyperkuutio Rengas malli (ring model) on eräs rinnakkaislaskennassa käytetty laskentamalli, missä pisteet edustavat prosessoreja ja kahden pisteen välillä on viiva silloin, kun kyseiset prosessorit voivat kommunikoida suoraan keskenään. Graafiesitys tälle mallille on piiri. Hyperkuutio on rinnakkaislaskennan malli, jossa yhteyksiä (viivoja) on huomattavan paljon. Voikon-kuutio simuloida2 n prosessorin rengasmallia? Lause 7.7. HyperkuutioQ n on Hamiltonin graafi aina kunn = 2,3,... Tod.... 17 / 22 Kauppamatkustaja ongelma 18 / 22 Määritelmä Kauppamatkustaja ongelma: (Travelling salesman problem) Kauppamatkustajan on käytävä useassa kaupungissa. Hän haluaa käydä jokaisessa kaupungissa vain kerran ja palata toimistolleen mahdollisimman nopeasti. Ongelman mallinnus graafilla: Pisteet = kaupungit Viivat =kaupunkien väliset tiet (tai lentoreitit) Viivan paino = matkaan kuluva aika. Ongelman ratkaisu: Hamiltonin piiri, jonka paino on mahdollisimman pieni. 19 / 22 8
Ongelman vaikeus Kauppamatkustaja ongelmanp-täydellinen Tehokasta algoritmia ongelman ratkaisuun ei ole. Hamiltonin piirin olemassolo onnp-täydellinen ongelma Kysymys: Onko kauppamatkustajaongelmaan ratkaisua? onnp-täydellinen. Pienehkönkin kauppamatkustaja ongelman ratkaisu on työlästä ja suuret ovat käytännössä mahdotonta ratkaista. Käytännön menetelmiä: Tyydytään siihen,että aina ratkaisua ei löydy tai se ei ole tarkka. Hehkutusalgoritmi eli annealing algorithm Karp-Held heuristiikka 20 / 22 Esimerkki Esimerkki. Etsi allaolevan graafin kevyin Hamiltonin piiri. 21 / 22 9
Esimerkin ratkaisu Ratkaisu.. PolunP paino:α(p) = e P α(e) Hamiltonin piirit ja niiden paino: H 1 : a b c d e f a α(h 1 ) = 3+5+6+7+3+2 = 36 H 2 : a b d e f c a α(h 2 ) = 3+4+7+3+2+3 = 22 H 3 : a c b d e f a α(h 3 ) = 24 H 4 : a c d b e f a α(h 4 ) = 26 H 5 : a b e d c f a α(h 5 ) = 28 H 6 : a c f e d b a H 6 = H 1 2 22 / 22 10