Luentorunko Kevät Matti Peltola.

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

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

6.4. Järjestyssuhteet

Johdatus graafiteoriaan

PARITUS KAKSIJAKOISESSA

Pisteet ja viivat. Multigraafi

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

Hamiltonin sykleistä graateoriassa

Graafin virittävä puu 1 / 20

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

isomeerejä yhteensä yhdeksän kappaletta.

Näin ollen saadaan tulos rad(g) diam(g). Toisaalta huomataan, että verkon G kaikilla solmuilla x ja y pätee kolmioepäyhtälön nojalla havainto

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

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

Algoritmi on periaatteellisella tasolla seuraava:

Johdatus graafiteoriaan

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

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

Johdatus graafiteoriaan

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

8.5. Järjestyssuhteet 1 / 19

A TIETORAKENTEET JA ALGORITMIT

10. Painotetut graafit

Algoritmit 1. Luento 13 Ma Timo Männikkö

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

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

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

Johdatus verkkoteoriaan 4. luento

1 Lineaariavaruus eli Vektoriavaruus

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

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

802320A LINEAARIALGEBRA OSA I

7.4. Eulerin graafit 1 / 22

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

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

Johdatus matematiikkaan

10. Painotetut graafit

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

13 Lyhimmät painotetut polut

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

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

Äärellisten mallien teoria

Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti.

Esipuhe Tämä gradu on tehty Teknologian tutkimuskeskus VTT:llä tietoturvan tutkimustiimissä vuosien aikana. Opinnäytetyöni on osa Tekesin ja

Algoritmit 1. Luento 13 Ti Timo Männikkö

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

MS-A0402 Diskreetin matematiikan perusteet

Todistusmenetelmiä Miksi pitää todistaa?

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

Eulerin verkkojen karakterisointi

Tehtävä 5 : 1. Tehtävä 5 : 2

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

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

(iv) Ratkaisu 1. Sovelletaan Eukleideen algoritmia osoittajaan ja nimittäjään. (i) 7 = , 7 6 = = =

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Johdatus matemaattiseen päättelyyn

Äärellisten mallien teoria

Määritelmä Olkoon T i L (V i, W i ), 1 i m. Yksikäsitteisen lineaarikuvauksen h L (V 1 V 2 V m, W 1 W 2 W m )

Todistus (2.2) Todistus (2.2) jatkoa. (2.2): Oletetaan, että0 n 1,1 n 1 / P i (F) aina kuni = 1,2,...,n. Olkoonf F painoltaan pienin joukonf alkio.

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

8 Joukoista. 8.1 Määritelmiä

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

Graateorian maksimivirtausalgoritmi

Matematiikan peruskurssi 2

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

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

Graafiteoria matematiikkaako?

MS-A0401 Diskreetin matematiikan perusteet

Tehtävä 1. Arvioi mitkä seuraavista väitteistä pitävät paikkansa. Vihje: voit aloittaa kokeilemalla sopivia lukuarvoja.

Matematiikassa väitelauseet ovat usein muotoa: jos P on totta, niin Q on totta.

Diskreetit rakenteet

Johdatus matemaattiseen päättelyyn

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

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

1 sup- ja inf-esimerkkejä

1 sup- ja inf-esimerkkejä

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

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

on Abelin ryhmä kertolaskun suhteen. Tämän joukon alkioiden lukumäärää merkitään

Algoritmit 2. Luento 13 Ti Timo Männikkö

Liite: Verkot. TKK (c) Ilkka Mellin (2004) 1

811120P Diskreetit rakenteet

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

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

Berge-perfektit graafit ja Shannonin kapasiteetti

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

VERKKOTEORIAN ALKEITA. Martti E. Pesonen

Luonnollisen päättelyn luotettavuus

Algoritmit 1. Luento 9 Ti Timo Männikkö

Avaruuden R n aliavaruus

v 8 v 9 v 5 C v 3 v 4

Malliratkaisut Demot

Luonnollisten lukujen ja kokonaislukujen määritteleminen

Datatähti 2019 loppu

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia

Transkriptio:

GRAAFITEORIA 031029S Luentorunko Kevät 2009 Matti Peltola http://www.ee.oulu./mpa/graate.htm

Hyödyllistä tietoa Matematiikan jaoksen tuottamasta opetuksesta löytyy osoitteesta http://s-mat-pcs.oulu./opetus Kurssin kotisivun osoite on http://www.ee.oulu./mpa/graate.htm Tämä moniste on tarkoitettu luentorungoksi, johon luennoilla annetaan lisäyksiä, selvennyksiä ja esimerkkejä. Moniste yksin ei ole sovelias itseopiskeluun.

i Sisältö 1 Johdanto 1 2 Merkintöjä ja peruskäsitteitä 1 2.1 Merkintöjä..................................... 1 2.2 Graan määritelmä................................ 1 2.3 Graaen yleistyksiä................................ 2 2.4 Graaen isomora................................. 2 2.5 Graaen esitysmuotoja.............................. 2 2.6 Graan aste.................................... 3 2.7 Graatyyppejä.................................. 4 2.8 Aligraat..................................... 5 2.9 Polut ja piirit. Graan yhtenäisyys....................... 5 2.10 Keveimmät polut. Dijkstran algoritmi...................... 7 2.11 Graaen operaatioita............................... 8 3 Puut 10 3.1 Puun määritelmä ja puiden perusominaisuuksia................ 10 3.2 Puun lehtien lukumäärä............................. 11 3.3 Graan virittävä puu............................... 12 4 Kaksijakoiset graat ja sovitukset 14 4.1 Kaksijakoisten graaen ominaisuuksia...................... 14 4.2 Sovitukset..................................... 15 4.3 Sovitukset kaksijakoisissa graafeissa....................... 16 5 Etäisyys 19 5.1 Määritelmiä.................................... 19 5.2 Puut ja etäisyys.................................. 20 5.3 Keskus graafeissa................................. 22 6 Graan yhtenäisyys 23 6.1 Graan yhtenäisyyttä kuvaavat luvut...................... 23 6.2 Mengerin teoreema................................ 25 6.3 Siirtoverkon luotettavuus............................. 28 7 Eulerin ja Hamiltonin graat 29 7.1 Eulerin graat................................... 29 7.2 Postimies ongelma................................ 30

ii 7.3 Hamiltonin graa................................. 31 7.4 Kauppamatkustaja ongelma........................... 34 8 Graaen väritykset 35 8.1 Pisteiden väritykset................................ 35 8.2 Viivojen väritykset................................ 37 9 Graat pinnoilla 41 9.1 Tasograat..................................... 41 9.2 Tasograan karakterisointi............................ 43 9.3 Tasograan väritykset.............................. 46 9.4 Upotukset muissa pinnoissa........................... 48 10 Suunnatut graat 50 10.1 Määritelmiä ja perustuloksia........................... 50 10.2 Virtaukset siirtoverkoissa............................. 55

1 Graateoria 1 Johdanto 2 Merkintöjä ja peruskäsitteitä 2.1 Merkintöjä Reaaliluvulle x on suurin kokonaislukualaraja ja pienin kokonaislukuyläraja x = max{k Z k x} x = min{k Z x k} Äärelliselle joukolle X on X joukon alkioiden lukumäärä. Jos X i X, i = 1, 2,... n ovat X:n osajoukkoja, joille n i=1 X i = X ja X i X j = aina kun i j, niin {X 1, X 2,..., X n } on joukon X ositus (partition). Kahden joukon X ja Y karteesinen tulo on joukko erotus ja symmetrinen erotus. X Y = {(x, y) x X ja y Y }, X \ Y = {x x X ja x / Y }, X Y = (X \ Y ) (Y \ X) Algoritmien aikakompleksisuusluokka P (deterministisesti polynomiaikaiset tehtävät)koostuu niistä tehtävistä, joissa N:n pituisen ongelman ratkaisemiseen deterministisellä algoritmilla kuluu enintään p(n) askelta, missä p on jokin tehtävästä riippuva N:n polynomi. Algoritmien aikakompleksisuusluokka NP (epädeterministisesti polynomiaikaiset tehtävät) koostuu niistä tehtävistä joissa N:n pituisen ongelman ratkaisemiseen epädeterministisellä algoritmilla kuluu enintään p(n) askelta, missä p on jokin tehtävästä riippuva N:n polynomi. 2.2 Graan määritelmä Olkoon V äärellinen joukko ja joukko E(V ) = {{u, v} u, v V, u v} V :n kaksialkioisten (eri alkiot) osajoukkojen joukko. Määritelmä 2.2.1 Graa on järjestetty pari G = (V G, E G ), missä V G on äärellinen joukko (pisteet)ja E G E(V ) (viivat).

2 Pistettä kutsutaan myös solmuksi (vertex, point, node), viivaa linkiksi ja särmäksi (edge, line, link) ja graaa verkoksi (graph, simple graph, network). Graan pisteiden joukkoa V G merkitään myös V :llä ja viivojen joukkoa E G E:llä. Viivaa {u, v} merkitään usein uv. Huomaa, että uv = vu. Usein merkitään myös u G, kun u V G. Määritelmä 2.2.2 Graalle G = (V G, E G ) on γ G = V G G:n pisteiden lukumäärä (order of G), ja ɛ G = E G G:n viivojen lukumäärä (size of G). Pisteet u ja v ovat viivan uv päätepisteet (endpoints). Pisteet u ja v ovat vierekkäisiä eli vieruspisteitä (neighbours, adjacent points), jos uv on G:n viiva. Piste on irtopiste (isolated point) jos sillä ei ole vieruspisteitä. Viivat e 1 ja e 2 ovat vierekkäiset, jos niillä on yhteinen päätepiste. 2.3 Graaen yleistyksiä Määritelmä 2.3.1 Multigraa on järjestetty kolmikko G = (V, E, ψ), missä E = {e 1, e 2,..., e n } on joukko symboleja ja ψ : E E(V ) {vv v V G } on funktio, joka liittää jokaiseen alkioon e E kaksi V :n alkiota. Määritelmä 2.3.2 Suunnattu graa (Directed graph, Digraph) D = (V, E) on järjestetty pari, missä V on äärellinen joukko ja E V V. Lisäksi aina kun (u, v) E, on u v. Suunnatussa graassa on viiva uv vu, kun u ja v ovat eri pisteet. Funktio α : V G K on pisteiden väritys (vertex colouring)joukon K väreillä. Funktio α : E G K on viivojen väritys (edge colouring) joukon K väreillä. Yleensä K = {1, 2,..., k}. Jos K R, niin α:aa kutsutaan myös paino- tai etäisyysfunktioksi. Määritelmä 2.3.3 Hypergraa (Hypergraph) on järjestetty pari G = (V, E), missä E:n alkiot ovat V :n ei-tyhjiä osajoukkoja. 2.4 Graaen isomora Määritelmä 2.4.1 Kaksi graaa G ja H ovat isomorset, merkitään G = H, jos on olemassa bijektio α : V G V H, jolle uv E G jos ja vain jos α(u)α(v) E H aina kun u, v V G. Isomorset graat usein samaistetaan. Graa-isomorsmi ongelma: Onko olemassa tehokas algoritmi joka tarkistaa onko kaksi graaa isomorsia? Kuvaus ψ on graa invariantti(graph invariant), jos sen arvo on aina sama isomorsille graafeille. 2.5 Graaen esitysmuotoja Graa esitetään tietokoneessa yleensä matriisin avulla.

3 Määritelmä 2.5.1 Graan G = (V, E), V = {v 1, v 2,..., v n } vieruspistematriisi (adjacency matrix)on n n matriisi M = (M ij ), missä n on G:n pisteiden lukumäärä ja M ij = { 0 v i v j / E, 1 v i v j E. Selvästi vieruspistematriisi M on aina symmetrinen, eli M T = M. Suoraan yo. määritelmistä seuraa tulos. Lause 2.5.1 Kaksi graaa ovat isomorsia täsmälleen silloin kun niillä on yhteinen vieruspistematriisi. Kahdella isomorsella graalla on täsmälleen samat vieruspistematriisit. Graa voidaan määritellä myös joukkojen avulla. Määritelmä 2.5.2 Olkoon X joukko ja χ = {X 1, X 2,..., X n } jokin X:n osajoukkojen joukko. Joukon χ leikkausgraa (intersection graph) G χ = (χ, E χ ), missä E χ = {X i X j i j ja X i X j }. Lause 2.5.2 Jokainen graa on jonkin osajoukkojen joukon leikkausgraa. Graat voidaan esittää myös luonnollisten lukujen avulla. Olkoon A N äärellinen ja G A = (A, E) graa, jonka pisteet muodostuvat A:n luvuista ja rs E jos ja vain jos luvuilla r ja s on yhteinen tekijä > 1. Lause 2.5.3 Jos G = (V G, E G ) on graa, niin on olemassa sellainen äärellinen luonnollisten lukujen joukko A, että graat G ja G A ovat isomorset. 2.6 Graan aste Määritelmä 2.6.1 Graan G = (V, E) pisteen v naapurusto (neighbourhood) on joukko N G (v) = {u V vu E} ja aste (degree) deg G (v) (tai lyhyemmin deg(v)) on v:n naapuruston pisteiden lukumäärä, eli deg G (v) = N G (v). Jos deg G (v) = 0, niin v on irtopiste. Jos deg G (v) = 1, niin v on G:n lehti tai loppupiste (leaf, endpoint). Graan G pienin aste (minimum degree) on ja suurin aste (maximum degree) on δ(g) = min{deg G (v) v G} (G) = max{deg G (v) v G} Apulause 2.6.1 (Euler 1736, Handshaking lemma)jokaiselle graalle G = (V, E) on deg G (v) = 2 E v G eli G:n pisteiden asteiden summa on kaksi kertaa G:n viivojen lukumäärä. Lisäksi parittoman asteen omaavien pisteiden lukumäärä on aina parillinen.

4 Graan G = (V, E) 2-vaihto (2-switch) (u, v : x, y), missä u, v, x, y V uv, xy E ja ux, vy / E, poistaa G:stä viivat uv ja xy ja lisää viivat ux ja vy. Lause 2.6.1 (Berge 1973)Kahdelle saman pistejoukon V omaavalle graalle G ja H on deg G (v) = deg H (v) kaikilla v V jos ja vain jos H saadaan G:stä äärellisellä määrällä 2 vaihtoja. Määritelmä 2.6.2 Olkoon d 1, d 2,..., d n laskeva äärellinen jono ei-negatiivisia kokonaislukuja, eli d 1 d 2 d n. Jono on esitettävissä graalla (graphical), jos on olemassa sellainen graa G = (V, E), missä V = {v 1, v 2,... v n } ja deg G (v i ) = d i, aina kun i = 1, 2,..., n. Jono d 1, d 2,..., d n on silloin G:n astejono (degree sequence). Lause 2.6.2 Lukujono d 1, d 2,..., d n, (d 1 1 ja n 2) on esitettävissä graalla jos ja vain jos jono d 2 1, d 3 1,..., d d1 +1 1, d d1 +2, d d1 +3,..., d n on esitettävissä graalla (kun jono järjestetään laskevaan järjestykseen). 2.7 Graatyyppejä Graa on triviaali (trivial), jos se sisältää vain yhden pisteen. Graa G = K V on täydellinen graa pistejoukossa V, jos se sisältää kaikki mahdolliset viivat eli jokainen piste on kaikkien muiden pisteiden vieruspiste. Kaikki täydelliset n pistettä sisältävät graat ovat isomorsia. Niitä merkitään K n :llä. Graan G komplementti (complement)on graa G, missä V G = V G ja E G = {e E(V ) e / E G }. Täydellisten graaen komplementteja K n kutsutaan erillisiksi graafeiksi (discrete graphs). Graa on säännöllinen (regular), jos jokaisella graan pisteellä on sama aste. Jos tämä aste on r, niin graaa kutsutaan r-säännölliseksi (r-regular). Graa G = (V, E) on kaksijakoinen (bipartite) jos pistejoukolla V on sellainen ositus X, Y, että jokaisen viivan uv E toinen päätepiste on joukon X ja toinen päätepiste joukon Y piste. Silloin (X, Y ) on graan G kaksijako (bipartition of G) ja G on (X, Y )-kaksijakoinen ((X, Y )-bipartite). Kaksijakoinen graa G = (V, E) on täydellinen (m, k)-kaksijakoinen graa (complete (m, k)-bipartite graph), jos X = m, Y = k ja uv E aina kun u X ja v Y. Kaikki täydelliset (m, k)-kaksijakoiset graat ovat isomorsia keskenään. Merkitään niitä K m,k :lla. Graa on täydellinen kaksijakoinen graa, jos se on täydellinen (m, k)-kaksijakoinen graa jollain luvuilla m, k. Graa K 1,n on tähti (star). Se on täydellinen kaksijakoinen graa, jossa yhden pisteen aste on n ja muut pisteet ovat lehtiä.

5 2.8 Aligraat Määritelmä 2.8.1 Graa H = (V H, E H ) on graan G = (V G, E G ) aligraa (subgraph), jos V H V G ja E H E G. Silloin merkitään H G. Jos H G ja V H = V G, niin H on G:n virittävä aligraa (spanning subgraph). Jos H G ja E H = E G E(V H ) (eli H sisältää kaikki G:n viivat, joiden molemmat päätepisteet ovat V H :n pisteitä), niin H on pistejoukon V H indusoima G:n aligraa (induced subgraph). Jos H on G:stä indusoitu aligraa, niin sen viivojen joukko E H sisältää kaikki G:n viivat, joissa molemmat päätepisteet ovat H:n pisteitä. Silloin jokaisella pistejoukolla A V G on olemassa yksikäsitteinen G:stä indusoitu aligraa G[A] = (A, E G E(A)). Joukko A V G on vakaa (stable), jos G[A] on erillinen graa. Vastaavasti jokaisella G:n viivojen osajoukolle F E G on olemassa yksikäsitteinen G:n virittävä aligraa G[F ] = (V G, F ). 2.9 Polut ja piirit. Graan yhtenäisyys Määritelmä 2.9.1 Olkoot e i = u i u i+1 E G graan G viivoja aina kun i = 1, 2,..., k. Viivat e i ja e i+1 ovat vierekkäisiä, sillä niillä on yhteinen päätepiste u i+1. Jono W = e 1 e 2 e k on k:n pituinen kulku (walk) pisteestä u 1 pisteeseen u k+1 Kulusta käytetään myös merkintöjä W : u 1 u 2 u k u k+1, ja W : u 1 u 2 u k+1 sekä W : u k 1 u k+1. Merkintä u 1 u k+1 tarkoittaa, että on olemassa kulku pisteestä u 1 pisteeseen u k+1. Merkintä W : u 1 u k+1 tarkoittaa aina tiettyä kulkua W = e 1 e 2 e k. Kulun W pituutta merkitään W :llä. Määritelmä 2.9.2 Kulku W = e 1 e 2 e k (e i = u i u i+1 ) on a)suljettu (closed), jos u 1 = u k+1, b)polku (path), jos u i u j aina kun i j, c) reitti (trail),jos e i e j aina kun i j, d) piiri (cycle), jos u 1 = u k+1 ja muulloin u i u j aina kun i j, e)triviaali polku (trivial path), jos W = 0. Kulun W : u = u 1 u 2 u k+1 = v käänteiskulku (inverse of W) on kulku. W 1 : v = u k+1 u k u 1 = u Piste u on polun P päätepiste (end of P ), jos P alkaa tai päättyy pisteeseen u. Kahden kulun W 1 : u v ja W 2 : v w yhdiste (join) on kulku W 1 W 2 : u w Polut P ja Q ovat erilliset (disjoint), jos niillä ei ole yhteisiä pisteitä (eikä siis myöskään yhteisiä viivoja) ja riippumattomat (independent), jos vain niiden päätepisteet ovat samat.

