1 Przepływy 1
1. Uzasadnij, że oszacowania O(|f∗| · |E|) na złożoność algorytmu Forda-Fulkersona nie da się poprawić. (f∗ to przepływ maksymalny a E to zbiór krawędzi sieci.)
Wskazówka: Użyj poniższej sieci.
s
v2 v1
t
M M
M M
1
2. Pokaż, że algorytm Forda-Fulkersona nie ma własności stopu w sieciach, w których przepustowości mogą być niewymierne. Rozważ następującą sieć, gdzie r jest (jedynym) dodatnim rozwiązaniem równania 1 − r = r2. Możesz przyjąć, że krawędzie na których nie zaznaczono przepustowości mają nieskończoną przepustowość.
s
v3
v2 v1
w3
w2 w1
t 1
r
r2
(a) Jaką wartość ma maksymalny przepływ w tej sieci?
(b) Podaj przykład nieskończonego wykonania algorytmu Forda-Fulkersona na tej sieci (nieskończony ciąg ścieżek powiększających).
(c) Przepływ generowany w kolejnych iteracjach algorytmu Forda-Fulkersona zbiega do przepływu maksymalnego. Czy potrafisz wskazać sieć, w której tak nie będzie?
3. Pokaż, że dowolny przepływ f można rozłożyć na kolekcję s-t ścieżek i cykli, i w dodatku jest algorytm wielomianowy który to robi. Dokładniej, chcemy znaleźć ciąg przepływów f1, . . . , fk taki, że dla każdej krawędzi e ∈ E(G) mamy f (e) = Pk
i=1fi(e) oraz dla każdego i zbiór krawędzi na których przepływ fi jest niezerowy jest ścieżką od s do t lub cyklem.
4. (a) Za pomocą redukcji do przepływu podaj algorytm, który dla danego grafu skiero- wanego i wierzchołków x i y znajdzie maksymalną liczbę krawędziowo rozłącznych ścieżek od x do y.
(b) Zmodyfikuj Twój algorytm dla grafów nieskierowanych.
(c) Udowodnij Krawędziowe Twierdzenie Mengera: rozmiar najmniejszego (x, y)-przekroju w G jest równy maksymalnej liczbie krawędziowo rozłącznych ścieżek z x do y. W dowodzie użyj twierdzenia o minimalnym przekroju i maksymalnym przepływie.
5. (a) Za pomocą redukcji do przepływu podaj algorytm, który dla danego grafu skiero- wanego i wierzchołków x i y znajdzie maksymalną liczbę wierzchołkowo rozłącznych ścieżek od x do y.
(b) Zmodyfikuj Twój algorytm dla grafów nieskierowanych.
(c) Niech G = (V, E) będzie grafem (skierowanym lub nieskierowanym). Dla x, y ∈ V , (x, y)-separator w G to dowolny zbiór S taki, że w grafie G − S wierzchołki x i y leżą w różnych spójnych składowych. Udowodnij Wierzchołkowe Twierdzenie Mengera: dla dowolnej pary wierzchołków x, y ∈ V , jeśli (x, y) 6∈ E to rozmiar najmniejszego (x, y)-separatora w G jest równy maksymalnej liczbie wierzchołkowo rozłącznych ścieżek z x do y. W dowodzie użyj twierdzenia o minimalnym przekroju i maksymalnym przepływie.
6. Skojarzenie w grafie nieskierowanym G = (V, E) to dowolny zbiór M ⊆ E taki, że dowolne dwie krawędzie z M nie mają wspólnego końca. Pokrycie wierzchołkowe w G to dowolny zbiór C ⊆ V taki, że dla dowolnej krawędzi xy ∈ E, mamy x ∈ C lub y ∈ C.
(a) Podaj algorytm, który znajduje najliczniejsze skojarzenie w grafie dwudzielnym (przez sprowadzenie do przepływu).
(b) Udowodnij twierdzenie König’a-Egervary’ego: W grafie dwudzielnym rozmiar naj- liczniejszego skojarzenia jest równy rozmiarowi najmniejszego pokrycia wierzchoł- kowego. W dowodzie użyj twierdzenia o minimalnym przekroju i maksymalnym przepływie.
(c) Podaj algorytm, który znajduje najmniejsze pokrycie wierzchołkowe w grafie dwu- dzielnym.
7. Dany jest zbiór S zawierający n punktów na płaszczyźnie. Zaproponuj efektywny al- gorytm, który znajdzie minimalną liczbę prostych równoległych do osi OX lub OY, zawierających wszystkie punkty zbioru S.