Jaką drogę powinien wybrać kierowca, aby zminimalizować koszty podróży. Rozwiązać dwie wersje zadania: przy założeniu, że kierowca zabiera pasażerów oraz przy założeniu, że kierowca nie zabiera pasażerów. Czy w obu przypadkach można zastosować algorytm Dijkstry? Odpowiedź uzasadnić.
3. Znaleźć (w książce lub w internecie) algorytm znajdowania najkrótszej drogi w grafie (różny od algorytmu Dijkstry oraz Bellmana-Forda) oraz zastosować go do rozwiązania poprzednich zadań.
4. Na podstawie algorytmu Dijkstry opracować algorytm znajdowania najkrótszej drogi wyjścia z labiryntu.
1. Udowodnić następujący lemat, który pojawił się na wykładzie. Niech G = (V, E, s, t, c) będzie siecią oraz niech / będzie przepływem w G. Ponadto niech f będzie przepływem w sieci residualnej Gf. Wtedy funkcja f + f jest przepływem w G o wartości |/ + f'\ = \ f\ + \f'\.
2. Niech G = (V, E,s,t,c) będzie siecią oraz niech / będzie przepływem w G. Udowodnić, że
(a) dla wszystkich X CV mamy f(X,X) = 0;
(b) dla wszystkich X,Y CV mamy f(X,Y) = —f(Y,X).
(c) Dla wszystkich X, Y, Z C V zachodzi:
f(x u y, z)=f(x, z) + f(Y, z) - f(x n y, z) f(z,x u Y)=f(z, X) + f(z, Y) — f(z,x n y).
(d) \f\ = f(s,V) = f(V,t).
3. Pokazać, że jeśli w sieci G = (V, E, s, t, c) przepustowość c przyjmuje wartości całkowitoliczbowe, to (niezależnie od wybranej metody znajdowania ścieżki powiększającej)
(a) maksymalny przepływ obliczany metodą Forda-Fulkersona jest całkowitoliczbowy,
(b) pesymistyczny czas działania algorytmu Forda-Fulkersona wynosi 0(\E\ • 1/1), gdzie / jest maksymalnym przepływem w G.