GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

Hasonló dokumentumok
Diszkrét Matematika MSc hallgatók számára 7. Előadás Párosítási tételek Előadó: Hajnal Péter Jegyzetelő: Kovácsházi Anna

Gráfelmélet/Diszkrét Matematika MSc hallgatók számára. Párosítások. 1. ábra.

6. Előadás. 1. Párosítások Alapfogalmak Mohó algoritmus. Diszkrét Matematika MSc hallgatók számára

Diszkrét matematika II. gyakorlat

Diszkrét matematika 2. estis képzés

Diszkrét matematika 2. estis képzés

2. Párosítások. 1. Alapfogalmak. 2. Mohó algoritmus. Diszkrét Matematika levelező MSc hallgatók számára

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.

Matematika. Számonkérés. Írásbeli vizsga januárban. 1. konzultáció. Irodalom

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2. estis képzés

Gráfelmélet jegyzet 2. előadás

Diszkrét matematika 1. estis képzés

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

Diszkrét Matematika GYAKORLAT, Levelező MSc hallgatók számára. 3. Feladatsor

Gráfok, definíciók. Gráfok ábrázolása. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek. Ábrázolások. Példa:

Diszkrét matematika 2.

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

Diszkrét matematika 2. estis képzés

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

Diszkrét matematika 1. estis képzés

Diszkrét matematika 2.C szakirány

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

Gráfelmélet/Diszkrét Matematika MSc hallgatók számára. 3. Előadás

Elmaradó óra. Az F = (V,T) gráf minimális feszitőfája G-nek, ha. F feszitőfája G-nek, és. C(T) minimális

HAMILTON KÖR: minden csúcson PONTOSAN egyszer áthaladó kör. Forrás: (

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 12.

ELTE IK Esti képzés tavaszi félév. Tartalom

HAMILTON ÚT: minden csúcson PONTOSAN egyszer áthaladó út

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

SzA II. gyakorlat, szeptember 18.

Diszkrét matematika 2.C szakirány

Algoritmusok és adatszerkezetek 2.

HÁLÓZAT Maximális folyam, minimális vágás

2. csoport, 8. tétel: Gráfok

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

Gráfelméleti feladatok. c f

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

Programozási módszertan. Mohó algoritmusok

DISZKRÉT MATEMATIKA 2 KIDOLGOZOTT TÉTELSOR 1. RÉSZ

2. Visszalépéses keresés

Algoritmuselmélet 11. előadás

Gráfalgoritmusok és hatékony adatszerkezetek szemléltetése

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

PÁROS HOSSZÚ KÖRÖK GRÁFOKBAN

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Schnyder-címkézések és alkalmazásaik

KOMBINATORIKA ELŐADÁS osztatlan matematikatanár hallgatók számára

Javító és majdnem javító utak

22. GRÁFOK ÁBRÁZOLÁSA

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Számítógép hálózatok, osztott rendszerek 2009

Diszkrét matematika 2.C szakirány

Oktatási Hivatal. 1 pont. A feltételek alapján felírhatók az. összevonás után az. 1 pont

Gráfalgoritmusok: összefüggőség, párosítás páros gráfban

Gráfok csúcsszínezései

Diszkrét matematika 2. estis képzés

További forgalomirányítási és szervezési játékok. 1. Nematomi forgalomirányítási játék

Diszkrét matematika 2.

1. tétel - Gráfok alapfogalmai

Optimalizálási eljárások/operációkutatás MSc hallgatók számára

Formális nyelvek - 9.

Diszkrét matematika 2.

Más szavakkal formálisan:, ahol olyan egész szám, hogy. Más szavakkal formálisan:, ahol olyan egész szám, hogy.

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Gráfelméleti feladatok programozóknak

Diszkrét Matematika MSc hallgatók számára. 11. Előadás. Előadó: Hajnal Péter Jegyzetelő: Szarvák Gábor november 29.

5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus.

Antimagic gráfok. Szakdolgozat. Írta: Herczeg Bonifác. Matematika BSc Alkalmazott matematikus szakirány

Diszkrét matematika 2 (C) vizsgaanyag, 2012 tavasz

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Logika és számításelmélet. 11. előadás

Megoldások 7. gyakorlat Síkgráfok, dualitás, gyenge izomorfia, Whitney-tételei

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

KOMBINATORIKUS OPTIMALIZÁLÁS

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Formális nyelvek - 5.

Algoritmusok bonyolultsága

Feladatok, amelyek gráfokkal oldhatók meg 1) A königsbergi hidak problémája (Euler-féle probléma) a

KOMBINATORIKA ElŐADÁS Matematika BSc hallgatók számára. Klikkek gráfokban-1. Definíció. Egy G gráfban egy K V(G) csúcshalmazt klikknek nevezünk, ha K

Algoritmusok bonyolultsága

Gépi tanulás Gregorics Tibor Mesterséges intelligencia

Hadamard-mátrixok Előadó: Hajnal Péter február 23.

Gráfelméleti alapfogalmak-1

Közösség detektálás gráfokban

III. Gráfok. 1. Irányítatlan gráfok:

Arany Dániel Matematikai Tanulóverseny 2015/2016-os tanév 1. forduló Haladók III. kategória

A számítástudomány alapjai

Algoritmizálás, adatmodellezés tanítása 8. előadás

Átírás:

GRÁFELMÉLET 7. előadás Javító utak, javító utak keresése, Edmonds-algoritmus Definíció: egy P utat javító útnak nevezünk egy M párosításra nézve, ha az út páratlan hosszú, kezdő- és végpontjai nem párosítottak, és minden páros sokadik éle eleme az M párosításnak ( minden páratlan sokadik éle nem eleme az M párosításnak, 1. ábra). P V 1 V 3 V k-1 e 1 e 2 e 3 e 4 e k V 0 V 2 V 4 V k 1. ábra: Javító út Javító utak segítségével egy M 0 kezdeti párosításból kiindulva újabb párosításokat kaphatunk, amelyek jobbak, mint az előző, és valahány iteráció elteltével az optimális M megoldást kaphatjuk meg. Egy párosítás javítása alatt a párosított és nem párosított élek cseréjét értjük az út mentén. Ezt formalizálja a következő lemma: Lemma: Legyen G egy gráf, M párosítás G-ben. Ha P javító út M-re nézve, akkor M nem optimális elemszámú párosítás. Bizonyítás: Legyen M =(M \ E(P)) (E(P) \ M) = M E(P) egy párosítás. Ekkor M = M +1 Ez alapján megadható egy egyszerű bővítő eljárás: ha egy éllel az M párosítás bővíthető, akkor ez egy 1 hosszú javító útnak tekintendő. Ekkor M megkapható úgy, hogy M-hez hozzávesszük ezt az élt. Állításunkat a következő lemma foglalja össze: Lemma (Berge): Legyen G egy gráf, M párosítás G-ben. Ha M nem optimális, akkor létezik rá vonatkozó javító út.

A fenti két lemmából megkonstruálható egy maximális párosítást kereső eljárás. A továbbiakban bemutatjuk a javító utak keresésének egy mohó változatát. Ez egy fázisokra osztott címkézési eljárás. Előbb azonban meg kell adnunk a javító út kezdemény definícióját. Definíció: egy P utat javító út kezdeménynek nevezünk, ha elképzelhető róla, hogy javító út kezdete. Formálisan: v 0, e 1, v 1, e 2, v 2,..., v k-2, e k-1, v k-1, e k, v k egy (M-re vonatkozó) javító út kezdemény, ha v 0 párosítatlan, és minden páros indexű él eleme M-nek. Egy párosítatlan csúcs által alkotott egy hosszú sorozat egy 0 hosszú javító út kezdemény. A mohó javító út kereső algoritmus ilyen javító út kezdeményeket növel. Amennyiben eljutunk egy még párosítatlan csúcshoz, akkor találtunk egy javító utat. Az algoritmus mohó jellege abból fakad, hogy ha találtunk egy csúcshoz vezető javító út kezdeményt, akkor ez a csúcs más javító út kezdemények növelésére nem használható fel. Mohó javító út kereső algoritmus: Kiindulunk 0-hosszú javító út kezdemények halmazából, K 0 P(M), ahol P(M) a párosítatlan csúcsok halmaza. címkézési eljárás: ha egy x csúcsba vezető javító út kezdeményt találunk, akkor címkézzük meg x-et: külső -vel, ha páros hosszú az út, és belső -vel, ha páratlan. Címkéket csak eddig még nem címkézett pontoknak osztunk. Definiáljuk a következő halmazokat: K = { külső címkéjű pontok}, B = { belső címkéjű pontok}, C = {címkézett pontok} = K B. címkenövelő eljárás: keressünk egy k külső pontnak egy címkézetlen s szomszédját, azaz olyan ks E(G)-t, ahol k K és s C. Ekkor három eset lehetséges: s P(M) s P(M) nincs ilyen Javító utat találtunk Legyen s M menti párja s, ekkor s és s címkét kap, bővítjük K 0 t és folytatjuk a keresést Sikertelen keresés A keresés során mindig szomszédos pontokra lépkedünk. k után a címkék M-beli párokban jönnek, a középső eset miatt (2. ábra). Ebből adódik, hogy címke kiosztásnál s is szükségszerűen címkézetlen csúcs.

k K belső külső k s s 2. ábra: Címkenövelés A keresés során bejárt irányított élek meghatároznak egy keresési erdőt. Ennek minden komponense K 0 valamelyik csúcsában gyökereztetett fa. A fa 2-hosszú ágak hajtásával növekszik a külső pontokból. A fenti algoritmus egy naiv algoritmus. A sikertelen futás nem jelenti azt, hogy nincs javító út a gráfban. A mohó jelleg miatt bizonyos javító út kezdeményeket nem veszünk figyelembe. Lehetséges, hogy a keresés egy v csúcsot belső pontként ér el. Ekkor a keresés következő lépése előírt, v v párja felé halad tovább és v más szomszédja felé nem megy el. Egy esetleg kihagyott javító út kezdemény v-t külső pontként éri el. Ennek a lehetőségnek a kihagyása eredményezheti a sikertelenséget. v 2 1 3. ábra: Példa sikertelen keresésre (létezik javító út) A fenti ábrán látható egy sikertelen keresés. Az 1-es fázisban v-t külső pontként eléri, és címkét kap, azonban látható, hogy létezik javító út. Ezt akkor találnánk meg, ha a 2-es fázis szerint haladnánk v felé (a javító út keresése lentről felfelé halad).