6 Selvästi polun P käänteispolku P 1 on myös polku. Kahden polun yhdiste ei välttämättä ole polku. Graa (tai aligraa) P k on graa joka muodostuu k 1:sen pituisesta polusta (k 1 viivaa, k pistettä). Graa (tai aligraa) C k on k:n pituinen piiri. Jos k on parillinen, niin polkua P k (piiriä C k ) kutsutaan parilliseksi poluksi (parilliseksi piiriksi). Jos k on pariton, niin P k (vastaavasti C k ) on pariton polku (piiri). Apulause 2.9.1 Aina kun W : u v on kulku ja u v, niin on olemassa polku P : u v, joka on saatu W :stä poistamalla siitä pisteitä ja viivoja. Määritelmä 2.9.3 Jos graassa G esiintyy kulku (eli myös polku) pisteestä u pisteeseen v, niin pisteen u etäisyys (distance) pisteestä v on Jos kulkua ei ole, niin d G (u, v) =. d G (u, v) = min{k u k v} Graa G on yhtenäinen (connected), jos d G (u, v) < aina kun u, v V G, muulloin G on epäyhtenäinen (disconnected). Jos graasta ei ole epäselvyyttä, pudotetaan merkinnästä d G (u, v) alaindeksi pois. Määritelmä 2.9.4 Aligraa H G on G:n komponentti (connected component), jos H on yhtenäinen ja aina kun piste v / H, niin aligraa G[V H {v}] on epäyhtenäinen. Graan G komponenttien lukumäärää merkitään c(g):llä. Määritelmä 2.9.5 Piste v on graan G irrotuspiste (cut point vertex), jos graa, joka saadaan G:stä poistamalla piste v ja kaikki siihen liittyvät viivat, sisältää enemmän komponentteja kuin G. Viiva e on irrotusviiva eli silta (bridge), jos graa, joka saadaan G:stä poistamalla viiva e, sisältää enemmän komponentteja kuin G. Lause 2.9.1 Viiva e E G on silta jos ja vain jos e ei esiinny missään G:n piirissä. Määritelmä 2.9.6 Graa on separoitumaton (non-separable), jos se on yhtenäinen, eitriviaali ja se ei sisällä irrotuspisteitä. Graan G blokki (block) on G:n maksimaalinen separoitumaton aligraa. Lause 2.9.2 Olkoon G = (V, E) yhtenäinen graa ja V 3. Seuraavat ehdot ovat yhtäpitäviä. (1) Graa G on blokki (2) Jos v, v V, niin on olemassa molemmat pisteet sisältävä G:n piiri. (3) Jos v V ja e E, niin on olemassa v:n ja e:n sisältävä G:n piiri. (4) Jos e, e E, niin on olemassa e:n ja e :n sisältävä G:n piiri. (5) Aina kun v, v V ja e E, niin on olemassa sellainen polku P : v v, että e P. (6)Aina kun v, v, v V, niin on olemassa sellainen polku P : v v, että v P. (7)Aina kun v, v, v V, niin on olemassa sellainen polku P : v v, että v / P.

7 Todistus.... (3) (4): Olkoot uv, u v E. Silloin (3):n perusteella on olemassa piiri Kaksi tapausta: C : u v v u. (i) Jos u esiintyy piirissä C, niin samoin kuin kohdan (2) (3) todistuksessa voidaan osoittaa, että on olemassa piiri C : u v u v u. (ii) Jos u / C, niin koska (3):sen perusteella on olemassa uv:n ja u :n sisältävä piiri, niin on olemassa polku P : u u, joka ei sisällä pistettä v. Olkoon u lähinnä pistettä u oleva piste, joka esiintyy sekä piirissä C, että polussa P. Silloin on olemassa piiri C : u v v u u u. (4) (5): Koska G on yhtenäinen, niin jokainen sen piste on silloin ainakin yhden viivan päätepiste. Koska (4):n perusteella jokaista viivaparia kohti on olemassa molemmat viivat sisältävä piiri, niin silloin myös jokaista pisteparia kohti on olemassa ne sisältävä piiri. Siis (2) ja silloin myös (3) on voimassa. Olkoot u ja v kaksi G:n eri pistettä ja e G:n viiva. Tuloksen (3) perusteella on olemassa sellaiset piirit C 1 : u u ja C 2 : v v, että u, e C 1 ja v, e C 2. Jos nyt v C 1 tai u C 2, niin on olemassa kyseisen piirin osapolku P : u v, jossa viiva e esiintyy. Voidaan olettaa, että v / C 1 ja u / C 2. Koska viiva e esiintyy molemmissa piireissä, niin on olemassa sellainen piste w joka esiintyy molemmissa piireissä. Valitaan w lisäksi niiin, että piirin C 2 osapolku v w ei sisällä muita piirin C 1 pisteitä kuin w:n. Silloin pisteet u, v ja viivan e sisältävä polku P = P 1 P 2, missä P 1 on piirin C 1 osapolku u w ja P 2 on piirin C 2 osapolku w v. (5) (6): Jos u, v, w ovat G:n eri pisteitä, niin koska G on yhtenäinen, on olemassa viiva e, jonka eräs päätepiste on w. Kohdan (5) perusteella on olemassa sellainen polku P : u v, joka sisältää viivan e. Silloin polku sisältää myös pisteen w. 2.10 Keveimmät polut. Dijkstran algoritmi Olkoon G α painotettu graa. Toisin sanoen G α sisältää graan G ja painofunktion α : E G R (paino viivoilla). Jos H G, niin H:n paino α(h) = Polun P = e 1 e 2 e k paino on α(p ) = α(e i ). e E H α(e). Pienin painotettu etäisyys pisteiden u ja v välillä on d α G(u, v) = min{α(p ) P : u v} Ääriarvo-ongelmissa etsitään usein joidenkin ehtojen mukaan optimaalista aligraaa H G. Tällaisia ongelmia ovat esimerkiksi:

8 (1) Jakelu- tai kuljetus verkko, jossa viivojen painot ovat etäisyyksiä tai kuljetuskustannuksia. (2) Tietoliikenne- tai tietokoneverkko, jossa viivojen painot kuvaavat yhteyden vikaantumistodennäköisyyttä. (3) Kemiallisten sidosten mallit, joissa viivojen paino mittaa molekyylien vetovoimaa. Edelläolevissa esimerkeissä etsitään pienimmän painon omaavaa aligraaa, joka yhdistää pisteitä. Jos graa mallintaa esimerkiksi siirtoverkkoa, voi viivan paino kuvata myös yhteyden kapasiteettia. Silloin etsitään usein suurimman painon omaavaa aligraaa. Seuraavassa tarkastellaan minimointiongelmaa. Maksimointiongelma voidaan aina muuntaa minimointiongelmaksi määrittelemällä graalle uusi painofunktio α esimerkiksi seuraavasti: α (e) = k + 1 α(e) missä k = max{α(e ) e E G }. Seuraavassa painofunktion arvoa α(uv) kutsutaan viivan uv pituudeksi. Lyhimmän polun ongelma: Löydettävä kevein (lyhyin) polku pisteestä u pisteeseen v painofunktiolle α. Toisin sanoen on määrättävä d α G (u, v). Dijkstran algoritmi: Input: Painotettu graa G α, lähtöpiste u ja päätepiste v (1) Olkoon (2) Aina kun i = 0, 1,..., V G 1. Jokaiselle v / {u 0, u 1,..., u i } u 0 = u, t(u 0 ) = 0 ja t(w) = kaikilla w u 0 t(v) min{t(v), t(u i ) + α(u i v)} Valitaan pisteeksi u i+1 / {u 0, u 1,..., u i } jokin pisteistä w, jolle arvo t(w) on pienin. Seuraava i (3) Output d α G (u, v) = t(v). 2.11 Graaen operaatioita Usein graa saadaan yhdistämällä eri tavoin yksinkertaisempia graafeja. Seuraavassa määritellään keskeisimmät graaen yhdistämisoperaatiot ja esitellään eräitä operaatioilla saatavia graatyyppejä. Määritelmä 2.11.1 Olkoot G = (V G, E G ) ja H = (V H, E H ) kaksi erillistä graaa (V G V H = ). Graaen unioni on graa ja graaen summa (join)on graa missä E = {uv u V G ja v V H }. G H = (V G V H, E G E H ) G + H = (V G V H, E G E H E),

9 Pyörä (wheel) W 1,n = K 1 + C n. Määritelmä 2.11.2 Olkoon G = (V, E) graa ja A V. Graa G A on joukon V \ A indusoima G:n aligraa G A = G[V \A]. Erityisesti G v on graa,joka saadaan poistamalla G:stä piste v ja kaikki ne viivat joiden päätepisteenä on v, ja graa G e = (V, E \ {e}). Määritelmä 2.11.3 Olkoot G = (V G, E G ) ja H = (V H, E H ) kaksi erillistä graaa, missä V G = {u 1, u 2,..., u m }, V H = {v 1, v 2,..., v n } ja V G V H =. Graaen G ja H karteesinen tulo (cartesian product) on graa G H = (V G V H, E), missä (u, v)(u, v ) E täsmälleen silloin kun u = u ja vv E H, tai uu E G ja v = v Määritelmä 2.11.4 Hyperkuutio Q 1 = K 2 ja Q n = K 2 Q n 1 aina kun n = 1, 2,.... Lause 2.11.1 Hyperkuutiolle Q n, n = 1, 2,... on voimassa (i) Q n on n-säännöllinen. (ii) Q n :ssä on 2 n pistettä. (iii) Q n :n pisteet voidaan nimetä n:n pituisella bittijonolla niin, että jokainen bittijono on täsmälleen yhden pisteen nimi ja kaksi pistettä ovat vieruspisteitä täsmälleen silloin kun niiden nimet eroavat täsmälleen yhden bitin verran. Todistus. (i) Q 1 = K 2 on 1-säännöllinen. Induktio-oletus: Q k on k-säännöllinen. Graa Q k+1 = K 2 Q k, joten Q k+1 käsittää kaksi Q K :n kopiota, joiden vastinpisteet on yhdistetty viivalla. Siis Q k+1 on k + 1-säännöllinen. (ii) Koska V Q1 = K 2 ja Q n+1 = K 2 Q n, niin V Qn+1 = 2 V Qn, mistä väite seuraa. (iii) Matemaattinen induktio n:n suhteen. Nyt Q 1 = K 2, joten vaadittu pisteiden nimitys saadaan, kun toinen merkitään 0:lla ja toinen 1:llä. Induktio-oletus: Q k toteuttaa ehdon. Olkoon pistettä u vastaava bittijono u k. Graassa Q k+1 esiintyy kaksi Q k :n kopiota Q 0 K ja Q 1 K. Nimetään pisteet seuraavasti: Q k :ssa u merkitään bittijonolla 0u k ja graassa Qk 1 u merkitään bittijonolla 1u k. Saadaan ehdot täyttävät Q k+1 :n pisteiden nimeäminen. Hilat (meshes, grid, lattice) ovat toinen graatyyppi, joka määritellään graatulon avulla. 2-hila M(m, n) on P m :n ja P n :n tulograa, eli M(m, n) = P m P n. Vastaavasti 3-hila M(a, b, c) = (P a P b ) P c ja n-hila M(a 1, a 2,..., a n ) = P a1 P a2 P an. Määritelmä 2.11.5 Graan G = (V, E) viivagraa (line graph) L(G) = (E, E L ), missä L(G):n pisteet ovat E:n viivat ja e 1 e 2 E L jos ja vain jos G:n viivoilla e 1 ja e 2 on yhteinen päätepiste graassa G.

10 3 Puut Puut ovat tärkeä graaluokka. Ne esiintyvät käytännön sovellutuksissa, kuten tarkasteltaessa organisaatiokaavioita tai minimoitaessa siirtoverkkoa. Ne ovat myös perusmalli erilaisille tietorakenteille. Puita käytetään myös etsintä- ja lajittelualgoritmeissa. Graateorian kannalta puut ovat monesti se ensimmäinen graaluokka, jolla tutkittavaa otaksumaa voidaan testata. Seuraavassa määritellään puut, todistetaan puiden perusominaisuuksia ja selvitetään, miten graasta määritetään graan rakenteesta oleellista tietoa sisältävä, graan virittävä puu. 3.1 Puun määritelmä ja puiden perusominaisuuksia Määritelmä 3.1.1 Graa joka ei sisällä yhtään piiriä on asyklinen (acyclic) eli metsä. Puu (tree) on yhtenäinen asyklinen graa Lause 3.1.1 Olkoon G = (V G, E G ) graa. Seuraavat ehdot ovat yhtäpitäviä: (1) G on puu (2) Jokaisen G:n pisteparin yhdistää yksikäsitteinen polku. (3) G on asyklinen ja E G = V G 1. Edellisen lauseen ja Lauseen 2.9.1 perusteella saadaan Seuraus 3.1.1 Yhtenäinen graa on puu jos ja vain jos kaikki sen viivat ovat siltoja. Puiden astejonot Edellisessä luvussa tarkasteltiin graaen astejonoja. Seuraavan tuloksen avulla voidaan päätellä onko äärellinen lukujono puun astejono. Lause 3.1.2 Olkoon d 1, d 2,... d n laskeva äärellinen jono positiivisia kokonaislukuja. Jono d 1, d 2,..., d n on puun astejono jos ja vain jos d 1 + d 2 + + d n = 2(n 1). Todistus " "Jos d 1, d 2,..., d n on puun T astejono, niin silloin T :ssä on n pistettä. Edellisen lauseen perusteella on puussa T silloin n 1 viivaa ja koska jokainen viivoista tulee huomioitua kahden pisteen asteessa, niin d 1 + d 2 + + d n = 2(n 1). " "Todistetaan väite matemaattisella induktiolla puun pisteiden lukumäärän n suhteen. Jos n = 1 tai n = 2, niin väite on voimassa. Induktio-oletus: Aina kun α 1 α 2 α k on äärellinen jono positiivisia kokonaislukuja, joille α 1 + α 2 + + α k = 2(k 1) niin on olemassa puu, jonka astejono on α 1, α 2,..., α k. Olkoon d 1, d 2,... d k+1 jono jolle d 1 d 2... d k d k+1 > 0, jolle d 1 + d 2 + + d k+1 = 2(k + 1 1) = 2k. Osoitetaan, että on olemassa puu T jonka astejono on d 1, d 2,..., d k+1.

11 Isomorset puut Luvussa 2.4 käsiteltiin graaen välistä isomoraa. Selvästi eräs graa-invariantti on pisteiden asteet. On voimassa Apulause 3.1.1 Jos G = H ja α on bijektio graaen välillä, niin deg G (u) = deg H (α(u)) aina kun u V G. Tehokkaimpia menetelmiä kahden puun isomoraa selvitettäessä on verrata astejonoja, tarkastella puiden pisimpiä polkuja ja tarkastella lyhimpiä polkuja joissa päätepisteinä olevien pisteiden asteet eivät esiinny muiden pisteiden asteina. 3.2 Puun lehtien lukumäärä Seuraavassa tarkastellaan miten puun pisteiden asteet määräävät puun lehtien lukumäärän. Aluksi tarkastellaan puun piirtämistä. Puu T on esitetty juurrettuna puuna (rooted tree), juurena piste u V T, jos puu on piirretty seuraavasti: -Juuri on piirretty ylimmälle riville (tai tasolle 0). -Juuren naapurit (eli juuren lapset) on piirretty yhden tason verran juuren alapuolelle. -Kaikki juuren lapsien lapset on piirretty seuraavalle tasolle jne. -Prosessi päättyy, kun kaikki T :n pisteet on käyty läpi. Puun korkeus (height) on juuren alla olevien tasojen lukumäärä. Jokaisesta puusta voidaan tuottaa juurrettu puu seuraavalla menettelyllä, joka yhdistää myös puun pisteiden asteet ja lehtien lukumäärän. -Valitaan juureksi jokin puun lehti. - Piirretään aluksi juurrettuna puuna jokin T :n polku P juuresta lehteen. -Jos tämä on T, niin T:ssä on lehtiä 2, jos V T 2 ja lehtiä on 1, jos V T = 1. -Jos T ei ole polku, niin silloin on olemassa P :n piste u, jonka aste on 2. Piirretään u:sta alkavat polut aina lehteen asti aloittamalla jokaisesta viivasta joka ei esiinny P :ssä. -Jokainen u:sta lähtevä polku päättyy lehteen, joten näin saaduissa poluissa on deg T (u) 2 lehteä. -Toteutetaan edelläkuvattu prosessi jokaiselle P :n pisteelle v i, jolla deg T (v i ) > 2. Lehtiä löytyy deg T (v i ) 2 kappaletta. i -Tehdään edelläkuvattu prosessi jokaisen T:n polun pisteelle w, jonka aste on > 2. Jokaista w:n viivaa, joka ei ole jo aikaisemmin käsitellyissä poluissa, kohti löytyy polku uuteen lehteen. Koska T on äärellinen, niin edelläkuvattu prosessi päättyy, ja koska T on yhtenäinen, niin prosessi tuottaa koko puun (eli myös kaikki lehdet). Silloin jokaista T:n pistettä w vastaa deg T (w) 2 lehteä. On todistettu

12 Lause 3.2.1 Olkoon n i puun T asteen i omaavien pisteiden lukumäärä ja V T 2 (eitriviaali puu). Silloin puun lehtien lukumäärä n 1 = 2 + (i 2)n i = 2 + n 3 + 2n 4 + 3n 5 +. i=3 3.3 Graan virittävä puu Graan virittävä puu on G:n virittävä aligraa, joka on puu. Lause 3.3.1 Yhtenäisellä graalla on virittävä puu. Todistus. Poistetaan yhtenäisestä graasta G = (V, E) ei-sillat seuraavasti: Olkoon H 0 = G. Olkoon H i+1 = H i e i, missä e i ei ole graan H i silta, i = 1, 2, 3,... ja H i+1 = H i, jos jokainen H i :n viiva on H i :n silta. Koska e i ei ole H I :n silta, niin H i+1 on H I :n eli myös graan H 0 = G yhtenäinen virittävä aligraa. Koska G on äärellinen, niin on olemassa sellainen H k, että kaikki sen viivat ovat siltoja. Seurauksen 3.1.1 perusteella H k on puu. Seuraus 3.3.1 Jokaiselle yhtenäiselle graalle G on E G V G 1. Rakennettaessa verkkoa, jossa on yhdistettävä n solmua (kaupunkeja, tietokoneita, komponentteja, jne) on usein toivottavaa pienentää rakentamisen kustannukset ja/tai linkkien määrä minimiin. Tätä kutsutaan yhdistämisongelmaksi (connector problem). Graateoreettisesti tarkoituksena on löytää painotetun graan kevyin yhtenäinen virittävä aligraa. Tällainen graa on selvästi puu, koska ei-siltojen poistaminen keventää graaa. Etsitään siis kevyintä graan virittävää puuta, kun puun paino on sen viivojen painojen summa. Olkoon G α painotettu graa, missä α : E G R + painofunktio. Kruskalin algoritmi antaa ratkaisun yhdistämisongelmaan. Kruskalin algoritmi Olkoon G α = (V, E) painotettu yhtenäinen graa ja V = n. (i) Olkoon e 1 E viiva, jonka paino α(e 1 ) on pienin viivojen painoista. Olkoon E 1 = {e 1 }. (ii) Aina kun i = 1, 2,..., n 1 (tässä järjestyksessä) valitaan sellainen viiva e i / E i 1, että paino α(e i ) on pienin ja graa G[E i 1 {e i }] ei sisällä piiriä. Kun prosessi pysähtyy, on saatu graa T = (V, E n 1 ). Koska T ei sisällä piiriä ja V = E n 1 + 1, niin Lauseen 3.1.1 perusteella T on puu, joten T on G α :n virittävä puu. Lause 3.3.2 Kruskalin algoritmi tuottaa painotetun graan G α painoltaan keveimmän virittävän puun. Graan kevein virittävä puu voidaan etsiä myös Primin algoritmilla (Jarnikin algoritmi), jossa algoritmin jokaisessa vaiheessa saatu graa on alipuu keveimmästä virittävästä puusta. Primin algoritmi Olkoon G α = (V, E) painotettu graa ja V = n. (i) Olkoon u 1 V eräs piste, V 1 = {u 1 } ja E 1 =.

13 (ii)aina kun i = 2, 3,..., n (tässä järjestyksessä) olkoon e i = uv kevein sellainen viiva, että u V i 1 ja v / V i 1. Olkoon E i = E i 1 {e i }, V i = V i 1 {v}. Lopulta saadaan yhtenäinen graa T = (V n, E n ). Selvästi T ei sisällä piiriä, koska uv E i jos ja vain jos v / V i 1, u V i 1. Koska E n = n 1 ja V n = n, niin T on G α :n virittävä puu lauseen 3.1.1 perusteella. Lause 3.3.3 Koko Primin algoritmin suorituksen ajan puu T i = (V i, E i ) on jonkin G α :n virittävän keveimmän puun alipuu. Todistus. Matemaattinen induktio V i :n suhteen. Tapaus V 1 = {u 1 }, E 1 = selvä. Induktio-oletus:Puu T k = (V k, E k ) on jonkin G α :n virittävän keveimmän puun T min = (V min, E min ) alipuu. Induktioväite:Puu T k+1 = (V k+1, E k+1 ) on jonkin G α :n virittävän keveimmän puun alipuu. Koska Primmin algoritmi tuottaa prosessin päätyttyä G α :n virittävän puun, niin edellisen lauseen perusteella saadaan. Seuraus 3.3.2 Primmin algoritmi tuottaa painotetun graan G α puun. keveimmän virittävän

