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)
Nie podano opisu zmian
Linia 68: Linia 68:


Skierujmy krawędzie skojarzenia od <math>V_2</math> do <math>V_1</math>, a wszystkie pozostałe krawędzie od <math>V_1</math> do <math>V_2</math>. Niech <math>R_1</math> i <math>R_2</math> to będą zbiory wierzchołków wolnych odpowiednio w <math>V_1</math> i <math>V_2</math>. Niech <math>Z</math> oznacza zbiór wierzchołków osiągalnych z w tym grafie z <math>R_1</math>. Zauważmy, że <math>Z \cap R_2 = \emptyset</math>, ponieważ w innym wypadku ścieżka z <math>R_1</math> do <math>R_2</math> stanowiłaby ścieżkę powiększającą względem maksymalnego skojarzenia <math>M</math>. Niech <math>L:= (V_2 \cap Z) \cup (V_1 - Z)</math>. Łatwo zauważyć, że liczność <math>L</math> jest równa liczności zbioru <math>M</math> oraz, że <math>L</math> jest pokryciem wierzchołkowym.
Skierujmy krawędzie skojarzenia od <math>V_2</math> do <math>V_1</math>, a wszystkie pozostałe krawędzie od <math>V_1</math> do <math>V_2</math>. Niech <math>R_1</math> i <math>R_2</math> to będą zbiory wierzchołków wolnych odpowiednio w <math>V_1</math> i <math>V_2</math>. Niech <math>Z</math> oznacza zbiór wierzchołków osiągalnych z w tym grafie z <math>R_1</math>. Zauważmy, że <math>Z \cap R_2 = \emptyset</math>, ponieważ w innym wypadku ścieżka z <math>R_1</math> do <math>R_2</math> stanowiłaby ścieżkę powiększającą względem maksymalnego skojarzenia <math>M</math>. Niech <math>L:= (V_2 \cap Z) \cup (V_1 - Z)</math>. Łatwo zauważyć, że liczność <math>L</math> jest równa liczności zbioru <math>M</math> oraz, że <math>L</math> jest pokryciem wierzchołkowym.
</div>
</div>
== Zadanie 5 ==
{{kotwica|zadanie 5|}}
Niech <math>G = (V_1 \cup V_2,E)</math> będzie grafem dwudzielnym. O krawędzi <math>e\in E</math> mówimy, że jest dozwolona w <math>G</math> jeżeli istnieje doskonałe skojarzenie <math>M</math> zawierające <math>e</math>. Dwudzielny graf <math>G</math> nazywamy natomiast ''elementarnym'' jeżeli wszystkie krawędzie są dozwolone. Zaproponuj jak wykorzystując algorytm Hopcrofta-Karpa sprawdzić, czy <math>G</math> jest elementarny?
<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Wskazówka'''
<div class="mw-collapsible-content" style="display:none">
Znajdźmy doskonałe skojarzenie <math>M</math> w grafie <math>G</math> przy pomocy algorytmu Hopcrofta-Karpa. Jeżeli <math>G</math> nie zawiera doskonałego skojarzenie to na pewno nie jest elementarny. Skonstruujmy graf <math>G'</math> z <math>G</math> poprzez skierowanie krawędzi skojarzenia od <math>V_2</math> do <math>V_1</math>, a wszystkich pozostałych krawędzi od <math>V_1</math> do <math>V_2</math>. Łatwo jest pokazać, że graf <math>G</math> jest elementarny wttw gdy graf <math>G'</math> jest silnie spójny.
</div>
</div>
</div>
</div>

Wersja z 11:53, 18 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

Zadanie 5

Niech G=(V1V2,E) będzie grafem dwudzielnym. O krawędzi eE mówimy, że jest dozwolona w G jeżeli istnieje doskonałe skojarzenie M zawierające e. Dwudzielny graf G nazywamy natomiast elementarnym jeżeli wszystkie krawędzie są dozwolone. Zaproponuj jak wykorzystując algorytm Hopcrofta-Karpa sprawdzić, czy G jest elementarny?


Wskazówka