7. Skojarzenia w grafach. 7.1 Definicje i twierdzenia

Podobne dokumenty
Graf. Definicja marca / 1

Digraf. 13 maja 2017

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki.

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

SKOJARZENIA i ZBIORY WEWN. STABILNE WIERZCH. Skojarzeniem w grafie G nazywamy dowolny podzbiór krawędzi parami niezależnych.

5. Najkrótsze ścieżki

Podstawowe własności grafów. Wykład 3. Własności grafów

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Znajdowanie skojarzeń na maszynie równoległej

TEORIA GRAFÓW I SIECI

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Znajdowanie maksymalnych skojarzeń przy pomocy eliminacji Gaussa

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz?

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Teoria grafów podstawy. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

TEORETYCZNE PODSTAWY INFORMATYKI

Suma dwóch grafów. Zespolenie dwóch grafów

Sortowanie topologiczne skierowanych grafów acyklicznych

E ' E G nazywamy krawędziowym zbiorem

Kolorowanie wierzchołków

Matematyczne Podstawy Informatyki

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

5c. Sieci i przepływy

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

TEORIA GRAFÓW I SIECI

Matematyka dyskretna. Andrzej Łachwa, UJ, A/14

Maksymalne skojarzenia przy pomocy eliminacji Gaussa

Algorytmiczna teoria grafów

10. Kolorowanie wierzchołków grafu

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Matematyka dyskretna

Luty 2001 Algorytmy (4) 2000/2001

Algorytmiczna teoria grafów

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

TEORIA GRAFÓW I SIECI

Lista 4. Kamil Matuszewski 22 marca 2016

Wprowadzenie Podstawy Fundamentalne twierdzenie Kolorowanie. Grafy planarne. Przemysław Gordinowicz. Instytut Matematyki, Politechnika Łódzka

Algorytmika Problemów Trudnych

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i

Skojarzenia w grafach

6. Wstępne pojęcia teorii grafów

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Zagadnienie najkrótszej drogi w sieci

Algorytmy i Struktury Danych.

Układy równań i nierówności liniowych

Skojarzenia. Najliczniejsze skojarzenia: Dokładne skojarzenia o maksymalnej sumie wag w obcionych pełnych grafach dwudzielnych.

Matematyka dyskretna - 5.Grafy.

Łatwy dowód poniższej własności pozostawiamy czytelnikowi.

Elementy teorii grafów Elementy teorii grafów

Wykłady z Matematyki Dyskretnej

Matematyczne Podstawy Informatyki

Grafy. Graf ( graf ogólny) to para G( V, E), gdzie:

KURS MATEMATYKA DYSKRETNA

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Ścieżki w grafach. Grafy acykliczne i spójne

2. FUNKCJE. jeden i tylko jeden element y ze zbioru, to takie przyporządkowanie nazwiemy FUNKCJĄ, lub

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

6d. Grafy dwudzielne i kolorowania

Spis treści Podstawowe definicje Wielomian charakterystyczny grafu Grafy silnie regularne

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Matematyka dyskretna - 7.Drzewa

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Przestrzenie metryczne. Elementy Topologii. Zjazd 2. Elementy Topologii

8. Obchód Eulera grafu. 8.1 Definicje i twierdzenia

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Poniżej 14 r.ż. 1 (0,5%) 1 (0,9%) r.ż. 11 (6,0%) 21 (18,9%) r.ż. 59 (32,2%) 44 (39,6%) r.ż. 38 (20,8%) 15 (13,5%) Powyżej 25 r.ż.

Wykład 4. Droga i cykl Eulera i Hamiltona

Opracowanie prof. J. Domsta 1

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

Metody numeryczne I Równania nieliniowe

Minimalne drzewa rozpinające

Dynamiczne drzewa. Marian M. Kędzierski. 26 listopada Wstęp Euler-Tour Trees Dynamiczna spójność Algorytm Dinica Link-Cut Trees

Zadania z egzaminów z Algorytmiki

Zadania z ćwiczeń #18 (pon. 7 maja) Matematyka Dyskretna

KURS MATEMATYKA DYSKRETNA

LX Olimpiada Matematyczna

Dlaczego nie wystarczają liczby wymierne

Internetowe Ko³o M a t e m a t yc z n e

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Droga i cykl Eulera Przykłady zastosowania drogi i cyku Eulera Droga i cykl Hamiltona. Wykład 4. Droga i cykl Eulera i Hamiltona

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Podstawowe definicje i notacje (część, bo pewnie potem będzie więcej)

Złożoność obliczeniowa klasycznych problemów grafowych

7. Teoria drzew - spinanie i przeszukiwanie

Kolorowanie wierzchołków grafu

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

Programowanie liniowe

LI Olimpiada Matematyczna Rozwiązania zadań konkursowych zawodów stopnia trzeciego 3 kwietnia 2000 r. (pierwszy dzień zawodów)

Transkrypt:

p. 7. Skojarzenia w grafach 7.1 Definicje i twierdzenia

p. 7. Skojarzenia w grafach 7.1 Definicje i twierdzenia Definicja (Skojarzenie w grafie). Podzbiór M zbioru krawędzi E(G) nazywamy skojarzeniem grafu G jeżeli M nie zawiera pętli i żadne dwie krawędzie z M nie sa przyległe. Dwa końce krawędzi z M sa skojarzone przez M.

p. 7. Skojarzenia w grafach 7.1 Definicje i twierdzenia Definicja (Skojarzenie w grafie). Podzbiór M zbioru krawędzi E(G) nazywamy skojarzeniem grafu G jeżeli M nie zawiera pętli i żadne dwie krawędzie z M nie sa przyległe. Dwa końce krawędzi z M sa skojarzone przez M. Mówimy, że skojarzenie M nasyca wierzchołek v (lub, że v jest M-nasycony) jeżeli pewna krawędź z M jest incydentna z v; w przeciwnym razie wierzchołek v jest M-nienasycony.

p. Definicja (Skojarzenie doskonałe i największe). Jeżeli skojarzenie M nasyca każdy wierzchołek grafu G, to M nazywamy skojarzeniem doskonałym. Natomiast M jest skojarzeniem największym jeżeli graf G nie ma skojarzenia M takiego, że M > M.

p. Definicja (Skojarzenie doskonałe i największe). Jeżeli skojarzenie M nasyca każdy wierzchołek grafu G, to M nazywamy skojarzeniem doskonałym. Natomiast M jest skojarzeniem największym jeżeli graf G nie ma skojarzenia M takiego, że M > M. Oczywiście każde skojarzenie doskonałe jest największe, chociaż nie zawsze skojarzenie największe jest doskonałe

p. Definicja (Skojarzenie doskonałe i największe). Jeżeli skojarzenie M nasyca każdy wierzchołek grafu G, to M nazywamy skojarzeniem doskonałym. Natomiast M jest skojarzeniem największym jeżeli graf G nie ma skojarzenia M takiego, że M > M. Oczywiście każde skojarzenie doskonałe jest największe, chociaż nie zawsze skojarzenie największe jest doskonałe Definicja. Ścieżkę, do której należa na przemian krawędzie z M i M c, gdzie M c = E(G) M, nazywać będziemy ścieżka M -przemienna. Jeżeli poczatek i koniec M -przemiennej ścieżki jest M -nienasycony, to nazywamy ja ścieżka M -powiększajac a.

p. Twierdzenie (Petersen, Berge). Skojarzenie M w grafie G jest największe wtedy i tylko wtedy, gdy G nie zawiera ścieżki M -powiększajacej.

p. Twierdzenie (Petersen, Berge). Skojarzenie M w grafie G jest największe wtedy i tylko wtedy, gdy G nie zawiera ścieżki M -powiększajacej.

7.2 Skojarzenia w grafach dwudzielnych p.