14 4 Kaksijakoiset graat ja sovitukset Sovitusongelmissa on yleensä annettu joukko alkioita ja relaatioita alkioiden välillä. Tehtävänä on löytää sellaiset alkioparit, että jokaiselle alkiolle löytyy yksikäsitteinen sopiva pari. Eräs tällainen ongelma on ns. Henkilökunnan sijoitteluongelma (job assignment problem): Yrityksessä on p työntekijää ja q työtehtävää. Kukin työntekijä osaa tehdä ainakin yhtä työtehtävää. Onko mahdollista sijoittaa kukin työntekijä hänen osaamaansa työtehtävään? Seuraavassa tarkastellaan aluksi kaksijakoisten graaen ominaisuuksia, määritellään erilaisia sovituksia ja lopuksi tarkastellaan sovituksia kaksijakoisissa graafeissa. 4.1 Kaksijakoisten graaen ominaisuuksia Seuraava algoritmi tarkistaa onko graa G = (V, E) kaksijakoinen. Input: Graa G = (V, E) (1) Valitaan jokin G:n piste u ja väritetään se värillä 1. (2) Väritetään kaikki u:n vieruspisteet värillä 2. (3) Väritetään kaikki värillä 2 väritettyjen pisteiden vieruspisteet värillä 1 ja värillä 1 väritettyjen pisteiden vieruspisteet värillä 2. (4) Jos kaikki G:n pisteet saadaan yksikäsitteisesti väritettyä, niin G on kaksijakoinen eli (X 1, X 2 )-kaksijakoinen, missä X i on värillä i väritettyjen pisteiden joukko. Lause 4.1.1 Graa G on kaksijakoinen jos ja vain jos G ei sisällä paritonta piiriä. Todistus " "Olkoon G (X, Y )-kaksijakoinen graa ja C : v 1 v 2 v k+1 = v 1 sen k:n pituinen piiri. Jos v 1 X (tapaus v 1 Y on vastaava), niin v 2 Y, v 3 X,.... Siis v 2i Y ja v 2i+1 X. Välttämättä on sillloin k + 1 = 2m + 1 eli C = k = 2m. " ". Oletetaan, että kaikki G:n piirit ovat parillisisia. Voidaan olettaa, että G yhtenäinen. Olkoon v G piste, X = {x d G (v, x) on parillinen} ja Y = {y d G (v, y) on pariton}. Koska G on yhtenäinen, niin V G = X Y ja lisäksi X Y =. Olkoot u, w X (tapaus u, w Y on vastaava) ja olkoot P : v u ja Q : v w lyhyimmät polut v:stä u:hun ja v:stä w:hen. Osoitetaan, että uw / E G. Olkoot x piste, joka esiintyy sekä P :ssä, että Q:ssa ja on tällaisista pisteistä kauimmaisena v:stä. Silloin P = P 1 P 2 ja Q = Q 1 Q 2, missä... Koska puu ei sisällä yhtään piiriä, on voimassa. Seuraus 4.1.1 Jokainen puu on 2-jakoinen graa. Edellisen lauseen perusteella saadaan myös

15 Seuraus 4.1.2 Jokaisen 2-jakoisen graan aligraa on 2-jakoinen. Erdös (1965) osoitti seuraavan tuloksen. Lause 4.1.2 Jokaisella graalla G on olemassa 2-jakoinen aligraa H G, jolle E H 1 2 E G. Todistus. Olkoon V G = X Y sellainen V G :n ositus, että viivojen uv, u X, v Y määrä on mahdollisimman suuri. Olkoon F = E G {uv u X, v Y } ja H = G[F ] (viivojen joukon F indusoima aligraa). Selvästi H on G:n virittävä aligraa. Lisäksi H on kaksijakoinen.... 4.2 Sovitukset Määritelmä 4.2.1 Graalle G on viivojen joukko M E G G:n sovitus (matching), jos M ei sisällä vierekkäisiä viivoja. Sovitus M on maksimisovitus (maximum matching), jos kaikille G:n sovituksille M on M M. Sovitus M on maksimaalinen sovitus (maximal matching),jos viivajoukko M {e} ei ole G:n sovitus millään viivalla e E G \ M. Ero maksimisovituksen ja maksimaalisen sovituksen välillä: Maksimaalista sovitusta ei voi enää suurentaa, niin että se pysyy sovituksena. Sen ei kuitenkaan tarvitse olla viivojen lukumäärältään suurin, eli maksimisovitus. Määritelmä 4.2.2 Graan G sovitus M sovittaa (saturates) pisteen v, jos v on jonkin M:n viivan päätepiste. Sovitus M sovittaa joukon A V G jos M sovittaa jokaisen A:n pisteen. Sovitus M on täydellinen sovitus (perfect matching), jos se sovittaa V G :n. Selvästi jokainen täydellinen sovitus on maksisovitus ja siis myös maksimaalinen sovitus. Etsittäessä graan maksimisovitusta, on eräs tehokas menetelmä tarkastella ns. vuorottelevia polkuja. Määritelmä 4.2.3 Olkoon M graan G = (V, E) sovitus. Graan G polku P : e 1 e 2 e n on M- vuorotteleva (M-alternating) G:ssä, jos polun ensimmäinen piste ei ole M-sovitettu, e 2i+1 / M ja e 2i M. M-vuorotteleva polku P on sovituksen M M-lisäyspolku (M-augmented), jos myöskään polun viimeinen piste ei ole M-sovitettu. Selvästi jokainen M-lisäys polku on pituudeltaan pariton. Seuraavassa yhdistetään edellämääritetyt polut ja sovitukset toisiinsa. Apulause 4.2.1 Jokainen yhtenäinen graa G, jonka suurin aste (G) 2 on polku tai piiri.

16 Lisäyspolkujen ja maksimisovitusten olemassaolo liittyy toisiinsa. Olkoon G = (V G, E G ) graa,m G:n sovitus ja P : u v sovituksen M lisäyspolku. Olkoon viivajoukko M p = {e i e i P ja e i M} ja viivajoukko M p = {e i e i P ja e i / M}. Koska P on pariton ja pisteet u ja v eivät ole M-sovitettuja, niin M p = M p + 1. Silloin M = (M \ M p ) M P on G:n sovitus ja M > M + 1. Siis M ei ole G:n maksimisovitus. Berge (1957) on osoittanut seuraavan tuloksen Lause 4.2.1 Sovitus M on graan G maksimisovitus jos ja vain jos G ei sisällä M:n lisäyspolkua. Todistus" "on todistettu edellä. " "Oletetaan, että G ei sisällä M:n lisäyspolkua. Vastaoletus: M ei ole G:n maksimisovitus. On siis olemassa G:n sovitus M, jolle M > M. Olkoon M = (M \ M ) (M \ M) ja olkoon H = G[M ] viivojen virittämä aligraa. Selvästi deg H (v) 2 aina kun v H, sillä v on päätepiste korkeintaan yhdessä sovituksen M ja yhdessä sovituksen M viivassa. Edellisen lemman perusteella jokainen H:n komponentti A on polku tai piiri. Koska mikään joukon A piste ei voi olla kahden M:n tai M :n viivan päätepiste, niin A:n viivat vuorottelevat M:n ja M :n viivoilla. Jos A on piiri, niin silloin A on parillinen. Vastaoletuksen perusteella on M > M, joten on olemassa sellainen H:n komponentti A, että A:ssa on enemmän M :n kuin M:n viivoja. Silloin välttämättä A on polku u v.... Huomio: Edelläolevan tuloksen alkuosaa voidaan käyttää maksimisovituksen muodostamiseen, kun lähtökohtana on mikä tahansa graan G sovitus M ja G:n M-lisäyspolku. 4.3 Sovitukset kaksijakoisissa graafeissa Vaikka sovitukset voidaan määritellä kaikille ei-triviaaleille graafeille, useimmat sovitusongelmat koskevat kaksijakoisia graafeja. Esimerkki 4.3.1 Projektiin osallistuu 5 työntekijää T 1, T 2,..., T 5 ja projektissa on 5 tehtävää t 1, t 2,..., t 5. Työntekijöiden taidot eri tehtävissä on esitetty graan avulla seuraavasti... Tehtävänä on sijoittaa työntekijät eri tehtäviin niin, että jokaiseen tehtävään tulee siihen kykenevä henkilö.

