GRAAFITEORIA. Keijo Ruohonen

Koko: px
Aloita esitys sivulta:

Download "GRAAFITEORIA. Keijo Ruohonen"

Transkriptio

1 GRAAFITEORIA Keijo Ruohonen 2013

2 Sisältö 1 I MÄÄRITELMIÄ JA PERUSTULOKSIA Määritelmiä Kulku. Reitti. Polku. Piiri. Yhtenäisyys. Komponentti Graafien operaatioita Irrotus Merkityt graafit. Isomorfismi 19 II PUUT Puut. Metsät (Perus)piirit. (Perus)irrotusjoukot 26 III SUUNNATUT GRAAFIT Määritelmiä Suunnatut puut Asykliset suunnatut graafit 32 IV GRAAFIEN MATRIISIT JA LINEAARIAVARUUDET Graafien matriisiesityksiä Irrotusmatriisi Piirimatriisi Sovellus: Stationääriset lineaariset verkot Matriisit yligf(2):n ja graafien lineaariavaruudet 47 V GRAAFIEN ALGORITMIT Algoritmien vaativuusteoriaa Saavutettavuus: Warshallin algoritmi Etsintä: Syvyysetsintä ja leveysetsintä Kevyin polku: Dijkstran algoritmi Kevyin polku: Floydin algoritmi Kevyin virittävä puu: Kruskalin algoritmit ja Primin algoritmi Kevyin Hamiltonin piiri eli kaupparatsuprobleema: Hehkutusalgoritmi. Karp Held-heuristiikka Kaksijakoisen graafin maksimisovitus: Unkarilainen algoritmi Siirtoverkon maksimivirtaus: Ford Fulkerson-algoritmi i

3 ii 82 VI GRAAFIEN PIIRTÄMINEN Tasottuvuus ja tasograafit Davidson Harel-algoritmi 90 VII MATROIDIT Perinnölliset järjestelmät Graafin piirimatroidi Muita perusmatroideja Ahne algoritmi Yleinen matroidi Matroidien operaatioita 104 Kirjallisuus 106 Hakemisto Esipuhe Tämä moniste on tarkoitettu TTY:n kurssin MAT Graph Theory suomenkieliseksi perusmateriaaliksi. Monisteessa käydään läpi graafiteoreettiset peruskäsitteet ja -tulokset painottaen erityisesti verkkoteoreettisia piiri-irrotus-dualismiin liittyviä asioita. Esikuvana on paljolti ollut kirjan SWAMY & THULASIRAMAN erityisesti sen vanhemman ja paremman laitoksen tyylikäs ja tarkka esitystyyli. Sisällöltään vastaavanlaisia oppikirjoja (tosin laajempia) on nykyään saatavissa useitakin, mm. suosittu GROSS & YELLEN. Eräs graafiteorian käyttötarkoitus on antaa yhtenäinen formalismi lukuisille hyvin erilaisilta näyttäville probleemoille. Algoritmit riittää näin antaa vain tälle yhteiselle formalismille. Tämä on johtanut aivan omaan algoritmiluokkaansa, ns. graafialgoritmeihin. Puolet monisteesta käsitteleekin graafien algoritmeja, jälleen painottaen verkkoteoreettisia menetelmiä. Tässä osuudessa esitetään vain kohtuullisen kokoisiin tehtäviin soveltuvia perusalgoritmeja. Erityisprobleemoihin kuten suurten harvojen graafien käsittelyyn soveltuvia menetelmiä tai rinnakkaisalgoritmeja ei käsitellä, näissä kyse onkin jo paljolti sopivista tietorakenteista (ks. esimerkiksi SKIENA). Perustaltaan graafiteoria on kombinatoriikkaa, jossa ei sinänsä tarvita grafiikkaa muutoin kuin havainnollistamiseen. Graafiteorian sovelluksiin ja mallintamiseen liittyy kuitenkin yleensä tilanteeseen sopivan fysikaalis-geometrisen esityksen antama kontakti reaalimaailmaan ja toisaalta kombinatoris-lineaarialgebrallisen koneiston antama matemaattinen määrittely- ja laskukyky. Graafiteorian tulosten ja menetelmien todistuksia ja johtoja ei yleensä esitetä jäykän kombinatorisessa muodossa, vaan käyttäen tehokkaasti hyväksi graafisen esityksen antamaa havainnollistamismahdollisuutta. Tämä voi johtaa tilanteisiin, joissa lukijasta ei ehkä tunnu aivan varmalta, että esitetty todistus tai johto olisi täysin sitova. Graafiteorian kurssin yksi tavoite onkin antaa oikeanlainen tuntuma graafiteorian esityksiin. Tämä on tarpeen, sillä täysin rigoristinen matemaattinen esitys on usein myös melkein täysin lukukelvoton, löysä ja aukkoinen esitys taas käyttökelvoton. Varsinaista geometrista graafiteoriaa käsitellään lyhyesti Luvussa VI, jossa esitetään tasottuvuustestaukseen sekä graafin piirtoon sopivat yksinkertaiset algoritmit. Esitys on geometrisesti varsin pinnallinen. Se tarvitsisi oikeastaan tuekseen syvällisiä käyräteorian ja topologian tulok-

4 sia, joihin tässä ei kuitenkaan voida mennä. Viimeisessä luvussa on sitten lyhyt katsaus matroideihin, joista on muodostunut elegantti yleistys ja vaihtoehto monillekin graafiteoreettisille käsitteille. iii Keijo Ruohonen

5 Luku 1 MÄÄRITELMIÄ JA PERUSTULOKSIA 1.1 Määritelmiä Havainnollisesti graafi muodostuu pisteistä sekä niitä yhdistävistä viivoista. Esimerkki. Formaalisesti graafi on pari(v, E), missä V on ns. pisteiden joukko sekä E pisteparien muodostama ns. viivojen joukko. E on ns. multijoukko, ts. sen alkiot esiintyvät joukossa mahdollisesti monta kertaa eli kullakin alkiolla on oma multiplisiteettinsä. Usein pisteitä merkitään kirjaimin (esimerkiksia,b,c,... taiv 1,v 2,...) tai numeroin1,2,... Jatkossa näitä merkkejä itse asiassa käytetään V :n alkioina. Esimerkki. (Jatkoa) Merkitään pisteitä seuraavasti: v 1 v 5 v 2 v3 v 4 Silloin voidaan valitav = {v 1,...,v 5 } sekäe = {(v 1,v 2 ),(v 2,v 5 ),(v 5,v 5 ),(v 5,v 4 ),(v 5,v 4 )}. Usein merkitään myös viivoja kirjaimin (esimerkiksi a,b,c,... tai e 1,e 2,...) tai numeroin 1, 2,... yksinkertaisuuden vuoksi. Huomautus. Viivat(u, v) ja(v, u) ovat samat, ts. parit ovat järjestämättömiä. 1

6 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA 2 Esimerkki. (Jatkoa) Merkitään vielä viivoja seuraavasti: e 1 v 1 e 3 v 5 e 2 e 4 e 5 v 2 v3 v 4 SilloinE = {e 1,...,e 5 }. Nimityksiä: 1. Pisteet u ja v ovat viivan(u, v) päätepisteet. 2. Viivat, joilla on samat päätepisteet, ovat rinnakkaiset. 3. Muotoa(v,v) oleva viiva on ns. silmukka. 4. Graafi on yksinkertainen, jos siinä ei ole rinnakkaisia viivoja eikä silmukoita. 5. Graafi, jossa ei ole lainkaan viivoja (ts.e on tyhjä), on tyhjä. 6. Graafi, jossa ei ole lainkaan pisteitä (ts. V jae ovat tyhjiä), on ns. nollagraafi. 7. Graafi, jossa on vain yksi piste, on triviaali. 8. Viivat ovat vierekkäiset eli vierusviivat, jos niillä on yhteinen päätepiste. 9. Pisteetujav ovat vierekkäiset eli vieruspisteet, jos niitä yhdistää viiva, ts.(u,v) on viiva. 10. Pisteen v aste, merkitään d(v), on niiden viivojen lukumäärä, joiden päätepiste v on. Silmukat lasketaan mukaan kahdesti ja rinnakkaiset viivat multiplisiteettinsä osoittaman määrän kertoja. 11. Piste, jonka aste on1, on ns. loppupiste. 12. Viiva, jonka päätepisteenä on loppupiste, on ns. loppuviiva. 13. Piste, jonka aste on0, on ns. irtopiste. Esimerkki. (Jatkoa) Edellä v 4 ja v 5 ovat e 5 :n päätepisteet. e 4 ja e 5 ovat rinnakkaiset. e 3 on silmukka. graafi ei ole yksinkertainen. e 1 ja e 2 ovat vierekkäiset. v 1 ja v 2 ovat vierekkäiset.

7 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA 3 v 1 :n aste on1, ts. se on loppupiste. e 1 on loppuviiva. v 5 :n aste on5. v 4 :n aste on2. v 3 :n aste on0, ts. se on irtopiste. Graafeja merkitään jatkossa yleensä kirjaimin, esimerkiksi G = (V,E). Merkitään δ(g):llä graafin G pisteiden minimiastetta (= 0, jos G:ssä on irtopisteitä). Vastaavasti merkitään (G):lläG:n pisteiden maksimiastetta. Esimerkki. (Jatkoa) Edellä δ(g) = 0 ja (G) = 5. Huomautus. Jatkossa tarkastellaan vain äärellisiä graafeja, ts. V ja E ovat äärellisiä. Koska jokaisella viivalla on kaksi päätepistettä, saadaan välittömästi Lause 1.1. GraafilleG = (V,E), missäv = {v 1,...,v n } jae = {e 1,...,e m }, on n d(v i ) = 2m. Seuraus. Graafissa on paritonta astetta olevia pisteitä aina parillinen määrä. i=1 Todistus. Jos pisteiden v 1,...,v k asteet ovat parittomat ja pisteiden v k+1,...,v n asteet parilliset, niin (Lause 1.1) on parillinen, joten myösk on parillinen. d(v 1 )+ +d(v k ) = 2m d(v k+1 ) d(v n ) Esimerkki. (Jatkoa) Nyt = 10 = 2 5 jav 1 :n sekäv 5 :n asteet ovat parittomat (2 kpl). Yksinkertainen graafi. jossa on kaikki mahdolliset viivat, on ns. täydellinen graafi. Täydellistänpisteen graafia merkitään K n :llä. Neljä ensimmäistä täydellistä graafia: K 1 K 2 K 3 K 4 Graafi G 1 = (V 1,E 1 ) on graafin G 2 = (V 2,E 2 ) aligraafi, jos 1. V 1 V 2 ja 2. jokaineng 1 :n viiva on myösg 2 :n viiva.

8 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA 4 Esimerkki. Jos graafi on v 2 e 1 v 4 G 2 : e 2 e 4 v 1 e 3 v 3 e 5 v5 e 6 niin sen aligraafeja ovat esimerkiksi G 1 : e 1 v 2 v 1 v 2 e 1 v 4 G 1 : e 2 e 4 v 1 v 3 e 5 v5 e 6 v 2 G 1 : v 1 v 3 e 5 v 5 e 6

9 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA 5 ja G 1 : e 6 v 5 Graafin G = (V,E) viivojen joukone 1 E indusoimag:n aligraafi on G 1 = (V 1,E 1 ) = merk. E 1, missäv 1 muodostuu kaikistae 1 :n viivojen päätepisteistä. Esimerkki. (Jatkoa)G:n viivojen e 2, e 3 jae 5 indusoima aligraafi on v 2 e 2,e 3,e 5 : e 2 v 1 e 3 v 3 e 5 v 5 Graafin G = (V,E) pisteiden joukonv 1 V indusoimag:n aligraafi on G 1 = (V 1,E 1 ) = merk. V 1, missäe 1 muodostuu niistä viivoista, joiden päätepisteet ovatv 1 :ssä. Esimerkki. (Jatkoa)G:n pisteidenv 1, v 3 jav 5 indusoima aligraafi on v 1,v 3,v 5 : v 1 e 3 v 3 e 5 v 5 e 6 G:n täydellinen aligraafi on ns. G:n klikki. 1.2 Kulku. Reitti. Polku. Piiri. Yhtenäisyys. Komponentti Graafin G = (V, E) kulku on äärellinen jono v i0,e j1,v i1,e j2,...,e jk,v ik,

10 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA 6 jossa on lomittain G:n pisteitä ja viivoja ja aina v it 1 sekä v it ovat e jt :n päätepisteet (t = 1,...,k). v i0 on kulun alkupiste ja v ik sen loppupiste. k on kulun pituus. Ääritapauksena yksi pistev i0 katsotaan0-pituiseksi kuluksi. Kulussa saavat pisteet ja viivat esiintyä useitakin kertoja. Kulku on avoin, josv i0 v ik, muuten suljettu. (Suljettua kulkua sanotaan myös kierrokseksi.) Esimerkki. Graafissa G: v 1 e 1 v 2 e 2 v 3 e 10 e 9 e 8 e 7 e 5 e 3 v 6 v 5 e 6 v 4 e 4 on avoin kulku. Sen sijaan on suljettu kulku. v 2,e 7,v 5,e 8,v 1,e 8,v 5,e 6,v 4,e 5,v 4,e 5,v 4 v 4,e 5,v 4,e 3,v 3,e 2,v 2,e 7,v 5,e 6,v 4 Kulku on reitti, jos siinä ei mikään viiva esiinny useita kertoja. Pistepari u, v voi esiintyä tällöin kulun peräkkäisinä pisteinä enintään niin monta kertaa kuin on pisteitäujav yhdistäviä rinnakkaisia viivoja. Esimerkki. (Jatkoa) Edellä olevassa graafissa on reitti. v 1,e 8,v 5,e 9,v 1,e 1,v 2,e 7,v 5,e 6,v 4,e 5,v 4,e 4,v 4 Reitti on polku, jos siinä ei esiinny mikään piste useasti mahdollisesti päätepisteitä lukuunottamatta, kun ne ovat samat. Suljettu polku on piiri. Yksinkertaisuuden vuoksi jatkossa oletetaan vielä, että piiri ei ole tyhjä, ts. sen pituus on 1. Polut ja piirit samaistetaan myös jatkossa viivojensa generoimiin aligraafeihin. Esimerkki. (Jatkoa) Edellä olevassa graafissa on polku ja on piiri. v 2,e 7,v 5,e 6,v 4,e 3,v 3 v 2,e 7,v 5,e 6,v 4,e 3,v 3,e 2,v 2 Kulkua, jonka alkupiste on u ja loppupiste v, sanotaan u v-kuluksi. Graafin pisteet u ja v ovat yhdistetyt, jos graafissa on u v-kulku (jolloin siinä on myös u v-polku!). Jos u ja v ovat yhdistetyt ja toisaalta myös v ja w ovat yhdistetyt, niin myös u ja w ovat yhdistetyt; ts. jos graafissa on u v-kulku ja v w-kulku, niin siinä on myös u w-kulku. Graafi on yhtenäinen, jos sen mitkä tahansa kaksi eri pistettä ovat yhdistetyt. (Erityisesti triviaali graafi katsotaan yhtenäiseksi.)

11 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA 7 Esimerkki. Graafi ei ole yhtenäinen. Graafin G aligraafig 1 (ei nollagraafi) ong:n komponentti, jos 1. G 1 on yhtenäinen ja 2. jokog 1 on triviaali (G:n irtopiste) tai sitten se on ei-triviaali ja niiden viivojen indusoima G:n aligraafi, joiden (jompikumpi) päätepiste on G 1 :n piste (lue toiseenkin kertaan!). Graafin eri komponenteilla ei ole yhteisiä pisteitä, sillä Lause 1.2. Jos graafin G pistev on yhdistetty sen komponentin G 1 johonkin pisteeseen, niin v on G 1 :n piste. Todistus. Josv on yhdistettyg 1 :n pisteeseen v, niing:ssä on kulku v = v i0,e j1,v i1,...,v ik 1,e jk,v ik = v. Koskav on G 1 :n piste, niin (ehto 2. yllä)e jk on G 1 :n viiva jav ik 1 on G 1 :n piste. Näin jatkaen päätellään lopulta, ettäv ong 1 :ssä. Esimerkki. Graafin G: v 3 e 5 v 6 v 1 e 1 e 2 v 4 e 3 e 4 v 7 v 2 v 5 e 6 e 7 G 1 G 2 G 3 G 4 v 8 komponentit ovat G 1, G 2,G 3 jag 4. Lause 1.3. Kukin graafin G piste kuuluu tarkalleen yhteen G:n komponenttiin. Samoin kukin G:n viiva kuuluu tarkalleen yhteen G:n komponenttiin. Todistus. Valitaan G:n piste v. Suoritetaan seuraava operaatio toistuvasti niin monta kertaa kuin mahdollista lähtien pistejoukostav 1 = {v}: ( ) Jos v on sellainen G:n piste, että v / V 1 ja v on yhdistetty johonkin V 1 :n pisteeseen, niinv 1 V 1 {v }.

12 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA 8 Koska G:ssä on äärellinen määrä pisteitä, prosessi pysähtyy ennen pitkää. Viimeksi saadun V 1 :n indusoima G:n aligraafi G 1 on se G:n komponentti, johon v kuuluu. G 1 on yhtenäinen, koska sen v:stä eroavat pisteet ovat yhdistetyt v:hen ja siis myös toisiinsa. Ehto 2. toteutuu, sillä operaatiota( ) ei enää voitu toistaa. Lauseen 1.2 nojallav ei kuulu kahteen eri komponenttiin. Graafin viiva kuuluu päätepisteidensä määräämään komponenttiin. Lause 1.3 antaa graafin jaon komponentteihin. Lauseen todistus antaa erään algoritmin, jolla jako voidaan suorittaa: toistetaan todistuksen menettelyä kunnes pisteet loppuvat. Irtopisteet muodostavat kukin oman komponenttinsa. Yhtenäisellä graafilla on vain yksi komponentti, ts. graafi itse. Graafin G, jossa onnpistettä,mviivaa jak komponenttia, aste eli rangi on ja sen nulliteetti on ρ(g) = n k µ(g) = m n+k. Ilmeisestiρ(G) 0 jaρ(g)+µ(g) = m. Myösµ(G) 0, sillä Lause 1.4. ρ(g) m Todistus. Käytetään täydellistä induktiota m:n suhteen. Induktion lähtökohta: m = 0. Nyt komponentit ovat triviaaleja jan = k. Induktio-oletus: Lause on oikea, kunm < p. (p 1) Induktioväite: Lause on oikea, kunm = p. Induktioväitteen todistus: Valitaan joking:n komponenttig 1, jossa on viiva. Merkitään ko. viivaae:llä ja sen päätepisteitäu:lla jav:llä. Merkitään edelleeng 2 :lla sitäg:n jag 1 :n aligraafia, joka saadaan poistamallag 1 :stä viivae(muttei pisteitäujav). Merkitään vieläg :lla graafia, joka saadaan poistamallag:stä viivae(muttei pisteitäuja v), ja k :llag :n komponenttien lukumäärää. Saadaan kaksi tapausta: 1. G 2 on yhtenäinen. Tällöink = k. Sovelletaan induktio-oletustag :uun: n k = n k = ρ(g ) m 1 < m. 2. G 2 ei ole yhtenäinen. Tällöinu:ta jav:tä yhdistääg 1 :ssä jag:ssä vain polku u,e,v eikä mikään muu polku. G 2 :ssa on siis kaksi komponenttia ja k = k + 1. Sovelletaan induktio-oletustag :uun: Siisn k m. ρ(g ) = n k = n k 1 m 1. Tämän tapaisilla kombinatorisilla tuloksilla on useita seurauksia. Yksi esimerkki: Lause 1.5. Jos G on yhtenäinen graafi ja k 2 sen suurin mahdollinen polun pituus, niin jokaisella kahdellak:n pituisellag:n polulla on ainakin yksi yhteinen piste.

13 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA 9 Todistus. Katsotaan vain tilanne, jossa kumpikaan poluista ei ole piiri (muut tilanteet käsitellään vastaavasti). Otetaan kaksik-pituistag:n polkua sekä v i0,e j1,v i1,e j2,...,e jk,v ik (polkup 1 ) v i 0,e j 1,v i 1,e j 2,...,e j k,v i k (polkup 2 ) ja asetetaan vastaoletus: Poluilla p 1 ja p 2 ei ole yhteisiä pisteitä. Koska G on yhtenäinen, on olemassav i0 v i k -polku. Etsitään tältä polulta viimeinen piste, joka on polullap 1 (ainakinv i0 on p 1 :llä), sanotaan v it, ja sen jälkeen saadulta v it v i k -polulta ensimmäinen piste, joka on polulla p 2 (ainakin v i k on p 2 :lla), sanotaan v i s. Näin saadaan v it v i s -polku Tilanne on seuraavannäköinen: v it,e j 1,...,e j l,v i s. v i0,e j1,v i1,...,v it,e jt+1,...,e jk,v ik e j 1. e j l v i 0,e j 1,v i 1,...,v i s,e j s+1,...,e j k,v i k Tästä saadaan kaksi uutta polkua:v i0 v i k -polku jav i 0 v ik -polku. Kaksi tapausta: t s: Nyt v i0 v i k -polun pituus on k t < s: Nytv i 0 v ik -polun pituus k +1. Graafi on piiritön, jos siinä ei ole yhtään piiriä. Lause 1.6. Graafi on piiritön täsmälleen silloin, kun siinä ei ole silmukoita ja mitään kahta eri pistettä ei yhdistä kaksi eri polkua. Todistus. Otetaan ensin piiritön graafi G. Silloin G:ssä ei ole silmukoita. Asetetaan vastaoletus: G:n eri pisteitäujav yhdistää kaksi eri polkua ja u = v i0,e j1,v i1,e j2,...,e jk,v ik = v (polkup 1 ) u = v i 0,e j 1,v i 1,e j 2,...,e j l,v i l = v (polkup 2 ) (tässä siisi 0 = i 0 jai k = i l ), missäk l. Valitaan pienin sellainen indeksit, että Tällainen on toki olemassa, sillä muutoin joko 1. k > l jav ik = v = v i l = v il ( ) tai v it v i t. 1 Tässä ja jatkossa merkki tarkoittaa ristiriitaa. Jos oletuksista on päästy ristiriitaan, niin ne eivät voi olla yhtaikaa paikkansa pitäviä.

14 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA k = l ja v i0 = v i 0,...,v il = v i l. Tällöin joidenkin kahden peräkkäisen polun pisteen välillä on rinnakkaisia viivoja jag:ssä olisi piiri. p 1 u v i t 1 v i s v p 2 Valitaan sitten pienin sellainen indeksi s, että s t ja v is on polulla p 2 (ainakin v ik on p 2 :lla). Valitaan vielä sellainen indeksir, että r t ja v i r = v is (tällainen on, silläp 1 on polku). Mutta silloin v it 1,e jt,...,e js,v is (= v i r ),e j r,...,e j t,v i t 1 (= v it 1 ) on piiri. (Tarkista erityisesti tapaust = s = r.) Toiseksi, jos graafissa ei ole silmukoita ja sen kahta eri pistettä ei yhdistä kaksi eri polkua, siinä ei voi olla piirejä. Jos nimittäin esimerkiksi v i0,e j1,v i1,e j2,...,e jk,v ik = v i0 on piiri, olisi joko k = 1 ja e j1 silmukka ( ) tai sitten k 2 ja pisteitä v i0 ja v i1 yhdistäisi kaksi eri polkua v i0,e j1,v i1 ja v i1,e j2,...,e jk,v ik = v i0 ( ). 1.3 Graafien operaatioita Yksinkertaisen graafin G = (V, E) komplementti on yksinkertainen graafi G = (V, E), missä E:ssa ovat tarkalleen ne viivat, jotka eivät oleg:ssä. Esimerkki. v 2 v 3 G: v 5 v 1 v 4 v 2 v 3 _ G: v 5 v 1 v 4

15 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA 11 Esimerkki. _ G = K 3 : G: (tyhjä graafi) IlmeisestiG = G. Jos graafit G = (V,E) ja G = (V,E ) ovat yksinkertaisia ja V V, on graafien erotus G G = (V,E ), missä E :ssa ovat ne viivat, jotka ovat G:ssä, mutta eivät ole G :ssa (yksinkertainen graafi). Esimerkki. G: G': G G': Kahden yksinkertaisen graafin G 1 = (V 1,E 1 ) jag 2 = (V 2,E 2 ) yhdiste on G 1 G 2 = (V 1 V 2,E 1 E 2 ) (yksinkertainen graafi). leikkaus on G 1 G 2 = (V 1 V 2,E 1 E 2 ) (yksinkertainen graafi). rengassumma G 1 G 2 on viivojen joukon E 1 E 2 indusoima G 1 G 2 :n aligraafi (yksinkertainen graafi). Huom! Joukoille operaatio on ns. symmetrinen erotus, ts. E 1 E 2 = (E 1 E 2 ) (E 2 E 1 ). Koska rengassumma on viivojen indusoima aligraafi, siinä ei ole irtopisteitä. Kaikki kolme operaatiota ovat vaihdannaisia ja liitännäisiä. Esimerkki. Jos graafit ovat v 1 v 2 v 5 v 1 e 2 G 1 : e e 3 1 e5 G 2 : e 1 e 6 v 7 v 3 v 4 e 4 v 3 e 7 v 6

16 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA 12 niin G 1 G 2 : v 1 v 2 v 5 e 1 e 2 e 3 e5 e 6 v 3 v 4 e 4 e 7 v 6 v 7 v 1 v 1 v 2 G 1 G 2 : e 1 G 1 G 2 : e 2 e 3 e5 v 3 e 4 e 6 v 3 v 4 e 7 v 6 Huomautus. Operaatiot, ja voidaan määritellä myös yleisesti graafeille, ei pelkästään yksinkertaisille graafeille. Tällöin on luonnollisella tavalla pidettävä kirjaa viivojen multiplisiteeteistä: : Viivan multiplisiteettig 1 G 2 :ssa on maksimi sen multiplisiteeteistäg 1 :ssä ja G 2 :ssa. : Viivan multiplisiteettig 1 G 2 :ssa on minimi sen multiplisiteeteistäg 1 :ssä ja G 2 :ssa. : Viivan multiplisiteettig 1 G 2 :ssa on m 1 m 2, missäm 1 on sen multiplisiteettig 1 :ssä jam 2 multiplisiteettig 2 :ssa. (Olemattoman viivan multiplisiteetti sovitaan nollaksi.) Edelleen myös graafien G ja G erotus voidaan yleistää kaikille graafeille ottamalla multiplisiteetit huomioon: Viivan e multiplisiteetti G G :ssa on { m 1 m 2, josm 1 m 2 m 1 m 2 = (ns. sopiva erotus), 0, josm 1 < m 2 missäm 1 jam 2 ovate:n multiplisiteetitg 1 :ssä jag 2 :ssa, vastaavasti. Jos v on graafin G = (V,E) piste, niin G v on pistejoukon V {v} indusoima G:n aligraafi. Tämä operaatio on ns. pisteen poisto. Esimerkki. (Jatkoa) v 2 v 1 v 5 G 1 v 4 : e 1 e 3 v 3

17 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA 13 Vastaavasti, jos e on graafin G = (V,E) viiva, niin G e on graafi (V,E ), missä E saadaan E:stä poistamalla siitä e. Operaatio on ns. viivan poisto. Huomaa, ettei kyseessä ole joukkoopillinen viivan poisto, sillä ko. viiva voi esiintyä moninkertaisena ja se poistetaan vain kerran. Esimerkki. (Jatkoa) G 1 e 5 : v 1 v 2 v 5 e 1 e 2 e 3 v 3 v 4 e 4 Jos u ja v ovat graafin G = (V, E) eri pisteitä, niin graafi, joka saadaan yhdistämällä pisteet u jav, on(v,e ), missä ja V = (V {u,v}) {w} (w / V on uusi piste) E = (E {(v,u),(v,v) v V}) {(v,w) (v,u) E tai (v,v) E} {(w,w) (u,u) E tai (v,v) E} (muista, että viivoja vastaavat pisteparit ovat järjestämättömiä). Huom! Viivojen multiplisiteetit tulee säilyttää. Erityisesti viivasta(u, v) tulee silmukka. Esimerkki. (Jatkoa) Yhdistetäänv 3 jav 4 graafissag 1 : v 1 v 2 v 5 w Graafin G = (V, E) viivan (ei silmukan) e = (u, v) kutistamisella tarkoitetaan operaatiota, jossa ensin poistetaan e ja sitten yhdistetään u ja v. (Silmukan kutistus yksinkertaisesti poistaa ko. silmukan.) Esimerkki. (Jatkoa) KutistetaanG 1 :n viiva e 3 : v 1 v 2 v 5 e 1 e 2 e 5 (poistetaan e 3 ) v 3 v 4 e 4

18 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA 14 v 1 e 2 v 5 (yhdistetään v2 ja v3 ) w v 4 Huomautus. Jos pisteiden yhdistäminen ja viivan kutistus rajoitetaan yksinkertaisille graafeille, niin tuloksesta poistetaan silmukat ja rinnakkaisista viivoista valitaan pisteparia kohden yksi. 1.4 Irrotus Graafin G pistev on G:n irrotuspiste, josg v:ssä on enemmän komponentteja kuing:ssä. Esimerkki. Alla olevassa graafissav on irrotuspiste: irrotuspiste v G: G v: (Huom! Triviaalin graafin ainoa piste ei ole irrotuspiste, eikä irtopiste yleensäkään.) Graafi on separoituva, jos se on epäyhtenäinen tai sitten siinä on ainakin yksi irrotuspiste. Muussa tapauksessa graafi on separoitumaton. Esimerkki. Edellisen esimerkin graafigon separoituva. Esimerkki. Alla oleva graafi on separoitumaton. Graafin G lohko on sellaineng:n aligraafig 1 (ei nollagraafi), että G 1 on separoitumaton ja

19 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA 15 josg 2 on toineng:n aligraafi, niin jokog 1 G 2 = G 1 tai sitteng 1 G 2 on separoituva (mietipä tätäkin!). Esimerkki. Alla oleva graafi on separoituva: irrotuspiste lohkot: Lause 1.7. Piste v on yhtenäisen graafin G irrotuspiste täsmälleen silloin, kun on olemassa kaksi sellaistag:n pistettäuja w, että (i) v u,v w ja u w, mutta (ii) v on jokaisella u w-polulla. Todistus. Katsotaan aluksi tilannetta, jossa v on G:n irrotuspiste. Siis G v ei ole yhtenäinen ja sillä on ainakin kaksi komponenttia G 1 = (V 1,E 1 ) ja G 2 = (V 2,E 2 ). Valitaan u V 1 ja w V 2. G:ssä on u w-polku, koska se on yhtenäinen. Jos v ei ole tällä polulla, on ko. polku myösg v:ssä ( ). Sama koskee mitä tahansag:nu w-polkua. Jos taasv on jokaisellau w-polulla, niin pisteetujaw eivät ole yhdistetytg v:ssä. Lause 1.8. Ei-triviaalissa graafissa on ainakin kaksi pistettä, jotka eivät ole irrotuspisteitä. Todistus. Käytetään induktiota graafin G pisteiden lukumäärän n suhteen. Induktion lähtökohta: Nytn = 2 ja asia on ilmeinen. Induktio-oletus: Lause on oikea, kunn k. (k 2) Induktioväite: Lause on oikea, kunn = k +1. Induktioväitteen todistus: Jos G:ssä ei ole irrotuspisteitä, on asia selvä. Muutoin otetaan tarkasteltavaksi jokin G:n irrotuspiste v. Olkoot G v:n komponentit G 1,...,G m (jolloin m 2). Kullekin komponentilleg i on kaksi vaihtoehtoa: 1. G i on triviaali, jolloin sen ainoa piste on G:n loppupiste tai irtopiste, mutta ei ole G:n irrotuspiste. 2. G i ei ole triviaali. Induktio-oletuksen nojalla G i :ssä on kaksi pistettä u ja w, jotka eivät ole irrotuspisteitä G i :ssä. Jos nyt v ja u (vast. v ja w) eivät ole vierekkäiset G:ssä, ei u (vast. w) ole G:n irrotuspiste. Jos sekä v ja u että v ja w ovat vierekkäiset G:ssä, eivät u jaw voi ollag:n irrotuspisteitä.

20 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA 16 Yhtenäisen graafin G = (V, E) irrotusjoukko on sellainen viivojen joukko F E, että 1. G F (poistetaanf :n viivat yksi kerrallaan) ei ole yhtenäinen ja 2. G H on yhtenäinen aina, kun H F. Lause 1.9. Jos F on yhtenäisen graafin G irrotusjoukko, niin G F :ssä on kaksi komponenttia. Todistus. Olkoon F = {e 1,...,e k }. Graafi G {e 1,...,e k 1 } on yhtenäinen (ja samoin G, jos k = 1) kohdan 2. nojalla. Viivan poisto yhtenäisestä graafista jakaa sen (enintään) kahteen komponenttiin. Esimerkki. Graafin v 2 e 2 v 4 e 8 v 6 e 1 e 3 e 5 e 7 v 1 e 4 v 3 e 6 v 5 irrotusjoukkoja ovat mm. {e 1,e 4 }, {e 6,e 7 }, {e 1,e 2,e 3 }, {e 8 }, {e 3,e 4,e 5,e 6 }, {e 2,e 5,e 7 }, {e 2,e 5,e 6 } ja{e 2,e 3,e 4 }. Onko niitä vielä muita? Graafin G = (V, E) irrotus on V :n jako (eli partitio) kahteen erilliseen ei-tyhjään osajoukkoonv 1 jav 2 : V = V 1 V 2, V 1 V 2 =, V 1, V 2, merkitään V 1,V 2. Yleensä irrotukset V 1,V 2 ja V 2,V 1 samaistetaan. Esimerkki. (Jatkoa) {v 1,v 2,v 3 },{v 4,v 5,v 6 } on irrotus. Vaihtoehtoisesti voidaan irrotusta ajatella viivojen joukkona: irrotus V 1,V 2 = {ne viivat, joiden yksi päätepiste onv 1 :ssä ja toinenv 2 :ssa}. (Huom! Ko. viivojen joukko ei yleisesti määritä joukkojav 1 jav 2 yksikäsitteisesti, joten tätä ei voi käyttää irrotuksen määritelmänä.) Seuraavat helposti todettavat tulokset yhdistävät edellä määriteltyjä käsitteitä: 1. Yhtenäisen graafin G irrotus V 1,V 2 (viivajoukoksi ajateltuna) on irrotusjoukko täsmälleen silloin, kunv 1 :n jav 2 :n indusoimat aligraafit ovat yhtenäiset, ts.g V 1,V 2 :ssa on kaksi komponenttia. 2. Jos F on yhtenäisen graafin G irrotusjoukko jav 1 sekäv 2 ovatg F :n kahden komponentin pistejoukot, niin V 1,V 2 on irrotus jaf = V 1,V Jos v on yhtenäisen (ei-triviaalin) graafin G = (V,E) piste, niin {v},v {v} on G:n irrotus. Tällainen irrotus on irrotusjoukko, josv {v}:n indusoima aligraafi (eli G v) on yhtenäinen, ts. josv ei ole irrotuspiste.

21 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA 17 Jos graafille G = (V,E) on sellainen irrotus V 1,V 2, että E = V 1,V 2, ts. irrotus (viivajoukoksi ajateltuna) sisältää kaikki viivat, niin graafia G sanotaan kaksijakoiseksi. Esimerkki. Graafi v 4 v 1 v 5 v 2 v 6 v 3 v 7 on kaksijakoinen,v 1 = {v 1,v 2,v 3 } ja V 2 = {v 4,v 5,v 6,v 7 }. Kaksijakoista yksinkertaista graafia sanotaan täydelliseksi kaksijakoiseksi graafiksi, jos kahtiajaon antavaan irrotukseen V 1,V 2 ei voida lisätä yhtään viivaa, ts. graafin viivat ovat tarkalleen kaikki viivat, joiden yksi päätepiste on V 1 :ssä ja toinen V 2 :ssa. Mikäli V 1 :ssä on n pistettä ja V 2 :ssampistettä, merkitään tällaista graafia K n,m :llä (vrt. täydellinen graafi). Esimerkki. K 1,1 : K 1,2 : K 2,1 : K 2,3 : (YleensäK n,m jak m,n samaistetaan.) 1.5 Merkityt graafit. Isomorfismi Graafin G = (V,E) pisteiden merkinnällä tarkoitetaan kuvausta α : V A, missä A on ns. merkkien joukko. Vastaavasti viivojen merkintä on kuvaus β : E B, missä B on merkkien joukko. Usein merkit ovat lukuja, jolloin puhutaan myös pisteiden tai viivojen painotuksesta ja painoista. Viivapainotetussa graafissa polun paino on sen viivojen painojen summa. Pisteiden (vast. viivojen) merkintä on injektiivinen, jos kahdella eri pisteellä (vast. viivalla) ei ole samaa merkkiä. Injektiivinen merkitä on bijektiivinen, jos A:ssa (vast. B:ssä) on merkkejä yhtä monta kuin on pisteitä (vast. viivoja).

22 LUKU 1. MÄÄRITELMIÄ JA PERUSTULOKSIA 18 Esimerkki. Jos A = {0, 1} ja B = R, niin graafin viivojen merkintä (painotus) on injektiivinen, pisteiden ei. Graafit G 1 = (V 1,E 1 ) ja G 2 = (V 2,E 2 ) ovat isomorfiset, jos G 1 :n pisteet voidaan merkitä bijektiivisesti V 2 :n alkioilla siten, että saadaan G 2. (Huom! Viivojen multiplisiteetit tulee säilyttää.) Esimerkki. Alla olevat graafitg 1 ja G 2 ovat isomorfiset ja isomorfismin antaa merkintäv i v i ja viivojen vastaavuudene j e j. G 1 : v 1 e 3 e 6 v 5 e 2 e 1 v 3 e 5 v 6 e 7 e 10 e 8 e v 9 8 v 2 e 4 v 4 v 7 G 2 : v' 8 e' v' e' e' 7 e' 9 v' 5 v' v' v' e' e' e' e' 5 4 e' e' 3 v' 1 v' 3 Kahden eri tavalla annetun graafin isomorfisuuden selvittäminen on tunnettu tehtävä, jonka tehokkaaksi ratkaisemiseksi on tehty paljon työtä. Se poikkeaa kuitenkin melkoisesti muista graafi- ja verkkoteoreettisista probleemoista ja liittyy paljolti algebraan (ryhmäteoriaan). Graafi-isomorfismiprobleemalla on myös tärkeä asema laskennallisen vaativuuden teoriassa. Ks. esimerkiksi KÖBLER, J. & SCHÖNING, U. & TORÁN, J.: The Graph Isomorphism Problem. Its Structural Complexity. Birkhäuser (1993).

23 Luku 2 PUUT 2.1 Puut. Metsät Metsä on piiritön graafi. Puu on yhtenäinen metsä. Metsän alimetsä on sen aligraafi. Metsän yhtenäinen aligraafi on sen alipuu. Yleisesti, minkä tahansa graafin alimetsä (vast. alipuu) on sen aligraafi, joka on metsä (vast. puu). Esimerkki. Neljä puuta, jotka yhdessä muodostavat metsän: Yhtenäisen graafin virittävä puu on sen alipuu, joka sisältää kaikki graafin pisteet. JosT on graafin G virittävä puu, niin G T = merk. T on sen virittävä vastapuu. Esimerkki. G: virittävä puu 19

24 LUKU 2. PUUT 20 virittävä vastapuu Virittävän puun viivoja sanotaan oksiksi ja virittävän vastapuun viivoja siteiksi. Lause 2.1. Jos graafissa G on n pistettä ja m viivaa, niin seuraavat ehdot ovat keskenään ekvivalentit: (i) G on puu. (ii) Jokaisen kahden eri G:n pisteen välillä on tarkalleen yksi polku ja G:ssä ei ole silmukoita. (iii) G on yhtenäinen ja m = n 1. (iv) G on piiritön ja m = n 1. (v) G on piiritön ja lisäämälläg:hen mikä tahansa uusi viiva syntyy graafi, jossa on tarkalleen yksi piiri. Todistus. (i) (ii): Jos G on puu, niin se on yhtenäinen ja piiritön.g:ssä ei siis ole silmukoita. Jokaista kahta eri G:n pistettä yhdistää polku. Lauseen 1.6 nojalla tällaisia polkuja on vain yksi. (ii) (iii):gon yhtenäinen. Käytetään induktiotam:n suhteen. Induktion lähtökohta: Nytm = 0,Gon triviaali ja asia on selvä. Induktio-oletus: m = n 1, kunm l. (l 0) Induktioväite: m = n 1, kunm = l+1. Induktioväitteen todistus: G:ssä on viiva e. G e:ssä on l viivaa. Jos G e on yhtenäinen, e:n päätepisteiden välillä on kaksi eri polkua eikä (ii) ole voimassa. Näin ollen G e:ssä on kaksi komponenttia G 1 ja G 2. Olkoot G 1 :ssä n 1 pistettä ja m 1 viivaa, vastaavasti G 2 :ssa n 2 pistettä jam 2 viivaa. Silloin Induktio-oletuksen nojalla n = n 1 +n 2 ja m = m 1 +m m 1 = n 1 1 ja m 2 = n 2 1, jotenm = n 1 +n 2 1 = n 1. (iii) (iv): Asetetaan vastaoletus: G:ssä on piiri. Olkoon e jokin ko. piirin viiva. Silloin G e on yhtenäinen ja siinä onnpistettä sekän 2 viivaa. 1 (iv) (v): Jos G on piiritön, siinä ei ole kahta eri pistettä yhdistäviä polkuja kuin enintään yksi (Lause 1.6). Jos G:ssä olisi useampia komponentteja, niin asettamalla viiva kahden eri komponentin välille ei syntyisi piiriä. Lisäämällä viivoja voidaan komponentit yhdistää aikaansaamatta piirejä: 1 Yhtenäisessä n-pisteisessä graafissa on vähintäänn 1 viivaa (Lause 1.4).

25 LUKU 2. PUUT komponentti 2. komponentti 3. komponentti 4. komponentti Jos lisättiin viivojak( 1) kpl, olisi (sillä (i) (iii)) m+k = n 1 (, koskam = n 1). Siis G on yhtenäinen. Lisäämällä uusi viiva kahden ei-vierekkäisen pisteen välille syntyy näin ollen yksi piiri, mutta ei useampia (muussa tapauksessa voitaisiin yhdestä piiristä poistaa viiva toisen piirin jäädessä ehjäksi ja graafin yhtenäiseksi, mikä on vastoin päättelyä (iii) (iv)). Samoin rinnakkaisen viivan tai silmukan lisääminen aikaansaa tarkalleen yhden piirin. (v) (i): Asetetaan vastaoletus: G ei ole puu, ts. se ei ole yhtenäinen. Lisäämällä viivoja kuten edellisessä kohdassa (kuvio) ei synny piirejä. Erityisesti Lause 2.1 pätee virittäville puille. Lause 2.2. Yhtenäisellä graafilla on virittävä puu. Todistus. Tarkastellaan yhtenäistä graafia G, jolla on n pistettä ja m viivaa. Jos m = n 1, on G itse puu. Koska G on yhtenäinen, on m n 1 (Lause 1.4). Jäljelle jää tapaus m n, jolloin G:ssä on piiri. Poistetaan ko. piiristä yksi viiva e. G e on yhtenäinen. Toistetaan tätä kunnes viivoja on n 1 kpl. Silloin jäljellä on puu. Huomautus. Itse asiassa yhtenäisen graafin virittävä puu voidaan muodostaa lähtien sen mielivaltaisesta alimetsästä M, aivan kuten edellisessä todistuksessa: Koska minkään piirin kaikki viivat eivät olem:ssä, poistetaan piiristä juuri sellainen viiva, joka ei olem:ssä. Lauseen 2.1 nojalla n-pisteisen graafin G aligraafi G 1 on G:n virittävä puu (jolloin siis G on yhtenäinen), jos sillä on mitkä tahansa kolme seuraavasta neljästä ominaisuudesta: 1. G 1 :ssä onnpistettä. 2. G 1 on yhtenäinen. 3. G 1 :ssä onn 1 viivaa. 4. G 1 on piiritön. Itse asiassa 3. ja 4. riittävät yhdessäkin takaamaan, että G 1 on virittävä puu. Jos nimittäin 3. ja 4. ovat voimassa, muttag 1 olisi epäyhtenäinen, olisivatg 1 :n komponentit puita jag 1 :ssä olisi viivoja yhteensä pisteiden lkm komponenttien lkm < n 1 kappaletta ( ). Lause 2.3. Jos puu ei ole triviaali, niin siinä on ainakin kaksi loppupistettä.

26 LUKU 2. PUUT 22 Todistus. Jos puussa on n( 2) pistettä, on sen pisteiden asteiden summa 2(n 1). Jos jokaisen pisteen aste olisi 2, olisi ko. summa 2n ( ). Jos taas vain yhden pisteen aste on yksi muiden pisteiden asteiden ollessa 2, olisi ko. summa 1+2(n 1) = 2n 1 ( ). (Tulos seuraa myös Lauseesta 1.8, sillä puun irrotuspiste ei ole loppupiste!) Metsää, jossa on k komponenttia, kutsutaan useink-puuksi. (Siis 1-puu on puu.) Esimerkki. 4-puu: k-komponenttisella graafilla on Lauseen 2.1 nojalla (sovelletaan komponentteihin) virittävä k- puu eli virittävä metsä, jossa onk komponenttia. 2.2 (Perus)piirit. (Perus)irrotusjoukot Jos yhtenäisen graafin G virittävän puun T oksat ovat b 1,...,b n 1 ja vastaavan virittävän vastapuun T siteet c 1,...,c m n+1, niin graafissa T + c i (= T :n oksien ja c i :n indusoima G:n aligraafi) on tarkalleen yksi piiri C i (Lause 2.1). Tällaisia piirejä kutsutaan peruspiireiksi. Kukin virittävä puu määrittää tällä tavoin m n + 1 peruspiiriä C 1,...,C m n+1, jotka yhdessä muodostavat ns. peruspiirijoukon. Jokaisessa peruspiirissä on tarkalleen yksi side, joka toisaalta ei esiinny missään muussa peruspiirijoukon peruspiirissä. Näin ollen ei mitään peruspiiriä voida lausua peruspiirijoukon toisten peruspiirien rengassummana, ts. peruspiirijoukko on rengassumman suhteen (lineaarisesti) riippumaton. Esimerkki. G: T: T*: c 1 c 2 c 3

27 LUKU 2. PUUT 23 C 1 C 2 C 3 T b i :ssä on kaksi komponenttia T 1 ja T 2. Vastaavat pistejoukot ovat V 1 ja V 2. Silloin V 1,V 2 on G:n irrotus. Se on (viivajoukoksi tulkittuna) myös G:n irrotusjoukko, sillä G V 1,V 2 :ssä on kaksi komponenttia (ks. tulos 1. sivulla 16). Näin jokaista T :n oksaa b i vastaa irrotusjoukko I i. Tällä tavoin saadut irrotusjoukot I 1,...,I n 1 ovat ns. perusirrotusjoukot ja ne muodostavat ns. perusirrotusjoukkojen joukon. Jokainen perusirrotusjoukko sisältää tarkalleen yhden T :n oksista ja jokainen T :n oksa on tarkalleen yhdessä perusirrotusjoukossa. Kukin virittävä puu määrittää näin yksikäsitteiseng:n perusirrotusjoukkojen joukon. Esimerkki. (Jatkoa) Edellisen esimerkin graafin G: e 2 e 1 e 4 e 3 e 5 e 6 e 7 e 8 virittävän puun T: b 1 b 2 b 3 b 4 b 5 määrittämät perusirrotusjoukot ovat: b 1 : {e 1,e 2 } b 2 : {e 2,e 3,e 4 } b 3 : {e 2,e 4,e 5,e 6 } b 4 : {e 2,e 4,e 5,e 7 } b 5 : {e 8 } Katsotaan seuraavaksi paria piirien ja irrotusjoukkojen ominaisuutta: (a) Yhtenäisen graafin G irrotusjoukko sisältää ainakin yhden oksan jokaisesta G:n virittävästä puusta. (Vastaoletus: G:n eräs irrotusjoukko F ei sisällä yhtään erään virittävän puunt oksaa. SilloinT ong F :n aligraafi jag F onkin yhtenäinen. ) (b) Yhtenäisen graafin G piiri sisältää ainakin yhden siteen jokaisesta G:n virittävästä vastapuusta. (Vastaoletus: G:n eräs piiri C ei sisällä yhtään erään virittävän vastapuun T sidettä. SilloinT = G T sisältää piirin eikät näin ollen ole puu. )

28 LUKU 2. PUUT 24 Lause 2.4. Yhtenäisen graafingviivajoukkof ong:n irrotusjoukko täsmälleen silloin, kun (i) F sisältää ainakin yhden oksan jokaisestag:n virittävästä puusta ja, (ii) josh F, niin jonkin virittävän puun mikään oksa ei oleh:ssa. Todistus. Otetaan ensin tapaus, jossa F on irrotusjoukko. Silloin (i) on voimassa (ominaisuus (a) yllä). JosH F, niing H on yhtenäinen ja sillä on virittävä puut. ToisaaltaT on silloin myösg:n virittävä puu. Siis myös (ii) pätee. Otetaan sitten tapaus, jossa (i) ja (ii) ovat voimassa. Silloin G F on epäyhtenäinen. Jos H F, niin jonking:n virittävän puunt mikään oksa ei oleh:ssa,t ong H:n aligraafi ja G H on yhtenäinen. SiisF on irrotusjoukko. Vastaava tulos piireille: Lause 2.5. Yhtenäisen graafin G aligraafi C on piiri täsmälleen silloin, kun (i) C sisältää siteen jokaisesta G:n virittävästä vastapuusta ja, (ii) jos D on C:n aligraafi ja D C, niin jonkin virittävän vastapuun mikään side ei ole D:ssä. Todistus. Otetaan ensin tapaus, jossac on piiri. SilloinC sisältää siteen jokaisesta virittävästä vastapuusta (ominaisuus (b) yllä), joten (i) on voimassa. JosDonC:n aito aligraafi, niin ilmeisesti se ei sisällä piirejä, ts. se on metsä. SilloinD voidaan täydentääg:n virittäväksi puuksit (ks. huomautus s. 21) eikä siis sisällä yhtäänt :n sidettä. Näin ollen myös (ii) pätee. Otetaan sitten tapaus, jossa (i) ja (ii) ovat voimassa. Silloin C:ssä täytyy olla piirejä, muussa tapauksessa se olisi metsä ja täydennettävissä G:n virittäväksi puuksi (ks. huomautus s. 21). Otetaan jokin C:n piiri C. Koska (ii) pätee, ei voi olla C C, sillä piirinä C sisältää siteen jokaisesta virittävästä vastapuusta (ominaisuus (b) yllä). Siis C = C on piiri. Lause 2.6. Yhtenäisen graafin piirillä ja irrotusjoukolla on aina parillinen määrä yhteisiä viivoja. Todistus. Otetaan yhtenäisen graafin G piiri C ja irrotusjoukko F. G F :ssä on kaksi komponenttia G 1 = (V 1,E 1 ) ja G 2 = (V 2,E 2 ). Jos nyt C on G 1 :n tai G 2 :n aligraafi, on asia selvä (yhteisiä viivoja ei ole). Oletetaan sitten, että C:llä ja F :llä on yhteisiä viivoja. Kuljetaan piiri lähtien jostaking 1 :n pisteestäv. Koska lopulta palataanv:hen, onc:ssä oltava parillinen määrä irrotuksen V 1,V 2 viivoja. Seuraavaa lausetta pitänee lukea useampia kertoja ennenkuin se avautuu: Lause 2.7. Yhtenäisen graafin G virittävän vastapuun T sidettä c vastaava peruspiiri muodostuu tarkalleen niistät :n oksista, joita vastaava perusirrotusjoukko sisältääc:n. Todistus. T :n sidettä c vastaa jokin peruspiiri C. Muut C:n viivat b 1,...,b k ovat T :n oksia. MerkitäänI i :llä oksaab i vastaavaa perusirrotusjoukkoa. Silloinb i on ainoac:n jai i :n yhteinen T :n oksa. Toisaalta c on ainoa T :n side C:ssä. Lauseen 2.6 nojalla on C:n ja I i :n yhteisten viivojen oltava b i ja c, ts. c on I i :n viiva. Näytetään sitten, että muita T :n oksia b k+1,...,b n 1 vastaavissa perusirrotusjoukoissa I k+1,...,i n 1 ei ole sidettä c. Jos esimerkiksi I k+1 :ssä olisi side c, olisi perusirrotusjoukollai k+1 ja piirilläc tarkalleen yksi yhteinen viiva ( ). Siis side c on vain perusirrotusjoukoissai 1,...,I k.

29 LUKU 2. PUUT 25 Vastaava perusirrotusjoukkoja koskeva lause on pätee jälleen: Lause 2.8. Yhtenäisen graafin virittävän puun T oksaa b vastaava perusirrotusjoukko muodostuu tarkalleen niistät :n siteistä, joita vastaava peruspiiri sisältääb:n. Todistus. T :n oksaa b vastaa jokin perusirrotusjoukko I. Muut I:n viivat ovat c 1,...,c k ovat T :n siteitä. Merkitään C i :llä sidettä c i vastaavaa peruspiiriä. Silloin c i on ainoa I:n ja C i :n yhteinen T :n side. Toisaalta b on ainoa T :n oksa I:ssä. Lauseen 2.6 nojalla on I:n ja C i :n yhteisten viivojen oltava b ja c i, ts. b on C i :n viiva. Näytetään sitten, että muita T :n siteitä c k+1,...,c m n+1 vastaavissa peruspiireissä C k+1,...,c m n+1 ei ole oksaa b. Jos esimerkiksi C k+1 :ssä olisi oksa b, olisi peruspiirilläc k+1 ja irrotusjoukollai tarkalleen yksi yhteinen viiva ( ). Siis oksa on vain peruspiireissäc 1,...,C k. Näistä tuloksista on jo havaittavissa graafin irrotusjoukkojen ja piirien välinen duaalisuus: Irrotusjoukkoja koskevista tuloksista saadaan yleensä vastaava piirejä koskeva duaalinen tulos, ja kääntäen. Siirtyminen tuloksesta vastaavaan duaaliseen tulokseen on usein suoritettavissa melkein mekaanisesti, ja sama koskee myös todistuksia! Tämä duaalisuus tulee erityisellä tavalla esille ja käyttöön ns. matroidien yhteydessä (ks. Luku 7).

30 Luku 3 SUUNNATUT GRAAFIT 3.1 Määritelmiä Intuitiivisesti suunnattu graafi eli digraafi muodostuu pisteistä ja niitä yhdistävistä suunnatuista viivoista eli nuolista. Esimerkki. Formaalisesti digraafi on pari (V, E), missä V on pisteiden joukko ja E on pisteparien joukko kuten tavallisillekin graafeille. Erona on, että nyt E:n alkiot katsotaan järjestetyiksi pareiksi: Nuolta pisteestä u pisteeseen v merkitään parilla (u, v), kun taas pari (v, u) merkitsee nuolta v:stäu:hun. Myös nuolien multiplisiteetti otetaan mukaan. (Silmukan suunnalla ei ole väliä.) Luvun 1 käsitteet siirtyvät paljolti samanlaisina digraafeille. Huomattakoon seuraavat: 1. Nuolen(u,v) alkupiste on u ja loppupistev. Myös sanotaan, että nuoli lähtee pisteestäu ja tulee pisteeseen v. 2. Pisteenv lähtöaste on siitä lähtevien nuolten lukumäärä (merkitäänd + (v)) ja sen tuloaste on siihen tulevien nuolten lukumäärä (merkitäänd (v)). 3. Suunnatussa kulussa (reitissä, polussa, piirissä) v i0,e j1,v i1,e j2,...,e jk,v ik one jl :n alkupisteen oltavav il 1 ja loppupisteenv il. 4. Digraafin G = (V, E) alusgraafi on (V, E) tulkittuna tavalliseksi suuntaamattomaksi graafiksi, merkitääng u. 5. DigraafiGon yhtenäinen, josg u on yhtenäinen.g:n komponentit ovatg u :n komponentteja vastaavat suunnatut G:n aligraafit. G:n pisteet ovat yhdistetyt, jos ne ovat yhdistetyt G u :ssa. Myös muut suuntaamattomien graafien käsitteet ja tulokset siirtyvät digraafeille alusgraafien kautta. 26

31 LUKU 3. SUUNNATUT GRAAFIT Digraafin kahden pisteen u ja v sanotaan olevan vahvasti yhdistetyt, jos G:ssä on suunnattu u v-polku ja myös suunnattuv u-polku. 7. Digraafi G on vahvasti yhtenäinen, jos sen mitkä tahansa kaksi eri pistettä ovat vahvasti yhdistetyt. Erityisesti triviaali digraafi on vahvasti yhtenäinen. 8. Digraafin G vahva komponentti on sellainen G:n suunnattu aligraafi H (ei nollagraafi), että H on vahvasti yhtenäinen, mutta kadottaa tämän ominaisuutensa, jos siihen lisätään uusiag:n pisteitä tai/ja nuolia. Jokainen digraafin G piste on jossakin G:n vahvassa komponentissa (vrt. Lause 1.3). Sen sijaang:n nuolen ei välttämättä tarvitse kuulua yhteenkään vahvaan komponenttiin. Esimerkki. Digraafin G v 1 e 9 v 5 e 2 e 1 e 6 e 8 v 3 e 3 e 5 v 2 e v 4 v e vahvat komponentit ovat({v 1 }, ),({v 2,v 3,v 4 },{e 3,e 4,e 5 }), ({v 5 }, ) ja({v 6 }, ). Digraafin G tiivistys on digraafi, joka saadaan kutistamalla G:n kunkin vahvan komponentin nuolet, merkitääng c. Esimerkki. (Jatkoa) Tiivistetään: v 1 e 9 v 5 e 8 w v Suunnatut puut Suunnattu graafi on kvasivahvasti yhtenäinen, jos sen jokaiselle pisteparille u ja v jokin seuraavista vaihtoehdoista on voimassa: (i) u = v tai

32 LUKU 3. SUUNNATUT GRAAFIT 28 (ii) digraafissa on suunnattuu v-polku tai (iii) digraafissa on suunnattuv u-polku tai (iv) on sellainen piste w, että digraafissa on sekä suunnattu w u-polku että suunnattu w v-polku. Esimerkki. (Jatkoa) DigraafiGon kvasivahvasti yhtenäinen. Kvasivahvasti yhtenäinen digraafi on yhtenäinen, mutta ei välttämättä vahvasti yhtenäinen. Digraafin G pistev on G:n juuri, jos siitä on suunnattu polku jokaiseen toiseen G:n pisteeseen. Esimerkki. (Jatkoa) DigraafinG ainoa juuri onv 1. Lause 3.1. Digraafissa on juuri(a) tarkalleen silloin, kun se on kvasivahvasti yhtenäinen. Todistus. Jos digraafissa on juuri, se ilmiselvästi on kvasivahvasti yhtenäinen määritelmän mukaan. Otetaankin sitten kvasivahvasti yhtenäinen digraafi G ja näytetään, että siinä on juuri. Asia on selvä, jos G on triviaali. Muussa tapauksessa otetaan tarkasteltavaksi G:n pistejoukko V = {v 1,...,v n }, jossa siisn 2. Seuraava menettely tuottaa nytg:lle juuren: 1. Asetetaan P V. 2. Jos P :n kahden eri pisteen u ja v välillä on suunnattu u v-polku, poistetaan P :stä v eli asetetaan P P {v}. Toistetaan tätä niin monta kertaa kuin mahdollista. 3. Jos P :ssä on yksi piste, on tämä juuri. Muussa tapauksessa on P :ssä (ainakin) kaksi eri pistettä u ja v eikä näiden välillä ole suunnattua polkua kumpaankaan suuntaan. Koska G on kvasivahvasti yhtenäinen, on kohdan (iv) mukaan piste w ja sekä w u-polku että w v-polku. KoskauonP :ssä, eiwvoi olla siinä. PoistetaanP :stäujav ja lisätään sinne w, ts. asetetaan ensin P P {u, v} ja sitten P P {w}. Mennään kohtaan Toistetaan niin monta kertaa kuin mahdollista. Joka kierroksella P :n pisteiden lukumäärä vähenee. Menettely tuottaa lopulta juuren, sillä jokaiseen P :stä poistettuun pisteeseen on aina suunnattu polku jostain siihen jääneestä pisteestä. DigraafiGon puu, josg u on puu, ja suunnattu puu, jos se on lisäksi kvasivahvasti yhtenäinen eli sillä on juuri. Pisteitä, joiden lähtöaste on nolla, sanotaan suunnatun puun lehdiksi. Esimerkki. 6 lehteä juuri

33 LUKU 3. SUUNNATUT GRAAFIT 29 Lause 3.2. Digraafille G, jossa on n > 1 pistettä, seuraavat ehdot ovat keskenään ekvivalentit: (i) G on suunnattu puu. (ii) G on puu ja siinä on piste, josta on (tarkalleen yksi) suunnattu polku jokaiseen toiseen G:n pisteeseen. (iii) G on kvasivahvasti yhtenäinen, mutta G e ei ole kvasivahvasti yhtenäinen millekään G:n nuolellee. (iv) G on kvasivahvasti yhtenäinen ja sillä on piste, jonka tuloaste on nolla kaikkien muiden pisteiden tuloasteiden ollessa yksi. (v) G:ssä (eli siis G u :ssa) ei ole piirejä ja siinä on piste, jonka tuloaste on nolla kaikkien muiden pisteiden tuloasteiden ollessa yksi. (vi) G on kvasivahvasti yhtenäinen eikä siinä (eli siisg u :ssa) ole piirejä. Todistus. (i) (ii): Jos G on suunnattu puu, niin siinä on juuri. Juuresta on suunnattu polku jokaiseen toiseeng:n pisteeseen (mutta tällaisia ei voi olla useita, koskag u on puu). (ii) (iii): Jos (ii) pätee, on G selvästi kvasivahvasti yhtenäinen. Asetetaan vastaoletus: On sellainen G:n nuoli e, että G e on kvasivahvasti yhtenäinen. e ei voi olla silmukka, koska G on puu. e:llä on päätepisteet u ja v. G e:ssä ei voi olla suunnattua u v-polkua tai suunnattua v u-polkua (muussa tapauksessa G u :ssa olisi piiri). Siispä on piste w, josta on sekä suunnattu w u-polku että suunnattu w v-polku. Mutta tällöin G:ssä olisi e:n suunnasta riippuen joko kaksi suunnattuaw u-polkua tai kaksi suunnattuaw v-polkua ja puussag u olisi piiri (, Lause 1.6). (iii) (iv): Jos G on kvasivahvasti yhtenäinen, niin sillä on juuri r (Lause 3.1). Muiden pisteiden tuloasteet ovat näin ollen 1. Asetetaan vastaoletus: On pistev r, jolled (v) > 1. Silloinv on kahden eri nuolen(u,v) ja(w,v) loppupiste. JosG:ssä olisi silmukkae, olisig e kvasivahvasti yhtenäinen ( ). Näin ollenu v jaw v. Nytv:hen onr:stä kaksi suunnattua reittiä, yksi(u,v):n kautta ja toinen(w,v):n kautta. Mahdollisuuksia on kaksi: u u r v r v w w Edellisessä r u-polku ja r w-polku eivät sisällä nuolia (u,v) ja (w,v) ja sekä G (u,v) että G (w, v) ovat kvasivahvasti yhtenäisiä. Jälkimmäisessä r u-polku sisältää nuolen (w, v) tai (kuten kuvassa) r w-polku sisältää nuolen(u, v) ja vain toinen graafeista G (u, v) ja G (w, v) on kvasivahvasti yhtenäinen. Joka tapauksessa siis joko G (u, v) tai G (w, v) on kvasivahvasti yhtenäinen, koska tällöinkin juuri on r (Lause 3.1). ( ) Vielä on näytettävä, että d (r) = 0. Asetetaan taas vastaoletus: d (r) 1. Silloin r on jonkin nuolen e loppupiste. Mutta tällöin G e on kvasivahvasti yhtenäinen, koskar on edelleen sen juuri (Lause 3.1). ( ) (iv) (v): Jos (iv) pätee, riittää näyttää, ettäg u :ssa ei ole piirejä.g:n pisteiden tuloasteiden summa on n 1 ja näin ollen myös sen pisteiden lähtöasteiden summa on n 1, ts. G:ssä on n 1 nuolta. Koska G on kvasivahvasti yhtenäinen, se on yhtenäinen ja niin ollen puu (Lause 2.1). G u :ssa ei näin ollen ole piirejä.

34 LUKU 3. SUUNNATUT GRAAFIT 30 (v) (vi): Oletetaan, että (v) voimassa. SilloinG:ssä on n 1 nuolta (vrt. edellinen kohta). Lauseen 2.1 nojalla G on puu. Merkitään r:llä kohdassa (v) mainittua pistettä. Lauseen 2.1 nojallar:stä on tarkalleen yksi polku mihin tahansa toiseeng:n pisteeseen. Mainitut polut ovat myös suunnattuja. Muussa tapauksessa d (r) 1 tai jonkin polun pisteen tuloaste on > 1 tai polun jonkin muun pisteen kuin r:n tuloaste on nolla. Siis r on juuri ja G on kvasivahvasti yhtenäinen (Lause 3.1). (vi) (i): Jos G on kvasivahvasti yhtenäinen, sillä on juuri (Lause 3.1). Koska G on nyt yhtenäinen eikä siinä ole piirejä, se on puu. Digraafin G suunnattu aligraafi T on G:n virittävä suunnattu puu, jos T on suunnattu puu ja sisältää kaikkig:n pisteet. Esimerkki. G: T: Lause 3.3. Digraafilla on virittävä suunnattu puu tarkalleen silloin, kun se on kvasivahvasti yhtenäinen. Todistus. Jos digraafillagon virittävä suunnattu puu T, niint :n juuri on myösg:n juuri ja G on kvasivahvasti yhtenäinen (Lause 3.1). Oletetaan sitten, että G on kvasivahvasti yhtenäinen ja näytetään, että sillä on virittävä suunnattu puu. Asia on selvä, jos G itse on suunnattu puu. Ellei G ole suunnattu puu, on G:ssä Lauseen 3.2 nojalla nuoli e, jonka poisto ei hävitä G:n kvasivahvaa yhtenäisyyttä. Poistetaan järjestyksessä tällaisia nuolia, kunnes saadaan suunnattu puu. (Vrt. Lauseen 2.2 todistus.) 3.3 Asykliset suunnatut graafit Suunnatun graafin suunnattua piiriä sanotaan sykliksi. Suunnattu graafi on asyklinen, jos siinä ei ole syklejä. Ilmeisesti suunnatut puut ovat asyklisiä, mutta ei kääntäen. Esimerkki. Digraafi

35 LUKU 3. SUUNNATUT GRAAFIT 31 on asyklinen, muttei suunnattu puu. Lause 3.4. Asyklisellä digraafilla on piste, jonka tuloaste on nolla (ns. lähde), ja piste, jonka lähtöaste on nolla (ns. nielu). Todistus. Otetaan asyklinen digraafi G. Asia on selvä, ellei G:ssä ole nuolia. Muussa tapauksessa tarkastellaang:n suunnattua polkua v i0,e j1,v i1,e j2,...,e jk,v ik, jolla on maksimipituus k. Koska G on asyklinen, on v i0 v ik. Jos nyt olisi nuoli (v,v i0 ), niin jompikumpi seuraavista vaihtoehdoista olisi voimassa: v v it kaikille indeksin arvoillet=0,...,k. Silloin v,(v,v i0 ),v i0,e j1,v i1,e j2,...,e jk,v ik olisi suunnattu polku, jonka pituus on k +1. v = v it jollekin indeksintarvolle. Valitaan pienin tällainent:n arvo. Silloint > 0, koska G:ssä ei ole silmukoita, ja on suunnattu piiri. v i0,e j1,v i1,e j2,...,e jt,v it,(v,v i0 ),v i0 Siisd (v i0 ) = 0. Vastaavalla tavalla todetaan, ettäd + (v ik ) = 0. Jos G = (V,E) on digraafi, jossa on n pistettä, niin G:n pisteiden injektiivistä merkintää α : V {1,..., n}, joka toteuttaa ehdon α(u) < α(v) aina, kun (u, v) on G:n nuoli, sanotaan G:n pisteiden topologiseksi lajitteluksi (tai kanoniseksi merkinnäksi). Lause 3.5. Suunnatun graafin pisteet voidaan lajitella topologisesti tarkalleen silloin, kun se on asyklinen. Todistus. Jos digraafissa on sykli, ei sen pisteitä ilmeisestikään voida lajitella topologisesti. Jos taas digraafi G on asyklinen, saadaan sen pisteiden topologinen lajittelu seuraavalla menettelyllä 1 1. Valitaan piste v, jonka lähtöaste on nolla. Tällainen on olemassa Lauseen 3.4 nojalla. Asetetaan α(v) n, G G v jan n JosG:ssä on vain yksi pistev, asetetaan α(v) 1. Muutoin palataan kohtaan 1. 1 Joka tunnetaan myös Marimontin algoritmin nimellä. Itse algoritmiin kuuluu muitakin osia. Alkuperäisviite on MARIMONT, R.B.: A New Method of Checking the Consistency of Precedence Matrices. Journal of the Association for Computing Machinery 6 (1959),

36 Luku 4 GRAAFIEN MATRIISIT JA LINEAARIAVARUUDET 4.1 Graafien matriisiesityksiä Graafin G = (V,E) vieruspistematriisi on n n-matriisid = (d ij ), missänon G:n pisteiden lukumäärä,v = {v 1,...,v n } ja d ij = pisteitäv i jav j yhdistävien viivojen lukumäärä. Erityisestid ij = 0, jos(v i,v j ) ei oleg:n viiva. MatriisiDon symmetrinen, ts. D T = D. Esimerkki. v 1 v 2 D = v 3 v 5 v 4 Ilmeisesti graafin vieruspistematriisi määrittää graafin täysin isomorfiaa vaille. Suunnatulle graafille G vieruspistematriisi ond = (d ij ), missä d ij = pisteestäv i lähtevien ja pisteeseen v j tulevien nuolten lukumäärä. Esimerkki. v 1 v 2 D = v 4 v 3 32

37 LUKU 4. GRAAFIEN MATRIISIT JA LINEAARIAVARUUDET 33 Ei-tyhjän silmukattoman graafin G = (V, E) ns. täysi insidenssimatriisi on n m-matriisi A = (a ij ), missänon G:n pisteiden lukumäärä,mon G:n viivojen lukumäärä ja { 1, josv i on e j :n päätepiste a ij = 0 muuten. Esimerkki. e 1 v 1 v 2 e 2 e 3 e 4 v 3 v 4 v 5 e 1 e 2 e 3 e v v 2 A = v v v 5 Ei-tyhjän silmukattoman suunnatun graafin G täysi insidenssimatriisi on A = (a ij ), missä 1, josv i on e j :n alkupiste a ij = 1, josv i one j :n loppupiste 0 muuten. Esimerkki. e 1 v 1 v 2 e 2 e 3 e 4 A = e 1 e 2 e 3 e 4 e v 1 v 2 v 3 v 4 e 5 v 4 v 3 Koska graafin täyden insidenssimatriisin jokainen sarake sisältää kaksi ykköstä muiden alkioiden ollessa nollia, voidaan ko. matriisista poistaa yksi rivi ja silti se määrää koko graafin. Graafin insidenssimatriisi onkin matriisi, joka saadaan poistamalla täydestä insidenssimatriisista yksi rivi. Insidenssimatriiseja on siis n kappaletta. Poistettua riviä vastaava piste on ns. viitepiste. Vastaavasti suunnatun graafin täyden insidenssimatriisin jokainen sarake sisältää yhden +1:n ja yhden 1:n loppujen alkioiden ollessa nollia. Insidenssimatriisi saadaan jälleen poistamalla viitepistettä vastaava rivi. Huomaa, että täyden insidenssimatriisin rivit ovat lineaarisesti riippuvat, sillä niiden summa on nollavektori. Lause 4.1. Ei-triviaalin puun insidenssimatriisin determinantti on ±1, myös jos puu on suunnattu graafi. Todistus. Käytetään induktiota puun pisteiden lukumäärännsuhteen. Induktion lähtökohta: Nytn = 2 ja asia on selvä. Induktio-oletus: Lause on oikea, kunn k. (k 2) Induktioväite: Lause on oikea, kunn = k +1.

38 LUKU 4. GRAAFIEN MATRIISIT JA LINEAARIAVARUUDET 34 Induktioväitteen todistus: Otetaan puu T, jossa on pisteitä k + 1 kappaletta ja sen (mielivaltainen) insidenssimatriisi A. T :llä on ainakin kaksi loppupistettä (Lause 2.3). Valitaan loppupistev i, joka ei olea:n viitepiste, ja viiva (nuoli)e t, jonka päätepistev i on. Silloin a it = (±)1 ja a ij = 0, kunj t. KehitetäänA:n determinantti A sen i:nnen rivin mukaan: A = (±)( 1) i+t A, missä A on a it :tä vastaava alimatriisi. Merkitään T = T v i, jolloin myös T on puu (v i oli loppupiste). Induktio-oletuksen nojalla A = ±1, sillä A on selvästi T :n insidenssimatriisi. Seuraus. Jos suunnatussa graafissa G ei ole silmukoita, sen täyden insidenssimatriisin rangi on ρ(g). Todistus. G:n täyden insidenssimatriisin sarakkeiden ja rivien järjestäminen ei muuta sen rangia. Järjestetäänkin pisteet ja nuolet siten, että komponenttien pisteet ovat peräkkäin ja samoin komponenttien nuolet. Silloin täysi insidenssimatriisi muodostuu komponenttien täysistä insidenssimatriiseista: 1. komponentti O 2. komponentti O... k:s komponentti Merkitään i:nnen komponentin pisteiden lukumäärää n i :llä. Jokaisella komponentilla on virittävä puu, jota vastaavan insidenssimatriisin determinantti on Lauseen 4.1 nojalla erisuuri kuin nolla, ts. ko. matriisi on täysiranginen. i:nnen komponentin täysi insidenssimatriisi saadaan vastaavasta virittävän puun insidenssimatriisista lisäämällä sarakkeita sekä lopuksi yksi aikaisemmista lineaarisesti riippuva rivi, joten sen rangi on sama kuin ko. virittävän puun insidenssimatriisin rangi (= n i 1). Huomaa erityisesti triviaalin komponentin tapaus: rangi on nolla= 1 1. Siis A:n rangi = komponenttien rangien summa = (n 1 1)+ +(n k 1) = n 1 + +n } {{ } k k = ρ(g). = n Huomautus. Todistuksesta saadaan myös kannat täyden insidenssimatriisin sarakeavaruudelle ja riviavaruudelle: G:n virittävän metsän oksia vastaavat sarakkeet muodostavat sarakeavaruuden kannan. Riviavaruuden kanta puolestaan saadaan, kun jokaista komponenttia kohti poistetaan yksi ko. komponenttia vastaavista matriisin riveistä.

39 LUKU 4. GRAAFIEN MATRIISIT JA LINEAARIAVARUUDET Irrotusmatriisi Jos ei-triviaalin ja silmukattoman graafing = (V,E) kaikki mahdolliset irrotukset ovati 1,..., I t, niing:n irrotusmatriisi ont m-matriisiq = (q ij ), missämong:n viivojen lukumäärä ja { 1, jose j I i (irrotus tulkitaan viivajoukoksi) q ij = 0 muuten. Esimerkki. Graafin v 1 e 1 v 2 e4 e 2 e 3 v 3 irrotukset ovati 1 = {e 1,e 4 },I 2 = {e 2,e 3,e 4 } jai 3 = {e 1,e 2,e 3 }. Irrotusmatriisi on e 1 e 2 e 3 e I 1 Q = I I 3 Huomautus. Jos graafissa on n pistettä, on sillä irrotuksia 1 2 (2n 2) = 2 n 1 1 kappaletta. Vastaavia erilaisia viivajoukkoja ei yleensä ole näin paljoa. Irrotusmatriisiin otetaan mukaan vain yksi kappale kutakin viivajoukkoa vastaavista irrotuksista, jottei turhaan tulisi samoja rivejä. Irrotusmatriisissa on tällöinkin yleensä (liian) paljon rivejä. Jos G on suunnattu graafi (ei-triviaali ja silmukaton), kiinnitetään jokaiselle irrotukselle V 1,V 2 (mielivaltaisesti valittu) suunta: V 1,V 2 on irrotus V 1 :stä V 2 :een. Ts. tarkastellaan ns. suunnistettuja irrotuksia, mutta valitaan vastakkaissuuntaisista irrotuksista kulloinkin vain toinen. Tällöin irrotusmatriisissaq = (q ij ) on 1, jose j I i jae j sekäi i ovat samansuuntaisia q ij = 1, jose j I i jae j sekäi i ovat erisuuntaisia 0 muutoin. Esimerkki. Suunnatun graafin v 1 v 2 e 3 e 4 e 1 e 2 e 5 v 4 v 3

40 LUKU 4. GRAAFIEN MATRIISIT JA LINEAARIAVARUUDET 36 eri irrotukset (nuolijoukoiksi tulkittuina) ovat I 1 = {e 1,e 2,e 3,e 4 } (suunta e 1 :n suunta), I 2 = {e 3,e 4,e 5 } (suunta e 3 :n suunta), I 3 = {e 1,e 2,e 5 } (suunta e 1 :n suunta) ja I 4 = (muut ovat samoja). Irrotusmatriisi on nyt Q = e 1 e 2 e 3 e 4 e I I I I 4 Koska {v}, V {v} on irrotus jokaiselle pisteelle v, on Q:ssa rivinä jokainen täyden insidenssimatriisin rivi, suunnatun graafin tapauksessa mahdollisesti 1:llä kerrottuna. Lause 4.2. Jokainen suunnatun graafin irrotusmatriisin rivi voidaan lausua kahdella eri tavalla täyden insidenssimatriisin rivien lineaariyhdelmänä. Nollasta eroavat yhdelmän kertoimet ovat joko kaikki = 1 tai kaikki= 1. Todistus. Otetaan suunnatun graafin G = (V, E) irrotusmatriisi Q ja sen täysi insidenssimatriisi A. Olkoon V 1,V 2 (huomaa suunta)q:ni:ttä riviä vastaava irrotus. Mahdollisesti indeksointia vaihtamalla voidaan olettaa, että Merkitään vielä Näytetään, että V 1 = {v 1,...,v r } ja V 2 = {v r+1,...,v n }. q i = Q:n i:s rivi ja a t = A:nt:s rivi. q i = r a t = t=1 n t=r+1 jolloin lause tulee todistetuksi. OtetaanG:n k:s nuoli(v p,v q ) = e k. Silloin ja Saadaan neljä tapausta: a t, a pk = a p :nk:s alkio = 1, a qk = a q :nk:s alkio = 1 a jk = 0, jos j p,q. v p V 1 jav q V 2 : Nyt p r jaq r+1, jotenq ik = 1 ja q ik = r a tk = t=1 n t=r+1 a tk. v p V 2 jav q V 1 : Nyt p r+1 jaq r, jotenq ik = 1 ja q ik = r a tk = t=1 n t=r+1 v p V 1 jav q V 1 : Nyt p r jaq r, jotenq ik = 0 ja q ik = a tk. r a tk = a } r+1,k a {{ } nk. }{{} =0 =0 t=1

41 LUKU 4. GRAAFIEN MATRIISIT JA LINEAARIAVARUUDET 37 v p V 2 jav q V 2 : Nyt p r+1 jaq r+1, jotenq ik = 0 ja Yllä oleva pätee jokaisellek:n arvolle. Esimerkki. (Jatkoa)I 1 :tä vastaa rivi q ik = a }{{} 1k + + a rk = }{{} =0 =0 n t=r+1 (1, 1, 1, 1,0) = (1, 1, 1, 1,0) = ( 1,1,0,0, 1) (0,0,0,0,0) (0,0,1,1,1). Seuraus. Suunnatun graafin G irrotusmatriisin rangi on ρ(g). Todistus. G:n täysi insidenssimatriisi A on sen irrotusmatriisin Q alimatriisi, joten (Lauseen 4.1 Seuraus) rank(q) rank(a) = ρ(g). Toisaalta Lauseen 4.2 mukaan jokainen Q:n rivi on lausuttavissa A:n rivien lineaariyhdelmänä, joten rank(q) = rank(a) = ρ(g). a tk. Toinen seuraus on, että irrotusmatriisiqon kirjoitettavissa muotoon Q = A 1 A, missäa 1 :n alkiot ovat0:ia ja±1:iä. Lisäksi matriisia 1 on suoraan kirjoitettavissa Lauseen 4.2 todistuksesta. Jos graafi G on yhtenäinen, sillä on virittävä puu T ja siihen liittyvät perusirrotusjoukot. Perusirrotusjoukot ovat myös irrotuksia (kun jälkimmäiset tulkitaan viivajoukoiksi). Näin ollen G:n irrotusmatriisilla Q on perusirrotusjoukkoja vastaava alimatriisi Q f, ns. perusirrotusmatriisi. Samoin suunnatulla yhtenäisellä graafilla G on perusirrotusmatriisi: perusirrotusjoukon suunta irrotuksena valitaan vastaavan T :n oksan (nuolen) suuntaiseksi. Kun järjestetään G:n viivat (nuolet) siten, että T :n oksat ovat ensin jossain järjestyksessä ja perusirrotusjoukot asetetaan sittent :n oksien antamaan järjestykseen, saadaan perusirrotusmatriisi muotoon Q f = ( I n 1 Q fc ), missäi n 1 onn 1-rivinen identiteettimatriisi.q f :n rangi on siisn 1 = ρ(g). Esimerkki. (Jatkoa) Jätetään v 3 pois, jotta saadaan yhtenäinen suunnattu graafi. Valitaan virittäväksi puuksi e 1 v 1 v 2 T: e 3 v 4 Perusirrotusjoukot ovat I 2 = {e 3,e 4,e 5 } (suunta e 3 :n suunta) ja I 3 = {e 1,e 2,e 5 } (suunta e 1 :n suunta). Silloin

42 LUKU 4. GRAAFIEN MATRIISIT JA LINEAARIAVARUUDET 38 ja ( e 1 e 3 e 2 e 4 e Q f = ) I3 I 2 Q = e 1 e 2 e 3 e 4 e Piirimatriisi Tarkastellaan graafia G = (V,E), jossa on piirejä. Numeroidaan G:n piirit: C 1,...,C l. G:n piirimatriisi onl m-matriisib = (b ij ), missä { 1, jos viivae j on piirissäc i b ij = 0 muuten (kuten tavallistae = {e 1,...,e m }). Suunnatun graafin G piirit suunnistetaan, ts. kullekin piirille annetaan (mielivaltainen) kiertosuunta piirimatriisin määrittelyä varten. Suunnistuksen jälkeeng:n piirimatriisi onb = (b ij ), missä 1, jos nuolie j on piirissäc i ja sen suunta yhtyy kiertosuuntaan b ij = 1, jos nuolie j on piirissäc i ja sen suunta on kiertosuunnalle vastakkainen 0 muuten. Esimerkki. Suunnatun graafin v 1 e 1 v 2 e 4 e 2 e 3 v 3 piirit ovat v 1 e 1 v 2 v 1 C 1 e e 4 3 e 4 e 1 v 2 v 2 C 2 e 2 e 2 e 3 C 1 v 3 v 3 v 3 ja piirimatriisi on

43 LUKU 4. GRAAFIEN MATRIISIT JA LINEAARIAVARUUDET 39 e 1 e 2 e 3 e C 1 B = C C 3 Jos graafi G on yhtenäinen (ja siinä on piirejä), sillä on virittävä vastapuu T ja siihen liittyvät peruspiirit. Poimimalla näitä vastaavat piirimatriisin B rivit saadaan(m n + 1) m- matriisib f, ns. peruspiirimatriisi. Samoin suunnatulla yhtenäisellä graafillag(jolla on piirejä) on peruspiirimatriisi: peruspiirin suunta valitaan vastaavant :n siteen (nuolen) suuntaiseksi. Kun järjestetään G:n viivat (nuolet) siten, että T :n siteet ovat viimeksi jossain järjestyksessä ja peruspiirit asetetaan sitten siteiden antamaan järjestykseen, saadaan peruspiirimatriisi muotoon B f = ( B ft I m n+1 ), missäi m n+1 on m n+1-rivinen identiteettimatriisi.b f :n rangi on siis m n+1 = µ(g) jab:n rangi on m n+1. Esimerkki. (Jatkoa) Jätetäänv 3 pois, jotta saadaan yhtenäinen graafi (ks. sivu 33) ja käytetään virittävää puuta e 1 v 1 v 2 T: e 3 v 4 Peruspiirit ovat silloin e 1 v 1 v 2 C 1 e 2 v 1 e 1 v 1 v 2 e 3 e 4 C 2 e 3 C 3 v 4 v 4 e 5 ja e 1 e 3 e 2 e 4 e C 1 B f = C C 3

44 LUKU 4. GRAAFIEN MATRIISIT JA LINEAARIAVARUUDET 40 Lause 4.3. Suunnatun graafin suunnistetulla irrotuksella ja suunnistetulla piirillä on parillinen määrä 2k yhteisiä nuolia. Näistä k:lla nuolella on irrotuksen ja piirin suunta sama ja lopuilla k:lla nuolella eri. Todistus. Vrt. Lauseen 2.6 todistus. Lause 4.4. DigraafilleBQ T = O (nollamatriisi). Todistus. Edellisen lauseen nojalla matriisitulonbq T alkioita vastaavissa pistetuloissa nollasta eroavista yhteenlaskettavista on puolet+1:siä ja toinen puoli 1:siä, joten ne ovat= 0. Lause 4.5. Jos digraafissa G on piirejä, niin sen piirimatriisin B rangi on µ(g). Edelleen, jos G on yhtenäinen, niin B voidaan kirjoittaa muotoon B = B 2 B f, missä matriisissa B 2 on alkioina 0:ia ja ±1:siä, ja irrotusmatriisi Q voidaan kirjoittaa muotoon Q = Q 1 Q f, missä matriisissaq 1 on alkioina0:ia ja ±1:siä. Todistus. Tarkastellaan ensin tapausta, missä G on yhtenäinen. Valitaan G:n virittävä puu T ja kirjoitetaan G:n nuolet (m kappaletta) sellaiseen järjestykseen, missä ensiksi tulevat T :n oksat ja viimeksi T :n siteet. Kirjoitetaan sitten perusirrotusjoukot T :n oksien järjestykseen ja peruspiiritt :n siteiden järjestykseen. Silloin Q f = ( I n 1 Q fc ) ja B f = ( B ft I m n+1 ). MyösBvoidaan lohkoa vastaavasti: B = ( B 1 B 2 ). KoskaQ f on Q:n alimatriisi jab f on B:n alimatriisi, seuraa Lauseesta 4.4, että Näin ollen O = B f Q T f = ( B ft I m n+1 )( In 1 Q fc ) T = ( Bft I m n+1 ) ( I n 1 Q T fc = B ft I n 1 +I m n+1 Q T fc = B ft +Q T fc. B ft = Q T fc. Edelleen, koska siisq f onq:n alimatriisi, on samaisen lauseen nojalla Näin ollen O = BQ T f = ( B 1 B 2 )( In 1 Q fc ) T = ( B1 B 2 ) ( I n 1 Q T fc = B 1 I n 1 +B 2 Q T fc = B 1 B 2 B ft. B = ( B 2 B ft B 2 ) = B2 ( Bft I m n+1 ) = B2 B f, kuten väitettiin. Samalla tavoin voidaan näyttää, että Q voidaan kirjoittaa väitettyyn muotoon Q = Q 1 Q f, mikä on selvää myös muuten, koskaq:n rangi onn 1 ja alkiot0:ia ja±1:iä. Jokainen B:n rivi on siis peruspiirejä vastaavien rivien lineaariyhdelmä ja B:n rangi on enintään B f :n rangi = m n + 1. Toisaalta, kuten aikaisemmin todettiin, B:n rangi on m n+1. Siis rank(b) = m n+1 (= µ(g)) yhtenäiselle digraafille. Epäyhtenäisen digraafin G (jossa on piirejä) tapauksessa jaetaan G komponentteihinsa (k 2 kappaletta) ja piirimatriisi B lohkoihin komponentteja vastaavasti (vrt. Lauseen 4.1 Seurauksen todistus), jolloin k rank(b) = (m i n i +1) = m n+k = µ(g). i=1 Huomaa sivutuloksena tullut kaava B ft = Q T fc, joka liittää perusirrotusmatriisin ja peruspiirimatriisin toisiinsa. ) )

45 LUKU 4. GRAAFIEN MATRIISIT JA LINEAARIAVARUUDET Sovellus: Stationääriset lineaariset verkot Stationäärinen lineaarinen verkko on suunnattu graafi G, joka toteuttaa seuraavat ehdot: 1. G on yhtenäinen. 2. G:n jokainen nuoli on jossain piirissä jag:ssä ei ole silmukoita. 3. G:n jokaiseen nuoleene j liittyy numeerinen suure, ns. läpisuurei j. JosG:ssä onmnuolta, merkitään i 1 i =. (läpivektori). i m 4. G:n jokaiseen pisteeseen v i liittyy numeerinen suure p i, ns. potentiaali. Edelleen jokaiseen G:n nuoleene j = (v i1,v i2 ) liittyy ns. poikkisuure u j = p i2 p i1. JosG:ssä on n pistettä jamnuolta, merkitään p = p 1. p n ja u = (potentiaalivektori ja poikkivektori). (Potentiaaleja ei useinkaan tarvita.) 5. G:n jokainen nuolie j on vaihtoehtoisesti (a) ns. komponentti 1, jolloin siihen liittyy lukur j.r j on vakio ( 0) (stationäärisyys) ja em. suureet liittyvät toisiinsa yhtälöllä u 1. u m u j = i j r j (lineaarisuus). (b) ns. läpilähde, jolloin siihen liittyvä läpisuurei j on ennalta kiinnitetty. (c) ns. poikkilähde, jolloin siihen liittyvä poikkisuureu j on ennalta kiinnitetty. 6. (Kirchhoffin laki läpisuureille) Jokaisen G:n suunnistetun irrotuksen läpisuureiden summa on = 0, kun irrotus tulkitaan nuolijoukoksi ja suure otetaan summaan mukaan sellaisenaan, mikäli vastaavan nuolen ja irrotuksen suunnat ovat samat, ja vastakkaismerkkisenä muuten. 7. (Kirchhoffin laki poikkisuureille) Jokaisen G:n suunnistetun piirin poikkisuureiden summa on = 0, kun suure otetaan summaan mukaan sellaisenaan, mikäli vastaavan nuolen ja piirin suunnat ovat samat, ja vastakkaismerkkisenä muuten. Esimerkki. Tyypillinen esimerkki stationäärisestä lineaarisesta verkosta on lineaarinen resistiivinen virtapiiri, jossa on vakiovirta- ja jännitelähteitä. Komponentti on silloin resistori ja r j on resistanssi. Ehto 5.(a) on Ohmin laki. 1 Ei pidä sekoittaa graafin komponenttiin!

46 LUKU 4. GRAAFIEN MATRIISIT JA LINEAARIAVARUUDET 42 Muodostetaan stationääriselle lineaariselle verkolle G jokin virittävä puu T ja sitä kautta perusirrotusmatriisi Q f sekä peruspiirimatriisi B f. Järjestetään näissä sekä vektoreissa i ja u nuolet kuten tehtiin edellä eli siten, että ensin tulevatt :n oksat ja sittent :n siteet. Kirchhoffin lait voidaan silloin kirjoittaa muotoon Qi = 0 ja Bu = 0. Toisaalta perusirrotusmatriisin Q f rivit generoivat lineaarisesti kaikki Q:n rivit ja vastaavasti peruspiirimatriisinb f rivit generoivat kaikkib:n rivit. Niinpä Kirchhoffin lait voidaan kirjoittaa ekvivalenttiin muotoon Q f i = 0 n 1 ja B f u = 0 m n+1. Muodostetaan vielä lävistäjämatriisitk = k 1,...,k m jal = l 1,...,l m, missä r j, jose j on komponentti 1, jose j on komponentti k j = 1, jose j on läpilähde ja l j = 0, jose j on läpilähde 0, jose j on poikkilähde 1, jose j on poikkilähde, sekäm-vektoris = (s 1,...,s m ) T, missä 0, jose j on komponentti s j = i j, jose j on läpilähde u j, jose j on poikkilähde. Silloin kaikki tieto voidaan kirjoittaa lineaariseksi yhtälöryhmäksi K L ( ) i = u Q f O (m n+1) m O (n 1) m B f s 0 n 1 0 m n+1 ns. perusyhtälöt, josta (ideaalisesti) läpi- ja poikkisuureet voidaan ratkaista, kun luvutr j ja läpisekä poikkilähteet on annettu. Huomautus. Vastaavanlaista menettelyä voidaan soveltaa tilayhtälöiden (differentiaaliyhtälöiden) muodostamiseksi, kun verkossa on dynaamisia komponentteja ja lähteitä. Yhtälöryhmän matriisin ei tarvitse olla ei-singulaarinen eikä ryhmällä tarvitse olla yksikäsitteistä ratkaisua lainkaan! Yhtälöryhmän matriisista näkee esimerkiksi melko suoraan, että se on singulaarinen, jos jokin piiri muodostuu vain poikkilähteistä tai jos jokin irrotus muodostuu vain läpilähteistä. Itse asiassa tämä on kuitenkin ainoa tilanne, jossa läpi- ja poikkisuureet eivät määräydy yksikäsitteisesti, jos vakiotr j ovat samanmerkkisiä reaalilukuja (ja usein muutenkin). Asian tarkemmaksi tutkimiseksi valitaan ensin käytetty virittävä puu T sopivasti: Apulause. Jos mikään G:n irrotus ei muodostu pelkistä läpilähteistä eikä mikään sen piiri muodostu pelkistä poikkilähteistä, niin G:llä on sellainen virittävä puu T, että kaikki poikkilähteet ovatt :n oksia ja kaikki läpilähteet ovatt :n siteitä. Todistus. Jos G toteuttaa mainitun oletuksen, valitaan ensin lähtökohdaksi digraafi M, jossa ovat kaikki G:n pisteet ja poikkilähteet (nuolet). Tässä digraafissa ei ole piirejä. Lisätään sitten M:ään yksitellen komponentteja pyrkien virittävään puuhun. Jos tämä ei jossain vaiheessa onnistuisikaan, on G:llä irrotus, jossa on vain läpilähteitä, mikä ei ole mahdollista.,

47 LUKU 4. GRAAFIEN MATRIISIT JA LINEAARIAVARUUDET 43 Oletetaankin nyt, että mikään G:n irrotus ei muodostu pelkistä läpilähteistä eikä mikään sen piiri muodostu pelkistä poikkilähteistä, ja otetaan käyttöön Apulauseessa mainittu virittävä puu T. Järjestetään G:n nuolet vielä siten, että (edellä olevaan tapaan) T :n oksat tulevat ensin ja näistä oksista poikkilähteet tulevat ennen komponentteja. Vastaavasti järjestetään siteet siten, että komponentit tulevat ensin ja läpilähteet viimeksi. Yo. 2m yhtälön ryhmä voidaan silloin kirjoittaa lohkottuna muotoon O O O O I O O O O R 1 O O O I O O O O R 2 O O O I O O O O I O O O O I O Q 11 Q 12 O O O O O I Q 21 Q 22 O O O O O O O O B 11 B 12 I O O O O O B 21 B 22 O I = s s poikkilähteet (oksissa) komponentit (oksissa) komponentit (siteissä) läpilähteet (siteissä) perusirrotusjoukot (poikkilähteet) perusirrotusjoukot (komponentit) peruspiirit (komponentit) peruspiirit (läpilähteet) missä I:t ovat sopivankokoisia identiteettimatriiseja, O:t sopivankokoisia nollamatriiseja ja 0:t sopivanpituisia nollavektoreita. Huomautus. Tässä oletetaan, ettäg:ssä on kaikkia neljää esiintyvää nuolityyppiä (poikkilähde- ja komponenttioksat, läpilähde- ja komponenttisiteet). Muussa tapauksessa (esimerkiksi jos ei ole läpilähteitä) jätetään vastaavat lohkorivit ja -sarakkeet sekä vektorien alkiot pois. Nämä tapaukset käsitellään vastaavasti. Suoraan ratkaisemalla saadaan i 1 i 2 i 3 i 4 u 1 u 2 u 3 u 4 u 1 = s 1, u 2 = R 1 i 2, u 3 = R 2 i 3, i 4 = s 2, joten voidaankin siirtyä yhtälöryhmään I O Q 11 O O I Q 21 O Siispä O B 12 R 1 R 2 O O B 22 R 1 O I i 1 i 2 i 3 u 4 = Q 12 s 2 Q 22 s 2 B 11 s 1 B 21 s 1. i 1 = Q 11 i 3 Q 12 s 2, i 2 = Q 21 i 3 Q 22 s 2, u 4 = B 22 R 1 i 2 B 21 s 1. Edellisen pykälän tuloksista saadaan vielä yhtälö ( ) B11 B B ft = 12 B 21 B 22 = Q T fc = ( Q11 Q 12 Q 21 Q 22 ) T ( Q T = 11 Q T 21 Q T 12 Q T 22 ),

48 LUKU 4. GRAAFIEN MATRIISIT JA LINEAARIAVARUUDET 44 jotenb 11 = Q T 11 jab 12 = Q T 21 ja jäljelle jää lopulta vain yhtälöryhmäi 3:lle: (Q T 21R 1 Q 21 +R 2 )i 3 = Q T 11s 1 Q T 21R 1 Q 22 s 2. Tämän yhtälöryhmän matriisi 2 voidaan kirjoittaa muotoon Q T 21 R 1Q 21 +R 2 = ( Q T 21 I )( R 1 O O R 2 )( Q21 I ), josta välittömästi näkyy, että se on ei-singulaarinen, josr 1 :n jar 2 :n lävistäjäalkiot ovat kaikki negatiivilukuja tai kaikki positiivilukuja. Näin saadaan Lause 4.6. Jos vakiotr j ovat samanmerkkisiä reaalilukuja, niin stationäärisen lineaarisen verkon perusyhtälöillä on yksikäsitteinen ratkaisu tarkalleen siinä tapauksessa, että mikään verkon irrotus ei muodostu pelkistä läpilähteistä eikä mikään sen piiri muodostu pelkistä poikkilähteistä. Edellä olevasta havaitaan myös yleisestikin, että niiden yhtälöiden määrä, jotka pitää ratkaista (numeerisesti), on huomattavasti pienempi kuin2m. Esimerkki. Vakiotaajuiset virtapiirit (vaihtovirtapiirit), joissa on resistansseja, kapasitansseja ja induktansseja, voivat myös olla stationäärisiä lineaarisia verkkoja. (Lause 4.6 ei niitä koske.) Alla olevassa virtapiirissär = 10Ω, C = 100µF,L = 10mH ja virtalähde on I = 10cos(1000t) A. R I R C L Vastaava kompleksivirta on 10e j1000t, missä j on imaginääriyksikkö. (Kulma)taajuus on siis ω = 1000 rad/s. Jännitelähteitä ei ole. Vastaava digraafi on v 2 e 4 e 5 e 1 e 3 v 3 e 2 v 1 2 Matriisia kutsutaan impedanssimatriisiksi. Vastaava matriisi voitaisiin koota myös käyttäen peruspiirimatriisin lohkoja, silloin sitä kutsutaan admittanssimatriisiksi.

49 LUKU 4. GRAAFIEN MATRIISIT JA LINEAARIAVARUUDET 45 Virrat ja jännitteet kirjoitetaan kompleksimuotoonsa i k = I k e j1000t ja u k = U k e j1000t, jolloin virtalähde on i 5 = s 5 = 10e j1000t. Luvut r k saadaan tutuista impedanssilaeista r 1 = r 4 = R = 10, r 3 = 1 jωc = 10j, r 2 = jωl = 10j. Valitaan virittävän puun T oksiksi e 1 ja e 2. Lineaarisuudesta johtuen yhtälöryhmistä supistuu pois eksponenttitekijäe j1000t ja saadaan ryhmä I j I j I I I U 1 = U U U U 5 0 Huomaa, että pois on jätetty oksissa olevien poikkilähteiden osuus, sillä sellaisia ei ole. Tämä ryhmä on niin pieni, että se on helposti ratkaistavissa esimerkiksi Matlabilla:»H=[ ; 0-10*j ; *j ; ; ; ; ; ; ; ];»s=[ ] ;»UV=inv(H)*s;»[UV angle(uv) abs(uv)] ans = i i i i i i i i i Näin esimerkiksi virtalähteen yli vaikuttava kompleksijännite on u 5 = U 5 e j1000t = 63.25e j(1000t+2.82) ja reaalinen jännite cos(1000t ) V. Kirchhoffin läpilaki voidaan myös kirjoittaa muotoon Ai = 0 n, missäaon G:n täysi insidenssimatriisi. Edelleen voidaan kirjoittaa A T p = u.

50 LUKU 4. GRAAFIEN MATRIISIT JA LINEAARIAVARUUDET 46 Näin ollen u i = u T i = p T Ai = 0. Tämä tulos riippuu G:stä vain sen digraafirakenteen (eli täyden insidenssimatriisin) kautta. Näin saadaan kuuluisa Lause 4.7. (Tellegenin lause) Jos kahdella stationäärisellä lineaarisella verkolla on sama digraafi, vastaavat läpivektorit ovat i 1 sekä i 2 ja vastaavat poikkivektorit ovatu 1 sekä u 2, niin u 1 i 2 = 0 ja u 2 i 1 = 0. Sovellettuna tilanteeseen, jossa Tellegenin lauseessa mainitut kaksi verkkoa ovat samat (= G edellä), saadaan yhtälö u i = 0, ns. verkon energian säilymislaki. Huomautus. Huomattavasti laajemmin asiaa käsittelee esimerkiksi SWAMY & THULASIRA- MAN tai VÁGÓ, ks. myös DOLAN & ALDOUS. 4.5 Matriisit yligf(2):n ja graafien lineaariavaruudet Joukko {0, 1} on ns. kunta (ts. tottelee samoja laskusääntöjä kuin reaaliluvut), jos yhteen- ja kertolasku määritellään seuraavasti: Tällöin siis 1 = 1 ja1 1 = 1. Kyseessä on kuntagf(2). Jos ajatellaan ( suuntaamattoman ) graafin (täyden) insidenssimatriisin, irrotusmatriisin, perusirrotusmatriisin, piirimatriisin sekä peruspiirimatriisin alkioiksi GF(2):n 0 ja 1, pätevät Lause 4.1 ja sen Seuraus, Lause 4.2 ja sen Seuraus, Lause 4.4 sekä Lause 4.5 myös suuntaamattomille graafeille. (Muista: 1 = 1 kunnassa GF(2).) Todistukset ovat samat. Graafin tapauksessa lineaariavaruudet ovat yli kunnan GF(2), digraafin tapauksessa ne ovat reaalisia (eli yli kunnan R). (Di)graafin irrotusmatriisin riviavaruus on (di)graafin irrotusavaruus. Vastaavasti sen piirimatriisin riviavaruus on piiriavaruus. Irrotusavaruuden dimensio on (di)graafin rangi ja piiriavaruuden dimensio on sen nulliteetti. Lisäksi digraafin irrotusavaruus ja piiriavaruus ovat toistensa ortogonaaliset komplementit. (Kaikki tämä seuraa suoraan eo. tuloksista.) Usein ajatellaan yo. avaruuksia aligraafien kautta, ts. samaistetaan vektori vastaavien viivojen (nuolien) generoimaan aligraafiin. Suuntaamattomien graafien tapauksessa vektorien GF(2):n yhteenlaskua vastaa tällöin rengassumma.

51 Luku 5 GRAAFIEN ALGORITMIT 5.1 Algoritmien vaativuusteoriaa Laskennallinen vaativuus eli kompleksisuus liittyy tehtävien laskennalliseen ratkaisemiseen tarvittaviin resursseihin verrattuna tehtävän kokoon. Tehtävän kokoa mitataan syötteen pituudella N, resurssit taas ovat yleensä aika (laskenta-askelten lukumäärä) tai tila (laskennan käyttämä maksimaalinen muistitila sopivasti mitattuna). Usein tehtävät ovat ns. tunnistustehtäviä, joissa ratkaisu on kyllä-vastaus. Hyvä viite klassisen kompleksisuusteorian osalta on HOPCROFT & MOTWANI & ULLMAN. Jotta vaativuus saadaan yhteismitalliseksi, pitää sopia tietty algoritmin matemaattinen malli, esimerkiksi Turingin koneilla laskeminen, ks. kurssi Theoretical Computer Science tai Mathematical Logic Algoritmimalleista on käytettävissä deterministinen versio, missä algoritmilla ei ole valinnanmahdollisuuksia, ja epädeterministinen versio, missä algoritmin seuraava askel saattaa olla valittavissa useista mahdollisista askelista. Jotta epädeterministisen algoritmin voitaisiin sanoa ratkaisevan tehtävän, pitää tehdä seuraavat oletukset: 1. Algoritmi pysähtyy, valitaanpa askelet miten tahansa. 2. Algoritmi voi pysähtyä tilaan, jossa se ei ole ratkaissut tehtävää. 3. Kun algoritmi pysähtyy tilaan, jossa se antaa ratkaisun, niin ratkaisun pitää olla oikea (ratkaisuja voi tällöin olla useitakin). 4. Tunnistustehtävissä tapaus, missä algoritmi ei anna yhtään kyllä-vastausta, tulkitaan eivastaukseksi. 5. Jos tehtävänä on laskea jonkin syötteen funktion arvo, niin epädeterministisen algoritmin on jokaisella syötteellä annettava ratkaisu (funktion arvo). Epädeterministinen algoritmi onkin useimmiten parhaiten ajateltavissa ratkaisun todennusmenetelmäksi, ei sen tuottamismenetelmäksi. Vaativuutta tarkastellaan pääosin asymptoottisena, ts. suurten tehtävien osalta, eikä vakiokertoimella eroavia aika-/tilakompleksisuuksia eroteta toisistaan, lineaarinen kiihdytys ja tilan pakkaus kun ovat helppoja saada aikaan missä tahansa algoritmimallissa. Vaikka algoritmimallin valinnalla on selvä merkitys vaativuuteen, sillä ei ole oleellista merkitystä, ts. se ei muuta vaativuusluokkia, joihin tehtävät vaativuutensa perusteella jaetaan. Usein vaativuus annetaan kertalukuarviomuodossa eli ns. O-notaatiolla. Silloin O(f(N)) tarkoittaa kollektiivisesti sellaista funktiota g(n), että jostain rajasta N N 0 lähtien g(n) Cf(N), missä C on jokin vakio. 47

52 LUKU 5. GRAAFIEN ALGORITMIT 48 Menemättä sen tarkemmin algoritmimalleihin määritellään muutama keskeinen kompleksisuusluokka. Aikakompleksisuusluokka P (deterministisesti polynomiaikaiset tehtävät) muodostuu niistä tehtävistä, joissa N-pituisen probleeman (syötteen) ratkaisemiseen deterministisellä algoritmilla kuluu enintään p(n) askelta, missä p on jokin (tehtävästä riippuva) N:n polynomi. Aikakompleksisuusluokka N P (epädeterministisesti polynomiaikaiset tehtävät) taas muodostuu niistä tehtävistä, joissa N-pituisen probleeman ratkaisemiseen epädeterministisellä algoritmilla kuluu enintään p(n) askelta, missä p on jokin (jälleen tehtävästä riippuva) N:n polynomi. Aikakompleksisuusluokka co N P (komplementäärisesti epädeterministisesti polynomiaikaiset tehtävät) taas muodostuu niistä tunnistustehtävistä, joiden komplementti on N P:ssä. (Probleeman komplementti saadaan, kun kyllä- ja ei-vastaukset vaihdetaan keskenään.) Ilmeisesti P N P ja (tunnistustehtävien osalta) P co N P. Onko kumpikaan näistä sisältymisistä aito, on avoin probleema (ja hyvin kuuluisa sellainen!). Yleisesti uskotaan, ettei kumpikaan ole yhtäläisyys. Myöskään ei tiedetä, onko (tunnistustehtävien osalta) kumpikaan yhtälöistä NP = co NP tai P = NP co NP voimassa, yleisesti kuitenkin uskotaan, ettei ole. Tilakompleksisuusluokka PSPACE (deterministisesti polynomitilaiset tehtävät) muodostuu niistä tehtävistä, joissa N-pituisen probleeman (syötteen) ratkaisemiseen deterministisellä algoritmilla tarvitaan enintään p(n) muistiyksikköä, missä p on jokin (tehtävästä riippuva) N:n polynomi. Tilakompleksisuusluokka N PSPACE (epädeterministisesti polynomitilaiset tehtävät) taas muodostuu niistä tehtävistä, joissa N-pituisen probleeman ratkaisemiseen epädeterministisellä algoritmilla kuluu enintään p(n) muistiyksikköä, missä p on jokin (jälleen tehtävästä riippuva)n:n polynomi. Tiedetään, että NP PSPACE = NPSPACE, mutta ei sitä onko sisältyminen aito. Algoritmissa saattaa olla mukana ideaalisen satunnaisluvun generointi, jolloin algoritmi on probabilistinen eli stokastinen. Vastaava polynomiaikainen kompleksisuusluokka on BPP (satunnaisesti polynomiaikaiset tehtävät). Stokastinen algoritmi saattaa satunnaisesti epäonnistua, ts. se ei tuota lainkaan tulosta ja luopuu tehtävän ratkaisemisesta. Tällaisia algoritmeja kutsutaan Las Vegas -algoritmeiksi. Stokastinen algoritmi saattaa toisaalta toisinaan (ideaalisesti pienellä todennäköisyydellä) tulostaa väärän ratkaisun, tällaisia algoritmeja kutsutaan puolestaan Monte Carlo -algoritmeiksi. Vielä stokastinen algoritmi saattaa vain harvoin tuottaa tarkan ratkaisun, mutta kuitenkin suurella todennäköisyydellä lähellä tarkkaa olevan ratkaisun. Tällaiset algoritmit ovat ns. approksimaatioalgoritmeja. Algoritmin tehtävä saattaa olla yhden tehtävän probleeman konvertoiminen toisen tehtävän probleemaksi, tällöin puhutaan reduktiosta. Jos tehtävä A saadaan redusoiduksi toiseksi tehtäväksi B käyttäen (deterministisessä) polynomiajassa toimivaa reduktiota, saadaan B:n polynomiaikaisesta algoritmista A:lle polynomiaikainen algoritmi. Tehtävän sanotaan olevan N P-kova, jos jokainen N P:n tehtävä voidaan redusoida siihen polynomiaikaisella algoritmilla. NP-kova tehtävä on NP-täydellinen, jos se on itsenp:ssä. NP-täydellinen tehtävä on siinä mielessä pahin mahdollinen, että jos se voitaisiin näyttää deterministisesti polynomiaikaiseksi, niin kaikki N P:n tehtävät olisivat P:ssä ja P = N P. N P-täydellisiä tehtäviä tunnetaan nykyään toistatuhatta (laskentatavasta riippuen enemmänkin). Vanha tehtävien jako laskenta-ajan puolesta käytännössä mahdollisiin eli selviäviin (tractable) ja liian aikaaviepiin eli selviämättömiin (intractable) on se, että P:n tehtävät ovat selviäviä ja muut selviämättömiä. Koska yleisesti uskotaan, että P N P, olisivat N P-täydelliset tehtävät näin selviämättömiä.

53 LUKU 5. GRAAFIEN ALGORITMIT 49 Jatkossa tarkasteltavat graafialgoritmit ovat joko P:ssä tai sitten vaativampia tehtäviä approksimoivia algoritmeja. Syötteen (graafin) koko voi olla esimerkiksi sen insidenssimatriisin esittämiseen tarvittavien merkkien lukumäärä tai sitten vain pisteiden lukumäärä n tai viivojen lukumäärämtain+m, tms. 5.2 Saavutettavuus: Warshallin algoritmi Tässä pykälässä tarkastellaan vain suunnattuja graafeja. Tulokset pätevät kuitenkin myös suuntaamattomille graafeille, kun viiva aina tulkitaan vastakkaissuuntaisten nuolten pariksi. Tehtävä. Annetaan digraafi G = (V, E) vieruspistematriisin avulla. Laskettava G:n saavutettavuusmatriisir = (r ij ), missä { 1, josg:ssä on suunnattuv i v j -polku r ij = 0 muuten. (Tässä tietysti V = {v 1,...,v n }.) Huomaa erityisesti, että jos r ii = 1, niin v i on suunnatussa piirissä. Warshallin algoritmi konstruoin n-matriisien jonone 1,...,E n, missä 1. E i :n alkiot ovat nollia ja ykkösiä. 2. E i E i+1 (i = 0,...,n 1) (vertailu alkioittain). 3. E 0 saadaan vieruspistematriisistad vaihtamalla sen positiiviset alkiot ykkösiksi. 4. E n = R. Algoritmi pseudokoodina esitettynä on seuraava: procedure Warshall begin E := E 0 fori := 1 to n do forj := 1 to n do if(e) ji = 1 then fork := 1 to n do (E) jk := max((e) jk,(e) ik ) fi od od end Tässä yhteydessä maksimointioperaatiota kutsutaan usein Boolen summaksi: max Näytetään, että Warshallin algoritmi tuottaa halutun tuloksen. Merkitään E i :llä E:n arvoa, kun arvoa i vastaava osa on saatu valmiiksi.

54 LUKU 5. GRAAFIEN ALGORITMIT 50 Väite. (i) Jos pisteestä v s on pisteeseen v t sellainen suunnattu polku, että siinä v s :n ja v t :n lisäksi esiintyy vain pisteitäv 1,...,v i, niin(e i ) st = 1. (ii) Jos piste v s on suunnatussa piirissä, jonka muut pisteet ovat joukossa {v 1,...,v i }, niin (E i ) ss = 1. Todistus. Käytetään induktiotai:n suhteen. Induktion lähtökohta: i = 1. Nyt (E 1 ) st = 1, jos joko (E 0 ) st = 1 tai sitten (E 0 ) s1 = 1 ja (E 0 ) 1t = 1. Tilanne on jokin allaolevista: v t s t: v s v t v s v 1 s = t: v s v s v 1 Induktio-oletus: Väite on oikea, kuni < l. (l 2) Induktioväite: Väite on oikea, kuni = l. Induktioväitteen todistus: Käsitellään väitteen molemmat kohdat yhdessä. Kohtaa (ii) koskeva osa annetaan hakasuluissa. Saadaan kaksi tapausta: v l on mainitulla suunnatulla polulla [vast. mainitussa suunnatussa piirissä], muttal s,t [vast.l s]. Silloin induktio-oletuksen nojalla (E l 1 ) sl = 1 ja (E l 1 ) lt = 1 [vast. (E l 1 ) sl = 1 ja (E l 1 ) ls = 1], joten(e l ) st = 1 [vast.(e l ) ss = 1]. v l on joko v s tai v t [vast. v l on v s ] tai sitten v l ei ole ollenkaan koko suunnatulla polulla [vast. suunnatussa piirissä]. Silloin induktio-oletuksen nojalla joten(e l ) st = 1 [vast.(e l ) ss = 1]. (E l 1 ) st = 1 [vast. (E l 1 ) ss = 1], Warshallin algoritmin suorituksessa operaatiomax suoritetaan enintäänn 3 kertaa. 5.3 Etsintä: Syvyysetsintä ja leveysetsintä Tehtävä. Käytävä läpi annettu (di)graafi tietynlaisten pisteiden tai viivojen (nuolien) tms. löytämiseksi (etsintä). Jatkossa oletetaan (di)graafin olevan yhtenäisen ja silmukattoman. Tarvittaessa voidaan epäyhtenäisen (di)graafin komponentit käydä läpi erikseen ja poistaa tai jättää huomiotta silmukat. Syvyysetsintä (depth first-etsintä, DF-etsintä) on yleiskäyttöinen etsintämenetelmä. Menettely on hieman erilainen graafeille ja digraafeille, joten katsotaan nämä erikseen.

55 LUKU 5. GRAAFIEN ALGORITMIT 51 Suuntaamaton graafi Valitaan graafista G lähtöpiste r (juuri), josta etsintä aloitetaan. Sitten valitaan jokin viiva e = (r, v) ja mennään pisteeseen v. Samalla viiva e suunnataan r:stä v:hen. Viivan e sanotaan olevan nyt tarkastettu ja sitä sanotaan puuviivaksi. Pistettä r sanotaan pisteen v isäksi, merkitään r = ISÄ(v). Etsintää jatketaan. Yleisesti, kun ollaan menossa pisteessäx, on kaksi tapausta: (1) Jos kaikki viivat, joiden päätepiste x on, on jo tarkastettu, palataan x:n isään ISÄ(x). Pisteen x sanotaan tällöin olevan täysin käsitelty. (2) Jos joitain viivoja, joiden päätepiste x on, ei ole vielä tarkastettu, niin valitaan jokin niistä, sanotaan e = (x, y), ja suunnataan se x:stä y:hyn. Viivan e sanotaan nyt olevan tarkastettu. Saadaan kaksi alatapausta: (2.1) Jos y:ssä ei ole aikaisemmin käyty, niin jatketaan etsintääy:stä. Viivae on nyt puuviiva jaisä(y) = x. (2.2) Jos y:ssä on jo käyty, niin viivaaesanotaan paluuviivaksi. Etsintää jatketaanx:stä. Joka kerran kun tullaan uuteen pisteeseen, jossa ei ole aikaisemmin käyty, annetaan sille juokseva numero. Juuren numero on1. Merkitään DFN(x) = pisteen x juokseva numero. Syvyysetsintä päättyy, kun palataan juureen ja on käyty läpi kaikki pisteet (tai kun haluttua tyyppiä oleva piste/viiva tms. on löytynyt). Loppuun asti vietynä syvyysetsintä jakaa viivat puuviivoihin ja paluuviivoihin. Selvästi puuviivat muodostavat G:n virittävän puun, ns. DFS-puun. Jos puuviivojen suunnat otetaan mukaan, saadaan suunnattu DFS-puu. Syvyysetsintä suuntaa kaikki graafin G viivat. Kun nämä suunnat otetaan mukaan, saadaan digraafi, jonka alusgraafi on G ja jonka virittävä suunnattu puu saatu suunnattu DFS-puu on. Esimerkki. Graafin syvyysetsintä vasemmalla ylhäällä olevasta juuresta käsin etenee seuraavasti (paluuviivoja merkitään kahdella poikkiviivalla):

56 LUKU 5. GRAAFIEN ALGORITMIT = 2 9 = = = = 10 5 = = 6 7 Vastaava suunnattu DFS-puu on Seuraavassa K(x) = { 0, jos pisteessäxei ole käyty 1, jos pisteessäxon käyty ja PUU sekä PALUU ovat joukkomuuttujia, joihin kerätään puuviivat sekä paluuviivat suunnattuina. Syvyysetsintä graafeille: 1. Asetetaan PUU, PALUU ja i 1. Jokaiselle G:n pisteelle x asetetaan ISÄ(x) 0 jak(x) Valitaan piste r, jolle K(r) = 0 (tämä ehto tarvitaan vain epäyhtenäisille graafeille, ks. kohta 6.). Asetetaan DFN(r) i, K(r) 1 jau r.

57 LUKU 5. GRAAFIEN ALGORITMIT Jos kaikki viivat, joiden päätepiste on u, on jo tarkastettu, mennään kohtaan 5. Muutoin valitaan viivae = (u,v), jota ei ole tarkastettu. 4. Suunnataan viivaeu:stav:hen ja merkitään se tarkastetuksi. 4.1 Jos K(v) = 0, niin asetetaan i i + 1, DFN(v) i, PUU PUU {e}, K(v) 1, ISÄ(v) u jau v. Mennään kohtaan Jos K(v) = 1, asetetaan PALUU PALUU {e} ja mennään kohtaan JosISÄ(u) 0, niin asetetaan u ISÄ(u) ja mennään kohtaan (Vain epäyhtenäisille graafeille, jotta päästään vaihtamaan komponenttia.) Jos on sellainen pister, ettäk(r) = 0, asetetaan i i+1 ja mennään kohtaan Lopetetaan. Merkitään saatua suunnattua DFS-puuta T :llä ja G:stä saatua suunnattua graafia G:llä. T on silloin G:n virittävä suunnattu puu. Jos pisteestä u on T :ssä suunnattu polku pisteeseen v, sanotaan u:ta v:n esi-isäksi ja v:tä sanotaan u:n jälkeläiseksi. Pisteet u ja v ovat sukulaiset, jos toinen niistä on toisen esi-isä. Erityisesti, jos (u,v) on T :n nuoli, niin u on v:n isä ja v on u:n poika. G:n (mahdollisia) sellaisia viivoja(u, v), missä u ja v eivät ole sukulaiset, sanotaan poikkiviivoiksi. Mutta itse asiassa Väite. Poikkiviivoja ei ole. Todistus. Olkoot u ja v eri pisteitä, jotka eivät ole sukulaiset. Silloin (kvasivahva yhtenäisyys) on sellaiset pisteetu jav, että ISÄ(u ) = ISÄ(v ), u = u tai u onu:n esi-isä ja v = v taiv on v:n esi-isä. Tarkastellaan tapausta, missädfn(u ) < DFN(v ) (toinen mahdollisuus on ilmeisesti symmetrinen). MerkitäänT 1 :llä sität :n suunnattua alipuuta, jonka juuri onu, jat 2 :llat :n suunnattua alipuuta, jonka juuri on v. Ilmeisesti syvyysetsintä käy läpi T 2 :n pisteet vasta sitten, kun u on täysin käsitelty. Toisaalta u on täysin käsitelty vasta sitten, kun kaikki T 1 :n pisteet on täysin käsitelty. Näin ollen viivaa(u,v) ei voi olla. Suunnattu graafi (Silmukattomalle yhtenäiselle) digraafille G syvyysetsintä on samantapainen kuin suuntaamattomille graafille. Etsintä jakaa G:n nuolet neljään eri luokkaan. Jos etsintä etenee tarkastamattomaan nuoleene = (x,y), on luokittelu seuraava: (1) Mikäliy:ssä ei ole käyty, on e puunuoli. (2) Mikäliy:ssä on käyty, saadaan kolme tapausta: (2.1) y on x:n jälkeläinen jo konstruoitujen puunuolten indusoimassa suunnatussa aligraafissa. Silloineon menonuoli jadfn(y) > DFN(x).

58 LUKU 5. GRAAFIEN ALGORITMIT 54 (2.2) x on y:n jälkeläinen jo konstruoitujen puunuolten indusoimassa suunnatussa aligraafissa. Silloineon paluunuoli jadfn(y) < DFN(x). (2.3) x ja y eivät ole sukulaiset jo konstruoitujen puunuolten välityksellä. Silloin e on poikkinuoli ja DFN(y) < DFN(x). (Huom! Ei ole mahdollista, että DFN(y) > DFN(x). Tämä todistetaan aivan samoin kuin eo. Väite.) Puunuolten indusoima suunnattug:n aligraafi on ns. DFS-metsä (suunnattu metsä). Jos nuolelle (x, y) on DFN(y) > DFN(x), niin (x, y) on joko puunuoli tai menonuoli. Etsinnän aikana nämä luonnollisesti erottuvat, sillä (x, y) on puunuoli, jos y:ssä ei ole käyty, muuten menonuoli. Jos taas DFN(y) < DFN(x), niin(x, y) on joko paluunuoli tai poikkinuoli. Etsinnän aikana nämäkin erottuvat, sillä tällöin (x, y) on poikkinuoli, jos y on täysin käsitelty, muuten paluunuoli. Seuraavassa K, ISÄ, PUU ja PALUU ovat kuten edellä. Uusia ovat MENO ja POIKKI (ilmeisin merkityksin) sekä { 1, josxon täysin käsitelty L(x) = 0 muuten. Syvyysetsintä digraafeille: 1. Asetetaan PUU, MENO, PALUU, POIKKI ja i 1. Jokaiselle G:n pisteellexasetetaan ISÄ(x) 0, K(x) 0 jal(x) Valitaan piste r, jolle K(r) = 0 ja asetetaan DFN(r) i, K(r) 1 ja u r. 3. Jos kaikki nuolet, joiden alkupisteuon, on jo tarkastettu, asetetaanl(u) 1 ja mennään kohtaan 5. Muutoin valitaan nuolie = (u,v), jota ei ole tarkastettu. 4. Merkitään nuolietarkastetuksi. 4.1 Jos K(v) = 0, niin asetetaan i i + 1, DFN(v) i, PUU PUU {e}, K(v) 1, ISÄ(v) u jau v. Mennään kohtaan Jos K(v) = 1 ja DFN(v) > DFN(u), niin asetetaan MENO MENO {e} ja mennään kohtaan Jos K(v) = 1 ja DFN(v) < DFN(u) ja L(v) = 0, niin asetetaan PALUU PALUU {e} ja mennään kohtaan Jos K(v) = 1 ja DFN(v) < DFN(u) ja L(v) = 1, niin asetetaan POIKKI POIKKI {e} ja mennään kohtaan JosISÄ(u) 0, niin asetetaan u ISÄ(u) ja mennään kohtaan Jos on sellainen pister, ettäk(r) = 0, asetetaan i i+1 ja mennään kohtaan Lopetetaan. Esimerkki. Alla olevan digraafin syvyysetsintä vasemmalla ylhäällä olevasta juuresta käsin etenee seuraavasti (paluunuolia merkitään yhdellä poikkiviivalla, poikkinuolia kahdella ja menonuolia kolmella poikkiviivalla):

59 LUKU 5. GRAAFIEN ALGORITMIT Vastaava DFS-metsä on

60 LUKU 5. GRAAFIEN ALGORITMIT 56 Lause 5.1. Jos kvasivahvasti yhtenäisen digraafin syvyysetsintä aloitetaan sen juuresta, syntyvä DFS-metsä on suunnattu puu. Erityisesti vahvasti yhtenäisen digraafin DFS-metsä on suunnattu puu, aloitetaanpa etsintä mistä pisteestä tahansa. Todistus. Tehdään vastaoletus: Kvasivahvasti yhtenäisen digraafin G juuresta r aloitetun syvyysetsinnän DFS-metsäT ei ole suunnattu puu. Koska T on joka tapauksessa suunnattu metsä, ei sen se komponentti T 1, jossa on juuri r, sisällä jotain G:n pistettä v. Toisaalta r:stä on suunnattu polku v:hen. Valitaan tältä polulta viimeinen pisteu, joka on T 1 :ssä, ja nuoli e = (u,w). Koska pistew ei silloin olet 1 :ssä, nuoli e ei ole puu-, paluu- eikä menonuoli. Sen on siis oltava poikkinuoli. Koska etsintä aloitettiin juurestar, pitääw:n kuitenkin ollat 1 :ssä ( ). Vahvasti yhtenäinen digraafi on kvasivahvasti yhtenäinen ja sen mikä tahansa piste voidaan valita juureksi. Sukua syvyysetsinnälle on leveysetsintä (breadth first-etsintä, BF-etsintä). Tarkastellaan yhtenäistä graafia G. Leveysetsintä graafille: 1. Aluksi pisteet ovat merkitsemättömiä. Asetetaan i Valitaan (merkitsemätön) lähtöpister (juuri) ja merkitään sei:llä. 3. Etsitään niiden merkitsemättömien pisteiden joukko J, jotka ovat vierekkäisiä jonkin i:llä merkityn pisteen kanssa. 4. JosJ, niin asetetaan i i+1, merkitään J:n pisteeti:llä ja mennään kohtaan (Vain epäyhtenäisille graafeille, jotta päästään vaihtamaan komponenttia.) Jos kaikkia pisteitä ei ole merkitty, asetetaan i 0 ja mennään kohtaan Lopetetaan. Myös leveysetsintä tuottaa yhtenäisen graafin virittävän puun, ns. BFS-puun, kun oksiksi otetaan joukkoa J muodostettaessa tarkastettavat viivat (i:llä merkitty piste, merkitsemätön piste) (ns. puuviivat), yksi kutakin J:n pistettä kohti. Suunnattu BFS-puu saadaan, kun viivat vielä suunnataan merkitystä pisteestä merkitsemättömään. Leveysetsintä yllä esitetyssä muodossa ei kuitenkaan suuntaa kaikkia graafin viivoja. Ilmeisesti pisteen merkki on lyhimmän polun pituus juuresta pisteeseen eli pisteen etäisyys juuresta. Esimerkki. Edellä esimerkissä olleen graafin leveysetsintä vasemmalla ylhäällä olevasta juuresta käsin etenee seuraavasti (puuviivoja merkitään kahdella poikkiviivalla):

61 LUKU 5. GRAAFIEN ALGORITMIT 57 = = = = = = = = = = Vastaava BFS-puu on Suunnattu BFS-puu saataisiin suuntaamalla oksat juuresta poispäin. Suunnatun graafin G leveysetsintä on paljolti samantapainen. Leveysetsintä suunnatulle graafille: 1. Aluksi pisteet ovat merkitsemättömiä. Asetetaan i Valitaan merkitsemätön lähtöpister (juuri) ja merkitään sei:llä. 3. Etsitään niiden nuolten loppupisteiden joukko J, joiden alkupiste on merkitty i:llä ja joiden loppupistettä ei ole merkitty. 4. JosJ, niin asetetaan i i+1, merkitään J:n pisteeti:llä ja mennään kohtaan Jos kaikkia pisteitä ei ole merkitty, asetetaan i 0 ja mennään kohtaan Lopetetaan.

62 LUKU 5. GRAAFIEN ALGORITMIT 58 Digraafin leveysetsintä tuottaa BFS-metsän (suunnattu metsä), kun suunnatuiksi oksiksi otetaan joukkoa J muodostettaessa tarkastettavat nuolet (ns. puunuolet), yksi kutakinj:n pistettä kohti. (i:llä merkitty piste,merkitsemätön piste) Huomautus. Myös leveysetsintä voidaan modifioida siten, että se lajittelee viivoja (nuolia) kuten syvyysetsintä. 5.4 Kevyin polku: Dijkstran algoritmi Tehtävä. Etsittävä kevyin (suunnattu) polku (di)graafin pisteestä u pisteeseen v ( u) tai todettava, ettei tällaista polkua ole, kun (di)graafin viivoille (nuolille) on annettu ei-negatiiviset painot ja polun paino on sen viivojen (nuolten) painojen summa. Ilmeisesti voidaan olettaa, ettei tarkasteltavassa (di)graafissa ole silmukoita eikä rinnakkaisia viivoja (nuolia). Muussa tapauksessa silmukat poistetaan ja rinnakkaisista viivoista (nuolista) valitaan kevyin. Jatkossa tarkastellaan vain digraafeja. Suuntaamaton graafi voidaan korvata digraafilla, kun sen viivojen tilalle otetaan vastakkaissuuntaisten samanpainoisten nuolten parit. Merkitään nuolen (r, s) painoa α(r, s):llä. Dijkstran algoritmi käyttää pisteiden merkintää, joka voi olla pysyvä tai väliaikainen. Merkitään pisteenr merkkiäβ(r):llä ja määritellään { 1, jos merkintä on pysyvä γ(r) = 0, jos merkintä on väliaikainen. Pysyvä merkki β(r) ilmaisee kevyimmän suunnatun u r-polun painon. Väliaikainen merkki β(r) antaa tälle painolle ylärajan (voi olla ). Tarvittaessa otetaan käyttöön myös merkintä { pisteenr edeltäjä (kevyimmällä) suunnatullau r-polulla, jos sellainen on π(r) = 0 muuten, jota käyttäen voidaan konstruoida ko. kevyin suunnattu polku. Dijkstran algoritmi: 1. Asetetaan β(u) 0 ja γ(u) 1. Muille pisteille r asetetaan β(r) ja γ(r) 0. Kaikille pisteille r asetetaan π(r) 0. Vielä asetetaan w u. 2. Jokaiselle nuolelle(w, r), missä γ(r) = 0, asetetaan josβ(r) > β(w)+α(w,r). β(r) β(w)+α(w,r) ja π(r) w, 3. Etsitään pister, jolleγ(r ) = 0, β(r ) < ja Asetetaan β(r ) = min γ(r)=0 {β(r)}. γ(r ) 1 ja w r. Ellei mainitunlaista pistettä r ole, lopetetaan (suunnattuja u v-polkujakaan ei silloin ole).

63 LUKU 5. GRAAFIEN ALGORITMIT Josw v, palataan kohtaan Lopetetaan. Algoritmi nähdään oikeaksi seuraavasti. Merkitään (kussakin suoritusvaiheessa) V 1 = {pysyvästi merkityt pisteet}, V 2 = {väliaikaisesti merkityt pisteet}. ( V 1,V 2 on irrotus, jonka yhdellä puolella ovat jo loppuun käsitellyt pisteet ja toisella puolella keskeneräiset pisteet.) Väite. V 1 :n pisteen r merkki β(r) on kevyimmän suunnatun u r-polun paino ja π(r) on r:n edeltäjä (eräällä) tällaisella polulla. Todistus. Aina askeleen 2. jälkeen pisteiden r väliaikainen merkki on kevyimmän sellaisen suunnatun u r-polun paino, jonka pisteet r:ää lukuunottamatta ovat V 1 :ssä (=, jos tällaisia polkuja ei ole), jaπ(r) onr:n edeltäjä tällaisella polulla (tai = 0), sillä (kaksi tapausta): Ennen askelta 2. on β(r) =. Ainoa uusi V 1 :n piste on nyt w, joten mahdollisen suunnatun u r-polun on kuljettava sen kautta. Asia on selvä, jos tällaisia polkuja ei ole (β(r) pysyy :nä ja π(r) nollana). Oletetaan, että on sellainen (kevyin) suunnattu u r-polku, joka sisältäär:n lisäksi vainv 1 :n pisteitä ja erityisesti sisältää pisteenw. Osapolku u:sta w:hen on tietysti kevyin mahdollinen. Otetaan suunnatun u r-polun r:ää edeltävä piste s ( V 1 ). Jos s = w, on asia selvä. Jos s w, on s kumminkin ollut jonkin aikaisemman vaiheenw:nä, jolloinβ(r) ei voi olla= (kohta 2.) ( ). Ennen askelta 2. on β(r) <. Silloin β(r) on kevyimmän sellaisen suunnatun u r-polun paino, jonka pisteetr:ää lukuunottamatta ovat joukossav 1 {w}. Ainoa uusi V 1 :n piste on nytw, joten mahdollisen kevyemmän suunnatunu r-polun on kuljettava sen kautta. Asia on selvä, jos tällaista kevyempää polkua ei ole (β(r) ja π(r) pysyvät samoina). Oletetaan, että on sellainen kevyempi suunnattu u r-polku, joka sisältää r:n lisäksi vainv 1 :n pisteitä ja erityisesti sisältää pisteenw. Osapolkuu:staw:hen on tietysti kevyin mahdollinen. Otetaan suunnatussa u r-polussa r:ää edeltävä piste s ( V 1 ). Jos s = w, on asia selvä. Jos s w, on s joukossa V 1 {w}. Koska s on ollut jonkin aikaisemman vaiheen w:nä, on kevyin suunnattu u s-polku, joka ei sisällä pistettä w (muussa tapauksessa olisikin silloin kohdassa 3. pitänyt valita r :ksi s:n sijasta jokin sitä edeltävä tällaisen suunnatun u w s-polun piste). Näin saadaan kumminkin kevyempi suunnattu u r-polku, joka sisältäär:n lisäksi vain joukonv 1 {w} pisteitä ( ). Pysyvä merkki on tällöin haluttu paino kohdan 3. minimoinnista johtuen ja π(r) antaa r:ää edeltävän pisteen, kuten väitettiin. Algoritmissa lopultav saa pysyvän merkin tai prosessi pysähtyy kohtaan 3. (jolloin suunnattua u v-polkua ei ole). Kysytty suunnattu polku saadaan v:stä lähtien takaperin etsimällä π-merkintöjä käyttäen jo saadun polun pisteeny edeltäjäπ(y). Korvaamalla kohta 4. kohdalla 4. Mene kohtaan 2. ja jatkamalla kunnes prosessi pysähtyy kohtaan 3., saadaan merkinnät

64 LUKU 5. GRAAFIEN ALGORITMIT 60 ja π(w) = 0, josw = u β(w) = kevyimmän suunnatunu w-polun paino, jos sellainen on muuten { w:n edeltäjä kevyimmällä suunnatullau w-polulla, jos sellainen on jaw u 0 muuten. Huomautus. Dijkstran algoritmi ei toimi, jos mukana on negatiivisia painoja. Tällaista tapausta käsitellään seuraavassa pykälässä. 5.5 Kevyin polku: Floydin algoritmi Tehtävä. Etsittävä kevyin suunnattu polku digraafin pisteestä u pisteeseen v ( u) tai todettava, ettei tällaista polkua ole, kun digraafin nuolille on annettu mielivaltaiset painot ja suunnatun polun paino on sen nuolten painojen summa. Ilmeisesti voidaan olettaa, ettei tarkasteltavassa digraafissa ole silmukoita eikä rinnakkaisia samansuuntaisia nuolia. Muussa tapauksessa silmukat poistetaan ja rinnakkaisista nuolista valitaan kevyin. Floydin algoritmi soveltuu vain digraafeille. Merkitään nuolen (x, y) painoa α(x,y):llä ja muodostetaan painomatriisiw = (w ij ), missä { α(v i,v j ), jos on nuoli(v i.v j ) w ij = muuten. (Tässä tavan mukaanv = {v 1,...,v n } on digraafin pistejoukko.) Floydin algoritmi on samantapainen kuin Warshallin algoritmi. Se toimii vain, jos digraafissa ei ole painoltaan negatiivisia syklejä. Tällöin kevyin suunnattu polku on myös kevyin suunnattu kulku. Floydin algoritmi konstruoi painomatriisien jononw 0,W 1,...,W n, missäw 0 = W ja (W k ) ij = kevyimmän sellaisen suunnatunv i v j -polun paino, jossav i :n jav j :n lisäksi esiintyy vain pisteitäv 1,...,v k ( =, jos ko. polkua ei ole). Väite. Kun W k lasketaanw k 1 :stä kaavalla (W k ) st = min{(w k 1 ) st,(w k 1 ) sk +(W k 1 ) kt }, niin saadaan ym. painomatriisien jono. Jos digraafissa on painoltaan negatiivisia syklejä, jono on oikea aina siihen asti, kun ensimmäisen kerran lävistäjälle tulee negatiivinen alkio. Todistus. Käytetään induktiotak:n suhteen. Induktion lähtökohta: k = 1. Koska digraafissa ei ole silmukoita,w 0 :n lävistäjällä on vain :iä. Kyseinen kevyin suunnattu polku (jos olemassa) on jokin seuraavista:

65 LUKU 5. GRAAFIEN ALGORITMIT 61 v t s t: v s v t v s v 1 s = t: v s v 1 Väite on tällöin ilmeinen. Induktio-oletus: Väite on oikea, kunk < l. (l 2) Induktioväite: Väite on oikea, kunk = l. Induktioväitteen todistus: Jotta tähän k:n arvoon päästäisiin, on W l 1 :n lävistäjällä oltava vain ei-negatiivisia alkioita ( mukaanlukien). Katsotaan tilannetta, missä s t. (Tapaus s = t on aivan analoginen.) Saadaan viisi tapausta: Piste v l on välttämättä kyseisellä kevyimmällä suunnatulla polulla, mutta ei ole kumpikaan pisteistä v s tai v t, ts. l s,t. Tarkastellaan suunnattua osapolkua v s :stä v l :ään. Jos tämä ei olisi kevyin sellainen suunnattu v s v l -polku, että sen muut pisteet kuin v s ja v l ovat joukossa{v 1,...,v l 1 }, niin kevyimmällä tällaisella suunnatullav s v l -polulla on muitakin yhteisiä pisteitä suunnatun osapolun v l :stä v t :hen kanssa kuin v l, sanotaan pistev p. Näin saatu suunnattuv s v p v l v t -kulku olisi kevyempi kuin alunperin tarkasteltu suunnattu v s v t -polku. Poistamalla siitä syklit saataisiin näin ollen edelleen sellainen suunnattuv s v t -polku, joka on kevyempi kuin alunperin tarkasteltu ja sisältääv s :n jav t :n lisäksi vain pisteitäv 1,...,v l ( ). (Muista, että tällaisten syklien painot ovat ei-negatiivisia!) Siis suunnattu osapolku v s :stä v l :ään on kevyin suunnattu v s v l -polku, jossa v s :n ja v l :n lisäksi esiintyy vain pisteitä v 1,...,v l 1. Vastaavasti suunnattu osapolku v l :stä v t :hen on kevyin suunnattu v l v t -polku, jossa v l :n ja v t :n lisäksi esiintyy vain pisteitä v 1,...,v l 1. Induktio-oletuksen nojalla nyt (W l ) st < (W l 1 ) st (huomaa erityisesti tapaus(w l 1 ) st = ) ja (W l ) st = (W l 1 ) sl +(W l 1 ) lt. Kyseinen suunnattu v s v t -polku on olemassa ja v l = v s. Induktio-oletuksen nojalla (W l ) st = (W l 1 ) st ja (W l 1 ) sl +(W l 1 ) lt = (W l 1 ) ll +(W l 1 ) lt (W l 1 ) lt = (W l 1 ) st, sillä(w l 1 ) ll 0 (mahdollisesti= ). Kyseinen suunnattu v s v t -polku on olemassa ja v l = v t. Induktio-oletuksen nojalla (W l ) st = (W l 1 ) st ja (W l 1 ) sl +(W l 1 ) lt = (W l 1 ) sl +(W l 1 ) ll (W l 1 ) sl = (W l 1 ) st, sillä(w l 1 ) ll 0 (mahdollisesti= ).

66 LUKU 5. GRAAFIEN ALGORITMIT 62 Kyseinen suunnattu v s v t -polku on olemassa, mutta v l ei ole tällä suunnatulla polulla. Muodostetaan nyt, mikäli mahdollista, kevyin suunnattuv s v l -polku ja kevyin suunnattu v l v t -polku, joissa päätepisteiden lisäksi esiintyy vain pisteitäv 1,...,v l 1. Yhdistämällä nämä saadaan suunnattu v s v t -kulku. Poistamalla tästä suunnatusta kulusta (mahdolliset) syklit saadaan yhtä kevyt tai kevyempi suunnattu v s v t -polku, jossa päätepisteiden lisäksi esiintyy vain pisteitä v 1,...,v l. (Muista, että tällaisten syklien painot ovat ei-negatiivisia!) Siispä tässä tapauksessa (W l 1 ) sl +(W l 1 ) lt (W l 1 ) st ja väitteessä mainittu laskukaava antaa oikean tuloksen. Jos taas mainitunlaista suunnattua v s v l -polkua tai v l v t -polkua ei ole, on asia ilmeinen. Kyseistä suunnattuav s v t -polkua ei ole. Silloin(W l ) st = ja(w l 1 ) st =. Toisaalta myös ainakin toinen alkioista (W l 1 ) sl ja (W l 1 ) lt on =, sillä muutoin saataisiin vastaavista suunnatuistav s v l - jav l v t -poluista yhdistämällä ja (mahdolliset) syklit poistamalla kumminkin halutunlainen suunnattuv s v t -polku ( ). Floydin algoritmi konstruoi myös toisen matriisijononz 0,...,Z n, mihin talletetaan kevyintä suunnattua polkua muodossa l, missäv l onv i :tä seuraava piste kevyimmällä sellaisella suunnatulla v i v j -polulla, jollav i :n jav j :n lisäksi on vain pisteitäv 1,...,v k, (Z k ) ij = mikäli tällaisia suunnattuja polkuja on 0 muutoin. Ilmeisesti (Z 0 ) ij = { j, jos(w) ij 0 muutoin. Jonon matriisiz k (k 1) saadaan edellisestä matriisistaz k 1 kaavalla { (Z k 1 ) ik, jos(w k 1 ) ik +(W k 1 ) kj < (W k 1 ) ij (Z k ) ij = (Z k 1 ) ij muuten, joten jono voidaan muodostaa samaa tahtia jonon W 0,W 1,...,W n kanssa. Kaiken kaikkiaan Floydin algoritmi on seuraava. Mukaan on myös liitetty lävistäjäalkioiden ei-negatiivisuuden testaus sekä matriisijononz 0,...,Z n muodostus. procedure Floyd begin W := W 0 k := 0 fori := 1 to n do forj := 1 to n do if(w) ij = then (Z) ij := 0 else (Z) ij := j

67 LUKU 5. GRAAFIEN ALGORITMIT 63 fi od od while k < n and Testi(W) do Iteraatio(W, Z, k) od end subprocedure Testi(W) begin fori := 1 to n do if(w) ii < 0 then return FALSE fi od return TRUE end subprocedure Iteraatio(W, Z, k) begin k := k +1 fori := 1 to n do forj := 1 to n do if(w) ik +(W) kj < (W) ij then (W) ij := (W) ik +(W) kj (Z) ij := (Z) ik fi od od end 5.6 Kevyin virittävä puu: Kruskalin algoritmit ja Primin algoritmi Tehtävä. Etsittävä yhtenäisen graafin kevyin virittävä puu, kun graafin viivoille on annettu mielivaltaiset painot ja puun paino on sen oksien painojen summa. Ilmeisesti voidaan olettaa, että tarkasteltava graafi G = (V,E) on ei-triviaali ja yksinkertainen. Muussa tapauksessa silmukat poistetaan ja rinnakkaisista viivoista valitaan kevyin. Merkitään viivan e painoa α(e):llä ja virittävän puun T painoa γ(t):llä. Tavalliseen tapaan merkitään G:n pistelukuan:llä ja viivalukuam:llä sekäv = {v 1,...,v n } jae = {e 1,...,e m }. Kahden G:n virittävän puunt 1 jat 2 etäisyys on n 1 #(T 1 T 2 ) = merk. d(t 1,T 2 ), missä #(T 1 T 2 ) on T 1 :n ja T 2 :n leikkauksen viivojen lukumäärä. Ilmeisesti d(t 1,T 2 ) = 0 tarkalleen silloin, kunt 1 = T 2. Jos d(t 1,T 2 ) = 1, niint 1 jat 2 ovat naapuripuut. G:n virittävä puu T on irrotusminimaalinen, jos jokaiselle oksalle b sen määrittämän perusirrotusjoukon viivojen painot ovat α(b). Vastaavasti virittävä puu T on piiriminimaalinen,

68 LUKU 5. GRAAFIEN ALGORITMIT 64 jost :n jokaiselle siteellec sen määrittämän peruspiirin viivojen painot ovat α(c). VieläG:n virittävä puu T on lokaalisesti minimaalinen, jos γ(t) γ(t ) jokaiselle T :n naapuripuulle T. Apulause. Seuraavat kolme ehtoa ovat ekvivalentit virittävälle puullet : (i) T on irrotusminimaalinen. (ii) T on piiriminimaalinen. (iii) T on lokaalisesti minimaalinen. Todistus. (i) (ii): Oletetaan, ettät on irrotusminimaalinen ja tarkastellaan T :n peruspiiriäc, jonka määrittää T :n side c. Muut C:n viivat kuin c ovat T :n oksia. Kukin tällainen oksa b määrittäät :n perusirrotusjoukon, jossa on mukanac(lause 2.7). Näin ollenα(b) α(c). (ii) (iii): Oletetaan, että T on piiriminimaalinen ja tarkastellaan T :n naapuripuuta T. T :ssa on (tarkalleen yksi) oksa e, joka ei ole T :ssä, ts. e on T :n side. Tarkastellaan e :n määrittämäät :n peruspiiriäc. KaikkiC:n viivat eivät olet :ssa. ValitaanC:stä tällainen viiva e. e on silloin T :n oksa (itse asiassa ainoa T :n oksa, joka ei ole T :ssa). Poistetaan nyt T :stä oksa e ja lisätään siihen sen jälkeen viiva e. Tuloksen täytyy olla T. Piiriminimaalisuudesta johtuenα(e ) α(e), ts. γ(t ) γ(t). (iii) (i): Tarkastellaan lokaalisesti minimaalista virittävää puutat. Otetaan mielivaltainen T :n oksa b, sen määrittämä perusirrotusjoukko I ja mielivaltainen I:n side c b. Silloin b kuuluu c:n määrittämään T :n peruspiiriin (Lause 2.8). Poistamalla T :stä oksa b ja lisäämällä siihen sen jälkeen viivac saadaan näin ollent :n naapuripuut. Lokaalisesta minimaalisuudesta johtuenγ(t) γ(t ), ts.α(c) α(b). Virittävä puu T on minimaalinen, jos sen paino on pienin mahdollinen. Lause 5.2. Seuraavat kolme ehtoa ovat ekvivalentit virittävälle puulle T: (i) T on irrotusminimaalinen. (ii) T on piiriminimaalinen. (iii) T on minimaalinen. Todistus. Apulauseen nojalla (i) ja (ii) ovat ekvivalentit. Minimaalinen virittävä puu on ilmeisesti lokaalisesti minimaalinen. Näin ollen riittää todistaa, että irrotusminimaalinen virittävä puu on myös minimaalinen. Asetetaan vastaoletus: On olemassa irrotusminimaalinen virittävä puut, joka ei ole minimaalinen. Tarkastellaan minimaalista virittävää puutat ja valitaant ja T siten, että etäisyysd(t,t ) on pienin mahdollinen. Apulauseen nojallad(t,t ) > 1. T :ssä on oksa e, joka ei ole T :ssa, ts. se on (T ) :n side. Merkitään e:n määrittämää T :n perusirrotusjoukkoai:llä jae:n määrittämäät :n peruspiiriäc:llä. LeikkauksessaI C on muitakin viivoja kuin e (Lause 2.6). Valitaan tällainen viivae. Silloine on T :n side ja T :n oksa. T :n irrotusminimaalisuudesta johtuenα(e ) α(e).t :n (piiri)minimaalisuudesta johtuen puolestaan α(e ) α(e). Näin ollen α(e ) = α(e). Poistamalla nyt T :stä sen oksa e ja lisäämällä siihen sen jälkeen viivaesaadaan samanpainoinen ja siis myös minimaalinen virittävä puut. Muttad(T,T ) < d(t,t ). Kruskalin algoritmissa graafin G viivat (ja niiden painot) annetaan listana e 1,...,e m. Algoritmi konstruoi piiriminimaalisen G:n virittävän puun käymällä läpi listaa ja ottamalla siitä

69 LUKU 5. GRAAFIEN ALGORITMIT 65 mukaan viivoja virittävän puun oksiksi. Erityisen tehokkaasti tämä sujuu, jos viivat on listattu kasvavan painon mukaiseen järjestykseen. Duaalisessa Kruskalin algoritmissa puolestaan konstruoidaan irrotusminimaalinen G:n virittävä puu käymällä läpi listaa ja ottamalla siitä viivoja virittävän vastapuun siteiksi. Erityisen tehokas versio saadaan jälleen, jos viivat on listattu laskevan painon mukaiseen järjestykseen. Kaiken kaikkiaan saadaan näin neljä eri versiota Kruskalin algoritmeja. (Muista, että viivajoukonaindusoimaa aligraafia merkitään A :lla.) Kruskalin 1. algoritmi Tässä oletetaan, että viivat annetaan kasvavan painon mukaisessa järjestyksessä. 1. Asetetaan k 1 jaa. 2. Jos e k ei muodosta piiriä A:ssa olevien viivojen kanssa, niin asetetaan A A {e k } sekäk k +1 ja mennään kohtaan Jos taase k muodostaa piirina:ssa olevien viivojen kanssa, niin asetetaank k+1 sekä mennään kohtaan Jos(V, A) ei ole puu, mennään kohtaan 2. Muutoin lopetetaan ja tulostetaan virittävä puu T = A. Aina, kun viiva jätetään pois A:sta (kohta 3.), sen päätepisteet ovat yhdistetyt A:ssa jo olevien viivojen välityksellä. Näin ollen G:n pisteet ovat yhdistetyt T :ssä samalla tavoin kuin G:ssäkin. Koska T ilmeisesti (kohta 3.) on myös piiritön, se on G:n virittävä puu. Kussakin vaiheessat :n siteeksi tulevan viivan (kohta 3.) määrittämän peruspiirin oksat ovat sitä listassa edeltäviä viivoja. Näin ollent on piiriminimaalinen ja siis minimaalinen. Huomautus. Kussakin vaiheessa jo saadut oksat ja siteet ovat pysyviä. Viivoja ei välttämättä tarvitse tässä tietää etukäteen, kunhan ne saadaan yksitellen kasvavan painon mukaisessa järjestyksessä. Graafin rangi (eli sen virittävän puun oksien lukumäärä) pitää silloin kuitenkin tietää etukäteen, jotta voidaan lopettaa. Kruskalin 2. algoritmi Tässä viivat annetaan mielivaltaisessa järjestyksessä. 1. Asetetaan k 1 jaa. 2. Jos A {e k } :ssa ei ole piirejä, niin asetetaana A {e k } sekäk k+1 ja mennään kohtaan Jos taas A {e k } :ssa on piiric, niin valitaanc:n painoltaan suurin viivae (mikä tahansa käy, jos on vaihtoehtoja), asetetaan A (A {e k }) {e} sekä k k +1ja mennään kohtaan Josk m, mennään kohtaan 2. Muutoin lopetetaan ja tulostetaan virittävä puut = A. Aina, kun viiva jätetään pois A:sta (kohta 3.), sen päätepisteet ovat yhdistetyt A:ssa jo olevien viivojen välityksellä. Näin ollen G:n pisteet ovat yhdistetyt T :ssä samalla tavoin kuin G:ssäkin. KoskaT ilmeisesti (kohta 3.) on myös piiritön, se ong:n virittävä puu. T :n piiriminimaalisuus (ja minimaalisuus) nähdään seuraavasti. Koko algoritmin suorituksen ajan A on metsä, kun ollaan kohdassa 4. Edelleen todetaan, että jos pisteet u ja w ovat

70 LUKU 5. GRAAFIEN ALGORITMIT 66 yhdistetyt A :ssa jossakin vaiheessa, niin ne ovat sitä myös sen jälkeen. A :ssa oleva u w-polku on yksikäsitteinen, mutta saattaa muuttua toiseksi myöhemmin mentäessä kohdan 3. kautta. Kuitenkin, aina kun tällainen muutos tapahtuu, polun viivojen painojen maksimiarvo ei voi kasvaa. Jokainen T :n sidecon poistettu A:sta kohdan 3. kautta kuljettaessa. Tällöin c:n paino on vähintään yhtä suuri kuin C:n muiden viivojen painot. Mainitun kohdan 3. suorituksen jälkeen (ainoa) yhteys c:n päätepisteiden välillä A :ssa kulkee C:n jäljellä olevien viivojen kautta. Lopullinen yhteys c:n päätepisteiden välillä T :ssä taas kulkee c:n määrittämän peruspiirin viivojen kautta. Näin ollen ko. peruspiirin viivojen painot ovat α(c). Huomautus. Kussakin vaiheessa jo saadut siteet (kohdan 3. viivat e) ovat pysyviä, oksat eivät. Viivoja ei välttämättä tarvitse tietää etukäteen, riittää kun ne saadaan yksitellen. Etukäteen pitää silloin kuitenkin tietää graafin nulliteetti (eli sen virittävän vastapuun siteiden lukumäärä), jotta voitaisiin lopettaa. Algoritmia voidaan käyttää myös minimaalisen virittävän puun päivitykseen, jos graafiin lisätään viivoja tai niiden painoja lasketaan. Kruskalin 3. algoritmi Tässä oletetaan, että viivat annetaan vähenevän painon mukaisessa järjestyksessä. 1. Asetetaan A E jak Jos (V,A {e k }) on yhtenäinen, asetetaan A A {e k } sekä k k +1 ja mennään kohtaan Jos taas (V,A {e k }) on epäyhtenäinen, asetetaan k k +1 ja mennään kohtaan Jos(V, A) ei ole puu, mennään kohtaan 2. Muutoin lopetetaan ja tulostetaan virittävä puu T = (V,A). T on ilmeisesti yhtenäinen, sillä aina kohtaan 4. tultaessa (V, A) on yhtenäinen. Toisaalta T :ssä ei ole piirejä. Jos nimittäin G:n piiri C olisi T :ssä ja c olisi sen viiva, niin c tulee poistetuksia:sta kohdan 2. kautta kuljettaessa siinä vaiheessa, kune k = c ( ). Näin ollent ong:n virittävä puu. Kussakin vaiheessat :n oksaksi tulevan viivan (kohta 3.) määrittämän perusirrotusjoukon siteet ovat sitä listassa edeltäviä viivoja. Näin ollen T on irrotusminimaalinen ja siis minimaalinen. Huomautus. Kussakin vaiheessa jo saadut oksat ja siteet ovat pysyviä. Viivat on tiedettävä etukäteen. Niiden painoja ei sen sijaan tarvitse tietää etukäteen, riittää kun ne saadaan yksitellen laskevassa järjestyksessä. Kruskalin 4. algoritmi Tässä viivat annetaan mielivaltaisessa järjestyksessä. 1. Asetetaan A E jak Jos (V,A {e k }) on yhtenäinen, asetetaan A A {e k } sekä k k +1 ja mennään kohtaan Jos taas (V,A {e k }) on epäyhtenäinen, niin siinä on kaksi komponenttia. Vastaavat pistejoukot muodostavatg:n irrotuksen V 1,V 2. Valitaan V 1,V 2 :sta (viivajoukoksi tulkittuna) painoltaan pienin viiva e (mikä tahansa käy, jos on vaihtoehtoja). Asetetaan A (A {e k }) {e} sekäk k +1 ja mennään kohtaan 4.

71 LUKU 5. GRAAFIEN ALGORITMIT Jos k m, mennään kohtaan 2. Muutoin lopetetaan ja tulostetaan virittävä puu T = (V,A). T on ilmeisesti yhtenäinen, sillä aina kohtaan 4. tultaessa (V, A) on yhtenäinen. (Huomaa erityisesti, että kohdan 3. kautta kuljettaessa yhtenäisyys säilyy.) Toisaalta T :ssä ei ole piirejä. Jos nimittäin G:n piiri C olisi T :ssä ja c olisi sen listassa ensimmäisenä esiintyvä viiva, niin c tulee poistetuksia:sta kohdan 2. kautta kuljettaessa siinä vaiheessa, kun e k = c. (Huomaa, että piiristä ensimmäisenä poistettua viivaa ei voida poistaa kohdan 3. kautta kuljettaessa.) Mikäli c tulee takaisin myöhemmin (kohdan 3. kautta kuljettaessa), se muodostaa yksinään (V, A):n irrotusjoukon, jolloin jokin toinen C:n viivoista on poistettu. Näin jatkaen todetaan, etteivät kaikkic:n viivat voi olla lopuksia:ssa ( ). Näin ollent on G:n virittävä puu. T on myös irrotusminimaalinen ja siis minimaalinen, sillä jokainen sen oksista b tulee mukaan kohdan 3. kautta. b:n määrittämän perusirrotusjoukon siteet ovat joko silloisen tarkasteltavan irrotuksen V 1,V 2 viivoja tai myöhemmin kohdan 3. kautta kuljettaessa tavattavien vastaavien irrotusten viivoja. Mikäli tällaisen irrotuksen viiva poistuu myöhemmin oltaessa kohdassa 3., se korvautuu aina b:tä painavammilla viivoilla, jotka ovat silloisen tarkasteltavan irrotuksen V 1,V 2 viivojen joukossa. Näin ollen b:n määrittämän perusirrotusjoukon viivojen painot ovat α(b). Huomautus. Kussakin vaiheessa jo saadut oksat (kohdan 3. viivate) ovat pysyviä, siteet eivät. Viivat on tiedettävä etukäteen. Niiden painoja ei sen sijaan tarvitse tietää etukäteen, riittää kun ne saadaan yksitellen. Algoritmia voidaan käyttää myös minimaalisen virittävän puun päivitykseen, jos graafin viivoja poistetaan tai niiden painoja nostetaan. Primin algoritmi Primin algoritmissa (tunnetaan myös Jarnikin algoritmina) annetaan graafin G täysi insidenssimatriisi. Jos merkitään Ω(v):llä niiden viivojen joukkoa, joiden päätepiste on v, niin vastaavasti voidaan antaa lista Ω(v 1 ),...,Ω(v n ), ts. pisteiden määräämät irrotukset (viivajoukoiksi tulkittuina). Lisäksi annetaan tietysti viivojen painot. Algoritmi toimii Dijkstran algoritmin tapaan konstruoiden virittävää puuta oksa oksalta. Muuttujina ovat A (saatujen puun oksien joukko), B (saatujen puun pisteiden joukko) sekä I (irrotus, viivajoukoksi tulkittuna, josta puun seuraava oksa otetaan). Primin algoritmi (1. versio): 1. Valitaan lähtöpiste r ja asetetaan A, B {r} sekä I Ω(r). 2. Valitaan I:stä painoltaan kevyin viiva e (mikä tahansa käy, jos on valinnan varaa). Otetaan se e:n päätepiste v, joka ei ole B:ssä. Asetetaan A A {e}, B B {v} ja I I Ω(v) sekä mennään kohtaan 3. (Muista, että merkitsee joukkojen symmetristä erotusta, ks. sivu 11.) 3. Jos B V, mennään kohtaan 2. Muutoin tulostetaan virittävä puu T = (B, A) = A. Koska uusi viivaevalitaan irrotuksesta,t :ssä ei ole piirejä. Toisaalta, koskar:stä on polku jokaiseen toiseen pisteeseen, T :hen tulee kaikki G:n pisteet ja se on yhtenäinen. T on näin ollen virittävä puu. Se on myös minimaalinen, sillä Väite. Koko Primin algoritmin suorituksen ajan(b, A) on jonkin G:n minimaalisen virittävän puun alipuu.

72 LUKU 5. GRAAFIEN ALGORITMIT 68 Todistus. Käytetään induktiota B:n pisteiden lukumäärän l suhteen. Induktion lähtökohta: l = 1. Asia on ilmeinen, sillä(b,a) on triviaali. Induktio-oletus: Tulos on oikea, kun l = k 1. (k 2) Induktioväite: Tulos on oikea, kun l = k. Induktioväitteen todistus: Kohdassa 2. voidaan kirjoittaa A = A {e}, missä e I, ja B = B {v}, missä induktio-oletuksen mukaan(b,a ) on erään kevyimmän virittävän puun T min alipuu. Jos e on T min :ssä, on asia selvä. Muutoin T min + e:ssä on (perus)piiri C ja C:ssä on toinenkin I :n viiva e (Lause 2.6). Silloin α(e ) α(e) ja (T min +e) e on myös kevyin virittävä puu ja (B,A) on sen alipuu. (T min :n piiriminimaalisuudesta johtuen α(e ) α(e).) Usein Primin algoritmissa käytetään apuna yhtä tai useampaa pisteiden merkintää. Seuraavassa käytetään kahta pisteiden merkintää π(v) ja β(v), joilla suoritetaan yo. version kohta 2. tehokkaasti. Merkinnän π arvot ovat painoja (mukaanlukien ) ja β:n arvot ovat viivoja (tai = 0). Muutoin algoritmi toimii kuten ylläolevakin. Primin algoritmi (2. versio): 1. Valitaan lähtöpiste r ja asetetaan π(r) 0. Kaikille muille pisteille v asetetaan π(v). Vielä asetetaan β(v) 0 kaikille pisteille v sekä A ja B. 2. Valitaan jokin pisteu / B, jolle π(u) = min{π(v)}. v/ B Asetetaan B B {u}. Josβ(u) 0, niin asetetaan A A {β(u)}. 3. Käydään läpi järjestyksessä kaikki viivat e = (u,v), missä v / B. Jos α(e) < π(v), asetetaan π(v) α(e) ja β(v) e. 4. Jos B V, mennään kohtaan 2. Muutoin tulostetaan virittävä puu T = (B, A) = A. 5.7 Kevyin Hamiltonin piiri eli kaupparatsuprobleema: Hehkutusalgoritmi. Karp Held-heuristiikka Tehtävä. Etsittävä, mikäli mahdollista, graafista kevyin Hamiltonin piiri, ts. piiri, joka sisältää kaikki graafin pisteet. Graafin viivojen painot on annettu ja (suunnatun) piirin paino on sen viivojen painojen summa. Ilmeisesti voidaan olettaa, että graafi on ei-triviaali, yhtenäinen (muussa tapauksessa ei koko Hamiltonin piiriä ole) ja yksinkertainen. Tarvittaessa poistetaan silmukat ja valitaan rinnakkaisista viivoista kevyin. Tavalliseen tapaan merkitään graafin G:n pistelukua n:llä ja viivalukua m:llä sekä V = {v 1,...,v n } ja E = {e 1,...,e m }. Merkitään viivan e = (v i,v j ) painoa merkinnälläα(e) = α(v i,v j ) ja Hamiltonin piirinh painoaγ(h):llä. Sovitaan vielä, että Hamiltonin piirin ensimmäinen piste onv 1. Tehtävä voidaan myös esittää suunnatulle graafille G, jolloin kyse on kevyimmästä suunnatusta Hamiltonin piiristä (ns. epäsymmetrinen kaupparatsuprobleema).

73 LUKU 5. GRAAFIEN ALGORITMIT 69 Kaupparatsuprobleema 1 on NP-täydellinen tehtävä, ks. esim. MEHLHORN. Itse asiassa jo Hamiltonin piirin olemassaolon selvittäminen on N P-täydellinen. Pienehkönkin kaupparatsuprobleeman tarkka ratkaisu vie siis paljon aikaa ja suuret tehtävät vievät niin paljon aikaa, että niiden ratkaiseminen tarkasti on käytännössä mahdotonta. Näin ollen monet stokastis-approksimatiiviset menetelmät ovat nousseet käytännön menetelmiksi. Tällöin on tyydyttävä tilanteeseen, missä ratkaisua ei silloin tällöin löydy ollenkaan tai se ei ole tarkka. Hehkutusalgoritmi Hehkutusalgoritmeille ( annealing algorithm ) eli termodynaamisille algoritmeille ovat ominaisia seuraavat yhteiset piirteet: (A) Tarkasteltava systeemi on aina jossain ns. tilassa s. Kaikkien tilojen joukko on äärellinen tunnettu joukkos. Kaupparatsuprobleemassa tila on Hamiltonin piiri. (B) Kutakin tilaa s vastaa tietty ns. vaste f(s), joka on voitava laskea suhteellisen nopeasti käytetystä tilan esityksestä. Tavoitteena on etsiä tila, jossa vaste olisi lähellä minimiään/maksimiaan. Kaupparatsuprobleemassa vaste on Hamiltonin piirin paino ja se on tarkoitus minimoida. (C) On menettely A k, jota käyttäen voidaan siirtyä tilasta s tilaan A k (s). k on menettelyn parametri, jonka arvot muodostavat joukon K. K voi muuttua algoritmin suorituksen aikana. Tarkoitus on, että siirrytään tällä tavoin tiettyihin tilaas lähellä oleviin tiloihin, jotka määräytyvät kulloisenkin parametrin k valinnoin. Toistamalla menettelyä sopivin k:n arvoin on voitava siirtyä mistä tahansa tilasta mihin tahansa toiseen tilaan. (Tästä voidaan joissain tapauksissa tinkiä.) (D) Kussakin tilansiirtotilanteessa parametri k on voitava valita nopeasti satunnaisesti joukostak. Erityisesti joukonk itse on oltava helposti laskettavissa. (E) MenettelynA k on annetullak:n arvolla oltava nopeasti suoritettavissa. (F) Tietty lähtötilas 0 on voitava löytää. Kaupparatsuprobleeman yhteydessä lähtötila on jokin Hamiltonin piiri. Itse algoritmi on seuraava: Hehkutusalgoritmi: 1. Valitaan lähtötilas 0 sekä alkulämpötilat 0 ja asetetaan s s 0 sekät T Kun ollaan tilassas, valitaan satunnaisesti parametri k K ja lasketaan s = A k (s). 3. Josf(s ) f(s), asetetaan s s ja mennään kohtaan Jos taasf(s ) > f(s), generoidaan satunnaislukur väliltä[0,1). Mikälir e (f(s) f(s ))/T, asetetaan s s. Huonompi vaste siis hyväksytään mainitulla todennäköisyydellä e (f(s) f(s ))/T. Huomaa, että mitä suurempi lämpötila T on, sitä suuremmalla todennäköisyydellä mennään tällä tavoin ylämäkeen. 1 Nimi ( travelling salesman problem, TSP) tulee tulkinnasta, jossa graafin pisteet ovat kaupunkeja ja viivojen painot kaupunkien väliset matkustusajat ja kaupparatsun on kuljettava minimiajassa läpi kaikkien kaupunkien.

74 LUKU 5. GRAAFIEN ALGORITMIT Jos kaikkiaan on jo tehty kyllin monta iteraatiota, tulostetaan s ja lopetetaan. Ellei näin ole ja käytetyssä lämpötilassa on jo tehty kyllin monta iteraatiota, pienennetään lämpötilaa T jonkin säännön mukaan. Mennään kohtaan 2. jakauma on (normee- Huomautus. Kohdassa 4. esiintyvien todennäköisyyksienp s = e f(s) f(s ) T rausta vaille) ns. maksimientropiajakauma jollain (odotusarvo)ehdolla p s f(s ) = µ, s =A k (s) k K f(s )>f(s) missä µ riippuu lämpötilasta T ja tilasta s. Jakauma on ns. Boltzmannin jakauma ja se on analoginen vastaavan statistisen mekaniikan jakauman kanssa. Ks. kurssi Informaatioteoria. Aluksi odotetaan kunnes tilanvaihtelut ovat asettuneet tiettyyn tasapainotilanteeseen (f(s):n avulla mitaten). Sen jälkeen pienennetään T :n arvoa hiukan ja odotetaan taas tasapainotilaan muodostumista, pienennetään taas T :n arvoa jne. Tätä jatketaan kunnes muutokset f(s):n arvoissa ovat kyllin pieniä tai kunnes aika loppuu. Tilansiirto-operaatioA k sekä naapuritilojen joukotk riippuvat tietysti tehtävästä, samoin tilastruktuuri sekä vastefunktio. Kaupparatsuprobleemaa ajatellen pitää siis vielä antaaa k jak kussakin tilanteessa. Tätä varten otetaan käyttöön vielä yksi parametri j, asetetaan aluksi j 2 ja aina kohtaan 2. tultaessa päivitetäänj asetuksella { j +1, josj < n j 2 muuten. (Toinen tapa olisi valita j aina kohtaan 2. tultaessa satunnaisesti joukosta{2,..., n}.) Edelleen valitaan kulloinkin K = {2,...,n} {j}. A k on seuraava menettely (ns. reversio): Josk > j, vaihdetaan Hamiltonin piirissä s : v 1,v i2,...,v in,v 1 osapolunv ij,...,v ik pisteiden järjestys päinvastaiseksi. Josk < j, vaihdetaan Hamiltonin piirissä s : v 1,v i2,...,v in,v 1 osapolunv ik,...,v ij pisteiden järjestys päinvastaiseksi. Jotta ei tarvitse huolehtia Hamiltonin piirien olemassaolosta, lisätään graafiin siitä puuttuvat viivat hyvin suuripainoisina. (Graafi on siis sen jälkeen täydellinen.) Jollei Hamiltonin piiriä lopultakaan saada aikaan ilman näitä lisättyjä viivoja, ei alkuperäisestä graafista löydy lainkaan Hamiltonin piiriä. AlkulämpötilanT 0 pitäisi olla reippaasti suurempi kuin mikään arvoista f(s ) f(s), mikä takaa, että alkuvaiheessa ( hehkutus ) voidaan periaatteessa siirtyä mihin tahansa tilaan. Sen jälkeen lämpötilaa lasketaan jollakin säännöllä, esimerkiksi 10%:lla/kerta. Hehkutusalgoritmi sopii myös epäsymmetrisen kaupparatsuprobleeman ratkaisuun ilmeisin muutoksin.

75 LUKU 5. GRAAFIEN ALGORITMIT 71 Karp Held-heuristiikka Karp Held-heuristiikassa ei pyritäkään etsimään suoraan Hamiltonin piiriä, vaan sen tapaista aligraafia, ns. virittävää 1-puuta 2. Se ei näin ollen sellaisenaan käy epäsymmetrisen kaupparatsuprobleeman käsittelyyn. Pisteeseen v (ns. viitepiste) liittyvä virittävä 1-puu S v on G:n aligraafi, joka toteuttaa seuraavat ehdot: (a) S v on yhtenäinen ja sisältää kaikkig:n pisteet. (b) S v :ssä on tarkalleen yksi piiric ja pistev onc:ssä. (c) S v :ssä on tarkalleen kaksi viivaa, joiden päätepiste on v. Selvästi Hamiltonin piiri on (mihin tahansa pisteeseen liittyvä) virittävä 1-puu. Virittävän 1-puun S v paino γ(s v ) on sen viivojen painojen summa. S v on minimaalinen, kun sen paino on pienin mahdollinen. Väite. S v on minimaalinen tarkalleen silloin, kun (i) S v v on G v:n minimaalinen virittävä puu ja (ii) ne kaksis v :n viivaa, joiden päätepiste onv, ovat painoiltaan kaksi kevyintä tällaistag:n viivaa. Todistus. Oletetaan, että S v on minimaalinen virittävä 1-puu. Otetaan ne kaksi S v :n viivaa e ja e, joiden päätepiste on v. Tällöin S v v on G v:n virittävä puu, sillä v:n poisto hävittää ainoan piirin, mutta yhtenäisyys säilyy. Jos nyts v v ei oleg v:n minimaalinen virittävä puu, niin on kevyempig v:n virittävä puu T. LisäämälläT :hen pistev sekä viivate ja e saadaan pisteeseenv liittyvä virittävä 1-puu, joka on kevyempi kuins v ( ). Näin ollen (i) on voimassa. Ilmeisesti myös (ii) on voimassa (muutoinhan saataisiin kevyempi virittävä 1-puu vaihtamalla e:n jae :n tilalle kaksi kevyintäg:n viivaa, joiden päätepiste onv). Oletetaan sitten, että (i) ja (ii) ovat voimassa. Jos nyt S v ei ole minimaalinen, on kevyempi pisteeseen v liittyvä minimaalinen virittävä 1-puu S v. Koska myös S v toteuttaa (ii):n, ovat ne kaksi viivaa, joiden päätepiste on v, samat (tai ainakin samanpainoiset) S v :ssä ja S v :ssa. Näin ollens v v on kevyempi kuins v v ( ). Väitteestä seuraa, että mikä tahansa algoritmi minimaalisen virittävän puun etsimiseksi käy pienin muutoksin myös minimaalisen virittävän 1-puun etsimiseksi. Erityisesti eo. Kruskalin ja Primin algoritmit sopivat tähän hyvin. Karp Held-heuristiikassa käytetään myös pisteiden painoja β(v). Näiden avulla saadaan viivojen valepainot α (v i,v j ) = α(v i,v j )+β(v i )+β(v j ). Valepainojen avulla saadaan edelleen virittävän 1-puun S v valepaino (merkitään S v :n viivojen joukkoaa:lla): γ (S v ) = α (v i,v j ) = α(v i,v j )+ (β(v i )+β(v j )) (v i,v j ) A (v i,v j ) A = γ(s v )+ (β(v i )+β(v j )). (v i,v j ) A 2 Ei ole sama kuin aikaisemmin sivulla 22 oleva 1-puu! (v i,v j ) A

76 LUKU 5. GRAAFIEN ALGORITMIT 72 Merkitään nyt pisteenuastettas v :ssäd Sv (u):lla. Silloin (β(v i )+β(v j )) = (v i,v j ) A n β(v i )d Sv (v i ) i=1 ja γ (S v ) = γ(s v )+ n β(v i )d Sv (v i ). Erityisesti, jos kyseessä on Hamiltonin piirih (eräs virittävä 1-puu), niin ja i=1 d H (v 1 ) = = d H (v n ) = 2 γ (H) = γ(h)+2 n β(v i ). i=1 } {{ } Ei riipu H:sta! Hamiltonin piirin minimointi valepainoja käyttäen antaa siis samat minimaaliset piirit kuin oikeitakin painoja käyttäen! Yleisesti minimaalisen virittävän 1-puun etsiminen valepainoja käyttäen johtaa toisaalta eri tulokseen kuin oikeita painoja käyttäen. Jatkossa tarkastellaan vain pisteeseen v 1 liittyviä virittäviä 1-puita ja jätetään pois pisteen ilmoittava alaindeksi. Hamiltonin piirejä ajatellen tämä ei ole mikään rajoitus, vaikkakin saattaa olla hyvä idea vaihdella viitepistettä. Oletetaan nyt, ettäh min on minimaalinen Hamiltonin piiri ja S on valepainoja käyttäen saatu minimaalinen virittävä 1-puu (liittyen siis pisteeseen v 1 ). Silloin γ (H min ) γ (S ). Edelleen ja Siis γ (H min ) = γ(h min )+2 γ (S ) = γ(s )+ γ(h min ) = γ (H min ) 2 = γ(s )+ n β(v i ) i=1 n β(v i )d S (v i ). i=1 n β(v i ) γ (S ) 2 i=1 n β(v i )(d S (v i ) 2), i=1 n β(v i ) josta saadaan alarajaγ(h min ):lle. Karp Held-heuristiikassa ideana on pisteiden painoja muutellen ohjata pisteiden asteet S :ssa arvoon 2. Jos tämä onnistuu, on samalla saatu minimaalinen Hamiltonin piiri. Joka tapauksessa saadaan yo. arviota käyttäen alaraja (mahdollisen) minimaalisen Hamiltonin piirin painolle γ(h). (Huomaa, että d S (v 1 ) on aina = 2, koska S on pisteeseen v 1 liittyvä virittävä 1-puu.) i=1

77 LUKU 5. GRAAFIEN ALGORITMIT 73 Karp Held-heuristiikka: 1. Asetetaan β(v) 0 kaikille pisteille v. 2. Asetetaan α (u,v) α(u,v)+β(u)+β(v) kaikille viivoille(u,v). 3. Etsitään minimaalinen virittävä 1-puu S valepainoja α (u,v) käyttäen. Jos tällaista ei löydy, ei myöskään Hamiltonin piiriä löydy ja voidaan lopettaa. 4. JosS on piiri, niin tulostetaan minimaalinen Hamiltonin piirih = S ja lopetetaan. 5. Jos S ei ole piiri jas :sta laskettu alaraja on kasvanutk iteraatiokierroksen aikana, niin asetetaan β(v) β(v)+d S (v) 2 jokaiselle pisteelle v ja mennään kohtaan 2. (K on etukäteen kiinnitetty iteraatiokierrosten maksimimäärä.) 6. Jos S :sta laskettu alaraja ei ole kasvanut K:n iteraatiokierroksen aikana, lopetetaan ja tulostetaan ko. alaraja. Menettely ei loputtomiin jatkettunakaan aina tuota (minimaalista) Hamiltonin piiriä, vaikka tällainen olisikin olemassa. Käytännössä se kumminkin tuottaa usein joko minimaalisen Hamiltonin piirin tai antaa hyvän alarajan sellaisen painolle. Alarajan saaminen ei tietystikään takaa, että mitään Hamiltonin piirejä graafissa olisikaan! Karp Held-heuristiikassa on monia kohtia, joissa pitää valita useista vaihtoehdoista (viitepiste, käytetty 1-puu). Kaikkia mahdollisuuksia ei voida käydä läpi, joten valinta voidaan tehdä satunnaisesti. Tällöin kyseessä on Las Vegas -tyyppinen stokastinen algoritmi. 5.8 Kaksijakoisen graafin maksimisovitus: Unkarilainen algoritmi Graafin G = (V,E) sovitus on sellainen viivajoukko S E, että mikään S:n viiva ei ole toisen S:n viivan vierusviiva. Sovitus on maksimisovitus, jos siinä on suurin mahdollinen määrä viivoja. Piste, joka on jonkin sovituksen viivan päätepiste, on sovitettu. Tehtävä. Etsi kaksijakoiselle graafille maksimisovitus. SovituksenS vuorotteleva polku on sellainen polku, jonka (1) ensimmäinen piste on sovittamaton ja jonka (2) viivoista joka toinen on sovituksessa ja joka toinen ei. Huomaa, että vuorottelevan polun ensimmäinen viiva ei ole sovituksessa. Jos vuorottelevan polun viimeinen piste on myös sovittamaton, on kyseessä sovituksen S lisäyspolku. Sovitus, jolla ei ole lisäyspolkuja, on ns. maksimaalinen sovitus. Esimerkki. Kaksijakoisen graafin v 1 v 2 v 3 v 4 v 5 w 1 w 2 w 3 G: S: w 4 w 5 w 6 v 1 v 2 v 3 v 4 v 5 w 1 w 2 w 3 w 4 w 5 w 6

78 LUKU 5. GRAAFIEN ALGORITMIT 74 sovituksen S = {(v 1,w 3 ),(v 3,w 2 ),(v 4,w 6 ),(v 5,w 5 )} eräs lisäyspolku on polku, jonka pisteet ovat järjestyksessäv 2,w 2,v 3,w 6,v 4,w 1. v 1 v 2 v 3 v 4 v 5 w 1 w 2 w 3 w 4 w 5 w 6 SovituksenS lisäyspolunpavulla voidaan sovitusta lisätä seuraavasti: 1. poistetaan sovituksesta S sen polulla p olevat viivat ja 2. lisätään sovitukseen ne polunpviivat, jotka eivät olleet sovituksessa. Saatu uusi viivajoukko on ilmeisesti jälleen sovitus. Huomaa, että S:n viivoja on lisäyspolulla yhtä vähemmän kuin muita viivoja. Näin lisäyksessä sovituksen viivojen lukumäärä kasvaa yhdellä. Maksimaalista sovitusta ei tällä tavoin voida enää lisätä. Esimerkki. (Jatkoa) Käyttäen annettua lisäyspolkua sovituksesta S saadaan uusi sovitus S 1 = {(v 1,w 3 ),(v 2,w 2 ),(v 3,w 6 ),(v 4,w 1 ),(v 5,w 5 )}, joka on maksimaalinen. v 1 v 2 v 3 v 4 v 5 w 1 w 2 w 3 w 4 w 5 w 6 Unkarilaisessa algoritmissa etsitään systemaattisesti lisäyspolkuja, kunnes saadaan maksimaalinen sovitus. Sen jälkeen riittääkin todistaa, että maksimaalinen sovitus on maksimisovitus. Jatkossa rajoitutaan kaksijakoisiin graafeihin, joille algoritmi on huomattavasti helpompi. Lisäyspolkuja etsitään konstruoimalla sovituksens vuorotteleva puu. Se ong:n alipuu, jonka (1) eräs pister (puun juuri) on sovittamaton, jonka (2) r:stä lähtevien polkujen viivoista joka toinen on S:ssä ja joka toinen ei ja jossa (3) joko onr:stä lähtevä lisäyspolku tai johon ei voida enää lisätä viivoja. Vuorotteleva puu on lisäyspuu, jos siinä on lisäyspolku, muutoin se on ns. unkarilainen puu. Jokainen lisäyspolku on ilmeisesti itsessään lisäyspuu. Huomaa, että ainoa unkarilaisen puun piste, joka ei ole sovitettu, on sen juuri. Esimerkki. (Jatkoa) Mainitun sovituksen S vuorottelevia puita ovat seuraavat (juuri on ympyröity):

79 LUKU 5. GRAAFIEN ALGORITMIT 75 w 1 v 2 w 2 v 2 w 2 v 3 v 4 w 4 v 3 v 4 w 4 w 6 w 6 Molemmat ovat lisäyspuita. Sen sijaan sovituksens 1 vuorotteleva puu (juurenaw 4 ) on puu v 1 w 1 w 3 v 4 w 4 joka on unkarilainen. Lisäyspuu tai unkarilainen puu ei ole yksikäsitteinen. Riippuen siitä missä järjestyksessä puuta juuresta lähtien konstruoitaessa viivoja otetaan mukaan, voidaan saada lukuisia erilaisia puita, vaikka juuri olisikin sama. Toisaalta pätee Väite. Jos kaksijakoisen graafin G sovituksella on unkarilainen puu, niin sillä ei ole samanjuurista lisäyspuuta. Todistus. Asetetaan vastaoletus: Sovituksella S on unkarilainen puu U sekä samaan juureen r liittyvä lisäyspuut. Lisäyspuusta saadaan lisäyspolku p : r = v 0,e 1,v 1,e 2,...,e k,v k. Valitaan polultap viimeinen piste, sanotaanv i, joka onu:ssa (ainakin r = v 0 onu:ssa). Koska v k ei oleu:ssa, on i < k. Edelleen viivae i+1 ei ole sovituksessa eikäu:ssa (muuten myösv i+1 olisiu:ssa). Toisaalta, koskae i+1 ei oleu:ssa, onv i+1 :n esiinnyttäväu:ssa jonkin muun viivan päätepisteenä ( ), sillä ainoa syy, miksi viivae i+1 ei tule mukaan U:hun sitä konstruoitaessa, on että sen toinen päätepiste v i+1 esiintyy jo konstruoidussa U:n osassa. Huomaa, miten kaksijakoisuus tulee tässä mukaan: Jos G:n kaksijakoisuuden antava irrotus on V 1,V 2, niin sekä U:ssa että p:ssä pisteet ovat vuorotellen V 1 :ssä ja V 2 :ssa. Näin ollen r v i -polun pituus on sekä p:ssä ettäu:ssa parillinen. Vuorottelevan puun konstruointi tietystä juuresta lähtien johtaa joko aina unkarilaiseen puuhun tai aina lisäyspuuhun, mutta ei molempiin. Näin ollen konstruointijärjestyksellä ei ole väliä. (Toisin muuten käy yleisen graafin tapauksessa!) Kaksijakoiselle graafille G = (V, E) unkarilainen algoritmi on seuraavanlainen. Kaksijakoisuuden antava irrotus on V 1,V 2. Unkarilainen algoritmi: 1. Asetetaan S. (Muutakin alkusovitusta voi käyttää.)

80 LUKU 5. GRAAFIEN ALGORITMIT Jos kaikki V 1 :n pisteet tai kaikki V 2 :n pisteet on sovitettu sovituksessas, niin S on maksimisovitus ja lopetetaan. 3. Jos V 1 :ssä on sovittamattomia pisteitä sovituksessas, niin käydään niitä läpi jossain järjestyksessä muodostaen vastaavia vuorottelevia puita (puiden konstruktiotavalla ei ole väliä, kuten todettiin). Jos löytyy lisäyspuu, lisätään sovitusta S puusta löytyvää lisäyspolkua käyttäen, jolloin saadaan uusi sovituss 1. Asetetaan S S 1 ja mennään kohtaan Jos taas kaikki V 1 :n sovittamattomat pisteet juurina saadut vuorottelevat puut ovat unkarilaisia, niins on maksimaalinen sovitus ja lopetetaan. Lause 5.3. Kaksijakoisen graafin maksimaalinen sovitus on maksimisovitus. Todistus. Asetetaan vastaoletus: Kaksijakoisen graafin G = (V, E) maksimaalinen sovitus S ei ole maksimisovitus. Silloin G:n maksimisovituksessa S max on enemmän viivoja kuin S:ssä ja V 1 :ssä on enemmäns max -sovitettuja pisteitä kuins-sovitettuja pisteitä. Valitaan tarkasteltavaksi mielivaltainen pistev V 1, joka on S max -sovitettu mutta ei S-sovitettu. Silloin on polku p : v = v 0,e 1,v 1,e 2,...,e k,v k = w, jonka viivat ovat vuorotellen S max :ssa ja S:ssä: e 1 on S max :ssa, e 2 on S:ssä jne. Valitaan pisin tällainen polku p. Koska p on ilmeisesti vuorotteleva polku sovituksen S suhteen, sen pituus on parillinen, ts. e k on S:n viiva. (Muussa tapauksessahan p olisi S:n lisäyspolku, jollaisia ei maksimaalisuuden takia ole.) Näin ollenw ons-sovitettu, mutta ei S max -sovitettu (sillä polkua p ei voi jatkaa). Näin jokaista sellaista pistettä v V 1, joka on S max -sovitettu mutta ei S-sovitettu, vastaa pistew V 1, joka ons-sovitettu mutta ei S max -sovitettu. Nyt mistään muustas max -sovitetusta mutta ei S-sovitetusta pisteestä kuin pisteestä v lähtevä polku ei voi päättyä w:hen. Tällaisen polun viimeisen viivan on nimittäin oltavae k (ainoas:n viiva, jonka päätepiste onw) ja toiseksi viimeisen pisteen siis v k 1. Edelleen polun toiseksi viimeisen viivan on oltava e k 1 (ainoa S max :n viiva, jonka päätepiste onv k 1 ) ja kolmanneksi viimeisen pisteen siisv k 2. Jne. Mutta silloin sellaisia pisteitä w, jotka ovat S-sovitettuja mutta eivät S max -sovitettuja, on V 1 :ssä ainakin yhtä monta kuin sellaisia pisteitä v, jotka ovat S max -sovitettuja mutta eivät S-sovitettuja ( ). Seuraus. Unkarilainen algoritmi tuottaa kaksijakoisen graafin maksimisovituksen. Sovitus on täydellinen, jos se sovittaa kaikki graafin pisteet. Graafilla, jolla on pariton määrä pisteitä, ei näin ollen voi olla täydellistä sovitusta. Tarkastellaan graafia G = (V, E) ja merkitään ν(v) = {v:n vieruspisteet} sekä pistejoukollea V vieläν(a) = v Aν(v). Merkitään edelleen äärellisen joukon X alkioiden lukumäärää (eli X:n kardinaliteettia) #(X):llä. Näillä merkinnöillä voidaan esittää seuraava kuuluisa karakterisaatio niille kaksijakoisille graafeille, joilla on täydellinen sovitus: Lause 5.4. (Hallin lause, Marriage Theorem ) Kaksijakoisella graafilla G, jonka kaksijakoisuuden antaa irrotus V 1,V 2, on täydellinen sovitus tarkalleen silloin, kun kaikille pistejoukoillea V 1 ja B V 2 pätee#(a) #(ν(a)) ja #(B) #(ν(b)). Todistus. Jos täydellinen sovitus on olemassa, niin ilmeisestikin pitää olla #(A) #(ν(a)) ja #(B) #(ν(b)) kaikille pistejoukoille A V 1 ja B V 2. (Muuten kaikille A:n tai B:n pisteille ei löydy sovituksessa paria.)

81 LUKU 5. GRAAFIEN ALGORITMIT 77 Oletetaan sitten, että kaikille pistejoukoille A V 1 ja B V 2 on #(A) #(ν(a)) ja #(B) #(ν(b)) ja tarkastellaan G:n maksimisovitusta S. Asetetaan vastaoletus: S ei ole täydellinen. Valitaan piste v, joka ei ole sovitettu sovituksessa S. Katsotaan tapaus, missä v V 1 (toinen tapaus v V 2 on tietysti aivan symmetrinen). Ristiriita on selvä, jos v on irtopiste, joten voidaan siirtyä tapaukseen, jossav on jonkin viivan päätepiste.v-juurinen vuorotteleva puu on näin ollen ei-triviaali ja, koska maksimisovitus on myös maksimaalinen, kyseessä on unkarilainen puu. Valitaan jokin tällainen unkarilainen puu U. Merkitään U:ssa esiintyvien V 1 :n (vast. V 2 :n) pisteiden joukkoa A:lla (vast. B:llä). U:n konstruktiosta johtuen B = ν(a). Toisaalta juurta v lukuunottamatta U:ssa esiintyvät A:n ja B:n pisteet on pareittain sovitettu S:n viivoilla, joten #(A) = #(B)+1 > #(B) ( ). 5.9 Siirtoverkon maksimivirtaus: Ford Fulkerson-algoritmi Siirtoverkko on sellainen nuolipainotettu suunnattu graafi G = (V,E), että (1) G:ssä ei ole silmukoita ja se on yhtenäinen, (2) G:ssä on vain yksi lähdes, (3) G:ssä on vain yksi nielutja (4) kunkin nuolen e paino c(e), ns. nuolen e kapasiteetti, on ei-negatiivinen reaaliluku, ts. nuolipainotus on c : E R 0. (Vrt. pykälän 4.4 stationääriset lineaariset verkot.) Itse asiassa voitaisiin myös olettaa G:ssä olevan kaikki mahdolliset nuolet silmukoita lukuunottamatta, mahdollisesti useammankertaisina. Jollei näin alunperin ole, niin lisätään puuttuvat nuolet varustettuna kapasiteetilla 0. Luonnollisesti voidaan vielä olettaa, ettägon ei-triviaali. Siirtoverkon virtaus on sellainen nuolipainotusf : E R 0, että (i) jokaiselle nuolelle e pätee ns. kapasiteettiehto f(e) c(e) ja (ii) jokaiselle pisteellev s,t pätee ns. säilymisehto (eli Kirchhoffin virtauslaki, vrt. pykälä 4.4) f(e) = f(e). e:n alkupiste on v e:n loppupiste on v f(e) on ns. nuolen e virta. Nuolen (u,v) virtaa merkitään myös f(u,v):llä. Virtauksen f arvo on f = f(e). e:n alkupiste on s Virtauksenf sanotaan olevan maksimivirtaus, jos se on arvoltaan suurin, ts. f f kaikille mahdollisille virtauksille f. SiirtoverkonGns.s t-irrotus on sellainen (suunnattu) irrotusi = V 1,V 2, ettäsonv 1 :ssä jaton V 2 :ssa. Tällaisen irrotuksen kapasiteetti on c(i) = c(u,v) u V 1 v V 2

82 LUKU 5. GRAAFIEN ALGORITMIT 78 (Huomaa miten irrotuksen suunnan vastaiset nuolet eivät vaikuta kapasiteettiin.) Irrotuksen V 1,V 2 kapasiteettia merkitään myös c(v 1,V 2 ):lla. Edelleen määritellään irrotuksen I = V 1, V 2 vuo f + (I) = u V 1 ja vastavuo v V 2 f(u,v) f (I) = f(u,v). u V 2 v V 1 Virtauksen arvo saadaan nyt minkä tahansas t-irrotuksen voiden avulla: Lause 5.5. Jos f on siirtoverkon virtaus jai sen s t-irrotus, niin Todistus. Ilmeisesti f = f + (I) f (I). f(e) f(e) = e:n alkupiste on v e:n loppupiste on v { f, josv = s 0, jos v s,t. Merkitään I = V 1,V 2. Käymällä läpi kaikki V 1 :n pisteet v ja laskemalla puolittain yhteen saadut yhtälöt saadaan f(e) f(e) = f. v V 1 v V 1 e:n alkupiste on v e:n loppupiste on v Kullekin nuolellee, jonka molemmat päätepisteet ovatv 1 :ssä, esiintyvätf(e) ja f(e) vasemmalla puolella kumpikin tarkalleen kerran ja supistuvat näin pois. Siispä f(u,v) f(u,v) = f. u V 1 u V 2 v V 2 v V 1 Seuraus. Jos f on siirtoverkon virtaus ja I sen s t-irrotus, niin f c(i). Todistus. f = f + (I) f (I) f + (I) c(i). Siirtoverkon nuolen e sanotaan olevan kyllästetty, jos f(e) = c(e), muuten ei-kyllästetty. Nyt voidaan todeta, että f = c(v 1,V 2 ) tarkalleen siinä tapauksessa, että (i) nuoli(u,v) on kyllästetty aina kun u V 1 jav V 2, ja (ii) f(u,v) = 0 aina kun u V 2 jav V 1. Siirtoverkon s t-irrotusta I sanotaan minimi-irrotukseksi, jos kaikille muille s t-irrotuksillei onc(i ) c(i). Seuraus. Josf on siirtoverkon virtaus jai sens t-irrotus ja f = c(i), niinf on maksimivirtaus jai on minimi-irrotus. Todistus. Jos f on maksimivirtaus ja I minimi-irrotus, niin edellisen Seurauksen nojalla f c(i ). Niinpä tällöin f f c(i ) c(i) jaf on maksimivirtaus jai minimi-irrotus.

83 LUKU 5. GRAAFIEN ALGORITMIT 79 Itse asiassa maksimivirtauksen arvo on minimi-irrotuksen kapasiteetti. Tämän näyttämiseksi tarkastellaan yleisesti lähteestäspisteeseen v kulkevia polkuja (ei välttämättä suunnattuja!) s = v 0,e 1,v 1,e 2,...,e k,v k = v (polkup). Jos e i = (v i 1,v i ), niin nuoli e i on etenevä, jos taas e i = (v i,v i 1 ), niin nuoli e i on takeneva. Polunpnuolie i painotetaan nyt painolla { c(e i ) f(e i ), jose i on etenevä nuoli ǫ(e i ) = f(e i ), jose i on takeneva nuoli ja itse polkuppainolla ǫ(p) = k min i=1 {ǫ(e i)}. Polkua p sanotaan ei-kyllästetyksi, jos ǫ(p) > 0, ts. p:n etenevät nuolet ovat ei-kyllästettyjä ja f(e i ) > 0 p:n takeneville nuolillee i. Erityisestis t-polut voivat olla ei-kyllästettyjä, jolloin niitä sanotaan lisäyspoluiksi 3. Kaikki nämä käsitteet liittyvät tietysti aina tiettyyn virtaukseen f. Lähtien s t-polusta p (ja virtauksesta f) voidaan määritellä uusi virtaus f(e)+ǫ(p), joseon p:n etenevä nuoli f = f(e) ǫ(p), joseonp:n takeneva nuoli f(e) muuten. f on todellakin virtaus. Muutokset virtaukseen f nähden tapahtuvat nimittäin vain polunppisteissä ja nuolissa. Kapasiteettiehdon toteutuminen p:n nuolille seuraa suoraan ǫ(p):n ja f(e):n määritelmistä. Säilymisehdon toteutuminen p:n pisteille v i on myös suoraan tarkistettavissa, erilaisia tilanteita on neljä: e e i i v i e v i i+1 e i+1 e i e i v i e v i i+1 e i+1 Ilmeisesti (ajattele lähdettäs) f = f +ǫ(p), joten virtaus f ei ole maksimivirtaus, mikäli sillä on lisäyspolkuja. Mutta myös käänteinen tulos pätee, joten 3 Ei pidä sekoittaa edellisen pykälän lisäyspolkuihin!

84 LUKU 5. GRAAFIEN ALGORITMIT 80 Lause 5.6. Virtaus on maksimivirtaus tarkalleen siinä tapauksessa, että sillä ei ole lisäyspolkuja. Todistus. Kuten todettiin, maksimivirtauksella ei voi olla lisäyspolkuja. Oletetaan sitten, että virtauksella f ei ole lisäyspolkuja. Merkitään V 1 :llä niiden pisteiden joukkoa, joihin päästään lähteestä s pitkin ei-kyllästettyjä polkuja. Silloin triviaalisti s V 1 ja t / V 1 (koska lisäyspolkuja ei ole). Näin ollen irrotus I = V 1,V 2 on s t-irrotus. Osoitetaan, että f = c(i), josta edellisen Seurauksen nojalla seuraa, ettäf on maksimivirtaus. Otetaan tarkasteltavaksi nuoli(u,v), missäu V 1 jav V 2. Silloin on olemassa ei-kyllästetty s u-polku p. Nuoli (u, v) on kyllästetty, sillä muutoin olisi ei-kyllästetty s v-polku. Samalla tavoin päätellään, että sellaiselle nuolelle(u,v), missäu V 2 ja v V 1, on f(u,v) = 0. Niinpä vuof + (I) onc(i) ja vastavuof (I) on nolla. Lauseen 5.5 nojalla f = c(i). Samalla on tullut todistetuksi kuuluisa Lause 5.7. (Max-Flow Min-Cut -lause) Siirtoverkossa maksimivirtauksen arvo on sama kuin minimi-irrotuksen kapasiteetti. Jos nuolien kapasiteetit ovat rationaalilukuja, niin maksimivirtaus voidaan etsiä käyttäen Lausetta 5.6. Algoritmi pyrkii etsimään virtaukselle f lisäyspolkua. Ellei sellaista löydy, on kyseessä maksimivirtaus. Jos lisäyspolku löytyy, muodostetaan sitä käyttäen suurempi virtaus f. Algoritmissa käytetään apuna pisteiden merkintääα. Merkintä on muotoa α(v) = (u, suunta, ), missä u on siirtoverkon piste (tai, jos pistettä ei ole), suunta on etenevä ( ) tai takeneva ( ) (tai, jos suuntaa ei ole) ja on ei-negatiivinen reaaliluku (tai ). Tarkoitus on, että kun piste v saa merkinnän, niin on olemassa s v-polku p, jonka etenevä tai takeneva ( suunta ) nuoli (u,v) on, ja = ǫ(p). Pisteen v mahdollinen merkintä voidaan tehdä, kun piste u on merkitty ja joko(u,v) on nuoli tai (v,u) on nuoli. Saadaan kaksi vaihtoehtoa: (1) (etenevä merkintä) Jos e = (u,v) on nuoli ja α(u) = (,, u ) ja c(e) > f(e), niin voidaan merkitäα(v) = (u,, v ), missä v = min{ u,c(e) f(e)}. (2) (takeneva merkintä) Jose = (v,u) on nuoli jaα(u) = (,, u ) jaf(e) > 0, niin voidaan merkitäα(v) = (u,, v ), missä v = min{ u,f(e)}. Algoritmin suorituksessa on kaksi vaihetta. Ensimmäisen vaiheen aikana merkitään pisteitä yo. tavoin ja kukin piste tulee merkityksi enintään kerran. Vaihe loppuu, kun nielu t saa merkin α(t) = (,, t ) tai yhtäkään pistettä ei voida enää merkitä. Jälkimmäisessä tapauksessa lisäyspolkuja ei ole ja esillä oleva virtausf on maksimivirtaus ja algoritmi pysähtyy. Edellisessä tapauksessa taas esillä oleva virtaus f ei ole maksimivirtaus ja on saatu lisäyspolku p, jolle ǫ(p) = t, ja algoritmi siirtyy toiseen vaiheeseen. Toisessa vaiheessa vain konstruoidaan ensimmäisessä vaiheessa saadun lisäyspolun pisteiden merkkejä käyttäen uusi suurempi virtaus f, jonka jälkeen siirrytään ensimmäiseen vaiheeseen käyttäen tätä suurempaa virtausta.

85 LUKU 5. GRAAFIEN ALGORITMIT 81 Ford Fulkerson-algoritmi:: 1. Valitaan lähtövirtaus f 0. Ellei parempaa virtausta ole käytettävissä, voidaan valita nollavirtaus f 0 (e) = 0. Merkitään sitten lähde s asettamalla α(s) (,, ). Asetetaan f f Jos on merkitsemätön piste v, joka voidaan merkitä joko etenevällä merkinnällä (w,, v ) tai takenevalla merkinnällä(w,, v ), niin valitaan yksi sellainen piste ja merkitään se. (Tapoja voi olla useita. Mikä tahansa niistä voidaan valita.) Ellei tällaista pistettä v ole, tulostetaan maksimivirtaus f ja lopetetaan. 3. Jostei ole merkitty, palataan kohtaan 2. Muutoin asetetaan u t. 4. Josα(u) = (w,, u ), asetetaan Jos taas α(u) = (w,, u ), asetetaan f(w,u) f(w,u)+ t ja u w. f(u,w) f(u,w) t ja u w. 5. Jos u = s, poistetaan kaikki merkinnät α lukuunottamatta lähteen s merkintää ja mennään kohtaan 2. Jos taas u s, palataan kohtaan 4. Mikäli alkuvirtauksen virratf 0 (e) ovat rationaalilukuja ja kapasiteetitc(e) ovat myös rationaalilukuja, niin algoritmi pysähtyy ja tuottaa maksimivirtauksen. 4 Tällaisessa tapauksessa voidaan nimittäin yhtä hyvin olettaa, että ko. painot ja kapasiteetit ovat ei-negatiivisia kokonaislukuja, jolloin aina siirryttäessä toisesta vaiheesta uudelleen ensimmäiseen vaiheeseen virtauksen arvo kasvaa positiivisella kokonaisluvulla päätyen lopulta maksimivirtausarvoon. Toisaalta tällaisia askeleita voi silloin olla juuri maksimivirtauksen arvon osoittama määrä, eikä algoritmin suoritusaika riipukaan pelkästään verkon pisteiden määrästä (kuten voisi luulla), vaan kapasiteeteista. Algoritmi voidaan modifioida 5 siten, että sen suoritusaika ei riipu kapasiteeteista ja että se toimii myös irrationaalisille kapasiteeteille. Tällöin pyritään siihen, että kun ensimmäisen vaiheen aikana t merkitään, syntyy lyhin mahdollinen lisäyspolku. Tämä saadaan aikaan valitsemalla kohdassa 2. merkittävä piste v aina siten että α(v):ssä eli (w,, v ):ssä w on saanut merkkinsä mahdollisimman aikaisin. Ford-Fulkerson-algoritmi käy myös maksimisovituksen etsimiseen kaksijakoisille graafeille. Katsotaan asiaa esimerkin valossa. Esimerkki. Edellisessä pykälässä esimerkissä ollut kaksijakoinen graafi G ja sitä vastaava siirtoverkkog : v 1 v 2 v 3 v 4 v 5 w 1 w 2 w 3 G: G : s t w 4 w 5 w 6 4 Jos virroissa f 0 (e) tai nuolien kapasiteeteissa on irrationaalilukuja, ei algoritmi välttämättä pysähdy lainkaan eikä toisaalta äärettömiin jatkettunakaan tuota välttämättä raja-arvona maksimivirtausta! Irrationaalisia virtoja f 0 (e) ei tietenkään tarvitse käyttää eikä toisaalta käytännössä irrationaalisia kapasiteettejakaan juuri esiinny. 5 Ns. Edmonds Karp-modifikaatio (ks. esimerkiksi SWAMY & THULASIRAMAN).

86 LUKU 5. GRAAFIEN ALGORITMIT 82 G :n kaikki nuolet suunnataan vasemmalta oikealle ja painotetaan kapasiteetilla 1. Lähtövirtaus on nollavirtaus (tai sitten jostakin muusta alkusovituksesta saatava virtaus). Koko algoritmin suorituksen ajan nuolien virrat ovat kokonaislukuja0tai1. Sovitukseen otetaan kulloinkin mukaan ne G:n viivat, joita vastaavat G :n nuolet e saavat virran f(e) = 1, ja maksimivirtaus antaa maksimisovituksen. Huomaa, että lisäyspolku voi tässä olla pidempi kuin kolmen pituinen. (Voit myös todeta, että unkarilaisen algoritmin ja Ford Fulkerson-algoritmin lisäyspoluilla on kuitenkin jotain yhteistä!)

87 Luku 6 GRAAFIEN PIIRTÄMINEN 6.1 Tasottuvuus ja tasograafit Edellä graafeja ei ole ajateltu geometrisina objekteina. Käytännössä graafeja kuitenkin piirretään, ts. pisteet ajatellaan geometrisina pisteinä ja viivat jatkuvina käyrien kaarina. Jos graafi G voidaan tällä tavoin piirtää tasolle (tai pallon pinnalle) niin, etteivät viivat leikkaa muualla kuin pisteissä, sanotaan G:n olevan tasottuva eli planaari graafi. Tasottuvan graafin tasolla olevaa geometrista esitystä, missä viivat eivät leikkaa, sanotaan tasograafiksi. Tasograafin kierroksen rajaamaa yhtenäistä (avointa) tason osaa, jossa ei ole graafin pisteitä, kutsutaan tasograafin silmäksi. Myös tasograafin ulkopuolelle jäävän osan ajatellaan olevan silmä, ns. ulkosilmä. (Piirrettäessä pallon pinnalle se on silmä siinä kuin muutkin.) Silmää s vastaavan kierroksen pisteet ovat s:n ns. reunapisteet ja viivat s:n ns. reunaviivat. Kahden silmän sanotaan olevan vierussilmät, jos niillä on yhteinen reunaviiva. Huomaa, että silmä voi olla itsensä vierussilmä. Esimerkki. Tasograafissa v 1 e 1 e 2 e 3 s 1 s 2 e 8 v 6 e 10 e 9 v 7 v 2 e 6 e v 7 3 s 3 v 4 s 4 v 5 e 4 e 5 s 5 v 8 silmät ovats 1,s 2,s 3,s 4 jas 5 (ulkosilmä) ja niiden reunapisteet ja -viivat sekä vierussilmät ovat alla olevassa taulussa. silmä reunapisteet reunaviivat vierussilmät s 1 v 1,v 5,v 2 e 1,e 10,e 2 s 2,s 5 s 2 v 2,v 5,v 4,v 3,v 6,v 7 e 2,e 4,e 7,e 9,e 8,e 6 s 1,s 2,s 3,s 5 s 3 v 4,v 5 e 4,e 5 s 2,s 5 s 4 v 5 e 3 s 5 s 5 v 1,v 5,v 4,v 3,v 2,v 8 e 10,e 3,e 5,e 7,e 6,e 1 s 1,s 2,s 3,s 4 83

88 LUKU 6. GRAAFIEN PIIRTÄMINEN 84 Seuraavassa on eräitä tasograafien perusominaisuuksia. Lause 6.1. (Eulerin monitahokaskaava 1 ) Jos yhtenäisessä tasograafissa G on n pistettä, m viivaa ja f silmää, niin f +n = m+2. Todistus. Käytetään induktiotam:n suhteen. Induktion lähtökohta: m = 0. Tasograafissa G on nyt vain yksi piste ja yksi silmä (ulkosilmä), joten lause on tällöin oikea. Induktio-oletus: Lause on oikea, kunm l. (l 0) Induktioväite: Lause on oikea, kunm = l+1. Induktioväitteen todistus: Valitaan joking:n viivaeja tarkastellaan tasograafiag = G e. Joseon piiriviiva,g on yhtenäinen ja induktio-oletuksesta saadaan tulos f +n = (m 1)+2, missä f on G :n silmien lukumäärä. Mutta piirin sulkeminen e:llä lisää silmien lukua yhdellä, joten tällöinf = f 1 ja lause on tosi. Jos taasg e on epäyhtenäinen, niin siinä on kaksi tasograafikomponenttiag 1 jag 2, joiden pisteiden, viivojen ja silmien luvut ovatn 1,n 2,m 1,m 2,f 1 jaf 2, vastaavasti. Induktio-oletuksen nojalla f 1 +n 1 = m 1 +2 ja f 2 +n 2 = m Lisättäessä viiva e silmien luvuksi tulee f 1 + f 2 1 (G 1 :n ja G 2 :n ulkosilmä on yhteinen tai sitten jompikumpi on piirretty toisen silmään), pisteiden luvuksi n 1 + n 2 ja viivojen luvuksi m 1 +m 2 +1, joten lause pitää taas paikkansa. Esimerkki. (Jatkoa) Poistetaan piste v 8, jotta saadaan yhtenäinen tasograafi. Pisteitä on nyt 7, viivoja10, silmiä5ja 5+7 = Lause 6.2. (Lineaarinen raja) Jos yksinkertaisessa yhtenäisessä tasograafissa G on n 3 pistettä ja m viivaa, niin m 3n 6. Todistus. JosG:n silmät ovats 1,...,s f, niin merkitäänr i :llä silmäns i reunaviivojen lukumäärää (i = 1,...,f). Tapausf = 1 on selvä, silloingon puu jam = n 1 3n 6, joten oletetaan, ettäf 2. KoskaGon yksinkertainen, on jokaisella silmällä nyt vähintään3reunaviivaa ja näin ollen f r i 3f. Jokainen viiva on yhden tai kahden silmän reunaviiva, joten i=1 f r i 2m. i=1 Tulos seuraa nyt Eulerin monitahokaskaavasta. Lause 6.3. (Minimiasteraja) Yksinkertaisessa tasograafissa G on δ(g) 5. Todistus. Tehdään vastaoletus: G on yksinkertainen tasograafi, G ja δ(g) 6. Silloin (Lause 1.1)m 3n, missän ong:n pisteluku jamviivaluku (, Lineaarinen raja). 1 Nimi tulee monitahokkaasta, jossa onnkärkeä,msärmää jaf tahkoa, eikä reikiä.

89 LUKU 6. GRAAFIEN PIIRTÄMINEN 85 Karakterisaatio ei-tasottuville graafeille saadaan käyttäen tiettyjä kiellettyjä aligraafeja. Lause 6.4. (Kuratowskin lause) Graafi on tasottuva tarkalleen silloin, kun mikään sen aligraafeista ei ole toistuvin viivojen kutistuksin muutettavissak 5 :ksi eikäk 3,3 :ksi. Lauseen todistus on varsin hankala (mutta elegantti!), ks. esimerkiksi SWAMY & THULASIRA- MAN. K 5 :ttä eikä K 3,3 :a ei siis erityisesti voi piirtää tasograafeiksi, minkä voi kyllä helposti todeta muutenkin. Tasottuvuuden testaukseen ja tasottuvan graafin piirtämiseen tasograafiksi on nopeita, mutta hankalasti käsiteltäviä algoritmeja, esimerkiksi ns. Hopcroft Tarjan-algoritmi 2. Esitetään seuraavassa klassinen hitaampi, mutta toki polynomiaikainen algoritmi, ns. Demoucron Malgrange Pertuiset-algoritmi 3 (tunnetaan yleensä vain Demoucronin algoritmina). Algoritmin idea on yrittää piirtää graafia tasoon pala palalta. Ellei tämä onnistu, graafi ei ole tasottuva. Jos G on graafi ja R on G:n tasottuvaa aligraafia S vastaava tasograafi, niin G:n R-pala P on jokog S:n viiva, jonka päätepisteet ovats:ssä, tai muiden kuin S:n pisteiden indusoiman aligraafin komponentti, jossa ovat mukana sen mahdollisets:ään liittävät viivat, ns. liitosviivat, päätepisteineen. G:n R-palan P pisteet, jotka ovat liitosviivojen S:n puoleisen pään pisteitä, ovat ns. P :n kontaktipisteitä. G:n tasottuvaa aligraafia S vastaavan tasograafin R sanotaan olevan tasolaajennettavissa G:ksi, jos se voidaan piirtämällä jatkaa koko G:n tasoesitykseksi. Edelleen G:n R-palan P sanotaan olevan piirrettävissä R:n silmään s, jos on sellainen R:n tasolaajennus G:ksi, jossa P on piirretty silmään s. Ilmeisesti tällöin kaikkien P :n kontaktipisteiden pitää olla s:n reunapisteitä, mutta tämä ei tietenkään itsessään takaa vielä, että R olisi tasolaajennettavissa G:ksi. Sellaisen P :n, jonka kontaktipisteet ovat s:n reunapisteitä, sanotaankin olevan vain potentiaalisesti piirrettävissä s:ään. Pala, jolla ei ole kontaktipisteitä lainkaan, on potentiaalisesti piirrettävissä mihin tahansar:n silmään. Demoucronin algoritmi: 1. Testataan, onko G metsä. Jos se on, se on ilmeisesti tasottuva ja voidaan piirtää. (Tähän on varta vasten nopeita algoritmejakin.) Lopetetaan. 2. Ellei G ole metsä, niin siinä on piirejä. Valitaan jokin piiri C, piirretään se tasograafiksi D ja asetetaan R D. (Piiri on ilmeisesti tasottuva ja voidaan helposti piirtää tasograafiksi.) 3. JosRon G:n tasoesitys, tulostetaan se ja lopetetaan. 4. Muodostetaan kaikkien R-palojen joukko P. Kullekin palalle P P merkitään S(P):llä niidenr:n silmien joukkoa, joihin sep potentiaalisesti piirrettävissä. 5. Jos jollekin R-palalle P P joukko S(P) on tyhjä, niin G ei ole tasottuva. Tulostetaan silloin tämä tieto ja lopetetaan. 2 Alkuperäisviite on HOPCROFT, J.E. & TARJAN, R.E.: Efficient Planarity Testing. Journal of the ACM 21 (1974), Alkuperäisviite on DEMOUCRON, G. & MALGRANGE, Y. & PERTUISET, R.: Graphes planaires: reconnaissance et construction des représentations planaires topologiques. Revue Française Recherche Opérationnelle 8 (1964),

90 LUKU 6. GRAAFIEN PIIRTÄMINEN Valitaan jokin R-pala P, aloittaen niistä, jotka ovat potentiaalisesti piirrettävissä vain yhteen silmään. 7. RiippuenP :n kontaktipisteiden luvusta, tasolaajennetaanr:ää: 7.1 Jos P :llä ei ole kontaktipisteitä, kutsutaan Demoucronin algoritmia rekursiivisesti P :lle. JosP ei ole tasottuva, ei sitä oleg:kään. Tulostetaan tämä tieto ja lopetetaan. Muussa tapauksessa tasolaajennetaan R tasograafiksi U piirtämälläp johonkin sen silmään, asetetaan R U ja mennään kohtaan Jos P :llä on yksi kontaktipiste v ja vastaava liitosviiva e, kutsutaan Demoucronin algoritmia rekursiivisesti P :lle. Jos P ei ole tasottuva, ei sitä ole G:kään. Tulostetaan tämä tieto ja lopetetaan. Muussa tapauksessa tasolaajennetaan R tasograafiksi U piirtämällä P johonkin sellaiseen R:n silmään, jonka reunapiste v on, asetetaan R U ja mennään kohtaan 3. (Ko. R:n silmä onp :n tasoesityksen ulkosilmä.) 7.3 Jos P :llä on (ainakin) kaksi kontaktipistettä v 1 ja v 2, on niiden välillä P :ssä jokin polku p. Tasolaajennetaan R tasograafiksi U piirtämällä p johonkin sellaiseen R:n silmään, jonka reunapisteitäv 1 jav 2 ovat ja johonp on potentiaalisesti piirrettävissä, asetetaan R U ja mennään kohtaan 3. Ilmeisesti, jos G ei ole tasottuva, Demoucronin algoritmi tulostaa tämän tiedon. Toisaalta algoritmi ei voi jumiutua piirtämättä tasottuvaa graafia, sillä Väite. JosGon tasottuva graafi, niin koko suorituksen ajanron tasolaajennettavissag:ksi. Todistus. Käytetään induktiota niiden kertojen lukumäärän l suhteen, jotka algoritmi on kulkenut kohdan 7. kautta. Induktion lähtökohta: l = 0. Tällöin joko G on metsä (eikä koko R:ää ole määritelty) tai R on G:n piiri. Ilmeisesti ko. piiri piirrettynä voidaan tasolaajentaag:ksi. Induktio-oletus: Väite on oikea, kunl r. (r 0) Induktioväite: Väite on oikea, kunl = r +1. Induktioväitteen todistus: Kohdassa 7.1 asia on selvä. Jos kohdassa 7.2 P on potentiaalisesti piirrettävissä R:n silmään s, niin se voidaan aina piirtää tähän silmään vaarantamatta jatkoa (ts. mikä tahansa mahdollisista silmistä voidaan valita). Silmää nimittäin voidaan aina vaihtaa missä tahansa vaiheessa peilaamalla pisteenv suhteen (ja skaalaamalla sopivasti): s 3 s 3 s v 2 e P s v 2 e s P 1 s 1 Samoin, jos kohdassa 7.3 P on piirrettävissä johonkin R:n silmään, niin p voidaan aina piirtää tähän silmään vaarantamatta jatkoa. Jos nimittäin P on piirrettävissä sekä silmään s 1 että silmään s 2, niin sen kontaktipisteet ovat näiden silmien yhteisellä reunalla. Missä tahansa vaiheessa voidaan piirretyt P :n osat vaihtaa silmästä s 1 silmään s 2 tai kääntäen yksinkertaisesti peilaamalla tämän yhteisen reunan suhteen (ja skaalaamalla, jotta osat sopivat silmään).

91 LUKU 6. GRAAFIEN PIIRTÄMINEN 87 Huomautus. Graafeja, jotka eivät ole tasottuvia, voidaan piirtää suljetuille pinnoille, joissa on reikiä. Esimerkiksi torus ( rinkiläpinta ) on suljettu pinta, jossa on yksi reikä. Sille voidaan piirtää esimerkiksik 5,K 6 jak 7 sekäk 3,3.K 8 vaatiikin sitten jo kaksireikäisen pinnan. Pienin määrä reikiä, joka suljetussa pinnassa pitää olla, jotta G voitaisiin piirtää sille viivojen leikkaamatta, on ns. G:n laji eli genus. Toisaalta pienin määrä viivojen leikkaamisia, joka pitää sallia, kun G piirretään tasolle, on ns.g:n ylitysluku. Lajin ja ylitysluvun laskut ovatnp-täydellisiä tehtäviä. Graafin väritys on sen pisteiden merkintä, jossa vieruspisteillä ei ole samaa merkkiä. Merkkejä kutsutaan tässä väreiksi. Graafin sanotaan olevan k-väritettävissä, jos se voidaan värittää enintään k värillä. Jos graafi on väritettävissä jollain värimäärällä, siinä ei ilmeisestikään saa olla silmukoita. Selvästi rinnakkaisia viivojakaan ei tarvita, joten väritettävyyttä ajatellen voidaan rajoittua yksinkertaisiin graafeihin. Pienintä sellaista lukua k, että graafi G on k-väritettävissä, sanotaang:n kromaattiseksi luvuksi, merkitään χ(g). K 4 on esimerkki tasottuvasta graafista, jossa ei ole silmukoita ja joka ei ole3-väritettävissä. Toisaalta pätee kuuluisa Lause 6.5. (Nelivärilause) Jokainen yksinkertainen tasottuva graafi on 4-väritettävissä. Todistus. Ainoat tunnetut todistukset vaativat laajan tietokoneajon. Ensimmäisen sellaisen esittivät v Kenneth Appel ja Wolfgang Haken. Todistuksen esittäminenkin vie kokonaisen kirjan: APPEL, K. & HAKEN, W.: Every Planar Map is Four Colorable. American Mathematical Society (1989). Jos tyydytään vähän vähempään eli 5-väritettävyyteen, saadaan helposti todistettava lause ja myös algoritmi. Lause 6.6. (Heawoodin lause eli Viisivärilause) Jokainen yksinkertainen tasottuva graafi G on 5-väritettävissä. Todistus. G voidaan tässä ajatella tasograafiksi. Käytetään induktiota G:n pisteiden lukumäärän n suhteen. Induktion lähtökohta: n = 1. Graafi on nyt1-väritettävissä, koska viivoja ei ole. Induktio-oletus: Lause on oikea, josn l. (l 1) Induktioväite: Lause on oikea, josn = l+1. Induktioväitteen todistus: Minimiasterajan mukaisesti G:ssä on piste v, jonka aste on enintään 5. Induktio-oletuksen mukaisesti taas graafi G v on 5-väritettävissä. Jos tässä värityksessä v:n vieruspisteet on väritetty enintään neljällä värillä, niin ilmeisesti G:kin voidaan 5-värittää. Näin jäljelle jää tapaus, missä v:n vieruspisteet v 1,v 2,v 3,v 4,v 5 on väritetty eri väreillä. Sovitaan, että nämä pisteet on indeksoitu myötäpäivään ja merkitään niiden värejä (järjestyksessä) numeroin 1, 2, 3, 4, 5. Näytetään, että G v:n väritystä voidaan muuntaa siten, että v:n vieruspisteiden väritykseen tarvitaan vain enintään neljä väriä. MerkitäänH i,j :lläg v:n aligraafia, jonka indusoivat väreinijaj väritetyt pisteet. Saadaan kaksi tapausta: v 1 ja v 3 ovat H 1,3 :n eri komponenteissa H 1 ja H 3. Vaihdetaan H 3 :n pisteissä värit 1 ja 3 keskenään koskematta muihin pisteisiin. Tuloksena on G v:n 5-väritys, jossa pisteillä v 1 jav 3 on sama väri 1.v:lle voidaan nyt antaa väri 3. v 1 jav 3 ovat yhdistetyth 1,3 :ssa. SilloinH 1,3 :ssa onv 1 v 3 -polku. Ottamalla mukaan piste v saadaan tästä G:n piiri C. Koska pisteet v 1,v 2,v 3,v 4,v 5 on indeksoitu myötäpäivään, on pisteistäv 2 ja v 4 toinen piirin C sisällä ja toinen sen ulkopuolella. Näin ollen v 2 ja v 4 ovath 2,4 :n eri komponenteissa ja tilanne palautuu edelliseen tapaukseen. Todistuksesta saadaan (rekursiivinen) algoritmi5-väritykselle, ns. Heawoodin algoritmi.

92 LUKU 6. GRAAFIEN PIIRTÄMINEN Davidson Harel-algoritmi Graafin piirtoa varten pitää määritellä piirtoalue (tässä ikkuna eli suorakulmio, jonka sivut ovat koordinaattiakselien suuntaiset), viivojen piirtotapa (viivat piirretään tässä janoina) sekä tiettyjä kauneuskriteerejä, jotka tekevät piirretystä esityksestä miellyttävän ja tasapainoisen sekä mahdollisimman selkeän. Tällaiset kriteerit ovat tietysti tarkoituksesta riippuvia ja jopa makuasioita. Piirrettävän graafin oletetaan olevan yksinkertainen ja se annetaan vaikkapa vieruspistematriisina tai täytenä insidenssimatriisina. Seuraavassa esitetään ns. Davidson Harel-algoritmi 4, joka hehkutusmenetelmää käyttäen pyrkii parantamaan graafin piirrettyä esitystä minimoiden tiettyä rumuusfunktiota, ks. pykälä 5.7. Rumuusfunktio R antaa graafin G piirretystä esityksestä P saadun ns. rumuusarvon R(P). Se on eri tekijöistä saatujen osien summa. MerkitäänG:n pisteiden joukkoa{v 1,...,v n }:llä sekä viivojen joukkoa{e 1,...,e m }:llä. Edelleen merkitään tasoesityksessäp pistettäv i vastaavaa vektoriav i :llä sekä viivaae j vastaavaa janaae j :llä. Merkitään edelleen d ij = v i v j, r i = v i :n etäisyys ikkunan oikeasta reunasta, l i = v i :n etäisyys ikkunan vasemmasta reunasta, u i = v i :n etäisyys ikkunan yläreunasta, b i = v i :n etäisyys ikkunan alareunasta, c j = janane j pituus, { 1, jos janate i jae j leikkaavat eivätkäe i jae j ole vierusviivoja f ij = 0 muuten, { pisteenv i etäisyys janastae j, jos se on > g eikäv i olee j :n päätepiste g ij = g muuten. g on menettelyn parametri, joka määrää miten lähelle viivat saavat tulla pisteitä. Rumuusfunktio on silloin n 1 n 1 n ( 1 R(P) = λ 1 +λ d ) m +λ ij ri 2 li 2 u 2 i b 2 3 c 2 j i m 1 +λ 4 i=1 j=i+1 i=1 j=i+1 i=1 m n f ij +λ 5 i=1 m 1 g 2 j=1 ij missä λ 1,...λ 5 ovat ei-negatiivisia parametrejä, joilla rumuuden eri osatekijöiden painoa säädetään. (Myös negatiivisia arvoja voisi ajatella, mutta vaikutus on varsin outo.) Suureetd ij,...,g ij ovat varsin helposti laskettavissa peruskursseilta tutuilla vektorigeometrian menetelmillä. Erityistä huomiota on kuitenkin kiinnitettävä laskujen nopeuteen. Vektorien sijasta pisteitä voidaan merkitä kompleksiluvuilla. Myös tällöin mainitut suureet ovat helposti laskettavissa kompleksilukujen laskuoperaatioilla 5. Toisinaan sovitetaan pisteet tiettyyn hilaan. Tämä voidaan toteuttaa esimerkiksi pyöristämällä koordinaatit (tai kompleksiluvut) tiettyyn tarkkuuteen ja hylkäämällä sellaiset piirrokset (tilat), joissa rumuusfunktio saa äärettömän arvon (eli pisteet osuvat yhteen tms.). 4 Alkuperäisviite on DAVIDSON, R. & HAREL, D.: Drawing Graphs Nicely Using Simulated Annealing. ACM Transactions on Graphics 15 (1996), Huomaa, että jos z 1 = x 1 + jy 1 ja z 2 = x 2 + jy 2, missä j on imaginääriyksikkö, niin z 1 z 2 :n reaaliosa on pistetulo(x 1,y 1 ) (x 2,y 2 ) ja imaginääriosa determinantti x 1 x 2 y 1 y 2., j=1

93 LUKU 6. GRAAFIEN PIIRTÄMINEN 89 Hehkutuksessa tila on P ja vaste R(P). Alkutila P 0 saadaan vaikkapa valitsemalla satunnaisesti pisteet v 1,...,v n piirtoalueesta ja piirtämällä viivat vastaavasti. Tilasiirtomenettely P A ρ (P) on seuraava: Valitaan satunnaisesti jokin pisteistäv i. Vaihtoehtoisesti voidaan pisteitä käydä läpi syklisesti järjestyksessä. Piirretään v i keskipisteenäρ-säteinen ympyrä. Säde ρ on parametri, joka on aluksi iso ja jota pienennetään myöhemmin systemaattisesti. Valitaan ko. ympyrältä satunnaisesti jokin pisteu. Josuei ole piirtoalueessa, tila ei vaihdu. Muutoin asetetaanv i u ja tehdään piirrettyihin viivoihin vastaava muutos. Muutoin menettely on hyvin samantapainen kuin pykälässä 5.7 oleva kaupparatsuprobleeman hehkutusalgoritmi. Huomautus. Menetelmällä on lukuisia variantteja, piirtoalue voisi olla vaikkapa ympyrä ja viivat samankeskeisiä ympyränkaaria ja säteitä, tai pallonpinta ja viivat isoympyrän kaaria. Piirtoalue voisi olla myös ääretön, esimerkiksi koko tasor 2. Graafeja voidaan myös piirtää kolmiulotteiseen avaruuteen. Jne. Etäisyyksiä laskettaessa voisi taas käyttää muuta kuin tavallista Eukleideen normia (eli 2-normia), esimerkiksi korttelinormia (eli 1-normia eli Manhattanmetriikkaa) tai maksiminormia (eli -normia), pallon pinnalla geodeettista etäisyyttä jne. Tulokset näillä eri varianteilla ovat sangen erilaisia. Huomattakoon, että melkeinpä millä tahansa vähänkään sitovilla kriteereillä yleisen (yksinkertaisen) graafin piirto optimaalisesti kauneimpaan muotoonsa onnp-kova tehtävä.

94 Luku 7 MATROIDIT Monet edellä olevat käsitteet eivät niinkään koske graafeja kuin niiden rakennetta. Tällaisia ovat mm. monet duaalisuudet (esimerkiksi irrotusjoukko vs. piiri), eräiden algoritmien toimintaperiaate (esimerkiksi Kruskalin algoritmit) ja ekstremaalisuudet (monet graafeihin liittyvät rakenteet ovat pienimpiä lajissaan, esimerkiksi irrotusjoukosta ei voi ottaa pois yhtäkään viivaa). Aivan vastaavia rakenteita on löytynyt monilla muilla matematiikan alueilla, ja niitä on alettu kutsua matroideiksi Perinnölliset järjestelmät Perinnöllinen joukkoperhe on sellainen joukkoperhe F, että jos joukko F kuuluu perheeseen, niin samoin kuuluu jokainen F :n osajoukko (ja erityisesti siis tyhjä joukko ). Joukon E perinnöllinen järjestelmä M on puolestaan E:n osajoukkojen ei-tyhjä perinnöllinen perhe I M. Lisäksi mukana on tapa, jolla I M :n joukkojen valinta kaikista E:n osajoukoista annetaan, tällaista kutsutaan aspektiksi. Jatkossa oletetaan, että E on äärellinen joukko. Asiaan liittyy koko joukko jo perinteisiksi tulleita nimityksiä: Perheen I M joukkoja kutsutaanm:n riippumattomiksi joukoiksi. Muiden kuin I M :ssä olevien E:n osajoukkojen perhettä merkitään D M :llä ja sitä kutsutaan M:n riippuvien joukkojen perheeksi. Riippumaton joukko on maksimaalinen, jos se ei sisälly aidosti mihinkään toiseen riippumattomaan joukkoon. Maksimaalista riippumatonta joukkoa kutsutaan kannaksi. Kaikkien kantojen perhettä merkitään B M :llä. Huomaa, että jokainen riippumaton joukko sisältyy johonkin kantaan. Riippuva joukko on minimaalinen, jos se ei sisällä aidosti mitään toista riippuvaa joukkoa. Minimaalista riippuvaa joukkoa kutsutaan piiriksi. 2 (Muista, että tyhjä joukko on aina mukanai M :ssä.) Kaikkien piirien perhettä merkitäänc M :llä. Huomaa, että jokainen riippuva joukko sisältää jonkin piirin. 1 Merkillistä on, että suuri osa näistä löytyi toisistaan riippumatta vuoden 1935 paikkeilla: Hassler Whitney tutki graafien tasottuvuutta, Saunders MacLane geometrisia pistehiloja ja Bartel van der Waerden puolestaan riippumattomuutta vektoriavaruuksissa. 2 Tätä, tai muitakaan esiintyviä käsitteitä, ei pidä suoraan sekoittaa graafien vastaaviin, vaikka tietynlainen yhteys onkin! 90

95 LUKU 7. MATROIDIT 91 Piiri, jossa on vain yksi alkio, on ns. silmukka. Kaksialkioisen piirin alkiot ovat rinnakkaiset. Perinnöllinen järjestelmä on yksinkertainen, jos siinä ei ole silmukoita eikä rinnakkaisia alkioita. E:n osajoukon F aste eli rangi on alkioluvultaan suurimman sen sisältämän riippumattoman joukon koko. (Tässä siis oletetaan, että E on äärellinen joukko.) Huomaa, että ainakin tyhjä joukko on riippumaton joukko, joka sisältyy F :ään. Astetta merkitään ρ M (F):llä, jaρ M :ää sanotaan M:n astefunktioksi eli rangifunktioksi. Jatkossa käytetään samantapaista merkintää kuin graafeille liittyen yhden alkion e lisäämiseen joukkoonf (merkitään F +e) tai poistamiseen joukostaf (merkitään F e). Astefunktiolle saadaan pari helppoa ominaisuutta: Lause 7.1. Jos M on joukon E perinnöllinen järjestelmä, niin (i) ρ M ( ) = 0 ja (ii) E:n osajoukolle F ja alkiolle e on ρ M (F) ρ M (F +e) ρ M (F)+1. Todistus. Kohta (i) on ilmeinen, joten siirrytään kohtaan (ii). KoskaF+e sisältää kaikki ne riippumattomat joukot mitkäf :kin, onρ M (F+e) ρ M (F). Toisaalta mahdolliset F + e:n riippumattomat osajoukot, jotka eivät ole F :n osajoukkoja, muodostuvat jostakinf :n riippumattomasta osajoukosta jae:stä, jotenρ M (F+e) ρ M (F)+1. Perinnöllinen järjestelmä M voidaan luonnollisesti määritellä antamalla sen riippumattomat joukot, ts. antamallai M. Mutta yhtä hyvin se voidaan määritellä antamalla kannat, ts. antamalla B M, sillä riippumattomat joukot ovat tarkalleen kaikki kantoihin sisältyvät joukot. Edelleen M voidaan määritellä antamalla piirit, ts. antamalla C M, sillä riippumattomat joukot ovat nyt tarkalleen ne joukot, jotka eivät sisällä piirejä. Ja vielä M voitaisiin määritellä antamalla astefunktio ρ M, sillä joukko F on riippumaton tarkalleen silloin, kun ρ M (F) = #(F). (Kuten edellä, tässä merkitään joukon F alkiolukua eli kardinaliteettia #(F):llä.) Näin ollen aspekti voi koskea mitä tahansa näistä suureistai M, B M, C M taiρ M. Todettakoon, että perinnöllinen järjestelmä on aivan liian yleinen ollakseen kovin käyttökelpoinen käsite. Näin ollen sopivat aspektit ovat tarpeen, jotta saadaan käyttökelpoisempi käsite (matroidi). Tarkastellaan eräitä sopivia aspekteja ensin edeltä tutun matroidin avulla. 7.2 Graafin piirimatroidi Graafin G = (V, E) piirimatroidi M(G) on sen viivojen joukon E perinnöllinen järjestelmä, jonka piirit ovat graafin piirit tulkittuina viivajoukoiksi. (Tässä luonnollisesti oletetaan, että G ei ole tyhjä.) M(G):n kannat ovat sen maksimaaliset piirittömät viivajoukot, eli siis G:n virittävät metsät, ja M(G):n riippumattomat joukot ovat G:n alimetsät tulkittuina viivajoukoiksi. Merkitään G F = (V,F) viivajoukolle F E. Tavalliseen tapaan merkitään vielä G:n pistelukua n:llä. Huomautus. Perinnöllistä järjestelmää, joka ei suoranaisesti ole minkään graafin piirimatroidi, mutta on rakenteeltaan identtinen jonkin graafin piirimatroidin kanssa, kutsutaan graafiseksi matroidiksi. Katsotaan nyt erilaisia aspekteja piirimatroideille.

96 LUKU 7. MATROIDIT 92 Kannanvaihto-ominaisuus Otetaan nyt tarkasteltavaksi kaksi kantaa (eli siis G:n virittävää metsää) B 1 ja B 2. Jos e on B 1 :n viiva, niin sen poistaminen graafista jakaa G:n jonkin komponentin G kahtia. Nyt tietytb 1 :n viivat muodostavatg :n virittävän puunt 1 ja samoinb 2 :n tietyt viivat muodostavat G :n virittävän puunt 2. Poistettu viivaeon jokot 2 :n oksa tai sittent2 :n side. Jälkimmäisessä tapauksessa se on jonkin T 2 :n oksan f määrittämässä perusirrotusjoukossa (vrt. Lause 2.7). SilloinT 1 e+f on myösg :n virittävä puu jab 1 :ssä voidaan vaihtaaeviivaksif ja edelleen saadaan G:n virittävä metsä eli kanta. Näin ollen saadaan Kannanvaihto-ominaisuus: Jos B 1 ja B 2 ovat eri kantoja ja e B 1 B 2, niin on olemassa sellainen alkiof B 2 B 1, ettäb 1 e+f on kanta. Yleisesti, perinnöllinen järjestelmä, jolla on kannanvaihto-ominaisuus, on matroidi. Ts. kannanvaihto-ominaisuus on sopiva aspekti. Käyttäen kannanvaihto-ominaisuutta voidaan matroidissa aina siirtyä yhdestä kannasta toiseen säilyttäen kardinaliteetti samana. Kaikki kannat ovat näin ollen samankokoiset. Tasaisuus. Absorptiivisuus Jos F E, merkitään n F :llä F :n viivojen indusoiman G:n aligraafin F pisteiden lukumäärää jak F :llä sen komponenttien lukumäärää. Silloin F :n virittävässä metsässä onn F k F viivaa. Merkitään vieläk F :lläg:n aligraafing F komponenttien lukumäärää. Näin ollen ilmeisesti ρ M(G) (F) = n F k F = n K F. Kaikki tällaiset virittävät metsät ovat siis samankokoisia, joten Tasaisuus: Jos F E, niin kaikki maksimaaliset F :n sisältämät riippumattomat joukot ovat samankokoisia. (JoukonH maksimaalisuus tarkoittaa tässä, että ei ole sellaista riippumatonta joukkoaj, että H J F.) Yleisesti, tasainen perinnöllinen järjestelmä on matroidi. Ts. tasaisuus on sopiva aspekti. Alla olevassa kuvassa yhtenäiset viivat ovat F :n viivat ja näistä paksummat virittävän metsän viivat, katkoviivat ovate:n muut viivat. e f JoseonG:n viiva jaρ M(G) (F +e) = ρ M(G) (F), niineei yhdistäg F :n kahta eri komponenttia. Josf on toinen samanlainen viiva, ts. ρ M(G) (F +f) = ρ M(G) (F), niin ilmeisestikin myös Näin saadaan ρ M(G) (F +e+f) = ρ M(G) (F). Heikko absorptiivisuus: Jos e, f E ja F E sekä ρ M (F) = ρ M (F +e) = ρ M (F +f),

97 LUKU 7. MATROIDIT 93 niin myös ρ M (F +e+f) = ρ M (F). Yleisesti, heikosti absorptiivinen perinnöllinen järjestelmä on matroidi. Ts. heikko absorptiivisuus on sekin sopiva aspekti. Toistamalla tätä argumenttia voidaan todeta, että jos F ja F ovat G:n viivojen joukkoja ja jokaisellef :n viivalleeon ρ M(G) (F +e) = ρ M(G) (F), niin Näin ollen ρ M(G) (F F ) = ρ M(G) (F). Vahva absorptiivisuus: Jos F,F E sekä ρ M (F + e) = ρ M (F) jokaiselle F :n alkiolle e, niin ρ M (F F ) = ρ M (F). Yleisesti, myös vahvasti absorptiivinen perinnöllinen järjestelmä on matroidi. Ts. vahvakin absorptiivisuus on sopiva aspekti. Lisäysominaisuus JosI 1 jai 2 ovat piirimatroidinm(g) riippumattomia joukkoja (alimetsiä viivajoukkoina) ja #(I 1 ) < #(I 2 ), niin aligraafissag I1 onn #(I 1 ) komponenttia ja aligraafissag I2 onn #(I 2 ) komponenttia, eli siis vähemmän kuing I1 :ssä. Viivan lisääminen ei vähennä komponenttien lukumäärää tarkalleen silloin, kun viiva lisätään johonkin komponenttiin. Näin ollen, jos minkä tahansa I 2 I 1 :n viivan lisääminen G I1 :een säilyttää komponenttien lukumäärän samana, niin viiva lisätään johonkin G I1 :n komponenttiin, ja G I2 :ssa olisi täten ainakin yhtä monta komponenttia kuing I1 :ssä. Kuten todettu, näin ei ole jos#(i 1 ) < #(I 2 ), joten Lisäysominaisuus: Jos I 1 ja I 2 ovat perinnöllisen järjestelmänm riippumattomia joukkoja ja #(I 1 ) < #(I 2 ), niin on olemassa sellainen alkioe I 2 I 1, ettäi 1 +e oni M :ssä. Yleisesti, perinnöllinen järjestelmä, jolla on lisäysominaisuus, on matroidi. Ts. lisäysominaisuus on sopiva aspekti. Eliminoituvuusominaisuus Piirimatroidin M(G) piirit ovat nimenomaan G:n piirit tulkittuina viivajoukoiksi. Piirin jokaisen pisteen aste on2. JosC 1 jac 2 ovatm(g):n eri piirejä, niin rengassumman C 1 C 2 jokaisen pisteen aste on myös parillinen, ks. pykälä 1.3. Silloin C 1 C 2 :ssa on oltava aligraafina ainakin yksi piiri, sillä rengassummassa ei ole irtopisteitä ja ei-tyhjässä metsässä on ainakin yksi loppupiste (Lause 2.3). Muistellen graafin rengassumman määritelmää pykälässä 1.3, todetaan että mainittu piiri ei sisällä leikkauksen C 1 C 2 viivoja, ei ainakaan yhtä moninkertaisena kuinc 1 C 2. Näin saadaan Eliminoituvuus: Jos C 1 ja C 2 ovat perinnöllisen järjestelmän M eri piirejä ja e C 1 C 2, niin on sellainen piiric C M, ettäc C 1 C 2 e. Yleisesti, perinnöllinen järjestelmä, jolla on eliminoituvuusominaisuus, on matroidi. Ts. myös eliminoituvuus on sopiva aspekti.

98 LUKU 7. MATROIDIT 94 Indusoitujen piirien ominaisuus Jos I on piirimatriisin M(G) riippumaton joukko (eli alimetsä viivajoukoksi tulkittuna), niin yhden viivan lisääminen siihen joko aikaansaa jossaing I :n komponentissa yhden piirin (Lause 2.3) tai sitten se yhdistää kaksig I :n eri komponenttia eikä aikaansaa piiriä. Siispä Indusoitujen piirien ominaisuus: Jos I on perinnöllisen järjestelmän M riippumaton joukko ja e E, niin I + e sisältää enintään yhden piirin. Yleisesti, perinnöllinen järjestelmä, jolla on indusoitujen piirien ominaisuus, on matroidi. Ts. tämäkin ominaisuus on sopiva aspekti. 7.3 Muita perusmatroideja Vektoraalimatroidi Jos E on äärellinen joukko jonkin vektoriavaruuden (esimerkiksir n :n) vektoreita ja perinnöllisen järjestelmän M riippumattomat joukot ovat tarkalleen kaikki lineaarisesti riippumattomat E:n alijoukot (mukana myös tyhjä joukko), niin M on ns. vektoraalimatroidi. Yleisesti tässä sallitaan se, että E on multijoukko, ts. se voi sisältää alkionsa monta kertaa vrt. graafin moninkertainen viiva. Tällöin sovitaan, että E:n osajoukko, jossa on jokin alkio mukana useamman kerran, on lineaarisesti riippuva. Perinnöllistä järjestelmää M, joka ei suoranaisesti ole vektoraalimatroidi, mutta on rakenteeltaan identtinen jonkin vektoraalimatroidinm kanssa, kutsutaan lineaariseksi matroidiksi ja matroidiam kutsutaanm:n esitykseksi. Vektoraalimatroidin piiri on sellainen vektorijoukko C, että se on lineaarisesti riippuva, mutta muuttuu lineaarisesti riippumattomaksi, jos siitä poistetaan alkio mikä tahansa, muista mahdolliset monikertaiset alkiot. Vektoraalimatroidille tyypillinen aspekti on eliminoituvuus. Jos C 1 = {r,r 1,...,r k } ja C 2 = {r,r 1,...,r l } ovat eri piirejä, joilla on yhteisenä (ainakin) vektori r, niin r voidaan esittää sekä C 1 :n että C 2 :n muiden vektoreiden lineaariyhdelmänä ja vieläpä siten, että kaikki yhdelmien kertoimet ovat 0. Näin saadaan yhtälö k c i r i i=1 l c j r j = 0. j=1 Yhdistämällä vasemmalla puolella (mahdolliset) samat vektorit ja huomaamalla, ettei vasen puoli sittenkään supistu kokonaan nollavektoriksi, nähdään, että C 1 C 2 r sisältää piirin. (Huomaa erityisesti tapaus, jossa joko C 1 = {r,r} taic 2 = {r,r}.) Erityisesti, jos E muodostuu jonkin matriisin A sarakkeista (tai riveistä), kutsutaan vektoraalimatroidia matriisimatroidiksi ja merkitään M(A):lla. Esimerkiksi graafin G piirimatroidi M(G) on lineaarinen matroidi, jonka esitys saadaan, kun valitaan vektorijoukoksi G:n piirimatriisin rivit binäärikunnassagf(2) (ks. pykälä 4.5). 3 Luonnollisesti jokainen vektoraalimatroidi voidaan ajatella matriisimatroidina jos niin halutaan, muodostetaan vain E:n vektoreista matriisi. 4 3 Perinnöllisiä järjestelmiä, joilla on esitys binäärikunnassagf(2), kutsutaan binäärisiksi matroideiksi. Graafin piirimatroidi on aina binäärinen. 4 Tämä on oikeastaan nimen matroidi alkuperä. Matroidi on lineaarisen matroidin yleistys ja lineaarinen matroidi taas on ajateltavissa matriisina. Kaikki matroidit eivät nimittäin ole lineaarisia. Nimeä matroidi on aikanaan ankarasti vastustettu eivätkä sitä vieläkään kaikki käytä vaan puhuvat geometriasta tai kombinatorisesta geometriasta.

99 LUKU 7. MATROIDIT 95 Transversaalimatroidi Äärellisten ei-tyhjien joukkojen perheen A = {A 1,...,A k } transversaalimatroidi M(A) on joukone = A 1 A k perinnöllinen joukko, jonka riippumattomat joukot ovat tarkalleen ne joukot, jotka sisältävät enintään yhden alkion kustakin joukosta A i (mukana tyhjä joukko). Tässä A on jälleen multijoukko, ts. joukko A i voi esiintyä siinä alkiona useammankin kerran, sallien näin monen A i :n alkion esiintyä riippumattomassa joukossa. Transversaalimatroidille luontainen aspekti on lisäysominaisuus, ja se liittyy kaksijakoisen graafin sovituksen lisäyksiin! (Ks. pykälä 5.8.) Muodostetaan kaksijakoinen graafig = (V,E ) seuraavasti: Pistejoukko onv = E A ja pisteidenesekäa j välillä on viiva tarkalleen silloin, kun e A j. (Huomaa miten pistejoukko V jakaantuu luonnostaan kahteen irrotuksen osaan, E:hen ja A:han, joilla ei ole yhteisiä alkioita.) Jokainen M(A):n riippumaton joukko on silloin jonking:n sovituksene:ssä olevien pisteiden joukko ja kääntäen. Esimerkki. Alla on kuvattuna perheen {{1, 2},{2, 3, 4},{4, 5}} transversaalimatroidia vastaava kaksijakoinen graafi sekä sen riippumaton joukko{1,2,4} (paksu viiva) {1,2} {2,3,4} {4,5} Hyvin samaan tapaan kuin Lauseen 5.3 todistuksessa voidaan todeta, että jos I 1 ja I 2 ovat riippumattomia joukkoja (sovituksiens 1 sekäs 2 pistejoukkoja) ja#(i 1 ) < #(I 2 ), niin sovitukselle S 1 on sellainen lisäyspolku, että saatu uusi sovitettu piste on I 2 :ssa. Näin ollen M(A):lla on lisäysominaisuus. Huomautus. Ajatellen kaksijakoisen graafin sovituksia eo. tilanne on täysin yleinen. Ts. kaksijakoisen graafin sovitukset ovat aina ajateltavissa erään transversaalimatroidin riippumattomiksi joukoiksi. Itse asiassa aivan yleisenkin graafin sovitukset ovat tällä tavoin ajateltavissa matroidina (ns. sovitusmatroidina), ks. SWAMY & THULASIRAMAN. Jos A:n joukot ovat erillisiä ts. ne muodostavat E:n partition niin transversaalimatroidia kutsutaan myös partitiomatroidiksi. Partitiomatroidille lisäysominaisuus on ilmeinen. Tasamatroidi Kaikille äärellisille joukoille E voidaan määritellä tasamatroidi. Astetta k oleva E:n tasamatroidiu k (E) on perinnöllinen järjestelmä, jonka riippumattomat joukot ovat tarkalleen kaikkie:n osajoukot, joissa on enintäänk alkiota.u k (E):n kannat ovat nee:n osajoukot, joissa on tarkalleen k alkiota, ja piirit ne osajoukot, joissa on tarkalleen k +1alkiota. ErityisestiE:n astetta#(e) olevaa tasamatroidia kutsutaan useine:n vapaaksi matroidiksi. IlmeisestiU k (E):lla on kannanvaihto-ominaisuus sekä lisäysominaisuus. Tasamatroidit eivät sinällään ole kovin kiinnostavia, niitä voidaan kuitenkin usein käyttää rakennuspalikoina määriteltäessä mutkikkaampia matroideja. Helposti on todettavissa sekin, että tasamatroidit ovat transversaalimatroideja (miten?).

100 LUKU 7. MATROIDIT Ahne algoritmi Monet kombinatoriset optimointitehtävät 5 ovat puettavissa jonkin joukon E perinnöllisen järjestelmän M painavimman tai kevyimmän riippumattoman joukon etsimiseksi, kun E:n alkioille on annettu painot, joita merkitään funktiollaα : E R, ja joukonf E paino on α(e). e F Nämä kaksi optimointitehtävätyyppiä vaihtuvat keskenään, kun painojen merkki vaihdetaan. Myös voidaan etsiä M:n painavimpia tai kevyimpiä kantoja. Jälleen vaihtamalla painojen merkit maksimointi ja minimointi vaihtavat paikkaa. Mikäli M:n kaikki kannat ovat samankokoisia kuten on laita matroideilla ne voidaan edelleen rajoittaa tapaukseen, jossa painot ovat positiiviset. Jos nimittäinaon pienine:n alkion paino, niin vaihtamalla painofunktioksi β : β(e) = 1+α(e) A saadaan ekvivalentti tehtävä, jossa painot ovat positiiviset. Kannan maksimointi vaihtuu puolestaan minimoinniksi ja kääntäen, kun otetaankin painofunktioksi missäb suurine:n alkion paino. β : β(e) = 1+B α(e), Esimerkki. Kruskalin algoritmi (ks. pykälä 5.6) etsii vähän yleistettynä viivapainotetun graafin G kevyimmän virittävän metsän, ts. G:n piirimatroidin kevyimmän kannan. Kuten nähtiin, kevyin virittävä metsä löytyy silloin nopeasti ja vielä nopeammin, mikäli viivat ovat saatavilla kasvavan painon järjestyksessä, jolloin valitaan vain aina tarkasteltavaksi paras eli kevyin jäljellä oleva viiva. Kruskalin 1. algoritmi onkin esimerkki ns. ahneesta algoritmista, joka aina etenee parhaaseen käsillä olevaan suuntaan. Tällainen ahne algoritmi on nopea, senhän vain tarvitsee etsiä paras alkio lisättäväksi jo saatuun joukkoon. Myös Kruskalin 3. algoritmi on ahne algoritmi, se etsii painavimman virittävän vastametsän piirimatriisin duaalimatroidissa, ns. irrotusmatroidissa (ks. pykälä 7.6). Vaikka ahne algoritmi tuottaa piirimatroidin kantojen tapauksessa oikean tuloksen, se ei aina sitä tee. Esimerkki. Viivapainotetun graafin G kevyimmän Hamiltonin piirin etsiminen voidaan myös pukea erään perinnöllisen järjestelmän kevyimmän kannan etsimiseksi olettaen että Hamiltonin piirejä on olemassa. Silloin valitaan E:ksi jälleen G viivojen joukko, mutta valitaan kannoiksi G:n Hamiltonin piirit (viivajoukkoina). Kevyin kanta on nyt kevyin Hamiltonin piiri. Kuten pykälässä 5.7 todettiin, kevyimmän Hamiltonin piirin etsiminen (kaupparatsuprobleema) on toisaalta tunnettu N P-täydellinen tehtävä eikä mikään ahne algoritmi voi näin tuottaa aina oikeaa tulosta ei ainakaan, jos P N P. Näin saatu perinnöllinen järjestelmä ei kuitenkaan ole yleensä matroidi. (Sillä ei esimerkiksi yleensä ole kannanvaihto-ominaisuutta.) Näyttäisi siis siltä, että ainakin matroideille ahne algoritmi on suotuisa menetelmä painavimman/kevyimmän kannan (tai riippumattoman joukon) etsimiseksi. Itse asiassa matroidit ovat nimenomaan ne perinnölliset järjestelmät, joille näin on. Jotta asiaa päästään käsittelemään tarkemmin, määritellään ahne algoritmi formaalisesti. Käsitellään ensin riippumattomien joukkojen maksimointia, minimointia koskeva osa on hakasuluissa. Syötteenä on siis joukon E perinnöllinen järjestelmä M ja painofunktio α. 5 Enemmän tällaisia optimointitehtäviä käsitellään kurssilla Matemaattinen optimointiteoria 2.

101 LUKU 7. MATROIDIT 97 Ahne algoritmi riippumattomille joukoille: 1. Järjestetään joukon E alkiot e 1,...,e m vähenevän [kasvavan] painon järjestykseen: e (1),...,e (m). 2. Asetetaan F jak Josα(e (k) ) 0 [α(e (k) ) 0], lopetetaan ja tulostetaanf. 4. Josα(e (k) ) > 0 [α(e (k) ) < 0] jaf {e (k) } on riippumaton, asetetaan F F {e (k) }. 5. Jos k = m, tulostetaan F ja lopetetaan. Muussa tapauksessa asetetaan k k + 1 ja mennään kohtaan 3. Kantojen tapauksessa algoritmi on vielä yksinkertaisempi: Ahne algoritmi kannoille: 1. Järjestetään joukon E alkiot e 1,...,e m vähenevän [kasvavan] painon järjestykseen: e (1),...,e (m). 2. Asetetaan F jak JosF {e (k) } on riippumaton, asetetaan F F {e (k) }. 4. Jos k = m, tulostetaan F ja lopetetaan. Muussa tapauksessa asetetaan k k + 1 ja mennään kohtaan 3. Päätulos, joka kytkee ahneen algoritmin toiminnan ja matroidisuuden toisiinsa, on Lause 7.2. (Matroidien ahneuslause) Ahne algoritmi riippumattomille joukoille tuottaa perinnöllisen järjestelmän painavimman riippumattoman joukon kaikille painofunktioille tarkalleen silloin, kun kyseessä on matroidi. (Tämä on ns. ahneusominaisuus.) Vastaava tulos pätee myös kannoille, ja edelleen kevyimpien riippumattomien joukkojen sekä kantojen etsimiselle. Lisäksi molemmissa tapauksissa voidaan rajoittua positiivisiin painoihin. Todistus. Ekvivalenssi matroidisuuden kanssa esitetään Lauseen 7.3 todistuksessa seuraavassa pykälässä. Kuten edellä todettiin, ahneusominaisuus on ekvivalentti maksimoinnille ja minimoinnille, niin riippumattomille joukoille kuin kannoillekin. Myös todettiin, että painavimman kannan etsiminen voidaan rajoittaa positiiville painoille. Koska positiivisille painoille painavin riippumaton joukko on automaattisesti kanta, seuraa ahneusominaisuus kannoille ahneusominaisuudesta riippumattomille joukoille. Toisaalta, jos ahneusominaisuus pätee kannoille, se pätee myös riippumattomille joukoille. Riippumattoman joukon maksimointi painofunktiolle α vastaa silloin kannan maksimointia positiiviselle painofunktiolle β : β(e) = 1+max(0,α(e)), ahneet algoritmit toimivat täsmälleen samoin, sillä kohta 3. ei nyt esiinny lainkaan riippumattomille joukoille. Lopputuloksesta pitää vain poistaa1-painoiset alkiot. Huomautus. Ahneusominaisuus on siis myös matroidin määrittelevä aspekti. Perinnöllisille joukoille se on ekvivalentti ahneen algoritmin käyttökelpoisuuden kanssa. Tietyille samantapaisille yleisemmille joukkojärjestelmille on myös omat ahneuslauseensa. Tällaisia ovat mm. ns. greedoidit sekä matroidiupotukset.

102 LUKU 7. MATROIDIT Yleinen matroidi Mikä tahansa edellä esitetyistä aspekteista tekee perinnöllisestä järjestelmästä matroidin. Kun vielä todetaan, että ne ovat kaikki keskenään ekvivalentit, voidaan määritellä matroidi perinnölliseksi järjestelmäksi, jolla on jokin mainituista aspekteista. Lisätään listaan vielä yksi aspekti, joka on hankalammin suoraan todettavissa piirimatroidille: Alimodulaarisuus: JosM on joukone perinnöllinen järjestelmä jaf,f E, niin ρ M (F F )+ρ M (F F ) ρ M (F)+ρ M (F ). Näytetään sitten mainittu ekvivalenssi, mukaanlukien vielä alimodulaarisuuskin. Lause 7.3. Jos perinnöllisellä järjestelmällä on yksikin alla olevasta yhdeksästä aspektista, niin sillä on ne kaikki (ja se on matroidi). (i) Tasaisuusominaisuus (ii) Kannanvaihto-ominaisuus (iii) Lisäysominaisuus (iv) Heikko absorptiivisuus (v) Vahva absorptiivisuus (vi) Alimodulaarisuus (vii) Eliminoituvuusominaisuus (viii) Indusoitujen piirien ominaisuus (ix) Ahneusominaisuus Todistus. Todistetaan implikaatiot seuraavan vahvasti yhtenäisen digraafin mukaisesti: (i) (ii) (iii) (iv) (v) (vi) (vii) (viii) (ix) Tällöin kaikki yhdeksän eri aspektia ovat yhdistetyt toisiinsa implikaatioketjuilla ja ne ovat näin ekvivalentit. Tarkastellaan yleisesti joukon E perinnöllistä järjestelmää M. (i) (ii): Tasaisuusominaisuuden seurauksena kaikki M:n kannat ovat samankokoisia. Jos B 1,B 2 B M jae B 1 B 2, niin sovelletaan tasaisuutta joukkoonf = (B 1 e) B 2. Kaikki maksimaalisetf :ään sisältyvät riippumattomat joukot ovat siis samankokoisia kuinb 2 (jab 1 ). B 1 e ei ole tällainen maksimaalinen riippumaton joukko, siinä on yhtä liian vähän alkioita. Toisaalta lisäämällä B 1 e:hen yksi alkio f saadaan mainitunlainen riippumaton joukko H. Alkionf on tultava erotuksestab 2 B 1, joten H = B 1 e+f. LisäksiH:ssa on yhtä monta alkiota kuinb 1 :ssä, joten se on kanta. (ii) (iii): Jos I 1,I 2 I M ja #(I 1 ) < #(I 2 ), valitaan sellaiset kannat B 1 ja B 2, että I 1 B 1 ja I 2 B 2. Käytetään kannanvaihto-ominaisuutta (toistuvasti) ja vaihdetaan tarvittaessa B 2 :n alkioiksi ne B 1 I 1 :n alkiot, jotka eivät ole B 2 :ssa. Tämän jälkeen voidaan olettaa, että B 1 I 1 B 2. Kannanvaihto-ominaisuuden seurauksena kaikki kannat ovat samankokoisia. Koska näin ollen #(B 1 I 1 ) = #(B 1 ) #(I 1 ) > #(B 2 ) #(I 2 ) = #(B 2 I 2 ),

103 LUKU 7. MATROIDIT 99 B 1 I 1 ei voi sisältyä B 2 I 2 :een. Siispä I 2 :ssa on jokin B 1 I 1 :n alkio e ja I 1 + e on riippumaton joukko. (iii) (iv): Tarkastellaan tilannetta, jossa ρ M (F) = ρ M (F +e) = ρ M (F +f). Mikäli nyt ρ M (F + e + f) > ρ M (F), valitaan maksimaalinen riippumaton F :n osajoukko I 1 sekä maksimaalinen riippumaton F + e+f:n osajoukko I 2. Silloin #(I 2 ) > #(I 1 ) ja lisäysominaisuuden nojalla I 1 :tä voidaan lisätä yhdellä I 2 :n alkiolla. Tämä alkio ei voi tulla F :stä (miksi?), joten sen on oltava joko e tai f. Tällöin kuitenkin joko ρ M (F) < ρ M (F + e) tai ρ M (F) < ρ M (F +f) ( ). (iv) (v): Tässä oletetaan heikko absorptiivisuus ja tarkastellaan sellaisia E:n osajoukkoja F ja F, että ρ M (F + e) = ρ M (F) jokaiselle F :n alkiolle e. Käytetään induktiota luvun k = #(F F) suhteen ja näytetään, ettäρ M (F) = ρ M (F F ) (vahva absorptiivisuus). Induktion lähtökohta: Nytk = 0 tai k = 1 ja asia on selvä. Induktio-oletus: Tulos on oikea, kun k l. (l 1) Induktio-väite: Tulos on oikea, kunk = l+1. Induktioväitteen todistus: Valitaan eri alkiot e,f F F ja merkitään F = F e f. Induktio-oletuksen nojalla ρ M (F) = ρ M (F F ) = ρ M (F F +e) = ρ M (F F +f). Soveltamalla tähän heikkoa absorptiivisuutta nähdään, että ρ M (F) = ρ M (F F +e+f) = ρ M (F F ). (v) (i): Jos I on maksimaalinen riippumaton F :n osajoukko, niin ρ M (I + e) = ρ M (I) (mahdollisille) erotuksenf I:n alkioillee. Vahvan absorptiivisuuden vuoksi silloinρ M (F) = ρ M (I) = #(I), ts. kaikki tällaiset riippumattomat joukot I ovat samankokoisia ja tasaisuusominaisuus on voimassa. (i) (vi): Tarkastellaan joukkojaf,f E ja merkitään maksimaalista riippumatonta leikkauksen F F maksimaalista riippumatonta osajoukkoa I 1 :llä ja yhdisteen maksimaalista F F riippumatonta osajoukkoa I 2 :lla. Tasaisuudesta seuraa lisäysominaisuus, joten voidaan olettaa, että I 2 saadaan I 1 :stä lisäämällä alkioita, ts. I 1 I 2. Nyt I 2 F on F :n riippumaton osajoukko jai 2 F on F :n riippumaton osajoukko, ja kumpikin sisältääi 1 :n. Siispä ρ M (F F )+ρ M (F F ) = #(I 1 )+#(I 2 ) = #(I 2 F)+#(I 2 F ) ρ M (F)+ρ M (F ). Tähdellä merkitty yhtäsuuruus on joukko-opillinen, ks. alla oleva kuva. F I 2 I 1 I 2 F (vi) (vii):otetaan tarkasteltavaksi eri piirit C 1,C 2 C M ja alkio e C 1 C 2. Silloin ρ M (C 1 ) = #(C 1 ) 1 jaρ M (C 2 ) = #(C 2 ) 1ja vielä ρ M (C 1 C 2 ) = #(C 1 C 2 ). (Muista, että jokainen piirin aito osajoukko on riippumaton.) Mikäli nytc 1 C 2 e ei sisällä piiriä, niin

104 LUKU 7. MATROIDIT 100 se on riippumaton jaρ M (C 1 C 2 e) = #(C 1 C 2 ) 1, ja siisρ M (C 1 C 2 ) #(C 1 C 2 ) 1. Alimodulaarisuuden nojalla kuitenkin josta seuraa (totea!), että ρ M (C 1 C 2 )+ρ M (C 1 C 2 ) ρ M (C 1 )+ρ M (C 2 ), #(C 1 C 2 )+#(C 1 C 2 ) #(C 1 )+#(C 2 ) 1. Tämä on joukko-opillisesti mahdotonta. Näin ollen C 1 C 2 e sisältää piirin. (vii) (viii): Jos I on riippumaton joukko ja I + e sisältää kaksi eri piiriä C 1 ja C 2, niin ilmeisesti sekäc 1 ettäc 2 sisältää silloin alkione. Eliminointiominaisuuden nojallac 1 C 2 e sisältää piirin. Mutta koskac 1 C 2 e sisältyyi:hin, se on kuitenkin riippumaton ( ). Siispä I +e sisältää enintään yhden piirin. (viii) (ix): Merkitään I:llä ahneen algoritmin tulostetta painofunktiolla α. (Kyseessä on painavimman riippumattoman joukon etsintä.) Jos I on ko. painavin riippumaton joukko, asia on selvä. Muussa tapauksessa valitaan painavimmista riippumattomista joukoista sellainen, jolla on suurin leikkaus I:n kanssa. Merkitään tätä painavinta riippumatonta joukkoa I :lla. I ei voi olla I :n osajoukko, muuten ahne algoritmi tulostaisi painavamman riippumattoman joukon. Merkitään e:llä ensimmäistä erotuksen I I alkiota, jonka ahne algoritmi valitsee mukaan. I + e on riippuva joukko ja se siis sisältää tarkalleen yhden piirin C (muista indusoitujen piirien ominaisuus). Tämä piiri ei tietenkään sisälly I:hin, joten voidaan valita alkio f C I. KoskaI +e sisälsi vain yhden piirin,i +e f on riippumaton joukko.i on maksimaalinen, joten α(f) α(e). Toisaalta f ja ne I:n alkiot, jotka ahne algoritmi valitsi ennen e:tä, ovat kaikki I :ssa, joten f:n lisääminen mainittuihin alkioihin ei muodosta piiriä. Näin ollen f oli käytettävissä ahneen algoritmin valitessa e:n, mikä tietää että α(f) α(e). Siis α(f) = α(e) ja joukot I + e f sekä I ovat yhtä painavat. Tämä on kuitenkin vastoin I :n valintaa, sillä #((I + e f) I) > #(I I). (Lukija huomannee tietyn yhtäläisyyden tämän ja Lauseen 5.2 todistuksen kanssa. Itse asiassa näin saadaan uusi todistus sille, että Kruskalin 1. algoritmi toimii.) (ix) (iii): Tarkastellaan riippumattomia joukkojai 1 jai 2, joille#(i 1 ) < #(I 2 ). Merkitään lyhyyden vuoksik = #(I 1 ). Otetaan nyt käyttöön painofunktio k +2, jose I 1 α : α(e) = k +1, jose I 2 I 1 0 muuten. SilloinI 2 :n paino on α(e) (k +1) 2 > k(k +2) = α(e), e I 2 e I 1 eli siis suurempi kuin I 1 :n paino, joten I 1 ei ole painavin riippumaton joukko. Toisaalta ahne algoritmi valitsee painavinta riippumatonta joukkoa etsiessään ahneudessaan kaikki I 1 :n alkiot ennen ensimmäistäkääni 2 I 1 :n alkiota. Koska se nyt oletuksen mukaan tulostaa painavimman riippumattoman joukon, sen on otettava mukaan vielä ainakin yksii 2 I 1 :n alkioejai 1 +e on täten riippumaton joukko. Lisäysominaisuus on siis voimassa. Käytetyin matroidin määrittävä aspekti lienee lisäysominaisuus.

105 LUKU 7. MATROIDIT Matroidien operaatioita Edellä graafien virittävien puiden ja niihin liittyvien perusirrotusjoukkojen sekä peruspiirien yhteydessä mainittiin usein näiden duaalisuus. Duaalisuus on toisaalta ominaisuus, joka on hyvin luonnollinen perinnöllisille järjestelmille sekä matroideille. Joukon E perinnöllisen järjestelmän M duaali(järjestelmä) on joukon E perinnöllinen järjestelmä M, jonka kannat ovat M:n kantojen komplementit (E:tä vastaan). Usein duaalijärjestelmän M kantoja kutsutaan M:n vastakannoiksi, piirejä M:n vastapiireiksi jne. Kyseessä on todellakin perinnöllinen järjestelmä: Jos B 1 ja B 2 ovatm :n eri kantoja, niin B 1 jab 2 ovat M:n eri kantoja. Näin ollen, josb 1 B 2, niinb 2 B 1 ( ). Huomaa vielä, että(m ) = M. Lause 7.4. (Whitneyn lause) MatroidinM duaalim on matroidi, ns. duaalimatroidi, ja (Huomaa, ettäρ M (E) onm:n kannan koko.) ρ M (F) = #(F) ρ M (E)+ρ M (F ). Todistus. Näytetään, että M :lla on kannanvaihto-ominaisuus, jolloin se Lauseen 7.3 mukaan on matroidi. Jos B 1 ja B 2 ovat M :n kantoja ja e B 1 B 2, niin B 1 ja B 2 ovat M:n eri kantoja ja e B 2 B 1. Koska B 1 on M:n kanta, B 1 +e sisältää tarkalleen yhden M:n piirin C (indusoitujen piirien ominaisuus) ja tässä piirissä on oltava jokin alkio f B 2 B 1. Mutta silloinb 1 +e f ei sisälläm:n piiriä eli se on M:n riippumaton joukko ja sen koko on sama kuinb 1 :n. Koska kaikki kannat ovat aina samankokoisia, on B 1 +e f näin ollenm:n kanta, ja sen komplementtib 1 e+f puolestaan on M :n kanta. Rangin ρ M (F) laskemiseksi valitaan maksimaalinen M :n riippumaton joukko H, joka sisältyy F :ään. Tällöin ρ M (F) = ρ M (H) = #(H). Silloin H on minimaalinen sellainen joukon F sisältävä joukko, että se sisältää jonkin M:n kannan. (Sama asia vain toisin sanottuna. Huomaa, ettäh sisältyy johonkinm :n kantaan.) Mutta tällainen joukkohan saadaan, kun lähdetään F :stä, otetaan maksimaalinen F :ään sisältyvä M:n riippumaton joukko jossa onρ M (F ) alkiota ja jatketaan se kannaksi jossa taas onρ M (E) alkiota. Siispä #(H) #(F ) = ρ M (E) ρ M (F ). Joukko-opillisista syistä #(H)+#(H) = #(E) = #(F )+#(F). Näistä yhdistämällä saadaan esitetty rangin ρ M (F) laskukaava (totea!). Dualiikka antaa yhteyden matroidinm kantojen ja sen duaalimatroidinm piirien (elim:n vastapiirien) välille: Lause 7.5. (i) Matroidin M duaalimatroidin piirit ovat minimaaliset sellaiset joukot, jotka leikkaavat jokaistam:n kantaa. (ii) MatroidinM kannat ovat minimaaliset sellaiset joukot, jotka leikkaavat jokaista duaalimatroidinm piiriä. Todistus. (i) M :n piirit ovat minimaaliset joukot, jotka eivät sisälly minkään M:n kannan komplementtiin. Näin ollen niiden täytyy leikata jokaistam:n kantaa. (ii) M :n kannat ovat maksimaaliset joukot, jotka eivät sisällä mitään M :n piiriä. Sama asia toisin:m:n kannat ovat minimaaliset joukot, jotka leikkaavat jokaistam :n piiriä.

106 LUKU 7. MATROIDIT 102 Esimerkki. Yhtenäisen graafin G piirimatroidin M(G) kannat ovat G:n virittävät puut. Sen duaalimatroidinm (G) kannat ovat näiden komplementit eli virittävät vastapuut. Duaalimatroidin piirit puolestaan ovat lauseen nojallag:n irrotusjoukot. (Vrt. Lauseet 2.4 ja 2.5.) Koska M (G) on Whitneyn lauseen mukaisesti matroidi, sillä on ahneusominaisuus, ts. ahne algoritmi löytää sille painavimman/kevyimmän kannan. Tähän perustuu Kruskalin 3. algoritmin toimivuus. Se etsii graafille painavimman virittävän vastapuun. Vastaavat käsitteet ovat luonnollisesti määriteltävissä yleiselle, mahdollisesti epäyhtenäiselle graafille G. Silloin M (G):n kannat ovat G:n virittävät vastametsät. Duaalimatroidia M (G) kutsutaang:n irrotusmatroidiksi tai vastapiirimatroidiksi. Entäs milloin irrotusmatroidi M (G) olisi graafinen, ts. jonkin (toisen) graafin piirimatroidi? Ns. Whitneyn tasottuvuuslause sanoo, että näin käy tarkalleen silloin, kun G on tasottuva! (Ks. esimerkiksi WEST.) JosM i on joukone i perinnöllinen järjestelmä (i = 1,...,k), niin järjestelmienm 1,...,M k suora summam = M 1 M k on joukone = E 1 E k perinnöllinen järjestelmä, jonka riippumattomat joukot ovat tarkalleen kaikki joukoti 1 I k, missäi i I Mi (i = 1,...,k). Erityisesti jos E 1 = = E k = E, sanotaan suoraa summaa M järjestelmien M 1,...,M k yhdisteeksi, merkitäänm = M 1 M k. Huomaa, että yleensäkin voitaisiin ajatella kutakin järjestelmää M i myös joukon E perinnöllisenä järjestelmänä lisäämällä vain E E i alkiot piireiksi (tarkemmin sanoen silmukoiksi). Ei ole kovin vaikeaa todeta, että jos M 1,...,M k ovat matroideja ja joukot E 1,...,E k ovat pareittain erillisiä, niin M = M 1 M k on matroidi, näyttämällä vaikkapa, että sillä on lisäysominaisuus (tee se!). Yleisempikin tulos pätee: Lause 7.6. (Matroidien yhdistelause 6 ) JosM 1...,M k ovat joukone matroideja, niin yhdiste M = M 1 M k on myös joukone matroidi ja ( ρ M : ρ M (F) = min #(F F )+ F F k i=1 ) ρ Mi (F ). Todistus. Todistus on varsin pitkä ja sivuutetaan (ks. esimerkiksi WEST tai OXLEY.) Mainittakoon, että rangia koskeva kaava ei päde yleisesti perinnöllisille järjestelmille. Tällä on monia perustavaa laatua olevia seurauksia, esimerkiksi Seuraus. (Matroidien peittolause 7 ) JosM on joukone silmukaton matroidi, niin pienin määrä riippumattomia joukkoja, joiden yhdiste on E, on #(F) max. F E ρ M (F) Todistus. Huomaa, että koska M:ssä ei ole silmukoita, jokainen E:n alkio on itsessään riippumaton joukko. Joukko E voidaan siis peittää mainitulla tavalla. Otetaan yhdistelauseessa matroideiksi M 1,..., M k nyt k kopiota M:stä. Silloin E on k:n M:n riippumattoman joukon yhdiste tarkalleen silloin, kun se on yhdistematroidinm = M 1 M k riippumaton joukko. Tarkasteltu peitto-ominaisuus voidaan nyt ilmaista muodossa ρ M (E) = #(E) ja se on yhdistelauseen mukaan sama kuin että ( #(E) = min #(E F)+ F E k i=1 ) ρ Mi (F) 6 Tunnetaan myös nimellä Edmonds Fulkerson-lause tai Matroidien summalause. 7 Tunnetaan myös nimellä Edmondsin peittolause.

107 LUKU 7. MATROIDIT 103 eli min (kρ M(F) #(F)) = 0. F E Koska minimoitava erotus on = 0, kun F on tyhjä joukko, k on siis pienin sellainen luku, että k #(F)/ρ M (F) kaikille ei-tyhjille osajoukoillef E. Esimerkki. Silmukattoman graafin G = (V, E) piirimatroidin M(G) tapauksessa riippumattomat joukot ovat G:n alimetsät ja kysymys on siis siitä montako alimetsää vähintään tarvitaan, jotta ne sisältäisivät kaikki G:n viivat. Merkitään mainittua lukumäärää A(G):llä, sitä kutsutaang:n arborisuudeksi. Peittolauseessa esiintyvän maksimoinnin analysoimiseksi jaetaan viivojen indusoima aligraafi F komponentteihinsa, joiden piste- ja viivaluvut ovat vastaavasti n 1,...,n kf sekä m 1,...,m kf. Valitaan lisäksi indeksointi siten, että m kf n kf 1 m k F 1 n kf 1 1 m 1 n 1 1. Yleisesti, jos x 2 y 2 x 1 y 1, niin x 2 y 2 x 1 +x 2 y 1 +y 2. Näin ollen ja, jatkamalla tästä induktiivisesti, edelleen m 2 n 2 1 m 1 +m 2 n 1 +n 2 2 m i n i 1 m 1 + +m i n 1 + +n i i (i = 1,...,k F ). Erityisesti siis m kf n kf 1 m 1 + +m kf n 1 + +n kf k F = #(F) ρ M(G) (F). Maksimoitaessa voidaan näin rajoittua sellaisiin viivajoukkoihin F, että F on yhtenäinen, jolloin ρ M(G) (F) = n F 1, missä n F on F :n pisteluku. (Lisäksi voitaisiin vielä rajoittua sellaisiin viivajoukkoihin F, että F on myös pisteidensä generoima aligraafi, sillä kahden jo yhdistetyn pisteen yhdistäminen viivalla kasvattaa maksimoitavan osamäärän osoittajaa yhdellä nimittäjän pysyessä samana.) Näin saadaan arborisuudelle kuuluisa Nash-Williamsin kaava A(G) = max F E #(F) n F 1 Huomattakoon, että koska yksinkertaiselle tasottuvalle graafille#(f) 3n F 6(Lineaarinen raja sovellettuna F :ään), ona(g) tällöin enintään3. Joukon E perinnöllisen järjestelmän M rajoittuma joukkoon F E on perinnöllinen järjestelmä M F, jonka riippumattomat joukot ovat tarkalleen ne F :n osajoukot, jotka ovat M:n riippumattomia osajoukkoja.m:n kutistuma joukkoonf on puolestaan perinnöllinen järjestelmä(m F), merkitäänm.f. IlmeisestiM:n lisäysominaisuus siirtyy suoraanm F :ään, joten (ks. Whitneyn lause) Lause 7.7. JosM on joukone matroidi jaf E, niinm F sekäm.f ovat myös matroideja. Matroidin M alimatroideja ovat ne matroidit, jotka saadaan M:stä peräkkäisillä rajoittumilla ja kutistumilla..

108 Kirjallisuus 1. ANDRÁSFAI, B.: Introductory Graph Theory. The Institute of Physics (1978) 2. ANDRÁSFAI, B.: Graph Theory: Flows, Matrices. The Institute of Physics (1991) 3. BANG-JENSEN, J. & GUTIN, G.: Digraphs: Theory, Algorithms and Applications. Springer Verlag (2002) 4. BOLLOBÁS, B.: Modern Graph Theory. Springer Verlag (2002) 5. CHRISTOFIDES, N.: Graph Theory. An Algorithmic Approach. Academic Press (1975) 6. DIESTEL, R.: Graph Theory. Springer-Verlag (2005) 7. DOLAN, A. & ALDOUS, J.: Networks and Algorithms. An Introductory Approach. Wiley (1999) 8. GIBBONS, A.: Algorithmic Graph Theory. Cambridge University Press (1987) 9. GIBBONS, A. & RYTTER, W.: Efficient Parallel Algorithms. Cambridge University Press (1990) 10. GONDRAN, M. & MINOUX, M.: Graphs and Algorithms. Wiley (1986) 11. GRIMALDI, R.P.: Discrete and Combinatorial Mathematics. Addison Wesley (2003) 12. GROSS, J. & YELLEN, J.: Graph Theory and Its Applications. CRC Press (2006) 13. GROSS, J. & YELLEN, J.: Handbook of Graph Theory. CRC Press (2003) 14. HOPCROFT, J.E. & ULLMAN, J.D.: Introduction to Automata Theory, Languages, and Computation. Addison Wesley (1979) 15. JUNGNICKEL, D.: Graphs, Networks and Algorithms. Springer Verlag (2004) 16. MCELIECE, R.J. & ASH, R.B. & ASH, C.: Introduction to Discrete Mathematics. McGraw Hill (1990) 17. MCHUGH, J.A.: Algorithmic Graph Theory. Prentice Hall (1990) 18. MEHLHORN, K.: Graph Algorithms and NP-Completeness. Springer Verlag (1984) 19. NOVAK, L. & GIBBONS, A.: Hybrid Graph Theory and Network Analysis. Cambridge University Press (1999) 20. OXLEY, J.G.: Matroid Theory. Oxford University Press (2006) 104

109 READ, R.C. & WILSON, R.J.: An Atlas of Graphs. Oxford University Press (2004) 22. SKIENA, S.S.: The Algorithm Design Manual. Springer Verlag (1998) 23. SWAMY, M.N.S. & THULASIRAMAN, K.: Graphs, Networks, and Algorithms. Wiley (1981) 24. SWAMY, M.N.S. & THULASIRAMAN, K.: Graphs: Theory and Algorithms. Wiley (1992) 25. VÁGÓ, I.: Graph Theory. Application to the Calculation of Electrical Networks. Elsevier (1985) 26. WALTHER, H.: Ten Applications of Graph Theory. Kluwer (1985) 27. WEST, D.B.: Introduction to Graph Theory. Prentice Hall (2001)

110 106 Hakemisto admittanssimatriisi 44 ahne algoritmi 96 ahneusominaisuus 97,98 aligraafi 3 alimatroidi 103 alimetsä 19 alimodulaarisuus 98 alipuu 19 alkupiste 6,26 alusgraafi 26 approksimaatioalgoritmi 48 arborisuus 103 aspekti 90 aste 2,8,91 astefunktio 91 asyklinen 30 asymptoottinen vaativuus 47 avoin kulku 6 BFS-puu 56 bijektiivinen merkintä 17 binäärinen matroidi 94 Boolen summa 49 Davidson Harel-algoritmi 88 Demoucronin algoritmi 85 deterministinen algoritmi 47 DFS-metsä 54 DFS-puu 51 digraafi 26 Dijkstran algoritmi 58 duaalimatroidi 101 Edmonds Fulkerson-lause 102 Edmonds Karp-modifikaatio 81 Edmondsin peittolause 102 ei-kyllästetty 78,79 eliminoituvuusominaisuus 93,98 energian säilymislaki 46 epädeterministinen algoritmi 47 erotus 11 esitys 94 etenevä nuoli 79 Eulerin monitahokaskaava 84 Floydin algoritmi 60 Ford Fulkerson-algoritmi 81 genus 87 graafi 1 graafinen matroidi 91,102 greedoidi 97 Hallin lause 76 Hamiltonin piiri 68,96 Heawoodin algoritmi 87 Heawoodin lause 87 hehkutusalgoritmi 69,88 heikko absorptiivisuus 92,98 Hopcroft Tarjan-algoritmi 85 impedanssimatriisi 44 indusoitu aligraafi 5 indusoitujen piirien ominaisuus 94,98 injektiivinen merkintä 17 insidenssimatriisi 33 irrotus 16 irrotusavaruus 46 irrotusjoukko 16 irrotusmatriisi 35 irrotusmatroidi 102 irrotusminimaalinen virittävä puu 63 irrotuspiste 14 irtopiste 2 isomorfismi 18 isomorfisuus 18 Jarnikin algoritmi 67 juuri 28,51 kaksijakoinen graafi 17,73 kanoninen merkintä 31 kannanvaihto-ominaisuus 92,98 kanta 90 kapasiteetti 77 kapasiteettiehto 77 Karp Held-heuristiikka 71 kaupparatsuprobleema 68 kertalukunotaatio 47 kevyin polku 58,60 kevyin virittävä puu 63 kierros 6 Kirchhoffin laki 41,77 klikki 5 kompleksisuus 47 komplementti 10,48 komponentti 7,41 kromaattinen luku 87 Kruskalin algoritmi 64,96,102 kulku 5 kunta 46 Kuratowskin lause 85 kutistuma 103 kvasivahva yhtenäisyys 27 kyllästetty 78,79 laji 87 Las Vegas -algoritmi 48 laskennallinen vaativuus 47 lehti 28

111 107 leikkaus 11 leveysetsintä 56 lineaarinen matroidi 94 Lineaarinen raja 84 lisäysominaisuus 93,98 lisäyspolku 73,79 lisäyspuu 74 lohko 14 lokaalisesti minimaalinen virittävä puu 64 loppupiste 2,26 loppupiste 6 loppuviiva 2 lähde 31 lähtevä nuoli 26 lähtöaste 26 läpilähde 41 läpisuure 41 läpivektori 41 maksimaalinen sovitus 73 maksimiaste 3 maksimisovitus 73,81 maksimivirtaus 77 Marimontin algoritmi 31 Marriage Theorem 76 matriisimatroidi 94 Matroidien ahneuslause 97 Matroidien peittolause 102 Matroidien yhdistelause 102 matroidi 25,98 Matroidien yhdistelause 102 matroidiupotus 97 Max-Flow Min-Cut -lause 80 menonuoli 53 merkintä 17 merkitty graafi 17 metsä 19 minimaalinen virittävä puu 64 minimi-irrotus 78 minimiaste 3 Minimiasteraja 84 Monte Carlo -algoritmi 48 multiplisiteetti 1 naapuripuu 63 Nash-Williamsin kaava 103 Nelivärilause 87 nielu 30 nollagraafi 2 N P-kova 48 N P-täydellinen 48,69 nulliteetti 8 nuoli 26 oksa 20 paino 17 painomatriisi 60 painotus 17 paluunuoli 54 paluuviiva 51 partitiomatroidi 95 perinnöllinen järjestelmä 90 perusirrotusjoukko 23 perusirrotusjoukkojen oukko 23 perusirrotusmatriisi 37 peruspiiri 22 peruspiirijoukko 22 peruspiirimatriisi 39 perusyhtälöt 42 piiri 6,90 piiriavaruus 46 piirimatriisi 38 piirimatroidi 91,102,103 piiriminimaalinen virittävä puu 63 piiritön graafi 9 piirtäminen 83,88 piste 1 pisteen aste 2 pisteen poisto 12 pisteiden joukko 1 pisteiden yhdistäminen 13 pituus 6 planaarisuus 83 poikkilähde 41 poikkinuoli 54 poikkisuure 41 poikkivektori 41 polku 6 polynomiaikainen 48 potentiaali 41 potentiaalivektori 41 Primin algoritmi 67 probabilistinen algoritmi 48 puu 19 puunuoli 53 puuviiva 51 päätepiste 2 rajoittuma 103 rangi 8,34,91 rangifunktio 91 reduktio 48 reitti 6 rengassumma 11 reunapiste 83 reunaviiva 83 riippumaton joukko 90 riippuva joukko 90

112 108 rinnakkaiset viivat 2 ristiriita 9 rumuusfunktio 88 saavutettavuusmatriisi 49 selviämätön 48 selviävä 48 separoitumaton 14 separoituva 14 side 20 siirtoverkko 77 silmukka 2,91 silmä 83 sopiva erotus 12 sovitus 73,95 stationäärinen lineaarinen verkko 41 stokastinen algoritmi 48 suljettu kulku 6 suora summa 102 suunnattu graafi 26 suunnattu kulku 26 suunnattu piiri 26 suunnattu polku 26 suunnattu puu 28 suunnattu reitti 26 suunnistettu irrotus 35 suunnistettu piiri 38 sykli 30 symmetrinen erotus 11 syvyysetsintä 50 takeneva nuoli 79 tasaisuusominaisuus 92,98 tasamatroidi 95 tasograafi 83 tasottuvuus 83,102,103 Tellegenin lause 46 tiivistys 27 topologinen lajittelu 31 transversaalimatroidi 95 triviaali graafi 2 tuleva nuoli 26 tuloaste 26 tyhjä graafi 2 täydellinen graafi 3 täydellinen kaksijakoinen graafi 17 täydellinen sovitus 76 täysi insidenssimatriisi 33 ulkosilmä 83 unkarilainen algoritmi 74 unkarilainen puu 74 vaativuus 47 vahva absorptiivisuus 93,98 vahva komponentti 27 vahvasti yhdistetyt pisteet 27 vahvasti yhtenäinen 27 vapaa matroidi 95 vastakanta 101 vastapiiri 101 vastapiirimatroidi 102 vektoraalimatroidi 94 vierekkäiset pisteet 2 vierekkäiset viivat 2 vieruspisteet 2 vieruspistematriisi 32 vierussilmä 83 vierusviivat 2 Viisivärilause 87 viitepiste 33 viiva 1 viivan kutistaminen 13 viivan poisto 13 viivojen joukko 1 virittävä 1-puu 71 virittävä metsä 22 virittävä puu 19 virittävä suunnattu puu 30 virittävä vastapuu 19 virtauksen arvo 77 virtaus 77 vuorotteleva polku 73 vuorotteleva puu 74 väri 87 väritettävyys 87 Warshallin algoritmi 49 Whitneyn lause 101 Whitneyn tasottuvuuslause 102 yhdiste 11,102 yhdistetyt pisteet 6 yhtenäinen graafi 6 ylitysluku 87 äärellinen graafi 3

Johdatus graafiteoriaan

Johdatus graafiteoriaan Johdatus graafiteoriaan Syksy 2017 Lauri Hella Tampereen yliopisto Luonnontieteiden tiedekunta 62 Luku 2 Yhtenäisyys 2.1 Polku 2.2 Lyhin painotettu polku 2.3 Yhtenäinen graafi 2.4 Komponentti 2.5 Aste

Lisätiedot

Johdatus graafiteoriaan

Johdatus graafiteoriaan Johdatus graafiteoriaan Syksy 2017 Lauri Hella Tampereen yliopisto Luonnontieteiden tiedekunta 126 Luku 3 Puut 3.1 Puu 3.2 Virittävä puu 3.3 Virittävän puun konstruointi 3.4 Minimaalinen virittävä puu

Lisätiedot

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

0 v i v j / E, M ij = 1 v i v j E. Vieruspistematriisi Graafi esitetään tietokoneessa useimmiten matriisin avulla. Graafin G = (V, E), V = {v 1, v 2,..., v n } vieruspistematriisi (adjacency matrix)on n n matriisi M = (M ij ), missä n on

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT VERKOT ELI GRAAFIT Lähteet: Timo Harju, Opintomoniste Keijo Ruohonen, Graafiteoria (math.tut.fi/~ruohonen/gt.pdf) HISTORIAA Verkko- eli graafiteorian historia on saanut

Lisätiedot

Graafin virittävä puu 1 / 20

Graafin virittävä puu 1 / 20 Graafin virittävä puu 1 / 20 Graafin virittävä puu PuuT on graafingvirittävä puu (spanning tree), jos se sisältää kaikkig:n pisteet. Virittäviä puita: 2 / 20 Yhdistämisongelma Yhdistämisongelma:(Connector

Lisätiedot

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

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari Tehtävä 9 : 1 Merkitään kirjaimella G tehtäväpaperin kuvan vasemmanpuoleista verkkoa sekä kirjaimella H tehtäväpaperin kuvan oikeanpuoleista verkkoa. Kuvan perusteella voidaan havaita, että verkko G on

Lisätiedot

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

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko, Tehtävä 1 : 1 a) Olkoon G heikosti yhtenäinen suunnattu verkko, jossa on yhteensä n solmua. Määritelmän nojalla verkko G S on yhtenäinen, jolloin verkoksi T voidaan valita jokin verkon G S virittävä alipuu.

Lisätiedot

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

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( ) Königsbergin sillat 1700-luvun Königsbergin (nykyisen Kaliningradin) läpi virtasi joki, jonka ylitti seitsemän siltaa. Sanotaan, että kaupungin asukkaat yrittivät löytää reittiä, joka lähtisi heidän kotoaan,

Lisätiedot

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

Kysymys: Voidaanko graafi piirtää tasoon niin, että sen viivat eivät risteä muualla kuin pisteiden kohdalla? 7.7. Tasograafit Graafi voidaan piirtää mielivaltaisen monella tavalla. Graafin ominaisuudet voivat näkyä selkeästi jossain piirtämistavoissa, mutta ei toisessa. Eräs tärkeä graafiryhmä, pintagraafit,

Lisätiedot

Johdatus graafiteoriaan

Johdatus graafiteoriaan Johdatus graafiteoriaan Syksy 2017 Lauri Hella Tampereen yliopisto Luonnontieteiden tiedekunta 166 Luku 4 Erilaisia graafeja 4.1 Eulerin graafi 4.2 Hamiltonin graafi 4.3 Tasograafi 4.4 Graafin värittäminen

Lisätiedot

v 8 v 9 v 5 C v 3 v 4

v 8 v 9 v 5 C v 3 v 4 Verkot Verkko on (äärellinen) matemaattinen malli, joka koostuu pisteistä ja pisteitä toisiinsa yhdistävistä viivoista. Jokainen viiva yhdistää kaksi pistettä, jotka ovat viivan päätepisteitä. Esimerkiksi

Lisätiedot

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

b) Olkoon G vähintään kaksi solmua sisältävä puu. Sallitaan verkon G olevan Tehtävä 7 : 1 a) Olkoon G jokin epäyhtenäinen verkko. Tällöin väittämä V (G) 2 pätee jo epäyhtenäisyyden nojalla. Jokaisella joukolla X on ehto X 0 voimassa, joten ehdot A < 0 ja F < 0 toteuttavilla joukoilla

Lisätiedot

isomeerejä yhteensä yhdeksän kappaletta.

isomeerejä yhteensä yhdeksän kappaletta. Tehtävä 2 : 1 Esitetään aluksi eräitä havaintoja. Jokaisella n Z + symbolilla H (n) merkitään kaikkien niiden verkkojen joukkoa, jotka vastaavat jotakin tehtävänannon ehtojen mukaista alkaanin hiiliketjua

Lisätiedot

Algoritmi on periaatteellisella tasolla seuraava:

Algoritmi on periaatteellisella tasolla seuraava: Algoritmi on periaatteellisella tasolla seuraava: Dijkstra(V, E, l, v 0 ): S := { v 0 } D[v 0 ] := 0 for v V S do D[v] := l(v 0, v) end for while S V do valitse v V S jolle D[v] on minimaalinen S := S

Lisätiedot

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

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120 Tehtävä 1 : 1 Merkitään jatkossa kirjaimella H kaikkien solmujoukon V sellaisten verkkojen kokoelmaa, joissa on tasan kolme särmää. a) Jokainen verkko G H toteuttaa väitteen E(G) [V]. Toisaalta jokainen

Lisätiedot

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

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen Luento omatoimisen luennan tueksi algoritmiikan tutkimusseminaarissa 23.9.2002. 1 Sisältö Esitellään ongelmat Steiner-puu Kauppamatkustajan

Lisätiedot

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

Tehtävä 8 : 1. Tehtävä 8 : 2 Tehtävä 8 : 1 Merkitään kirjaimella G tarkasteltavaa Petersenin verkkoa. Olkoon A joukon V(G) niiden solmujen joukko, joita vastaavat solmut sijaitsevat tehtäväpaperin kuvassa ulkokehällä. Joukon A jokaisella

Lisätiedot

3 Suorat ja tasot. 3.1 Suora. Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta.

3 Suorat ja tasot. 3.1 Suora. Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta. 3 Suorat ja tasot Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta. 3.1 Suora Havaitsimme skalaarikertolaskun tulkinnan yhteydessä, että jos on mikä tahansa nollasta

Lisätiedot

Diskreetit rakenteet

Diskreetit rakenteet Diskreetit rakenteet 811120P 5 op 7. Oulun yliopisto Tietojenkäsittelytieteiden laitos 2015 / 2016 Periodi 1 Mikä on verkko? verkko (eli graafi) koostuu solmuista ja väleistä, jotka yhdistävät solmuja

Lisätiedot

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

Kurssikoe on maanantaina 29.6. Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla. HY / Avoin ylioisto Johdatus yliopistomatematiikkaan, kesä 201 Harjoitus 7 Ratkaisut palautettava viimeistään perjantaina 26.6.201 klo 16.00. Huom! Luennot ovat salissa CK112 maanantaista 1.6. lähtien.

Lisätiedot

8.5. Järjestyssuhteet 1 / 19

8.5. Järjestyssuhteet 1 / 19 8.5. Järjestyssuhteet 1 / 19 Määritelmä Joukon suhteilla voidaan kuvata myös alkioiden järjestystä tietyn ominaisuuden suhteen. Järjestys on myös kaksipaikkainen suhde (ja on monia erilaisia järjestyksiä).

Lisätiedot

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

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut Tietorakenteet ja algoritmit (syksy 0) Toinen välikoe, malliratkaisut. (a) Alussa puu näyttää tältä: Lisätään 4: 4 Tasapaino rikkoutuu solmussa. Tehdään kaksoiskierto ensin oikealle solmusta ja sitten

Lisätiedot

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

Eräs keskeinen algoritmien suunnittelutekniikka on. Palauta ongelma johonkin tunnettuun verkko-ongelmaan. 5. Verkkoalgoritmeja Eräs keskeinen algoritmien suunnittelutekniikka on Palauta ongelma johonkin tunnettuun verkko-ongelmaan. Palauttaminen edellyttää usein ongelman ja algoritmin pientä modifioimista,

Lisätiedot

7.4. Eulerin graafit 1 / 22

7.4. Eulerin graafit 1 / 22 7.4. Eulerin graafit 1 / 22 Viivojen läpikäynti Graafin pisteiden/viivojen läpikäyminen esiintyy usein sovelluksissa: Etsintäalgoritmit, reititykset Läpikäyminen tehdään nopeimmin, kun yhtäkään viivaa/pistettä

Lisätiedot

6.4. Järjestyssuhteet

6.4. Järjestyssuhteet 6.4. Järjestyssuhteet Joukon suhteilla voidaan kuvata myös alkioiden järjestystä tietyn ominaisuuden suhteen. Järjestys on myös kaksipaikkainen suhde (ja on monia erilaisia järjestyksiä). Suhde R joukossa

Lisätiedot

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

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa. 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. Vastaus 2. Vertaillaan

Lisätiedot

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

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle. Kombinatoriikka, kesä 2010 Harjoitus 1 Ratkaisuehdotuksia (RT (5 sivua Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle. 1. Osoita, että vuoden

Lisätiedot

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

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

Lisätiedot

Liite 2: Verkot ja todennäköisyyslaskenta

Liite 2: Verkot ja todennäköisyyslaskenta Ilkka Mellin Todennäköisyyslaskenta Liite 2: Verkot ja todennäköisyyslaskenta Verkot TKK (c) Ilkka Mellin (2007) 1 Verkko eli graafi: Määritelmä 1/2 Verkko eli graafi muodostuu pisteiden joukosta V, särmien

Lisätiedot

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

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia 58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, 10..2014, vastauksia 1. [9 pistettä] (a) Todistetaan 2n 2 + n + 5 = O(n 2 ): Kun n 1 on 2n 2 + n + 5 2n 2 + n 2 +5n 2 = 8n 2. Eli

Lisätiedot

1 Lineaariavaruus eli Vektoriavaruus

1 Lineaariavaruus eli Vektoriavaruus 1 Lineaariavaruus eli Vektoriavaruus 1.1 Määritelmä ja esimerkkejä Olkoon K kunta, jonka nolla-alkio on 0 ja ykkösalkio on 1 sekä V epätyhjä joukko. Oletetaan, että joukossa V on määritelty laskutoimitus

Lisätiedot

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus 1 / 51 Lineaarikombinaatio Johdattelua seuraavaan asiaan (ei tarkkoja määritelmiä): Millaisen kuvan muodostaa joukko {λv λ R, v R 3 }? Millaisen

Lisätiedot

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

Liite: Verkot. TKK (c) Ilkka Mellin (2004) 1 Liite: Verkot TKK (c) Ilkka Mellin (2004) 1 : Mitä opimme? Verkkoteoria on hyödyllinen sovelletun matematiikan osa-alue, jolla on sovelluksia esimerkiksi logiikassa, operaatiotutkimuksessa, peli-ja päätösteoriassa

Lisätiedot

Graafiteoria matematiikkaako?

Graafiteoria matematiikkaako? Koostanut: Elina Viro, Juho Lauri Opettajalle Graafiteoria matematiikkaako? Kohderyhmä: 7.-9.-luokkalaiset Esitiedot: - Taustalla oleva matematiikka: Graafiteoria, looginen ajattelu Ajankäyttö: Varsinainen

Lisätiedot

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

Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005 Graafin 3-värittyvyyden tutkinta T-79.165 Graafiteoria, projektityö (eksakti algoritmi), kevät 2005 Mikko Malinen, 36474R 29. maaliskuuta, 2005 Tiivistelmä Artikkelissa käydään läpi teoriaa, jonka avulla

Lisätiedot

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

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten Ratkaisuehdotelma Tehtävä 1 1. Etsi lukujen 4655 ja 12075 suurin yhteinen tekijä ja lausu se kyseisten lukujen lineaarikombinaationa ilman laskimen

Lisätiedot

802320A LINEAARIALGEBRA OSA I

802320A LINEAARIALGEBRA OSA I 802320A LINEAARIALGEBRA OSA I Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO SYKSY 2016 LINEAARIALGEBRA 1 / 72 Määritelmä ja esimerkkejä Olkoon K kunta, jonka nolla-alkio on 0 ja ykkösalkio on 1 sekä

Lisätiedot

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

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 Tehtävä 3 : 1 Olkoon G mielivaltainen epätyhjä verkko. Erityisesti siltä ei vaadita äärellisyyttä. Polut ovat verkon G koosta riippumatta määritelmän mukaan aina äärellisiä, joten kahden solmun välisen

Lisätiedot

1 sup- ja inf-esimerkkejä

1 sup- ja inf-esimerkkejä Alla olevat kohdat (erityisesti todistukset) ovat lähinnä oheislukemista reaaliluvuista, mutta joihinkin niistä palataan myöhemmin kurssilla. 1 sup- ja inf-esimerkkejä Nollakohdan olemassaolo. Kaikki tuntevat

Lisätiedot

Johdatus verkkoteoriaan 4. luento

Johdatus verkkoteoriaan 4. luento Johdatus verkkoteoriaan 4. luento 28.11.17 Viikolla 46 läpikäydyt käsitteet Viikolla 47 läpikäydyt käsitteet Verkko eli graafi, tasoverkko, solmut, välit, alueet, suunnatut verkot, isomorfiset verkot,

Lisätiedot

1 sup- ja inf-esimerkkejä

1 sup- ja inf-esimerkkejä Alla olevat kohdat (erityisesti todistukset) ovat lähinnä oheislukemista reaaliluvuista, mutta joihinkin niistä palataan myöhemmin kurssilla. 1 sup- ja inf-esimerkkejä Kaarenpituus. Olkoon r: [a, b] R

Lisätiedot

6 Vektoriavaruus R n. 6.1 Lineaarikombinaatio

6 Vektoriavaruus R n. 6.1 Lineaarikombinaatio 6 Vektoriavaruus R n 6.1 Lineaarikombinaatio Määritelmä 19. Vektori x œ R n on vektorien v 1,...,v k œ R n lineaarikombinaatio, jos on olemassa sellaiset 1,..., k œ R, että x = i v i. i=1 Esimerkki 30.

Lisätiedot

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

Tehtävä 4 : 2. b a+1 (mod 3) Tehtävä 4 : 1 Olkoon G sellainen verkko, jonka solmujoukkona on {1,..., 9} ja jonka särmät määräytyvät oheisen kuvan mukaisesti. Merkitään lisäksi kirjaimella A verkon G kaikkien automorfismien joukkoa,

Lisätiedot

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

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta AVL-puut eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta pohjana jo esitetyt binäärihakupuiden operaatiot tasapainotus vie pahimmillaan lisäajan lisäys- ja

Lisätiedot

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos: 8 Kanta Tässä luvussa tarkastellaan aliavaruuden virittäjävektoreita, jotka muodostavat lineaarisesti riippumattoman jonon. Merkintöjen helpottamiseksi oletetaan luvussa koko ajan, että W on vektoreiden

Lisätiedot

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys. Ei-säännöllisiä kieliä [Sipser luku 1.4] Osoitamme, että joitain kieliä ei voi tunnistaa äärellisellä automaatilla. Tulos ei sinänsä ole erityisen yllättävä, koska äärellinen automaatti on äärimmäisen

Lisätiedot

Avaruuden R n aliavaruus

Avaruuden R n aliavaruus Avaruuden R n aliavaruus 1 / 41 Aliavaruus Esimerkki 1 Kuva: Suora on suljettu yhteenlaskun ja skalaarilla kertomisen suhteen. 2 / 41 Esimerkki 2 Kuva: Suora ei ole suljettu yhteenlaskun ja skalaarilla

Lisätiedot

7 Vapaus. 7.1 Vapauden määritelmä

7 Vapaus. 7.1 Vapauden määritelmä 7 Vapaus Kuten edellisen luvun lopussa mainittiin, seuraavaksi pyritään ratkaisemaan, onko annetussa aliavaruuden virittäjäjoukossa tarpeettomia vektoreita Jos tällaisia ei ole, virittäjäjoukkoa kutsutaan

Lisätiedot

Algoritmit 1. Luento 9 Ti Timo Männikkö

Algoritmit 1. Luento 9 Ti Timo Männikkö Algoritmit 1 Luento 9 Ti 7.2.2017 Timo Männikkö Luento 9 Graafit ja verkot Kaaritaulukko, bittimatriisi, pituusmatriisi Verkon lyhimmät polut Floydin menetelmä Lähtevien ja tulevien kaarien listat Forward

Lisätiedot

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

keskenään isomorfiset? (Perustele!) Ratkaisu. Ovat. Tämän näkee indeksoimalla kärjet kuvan osoittamalla tavalla: a 1 b 3 a 5 Johdatus diskreettiin matematiikkaan Harjoitus 6, 21.10.2015 1. Ovatko verkot keskenään isomorfiset? (Perustele!) Ratkaisu. Ovat. Tämän näkee indeksoimalla kärjet kuvan osoittamalla tavalla: a 2 b 4 a

Lisätiedot

VERKOT. SUHTEIKOT JA VERKOT 1. Johdanto... 1 2. Pisteiden asteet...7 3. Yhtenäisyys... 11 4. Kulku suhteikossa... 18 5. Hamiltonin kulut...

VERKOT. SUHTEIKOT JA VERKOT 1. Johdanto... 1 2. Pisteiden asteet...7 3. Yhtenäisyys... 11 4. Kulku suhteikossa... 18 5. Hamiltonin kulut... Heikki Junnila VERKOT. LUKU I SUHTEIKOT JA VERKOT 1. Johdanto..... 1 2. Pisteiden asteet...7 3. Yhtenäisyys.... 11 4. Kulku suhteikossa.... 18 5. Hamiltonin kulut....... 26 Harjoitustehtäviä......35 LUKU

Lisätiedot

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100

Lisätiedot

Luonnollisten lukujen ja kokonaislukujen määritteleminen

Luonnollisten lukujen ja kokonaislukujen määritteleminen Luonnollisten lukujen ja kokonaislukujen määritteleminen LuK-tutkielma Jussi Piippo Matemaattisten tieteiden yksikkö Oulun yliopisto Kevät 2017 Sisältö 1 Johdanto 2 2 Esitietoja 3 2.1 Joukko-opin perusaksioomat...................

Lisätiedot

Äärellisten mallien teoria

Äärellisten mallien teoria Äärellisten mallien teoria Harjoituksen 5 ratkaisut (Hannu Niemistö) Tehtävä 1 OlkootGjaG neljän solmun verkkoja Määritä, milloing = 2 G eli verkot ovat osittaisesti isomorfisia kahden muuttujan suhteen

Lisätiedot

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

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Graafit ja verkot Suuntamaton graafi: eli haaroja Joukko solmuja ja joukko järjestämättömiä solmupareja Suunnattu graafi: Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Haaran päätesolmut:

Lisätiedot

1 Lukujen jaollisuudesta

1 Lukujen jaollisuudesta Matematiikan mestariluokka, syksy 2009 1 1 Lukujen jaollisuudesta Lukujoukoille käytetään seuraavia merkintöjä: N = {1, 2, 3, 4,... } Luonnolliset luvut Z = {..., 2, 1, 0, 1, 2,... } Kokonaisluvut Kun

Lisätiedot

Algoritmit 1. Luento 8 Ke Timo Männikkö

Algoritmit 1. Luento 8 Ke Timo Männikkö Algoritmit 1 Luento 8 Ke 1.2.2017 Timo Männikkö Luento 8 Järjestetty binääripuu Solmujen läpikäynti Binääripuun korkeus Binääripuun tasapainottaminen Graafit ja verkot Verkon lyhimmät polut Fordin ja Fulkersonin

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet

MS-A0402 Diskreetin matematiikan perusteet MS-A040 Diskreetin matematiikan perusteet Osa : Relaatiot ja funktiot Riikka Kangaslampi 017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Relaatiot Relaatio Määritelmä 1 Relaatio joukosta A

Lisätiedot

Kuva Suomen päätieverkko 1 Moottoritiet on merkitty karttaan vihreällä, muut valtatiet punaisella ja kantatiet keltaisella värillä.

Kuva Suomen päätieverkko 1 Moottoritiet on merkitty karttaan vihreällä, muut valtatiet punaisella ja kantatiet keltaisella värillä. POHDIN projekti TIEVERKKO Tieverkon etäisyyksien minimointi ja esimerkiksi maakaapeleiden kokonaismäärän minimointi sekä ylipäätään äärellisen pistejoukon yhdistäminen reitityksillä toisiinsa niin, että

Lisätiedot

Algoritmit 1. Luento 7 Ti Timo Männikkö

Algoritmit 1. Luento 7 Ti Timo Männikkö Algoritmit 1 Luento 7 Ti 31.1.2017 Timo Männikkö Luento 7 Järjestetty binääripuu Binääripuiden termejä Binääripuiden operaatiot Solmun haku, lisäys, poisto Algoritmit 1 Kevät 2017 Luento 7 Ti 31.1.2017

Lisätiedot

13 Lyhimmät painotetut polut

13 Lyhimmät painotetut polut TIE-20100 Tietorakenteet ja algoritmit 297 13 Lyhimmät painotetut polut BFS löytää lyhimmän polun lähtösolmusta graafin saavutettaviin solmuihin. Se ei kuitenkaan enää suoriudu tehtävästä, jos kaarien

Lisätiedot

(2n 1) = n 2

(2n 1) = n 2 3.5 Induktiotodistus Induktiota käyttäen voidaan todistaa luonnollisia lukuja koskevia väitteitä, jotka ovat muotoa väite P (n) on totta kaikille n =0, 1, 2,... Tässä väite P (n) riippuu n:n arvosta. Todistuksessa

Lisätiedot

Algoritmit 2. Luento 11 Ti Timo Männikkö

Algoritmit 2. Luento 11 Ti Timo Männikkö Algoritmit 2 Luento 11 Ti 24.4.2018 Timo Männikkö Luento 11 Rajoitehaku Kapsäkkiongelma Kauppamatkustajan ongelma Paikallinen etsintä Lyhin virittävä puu Vaihtoalgoritmit Algoritmit 2 Kevät 2018 Luento

Lisätiedot

Mikäli huomaat virheen tai on kysyttävää liittyen malleihin, lähetä viesti osoitteeseen

Mikäli huomaat virheen tai on kysyttävää liittyen malleihin, lähetä viesti osoitteeseen Mikäli huomaat virheen tai on kysyttävää liittyen malleihin, lähetä viesti osoitteeseen [email protected]. 1. 2. Muista. Ryhmän G aliryhmä H on normaali aliryhmä, jos ah = Ha kaikilla a G. Toisin

Lisätiedot

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen.

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Tietyn ominaisuuden samuus -relaatio on ekvivalenssi; se on (1) refleksiivinen,

Lisätiedot

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus.

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden

Lisätiedot

Vastauksia. Topologia Syksy 2010 Harjoitus 1

Vastauksia. Topologia Syksy 2010 Harjoitus 1 Topologia Syksy 2010 Harjoitus 1 (1) Olkoon X joukko ja (T j ) j J perhe X:n topologioita. Osoita, että T = {T j : j J} on X:n topologia. (2) Todista: Välit [a, b) muodostavat R 1 :n erään topologian kannan.

Lisätiedot

Ei-yhteydettömät kielet [Sipser luku 2.3]

Ei-yhteydettömät kielet [Sipser luku 2.3] Ei-yhteydettömät kielet [Sipser luku 2.3] Yhteydettömille kielille pätee samantapainen pumppauslemma kuin säännöllisille kielille. Siinä kuitenkin pumpataan kahta osamerkkijonoa samaan tahtiin. Lause 2.25

Lisätiedot

Algoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö

Algoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö Algoritmit 1 Luento 13 Ti 23.2.2016 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin

Lisätiedot

4.3. Matemaattinen induktio

4.3. Matemaattinen induktio 4.3. Matemaattinen induktio Matemaattinen induktio: Deduktion laji Soveltuu, kun ominaisuus on osoitettava olevan voimassa luonnollisilla luvuilla. Suppea muoto P(n) : Ominaisuus, joka joka riippuu luvusta

Lisätiedot

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0. Vapaus Määritelmä Oletetaan, että v 1, v 2,..., v k R n, missä n {1, 2,... }. Vektorijono ( v 1, v 2,..., v k ) on vapaa eli lineaarisesti riippumaton, jos seuraava ehto pätee: jos c 1 v 1 + c 2 v 2 +

Lisätiedot

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014 Koodausteoria, Kesä 2014 Topi Törmä Matemaattisten tieteiden laitos 3.5 Reedin-Mullerin koodit Olkoon tässä kappaleessa F = F2 = Z2 ja n = 2 m. Määritellään avaruuteen F n kertolasku koordinaateittain:

Lisätiedot

Algoritmit 1. Luento 13 Ma Timo Männikkö

Algoritmit 1. Luento 13 Ma Timo Männikkö Algoritmit 1 Luento 13 Ma 26.2.2018 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin

Lisätiedot

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

on Abelin ryhmä kertolaskun suhteen. Tämän joukon alkioiden lukumäärää merkitään 5. Primitiivinen alkio 5.1. Täydennystä lukuteoriaan. Olkoon n Z, n 2. Palautettakoon mieleen, että kokonaislukujen jäännösluokkarenkaan kääntyvien alkioiden muodostama osajoukko Z n := {x Z n x on kääntyvä}

Lisätiedot

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 )

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 ) Määritelmä 519 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 h v 1 v 2 v m T 1 v 1 T 2 v 2 T m v m 514 sanotaan olevan kuvausten T 1,, T m indusoima ja sitä

Lisätiedot

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä Luku 7 Verkkoalgoritmit Verkot soveltuvat monenlaisten ohjelmointiongelmien mallintamiseen. Tyypillinen esimerkki verkosta on tieverkosto, jonka rakenne muistuttaa luonnostaan verkkoa. Joskus taas verkko

Lisätiedot

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

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =

Lisätiedot

Miten osoitetaan joukot samoiksi?

Miten osoitetaan joukot samoiksi? Miten osoitetaan joukot samoiksi? Määritelmä 1 Joukot A ja B ovat samat, jos A B ja B A. Tällöin merkitään A = B. Kun todistetaan, että A = B, on päättelyssä kaksi vaihetta: (i) osoitetaan, että A B, ts.

Lisätiedot

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

Ratkaisu. Tulkitaan de Bruijnin jonon etsimiseksi aakkostossa S := {0, 1} sanapituudelle n = 4. Neljän pituisia sanoja on N = 2 n = 16 kpl. iskreetti matematiikka, syksy 00 arjoitus, ratkaisuista. seta 8 nollaa ja 8 ykköstä renkaaksi niin, että jokainen yhdistelmä 0000, 000,..., esiintyy täsmälleen kerran. Vihje: Tulkitse de ruijnin jonon

Lisätiedot

Äärellisesti generoitujen Abelin ryhmien peruslause

Äärellisesti generoitujen Abelin ryhmien peruslause Tero Harju (2008/2010) Äärellisesti generoitujen Abelin ryhmien peruslause Merkintä X on joukon koko ( eli #X). Vapaat Abelin ryhmät Tässä kappaleessa käytetään Abelin ryhmille additiivista merkintää.

Lisätiedot

Vastaoletuksen muodostaminen

Vastaoletuksen muodostaminen Vastaoletuksen muodostaminen Vastaoletus (Antiteesi) on väitteen negaatio. Sitä muodostettaessa on mietittävä, mitä tarkoittaa, että väite ei ole totta. Väite ja vastaoletus yhdessä sisältävät kaikki mahdolliset

Lisätiedot

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta 811312A Tietorakenteet ja algoritmit 2018-2019 Kertausta jälkiosasta V Hashtaulukot ja binääriset etsintäpuut Hashtaulukot Perusajatus tunnettava Tiedettävä mikä on tiivistefunktio Törmäysongelman hallinta:

Lisätiedot

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista Matematiikan johdantokurssi, syksy 06 Harjoitus, ratkaisuista. Valitse seuraaville säännöille mahdollisimman laajat lähtöjoukot ja sopivat maalijoukot niin, että syntyy kahden muuttujan funktiot (ks. monisteen

Lisätiedot

PARITUS KAKSIJAKOISESSA

PARITUS KAKSIJAKOISESSA PARITUS KAKSIJAKOISESSA GRAAFISSA Informaatiotekniikan t iik seminaari i Pekka Rossi 4.3.2008 SISÄLTÖ Johdanto Kaksijakoinen graafi Sovituksen peruskäsitteet Sovitusongelma Lisäyspolku Bipartite matching-algoritmi

Lisätiedot

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu

Lisätiedot

GRAAFITEORIAA. Pertti Koivisto Riitta Niemistö

GRAAFITEORIAA. Pertti Koivisto Riitta Niemistö GRAAFITEORIAA Pertti Koivisto Riitta Niemistö Esipuhe Tämän monisteen tarkoituksena on tutustuttaa lukija graafiteorian peruskäsitteisiin ja -tuloksiin. Vaikka algoritminen graafiteoria on tietokoneiden

Lisätiedot

10. Painotetut graafit

10. Painotetut graafit 10. Painotetut graafit Esiintyy monesti sovelluksia, joita on kätevä esittää graafeina. Tällaisia ovat esim. tietoverkko tai maantieverkko. Näihin liittyy erinäisiä tekijöitä. Tietoverkkoja käytettäessä

Lisätiedot

a b c d + + + + + + + + +

a b c d + + + + + + + + + 28. 10. 2010!"$#&%(')'+*(#-,.*/1032/465$*784 /(9:*;9."$ *;5> *@9 a b c d 1. + + + 2. 3. 4. 5. 6. + + + + + + + + + + P1. Valitaan kannaksi sivu, jonka pituus on 4. Koska toinen jäljelle jäävistä sivuista

Lisätiedot

Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8

Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8 Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8 Tuntitehtävät 1-2 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 5- loppuviikon harjoituksissa. Kotitehtävät 3-4 tarkastetaan loppuviikon

Lisätiedot

Johdatus matemaattiseen päättelyyn

Johdatus matemaattiseen päättelyyn Johdatus matemaattiseen päättelyyn Maarit Järvenpää Oulun yliopisto Matemaattisten tieteiden laitos Syyslukukausi 2015 1 Merkintöjä 2 Todistamisesta 2 3 Joukko-oppia Tässä luvussa tarkastellaan joukko-opin

Lisätiedot

Pisteet ja viivat. Multigraafi

Pisteet ja viivat. Multigraafi Pisteet ja viivat Josuv on viiva, niin pisteetujav ovat viivanuv päätepisteet (endpoints) ja u jav ovat vierekkäisiä eli vieruspisteitä (neighbours, adjacent points). Piste on irtopiste (isolated point)

Lisätiedot

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

1 Kertaus. Lineaarinen optimointitehtävä on muotoa: 1 Kertaus Lineaarinen optimointitehtävä on muotoa: min c 1 x 1 + c 2 x 2 + + c n x n kun a 11 x 1 + a 12 x 2 + + a 1n x n b 1 a 21 x 1 + a 22 x 2 + + a 2n x n b 2 (11) a m1 x 1 + a m2 x 2 + + a mn x n

Lisätiedot

LUKUTEORIA johdantoa

LUKUTEORIA johdantoa LUKUTEORIA johdantoa LUKUTEORIA JA TODISTAMINEN, MAA11 Lukuteorian tehtävä: Lukuteoria tutkii kokonaislukuja, niiden ominaisuuksia ja niiden välisiä suhteita. Kokonaislukujen maailma näyttää yksinkertaiselta,

Lisätiedot

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

Tehtävä 10 : 1. Tehtävä 10 : 2 Tehtävä 0 : Kuvassa Etelä-Amerikan valtioita vastaavat solmut on sijoitettu toisiinsa nähden niiden pääkaupunkien keskinäistä sijaintia vastaavalla tavalla. Kuvioon on joukon {0,, 2, 3 alkioilla merkitty

Lisätiedot

Kanta ja dimensio 1 / 23

Kanta ja dimensio 1 / 23 1 / 23 Kuten ollaan huomattu, saman aliavaruuden voi virittää eri määrä vektoreita. Seuraavaksi määritellään mahdollisimman pieni vektorijoukko, joka virittää aliavaruuden. Jokainen aliavaruuden alkio

Lisätiedot

Johdatus matematiikkaan

Johdatus matematiikkaan Johdatus matematiikkaan Luento 7 Mikko Salo 11.9.2017 Sisältö 1. Funktioista 2. Joukkojen mahtavuus Funktioista Lukiomatematiikassa on käsitelty reaalimuuttujan funktioita (polynomi / trigonometriset /

Lisätiedot