Megjegyzés: Tegyük fel, hogy G páros, és K 0 = P(M) A. Ekkor ha a keresés sikertelen, akkor nincs javító út. Az előbb megismert algoritmus páros gráfokra működik. A következőkben megismerünk egy olyan algoritmust, ami általános gráfokban keres javító utat. Edmonds-algoritmus Kiindulunk 0-hosszú javító út kezdemények halmazából, K 0 P(M), ahol P(M) a párosítatlan csúcsok halmaza. hajtsuk végre a fentebb megismert címkenövelő eljárást elakadásig (sikertelen keresés, ez mindig be fog következni, mert a keresés az összes párosítatlan pontból indul, és az elért pontokat mindig megcímkézzük, és címkét nem írhatunk át) keressünk olyan kk élt, amelyre k, k K. Három lehetőség van: 1. 2. 3. Összeolvasztó lépés Zsugorító lépés Feladó lépés k-t és k -t különböző K 0 -beli csúcsokból érte el a keresés javító utat találtunk olyan k és k között vezet él, amelyeket azonos r K 0 -ból induló keresés ért el: nincs ilyen sikertelen keresés e C k k a K r Ekkor keletkezik egy C kör, az a csúcs az a csúcs, ahol a keresés kettéválik 1. Ekkor a zsugorító lépés következik zsugorító lépés: ebben a lépésben egy kör ponthalmazát egyetlen pontba húzzuk össze, majd a kapott új gráfra folytatjuk az algoritmust. 1 Előadáson azt mondtuk ekkor, hogy a csiga kidugja a szemeit

Definíció: Egy G gráfban egy C kör zsugorításán a következő G gráfot értjük: V(G ) = ( V(G) \ V(C) ) {c}, ahol c V(G) egy új pont E(G ) = E(G) \ { uv E(G) : u,v V(C) } I(G ) = I(G) (V(G ) \ {c}) E(G ) { (c,e) : e = xy E(G ), x V(C) } G G C P v 1 a(c) v 2 P c 4. ábra: Példa zsugorításra A 4. ábrán látható példán a v 1 és a v 2 végpontok egyesítésével, a köztük futó két élt eltüntetve a C kört egy pontba ejtjük össze 2. Legyen az M az M párosítás K-n kívüli éleinek képe G -ben, továbbá F egy alternáló erdő, amely G részgráfjaiból áll, és F csúcsai F csúcsainak képe, élei F C-n kívüli éleinek képe. Az algoritmus meghívja önmagát a G, M, F -vel a címkéző lépéssel. Lemma: M egy párosítás G -ben, továbbá F egy kereső (alternáló) erdő M -re nézve Ez a lépés (ti. hogy a címkéző lépéssel folytatjuk) rendkívül fontos. A C kör pontjai közt vannak belső és külső pontok, ezeket mind az új c pont reprezentálja, ami az F erdőre nézve külső pont. Tehát a C kör belső pontjainak nem címkézett szomszédjai a c (külső) pont szomszédjaiként a keresés számára elérhetőek. A kör összes pontjának egy külső pontként való reprezentálása természetes, mert a kör mindegyik pontjába vezet páros hosszú javító út kezdemény. A kör belső pontjaihoz az elágazási pontból (a pont, lásd az ábra 2. lehetősége) nem az eredeti keresést, hanem a zsugorított kör másik ívét kell venni (lásd 3. ábra 2-es út). A rekurzív algoritmus kimenete egy javító út egy (többszörösen) zsugorított gráfban, vagy a keresés sikertelenségének felismerése egy (többszörösen) zsugorított gráfban. 2 Itt pedig azt mondtuk, hogy a csiga visszahúzza a szemeit

is. 1. Lemma: Ha egy többszörösen zsugorított gráfban van javító út, akkor az eredetiben 2. Lemma: Ha egy többszörösen zsugorított gráfban az Edmonds-algoritmus a sikertelen keresési ágba jut, akkor nincs javító út, tehát az aktuális M párosítás maximális. 3 Végezetül még egyszer, röviden az Edmonds-algoritmus összefoglalva: Bemenet: G gráf és egy M párosítás Kimenet: M maximális elemszámú párosítás Kiinduló lépés: Legyen M = Bővítő lépés: Keressünk M-re vonatkozó javító utat. Ha találunk, akkor az 1. lemma alapján keressünk egy G-belit, és bővítsük ezzel M-et. Ha sikertelen a keresés, akkor M maximális, vége az eljárásnak. 3 Az 1. lemma konstruktív bizonyítása az algoritmus fontos része, e két lemmát a következő órán bizonyítottuk