PARITUS KAKSIJAKOISESSA

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

Graateorian maksimivirtausalgoritmi

10. Painotetut graafit

Algoritmit 1. Luento 8 Ke Timo Männikkö

6.4. Järjestyssuhteet

T : Max-flow / min-cut -ongelmat

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

Harjoitus 3 ( )

Algoritmit 1. Luento 9 Ti Timo Männikkö

8.5. Järjestyssuhteet 1 / 19

Mat Lineaarinen ohjelmointi

Harjoitus 3 ( )

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

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

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

Johdatus graafiteoriaan

Malliratkaisut Demot

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

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

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Eloisuusanalyysi. TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2009 TIETOTEKNIIKAN LAITOS. Eloisuusanalyysi.

Luentorunko Kevät Matti Peltola.

Lyhin kahden solmun välinen polku

A TIETORAKENTEET JA ALGORITMIT

7.4. Eulerin graafit 1 / 22

Graafin virittävä puu 1 / 20

Algoritmi on periaatteellisella tasolla seuraava:

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

10. Painotetut graafit

Puiden karakterisointi

isomeerejä yhteensä yhdeksän kappaletta.

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

Näytetään nyt relaatioon liittyvien ekvivalenssiluokkien olevan verkon G lohkojen särmäjoukkoja. Olkoon siis f verkon G jokin särmä.

Johdatus graafiteoriaan

A TIETORAKENTEET JA ALGORITMIT

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

Algoritmit 1. Luento 13 Ti Timo Männikkö

Tarkennamme geneeristä painamiskorotusalgoritmia

T Informaatiotekniikan seminaari: Kombinatorinen Optimointi

Algoritmit 1. Luento 1 Ti Timo Männikkö

Kiinalaisen postimiehen ongelma

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

Algoritmit 1. Luento 10 Ke Timo Männikkö

5.2 Eulerin kehät ja -polut

Relevanttien sivujen etsintä verkosta: satunnaiskulut verkossa Linkkikeskukset ja auktoriteetit (hubs and authorities) -algoritmi

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

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

Johdatus verkkoteoriaan 4. luento

Malliratkaisut Demot

Harjoitus 1 ( )

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

Totaalisesti unimodulaariset matriisit voidaan osoittaa olevan rakennettavissa oleellisesti verkkomalleihin liittyvistä matriiseista

Mat Lineaarinen ohjelmointi

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

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

Kokonaislukuoptimointi hissiryhmän ohjauksessa

Malliratkaisut Demot

Johdatus graafiteoriaan

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

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

Verkon värittämistä hajautetuilla algoritmeilla

Verkkojen värittäminen

Kombinatorinen optimointi

Algoritmit 1. Luento 7 Ti Timo Männikkö

Malliratkaisut Demot

MS-A0402 Diskreetin matematiikan perusteet

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

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

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

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

Algoritmit 2. Luento 5 Ti Timo Männikkö

Harjoitus 4 ( )

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 5 / vko 48

Kokonaislukukapasiteetti. Max-Flow Min-Cut

Harjoitus 1 ( )

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

Mat Lineaarinen ohjelmointi

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 17. marraskuuta 2009

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


Algoritmit 2. Luento 5 Ti Timo Männikkö

9. Graafit Graafin abstrakti tietotyyppi

Kuljetustehtävä. Materiaalia kuljetetaan m:stä lähtöpaikasta n:ään tarvepaikkaan. Kuljetuskustannukset lähtöpaikasta i tarvepaikkaan j ovat c ij

Algoritmit 2. Luento 6 Ke Timo Männikkö

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

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

Rakenteellinen tasapaino ja transitiivisyys

Shorin algoritmin matematiikkaa Edvard Fagerholm

7. Satunnaisalgoritmit (randomized algorithms)

Graphs in Social Network Analysis And Modeling. Graafit sosiaalisten verkostojen mallintamisessa

