Zaawansowane algorytmy i struktury danych/Ćwiczenia 7: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Sank (dyskusja | edycje)
Sank (dyskusja | edycje)
Linia 21: Linia 21:
}}
}}


Konstrukcja ta jest przedstawiona na poniższym rysunku a) przykładowy graf <math>G</math> b) graf <math>G^2_{in,out}</math> skonstruowany na podstawie grafu <math>G</math>.
[[Grafika:Zasd_path-transformation.png|546px]]


{{ramka|1=[[Grafika:Zasd_path-transformation.png]]|2=
Konstrukcja ta jest przedstawiona na poniższym rysunku a) przykładowy graf <math>G</math> b) graf <math>G^2_{in,out}</math> skonstruowany na podstawie grafu <math>G</math>.
}}


Zauważ, że jeżeli w grafie <math>G^{k}_{in,out}</math> istnieje doskonałe skojarzenie to w grafie <math>G</math> istnieje <math>k</math> rozłącznych wierzchołkowo ścieżek z <math>s</math> do <math>t</math>. Jest tak ponieważ każde doskonałe skojarzenie w <math>G^k_{in,out}</math> koduje zbiór wierzchołkowo rozłącznych ścieżek z <math>s</math> do <math>t</math>. Krawędzie wybrane do doskonałego skojarzenia <math>M</math> kodują krawędzie wchodzące do i wychodzące z wierzchołka <math>v</math>. Krawędź wchodząca z <math>v</math> jest kodowana przez krawędź <math>M</math> kojarzącą wierzchołek <math>v_{in}</math>, a krawędź wychodząca kodowana jest przez krawędź kojarzącą <math>v_{out}</math>. Odczytując skojarzenie <math>M</math> w ten sposób dostajemy zbiór ścieżek zaczynających się w <math>s</math> i kończących w <math>t</math> oraz ewentualnie pewien zbiór cykli. W drugą stronę łatwo zauważyć, że z każdego zbioru <math>k</math> rozłącznych ścieżek możemy skonstruować doskonałe skojarzenie w grafie <math>G</math>.
Zauważ, że jeżeli w grafie <math>G^{k}_{in,out}</math> istnieje doskonałe skojarzenie to w grafie <math>G</math> istnieje <math>k</math> rozłącznych wierzchołkowo ścieżek z <math>s</math> do <math>t</math>. Jest tak ponieważ każde doskonałe skojarzenie w <math>G^k_{in,out}</math> koduje zbiór wierzchołkowo rozłącznych ścieżek z <math>s</math> do <math>t</math>. Krawędzie wybrane do doskonałego skojarzenia <math>M</math> kodują krawędzie wchodzące do i wychodzące z wierzchołka <math>v</math>. Krawędź wchodząca z <math>v</math> jest kodowana przez krawędź <math>M</math> kojarzącą wierzchołek <math>v_{in}</math>, a krawędź wychodząca kodowana jest przez krawędź kojarzącą <math>v_{out}</math>. Odczytując skojarzenie <math>M</math> w ten sposób dostajemy zbiór ścieżek zaczynających się w <math>s</math> i kończących w <math>t</math> oraz ewentualnie pewien zbiór cykli. W drugą stronę łatwo zauważyć, że z każdego zbioru <math>k</math> rozłącznych ścieżek możemy skonstruować doskonałe skojarzenie w grafie <math>G</math>.

Wersja z 14:45, 15 wrz 2006

Zadanie 1

Masz dany graf G=(V,E) wraz z dwoma wybranymi wierzchołkami s,tV. Pokaż jak używając algorytmu Hopcrofta-Karpa wyznaczyć maksymalną liczbę wierzchołkowo rozłącznych ścieżek z s do t. Wierzchołki s i t będą oczywiście wspólne dla tych ścieżek.

Rozwiązanie

Zadanie 2

Masz daną sieć przepływową G=(V,E) wraz z dwoma wybranymi wierzchołkami s,tV, w której wszystkie przepustowości krawędzi wynoszą 1. Pokaż jak używając algorytmu Hopcrofta-Karpa wyznaczyć maksymalny przepływ z s do t w sieci G.

Rozwiązanie


Zadanie 3

Masz daną planarną sieć przepływową G=(V,E) wraz z dwoma wybranymi wierzchołkami s,tV, w której wszystkie przepustowości krawędzi wynoszą 1. Pokaż jak rozwiązać problem wyznaczenia maksymalnego przepływu w sieci G poprzez znalezienie maksymalnego skojarzenia w planarnym grafie dwudzielnym, tzn., pokaż konstrukcje tak ta przedstawiona w Zadaniu 1 i 2, ale zachowującą planarność grafu.

Rozwiązanie


Zadanie 4

Masz dany graf G=(V1V2,E) dwudzielny. Pokaż jak używając algorytmu Hopcrofta-Karpa wyznaczyć minimalne pokrycie wierzchołkowe tego grafu.

Rozwiązanie