17 Selvästi täydellisen sovituksen omaavassa graassa on oltava parillinen määrä pisteitä. Jos lisäksi G on (X, Y )-kaksijakoinen graa, niin sillä on täydellinen sovitus vain jos X = Y. Toisinpäin tulos ei ole voimassa. Seuraava tulos antaa välttämättömän ja riittävän ehdon sille, milloin kaksijakoinen graa sisältää täydellisen sovituksen. (X, Y ) kaksijakoinen graa G toteuttaa naapuruusehdon (Hall's condition), jos N G (S) S aina kun S X. Lause 4.3.1 (Hall's Matching Theorem)Olkoon G (X, Y )-kaksijakoinen graa. Graalla G on joukon X sovittava sovitus M jos ja vain jos G toteuttaa naapuruusehdon. Todistus. " "Jos M on G:n joukon X sovittava sovitus, niin aina kun u X, on olemassa v Y, jolle uv M. Koska M on sovitus, niin aina kun x X ja x u on voimassa xv / M. Silloin jokaista joukon S X pistettä vastaa ainakin yksi joukon N G (S) piste. Siis aina kun S X, on N G (S) S. " "Olkoon G (X, Y ) kaksijakoinen naapuruusehdon toteuttava graa. Todistetaan tulos matemaattisella induktiolla X :n suhteen. Jos X = 1, niin tarvittava sovitus löytyy. Induktio-oletus: Jos X k, niin G:llä on joukon X sovittava sovitus. Olkoon X = k + 1. Kaksi mahdollisuutta... Eellisen lauseen perusteella on voimassa Seuraus 4.3.1 (X, Y )-kaksijakoisella graalla G, missä X = Y, on täydellinen sovitus jos ja vain jos N G (S) S aina kun S X. Todistus. Tulos seuraa edellisestä lauseesta, sillä jos sovitus M sovittaa joukon X, niin koska X = Y ja jokainen X:n piste on täsmälleen yhden sovituksen M viivan päätepiste, on myös jokainen Y :n piste täsmälleen yhden M:n viivan päätepiste. Siis M on täydellinen. Edelläolevaa muotoilua kutsutaan myös Hallin naittamisteoreemaksi (Hall's Marriage Theorem), sillä se voidaan muotoilla myös seuraavasti: Jos X on joukko miehiä ja Y on yhtäsuuri joukko naisia, niin aina kun mitä tahansa n:n miehen joukkoa vastaa ainakin n:n sopivan naisen joukko, voidaan kaikista miehistä ja naisista muodostaa sopivat parit. Seuraavassa tarkastellaan säännöllisen kaksijakoisen graan sovituksia. Aluksi todistetaan Apulause 4.3.1 Jos säännöllinen graa on (X, Y )-kaksijakoinen, niin X = Y. Todistus. Olkoon X = k ja G r-säännöllinen. Silloin E G = kr. Koska jokaisen viivan toinen päätepiste on Y :n piste ja koska G on r-säännöllinen, niin r Y = rk, siis Y = k. Lause 4.3.2 Jokaisella säännöllisellä 2-jakoisella graalla G on täydellinen sovitus. Todistus. Olkoon G (X, Y )-kaksijakoinen r-säännöllinen graa. Edellisen apulauseen perusteella on X = Y. Olkoon S X mielivaltainen. Koska G on r-säännöllinen, niin S:n pisteet ovat r S :n viivan päätepisteitä. Näiden viivojen toinen päätepiste on aina Y :n piste. Koska myös jokaisen Y :n

18 pisteen aste on r, niin näillä r S :llä viivalla on ainakin S eri pistettä päätepisteinä Y :ssä. Siis N G (S) S ja väite seuraa Lauseesta 4.3.1. Erilliset edustajat Hallin teoreemaa voidaan soveltaa myös tilanteessa, jossa on tietystä joukosta erilliset edustajat. Esimerkiksi poliitikoilla voi olla useita eri intressiryhmiä. Oletetaan, että poliitikoista olisi kerättävä toimikunta, jossa jokainen poliitikko edustaa yhtä intressiryhmää. Kysymys onko toimikunnan perustaminen mahdollista ratkeaa Hallin teoreeman avulla. Yleisesti: Määritelmä 4.3.1 Olkoon J S = {S 1, S 2,..., S n } äärellisten ei-tyhjien joukon S osajoukkojen joukko (S i :t eivät välttämättä ole erillisiä). Joukkojen joukon J S erilliset edustajat (transversals tai system of distinct representatives)ovat joukko T S,missä T = n ja T sisältää yhden alkion jokaisesta joukosta S i. Erilliset edustaja liittyvät Hallin teoreemaan seuraavasti. Olkoon J S = Y ja ja X = {1, 2,..., n}. Määritellään (X, Y )-kaksijakoinen graa G seuraavasti: Viiva (i, s) E G jos ja vain jos s S i. Jos G:llä on sovitus M, joka sovittaa X:n, niin erillisten edustajien joukko saadaan valitsemalla edustajiksi sovituksen M viivojen ne päätepisteet, jotka ovat Y :n pisteitä. Seuraus 4.3.2 Olkoon J S äärellinen äärellisten ei-tyhjien joukkojen joukko (eli joukkoperhe). Perheellä J S on erillisten edustajien joukko jos ja vain jos jokainen perheen J S k:n joukon unioni sisältää ainakin k alkiota. Todistus. Olkoon S joukoissa S i esiintyvien alkioiden joukko, S = {a 1, a 2,..., a n } ja olkoon graa G = (V G, E G ), missä ja V G = {a 1, a 2,..., a n } X, X = {1, 2, 3,..., m} Selvästi G on (X, S)-kaksijakoinen graa.... E G = {(i, a j ) a j S i } Myös painotettujen graaen sovituksilla on sovelluksia. Aikaisemmin sijoiteltiin työntekijöitä eri tehtäviin. Soveltuvuutta voidaan myös kuvata painotetulla graalla G α, missä viivan T i t j paino α(t i t j ) kuvaa työntekijän T i soveltuvuutta tehtävään t j. Tyypillisesti tarkoituksena on maksimoida sovituksen viivojen painojen summa. Edelläkuvattu M-lisäyspolku tekniikka soveltuu myös muille kuin kaksijakoisille graafeille. Kurssin lopussa tarkastellaan siirtoverkon vuota, jota voidaan myös käyttää maksimisovituksen etsimisessä.

19 5 Etäisyys Etäisyyden käsite esiintyy graaen yhteydessä mm. tutkittaessa graaen isomoraa (graa invariantit) ja graaen operaatioita. Etäisyyden avulla määritellään graan keskeisimpiin osiin liittyviä käsitteitä ja tarkastellaan esimerkiksi palveluiden sijoittamisongelmaa. Useat graaalgoritmit tutkivat tietynpituisia polkuja graafeissa. Seuraavassa määritellään etäisyyteen liittyviä keskeisiä käsitteitä graafeissa, tarkastellaan etäisyyttä puissa ja tarkastellaan miten voidaan määritellä puun ja yleisemmin graan keskeiset osat. 5.1 Määritelmiä Aikaisemmin määriteltiin, että kahden pisteen u ja v etäisyys graassa G, d G (u, v) on lyhyimmän u v polun viivojen lukumäärä. Tämä etäisyysfunktio toteuttaa samat aksiomit kuin etäisyysfunktiot (metriikat) muussa matematiikassa, eli (1) d G (u, v) 0 ja d G (u, v) = 0 jos ja vain jos u = v. (2) d G (u, v) = d G (v, u) kaikilla u, v V G. (3) d G (u, v) d G (u, w) + d G (w, v) aina kun u, v, w V G. Vastaavat aksiomit ovat voimassa myös silloin kun etäisyyttä kuvataan viivapainoilla. Määritelmä 5.1.1 Graan G = (V, E) pisteen u eksentrisyys (eccentricity) e G (u) = max d G(u, v). v V Piste v on u:n eksentrinen piste (eccentric vertex), jos Esimerkki 5.1.1 d G (u, v) = e G (u) Huomio. Jos e G (u) = k jollakin u V G, niin pisteen u etäisyys mistä tahansa pisteestä on k ja on olemassa ainakin yksi piste v, jolle d G (u, v) = k. Määritelmä 5.1.2 Graan G = (V, E) säde (radius) on rad(g) = min{e G (u) u V }. Säde on siis G:n pisteiden pienin eksentrisyys. Graan G keskus (center) C(G) = {u e G (u) = rad(g)}

20 Graan keskus esiintyy mm. palvelun sijoittamisongelmassa (facility location problem) Tässä ongelmassa graalla mallinnetaan kaupungin katuverkostoa. Viivat ovat teitä ja pisteet esimerkiksi kaupunginosia. Silloin keskus sisältää ideaaliset sijainnit esimerkiksi poliisi- ja paloasemalle, sairaalalle jne. Pisteen v eksentrisyys kuvaa vasteaikaa v:stä kauimmaiseen pisteeseen. Edellämainittujen palveluiden sijoittelussa pyritään maksimivasteaika eli siis eksentrisyys, minimoimaan. Määritelmä 5.1.3 Graan G = (V, E) halkaisija (diameter) on diam(g) = max{e G (u) u V }, jos G on yhtenäinen ja diam(g) =, jos G on epäyhtenäinen. Graan G periferia (periphery) P (G) = {u e G (u) = diam(g)} Määritelmä 5.1.4 Graan G = (V, E) pistepari u, v on antipodaalinen (antipodal), jos d G (u, v) = diam(g). Lyhin polku u (radial path). v, missä u C(G) ja v on u:n eksentrinen piste on radiaalinen polku Seuraavassa kaksi perustulosta graan eksentrisyydestä, säteestä ja halkaisijasta. Lause 5.1.1 Jos u ja v ovat yhtenäisen graan G vieruspisteitä, niin Todistus.... e G (u) e G (v) 1 Lause 5.1.2 Aina kun G on yhtenäinen graa, niin rad(g) diam(g) 2rad(G) Todistus. Selvästi on voimassa rad(g) diam(g), joten riittää osoittaa, että diam(g) 2rad(G).... 5.2 Puut ja etäisyys Tarkastellaan etäisyyden käsitettä puissa. Seuraavassa on joukko puun ominaisuuksia. Lause 5.2.1 Puulle T = (V T, E T ) on voimassa: (i) Aina kun u ja v ovat vieruspisteitä ja w V T piste, niin d T (u, w) d T (v, w) = 1. (ii)kaikki T :n eksentriset pisteet ovat lehtiä. (iii)kaikki antipodaalisissa pareissa esiintyvät pisteet ovat lehtiä. (iv) P (T ) sisältää vain T :n lehtiä. (v)jos polku P : u v on T:n lyhimmistä poluista pisin, niin kaikki keskuksen C(T ) pisteet esiintyvät polussa P.

21 Todistus.(i) Koska T on puu, niin on olemassa vain yksi polku P u : u w ja vain yksi polku P v : v w. Silloin joko u P V tai v P u. (ii) Vastaoletus: On olemassa v joka ei ole lehti ja e T (u) = d T (u, v). Koska v ei ole lehti, niin sillä on ainakin 2 vieruspistettä. Olkoon v se vieruspiste, joka ei esiinny polussa P : u v. Silloin u v v on T:n polku ja koska T on puu, on se ainoa ploku pisteestä u pisteeseen v. Silloin on d T (u, v ) = d T (u, v) + 1 = e T (u) + 1, mikä on ristiriita. (iii)vastaoletus: Pistepari u, v on antipodaalinen pari ja v ei ole lehti. Jos pisteellä v on vieruspiste v, joka ei esiinny polussa P : u v, niin vastaavasti kuin kohdassa (ii) voidaan osoittaa, että polku P vv : u v v on pidempi kuin polku P. (iv) seuraa kohdasta (ii) (v)vastaoletus: On olemassa sellainen piste w C(T ) ja sellainen polku P : u v, P = diam(t ), että w ei esiinny polussa P. Koska T ei sisällä piiriä ja T on yhtenäinen, niin joko u esiintyy polussa w v tai v esiintyy polussa w u. Silloin on mikä on ristiriita. rad(t ) = e T (w) max{d T (u, w), d T (v, w)} > d T (u, v) = diam(t ), Puun keskuksen muoto on yksinkertainen. Lause 5.2.2 Puun keskuksen muodostaa joko yksi piste tai kaksi vieruspistettä. Todistus. Osoitetaan tulos matemaattisella induktiolla V T :n suhteen. Jos n 2, niin lause on voimassa. Olkoon n 3ja olkoon L = {v v V T ja v on lehti }. Induktio-oletus: Aina kun V T k, niin T:n keskuksen muodostaa yksi piste, tai kaksi vierekkäistä pistettä. Olkoon V T = k + 1 ja olkoon L puun T lehtien joukko.... Edellisen lauseen todistus antaa myös menetelmän puun keskuksen etsimiseen. Poistetaan puusta aina lehdet. Viimeiseksi jäävä piste tai pistepari on alkuperäisen puun keskus. Puun keskeisimpiä osia voidaan arvioida myös muulla kuin keskuksella. Määritelmä 5.2.1 Puun T = (V T, E T ) pisteeseen v liittyvä oksa (branch) on sellainen T :n indusoima alipuu, jossa v on lehti. Pisteen v oksapaino (branch weight) b W (v) = max{ E T puu T on pisteeseen v liittyvä oksa} eli b W (v) on v viivojen määrältään suurimman oksan viivojen lukumäärä. Määritelmä 5.2.2 Puun sentroidin (centroid) muodostavat ne pisteet, joiden oksapaino on pienin. Lause 5.2.3 Puun sentroidi käsittää yhden pisteen tai kaksi vierekkäistä pistettä.

22 Todistus.Vastaoletus: On olemassa kaksi puun T sentroidin pistettä u ja v, jotka eivät ole vieruspisteitä.... Vaikka keskus ja sentroidi molemmat "mittaavat"puun keskeisiä osia, niin silti ne voivat olla erillisiä toisistaan. Lause 5.2.4 Olkoon T puu. Silloin on voimassa: (i) Jos T :n keskus käsittää yhden pisteen, niin diam(t ) = 2rad(T ). (ii)jos T :n keskuksen muodostaa 2 pistettä, niin diam(t ) = 2rad(T ) 1. Todistus. (i) Olkoon C(T ) = {v}. Jos T käsittää vain yhden pisteen, niin silloin T = K 1 ja rad(t ) = 0 = 2 0 = 2 diam(t ). Oletetaan, että T on ei-triviaali puu. Silloin on V T 3. (ii) Olkoon C(T ) = {u, v}, V u = {x V T d T (u, x) < d T (v, x)} ja... V v = {x V T d T (v, x) < d T (u, x)}. 5.3 Keskus graafeissa Puille keskuksen muoto on yksinkertainen. Muille graafeille tilanne on ongelmallisempi. Lause 5.3.1 Yhtenäisen graan G keskus sisältyy yhteen G:n blokkiin. Todistus. Jos G on yhtenäinen graa ilman irrotuspisteitä, niin G koostuu yhdestä blokista. Voidaan siis olettaa, että on olemassa G:n irrotuspiste v. Silloin graalla G v on ainakin kaksi komponenttia. Vastaoletus: On olemassa pisteet x, y C(G), missä x V H ja y V J ja H ja J ovat G v:n eri komponentteja.... Keskuksen sisältävää blokkia kutsutaan keskusblokiksi (central block).

23 6 Graan yhtenäisyys Esimerkki Tarkastellaan allaolevia graafeja.... Kaikki graat ovat yhtenäisiä, mutta yhtenäisyys on "erilaista". Graa G 1 on puu. Minkä tahansa viivan poistaminen muuntaa G 1 :sen epäyhtenäiseksi. Graaa G 2 ei viivan poistaminen tee epäyhtenäiseksi, mutta keskimmäisen pisteen poistaminen kyllä. Graaa G 3 ei saa epäyhtenäiseksi yhden viivan tai pisteen poistolla, mutta silti se on vähemmän yhtenäinen kuin täydellinen graa G 4. Graaen yhtenäisyyteen liittyvillä käsitteillä ja tuloksilla on sovellutuksia mm. tietoliikenneja tietokoneverkkoja tarkasteltaessa. Seuraavassa määritellään graan yhtenäisyyttä kuvaavia tunnuslukuja ja niiden välisiä suhteita ja tarkastellaan miten erillisten polkujen lukumäärä kuvaa graan yhtenäisyyttä. 6.1 Graan yhtenäisyyttä kuvaavat luvut Graan virittävä puu on yleensä optimaalinen ratkaisu, kun verkon rakentamisen rakennuskulut ovat tärkein kriteeri. Muita kriteereitä voi olla esimerkiksi verkon viansieto. Voidaan esimerkiksi haluta varmistaa että kaksi verkon solmua (tietokonetta, komponenttia jne.) on liitetty toisiinsa niin, että yhden solmun ja/tai linkin (esim. kaapelin) vikaantuminen ei poista kaikkia yhteyksiä solmujen välillä. Aikaisemmin määriteltiin, että graa G on separoitumaton, jos G v on yhtenäinen aina kun v V G. Separoitumattomasta graastakin saadaan epäyhtenäinen poistamalla tarpeeksi pisteitä. Määritelmä 6.1.1 Graan G pisteiden joukko A V G on separoiva joukko (separating set), jos graa G A on epäyhtenäinen. Apulause 6.1.1 Jos yhtenäisellä graalla G = (V, E) ei ole separoivaa joukkoa, niin se on täydellinen graa. Todistus. Jos V 2, niin G on täydellinen. Oletetaan, että V 3. Jos u, v V ovat eri pisteet ja uv / E, niin silloin graa G[{u, v}] on epäyhtenäinen, eli V \ {u, v} on G:n separoiva joukko. Jos siis G:llä ei ole separoivaa joukkoa, niin on oltava, että uv E aina kun u, v V ja u v. Silloin G on täydellinen graa. Määritelmä 6.1.2 Graan G (piste) yhtenäisyysluku (connectivity number) κ(g) = min{ A A V G ja G A on epäyhtenäinen tai triviaali}. Graa G on k-yhtenäinen (k-connected), jos κ(g) k. Vastaavasti voidaan määritellä Määritelmä 6.1.3 Graan G viivojen joukko F E G on viivairrotusjoukko (edge cut), jos graa G F on epäyhtenäinen. Jos lisäksi viivajoukko F \ {e} ei ole viivairrotusjoukko millään e F, niin F on side (bond). Graan G viivayhtenäisyysluku (edge connectivity number) λ(g) = min{ F F E G ja G F on epäyhtenäinen }.

24 Triviaaleille graafeille λ(g) = 0. Graa G on k-viivayhtenäinen (k-edge connected), jos λ(g) k. Seuraavassa muutamia edellä määriteltyihin lukuihin liittyviä ominaisuuksia. Apulause 6.1.2 Olkoon e yhtenäisen graan G silta. Silloin (i) c(g e) = 2. (ii)jos H on graan G e komponetti ja e E H on H:n silta, niin e on myös G:n silta. Todistus. (i) Olkoon e = uv G:n silta. Silloin on c(g e) 2 ja graa G e ei sisällä polkua u v. Jos w on G:n piste, niin on olemassa G:n polku P : w u. Jos e / P, niin P on myös graan G e polku. Jos e P, niin on olemassa graan G e polku w u. Siis jokaisella pisteellä w G e sisältää joko polun w u tai polun w v. Eli c(g e) 2. (ii)... Apulause 6.1.3 Jos e = uv on yhtenäisen graan G silta, niin joko G = K 2 tai ainakin yksi pisteistä u, v on irrotuspiste. Edellä olevien tulosten avulla voidaan osoittaa: Apulause 6.1.4 Jos F on yhtenäisen graan G side, niin Lause 6.1.1 Kaikille graafeille G on c(g F ) = 2. κ(g) λ(g) δ(g). Todistus. Voidaan olettaa, että G on ei-triviaali. Jos v V G, niin kaikkien viivojen, joissa v on toisena päätepisteenä, poistaminen tekee graasta epäyhtenäisen. Siis λ(g) δ(g). Riittää osoittaa, että κ(g) λ(g). Jos λ(g) = 0, niin G on epäyhtenäinen, joten myös κ(g) = 0. Jos λ(g) = 1, niin G on yhtenäinen ja G sisältää sillan. Lemman 6.1.3. perusteella G = K 2 tai G sisältää irrotuspisteen. Molemmissa tapauksissa κ(g) = 1. Voidaan olettaa, että λ(g) 2. Olkoon F sellainen G:n viivairrotusjoukko, että F = λ(g) ja olkoon e = uv F. Silloin F on side ja lemman 6.1.4 perusteella c(g F ) = 2. Olkoon H = G (F \ {e}) = (G F ) + e. Koska λ(g) = F, niin H on yhtenäinen G:n aligraa. Koska c(g F ) = 2, niin e on graan H silta. Aina kun viiva f F \ {e}, niin ainakin toiselle sen päätepisteelle w on voimassa w u ja w v. Valitaan jokaiselle joukon F \ {e} viivalle yo. ehdon täyttävä piste(valinnan eri viivoille ei tarvitse olla eri piste) ja olkoon S näin valittujen pisteiden joukko. Silloin on S F 1 = λ(g) 1 ja graa G S ei sisällä joukon F \ {e} viivoja. Jos G S on epäyhtenäinen, niin silloin S on G:n separoiva joukko ja κ(g) S F 1 λ(g). Oletetaan lopuksi, että graa G S on yhtenäinen. Koska u, v / S, niin S:n määritelmän perusteella on H S = G F + uv S = G S ja silloin G S on graan H indusoitu aligraa. Koska viiva uv G S ja uv on H:n silta, niin uv on myös graan G S silta.

25 Apulauseen 6.1.3 perusteella on G S = K 2 tai u tai v (tai molemmat) on G S:n irrotuspiste. Molemmissa tapauksissa yhden pisteen poisto muuntaa graan G S triviaaliksi tai epäyhtenäiseksi graaksi. Siis G:n muuntamiseen triviaaliksi tai epäyhtenäiseksi graaksi tarvitaan S + 1:n pisteen poisto. Siis κ(g) S + 1 λ(g) 1 + 1 = λ(g). 6.2 Mengerin teoreema Vuonna 1927 Menger osoitti, että graan yhtenäisyyden tasoa kuvaa kahden pisteen välillä olevien riippumattomien polkujen lukumäärä. Määritelmä 6.2.1 Olkoon G = (V, E) graa ja u, v V. Pistejoukko S V \ {u, v} erottaa (separate) u:n ja v:n toisistaa, jos graa G S ei sisällä yhtään polkua u v. Lause 6.2.1 (Menger 1927) Olkoon G yhtenäinen graa ja u, v kaksi pistettä, jotka eivät ole vieruspisteitä. Silloin pienimmän u:n ja v:n erottavan pistejoukon pisteiden lukumäärä on sama kuin riippumattomien polkujen u v lukumäärä. Todistus Olkoon l riippumattomien polkujen u v lukumäärä. Jos joukko S erottaa u:n ja v:n, niin jokainen G:n polku u v sisältää ainakin yhden joukon S pisteen. Siis S l. Osoitetaan,että S l. Riittää osoittaa seuraava Väite. Jos S = {w 1, w 2,... w k } on pistemäärältään pienin pistejoukko, joka erottaa u:n ja v:n, niin l k. Olkoon m = V G + E G. Todistetaan väite matemaattisella induktiolla luvun m suhteen. Jos k = 1, niin väite on voimassa. Täten väite on voimassa, kun m 3. Induktio-oletus: Väite on voimassa, kun m j. Olkoon m = j + 1. Kaksi vaihtoehtoa on mahdollisia: (1) N G (u) N G (v) (2)N G (u) N G (v) =. (1) Olkoon w N G (u) N G (v) eli w on sekä u:n, että v:n vieruspiste. Välttämättä w S. Graassa G w joukko S \ {w} erottaa u:n ja v:n ja S \ {w} on pistemäärältään pienin tällainen joukko. Koska S \ {w} = k 1 ja koska V G w + E G w j + 1 1 niin induktiooletuksen perusteella G w:ssä on ainakin k 1 riippumatonta u v polkua. Silloin G:ssä on ainakin k riippumatonta u v polkua. (2) Oletetaan, että N G (u) N G (v) =. Olkoon H u se graan G S komponentti joka sisältää u:n ja H v se graan G S komponentti joka sisältää v:n. Koska oletuksen perusteella u:n ja v:n naapurustot eivät sisällä yhteisiä pisteitä, niin jäljelle jää kaksi mahdollisuutta: (2.1) S N G (u) ja S N G (v) (2.2) Joko S N G (u) tai S N G (v) (mutta ei molemmat). (2.1) Oletetaan, että S N G (u) ja S N G (v). Olkoon v uusi piste ja olkoot G u uusi graa, jolle V Gu = V Hu S {v} ja E Gu = E G[Hu S] {vw i i = 1, 2,..., k} Graa G[H u S] on yhtenäinen, koska G on yhtenäinen ja H u on graan G S komponentti. Koska vw i E Gu aina kun i = 1, 2,..., k, niin G u on yhtenäinen.

26 Koska S on pistemäärältään pienin u:n ja v:n erottava pistejoukko, niin jokainen w i S on jonkin graan H v pisteen vieruspiste. Silloin on E Gu E G Koska lisäksi joukko S ei sisälly pisteen v naapurustoon, niin H v {v}. Siis V Hv 2. Silloin on V Gu = V G[Hu S] + 1 < V G[Hu S] + V Hv V G. On osoitettu, että E Gu + V Gu < E G + V G. Jos nyt S on pistemäärältään pienin pisteiden joukko, joka erottaa u:n ja v:n graassa G u, niin aina kun pistejoukon S piste w i / S, joukko S erottaa u:n w i :stä graassa G. Silloin S erottaa u:n ja v:n graassa G. Joukon S määritelmän perusteella on S k. Koska graan G u pisteiden ja viivojen yhteenlaskettu määrä oli pienempi kuin graassa G, niin induktio-oletuksen perusteella G u :ssa on k riippumatonta u v polkua. Tämä on mahdollista vain jos on olemassa k graan G polkua u w i, i = 1, 2,..., k, joilla on vain päätepiste u yhteinen ja mikään muu poluissa esiintyvä piste ei esiinny kahdessa em. polussa. Kun toistetaan edelläoleva prosessi lisäämällä graain G uusi piste u ja määrittelemällä graa G v vastaavalla tavalla kuin G u edellä, voidaan osoittaa, että on olemassa k polkua v, i = 1, 2,..., k, joilla on vain piste v yhteinen ja mikään muu poluissa esiintyvä piste w i ei esiinny kahdessa em. polussa. Yhdistämällä polut saadaan k riippumatonta polkua u w i v, i = 1, 2,..., k. (2.2)Oletetaan, että kaikilla u:n ja v:n erottavilla k pistettä sisältävillä pistejoukoilla S joko S N G (u) tai S N G (v). Olkoon P = efq lyhin polku u v G:ssä, missä viiva e = ux, viiva f = xy ja polku Q : y v. Koska N G (u) N G (v) =, niin välttämättä P 3, joten piste y v. Selvästi V G f + E G f < V G + E G. Olkoon S pistemäärältään pienin graassa G f pisteet u ja v erottava pistejoukko. Jos S k, niin induktio-oletuksen perusteella on olemassa k riippumatonta graan G f (ja siis myös graan G ) polkua u v. Jos S < k, niin S ei erota u:ta ja v:tä graassa G. Koska S kuitenkin erottaa u:n ja v:n graassa G f, niin välttämättä jokainen G S :n polku u v sisältää viivan f. Silloin x, y / S. Olkoot nyt S x = S {x} ja S y = S {y}. Selvästi sekä S x, että S y erottavat u:n ja v:n graassa G ja S x = S y = k. Koska y / N G (u) ja y S y, niin (2.2):sen oletuksen perusteella S y N G (v). Toisaalta koska ux oli graan G viiva, niin S x N G (u). Silloin kaikki joukon S pisteet ovat sekä u:n, että v:n vieruspisteitä, mikä on ristiriita kohdan (2) oletuksen kanssa. Edellisen lauseen perusteella voidaan yhdistää riippumattomien polkujen lukumäärä ja k- yhtenäisyys.

27 Lause 6.2.2 (Menger (1927))Graa G on k-yhtenäinen, jos ja vain jos jokaisella pisteparilla u, v V G on olemassa k riippumatonta polkua u v. Todistus. ' ' selvä. ' ' Oletetaan, että κ(g) = k. Vastaoletus On olemassa sellaiset pisteet u, v V G, että graassa G on korkeintaan k 1 riippumatonta polkua u v Edellisen lauseen perusteella pisteet u ja v ovat vieruspisteitä. Olkoot e = uv E G. Tarkastellaan graaa G e. Vastaoletuksen perusteella graassa G e on korkeintaan k 2 riippumatonta u v polkua. Silloin edellisen lauseen perusteella u ja v voidaan erottaa graassa G e sellaisella pistejoukolla S, missä S = k 2. Koska κ(g) = k, niin pistejoukossa V G on enemmän kuin k pistettä. Siis on olemassa sellainen piste w V G, että w / S {u, v}. Välttämättä joukko S erottaa w:n joko pisteestä u tai pisteestä v graassa G e. Voidaan olettaa, että S erottaa pisteen w u:sta (v:stä erottaminen vastaava). Silloin joukko S {v} erottaa w:n u:sta graassa G. Tämä on ristiriita, sillä S {v} = k 1 ja κ(g) = k. Seuraavassa esitetään todistuksetta vastaavat tulokset viivayhtenäisyydelle. Määritelmä 6.2.2 Olkoon G = (V, E) graa. Pisteet u ja v erottava viivajoukko (u, v- disconnecting set) on sellainen joukko F V G, että jokainen polku u v sisältää ainakin yhden joukon F viivan. Polut P 1 ja P 2 ovat viivariippumattomia, jos poluissa ei esiinny samoja viivoja. Voidaan todistaa seuraavat tulokset. Lause 6.2.3 Olkoot u ja v kaksi graan G pistettä. Silloin viivojen lukumäärältään pienimmän u:n ja v:n erottavan viivajoukon viivojen lukumäärä on sama kuin viivariiippumattomien polkujen u v lukumäärä. Lause 6.2.4 Graa G on k-viivayhtenäinen jos ja vain jos jokaiselle pisteparille u, v V G on olemassa k-viivariippumatonta polkua u v. Diracin viuhka Määritelmä 6.2.3 Olkoon G graa, v V G, S V G ja v / S. Polkujen joukko pisteeltä v johonkin joukon S pisteeseen on (v,s)-viuhka ((v, S)-fan), jos polkujen ainoa kahdessa polussa esiintyvä piste on v. Lause 6.2.5 (Dirac 1960) Graa G on k-yhtenäinen jos ja vain jos V G > k ja on olemassa k:n polun (v, S)-viuhka aina kun S V G, S k, v V G ja v / S. Todistus harjoituksissa. Lause 6.2.6 Olkoon G k-yhtenäinen, k 2. Aina kun S on joukon V G vähintään k pistettä sisältävä osajoukko, on olemassa graan G piiri joka sisältää kaikki joukon S pisteet. Todistus...

28 Koska κ(g) 2, niin G ei sisällä irrotuspistettä eikä siltaa. Silloin jokainen graan G piste ja jokainen viiva esiintyy ainakin yhdessä piirissä. Olkoon S graan G k:n pisteen pistejoukko ja C piiri, joka sisältää G:n piireistä suurimman määrän joukon S pisteitä.... 6.3 Siirtoverkon luotettavuus Jos graalla mallinnetaan siirtoverkkoa, missä pisteet ovat tietokoneita (tai prosessoreja, modeemeja, hubeja,..) ja viivat tietoliikenneyhteyksiä (kaapeleita,...), niin graan yhtenäisyysluku κ(g) kertoo kuinka monen tietokoneen on vikaannuttava, että verkon toiminta keskeytyy (graasta tulee epäyhtenäinen). Vastaavasti viivyhtenäisyysluku λ(g) kertoo monenko tietoliikenneyhteyden on vikaannuttava verkon toiminnan keskeytymiseksi. Mitä korkeampi κ(g) ja λ(g), sitä luotettavampi siirtoverkko. Siirtoverkon luotettavuudelle on erilaisia malleja 1. Edge failure model Pisteet oletetaan ehjiksi ja viivojen oletetaan vikaantuvan todennäköisyydellä q. Viivat vikaantuvat yhtäaikaa ja jokainen vikaantunut viiva on käyttökelvoton. Yleinen tutkittava ongelma on esimerkiksi K-terminal reliability, jossa kysytään, millä todennäköisyydellä laitteiden (eli pisteiden) osajoukko K on yhtenäinen (eli pisteet ovat samassa komponentissa). 2. Vertex-failure model Viivat oletetaan virheettömiksi. Pisteet vikaantuvat toisistaan riippumatta todennäköisyydellä p. Kun piste vikaantuu, niin samalla kaikki viivat, joiden päätepisteenä vikaantunut piste on, tulevat käyttökelvottomiksi. Tyypillinen on ongelma on, millä todennäköisyydellä siirtoverkko on yhtenäinen. 3. Edge-neighbour connectivity model Viivat vikaantuvat toisistaan riippumatta todennäköisyydellä q. Viivan vikaantuessa vikaantuvat myös viivan päätepisteet. Yleisesti siirtoverkon luotettavuuteen liittyvät ongelmat ovat hankalia Esimerkki Tarkastellaan allaolevaa graaa... Oletetaan, että graan viivat vikaantuvat todennäköisyydellä 0, 2 toisistaan riippumatta (Malli 1). Määrää todennäköisyys, että pisteet u ja v jäävät samaan komponenttiin. RatkaisuOlkoot tapahtuma A: Viivat ux ja uw vikaantuvat, B: Viivat vx ja vw vikaantuvat, C: Viivat ux, wx ja vw vikaantuvat D: Viivat uw, wx ja vx vikaantuvat. Silloin ovat P (A) = P (B) = 0, 2 2, P (C) = P (D) = 0, 2 3 ja P (u ja v ovat samassa komponentissa ) = 1 P (A B C D) =...

29 7 Eulerin ja Hamiltonin graat Seuraavassa tarkastellaan, minkälaisissa graafeissa on mahdollista kulkea kaikki viivat/pisteet käyttämättä mitään viivaa/pistettä useampaa kertaa. Viivojen tapauksessa kyseessä ovat ns. Eulerin graat, pisteiden tapauksessa Hamiltonin graat. Molemmat graatyypit karakterisoidaan ja tutkitaan ehtoja, milloin em. kulkeminen on mahdollista. Lisäksi tutkitaan ko. graafeihin läheisesti liittyviä Postimies ja Kauppamatkustaja ongelmia. 7.1 Eulerin graat Alussa tarkasteltiin Königsbergin siltaongelmaa. Seuraavan karakterisoinnin avulla löydetään ratkaisu mm. tähän ongelmaan. Määritelmä 7.1.1 Graalla G = (V, E) on Eulerin reitti (Euler trail), jos se sisältää reitin jossa jokainen G:n viiva esiintyy. Suljettu Eulerin reitti on Eulerin kierros (Euler tour). Yhtenäinen graa on Eulerin graa tai euleriaaninen (eulerian), jos se sisältää Eulerin kierroksen. Jos e 1 e 2 e n on Eulerin kierros, niin sitä on myös e i e i+1 e n e 1 e 2 e i 1. Euler ratkaisi Königsbergin siltaongelman todistamalla toisenpuolen seuraavasta tuloksesta. Toisen osan todisti Hierholzer (1873) Lause 7.1.1 Yhtenäinen graa (myös multigraa) on Eulerin graa jos ja vain jos jokaisen pisteen aste on parillinen. Todistus. ' ' (Euler 1736) Olkoon W : u u Eulerin kierros ja olkoon v W piste joka esiintyy k kertaa W :ssä. Joka kerta kun W :ssä viiva saapuu pisteeseen v, niin se myös lähtee pisteestä v. Siis v:n aste on parillinen. Myös pisteen u aste on parillinen, koska W alkaa u:sta ja loppuu u:hun. ' ' Hierholzer (1873) Olkoon G = (V, E) yhtenäinen ei-triviaali graa jonka jokaisen pisteen aste on parillinen. Olkoon W = e 1 e 2 e n : v 0 v n, jolle e i = v i 1 v i, pisin G:n reitti. Jos viiva e = v n u E, niin silloin e W, koska muuten reitti W e on pidempi kuin W. Toisaalta, jos v 0 v n ja piste v n esiintyy k kertaa polussa W, niin silloin v n :stä lähtevien viivojen määrä olisi 2(k 1) + 1 eli pisteen v n aste olisi pariton. Siis v 0 = v n eli reitti W on suljettu. Lopuksi, jos W ei ole Eulerin kierros, niin koska G on yhtenäinen, niin on olemassa viiva f = v i u E jollakin i ja f / W. Silloin reitti e i+1 e i+2 e n e 1 e i f on pidempi kuin W, mikä on ristiriidassa reitin W valinnan suhteen. Edellisen lauseen perusteella graa, jonka jonkin pisteen aste on pariton, ei sisällä Eulerin reittiä. Handshaking lemman perusteella graan parittoman asteen omaavien pisteiden lukumäärä on aina parillinen, joten ei ole olemassa graaa jolla on vain yksi parittoman asteen omaava piste. Olkoon G = (V, E) graa, jossa on täsmälleen kaksi parittoman asteen omaavaa pistettä. Muodostetaan uusi graa (tai multigraa) G + e, missä e = uv on uusi viiva (uusi graa on multigraa, jos G sisältää vastaavan viivan). Jokaisen graan G + e pisteen aste on parillinen, joten edellisen lauseen perusteella G + e sisältää Eulerin kierroksen ja tietenkin viiva e esiintyy siinä. Poistamalla tästä kierroksesta

30 viiva e saadaan graan G Eulerin reitti u v. Toisaalta, jos graa sisältää ainakin 4 parittoman asteen omaavaa pisteitä, ei graa sisällä Eulerin reittiä. On todistettu: Lause 7.1.2 Yhtenäinen graa sisältää Eulerin reitin, jos ja vain jos sillä on korkeintaan kaksi parittoman asteen omaavaa pistettä. Graa on semieuleriaaninen (semi-eulerian), jos se sisältää Eulerin reitin, mutta ei Eulerin kierrosta. Graa on kuljettavissa oleva (traversable), jos se on Eulerin graa tai semieuleriaaninen eli se sisältää Eulerin reitin tai Eulerin kierroksen. Edellisen lauseen todistuksen perusteella saadaan Seuraus 7.1.1 Yhtenäinen graa (multigraa) on semieuleriaaninen jos ja vain jos graa sisältää täsmälleen kaksi parittoman asteen omaavaa pistettä. Eulerin reitti alkaa toisesta parittoman asteen omaavasta pisteestä ja päättyy toiseen. 7.2 Postimies ongelma Eulerin kierroksella on useita käytännön sovelluksia, esimerkiksi postinkanto, lumenauraus, roska-auton kulkureitti jne. Tarkastellaan hieman yleisempää ongelmaa. Otetaan graain mukaan viivapainot. Postimies ongelma (The Chinese Postman Problem): Olkoon G = (V, E) painotettu graa, missä painona α : E R +. Ongelmana on löytää pisteestä u (posti) lähtevä suljettu polku W, joka sisältää kaikki graan G viivat (kadut) niin, että α(w ) = e W α(e) on mahdollisimman pieni. Jos G on Eulerin graa, niin Eulerin kierros on Postimies ongelman ratkaisu. Eulerin kierros voidaan löytää seuraavalla algoritmilla: Fleuryn algoritmi: Olkoon v 0 G lähtöpiste ja W 0 v 0 :n triviaalipolku. Toistetaan seuraavaa niin pitkään kuin mahdollista i = 1, 2, 3,... Olkoon W i = e 1 e 2 e i reitti, missä e j = v j 1 v j, j = 1, 2,... i. Valitaan e i+1 seuraavasti: (i) e i+1 e j aina kun j = 1, 2,..., i (ii) v i on e i+1 :sen päätepiste. (iii) Viiva e i+1 ei ole graan G i = G {e 1, e 2,..., e i } silta, jos tällainen valinta on mahdollista. Lause 7.2.1 Jos G = (V, E) on Eulerin graa, niin jokainen Fleuryn algoritmin tuottama reitti on Eulerin kierros. Todistus. Olkoon W n = e 1 e 2 e n Fleuryn algoritmin tuottama G:n reitti, missä e i = v i 1 v i ja G i = G {e 1, e 2,..., e i }. Koska algoritmi pysähtyy pisteeseen v n, niin deg Gn (v n ) = 0 eli kaikki viivat joissa v n on päätepisteenä esiintyvät polussa W. Koska v n :n aste on parillinen, on oltava v 0 = v n eli W n on suljettu reitti. Vastaoletus. W n ei ole Eulerin kierros.

31 Olkoon S = {v v V, deg Gn (v) > 0} Koska W n ei ole Eulerin kierros, niin S 1. Selvästi v n V \ S. Merkitään V \ S = S. Nyt S = {a au {e 1, e 2,..., e n }}. Jos nyt W S eli v 0, v 1,..., v n S, niin jokaisen e i :n molemmat päätepisteet ovat joukon S pisteitä. Silloin ei ole olemassa viivaa uv, missä u S ja v S. Tämä on ristiriidassa G yhtenäisyyden kanssa. On siis olemassa sellainen m, että v m S ja v m+1 S ja v m v m+1 E. Olkoon m suurin tällaisista indekseistä. Koska W n loppuu pisteeseen v n ja v n S, niin e m+1 = v m v m+1 on ainoa graan G m = G {e 1, e 2,..., e m } piste, jolla on toinen päätepiste joukossa S ja toinen joukossa S. Silloin e m+1 on graan G m silta. Olkoon nyt e E, e e m+1 viiva, jonka toinen päätepiste on v m. Tällainen viiva löytyy, koska v m S ja silloin deg Gn (v m ) > 0 ja e m+1 / G n. Koska algoritmi valitsi reittiin W G m :n sillan e m+1, niin myös viiva e on graan G m silta. Koska e e m, niin viivan e molemmat päät ovat joukossa S. Siis e on myös graan G m [S] silta. Koska viivojen e m+2,..., e n päätepisteissä ei esiinny joukon S pisteitä, niin G m [S] = G n [S]. Koska G oli Eulerin graa, niin jokaisen joukon S pisteen aste on parillinen graassa G. Toisaalta viivojen e i, i = 1, 2,..., n poistaminen pudottaa viivoissa esiintyvien päätepisteiden astetta kahdella. Siis jokaisen joukon S pisteen aste on parillinen graassa G n [S] eli myös graassa G m [S]. Silloin graa G m [S] sisältää Eulerin piirin eli piirin, jossa myös viiva e esiintyy. Siis e ei ole graan G m [S] silta. Tämä on ristiriita, joten vastaoletus on väärä. Esimerkki Kaupungin osan kadut ovat allaolevan graan mukaiset, kun viivat ovat katuja ja pisteet katujen risteyksiä. Posti on risteyksessä b. Voiko postimies jakaa postin kaikille kaupunginosan kaduille niin, että hän kulkee jokaisen kadun vain kerran?... Jos katuverkon graa ei ole Eulerin graa, niin ainakin yksi katu on kuljettava kahdesti. Tämä tilanne esiintyy, jos jokin katu on umpikuja tai jossakin risteyksessä risteää pariton määrä katuja. Postimies ongelman ratkaisua voidaan etsiä kopioimalla viivoja ja niiden painoja ja rakentamalla siten Eulerin (multi)graa. 7.3 Hamiltonin graa Edellä kuljettiin kaikki graan viivat kerran. Seuraavassa tarkastellaan milloin ja miten pystytään kulkemaan kaikki graan pisteet kerran. Määritelmä 7.3.1 graan G = (V, E) polku P on Hamiltonin polku (Hamilton path), jos jokainen graan G piste esiintyy polussa P. Piiri C on Hamiltonin piiri, jos jokainen graan piste esiintyy piirissä C.

32 Graa on jäljitettävissä oleva (traceable), jos se sisältää Hamiltonin polun. Graa on Hamiltonin graa (Hamilton graph), jos se sisältää Hamiltonin piirin ja graa on semi-hamiltonilainen (semi-hamiltonian), jos se on jäljitettävissä oleva mutta ei Hamiltonin graa. Polun (piirin) määritelmän perusteella jokainen piste esiintyy Hamiltonin polussa (piirissä) täsmälleen kerran. Lisäksi jos C : u 1 u 2... u n u 1 on Hamiltonin piiri, niin myös u i u i+1... u n u 1... u i 1 u i on sellainen. Hamiltonin graat ja Eulerin graat muodostavat erilliset graaluokat Hamiltonin graafeille ei tunneta vastaavaa karakterisointia, kuin mikä oli pisteiden asteiden parillisuus Eulerin graafeille. Ongelma: Onko G Hamiltonin graa on NP-täydellinen Seuraavassa eräs välttämätön ehto Hamiltonin piirille. Lause 7.3.1 Jos G = (V, E) on Hamiltonin graa, niin aina kun S V ja S, on c(g S) S. Toisin sanoen graan G S komponenttien lukumäärä ei ole suurempi kuin joukon S pisteiden lukumäärä. Todistus.Olkoot u S ja C : u u graan G Hamiltonin piiri. Olkoot G i, i = 1, 2,..., k graan G S komponentit. Jos k = 1, niin väite on voimassa. Oletetaan, että k > 1. Olkoon piste u i C viimeinen piirin C piste, joka esiintyy komponentissa G i ja v i piste joka seuraa pistettä u i piirissä C aina kun i = 1, 2,..., k. Selvästi u i v i E. Koska G i on G S:n komponentti ja u i G i ja v i ei esiinny komponentissa G i, niin v i S. Koska C on piiri ja v i C kaikilla i, niin v l v t aina kun l t. Siis S k. Esimerkki Allaoleva 3-säännöllinen kaksijakoinen graa ei ole Hamiltonin graa... Edellisen lauseen ehto ei ole riittävä, sillä esim. Petersenin graalle on c(g S) S aina kun S on graan ei-tyhjä pistejoukko, mutta graa ei ole Hamiltonin graa. Dirac (1952) on todistanut seuraavan riittävän ehdon: Lause 7.3.2 Jos G = (V, E) on vähintään 3 pistettä sisältävä graa ja aina kun v V, niin G on Hamiltonin graa. deg G (v) V 2 Todistus. Merkitään V = n. Jos n = 3, niin, koska jokaisen pisteen aste on vähintään 2, on G = K 3, joka on Hamiltonin graa. Olkoon n 4 ja olkoon P : v 1 v 2 v k

33 graan G pisin polku. Selvästi N G (v 1 ) N G (v k ) {v 1, v 2,..., v k 1, v k } Koska N G (v 1 ) = deg G (v 1 ) n 2 ja koska v 1 / N G (v 1 ), niin polku P sisältää vähintään n 2 + 1 pistettä, eli k n 2 + 1. Jos v k N G (v 1 ) eli myös v 1 N G (v k ), niin G sisältää piirin v 1 v 2 v k v 1. Jos N G (v 1 ) {v 2, v 3..., v k 1 } ja siis myös N G (v k ) {v 2, v 3..., v k 1 }, niin koska k < n, N G (v 1 ) n 2, N G(v k ) n 2, niin yhdelle v i:lle, 2 i k 1 on voimassa v i N G (v 1 ) ja v i 1 N G (v k ). Siis v 1 v i E ja v i 1 v k E. Joka tapauksessa on voimassa ainakin yhdelle 2 i k, että on G:n piiri. C : v 1 v 2 v i 1 v k v k 1 v k 2 v i v 1 Jos nyt C sisältää kaikki V :n pisteet, niin C on Hamiltonin piiri. Jos u / C, niin koska k n 2 + 1 ja koska deg G(u) n 2, niin ainakin yksi piste v j N G (u). Silloin G sisältää P :tä pidemmän polun, mikä on ristiriidassa P :n määritelmän kanssa. Siis C on Hamiltonin piiri. Esimerkiksi graa C n on Hamiltonin graa, mutta deg Cn (u) = 2 aina kun n = 3, 4,.... Kun n 5, niin C n ei toteuta edellisen lauseen ehtoa. Lauseen ehto ei siis ole välttämätön. Hamiltonin graaen yleistyksiä Graa G on homogeenisesti yhtenäinen (homogeneous connected), jos aina kun v G on olemassa pisteestä v alkava G:n Hamiltonin polku. Selvästi homogeenisesti yhtenäinen graa on aina jäljitettävissä oleva, mutta jäljitettävissä oleva ei ole välttämättä homogeenisesti yhtenäinen. Hamiltonin graa on aina homogeenisesti yhtenäinen, koska poistamalla Hamiltonin piiristä yksi viiva saadaan tarvittavat Hamiltonin polut. Välttämättä homogeenisesti yhtenäinen graa ei ole Hamiltonin graa. Graa G on Hamilton-yhtenäinen (Hamilton connected), jos kaikilla pistepareilla u, v V G on olemassa Hamiltonin polku u v. Esimerkiksi pyörä W 1,n on Hamilton-yhtenäinen. Selvästi Hamilton-yhtenäinen graa on homogeenisesti yhtenäinen, mutta yo. ehto on voimakkaampi: Lause 7.3.3 Jos G = (V G, E G ) on Hamilton-yhtenäinen, vähintään 3 pistettä sisältävä graa-, niin G on Hamiltonin graa. Todistus. Olkoot u, v V G kaksi vieruspistettä. Koska G on Hamilton yhtenäinen, niin on olemassa Hamiltonin polku P : u v. Koska V G 3, niin viiva vu / P. Silloin polku P (vu) on Hamiltonin piiri, joten G on Hamiltonin graa.

34 7.4 Kauppamatkustaja ongelma Kauppamatkustaja ongelmassa (Travelling salesman problem) kauppamatkustajan on käytävä useassa kaupungissa. Hän haluaa käydä jokaisessa kaupungissa vain kerran ja palata toimistolleen mahdollisimman nopeasti. Ongelmaa mallinnetaan graalla, missä pisteitä ovat kaupungit, viivoja kaupunkien väliset tiet (tai lentoreitit) ja viivan paino on matkaan kuluva aika. Ongelman ratkaisu on Hamiltonin piiri, jonka paino on mahdollisimman pieni. Ongelma on NP-täydellinen eli tehokasta algoritmia ongelman ratkaisuun ei ole. Koska Hamiltonin piirin olemassolon selvittäminen oli jo NP-täydellinen ongelma, niin jo ongelma onko kauppamatkustajaongelmaan ratkaisua on NP-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ä, joissa tyydytään siihen,että aina ratkaisua ei löydy tai se ei ole tarkka, on olemassa (kts. esim. hehkutusalgoritmi annealing algorithm tai Karp-Held heuristiikka).

35 8 Graaen väritykset Monet käytännön ongelmat, joita mallinnetaan graafeilla vaativat, että piste- tai viivajoukko ositetaan erillisiin osiin niin että saman osan viivat/ pisteet eivät ole vierekkäisiä. Tällaisia ongelmia ovat mm. kokousten/kokeiden aikatauluttaminen, kemiallisten aineiden varastointi jne. Yleisesti tämän tyyppisiä ongelmia käsitellään tarkastelemalla graaen värityksiä. Seuraavassa käsitellään pisteiden värityksiä, tarkastellaan viivojen värityksiä ja sitä, mitä osia tarpeeksi suuresta graasta välttämättä löytyy. Lopuksi tarkastellaan Ramseyn lukuja. 8.1 Pisteiden väritykset Luvussa 2 määriteltiin yleisesti graan väritys. Seuraavassa tarkennetaan määritelmää ja luokitellaan värityksen määritelmän perusteella graat. Määritelmä 8.1.1 Graan G = (V, E) k-väritys (k-colouring) on kuvaus α : V {1, 2,..., k}. Väritys on aito (proper), jos aina kun uv E, on α(u) α(v), eli graan vieruspisteet ovat aina eriväriset. Väri i {1, 2,..., k} on pisteen v käytettävissä (available), jos α(u) i aina kun u N G (v). Määritelmä 8.1.2 Graa G = (V, E) on k-väritettävissä (k-colourable), jos graalle G on olemassa aito k-väritys. Graan G (pisteiden) kromaattinen luku (chromatic number) χ(g) = min{k G on k-väritettävissä}. Jos χ(g) = k, niin graa G on k-kromaattinen (k-chromatic). Esimerkki 8.1.1 Tarkastellaan allaolevaa graaa... Sillä on olemassa sekä aito 3-, että aito 4- väritys. Koska graa sisältää C 3 :sen aligraanaan, niin sillä ei ole aitoa 2-väritystä. Siis χ(g) = 3. Jokainen graan G aito väritys α : V G {1, 2,..., k} määrää joukon V G osituksen {V 1, V 2,..., V k }, missä V i = {v α(v) = i}. Kaksijakoiselle graalle on kromaattinen luku 2. Toisaalta täydelliselle graalle K n χ(k n ) = n. Värien nimillä ei ole väliä. Jos π on permutaatio värien {1, 2,..., k} joukossa, niin α on graan G aito k-väritys jos ja vain jos πα on aito k-väritys G:lle. Kriittiset graat Seuraavassa tarkastellaan, millä ehdoilla graan kromaattinen luku pienenee, jos graasta poistetaan jotain. Määritelmä 8.1.3 K-kromaattinen graa G on k-kriittinen (k-critical), jos χ(h) < k aina kun H G ja H G. Graa G on kriittinen (critical graph), jos se on k-kriittinen jollakin k. K-kriittisessä graassa G minkä tahansa pisteen/viivan poisto pudottaa kromaatista lukua. Siis χ(g e) < χ(g) ja χ(g v) < χ(g). on

36 Esimerkiksi K n on n-kriittinen, sillä minkä tahansa viivan/pisteen poisto vähentää tarvittavien värien määrää. Selvästi k-kriittinen graa G on yhtenäinen, sillä jos G sisältää komponentit G i, i = 1, 2,..., n, niin χ(g) = max{χ(g i )} ja jos χ(g) = χ(g 1 ), niin pisteen/viivan poistaminen komponentista G 2 ei muuta kromaattisuutta. K-kriittiselle graalle on pisteiden minimiasteen δ(g) oltava tarpeeksi suuri. Jos G on graa, jolla on aito k-väritys α ja piste v, jolle deg G (v) k 2, niin silloin on olemassa ainakin yksi väri, olkoon se punainen, joka ei esiinny pisteen v eikä sen naapureiden värityksessä. Jos nyt graa G v voidaan värittää k 1:llä värillä, niin muuntamalla v:n väri punaiseksi, voidaan myös G värittää k 1:llä värillä. Siis G ei voi olla k-kriittinen. On todistettu Lause 8.1.1 Jos G = (V, E) on k-kriittinen, k 2, niin G on yhtenäinen ja δ(g) k 1. Jos graalle G = (V G, E G ) on kromaattinen luku χ(g) = k, niin poistamalla G:stä kaikki sellaiset pisteet ja viivat, joiden poistaminen ei pudota kromaattista lukua, voidaan aina löytää graan G k-kriittinen aligraa H. Edellisen lauseen perusteella on δ(h) k 1. Toisaalta on aligraan H sisällettävä ainakin k pistettä. Silloin seuraava tulos on voimassa. Lause 8.1.2 Olkoon G graa, jolle χ(g) = k. Silloin (i) Graalla G on k-kriittinen aligraa. (ii) Graa G sisältää ainakin k pistettä, joiden aste on vähintään k 1. Graan kromaattiselle luvulle saadaan yläraja graan maksimiasteesta. Väritetään graa G = (V G, E G ), V G = {v 1, v 2,..., v n } ahneella väritysalgoritmilla seuraavasti: α(v 1 ) = 1 α(v i ) = min{j α(v t ) j aina kun t < j ja kun v i, v t E G } Selvästi α on aito väritys ja α(v i ) deg G (v i ) + 1 kaikilla i. Siis on todistettu Lause 8.1.3 Kaikille graafeille G on χ(g) (G) + 1. Brooks (1941) on todistanut edellistä lausetta voimakkaamman tuloksen. Lause 8.1.4 Lukuunottamatta parittomia piirejä ja täydellisiä graafeja on χ(g) (G).

37 Todistus sivuutetaan (kts. lähdekirjat). Eräs värityksien sovellus on ns. Varasto-ongelma (Storage problem). Tehtävänä on löytää joukon V mahdollisimman pieni ositus, niin että mikään osite ei sisällä yhteensopimattomia alkioita. Tilannetta mallinnetaan graalla G = (V, E), missä uv E jos u ja v eivät voi olla samassa ositteessa. Varasto-ongelman ratkaisu on graan G aito väritys mahdollisimman vähillä väreillä, eli graan G aito χ(g)-väritys. Esimerkki 8.1.2 Kemialliset aineet a, b, c, d, e, f, g reagoivat toistensa kanssa allaolevan graan mukaisesti. Määrää montako säiliötä tarvitaan aineiden säilyttämiseen, kun samassa säiliössä ei voi säilyttää toistensa kanssa reagoivia aineita.... Tehokasta algoritmia kromaattisen luvun määräämiseksi ei tunneta. Ongelma: "Mikä on χ(g)?"on NP-täydellinen. Itseasiassa ongelma: "onko χ(g) = 3?"on NP-täydellinen. Ongelman "Onko χ(g) = 2? ratkaisuun on olemassa nopea algoritmi. Mikä? 8.2 Viivojen väritykset Graan viivojen väritysten sovelluksia ovat esimerkiksi erilaiset liikennekartat, missä eri linjat on merkitty erivärisillä viivoilla. Seuraavassa määritellään graan viivojen väritykset, tarkastellaan aitoja värityksiä ja lopuksi tarkastellaan yleisempiä värityksiä ja Ramseyn lukuja. Määritelmä 8.2.1 Graan = (V, E) k-viivaväritys (k-edge colouring) on kuvaus α : E {1, 2,..., k}. Viivaväritys on aito (proper), jos kahdella vierekkäisellä viivalla ei ole samaa väriä. Graan viivakromaattinen luku (edge chromatic number) χ (G) = min{k G:llä on aito k-viivaväritys} Graan G aito k-viivaväritys α määrää viivajoukon E G osituksen missä joukko E i = {e E G α(e) = i)}. Edelläolevasta määritelmästä seuraa suoraan E G = E 1 E 2 E k, Apulause 8.2.1 Jokainen graan G aidon k-värityksen α i-väriin liittyvä joukko E i = {e E G α(e) = i)} on G:n sovitus. Lisäksi jokaiselle graalle G on (G) χ (G) E G. Esimerkki. Etsi allaolevan graan viivakromaattinen luku.... Tarkastellaan kaksijakoisia graafeja. Lause 8.2.1 Kaksijakoiselle graalle on χ (G) = (G).

38 Todistus... Vizing on osoittanut, että graan viivakromaattinen luku ja maksimiaste eroavat toisistaan korkeintaan yhdellä. Lause 8.2.2 Graalle G on Todistus... (G) χ (G) (G) + 1. Edelläoleva tulos eikä sen todistus ei anna minkäänlaista karakterisointia graafeille G, joilla χ (G) = (G) + 1. Karakterisoinnin löytäminen on kuuluisa avoin kysymys. Eräille yksinkertaisille graatyypeille tiedetään milloin χ (G) = (G) + 1 (kts. harjoitukset). Ramseyn teoria Kun graa riittävän suuri, niin se sisältää välttämättä tiettyjä aligraafeja. Määritelmä 8.2.2 Olkoon α graan G viivaväritys. graan G aligraa H on i-monokromaattinen (i monochromatic), jos kaikkien H:n viivojen väri on i. Harjoituksissa osoitettiin, että 6:n ihmisen joukossa on joko 3 ihmistä, jotka tuntevat toisensa tai 3 ihmistä jotka eivät tunne toisiaan. Sama tulos toisin. Jos α on graan K 6 2-viivaväritys, niin K 6 sisältää aligraanaan joko 1- tai 2-monokromaattisen aligraan K 3. Ramsey (1930) osoitti seuraavan yleistyksen. Lause 8.2.3 Olkoot p, q 2 kokonaislukuja. On olemassa sellainen pienin luku R(p, q), että aina kun n R(p, q), niin jokainen 2-viivaväritys α : K n {1, 2} graalle K n sisältää 1-monokromaattisen graan K p tai 2-monokromaattisen graan K q. Lauseessa esiintyvä luku R(p, q) on Ramseyn luku. Määritelmä 8.2.3 Olkoot p, q 1 kokonaislukuja. Ramseyn luku R(p, q) on pienin sellainen kokonaisluku, että aina kun n R(p, q), niin jokainen n:n pisteen graa sisältää aligraanaan graan K p tai vakaan q:n pisteen joukon Graa K n saadaan n:n pisteen graasta G lisäämällä siihen komplementin G viivat ja G sisältää k:n pisteen vakaan joukon jos ja vain jos K k G. Täten edellinen lause seuraa lukujen R(p, q) olemassaolosta kaikilla p, q 2. Sovellettuna ihmisiin, luku R(p, q) kertoo monenko ihmisen joukossa on p ihmistä, jotka kaikki tuntevat toisensa tai q ihmistä joista kukaan ei tunne toistaan. Seuraava tulos todistaa Lauseen 8.2.3. Lause 8.2.4 (Erdös, Szekeres 1935) Aina kun p, q 2 ovat positiivisia kokonaislukuja, niin Ramseyn luku R(p, q) on olemassa ja R(p, q) R(p, q 1) + R(p 1, q) Todistus. Matemaattinen induktio p + q:n suhteen. Jos p + q 5, niin joko p = 2 tai q = 2. Silloin on R(p, 2) = p = p 1 + 1 = R(p 1, 2) + R(p, 1)

39 Vastaava tulos voidaan osoittaa luvulle R(2, q). Induktio-oletus: Väite on voimassa aina kun p + q < k. Olkoon p + q = k. Riittää osoittaa, että jos G = (V G, E G ) on graa, jolle V G = R(p, q 1) + R(p 1, q), niin K P G tai G sisältää vakaan joukon X, jolle X = q. Olkoon v V G ja Koska A = V G \ (N G (v) {v}) N G (v) + A = V G 1 = R(p 1, q) + R(p, q 1) 1, niin joko (i) N G (v) R(p 1, q) tai (ii) A R(p, q 1) (tai molemmat). (i)oletetaan, että N G (v) R(p 1, q). Induktio-oletuksen perusteella graa G[N G (v)] sisältää aligraanaan graan B = K p 1 tai vakaan joukon S, jolle S = q. Jos B G[N G (v)], niin G[V B {v}] = K p G. Jos taas S on graan G[N G (v)] vakaa joukko, niin S on myös graan G vakaa joukko. (ii)oletetaan, että A R(p, q 1). Induktio-oletuksen perusteella joko K p S = q 1. G[A] tai G[A] sisältää vakaan joukon S, jolle Jos K p G[A], niin K p G. Jos joukko S on graan G[A] vakaa joukko, niin koska A ei sisällä pistettä v eikä sen vieruspisteitä, niin S {v} on graan G vakaa joukko, jolle S {v} = q. Seuraava tulos antaa konkreettisen ylärajan Ramseyn luvulle. Lause 8.2.5 (Erdös, Szekeres, 1935) Aina kun p, q 2, ovat kokonaislukuja, niin Todistus... ( ) p + q 2 R(p, q). p 1 Ramseyn lukuja tunnetaan tarkasti yllättävän vähän. Allaolevassa taulukossa on tunnettuja arvoja ja arvioita. p q 3 4 5 6 7 8 9 10 3 6 9 14 18 23 28 36 40-43 4 9 18 25 35-41 49-61 55-84 69-115 80-149 5 14 25 43-49 58-87 80-143 95-216 121-316 141-442 Ramseyn lukuja on yleistetty eri tavoin. Lause 8.2.6 Olkoot q i 1 kokonaislukuja i = 1, 2,..., k, k 2. On olemassa sellainen pienin luku R = R(q 1, q 2,..., q k ), että aina kun n R(q 1, q 2,..., q k ), niin jokainen k- viivaväritys α : E Kn {1, 2,..., k} graalle K n sisältää i-monokromaattisen graan K qi jollakin i = 1, 2,..., k. Todistus. Matemaattinen induktion k:n suhteen. Edellä on käsitelty tapaus k = 2. Riittää osoittaa, että R(q 1, q 2,..., q k ) R(q 1, q 2,... q k 2, p),

40 missä p = R(q k 1, q k ). Olkoot n = R(q 1, q 2,... q k 2, p) ja α : E Kn {1, 2,..., k}.... Koska jokainen m:n pisteen graa on graan K m aligraa, niin edellisen lauseen perusteella on voimassa Seuraus 8.2.1 Olkoot k 2 kokonaisluku ja H 1, H 2,..., H k graafeja. On olemassa sellainen pienin luku R(H 1, H 2,..., H k ), että aina kun n R(H 1, H 2,..., H k ), niin jokainen k-viivaväritys α : K n {1, 2,..., k} graalle K n sisältää i-monokromaattisen aligraan H i jollakin i = 1, 2,..., k.

41 9 Graat pinnoilla Edellä on todettu, että graa voidaan piirtää mielivaltaisen monella tavalla ja jotkut graan ominaisuudet näkyvät selkeästi jossain piirtämistavoissa, mutta ei toisessa. Eräs tärkeä graaryhmä, pintagraat, määritellään graan piirrettävyyden perusteella. Seuraavassa tarkastellaan pääasiassa niistä yksinkertaisinta tyyppiä, tasograafeja ja myös eräitä tason laajennuksia. 9.1 Tasograat Kysymys, voidaanko graa piirtää tasoon niin, että sen viivat eivät risteä, on tärkeä suunniteltaessa integroituja tai painettuja piirejä. Kysymyksen ratkaisu on ohjelmallisesti hyvin vaikea. Seuraavassa määritellään tasograat ja tarkastellaan näiden graaen ominaisuuksia. Määritelmä 9.1.1 Graa on tasograa (plane graph), jos sillä on sellainen esitys P (G) tasossa, että graan viivat eivät leikkaa toisiaan muualla kuin viivojen päätepisteissä. Tällaista esitystä kutsutaan tasoupotukseksi (plane embedding). Kaikki puut ovat tasograafeja. Puun eräs tasoupotus on sen esittäminen juurrettuna puuna. Piirit ovat tasograafeja, samoin kaikki graat, jotka sisältävät vain yhden piirin. Myös graat K 2,4 ja K 4 ovat tasograafeja, sillä niillä on tasoupotus. Jos graa on pistemäärältään pieni, niin tasoupotus löytyy helposti. Pistemäärältään suurelle graalle on ongelma on vaikea. Lisäksi jos graa ei ole tasograa, on usein hankalaa selvittää kuinka vähillä ylityksillä graa voidaan piirtää. Graan G ylitysluku cr(g) (crossing number) on pienin määrä viivojen risteämisiä, jolla graa voidaan piirtää tasoon. Tasograafeille cr(g) = 0. Seuraavassa tarkastellaan pistemäärältään pienimpiä graafeja, jotka eivät ole tasograafeja... Apulause 9.1.1 Jos graa G ei ole tasograa, niin mikään graa, joka sisältää aligraanaan graan G ei ole tasograa. Silloin edellisen esimerkin perusteella K n ei ole tasograa millään n 5, sillä K 5 K n aina kun n = 6, 7, 8,.... Täydellisistä kaksijakoisista graafeista on K 1,n puu, joten se on tasograa aina kun n = 1, 2,.... Myös K 2,n on tasograa aina kun n = 1, 2,..., sillä sille voidaan piirtää seuraavankaltainen tasoupotus.... Esimerkki 9.1.1 Osoitetaan, että K 3,n ei ole tasograa millään n = 3, 4, 5.... Ratkaisu: Edellisen apulauseen perusteella riittää osoittaa, että K 3,3 ei ole tasograa, sillä K 3,3 K 3,n aina kun n = 4, 5,.... Eulerin tulos Tarkastellaan tasograan tasoupotusta.

42... Viivat jakavat tason alueisiin a, b, c, d. Niistä alue d on rajoittamaton ja muut alueet ovat rajoitettuja. Yleisesti tasograan piirin rajaamaa yhtenäistä (avointa) aluetta, jossa ei ole graan pisteitä, kutsutaan graan silmäksi (face). Myös tasograan ulkopuolella olevaa osaa kutsutaan silmäksi, tarkemmin ulkosilmäksi (outer face), kun rajoitettuja silmiä kutsutaan sisäsilmiksi (inner face). Ylläolevassa esimerkissä silmät a, b, c ovat sisäsilmiä ja d on ulkosilmä. Silmää f ympäröivän piirin pisteet ovat silmän f reunapisteet ja viivat silmän f reunaviivat. Edellisessä esimerkissä u, v, w ovat silmän a reunapisteet ja uw, uv ja vw reunaviivat. Tarkastellaan yhtenäisen tasograan G = (V G, E G ) tasoupotusta P (G). Olkoon T graan G virittävä puu. Puun T tasoupotuksessa (osa P (G):tä) on yksi silmä eli ulkoinen silmä. Lisäksi on V T = E T + 1, joten V T E T + 1 = 2. Aina kun puuhun T lisätään uusi viiva, luodaan silloin uusi silmä, joten uusien silmien lukumäärä on sama kuin lisättyjen viivojen lukumäärä. Jos f G on graan G silmien lukumäärä tasoupotuksessa P (G), niin silloin V G E G + f G = V T ( E T + E G E T ) + 1 + (f G 1) = V T E T + 1 = 2. On todistettu Eulerin tulos: Lause 9.1.1 (Euler's formula) Jos G = (V, E) on yhtenäinen tasograa ja f G graan G tasoupotuksen P (G) silmien lukumäärä, niin silloin on V E + f G = 2. Seuraus 9.1.1 Olkoon G = (V G, E G ) tasograa, jolla on k komponenttia ja f G graan G tasoupotuksen P (G) silmien lukumäärä. Silloin on V G E G + f G = k + 1. Todistus. Matemaattinen induktio graan G komponenttien lukumäärän k suhteen. Tapaus k = 1 käsiteltiin edellisessä lauseessa. Induktio-oletus: Kun graa G sisältää n komponettia, niin V G E G + f G = n + 1. Oletetaan, että graassa G on n + 1 komponenttia. Olkoon P (G) graan G tasoupotus ja G 1, G 2,... G n+1 graan G komponentit. Olkoot graa G = G G 1 ja P (G ) sen tasoupotuksesta P (G) saatu tasoupotus ja f G sen silmien lukumäärä. Induktio-oletuksen perusteella on V G E G + f G = n + 1. Olkoon P (G 1 ) graan G 1 tasoupotuksesta P (G) saatu tasoupotus ja f G1 sen silmien lukumäärä. Graa G 1 on yhtenäinen, joten edellisen lauseen perusteella on... V G1 E G1 + f G1 = 2. Koska pisteiden, viivojen ja komponenttien lukumäärä pysyy samana eri tasoupotuksissa, saadaan seuraava

43 Seuraus 9.1.2 Jos G = (V, E) on tasograa, jolla on k komponettia, niin kaikissa G:n tasoupotuksissa on silmien lukumäärä Erityisesti, jos G on yhtenäinen, niin Tasograan viivojen lukumäärä f G = E V + k + 1. f G = E V + 2. Tarkastellaan miten monta viivaa voi esiintyä n pistettä sisältävässä tasograassa. Olkoon G = (V, E) graa, jolla on tasoupotus P (G), V = n ja graassa G on suurin mahdollinen määrä viivoja. Nyt jokainen tasoupotuksen P (G) silmällä (myös ulkosilmällä) on korkeintaan 3 reunapistettä, muuten voidaan graan lisätä viivoja. Siis silmän reunaviivat ja reunapisteet muodostavat piirin C 3. Toisaalta, jos jokin viiva e E ei esiinny kuin yhden silmän reunaviivana, voidaan viivoja taas lisätä. Koska viiva ei voi olla reunaviivana useammassa kuin kahdessa tasoupotuksen silmässä, niin jokainen graan G viiva on täsmälleen kahden tasoupotuksen P (G) silmän reunaviivana. Olkoon f G tasoupotuksen P (G) silmien lukumäärä. Edellisen perusteella on 2 E = E C3 f G = 3f G eli f G = 2 E. Eulerin tuloksen perusteella on 3 siis E = 3 V 6. V E + f G = 2, On todistettu välttämätön ehto tasoupotuksen olemassaololle. Lause 9.1.2 Jos G = (V, E) on vähintään 3 pistettä käsittävä tasograa, niin E 3 V 6. Esimerkiksi graassa K 5 on 5 pistettä ja 10 viivaa, joten koska 10 > 3 5 6, niin K 5 ei ole tasograa. Saatu ehto ei ole riittävä, sillä graan K 3,3 pisteiden lukumäärä on 6 ja viivojen lukumäärä 3 3 = 9, ja 9 3 6 6 = 12, mutta K 3,3 ei ole tasograa. Seuraus 9.1.3 Jos G = (V, E) on tasograa, niin δ(g) 5. Todistus... 9.2 Tasograan karakterisointi Seuraavassa todistetaan tarkka ehto sille, mitä tasograa ei voi sisältää. Aluksi määritellään pari uutta käsitettä.

44 Määritelmä 9.2.1 Olkoot G = (V, E) graa ja e E, e = uv viiva ja x = x(u, v) uusi piste. Graa G e on saatu graasta G kutistamalla (contracting) viiva e. Tarkasti G e = (V G e, E G e ) on graa, missä V G e = (V \ {u, v}) {x} ja E G e = {f f E ja viivan f päätepisteissä ei esiinny u eikä v} {wx wu E tai wv E}. Graa G e saadaan lisäämällä graain uusi piste x ja korvaamalla kaikki viivat wu ja wv viivoilla wx ja poistamalla pisteet u ja v. Koska G e on graa, niin silmukoita eikä kaksinkertaisia viivoja ei sallita. Määritelmä 9.2.2 Graan G = (V, E) viiva e = uv on laajennettu (subdivided), jos viiva e korvataan viivoilla ux ja xv, missä x on uusi piste. Graa H on graan G viivalaajennus (subdivision), jos H saadaan graasta G äärellisellä määrällä peräkkäisiä viivalaajennuksia. Selvästi on voimassa Apulause 9.2.1 Graa G on tasograa jos ja vain jos jokainen sen viivalaajennus on tasograa. Määritelmä 9.2.3 Graa on Kuratowskin graa, jos se on graan K 5 tai graan K 3,3 viivalaajennus. Edellisen aputuloksen perusteella Kuratowskin graa ei ole tasograa. Kuratowski (1930) osoitti seuraavan karakterisoinnin tasograafeille. Lause 9.2.1 Graa G on tasograa jos ja vain jos G ei sisällä aligraanaan graan K 5 eikä graan K 3,3 viivalaajennusta eli G ei sisällä Kuratowskin graaa aligraanaan. Edellisen lauseen todistamiseksi tarvitaan muutamia aputuloksia. Apulause 9.2.2 Olkoot G = (V, E) tasograa, P (G) sen tasoupotus, F tasoupotuksen silmä ja S F silmän F reunaviivojen joukko. Silloin on olemassa sellainen graan G tasoupotus, että S F on ulkoisen silmän reunaviivojen joukko. Todistus... Apulause 9.2.3 Olkoon G = (V G, E G ) viivojen lukumäärältään pienin sellainen eitasograa, joka ei sisällä Kuratowskin graaa aligraanaan. Silloin G on 3-yhtenäinen. Todistus: 1. Osoitetaan aluksi, että G on 2-yhtenäinen. Vastaoletus: Oletetaan, että G:llä on irrotuspiste v ja A 1, A 2,..., A k ovat graan G v komponentit. Koska G oli viivojen lukumäärltään pienin ei-tasograa, niin jokaisella aligraa- lla G i = G[A i {v}] on tasoupotus P (G i ). Edellisen apulauseen perusteella voidaan olettaa, että v on tasoupotuksen P (G i ) ulkoisen silmän reunapiste aina kun i = 1, 2,..., k.... Apulause 9.2.4 Jos G = (V G, E G ) on 3-yhtenäinen ja V G 5, niin on olemassa sellainen viiva e E G, että kutistus G e on 3-yhtenäinen.

45 Todistus. Vastaoletus: Oletetaan, että aina kun e E G, on graalla G e separoiva joukko S, missä S = 2. Olkoon e = uv ja x = x(u, v) graassa G e esiintyvä uusi piste. Koska G on 3-yhtenäinen, niin aina kun S on graan G e separoiva joukko, jolle S = 2, niin x S. Olkoon S = {x, z}. Silloin joukko T = {u, v, z} on graan G separoiva joukko. Valitaan viiva e ja joukko S sillä tavoin, että graalla G T on mahdollisimman vähän pisteitä sisältävä komponentti. Olkoon tamä komponentti A. On olemassa sellainen y A, että zy E G, sillä muuten joukko {u, v} separoi graan G. Graa G (zy) ei ole 3-yhtenäinen vastaoletuksen perusteella, joten edellisen kaltaisen päättelyn perusteella on olemassa sellainen piste w, että joukko R = {z, y, w} separoi graan G. Mahdollisesti on w = u tai w = v.... Seuraava tulos osoittaa, etteivät kutistukset tuota Kuratowskin graaa. Apulause 9.2.5 Olkoon G graa. Jos on olemassa sellainen viiva e E G, että graa G e sisältää Kuratowskin graan aligraanaan, niin myös graa G sisältää Kuratowskin graan aligraanaan. Todistus... Apulause 9.2.6 Jokainen 3-yhtenäinen graa G, joka ei sisällä Kuratowskin graaa aligraanaan on tasograa. Todistus. Matemaattinen induktio pisteiden lukumäärän V G suhteen. Jos V G = 4, niin koska G on 3-yhtenäinen, on G = K 4, joka on tasograa. Oletetaan, että V G 5. Induktio-oletus: Jos V G < m, niin väite on voimassa. Olkoon V G = m. Apulauseen 9.2.4 perusteella on olemassa sellainen viiva e = uv E G, että graa G e on 3-yhtenäinen. Olkoon x / V G uusi piste graassa G e. Apulauseen 2.9.5. perusteella graalla G e ei sisällä Kuratowskin graaa aligraanaan, joten induktiooletuksen perusteella ( V G e = V G 1 = m ) on graalla G e tasoupotus P (G e). Selvästi P (G e) x on graan G e x tasoupotus. Olkoon C pisteen x sisältävän silmän (tasoupotuksessa P (G e)) reuna (reunapisteet ja reunaviivat). Koska G on 3-yhtenäinen, niin C on piiri, sillä muuten joukko {u, v} separoi graan G. Koska G {u, v} = (G e) x, niin P (G e) x on myös graan G {u, v} tasoupotus. Silloin N G (u) V C {v} ja N G (v) V C {u}. Oletetaan, että deg G (v) deg G (u) (tapaus deg G (u) deg G (v) on vastaava). Olkoon N G (v) \ {u} = {v 1, v 2,..., v k }, missä pisteet on indeksoitu siten, että piirissä C on voimassa: v 1 v 2 v 3 v k ja v k v 1. Olkoot P i,j = v i piirin osapolku aina kun i < j (modulo k). v j

46... Lauseen 9.2.1 todistus. " "Jos G on tasograa, niin sen jokainen aligraa on myös tasograa. Koska K 5 ja K 3,3 eivät ole tasograafeja, niin apulauseen 9.2.1 perusteella niiden viivalaajennukset eli Kuratowskin graat eivät ole tasograafeja, joten tasograa G ei sisällä Kuratowskin graaa aligraanaan. " "Riittää osoittaa, että jos G ei ole tasograa, niin se sisältää aligraanaan Kuratowskin graan. Vastaoletus: On olemassa graa G, joka ei ole tasograa eikä sisällä Kuratowskin graaa aligraanaan. Olkoon G viivojen lukumäärältään pienin tällainen graa. Apulauseen 9.2.3 perusteella G on 3-yhtenäinen, mutta silloin edellisen apulauseen perusteella se on tasograa, mikä on ristiriidassa vastaoletuksen kanssa. Esimerkki. Osoita, että Petersenin graa ei ole tasograa.... Kuratowskin lauseen avulla voidaan johtaa seuraava Faryn teoreema. Seuraus 9.2.1 (Wagner 1936) Tasograalla G on tasoupotus, jossa kaikki viivat ovat suoria. 9.3 Tasograan väritykset Kuuluisin graateoreettinen ongelma on/oli: Mikä on tasograan suurin kromaattinen luku? Tai toisin: Miten monella värillä saadaan aito pisteväritys kaikille tasograafeille? Ongelman ratkaiseminen kesti 150 vuotta. 40 vuotta ongelman esittämisen jälkeen todistettiin seuraava tulos. Lause 9.3.1 (Heawood) Jos G on tasograa, niin G:llä on aito 5-väritys eli χ(g) 5. Todistus. Matemaattinen induktio V G :n suhteen. Jos V G 5, niin väite on voimassa. Induktio-oletus: Jos tasograalle G on V G k, niin χ(g) 5. Olkoon V G = k + 1. Koska G on tasograa, niin Seurauksen 9.1.3 perusteella on δ(g) 5. Olkoon v V G piste, jolle deg G (v) = δ(v). Induktio-oletuksen perusteella on graa G v 5-väritettävissä. Olkoon α : {1, 2, 3, 4, 5} graan G v aito 5-väritys. Jos deg G (v) 4 eli N G (v) 4, niin jokin väreistä 1, 2, 3, 4, 5 ei esiinny pisteen v vieruspisteiden väreissä. Värittämällä piste v tällä värillä saadaan väritys α laajennettua graan G aidoksi 5-väritykseksi. Oletetaan, että deg G (v) = 5. Jos jokin väri ei esiinny pisteen v vieruspisteissä, väritetään piste v sillä ja saadaan taas graan G aito 5-väritys. Oletetaan, että jokainen pisteen v vieruspiste v 1, v 2, v 3, v 4, v 5 on väritetty eri värillä. Voidaan olettaa, että piste v i on väritetty värillä i aina kun i = 1,..., 5.

47 Olkoot P (G) graan G tasoupotus ja olkoot graan G indusoitu aligraa missä pistejoukko G(i, j) = G[V i V j ], V l = {u u V G \ {v}, ja α(u) = l graan G v värityksessä}. Graafeja G(i, j) on 10 kpl. Tarkastellaan aligraaa G(1, 3). Selvästi v 1, v 3 G(1, 3). Graa G(1, 3) voi olla epäyhtenäinen, joten joko pisteet v 1 ja v 3 ovat graan G(1, 3) (i)eri komponenteissa tai (ii)samassa komponentissa. (i) Olkoon G 1 se graan G(1, 3) komponentti, joka sisältää pisteen v 1. Aina kun graan G v piste u on väritetty värillä 1 tai 3, niin joko u G 1 tai u ei ole minkään aligraan G 1 pisteen vieruspiste. Vaihtamalla graassa G 1 värillä 1 väritettyjen pisteiden väriksi väri 3 ja värillä 3 väritettyjen pisteiden väriksi väri 1 saadaan edelleen komponentin G 1 aito väritys ja edelläolevan perusteella tämä vaihto antaa myös graan G v aidon 5-värityksen. Tämän vaihdon jälkeen mikään v:n vieruspiste ei ole väritetty värillä 1, joten värittämällä piste v tällä värillä saadaan graan G aito 5-väritys. (ii) Oletetaan, että v 1 ja v 3 ovat samassa graan G(1, 3) komponentissa G 1,3.... Kesti lähes 100 vuotta parantaa edellä olevaa tulosta. Lause 9.3.2 (Appel, Haken 1976) Jos G on tasograa, niin sillä on aito 4-väritys, eli χ(g) 4. Lauseen todistus käsittää 100 sivua. Todistuksessa käsitellään 1900 erilaista konguraatiota, joita tasograa, joka ei ole aidosti 4-väritettävissä, ei voi välttää, kun pienimmän vastaesimerkin osia poistetaan 300:lla säännöllä. Todistus perustuu tietokoneajoihin. Alkuperäinen todistus vaati 1200 tunnin tietokoneajoajan Vuonna 1997 Robertson, Sanders, Seymouyr ja Thomas pudottivat tarkasteltavien konguraatioiden lukumäärän 633:een ja sääntöjen lukumäärän 32:een. Tietokoneajoa pystyttiin myös lyhentämään. Tulokselle ei silti ole olemassa todistusta ilman tietokoneajoja. Todistuksesta on kirjoitettu kirja Appel & Haken: Every Planar Map is 4-colorable. Tasograaen väritykset ja kartat liittyvät toisiinsa seuraavasti: Oletetaan, että kartta sisältää valtioita, joiden alue on yhtenäinen. Yhdistetään yhteistä rajaa omaavien valtioiden pääkaupungit tiellä niin, että tie on kokonaan näiden kahden valtion alueella. Silloin tiet voidaan rakentaa niin, että ne eivät risteä. Kun kuvataan pääkaupunkeja pisteillä ja teitä viivoilla, saadaan tasograan tasoupotus. Tällä tasoupotuksella on aito k-väritys jos ja vain jos kartta voidaan värittää k:lla värillä niin että rajanaapurit ovat aina erivärisiä. Silloin edellisen lauseen perusteella saaadaan ns. 4-väriongelman ratkaisu. Kartta voidaan värittää 4:llä värillä niin, että kaikki rajanaapurit ovat erivärisiä. Tähän 4-väriongelmaan törmäsi 1850-luvulla Francis Guthrie, lontoolainen opiskelija, joka huomasi, että Englannin maakunnat voitiin kartalla värittää 4:llä värillä em. tavalla. Hänen

48 veljensä Frederick oli August de Morganin oppilas. De Morgan julkisti ongelman, mutta edistystä ei tapahtunut ennen kuin 1870 luvulla. Vuonna 1879 Alfred Kempe julkaisi paperin, jossa hän väitti ratkaisseensa ongelman. Idea ratkaisussa oli samankaltainen kuin Heawoodin todistuksessa (Lause 9.3.1). Kempen todistukseen luotettiin 10 vuotta. Vuonna 1890 Heawood osoitti, että Kempen todistuksessa oli puutteita. Seuraavien 80 vuoden aikana lähes jokainen tunnettu graateoreetikko on jossain vaiheessa pyrkinyt ratkaisemaan ongelmaa. Osatuloksia todistettiin ja niiden pohjalta vuonna 1976 Appel ja Hanke esittivät tietokoneajoihin pohjautuvan todistuksensa. Vaikka tietokoneajojen laajuutta on saatu pienennettyä, niin vieläkään ei ole olemassa todistusta ilman niitä. 9.4 Upotukset muissa pinnoissa Seuraavassa tutkitaan, miten graa voidaan esittää yksikertaisilla pinnoilla ilman muualla kuin pisteiden kohdalla risteäviä viivoja. Seuraavassa tarkastellaan pallopintoja, pallopinnasta saatavia yksinkertaisia pintoja sekä näitä pintoja rei'illä varustettuna. Topologiset määritelmät näille pinnoille ohitetaan. Kaksi aluetta ovat topologisesti ekvivalentteja (topologically equivalent), jos toinen saadaan toisesta taivuttamalla puristamalla venyttämällä ja/tai kutistamalla ilman alueen osiin jakamista tai osien yhteen liittämistä. Määritelmä 9.4.1 Jos S on pinta, niin graalla G on S-upotus, jos G voidaan piirtää pinnalle S niin, että graan viivat risteävät vain pisteiden kohdalla. Lause 9.4.1 Graa G on tasograa jos ja vain jos sillä on pallopintaupotus. Olkoot S 0 niiden pintojen joukko jotka saadaan pallopinnasta puristamalla ja/tai venyttämällä. Selvästi edellämainitut operaatiot eivät vaikuta pinnan upotettavuusominaisuuksiin. Torus Jos S 0 -pintaan painetaan reikä, upotettavuusominaisuudet muuttuvat. Torus-pinta on pinta joka saadaan S 0 pinnasta painamalla yksi reikä sen läpi. Tyypillisesti se esitetään seuraavasti:... Olkoon S n (n 0) pinta jossa on n reikää. Silloin S 0 on topologisesti ekvivalentti pallopinnan ja S 1 Torus pinnan kanssa. Yleisesti S n -pinnan piirtäminen voi ola monimutkaista, koska rajoituksia rei'ille, niiden koolle tai sijainnille ei tehdä (paitsi etteivät reiät saa hajoittaa pintaa eri osiin). Kuten edellä Toruspinta, myös S n voidaan muuntaa pinnaksi jossa on n kahvaa. Määritelmä 9.4.2 Graan G laji eli genus (genus) on pienin sellainen kokonaisluku n, että graalla G on S n -upotus. Lause 9.4.2 Jokaisella graalla on genus. Ringel ja Young (1968) esittivät seuraavan tuloksen:

49 Lause 9.4.3 Jos n 3, niin g(k n ) = (n 3)(n 4). 12 Seuraus 9.4.1 Aina kun G on n:n pisteen graa, on g(g) (n 3)(n 4). 12 4-väritysongelman yleistys muille pinnoille kuin tasolle osoitettin jo aikaisemmin. Lause 9.4.4 (Heawood)Jos g(g) = g 1, niin χ(g) 7 + 1 + 48g. 2 Jos edelläolevassa on g = 0, niin kyseessä on 4-väritysongelma. Ylläoleva on paras yläraja, sillä Lause 9.4.5 Jos g 1, niin on olemassa sellainen graa G, jolle g(g) = g ja χ(g) = 7 + 1 + 48g. 2

50 10 Suunnatut graat Useissa reaalimaailman sovelluksissa tarvitaan graan laajennuksia, mm. multigraafeja ja painotettuja graafeja. Seuraavassa käsitellään tilannetta, jossa kahden pisteen välinen vuorovaikutus ei ole symmetristä, vaan suunnalla on merkitystä (esim. tiedonsiirto, nesteen virtaus, yksisuuntainen liikenne jne.). Tätä tilannetta mallinnetaan suunnatulla graalla, jossa jokaisella viivalla on suunta. Jos viivojen kapasiteettiin liittyy rajoituksia, tarvitaan siirtoverkkojen käsite. Seuraavassa määritellään aluksi suunnattu graa ja muunnetaan aikaisempia graafeihin liittyviä käsitteitä suunnatuille graafeille sopiviksi. Sen jälkeen tutkitaan virtauksien mallintamista siirtoverkoilla. 10.1 Määritelmiä ja perustuloksia Eräissä ongelmissa objektien väliset suhteet eivät ole symmetrisiä. Näiden kuvaamiseksi tarvitaan graan viivaan liittyvä suunta. Määritelmä 10.1.1 Suunnattu graa (digraph, directed graph) D = (V D, E D ) on järjestetty pari, missä V D on äärellinen pisteiden joukko ja E D V D V D on (suunnattujen) viivojen eli nuolien joukko ilman vv tyyppisiä viivoja. Viivojen joukko E D on järjestettyjen parien joukko, eli yleisesti (u, v) (v, u). Viiva (u, v) kirjoitetaan edelleen muodossa uv, mutta nyt uv vu. Viivan e = uv käänteisviiva (inverse of e) on viiva e 1 = vu. Määritelmä 10.1.2 Olkoon D = (V D, E D ) suunnattu graa. Silloin A on graan D (i) suunnattu aligraa (subdiagraph), jos V A V D ja E A E D, (ii)indusoitu suunnattu aligraa, jos on olemassa sellainen X V D, että V A = X ja E A = E D (X X). Silloin merkitään A = D[X]. Määritelmä 10.1.3 Suunnatun graan D = (V D, E D ) alusgraa (underlying graph) U(D) = (V D, E D ) on graa, joka saadaan tulkitsemalla graan D viivat viivoiksi ilman suuntaa. Suunnattu graa D on graan G orientaatio (orientation), jos G = U(D) ja aina kun e E D, niin e 1 / E D. Silloin D on orientoitu graa. Määritelmä 10.1.4 Olkoon D = (V D, E D ) suunnattu graa. Silloin graan U(D) kulku W : e 1 e 2 e k : u v on suunnatun graan D suunnattu kulku (directed walk), jos e i E D aina kun i = 1, 2,..., k. Vastaavasti suunnattu polku on suunnattu kulku ilman pisteiden toistoa ja suunnattu piiri on suljettu suunnattu kulku ilman pisteiden toistoa. Suunnatuissa graafeissa yhtenäisyyttä on useampaa lajia. Määritelmä 10.1.5 Suunnattu graa D on (i) yhtenäinen, jos graa U(D) on yhtenäinen,

51 (ii) unilateraalinen (unilateral), jos aina kun u, v V D on olemassa suunnattu polku u v tai polku v u, (iii)vahvasti yhtenäinen (strongly connected) jos aina kun u, v V D on olemassa suunnatut polut u v ja v u. Maksimaalinen vahvasti yhtenäinen indusoitu suunnattu aligraa on suunnatun graan D vahva komponentti (di-component). Myös pisteen asteen käsitettä täytyy laajentaa huomioimaan viivojen suunta. Määritelmä 10.1.6 Suunnatussa graassa D pisteen v V D (i) tuloaste (indegree) on pisteeseen tulevien viivojen lukumäärä eli deg I D(v) = {e E D e = xv} (ii) lähtöaste (outdegree) on pisteestä lähtevien viivojen lukumäärä, eli deg O D(v) = {e E D e = vx}. Suunnatuille graafeille on voimassa Handshaking lemmaa vastaava tulos (joko tarjoat tai hyväksyt kättelyn). Apulause 10.1.1 Suunnatun graalle D on voimassa: Suunnatut polut v D deg I D(v) = E D = v D deg O D(v). Suunnatun graan polkujen ja suunnattujen polkujen yhteys on monimutkainen. Suunnatun graan D kromaattisen luvun χ(d) = χ(u(d)) ja suunnattujen polkujen pituuksien välillä on seuraava yhteys. Lause 10.1.1 Suunnattu graa D sisältää suunnatun polun, jonka pituus on χ(d) 1. Todistus. Olkoon A E D viivojen lukumäärältään pienin sellainen viivojen joukko, että suunnattu graa D A ei sisällä suunnattua piiriä. Olkoon k suunnatun aligraan D A pisimmän suunnatun polun pituus. Määritellään D:lle väritys α seuraavasti: Aina kun v V D, on α(v) = i, missä i 1 on pisimmän pisteestä v lähtevän graan D A suunnatun polun pituus. Selvästi 1 i k + 1, eli α on D:n k + 1-väritys. Olkoon P = e 1 e 2 e r (r 1) suunnatun graan D A suunnattu polku P : u v. Nyt u v, koska D A ei sisällä suunnattuja piirejä. Jos α(v) = i, niin on olemassa sellainen i 1:sen pituinen D A:n suunnattu polku Q : v w. Silloin myös P Q : u v w on suunnattu polku, koska D A ei sisällä suunnattua piiriä. Silloin on α(u) > i, eli α(u) α(v). Erityisesti jos uv E D A, on α(u) α(v).

52 Oletetaan lopuksi, että e = vu A. Silloin A:n minimaalisuudesta seuraa, että suunnattu graa (D A) + e sisältää suunnatun piirin C : u v u. Silloin C:n osapolku u v on D A:n suunnattu polku ja edellisen perusteella on α(u) α(v). On todistettu, että on α(u) α(v) aina kun uv E D tai vu E D. Täten α on D:n aito k + 1-väritys eli χ(d) k + 1, siis k χ(d) 1. Edellä löydetty raja on "paras mahdollinen"seuraavan tuloksen perusteella. Lause 10.1.2 Jokaisella graalla G on orientaatio D, missä pisimmän suunnatun polun pituus on korkeintaan χ(g) 1. Yksisuuntainen liikenne Yksisuuntainen liikenneongelma: Minkälaisen katuverkoston kadut voidaan muuntaa yksisuuntaisiksi niin, että jokaiseen kaupunginosan rakennukseen on pääsy? Kun katujen risteyksiä kuvataan pisteillä ja katuja suunnatuilla, niin kysymys voidaan muotoilla seuraavasti: Milloin graalla G on vahvasti yhtenäinen orientaatio? Ongelman ratkaisi Robbins. Lause 10.1.3 (Robbins 1939) Yhtenäisellä graalla G on vahvasti yhtenäinen orientaatio jos ja vain jos G ei sisällä siltaa. Todistus. " ". Jos G sisältää sillan e, niin jokainen G:n orientaatio sisältää ainakin kaksi vahvaa komponenttia (molemmat sillan puolet). " ". Oletetaan, että G ei sisällä siltaa. Silloin G sisältää piirin. Selvästi piirillä on aina vahvasti yhtenäinen orientaatio. Olkoon nyt H G pistemäärältään suurin G:n indusoitu aligraa, jolla on vahvasti yhtenäinen orientaatio, D H. Vastaoletus: H G. Koska G on yhtenäinen, H on G:n indusoitu aligraa ja koska H G, niin on olemassa sellainen viiva e = vu E G, että u V H ja v / V H. Koska G ei sisällä siltaa, niin on olemassa G:n piiri C : ep Q : v u w v, missä P : u w on graan H polku ja polun Q : w v muut pisteet paitsi w ovat joukon V G \ V H pisteitä. Graan H orientaatio D H sisältää suunnatun polun P : u w. Orientoidaan e = uv suuntaan e : v u ja polussa Q esiintyvät viivat suuntaan Q : w v.... Turnaukset Joukkueurheilussa (esim. jääkiekko) eräs tapa ratkaista paremmuus on pelata turnaus, jossa jokainen joukkue pelaa muita joukkueita vastaan (round-robin turnaus)ja eniten voittoja saavuttanut joukkue voittaa. Jos oletetaan, että tasapelejä ei sallita, niin joukkueiden välisten pelien tuloksia voidaan mallintaa suunatulla graalla, jossa joukkueita kuvataan pisteillä

53 ja ottelujen tuloksia nuolilla, missä uv on suunnatun graan nuoli, jos joukkue u voittaa v:n. Tilannetta mallintavaa graaa kutsutaan turnaukseksi. Määritelmä 10.1.7 Turnaus (tournament) T on täydellisen graan orientaatio. On olemassa 4 ei-isomorsta 4:n pisteen turnausta. Lause 10.1.4 (Redei 1934) Jokainen turnaus sisältää suunnatun Hamiltonin polun Todistus. Täydellisen graan K n kromaattinen luku χ(k n ) = n, joten Lauseen 6.1.1 perusteella jokainen graan K n orientaatio sisältää n 1:sen pituisen suunnatun polun. Koska K n sisältää n pistettä, tämä on suunnattu Hamiltonin polku. Turnauksen pisteet voidaan kaikki saavuttaa helposti yhdestä pisteestä. Lause 10.1.5 (Laudau 1953) Olkoot v turnauksen T piste, jolle lähtöaste eli degt O (v) on suurin. Aina kun u on turnauksen T piste, on olemassa sellainen suunnattu polku v u, jonka pituus on korkeintaan 2. Todistus. Olkoon n turnauksen T pisteiden lukumäärä. Vastaoletus: On olemassa sellainen piste x V T, että lyhimmän suunnatun polun v x pituus on ainakin 3.... Edellinen tulos löydettiin tarkasteltaessa kanalassa kanojen nokkimisjärjestystä. Tuloksen perusteella kanalassa on kana a joka nokkii kanaa b tai b:tä nokkivaa kanaa Tarkastellaan round-robin tyyppistä kilpailua, missä joukkueet ovat v 1, v 2,..., v n, tasapeliä ei sallita ja ottelutulokset esitetään n:n pisteen turnauksena T, missä v i v j T jos v i voitti joukkueen v j. Joukkue v on otteluturnauksen voittaja, jos v voittaa eniten otteluita. Voittajia voi olla useita, mutta edellisen tuloksen perusteella tiedetään että jokaista joukkuetta u kohti voittaja v voitti joko joukkueen u tai u:n voittaneen joukkueen. Turnauksen T paremmuusjärjestys (ranking) on lineaarinen järjestys, v i1 > v i2 > > v in, joka kuvaa joukkueen paremmuusjärjestystä otteluturnauksessa. Yksi tapa sijoittaa joukkueet paremmuusjärjestykseen on etsiä turnauksen T suunnattu Hamiltonin polku. Paremmuusjärjestys saadaan Hamiltonin polusta v i1 v i2 v in. Turnaus voi sisältää kuitenkin useita suunnattuja Hamiltonin polkuja. Ääriesimerkkinä on seuraava 6:n joukkueen turnaus T :... Eräs T:n suunnattu Hamiltonin polku on 1 2 4 5 6 3, mutta tämä laajenee suunnatuksi Hamiltonin piiriksi 1 2 4 5 6 3 1. Jokaiselle joukkueelle on siis olemassa suunnattu Hamiltonin polku, jossa joukkue on voittaja ja joukkue on viimeinen. Olkoon S 1 (j) = d O T (j)

54 joukkueen j otteluvoittojen lukumäärä. Ylläkuvatussa turnauksessa on S 1 (1) = 4, S 1 (2) = 3, S 1 (3) = 3, S 1 (4) = 2 ja S 1 (6) = 1 ja S 1 (5) = 2. Onko joukkue 1 silloin voittajajoukkue? Kumpi on toinen, joukkue 2 vai 3? Määritellään toisen tason tulos jokaiselle joukkueelle seuraavasti: S 2 (j) = ji E T S 1 (i). Silloin S 2 (j) on joukkueen j voittamien joukkueiden voittamien otteluiden lukumäärä. Tämä luku kuvaa sitä, miten hyviä joukkueita joukkue j voitti. Nyt S 2 (1) = 8, S 2 (2) = 5, S 2 (3) = 9, S 2 (4) = 3, S 2 (5) = 4 ja S 2 (6) = 3. Joukkue 3 vaikuttaa voittajalta. Jatketaan edellistä määritelmää rekursiivisesti: S m (j) = ji E T S m 1 (i). on tason m tulos joukkueeelle j. Matriisien avulla voidaan todistaa seuraava tulos: Tasotulokset stabiloituvat turnauksen paremmuusjärjestykseksi. Toisin sanoen on olemassa sellainen m, että tason m tulos antaa saman paremmuusjärjestyksen kuin tason m + k tulos aina kun k = 1, 2,.... Jos T ei ole vahvasti yhtenäinen, niin paremmuusjärjestys muodostetaan vahvasti yhtenäisten komponenttien sisällä. Ylläolevassa esimerkissä on lopullinen järjestys 1, 3, 2, 5, 4, 6.

55 10.2 Virtaukset siirtoverkoissa Fordin ja Fulkersonin kehittämää teoriaa virtauksille siirtoverkoissa sovelletaan mm. kuljetuksien, liikenteen, sähkön- ja informaation siirron ja tietoliikenteen kapasiteettia ja siirtoreittejä käsittelevien ongelmien mallintamisessa ja ratkaisemisessa. Määritelmä 10.2.1 Siirtoverkko (2-terminaalinen) (network) N = (D, s, r, α) on järjestetty nelikkö, missä D = (V, E) on siirtoverkkoa kuvaava suunnattu graa, s, r V kaksi pistettä, missä s on lähde (source) ja r on nielu (sink) ja joille on voimassa degd I (s) = 0 ja (r) = 0, ja α on kapasiteettifunktio (capacity function), deg O D missä α(e) = 0, jos e / E. Merkitään V N = V ja E N = E. α : V V R +, Esimerkki 10.2.1 Alla on kuvattu siirtoverkko.... Olkoot A V N joukko pisteitä ja f : V N V N R funktio, jolle f(e) = 0 aina kun e / E N. Otetaan käyttöön seuraavat merkinnät: [A; A] = {e E N e = uv, u A, v / A},

56 ja f + (A) = f (A) = e [A,A] e [A,A] f(e) f(e). Lyhennetään merkintöjä seuraavasti. Aina kun u V N, on f + (u) = v V N f(uv) ja f (u) = v V N f(vu) Kapasiteettifunktio α kuvaa aina siirtoverkon yksittäisen nuolen kapasiteettia, esimerkiksi vesijohtoputken kokoa, ei sitä mitä todella verkossa siirretään. Verkossa tapahtuvan virtauksen kuvaamiseksi tarvitaan funktio, virtaus, joka kuvaa mitä siirtoverkon nuolissa todella tapahtuu. Funktion on toteutettava kaksi ehtoa. Virtaus ei missään kohdassa saa ylittää nuolen kapasiteettia. Toisaalta häviöitä ei tapahdu kuin lähteessä ja nielussa. Kaikissa muissa siirtoverkon pisteissä kuin lähteessä ja nielussa on lähtevä virtaus sama kuin tuleva virtaus eli virtaus toteuttaa Kirchon lain. Sama tarkasti: Määritelmä 10.2.2 Virtaus (ow) siirtoverkossa N on sellainen funktio f : V N V N R +, että (1) 0 f(e) α(e) aina kun e V N V N (2) f (v) = f + (v) aina kun v V N \ {s, r}. Virtaus kuvaa sellaista objektien siirtoa, jonka siirtoverkko voi käsitellä. Esimerkissä 10.2.1 kapasiteettifunktio α ei ole virtaus, sillä esimerkiksi α + (b) = 8 < α (b) = 10. Jos siirtoverkko tulkitaan esimerkiksi vesijohtoverkostoksi, missä kapasiteettifunktio α(e) kuvaa putken kapasiteettia ( m3 ), niin vesijohtoverkosto ei välttämättä kykene siirtämään lähteen täydellä min kapasiteetilla lähettämää vesimäärää. Esimerkki 10.2.2 Alla on eräs virtaus esimerkin 10.2.1 siirtoverkolle:

57... Määritelmä 10.2.3 Jokaisella siirtoverkolla N on olemassa nollavirtaus (zeroow), jolle f(e) = 0 kaikilla e V N V N. Jos A V N, niin virtauksen f nettovirtaus A:sta (resultant from A) on val(f A ) = f + (A) f (A) = f(e) f(e). e [A,A] e [A,A] Virtauksen f nettovirtaus val(f) = val(f {s} = f + (s) f (s) Virtaus f on maksimivirtaus (maximum ow), jos val(f ) val(f) kaikilla siirtoverkon virtauksilla f. Nettovirtaus val(f) on se määrä kohteita (vesikuutioita, bittejä, selluloosaa, lämpöä, paperia, autoja, jne.), joka voidaan kuljettaa virtauksen f avulla lähteestä nieluun. Esimerkissä 10.2.2, kuvatulle virtaukselle on val(f {b,c} ) = f + ({b, c}) f ({b, c}) = f(ba) + f(bd) + f(cr) (f(sb) + f(ac)) = 3 + 4 + 1 (4 + 4) = 0 ja val(f) = f + (s) f (s) = f(sa) + f(sb) 0 = 9. Apulause 10.2.1 Olkoon N = (D, s, r, α) siirtoverkko ja f sen virtaus. (i) Jos A V N \ {s, r}, niin val(f A ) = 0. (ii) Nettovirtaus val(f) = val(f {r}. Todistus...

58 Maksimivirtaukset Seuraavassa tarkastellaan, mitä ehtoja siirtoverkon N maksimivirtaus f toteuttaa. Jokaista siirtoverkon nuolta e kuvaa nyt kaksi arvoa. Kapasiteetti α(e) kuvaa nuolen kapasiteettia (vesijohtoputken halkaisijaa, tiedonsiirtonopeutta, kaistojen lukumäärää ja nopeusrajoitusta jne. )ja f(e) kuvaa nuolessa tapahtuvaa todellista virtausta (siirrettyä vesimäärää, siirrettyjä bittejä, tieosuuden ohittaneita autoja jne...). Olkoot nuolen e vaje (slack) virtauksessa f sl(e) = α(e) f(e). Nuoli e on kyllästetty (saturated), jos sl(e) = 0. Selvästi jos jokainen lähteestä lähtevä nuoli ja/tai nieluun saapuva nuoli on kyllästetty, niin virtaus on maksimivirtaus. Kumpikaan ehdoista ei kuitenkaan tarvitse olla voimassa maksimivirtaukselle. Virtauksen määrään vaikuttaa kapasiteetin lisäksi myös nuolen suunta. Onko nuoli "virtauksen suuntainen"vai sille vastakkainen. Virtaus on sitä suurempi, mitä suurempi on f(e) virtauksen suuntaisilla ja mitä pienempi virtauksen suuntaan nähden vastakkaisilla viivoilla. Miten määritellään virtauksen suunta? Olkoot f siirtoverkon N virtaus ja P = e 1 e 2 e n suuntaamaton polku N:ssä. Viiva e i on etenevä polussa P (along P ), jos e i = v i v i+1 E N ja takeneva P:ssä (against P ), jos e = v i+1 v i E N. Polun P nuoli painotetaan nyt painolla ɛ(e) = { α(e) f(e) f(e), jos e on etenevä P :ssä,, jos e on takeneva P :ssä. Olkoon ɛ(p ) = min e=e i ɛ(e). Luku ɛ(p ) liittyy aina yhteen virtaukseen f ja se kuvaa paljonko virtausta kyetään "parantamaan"polulla P suurentamalla f(e):tä, jos e on etenevä ja pienentämällä f(e) :tä, jos e on takeneva P :ssä. Tarkastellaan Esimerkin 10.2.2 virtauksessa polkua P : (sb)(bc)(cr).... Määritelmä 10.2.4 Polkua P sanotaan ei-kyllästetyksi (f-improvable) virtauksessa f, jos ɛ(p ) > 0. Erityisesti ei-kyllästettyä polkua lähteestä nieluun sanotaan virtauksen f lisäyspoluksi (augmenting path). Ei-kyllästetyssä polussa on jokaisen etenevän nuolen vaje >0 ja jokaiselle takenevalle nuolelle e on f(e) > 0. Edellisessä esimerkissä polku P oli virtauksen f lisäyspolku. Määritellään uusi virtaus f, missä f (sb) = f(sb) + 1 = f(sb) + ɛ(p ) = 5, f (cr) = f(cr) + ɛ(p ) = 2, f (cb) = f(cb) 1 = f(cb) ɛ(p ) = 2 ja muille viivoille f (e) = f(e). Polku P ei ole f :n lisäyspolku. Lisäksi sekä lähteestä lähtevien, että nieluun tulevien nuolien vaje pieneni, eli val(f ) > val(f). Yleisesti on voimassa: Lause 10.2.1 Olkoot N siirtoverkko. Jos f on siirtoverkon N maksimivirtaus, niin N ei sisällä yhtään f lisäyspolkua.

59 Todistus. Olkoot P : s r suuntaamaton polku ja f virtaus.... Max-ow Min-cut Seuraavassa johdetaan karakterisointi maksimivirtaukselle ja esitetään algoritmi, jolla maksimivirtaus löydetään. Määritelmä 10.2.5 Olkoon N = (D, s, r, α) siirtoverkko. Jos S V N on sellainen pistejoukko, missä s S ja r / S, niin joukon S määräämä irrotus (cut) on viivajoukko [S] = [S, S] = {uv uv E N, u S, v / S}. Irrotuksen [S] kapasiteetti (capacity) on summa α[s] = α + (S) = e [S] α(e). Irrotus [S] on minimi-irrotus (minimumcut), jos α[r] α[s] aina kun [R] on irrotus. Esimerkin 10.2.1 siirtoverkossa joukon S = {s, a, b, c} määräämä irrotusjoukko on viivajoukko [S] = {ar, cr, bd} ja irrotuksen kapasiteetti on α[s] = α(ar) + α(cr) + α(bd) = 4 + 2 + 4 = 10. Koska lähde kuuluu aina irrotusjoukon [S] määräämään pistejoukkoon S ja nielu ei, niin jokainen virtauksessa kuljetettu objekti kulkee joko lähteestä suoraan irrotusjoukon viivojen läpi nieluun tai käy välillä myös muissa joukon S pisteissä. Koska nielun nettovirtauksen itseisarvo on sama kuin lähteen nettovirtauksen itseisarvo (eli jokainen lähteestä lähtenyt objekti tulee nieluun), niin virtauksesta riippumatta virtauksen nettovirtaus on irrotuksen määräämän joukon S nettovirtaus. Tarkasti: Apulause 10.2.2 Olkoot f siirtoverkon N virtaus ja [S] N:n irrotusjoukko. Silloin on val(f) = val(f S ) = f + (S) f (S). eli virtauksen f nettovirtaus on joukon S nettovirtaus. Todistus. Virtauksen f nettovirtauksella ja irrotuksen S kapasiteetilla on seuraava yhteys: Lause 10.2.2 Jos f on virtaus siirtoverkossa N ja [S] on N:n irrotus, niin val(f) α[s]. Lisäksi val(f) = α[s] jos ja vain jos jokaiselle u S, v / S on voimassa (i) jos e = uv E N, niin f(e) = α(e) ja (ii) jos e = vu E N, niin f(e) = 0

60 Todistus... Seuraus 10.2.1 Jos virtauksen f nettovirtaus on sama kuin irrotuksen [S] kapasiteetti eli val(f) = α[s], niin silloin f on maksimivirtaus ja [S] on minimi-irrotus. Todistus... Seuraava tulos yhdistää maksimivirtauksen ja lisäyspolkujen olemassolon toisiinsa. Lause 10.2.3 (Ford, Fulkerson 1955) Virtaus f on siirtoverkon N maksimivirtaus jos ja vain jos N ei sisällä virtauksen f lisäyspolkuja. Seuraus 10.2.2 Jos N on siirtoverkko, jnka kapasiteettifunktion α arvot ovat kokonaislukuja, niin silloin N:llä on olemassa sellainen maksimivirtaus f, että f(e) on kokonaisluku aina kun e E N. Edellinen lause todistaa myös kuuluisan Max-Flow, Min-Cut tuloksen: Lause 10.2.4 (Max-Flow Min-Cut))Maksimivirtauksen f minimi-irrotuksen [S] kapasiteetti eli nettovirtaus on sama kuin val(f) = α[s]. Fordin ja Fulkersonin edelläoleva tulos antaa algoritmin maksimivirtauksen löytämiseen. Etsimällä virtauksen f-lisäyspolkuja ja muokkaamalla virtausta näillä poluilla pystytään maksimivirtaus löytämään äärellisessä määrässä askelia edellyttäen että kaikki kapasiteetit olivat rationaalisia. Jos kapasiteeteissa esiintyi irrationaalisia lukuja alkuperäinen algoritmi voi tarvita äärettömän määrän askelia. Edmonds ja Karp paransivat algoritmia niin, että askelia tarvitaan äärellinen määrä ja askelien lukumäärä oli lineaarinen funktio lausekkeesta V N 2 E N. Seuraavassa pisteen tarkastaminen (scan) tarkoittaa kaikkien pisteen naapureiden tutkimista. Olkoon N = (D, s, r, α) siirtoverkko. Seuraava algoritmi etsii siirtoverkon maksimivirtauksen. Maksimivirtaus algoritmi 1. Merkitään lähde s :llä 2. Olkoon f(e) = 0 kaikilla e E N. 3. Etsitään merkitty, mutta tarkastamaton piste u (alussa u = s). Aina kun uv E N ja v on merkitsemätön, ja f(uv) < α(uv) (eli uv ei ole kyllästetty) merkitään piste v merkinnällä u + (pisteestä u päästään pisteeseen v E N :n viivalla). Aina kun wu E N ja w on merkitsemätön ja f(wu) > 0, merkitään w merkinnällä u (u:sta mennään pisteeseen w joukon E N viivan käänteisviivalla) 4. Jos nielu r on merkitty, lopetetaan merkintä. Silloin on löytynyt f-lisäyspolku. Siirrytään merkintöjen avulla takaisin nielusta r lähteeseen s. Käytetty polku P : s r on f-lisäyspolku. Lasketaan ɛ(p ) polulle ja muutetaan virtausta seuraavasti: Aina kun viiva e etenevä P :ssä muutetaan f(e) f(e) + ɛ(p ):ksi. Aina kun viiva e on takeneva P :ssä muutetaan f(e) f(e) ɛ(p ):ksi.

61 Kun kaikki P :n viivat on käyty läpi, poistetaan kaikki muut lisätyistä pisteiden merkinnöistä paitsi lähteen merkintä. Palataan kohtaan 3. 5. Jos nielua r ei ole merkitty ja a) kaikki merkityt pisteet on tarkastettu, niin maksimivirtaus on löytynyt b) jos kaikkia merkittyjä pisteitä ei ole tarkastettu niin palataan kohtaan 3. Esimerkki Käytetään algoritmia allaolevan siirtoverkon maksimivirtauksen määrittämiseen.