Zaawansowane algorytmy i struktury danych/Ćwiczenia 7: Różnice pomiędzy wersjami
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 wraz z dwoma wybranymi wierzchołkami . Pokaż jak używając algorytmu Hopcrofta-Karpa wyznaczyć maksymalną liczbę wierzchołkowo rozłącznych ścieżek z do . Wierzchołki i będą oczywiście wspólne dla tych ścieżek.
Zadanie 2
Masz daną sieć przepływową wraz z dwoma wybranymi wierzchołkami , w której wszystkie przepustowości krawędzi wynoszą 1. Pokaż jak używając algorytmu Hopcrofta-Karpa wyznaczyć maksymalny przepływ z do w sieci .
Zadanie 3
Masz daną planarną sieć przepływową wraz z dwoma wybranymi wierzchołkami , w której wszystkie przepustowości krawędzi wynoszą . Pokaż jak rozwiązać problem wyznaczenia maksymalnego przepływu w sieci poprzez znalezienie maksymalnego skojarzenia w planarnym grafie dwudzielnym, tzn., pokaż konstrukcje tak ta przedstawiona w Zadaniu 1 i 2, ale zachowującą planarność grafu.
Zadanie 4
Masz dany graf dwudzielny. Pokaż jak używając algorytmu Hopcrofta-Karpa wyznaczyć minimalne pokrycie wierzchołkowe tego grafu.
Zadanie 5
Niech będzie grafem dwudzielnym. O krawędzi mówimy, że jest dozwolona w jeżeli istnieje doskonałe skojarzenie zawierające . Dwudzielny graf nazywamy natomiast elementarnym jeżeli wszystkie krawędzie są dozwolone. Zaproponuj jak wykorzystując algorytm Hopcrofta-Karpa sprawdzić, czy jest elementarny?