14. Luennon sisältö. Kuljetustehtävä. Verkkoteoria ja optimointi. esimerkki. verkkoteorian optimointitehtäviä verkon virittävä puu lyhimmät polut

13 Lyhimmät painotetut polut

T Syksy 2005 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )

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

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

Search space traversal using metaheuristics


Department of Mathematics, Hypermedia Laboratory Tampere University of Technology. Arvostus Verkostoissa: PageRank. Idea.

v 8 v 9 v 5 C v 3 v 4

Transkriptio:

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 Kaksijakoisen verkon sovitus ja maksimivuo Yhteenveto

JOHDANTO Paritus tai sovitus (matching) on verkon viivojen joukko, jossa kaksi k viivaa ei voi liittyä yhteen solmuun Ongelmalla monia käytännön sovelluksia Tässä käydään läpi painottoman kaksijakoisen verkon sovitus Hieman vaativamman ongelman muodostaa painotetun verkon sovitus (weighted bipartite matching)

JOHDANTO Lähtökohtana sovitusongelmassa on graafi G G = (V,E) V solmujen (nodes, vertices) joukko E viivojen (edges) joukko

KAKSIJAKOINEN GRAAFI Olkoon graafi B = (W,E), jossa joukkow sisältää graafin solmut ja E viivat Oletetaan lisäksi että W on jaettu kahteen osajoukkoon, V ja U, ja jokaisella joukon E viivalla on toinen solmu joukossa U ja toinen joukossa V Tällöin graafi B=(W,E)=(V,U,E) on kaksijakoinen g (, ) (,, ) j (bipartite graph)

KAKSIJAKOINEN GRAAFI Graafi on kaksijakoinen jos ja vain jos se ei sisällä parittoman pituisia kierroksia

SOVITUKSEN PERUSKÄSITTEET Sovitus M: Viivojen joukko, jossa kaksi viivaa ei liity samaan solmuun Joukkoon M kuuluvia viivoja kutsutaan sovitetuiksi viivoiksi (matching edges) Muut verkon viivat ovat vapaita (free) Jos solmu ei kuulu mihinkään sovitettuun viivaan, on se sovittamaton (exposed) Sovituksen koko M on sovitteessa M olevien viivojen lukumäärä Jos sovitteen M kokoa k ei voida kasvattaa graafissa G, on se maksimisovitus.

SOVITUKSEN PERUSKÄSITTEET Esimerkki: Viivat M = {[v 2,v 3 ],[v 4,v 5 ],[v 6,v 8 ],[v 7,v 10 ]} muodostavat sovitteen Muut viivat ovat vapaita Solmut v 1 ja v 9 ovat sovittamattomia

SOVITUSONGELMA Sovitusongelma: Löydä maksimisovitus graafissa G = (E,V) Ei Esim: Assignment Problem n miestä ja n työtehtävää. Miten jakaa työtehtävät miehille, kun kaikki miehet eivät voi tehdä kaikkia työtehtäviä? Muodostetaan ongelmasta kaksijakoinen k k i graafi Ratkaisu saadan graafin maksimisovituksesta

LISÄYSPOLKU Verkon G polku p = [u 1,u 2,..,u k ] on vuorotteleva (alternating path), jos Ensimmäinen polun alkio on sovittamaton Joka toinen viiva on vapaa ja joka toinen sovitettu Jos myös vaihtelevan polun p viimeinen alkio on sovittamaton, p on lisäyspolku yp (augmented path) Tämä on tärkeä käsite, jota sovelletaan kaksijakoisen graafin sovitusongelman ratkaisemiseen i

LISÄYSPOLKU Esimerkiksi polku p 1 = [v 1,v 2,v 3,v 5,v 4,v 8 ] on vuorotteleva polku Polku p 2 = [v 1,v 4,v 5,v 6,v 8,v 9 ] on lisäksi myös lisäyspolku