p. 7.2 Skojarzenia w grafach dwudzielnych klasyczny mini-maxowy zwiazek podany przez Königa (191) charakteryzuje rozmiar (moc) największego skojarzenia (α (G)) w grafie dwudzielnym

p. 7.2 Skojarzenia w grafach dwudzielnych klasyczny mini-maxowy zwiazek podany przez Königa (191) charakteryzuje rozmiar (moc) największego skojarzenia (α (G)) w grafie dwudzielnym Definicja. Podzbiór U zbioru V (G) nazywamy pokryciem wierzchołkowym (krawędzi) jeżeli każda krawędź grafu G ma przynajmniej jeden koniec w U (moc najmniejszego pokrycia wierzchołkowego oznaczamy przez β(g)).

p. 7.2 Skojarzenia w grafach dwudzielnych klasyczny mini-maxowy zwiazek podany przez Königa (191) charakteryzuje rozmiar (moc) największego skojarzenia (α (G)) w grafie dwudzielnym Definicja. Podzbiór U zbioru V (G) nazywamy pokryciem wierzchołkowym (krawędzi) jeżeli każda krawędź grafu G ma przynajmniej jeden koniec w U (moc najmniejszego pokrycia wierzchołkowego oznaczamy przez β(g)). Twierdzenie (König, 191). W grafie dwudzielnym G moc największego skojarzenia jest równa mocy najmniejszego pokrycia wierzchołkowego, tzn. α (G) = β(g)

p. Wniosek (Twierdzenie Frobeniusa, 1917). Dwudzielny graf G ma skojarzenie doskonałe wtedy i tylko wtedy gdy każde pokrycie wierzchołkowe ma rozmiar co najmniej V (G) /2.

p. Wniosek (Twierdzenie Frobeniusa, 1917). Dwudzielny graf G ma skojarzenie doskonałe wtedy i tylko wtedy gdy każde pokrycie wierzchołkowe ma rozmiar co najmniej V (G) /2. Dowód. Wynika bezpośrednio z twierdzenia Königa, ponieważ graf G ma skojarzenie doskonałe wtedy i tylko wtedy gdy α (G) V /2.

p. Wniosek (Twierdzenie Frobeniusa, 1917). Dwudzielny graf G ma skojarzenie doskonałe wtedy i tylko wtedy gdy każde pokrycie wierzchołkowe ma rozmiar co najmniej V (G) /2. Dowód. Wynika bezpośrednio z twierdzenia Königa, ponieważ graf G ma skojarzenie doskonałe wtedy i tylko wtedy gdy α (G) V /2. Wniosek (Twierdzenie o parach małżeńskich). Jeżeli G jest k-regularnym grafem dwudzielnym (k > 0), to G ma skojarzenie doskonałe.

p. Wniosek (Twierdzenie Frobeniusa, 1917). Dwudzielny graf G ma skojarzenie doskonałe wtedy i tylko wtedy gdy każde pokrycie wierzchołkowe ma rozmiar co najmniej V (G) /2. Dowód. Wynika bezpośrednio z twierdzenia Königa, ponieważ graf G ma skojarzenie doskonałe wtedy i tylko wtedy gdy α (G) V /2. Wniosek (Twierdzenie o parach małżeńskich). Jeżeli G jest k-regularnym grafem dwudzielnym (k > 0), to G ma skojarzenie doskonałe. Dowód. Jeżeli graf G jest k-regularnym grafem dwudzielnym to każdy jego wierzchołek jest incydentny z dokładnie k krawędziami. Ponieważ E(G) = k V (G) /2, więc potrzebujemy co najmniej V (G) /2 wierzchołków aby pokryć wszystkie krawędzie. Zatem z twierdzenia Frobeniusa wynika, że w G istnieje skojarzenie doskonałe.

p. Algorytm węgierski Dane: graf dwudzielny G (V = (X,Y )) oraz skojarzenie M Poszukiwane: największe skojarzenie w grafie G 1. Zorientuj każda krawędź e = xy, gdzie x X, y Y grafu G w następujacy sposób: (a) jeżeli e M to zorientuj e od y do x (b) jeżeli e M to zorientuj e od x do y 2. Znajdź zbiory X M i Y M wierzchołków M-nienasyconych w zbiorach, odpowiednio, X i Y.

p. Znajdź ścieżkę M-powiększajac a P, poprzez wyznaczenie skierowanej ścieżki (o ile taka istnieje) z X M do Y M, M M E(P) i przejdź do kroku 1, w przeciwnym razie STOP. Twierdzenie. Największe skojarzenie w grafie dwudzielnym można znaleźć w czasie O(nm). Dowód. Zauważmy, że w powyższym algorytmie mamy co najwyżej n iteracji, z których każda może być wykonana, za pomoca algorytmu BFS, w czasie O(m)

p.

p. 1

p. 1

p. 1

p. 1

4 / YM 4 / YM p. 1 G = ((X, Y ), E) M XM YM e = xy E XM XM {x}; YM YM {y} e M! yx "e e xy # XM - 1% '+ 2 $ 1 1 * 0 XM X \ XM; YM Y \ YM exists exists { P M M E(P) exists - '+./,+ ( '+ '( )* $ %& XM - 1% '+ 2 $ 1 1 * 0 - '+./ 5 *1( 4 /0/ " " " 6 6 "(M)

p. 1 Kolejny algorytm dowodzi, że można poprawić czas znajdowania skojarzenia o największej mocy do następujacych wartości:

p. 1 Kolejny algorytm dowodzi, że można poprawić czas znajdowania skojarzenia o największej mocy do następujacych wartości: Twierdzenie. Największe skojarzenie w grafie dwudzielnym można znaleźć w czasie O(n 1/2 m). Twierdzenie. Największe skojarzenie w grafie dwudzielnym można znaleźć w czasie O(β(G) 1/2 m) = O(α (G) 1/2 m).

p. 1 Algorytm ścieżkowy Dane: graf dwudzielny G (V = (X,Y )) Poszukiwane: skojarzenie M o najwiekszej mocy w G 1. Utwórz z grafu G digraf D poprzez nadanie wszystkim krawędziom grafu G orientacji od zbioru X do zbioru Y. 2. Dodaj dwa nowe wierzchołki s oraz t i nowe łuki: od wierzchołka s do wszystkich wierzchołków z X, oraz od każdego wierzchołka z Y do wierzchołka t.. Znajdź wszystkie wewnętrznie wierzchołkowo rozłaczne ścieżki z s do t (w czasie O(n 1/2 m) lub O(β(G) 1/2 m)) 4. Zalicz do M wszystkie krawędzie grafu G należace do znalezionej rodziny ścieżek.

p. 1

p. 1

p. 1 s t

p. 2 s t

p. 2

