Zaawansowane algorytmy i struktury danych/Ćwiczenia 7: Różnice pomiędzy wersjami
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]] | |||
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 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.