SOVITTEEN KASVATTAMINEN Sovitteen kokoa voidaan kasvattaa lisäyspolun avulla Lemma 1: Olkoon M verkon sovitus ja P lisäyspolun p kaaret. Tällöin M = M P = XOR ( M, P ) on sovite kooltaan M + 1 Todistuksen idea: Näytetään tää ensin, että M = XOR(M,P) on sovite Näytetään että, uuden sovitteen koko on M +1 Toteutuu, jos joukossa P on joukkoon M kuulumattomia viivoja

SOVITTEEN KASVATTAMINEN Teoreema 1: Verkon G sovite M on maksimaalinen jos ja vain jos verkossa G ei ole lisäyspolkua Heuristinen perustelu: Jos verkolla on maksimaalinen sovitus, joukossav tai joukossa U kaikki solmut ovat sovitettuja. tt Tällöin verkossa ei ole myöskään lisäyspolkua.

BIPARTITE MATCHING-ALGORITMI Bipartite matching-algoritmi nojaa voimakkaasti Lemmaan 1 ja teoreemaan 1 Algoritmin idea yksinkertaisesti: 1. Etsi jokin lisäyspolku lk P 2. Muodosta M =M P 3. Mene takaisin kohtaan 1. ja toista kunnes verkosta ei löydy enää lisäyspolkua

BIPARTITE MATCHING-ALGORITMI Oletataan esimerkiksi, että meillä on kuvan a) sovite M = [(v 3,u 2 ),(v 1,u 1 )] Tällöin laajennuspolkua lk voidaan etsiä lähtemällä ällä liikkeelle sovittamattomasta solmusta v 2 Tämä voidaan tehdä bfs-hakuna, kunnes löydetään toinen sovittamaton solmu v 3 (kuva b) a) Saadaan laajennuspolun viivat P = [(v 2,u 2 ),(u 2,v 3 ),(v 3,u 3 )] b)

BIPARTITE MATCHING-ALGORITMI Nyt M = M P = [(v 3,u 2 ),(v 1,u 1 )] [(v 2,u 2 ),(v 3,u 2 ),(v 3,u 3 )] = [(v 1,uu 1 )(v ),(v 2,uu 2 )(v ),(v 3,uu 3 )] Kuvan verkolle tämä on myös maksimisovitus

KAKSIJAKOISEN VERKON SOVITUS JA MAKSIMIVUO Kaksijakoisen verkon sovitusongelma voidaan muuttaa max-flow-ongelmaksi Olkoon B = (V,U,E) kaksijakoinen verkko. Määritellään verkon B avulla seuraava flowverkko N(s,t,W,A), jossa kunkin kaaren kapasiteetti tti on yksi 1. Kaari lähteestä (source) s jokaiseen joukon V alkioon 2. Kaari jokaisesta joukon U alkosta nieluun (sink) t 3. Korvataan verkon B viivat joukosta V joukkoon U suuntautuvilla kaarilla

KAKSIJAKOISEN VERKON SOVITUS JA MAKSIMIVUO Teoreema 2 Kaksijakoisen verkon maksimisovitus on yhtä suuri kuin verkon N(B) s-t-maksimivuo i Kaksijakoisen verkon sovitus voidaan ratkaista maxflow-ongelman ongelman menetelmillä

KAKSIJAKOISEN VERKON SOVITUS JA MAKSIMIVUO Perustelu maksimivuolle: Jokaisesta joukon V solmusta lähtevän kaaren vuo on yksi Jos solmuun tulee kaksi kaarta ja toisen kaaren vuo 1, niin toisen kaaren vuon täytyy olla 0, koska muuten vuon säilyminen rikkoutuu

YHTEENVETO Verkon sovitusongelma voidaan ratkaista lisäyspolkujen avulla Tällöin maksimisovitus i it löytyy kasvattamalla sovituksen kokoa iteratiivisesti lisäyspoluilla Analogia muiden LP-ongelmien iteratiivisten ratkaisumenetelmien kanssa Sovitusongelma voidaan muuttaa max-flowtehtäväksi Tällöin maksimisovitus voidaan ratkaista max-flowmenetelmien avulla