Q G = ((X, Y ), E) P I O M NG E L JK I H D EFG B C @ A @ A? < => ; : 789 VD X Y {s, t} ED E x X > U T R :;S ED ED {sx} y Y ED ED {ys} V : > U T R :;S V : WD \ i ] ]^ h b g (s, t) Y_^ b efy d a Wd \d e cd ]^ayb W ]^ [a Y_ ` _ W ]^W^ \ [ X X W YZ S M S E (M) = j;k S ; p. 2

p. 2 Dla każdego zbioru S V (G) przez zbiór jego sasiadów N G (S) rozumiemy zbiór wszystkich wierzchołków przyległych do wierzchołków z S. Twierdzenie (Hall). Niech G będzie grafem dwudzielnym z dwupodziałem (X, Y ). Graf G zawiera skojarzenie, które nasyca każdy wierzchołek w X wtedy i tylko wtedy, gdy N G (S) S dla każdego S X

p. 2 Dla każdego zbioru S V (G) przez zbiór jego sasiadów N G (S) rozumiemy zbiór wszystkich wierzchołków przyległych do wierzchołków z S. Twierdzenie (Hall). Niech G będzie grafem dwudzielnym z dwupodziałem (X, Y ). Graf G zawiera skojarzenie, które nasyca każdy wierzchołek w X wtedy i tylko wtedy, gdy N G (S) S dla każdego S X

p. 2 Dla każdego zbioru S V (G) przez zbiór jego sasiadów N G (S) rozumiemy zbiór wszystkich wierzchołków przyległych do wierzchołków z S. Twierdzenie (Hall). Niech G będzie grafem dwudzielnym z dwupodziałem (X, Y ). Graf G zawiera skojarzenie, które nasyca każdy wierzchołek w X wtedy i tylko wtedy, gdy N G (S) S dla każdego S X

p. 2 Problem przydziału zadań Problem: znajdź w grafie dwudzielnym z V = (X,Y ) skojarzenie nasycajace każdy wierzchołek X lub, jeżeli nie jest to możliwe, znajdź podzbiór S zbioru X taki, że N G (S) < S. Dane: graf dwudzielny G (V = (X,Y )) oraz skojarzenie M 1. Jeżeli M nasyca wszystkie wierzchołki X, to STOP. W przeciwnym razie niech u, (u X) będzie M-nienasycony. S {u}, T. 2. Jeżeli N G (S) = T, to N G (S) < S i STOP - nie ma szukanego skojarzenia. W przeciwnym razie niech y N G (S) T.

p. 2 Jeżeli y jest M-nasycony, yz M, to S S {z}, T T {y} i przejdź do kroku 2. W przeciwnym razie niech P będzie M-przemienna ścieżka powiększajac a z u do y, M M E(P) i przejdź do kroku 1. Przykład. Wyznacz skojarzenie doskonałe, jeżeli takie istnieje, w grafie: x 1 x 2 x x 4 x 5 y 1 y 2 y y 4 y 5

G = ((X, Y ), E) ƒ } {~ } y z{ w x u v u v t q rs p o lmn M p. 2 M X u M S {u}; T sqm X Š Ž Œ Ž Š ˆ r p NG(S) = T q Š Œ ) Œ Ÿ Œ ž Œ œ Š ( r pš p š s r T NG(S) Ž y y M o q Œ Ž ˆ {y} T T {z}; S S š s r Œ Ž Š ˆ y M P M M M E(P) (M) q m r š y u Œ Š Œ Š Œ Š ˆ r pš p

p. 2 Przykład x x x x x 1 2 4 5 y y y y y 1 2 4 5

p. Przykład x x x x x 1 2 4 5 y y y y y 1 2 4 5

p. Przykład x x x x x 1 2 4 5 y y y y y 1 2 4 5

p. Przykład x x x x x 1 2 4 5 y y y y y 1 2 4 5

p. Przykład x x x x x 1 2 4 5 y y y y y 1 2 4 5

p. Przykład B x x x x x 1 2 4 5 y y y y y 1 2 4 5

p. Przykład B x x x x x 1 2 4 5 y y y y y 1 2 4 5

p. Przykład B x x x x x 1 2 4 5 y y y y y 1 2 4 5

p. Przykład B x x x x x 1 2 4 5 y y y y y 1 2 4 5

p. Przykład B x x x x x 1 2 4 5 y y y y y 1 2 4 5

p. Przykład B x x x x x 1 2 4 5 y y y y y 1 2 4 5

p. 4 Przykład B x x x x x 1 2 4 5 y y y y y 1 2 4 5

p. 4 7. Skojarzenia w ważonych grafach dwudzielnych Niech będzie dany graf dwudzielny G = (V,E), gdzie V = (X,Y ), oraz niech w : E R + przyporzadkowuje nieujemne wagi rzeczywiste krawędziom grafu G. Problem: znajdź w grafie dwudzielnym G skojarzenie M o maksymalnej wadze, gdzie w(m) = e M w(e) Wprowadźmy funkcję l określona na zbiorze wierzchołków V = X Y : l : V R + taka, że dla każdego x X i dla każdego y Y l(x) + l(y) w(xy), (1) gdzie w(xy) jest waga krawędzi xy.

p. 4 Przykładem funkcji l spełniajacej warunek (1) może być funkcja : l(x) := max y Y w(xy) x X oraz l(y) := 0 y Y Twierdzenie (Egerváry, 191). Maksymalna waga skojarzenia w G = (V,E) jest równa l (V ) = v V l (v), gdzie l (V ) = min l L l(v ), natomiast L oznacza klasę funkcji spełniajacych warunek (1). Dowód. (szkic) Niech M będzie dowolnym skojarzeniem w G i niech l L. Wtedy w(m) = w(e) = + l(y)) e M e=xy M(l(x) l(v). (2) v V

p. 4 Aby pokazać, że w (2) zachodzi równość, przyjmijmy, że l jest funkcja z L osiagaj ac a minimalna wartość l (V ).

p. 4 Aby pokazać, że w (2) zachodzi równość, przyjmijmy, że l jest funkcja z L osiagaj ac a minimalna wartość l (V ). Oznaczmy przez F zbiór krawędzi grafu G dla których w (1) mamy równość, a przez R zbiór wierzchołków v dla których l (v) > 0.

p. 4 Aby pokazać, że w (2) zachodzi równość, przyjmijmy, że l jest funkcja z L osiagaj ac a minimalna wartość l (V ). Oznaczmy przez F zbiór krawędzi grafu G dla których w (1) mamy równość, a przez R zbiór wierzchołków v dla których l (v) > 0. Jeżeli F zawiera skojarzenie M pokrywajace R, to wtedy w(m ) = e M w(e) = v V l (v) = l (V ).

p. 4 Aby pokazać, że w (2) zachodzi równość, przyjmijmy, że l jest funkcja z L osiagaj ac a minimalna wartość l (V ). Oznaczmy przez F zbiór krawędzi grafu G dla których w (1) mamy równość, a przez R zbiór wierzchołków v dla których l (v) > 0. Jeżeli F zawiera skojarzenie M pokrywajace R, to wtedy w(m ) = e M w(e) = v V l (v) = l (V ). Jeżeli F nie zawiera skojarzenia M pokrywajacego R, to można pokazać, że musi istnieć zbór niezależny S R taki, że N(S) < S. Wtedy α > 0 takie, że l(v) l(v) α dla v S, l(v) l(v) + α gdy v N(S), otrzymujemy mniejsze l, czyli sprzeczność!

p. 4 Algorytm węgierski Dane: ważony graf dwudzielny G (V = (X,Y )) oraz skojarzenie M Poszukiwane: skojarzenie M takie, że w(m) jest największa 1. Zorientuj każda krawędź e = xy, gdzie x X, y Y grafu G w następujacy sposób: (a) jeżeli e M to zorientuj e od y do x i przyjmij w(e) za długość łuku (b) jeżeli e M to zorientuj e od x do y i przyjmij w(e) za długość łuku 2. Znajdź zbiory X M i Y M wierzchołków M-nienasyconych w zbiorach, odpowiednio, X i Y.

p. 4 Znajdź najkrótsza ścieżkę M-powiększajac a P, poprzez wyznaczenie najkrótszej skierowanej ścieżki z X M do Y M, M M E(P). Jeżeli znaleziona najkrótsza ścieżka ma ujemna długość to przejdź do kroku 1, w przeciwnym razie STOP.

p. 4 Znajdź najkrótsza ścieżkę M-powiększajac a P, poprzez wyznaczenie najkrótszej skierowanej ścieżki z X M do Y M, M M E(P). Jeżeli znaleziona najkrótsza ścieżka ma ujemna długość to przejdź do kroku 1, w przeciwnym razie STOP. Twierdzenie. Skojarzenie w ważonym grafie dwudzielnym znalezione za pomoca algorytmu węgierskiego jest ekstremalne.

p. 4 Znajdź najkrótsza ścieżkę M-powiększajac a P, poprzez wyznaczenie najkrótszej skierowanej ścieżki z X M do Y M, M M E(P). Jeżeli znaleziona najkrótsza ścieżka ma ujemna długość to przejdź do kroku 1, w przeciwnym razie STOP. Twierdzenie. Skojarzenie w ważonym grafie dwudzielnym znalezione za pomoca algorytmu węgierskiego jest ekstremalne. Twierdzenie. Algorytm węgierski znajduje skojarzenie o największej wadze w ważonym grafie dwudzielnym w czasie O(n 2 m) Dowód. Zauważmy, że w powyższym algorytmie mamy co najwyżej n iteracji, z których każda może być wykonana za pomoca algorytmu Bellmana-Forda (znajdowanie najkrótszej ścieżki z X M do Y M ), w czasie O(nm).

Þ Ù YM Þ Ù YM p. 4 Å E) ), Y ((X, = G Ä ¼ à ¾ À Á ½ ¼ º» ¹ µ ³ ³ ±² ª«M È Æ Ç Æ XM YM e = xy E XM XM {x}; YM YM {y} e M ± È Ê É Æ É Ë w(e) ) w( e yx; ÆÌe ± w(e) ) w( e xy; e «Í Æ Æ XM Ý ÛÏ ÑÕ Ü Î Û Û Ô Ú XM X \ XM; YM Y \ YM exists exists { P ÑÕØÙ ÖÕ Ò ÑÕ ÑÒ ÓÔ Î ÏÐ É XM Ý ÛÏ ÑÕ Ü Î Û Û Ô Ú ÑÕ ØÙ ß ÓÒÏÛÒ Ö Ø Û Ô ± ÆÌ M M E( P ) 0 < ) w( P exists Ì «Ì à à Ì(M) Æ

p. 4 Problem optymalnego przydziału zadań Oznaczmy przez E l zbiór krawędzi E l = {xy E(G) : l(x) + l(y) = w(xy)} a przez G l odpowiedni rozpięty podgraf grafu G. Dane: graf dwudzielny G = (V,E), V = (X,Y ) z wagami na krawędziach, funkcja etykietujaca wierzchołki l, graf G l oraz jego skojarzenie M Poszukiwane: skojarzenie o maksymalnej wadze nasycajace zbiór wierzchołków X (skojarzenie optymalne)

p. 4 Algorytm Kuhna - Munkresa - (Edmondsa) 1. Jeżeli M nasyca wszystkie wierzchołki X, to M jest skojarzeniem optymalnym - STOP. W przeciwnym razie niech u, (u X) będzie M-nienasyconym wierzchołkiem, S := {u}, T := 2. Jeżeli T N Gl (S), to przejdź do kroku. Jeżeli T = N Gl (S), to obliczamy α = min {l(x) + l(y) w(xy)} (α > 0) x S, y Y T l (v) l(v) α, dla v S; l (v) l(v) + α, dla v T; l (v) l(v) dla wszystkich v poza S i poza T; G l G l

p. 4 Wybieramy y N Gl (S) T. Jeżeli y jest M-nasycony, yz M, to S S {z}, T T {y} i przejdź do kroku 2. W przeciwnym razie mamy M-powiększajac a ścieżkę P z u do y w G l ; M M E(P) i przejdź do kroku 1. Przykład. Wyznaczyć optymalne skojarzenie (skojarzenie doskonałe o maksymalnej wadze) w grafie o macierzy wag: x 1 x 2 x x 4 x 5 y 1 5 5 4 1 y 2 2 2 0 2 2 y 2 4 4 1 0 y 4 0 1 1 0 0 y 5 1 2 1

èú S S {z}; T T {y} p. 5 ø õ ö G = ((X, Y ), E) ò ïñóô î ï ð ñ ì êë í êë æ çèé áâã äå M M X èæâú ù X ÿ þÿ ý þÿ ý ý üu M S {u}; T ç ú åú { α min x S, y Y T NG(S) = T æ {l(x) + l(y) w(xy)} èú ç v S è äåú û äl (v) l(v) α v T è äåú û äl (v) l(v) + α û ä v V \ {S T } è äåú NG(S) T û äl (v) l(v) ý ÿ ÿ ÿ ý y æ ýÿ ý üy M ç ýÿ þÿý ý üy M çæâ y u þ þÿ þÿ ýý M üp M M E(P) (M) ÿ ç å åú

p. 5 Przykład x x x x x 1 2 4 5 2 1 4 1 2 0 4 2 1 2 5 5 2 2 4 0 0 1 1 0 0 1 y y y y y 1 2 4 5

p. 5 Przykład x x x x x 1 2 4 5 5 5 4 2 1 4 1 2 0 4 2 1 2 5 5 1 4 1 0 0 0 0 1 2 2 0 0 0 0 0 y y y y y 1 2 4 5

p. 5 Przykład x x x x x 1 2 4 5 5 5 4 4 5 5 0 0 0 0 0 G l y y y y y 1 2 4 5

p. 5 Przykład x x x x x 1 2 4 5 5 5 4 4 5 5 S={x } T={0} 1 0 0 0 0 0 G l y y y y y 1 2 4 5

p. 5 Przykład x x x x x 1 2 4 5 5 5 4 4 5 5 y={y } 1 0 0 0 0 0 G l y y y y y 1 2 4 5

p. 5 Przykład x x x x x 1 2 4 5 5 5 4 4 5 5 S={x } T={0} 4 0 0 0 0 0 G l y y y y y 1 2 4 5

p. 5 Przykład x x x x x 1 2 4 5 5 5 4 4 5 5 S={x, x } T={y } 1 4 1 T=N(S) 0 0 0 0 0 G l y y y y y 1 2 4 5

p. 5 Przykład x x x x x 1 2 4 5 5 5 4 2 1 4 1 2 0 4 2 1 2 5 5 1 4 1 0 0 0 0 1 2 2 0 0 0 0 0 y y y y y 1 2 4 5

p. 5 Przykład x x x x x 1 2 4 5 2 5 5 2 1 4 1 2 0 4 2 1 2 5 5 2 2 4 1 0 0 1 0 0 1 1 0 0 0 0 y y y y y 1 2 4 5

p. 6 Przykład x x x x x 1 2 4 5 2 5 5 4 2 2 u={x } 4 1 0 0 0 0 y y y y y 1 2 4 5

p. 6 Przykład x x x x x 1 2 4 5 2 5 5 2 4 u={x } 4 2 1 0 0 0 0 y y y y y 1 2 4 5

p. 6 Przykład x x x x x 1 2 4 5 2 5 5 2 2 4 u={x } 5 S={x,x } T={y } 4 5 5 1 0 0 0 0 y y y y y 1 2 4 5

p. 6 Przykład x x x x x 1 2 4 5 2 5 5 2 2 4 S={x,x,x } T={y,y } 1 4 5 1 5 1 0 0 0 0 y y y y y 1 2 4 5

p. 6 Przykład x x x x x 1 2 4 5 2 5 5 2 2 4 S={x,x,x } T={y,y } 1 4 5 1 5 y=y 2 1 0 0 0 0 y y y y y 1 2 4 5

p. 6 Przykład x x x x x 1 2 4 5 2 5 5 2 2 4 u=x S={x } T={0} 2 2 T=N(S) 1 0 0 0 0 y y y y y 1 2 4 5

p. 6 Przykład x x x x x 1 2 4 5 2 4 5 5 4 4 2 u=x 2 alfa=1 2 1 0 0 0 0 y y y y y 1 2 4 5

p. 6 Przykład x x x x x 1 2 4 5 2 4 5 5 4 4 2 u=x 2 2 y=y 1 0 0 0 0 y y y y y 1 2 4 5

p. 6 Przykład x x x x x 1 2 4 5 2 4 5 5 4 4 2 2 u=x S={x } T={0} T=N(S) 1 0 0 0 0 y y y y y 1 2 4 5

p. 6 Przykład x x x x x 1 2 4 5 2 4 4 4 4 5 4 4 2 2 1 0 0 0 0 y y y y y 1 2 4 5

p. 7 Przykład x x x x x 1 2 4 5 2 4 4 4 4 5 4 4 2 2 S={x,x } 4 T={y } 1 1 0 0 0 0 y y y y y 1 2 4 5

p. 7 Przykład x x x x x 1 2 4 5 2 4 4 4 4 5 4 4 2 2 S={x,x,x } 2 4 T={y,y } 1 1 0 0 0 0 y y y y y 1 2 4 5

p. 7 Przykład x x x x x 1 2 4 5 2 4 4 4 4 5 4 4 2 T=N(S) 2 1 0 0 0 0 y y y y y 1 2 4 5

p. 7 Przykład x x x x x 1 2 4 5 2 2 2 5 4 4 4 4 2 2 2 2 0 1 0 1 y y y y y 1 2 4 5

p. 7 Przykład x x x x x 1 2 4 5 2 2 2 5 4 4 4 4 2 2 2 y=y 2 N(S)=T 2 0 1 0 1 y y y y y 1 2 4 5

p. 7 Przykład x x x x x 1 2 4 5 0 1 1 5 4 4 4 4 2 0 0 2 2 1 1 0 0 0 4 2 0 y y y y y 1 alfa=2 u=x y=y 2 4 5 4

p. 7 Przykład x x x x x 1 2 4 5 2 1 4 1 2 0 4 2 1 2 5 5 2 2 4 0 0 1 1 0 0 1 y y y y y 1 w(m)=14 2 4 5

p. 7 7.4 Skojarzenia w dowolnych grafach podstawowa idea stosowana w algorytmach znajdowania skojarzeń o najwiekszym rozmiarze polega na znajdowaniu ścieżek M-powiększajacych

p. 7 7.4 Skojarzenia w dowolnych grafach podstawowa idea stosowana w algorytmach znajdowania skojarzeń o najwiekszym rozmiarze polega na znajdowaniu ścieżek M-powiększajacych w przypadku grafów dwudzielnych stosowaliśmy w celu znalezienia takich ścieżek prosty pomysł polegajacy na odpowiedniej orientacji krawędzi grafu

p. 7 7.4 Skojarzenia w dowolnych grafach podstawowa idea stosowana w algorytmach znajdowania skojarzeń o najwiekszym rozmiarze polega na znajdowaniu ścieżek M-powiększajacych w przypadku grafów dwudzielnych stosowaliśmy w celu znalezienia takich ścieżek prosty pomysł polegajacy na odpowiedniej orientacji krawędzi grafu w przypadku dowolnych grafów to podejście nie działa ponieważ M-przemienne spacery moga się zapętlać (tworzyć cykle)

p. 7 7.4 Skojarzenia w dowolnych grafach podstawowa idea stosowana w algorytmach znajdowania skojarzeń o najwiekszym rozmiarze polega na znajdowaniu ścieżek M-powiększajacych w przypadku grafów dwudzielnych stosowaliśmy w celu znalezienia takich ścieżek prosty pomysł polegajacy na odpowiedniej orientacji krawędzi grafu w przypadku dowolnych grafów to podejście nie działa ponieważ M-przemienne spacery moga się zapętlać (tworzyć cykle) Edmonds(1965) rozwiazał ten problem przez ściaganie takich cykli do pojedyńczego wierzchołka a następnie szukanie najwiekszego skojarzenia w mniejszym grafie

p. 7 Definicja. M -przemienny spacer P = (v 0,v 1,...,v t ) nazywamy M -kwiatem jeżeli t jest nieparzyste, v 0,v 1,...,v t 1 sa wszystkie różne, v 0 jet wierzchołkiem M -nienasyconym, oraz v t = v i dla pewnego parzystego i < t. Wtedy cykl (v i,v i+1,...,v t ) jest nazywany M -kwieciem.

p. 7 Definicja. M -przemienny spacer P = (v 0,v 1,...,v t ) nazywamy M -kwiatem jeżeli t jest nieparzyste, v 0,v 1,...,v t 1 sa wszystkie różne, v 0 jet wierzchołkiem M -nienasyconym, oraz v t = v i dla pewnego parzystego i < t. Wtedy cykl (v i,v i+1,...,v t ) jest nazywany M -kwieciem. M kwiat v t 1 v t 2 v v v v 0 1 2 v v = 4 t v 5 v 6 M kwiecie

p. 7 Twierdzenie (Lemat o ściaganiu cykli). Niech G będzie grafem, M jego skojarzeniem, a B będzie M -kwieciem (to znaczy cyklem długości 2k + 1, który zawiera dokładnie k krawędzi z M ). Niech G będzie grafem otrzymanym z G poprzez ściagnięcie cyklu B do jednego wierzchołka. Wówczas M jest największym skojarzeniem grafu G wtedy i tylko wtedy, gdy M = M E(B) jest największym skojarzeniem grafu G.

p. 7 Twierdzenie (Lemat o ściaganiu cykli). Niech G będzie grafem, M jego skojarzeniem, a B będzie M -kwieciem (to znaczy cyklem długości 2k + 1, który zawiera dokładnie k krawędzi z M ). Niech G będzie grafem otrzymanym z G poprzez ściagnięcie cyklu B do jednego wierzchołka. Wówczas M jest największym skojarzeniem grafu G wtedy i tylko wtedy, gdy M = M E(B) jest największym skojarzeniem grafu G.

p. 8

p. 8

p. 8

p. 8

Dowód. Załóżmy, że M = M E(B) jest największym skojarzeniem w grafie G, natomiast M nie jest największym skojarzeniem w grafie G. p. 8

p. 8 Dowód. Załóżmy, że M = M E(B) jest największym skojarzeniem w grafie G, natomiast M nie jest największym skojarzeniem w grafie G. Z twierdzenia Berge a wynika, że w grafie G istnieje M -powiększajaca ścieżka P.

p. 8 Dowód. Załóżmy, że M = M E(B) jest największym skojarzeniem w grafie G, natomiast M nie jest największym skojarzeniem w grafie G. Z twierdzenia Berge a wynika, że w grafie G istnieje M -powiększajaca ścieżka P. Jeżeli P jest rozłaczna z cyklem B, to P jest M -powiększajac a ścieżka w grafie G co przeczy założeniu, że M jest największe w G.

p. 8 Dowód. Załóżmy, że M = M E(B) jest największym skojarzeniem w grafie G, natomiast M nie jest największym skojarzeniem w grafie G. Z twierdzenia Berge a wynika, że w grafie G istnieje M -powiększajaca ścieżka P. Jeżeli P jest rozłaczna z cyklem B, to P jest M -powiększajac a ścieżka w grafie G co przeczy założeniu, że M jest największe w G. Jeżeli natomiast P przecina cykl B, to przynajmniej jeden z jej końców nie może należeć do B.

p. 8 Dowód. Załóżmy, że M = M E(B) jest największym skojarzeniem w grafie G, natomiast M nie jest największym skojarzeniem w grafie G. Z twierdzenia Berge a wynika, że w grafie G istnieje M -powiększajaca ścieżka P. Jeżeli P jest rozłaczna z cyklem B, to P jest M -powiększajac a ścieżka w grafie G co przeczy założeniu, że M jest największe w G. Jeżeli natomiast P przecina cykl B, to przynajmniej jeden z jej końców nie może należeć do B. Powiedzmy, że x jest takim wierzchołkiem końcowym. Niech z będzie pierwszym wierzchołkiem ścieżki P należacym do cyklu B, do którego dochodzimy po tej ścieżce idac od wierzchołka x. Wówczas (x,z)-segment ścieżki P generuje M -powiększajac a ścieżkę w grafie G i podobnie, jak poprzednio, M nie mogłoby być największym skojarzeniem.

p. 8 Dowód. (c.d.) Załóżmy, dowodzac prawdziwość implikacji w druga stronę, że M nie jest największym skojarzeniem grafu G i niech w takim razie N będzie skojarzeniem w G takim, że N > M. Zrekonstruujmy cykl B wracajac do grafu G. Wówczas N będzie generować skojarzenie w grafie G, które nasyca co najwyżej jeden wierzchołek cyklu Z. Możemy więc, używajac k krawędzi tego cyklu powiększyć nasze skojarzenie do skojarzenia N o mocy N + k. St N = N + k > M + k = M, ad czyli M nie mogłoby być wtedy skojarzeniem największym.

p. 8 Twierdzenie. Niech X będzie zbiorem wierzchołków M -nienasyconych, natomiast P = (v 0,v 1,...,v t ) będzie najkrótszym M -przemiennym spacerem ze zbioru X do zbioru X. Wtedy albo P jest ścieżka M -powiększajac a lub (v 0,v 1,...,v j ) jest M -kwiatem dla pewnego j t. Dowód. Przyjmijmy, że P nie jest ścieżka. Wybierzmy możliwie najmniejsze jtakie, że i < j oraz v j = v i. Oznacza to, że (v 0,v 1,...,v j 1 ) sa wszystkie różne. Jeżeli j i byłoby parzyste to wtedy można usunać z P wierzchołki (v i+1,...,v j ), otrzymujac w ten sposób krótszy M -przemienny spacer z X do X. Zatem j i jest nieparzyste. Jeżeli j jest parzyste a i jest nieparzyste to v i+1 = v j 1 (ponieważ jest wierzchołkiem skojarzonym z v i = v j, co przeczy minimalności wyboru j. Zatem j jest nieparzyste a i jest parzyste, co implikuje iż (v 0,v 1,...,v j ) jest M -kwiatem.

p. 8 Algorytm powiększania skojarzenia Dane: graf G = (V,E) oraz skojarzenie M Poszukiwane: M-powiększajaca ścieżka (o ile istnieje) Oznaczmy przez X zbiór wierzchołków M-nienasyconych w G. 1. Jeżeli nie istnieje w G spacer M-przemienny z X do X to G nie zawiera M-powiększajacej ścieżki STOP 2. Jeżeli istnieje w G spacer M-przemienny z X do X dodatniej długości to wybierz najkrótszy możliwy, powiedzmy, P = (v 0,v 1,...,v t ).

p. 8 a Jeżeli P jest ścieżka to podaj na wyjście P STOP b Jeżeli P nie jest ścieżka to wybierz j takie, że (v 0,v 1,...,v j ) jest M-kwiatem z M-kwieciem B. Zastosuj algorytm (rekurencyjnie) do grafu G B (graf powstały z G po ściagnięciu B) i skojarzenia M B, otrzymujac w ten sposób M B-powiększajac a ścieżkę P w G B. Następnie rozszerz P do M-powiększajacej ścieżki w G STOP Twierdzenie. Dla dowolnego grafu G istnieje algorytm znajdujacy skojarzenie o największym rozmiarze w czasie O(n 2 m).

p. 8 Dowód. Algorytm znajdowania skojarzenia o największej mocy jest prosta konsekwencja powyższego algorytmu. Rozpoczynajac z M = można, iterujac, znaleźć M -powiększajac a ścieżkę P a następnie zastapić M przez M E(P). Algorytm kończy pracę jeżeli w grafie G nie ma już żadnej ścieżki M -powiększajacej. Ścieżkę P można znaleźć w czasie O(m) a graf G B w czasie O(m). Ponieważ rekurencja ma głębokość co najwyżej n, dlatego M -powiększajac a ścieżkę P można znaleźć w czasie O(nm). Końcowa złożoność wynika z faktu, że liczba ulepszeń nie może przekroczyć n/2.

p. 9 Algorytm o czasie O(n ) Poprzedni algorytm, w każdej iteracji, prowadzi do powiększania skojarzenia M. Krok iteracyjny składa się z dwóch czynności: 1. znalezienia M-przemiennego spaceru i 2. "ściagnięcia"m-kwiecia, powtarzanych tak długo aż otrzymany M-spacer jest prosty, to znaczy jest ścieżka M-powiększajac a.

p. 9 Algorytm o czasie O(n ) Poprzedni algorytm, w każdej iteracji, prowadzi do powiększania skojarzenia M. Krok iteracyjny składa się z dwóch czynności: 1. znalezienia M-przemiennego spaceru i 2. "ściagnięcia"m-kwiecia, powtarzanych tak długo aż otrzymany M-spacer jest prosty, to znaczy jest ścieżka M-powiększajac a. Przypomnijmy,że czynności 1 oraz 2 wykonujemy w czasie O(m) (co w rezultacie prowadzi do algorytmu o złożonosci O(n 2 m)). Dlatego aby przyspieszyć algorytm znajdowania największego skojarzenia należy zoptymalizować obie te czynności, stosujac lokalne modyfikacje grafu.

p. 9 Niech G = (V,E) będzie grafem prostym, a M pewnym skojarzeniem w G. Oznaczmy, jak poprzednio, przez X zbiór wierzchołków M-nienasyconych w G. Definicja. Podgraf F grafu G nazywamy lasem M -przemiennym, jeżeli F jest lasem takim, że M F, każda składowa (drzewo) lasu F zawiera dokładnie jeden wierzchołek (korzeń) z X lub tworzy ja jedna krawędź z M, oraz każda ścieżka rozpoczynajaca się w X jest M -przemienna.

p. 9 Niech G = (V,E) będzie grafem prostym, a M pewnym skojarzeniem w G. Oznaczmy, jak poprzednio, przez X zbiór wierzchołków M-nienasyconych w G. Definicja. Podgraf F grafu G nazywamy lasem M -przemiennym, jeżeli F jest lasem takim, że M F, każda składowa (drzewo) lasu F zawiera dokładnie jeden wierzchołek (korzeń) z X lub tworzy ja jedna krawędź z M, oraz każda ścieżka rozpoczynajaca się w X jest M -przemienna. Definicja. parzyste(f) := {v V : F zawiera parzysta X v ścieżkę} nieparzyste(f) := {v V : F zaw. nieparzysta X v ścieżkę} wolne(f) := {v V : F nie zawiera X v ścieżki}

p. 9 M-przemienny las X

p. 9 Zauważmy, że korzenie drzewa F należa do parzyste(f)

p. 9 Zauważmy, że korzenie drzewa F należa do parzyste(f) jeżeli u nieparzyste(f) to u jest incydentne z dokładnie jedna krawędzia z M i dokładnie jedna krawędzia z F \ M (każdy wierzchołek drzewa w odległości nieparzystej od korzenia ma stopień dwa)

p. 9 Zauważmy, że korzenie drzewa F należa do parzyste(f) jeżeli u nieparzyste(f) to u jest incydentne z dokładnie jedna krawędzia z M i dokładnie jedna krawędzia z F \ M (każdy wierzchołek drzewa w odległości nieparzystej od korzenia ma stopień dwa) ze wzoru Tutte a-berge a wynika, że jeżeli nie istnieje krawędź łacz aca parzyste(f) z parzyste(f) wolne(f), to M jest skojarzeniem o największej mocy w G

p. 9 Twierdzenie (wzór Tutte a-berge a). Dla każdego grafu G = (V,E), α (G) = min U V 1 ( V + U o(g U)) 2 Dowód. (tylko ) Zauważmy, że dla każdego U V moc największego skojarzenia w G α (G) U + α (G U) U + 1 ( V \ U o(g U)) 2 = 1 2 ( V + U o(g U))

p. 9 jeżeli nie istnieje krawędź łacz aca parzyste(f) z parzyste(f) wolne(f), to M jest skojarzeniem o największej mocy w G

p. 9 jeżeli nie istnieje krawędź łacz aca parzyste(f) z parzyste(f) wolne(f), to M jest skojarzeniem o największej mocy w G jeżeli taka krawędź nie istnieje to parzyste(f) jest zbiorem niezależnym w G nieparzyste(f)

p. 9 jeżeli nie istnieje krawędź łacz aca parzyste(f) z parzyste(f) wolne(f), to M jest skojarzeniem o największej mocy w G jeżeli taka krawędź nie istnieje to parzyste(f) jest zbiorem niezależnym w G nieparzyste(f) biorac U := nieparzyste(f), mamy o(g U) parzyste(f) = X + U = V 2 M + U

p. 9 jeżeli nie istnieje krawędź łacz aca parzyste(f) z parzyste(f) wolne(f), to M jest skojarzeniem o największej mocy w G jeżeli taka krawędź nie istnieje to parzyste(f) jest zbiorem niezależnym w G nieparzyste(f) biorac U := nieparzyste(f), mamy o(g U) parzyste(f) = X + U = V 2 M + U M 2 1 ( V + U o(g U))

p. 9 jeżeli nie istnieje krawędź łacz aca parzyste(f) z parzyste(f) wolne(f), to M jest skojarzeniem o największej mocy w G jeżeli taka krawędź nie istnieje to parzyste(f) jest zbiorem niezależnym w G nieparzyste(f) biorac U := nieparzyste(f), mamy o(g U) parzyste(f) = X + U = V 2 M + U M 2 1 ( V + U o(g U)) zatem ze wzoru Tutte a-berge a wynika, że M jest największym skojarzeniem w G.

p. 9 Struktury danych: M-przemienny las dla każdego wierzchołka v pamiętamy krawędzie z E, M oraz F z nim incydentne, oraz jedna krawędź e v = vu, gdzie u parzyste(f) (o ile taka krawędź istnieje) oraz funkcje indykatorowa przynależności do zbiorów parzyste(f) i nieparzyste(f)

p. 9 Algorytm znajdowania największego skojarzenia Dane: graf G = (V,E) oraz skojarzenie M Poszukiwane: największe skojarzenie M w G Oznaczmy przez X zbiór wierzchołków M-nienasyconych w G, F M, i dla każdego v V wybierz krawędź e v = vu, gdzie u parzyste(f), gdzie u parzyste(f). Znajdź wierzchołek v parzyste(f) wolne(f) dla którego istnieje krawędź e v = vu. 1. v wolne(f). Dodaj krawędź uv do F. Niech vw będzie krawędzia z M incydentna z v. Dla każdej krawędzi wx incydentnej z w wykonaj e x wx.

p. 9 2. v parzyste(f). Znajdź X u oraz X v ścieżki P i Q w F. (a) Ścieżki P i Q sa rozłaczne. Wtedy P i Q razem z krawędzia uv tworza ścieżkę M-powiększajac a. (b) Ścieżki P i Q nie sa rozłaczne. Wtedy P i Q zawieraja M-kwiecie B. Dla każdej krawędzi bx, gdzie b B oraz x / B podstaw e x Bx. Zastap G przez G B oraz usuń wszystkie pętle i krawędzie równoległe z E,M oraz F.

p. 9 Przypadek 1 v u X

p. 10 Przypadek 2a v u X

p. 10 Przypadek 2a v u X

p. 10 Przypadek 2a X

p. 10 Przypadek 2b-1 v u X

p. 10 Przypadek 2b-1 X B

p. 10 Przypadek 2b-2 v u X

p. 10 Przypadek 2b-2 B X

p. 10 Twierdzenie. Algorytm znajduje największe skojarzenie w dowolnym grafie G w czasie O(n ).

p. 10 Twierdzenie. Algorytm znajduje największe skojarzenie w dowolnym grafie G w czasie O(n ). Dowód. Liczba iteracji głównej pętli algorytmu nie przekracza V, ponieważ w każdej iteracji, V + wolne(f) zmniejsza się co najmniej o dwa (jeden ze składników maleje o co najmniej dwa podczas gdy drugi pozostaje bez zmian).

p. 10 Twierdzenie. Algorytm znajduje największe skojarzenie w dowolnym grafie G w czasie O(n ). Dowód. Liczba iteracji głównej pętli algorytmu nie przekracza V, ponieważ w każdej iteracji, V + wolne(f) zmniejsza się co najmniej o dwa (jeden ze składników maleje o co najmniej dwa podczas gdy drugi pozostaje bez zmian). Przypadek 1. Uaktualnienie struktury danych w tym przypadku zajmuje O(n).

p. 10 Twierdzenie. Algorytm znajduje największe skojarzenie w dowolnym grafie G w czasie O(n ). Dowód. Liczba iteracji głównej pętli algorytmu nie przekracza V, ponieważ w każdej iteracji, V + wolne(f) zmniejsza się co najmniej o dwa (jeden ze składników maleje o co najmniej dwa podczas gdy drugi pozostaje bez zmian). Przypadek 1. Uaktualnienie struktury danych w tym przypadku zajmuje O(n). Przypadek 2a. Ścieżki P i Q można znaleźć w czasie O(n), zatem całkowity czas wyznaczenia ścieżki M -powiększajacej jest równe O(n).

p. 10 Twierdzenie. Algorytm znajduje największe skojarzenie w dowolnym grafie G w czasie O(n ). Dowód. Liczba iteracji głównej pętli algorytmu nie przekracza V, ponieważ w każdej iteracji, V + wolne(f) zmniejsza się co najmniej o dwa (jeden ze składników maleje o co najmniej dwa podczas gdy drugi pozostaje bez zmian). Przypadek 1. Uaktualnienie struktury danych w tym przypadku zajmuje O(n). Przypadek 2a. Ścieżki P i Q można znaleźć w czasie O(n), zatem całkowity czas wyznaczenia ścieżki M -powiększajacej jest równe O(n). Przypadek 2b. Uaktualnienie struktury danych w tym przypadku zajmuje O( B n). Podobnie zamiana G na G B zajmuje O( B n). Ponieważ B jest ograniczony z góry przez podwojone obniżenie liczby wierzchołków grafu, dlatego całkowity czas wynosi O(n 2 ).

p. 10 7.5 Skojarzenia w dowolnych ważonych grafach podobnie jak w przypadku dowolnych grafów bez wag na krawędziach algorytm dla grafów z wagami (grafów ważonych) wykorzystuje ideę ściagania nieparzystych cykli (M-kwiecia) oraz powiększania skojarzeń za pomoca ścieżek M-przemiennych

p. 10 7.5 Skojarzenia w dowolnych ważonych grafach podobnie jak w przypadku dowolnych grafów bez wag na krawędziach algorytm dla grafów z wagami (grafów ważonych) wykorzystuje ideę ściagania nieparzystych cykli (M-kwiecia) oraz powiększania skojarzeń za pomoca ścieżek M-przemiennych w przypadku grafów ważonych będziemy również stosować operację przeciwna do ściagania czyli rozciaganie cykli

p. 10 7.5 Skojarzenia w dowolnych ważonych grafach podobnie jak w przypadku dowolnych grafów bez wag na krawędziach algorytm dla grafów z wagami (grafów ważonych) wykorzystuje ideę ściagania nieparzystych cykli (M-kwiecia) oraz powiększania skojarzeń za pomoca ścieżek M-przemiennych w przypadku grafów ważonych będziemy również stosować operację przeciwna do ściagania czyli rozciaganie cykli podamy algorytm znajdowania skojarzenia doskonałego o minimalnej wadze w grafie (który implikuje algorytm znajdowania skojarzenia o maksymalnej wadze)

p. 10 Niech G = (V,E) będzie grafem a w : E Q, gdzie Q oznacza zbiór liczb wymiernych, będzie funkcja ważenia krawędzi grafu G. Zakładamy, że G ma co najmniej jedno skojarzenie doskonałe oraz, że wagi sa nieujemne Definicja. Rodzinę podzbiorów C zbioru V nazywamy warstwowa jeżeli dla każdej pary zbiorów T,U C, T U lub U T lub T U =. Głowne narzędzie jakim będziemy operowali stanowi para: warstwowa rodzina Ω podzbiorów, o nieparzystej mocy, zbioru V funkcja π : Ω Q spełniajaca następujace warunki:

p. 11 (i) π(u) 0 jeżeli U Ω oraz U (ii) U Ω, e δ(u) π(u) w(e) dla każdego e E, gdzie δ(u) oznacza zbiór krawędzi incydentnych z U

p. 11 (i) π(u) 0 jeżeli U Ω oraz U (ii) U Ω, e δ(u) π(u) w(e) dla każdego e E, gdzie δ(u) oznacza zbiór krawędzi incydentnych z U Zauważmy, że powyższe dwa waruni implikuja, że jeżeli M jest dowolnym skojarzeniem doskonałym w G to w(m) U Ω π(u), ponieważ w(m) = e M w(e) e M U Ω, e δ(u) π(u) = = U Ω π(u) M δ(u) U Ω π(u)

p. 11 (i) π(u) 0 jeżeli U Ω oraz U (ii) U Ω, e δ(u) π(u) w(e) dla każdego e E, gdzie δ(u) oznacza zbiór krawędzi incydentnych z U Zauważmy, że powyższe dwa waruni implikuja, że jeżeli M jest dowolnym skojarzeniem doskonałym w G to w(m) U Ω π(u), ponieważ w(m) = e M w(e) e M U Ω, e δ(u) π(u) = = U Ω π(u) M δ(u) U Ω π(u) Zatem M jest skojarzeniem doskonałym o minimalnej wadze jeżeli mamy w powyższym wzorze wszędzie równości zamiast nierówności.

p. 11 Oznaczenia i założenia: dla każdej krawędzi e zdefinujmy w π (e) := π(u) U Ω, e δ(u) Oznacza to, że w π (e) 0, e E.

p. 11 Oznaczenia i założenia: dla każdej krawędzi e zdefinujmy w π (e) := π(u) U Ω, e δ(u) Oznacza to, że w π (e) 0, e E. E π oznacza zbiór tych krawędzi e dla których w π (e) = 0 i niech G π = (V,E π )

p. 11 Oznaczenia i założenia: dla każdej krawędzi e zdefinujmy w π (e) := π(u) U Ω, e δ(u) Oznacza to, że w π (e) 0, e E. E π oznacza zbiór tych krawędzi e dla których w π (e) = 0 i niech G π = (V,E π ) w algorytmie zakładamy, że {v} Ω, dla każdego v V

Oznaczenia i założenia: dla każdej krawędzi e zdefinujmy w π (e) := U Ω, e δ(u) π(u) Oznacza to, że w π (e) 0, e E. E π oznacza zbiór tych krawędzi e dla których w π (e) = 0 i niech G π = (V,E π ) w algorytmie zakładamy, że {v} Ω, dla każdego v V ponieważ rodzina Ω jest warstwowa, dlatego rodzina Ω max, złożona z tych zbiorów z Ω które sa maksymalne w sensie zawierania (nie sa zawarte w żadnym innym zbiorze), stanowi podział zbioru V p. 11

p. 11 przez G oznaczymy graf otrzymany z G π poprzez ściagnięcie wszystkich zbiorów z Ω max : G = G π Ω max - oznacza to, że G zależy od Ω oraz π

p. 11 przez G oznaczymy graf otrzymany z G π poprzez ściagnięcie wszystkich zbiorów z Ω max : G = G π Ω max - oznacza to, że G zależy od Ω oraz π zauważmy, że zbiór wierzchołków grafu G stanowia zbiory z rodziny Ω max i dwa wierzchołki, powiedzmy U,U Ω max sa przyległe witw gdy G π ma krawędź łacz ac a pewien element ze zbioru U z pewnym elementem ze zbioru U

p. 11 przez G oznaczymy graf otrzymany z G π poprzez ściagnięcie wszystkich zbiorów z Ω max : G = G π Ω max - oznacza to, że G zależy od Ω oraz π zauważmy, że zbiór wierzchołków grafu G stanowia zbiory z rodziny Ω max i dwa wierzchołki, powiedzmy U,U Ω max sa przyległe witw gdy G π ma krawędź łacz ac a pewien element ze zbioru U z pewnym elementem ze zbioru U dla U Ω, U, oznaczamy przez H U graf otrzymany z podgrafu indukowanego przez zbiór U w grafie G π, (G π [U]), poprzez ściagnięcie wszystkich maksymalnych ze względu na zawieranie właściwych podzbiorów zbioru U, które należa do Ω

p. 11 Przechowujemy: warstwowa rodzinę Ω nieparzystych podzbiorów zbioru wierzchołków V funkcję π : Ω Q skojarzenie M dla każdego U Ω, U, cykl C U przechodzacy przez wszystkie wierzchołki grafu H U

p. 11 Algorytm znajdowania skojarzenia doskonałego o minimalnej wadze Dane: ważony graf prosty G = (V,E), zawierajacy co najmniej jedno skojarzenie doskonałe Poszukiwane: skojarzenie doskonałe o najmniejszej wadze w G Ω {{v} : v V }, M, π({v}) 0, dla każdego v V niech X będzie zbiorem wierzchołków grafu G nienasyconych przez M przyjmujemy, że ścieżka ma dodatnia długość gdy ma co najmniej jedna krawędź

p. 11 1. G zawiera M-przemienny X X spacer o dodatniej długości. Wybierz najkrótszy taki spacer P. Jeżeli P jest ścieżka to jest ścieżka M-powiększajac a w G. M M E(P) i iteruj. Jeżeli P nie jest ścieżka to zawiera M-kwiat (patrz odpowiednie twierdzenie z paragrafu 7.4). Niech C będzie kwieciem (cyklem) tego kwiatu. Dodaj U V (C) do rodziny Ω ( ściaganie ), podstaw π(u) 0,M M \ E(C),C U C i iteruj.

p. 11 2. G nie zawiera M-przemiennego X X spaceru o dodatniej długości. Niech S będzie zbiorem wierzchołków U grafu G dla którego G ma M-przemienny X U spacer nieparzystej długości i niech T będzie zbiorem wierzchołków U grafu G dla którego G ma M-przemienny X U spacer parzystej długości. π(u) π(u) + α jeżeli U T oraz π(u) π(u) α jeżeli U S, gdzie α jest największa wartościa spełniajac a warunki (i) oraz (ii) dla funkcji π. Jeżeli π(u) = 0 dla pewnego U S, gdzie U, to usuń U z Ω ( rozciaganie ), roszerz M o skojarzenie doskonałe zawarte w C U v, gdzie v jest wierzchołkiem M-nasyconym, i iteruj.

p. 11 Proces iteracyjny kończy się jeżeli M jest skojarzeniem doskonałym w G, wtedy używajac C U możemy rozszerzyć M do skojarzenia doskonałego N w G takiego, że w π (N) = 0 i N δ(u) = 1 dla każdego U Ω. Zatem dla N mamy wszędzie równości wyjściowym zbiorze, co oznacza, że N jest skojarzeniem o najmniejszej wadze w G Twierdzenie. Algorytm znajduje skojarzenie doskonałe o minimalnej wadze w czasie O(n 2 m). Wniosek. W dowolnym ważonym grafie można znaleźć skojarzenie o największej wadze w czasie O(n 2 m).

p. 11 Dowód. Niech G = (V,E) będzie grafem z funkcja ważenia w. Utwórz nowy graf w następujacy sposób: weź kopie G oraz w, odpowiednio, G oraz w. Połacz krawędzia każdy wierzchołek v V z jego kopia w G i przyporzadkuj im wagę 0. Jeżeli M jest skojarzeniem doskonałym o maksymalnej wadze w nowym grafie, to ograniczenie tego skojarzenia do do krawędzi wyjściowego grafu G jest skojarzeniem o największej wadze w tym grafie.