• Nie Znaleziono Wyników

Algorytmiczna teoria grafów

N/A
N/A
Protected

Academic year: 2021

Share "Algorytmiczna teoria grafów"

Copied!
23
0
0

Pełen tekst

(1)

Algorytmiczna teoria grafów

dr Hanna Furmańczyk

24 marca 2018

(2)

Najkrótsze ścieżki - cd

Algorytm Dijkstry (dodatnie wagi!) - slajdy z ćwiczeń str. 142-144.

(3)

Algorytm Bellmana-Forda

Wejście: obciążony spójny digraf G ze źródłem s.

Dozwolone ujemne wagi na krawędziach.

Nie może być cykli ujemnej długości.

Algorytm znajduje długości najkrótszych dróg ze źródła s do wszystkich pozostałych wierzchołków grafu - macierz D.

(4)

Algorytm Bellmana-Forda

Wejście: obciążony spójny digraf G ze źródłem s.

Dozwolone ujemne wagi na krawędziach.

Nie może być cykli ujemnej długości.

Algorytm znajduje długości najkrótszych dróg ze źródła s do wszystkich pozostałych wierzchołków grafu - macierz D.

(5)

Algorytm Bellmana-Forda

Wejście: obciążony spójny digraf G ze źródłem s.

Dozwolone ujemne wagi na krawędziach.

Nie może być cykli ujemnej długości.

Algorytm znajduje długości najkrótszych dróg ze źródła s do wszystkich pozostałych wierzchołków grafu - macierz D.

(6)

Algorytm Bellmana-Forda

Algorytm Bellmana-Forda; O(n3)

Dla każdego wierzchołka v ∈ V podstaw D[v ] := w (s, v ).

D[s] := 0

Dla każdego k od 1 do n − 2 wykonaj:

dla każdego v 6= s wykonaj:

dla każdego u ∈ V wykonaj:

D[v ] := min{D[v ], D[u] + w (u, v )}.

Dowód poprawności algorytmu - indukcyjny (po i -tej iteracji zewnętrznej pętli D[v ] zawiera długość z s do v zawierającą co najwyżej i + 1 krawędzi

Przykład - slajd 45 (Dereniowski)

(7)

Algorytm Bellmana-Forda

Algorytm Bellmana-Forda; O(n3)

Dla każdego wierzchołka v ∈ V podstaw D[v ] := w (s, v ).

D[s] := 0

Dla każdego k od 1 do n − 2 wykonaj:

dla każdego v 6= s wykonaj:

dla każdego u ∈ V wykonaj:

D[v ] := min{D[v ], D[u] + w (u, v )}.

Dowód poprawności algorytmu - indukcyjny (po i -tej iteracji zewnętrznej pętli D[v ] zawiera długość z s do v zawierającą co najwyżej i + 1 krawędzi

Przykład - slajd 45 (Dereniowski)

(8)

Algorytm Bellmana-Forda

Algorytm Bellmana-Forda; O(n3)

Dla każdego wierzchołka v ∈ V podstaw D[v ] := w (s, v ).

D[s] := 0

Dla każdego k od 1 do n − 2 wykonaj:

dla każdego v 6= s wykonaj:

dla każdego u ∈ V wykonaj:

D[v ] := min{D[v ], D[u] + w (u, v )}.

Dowód poprawności algorytmu - indukcyjny (po i -tej iteracji zewnętrznej pętli D[v ] zawiera długość z s do v zawierającą co najwyżej i + 1 krawędzi

Przykład - slajd 45 (Dereniowski)

(9)

Grafy acykliczne

Obserwacje

istnieje wierzchołek, do którego nie wchodzi żadna krawędź

wierzchołki można ponumerować tak, aby krawędź prowadziła od nuemru mniejszego do większego (przykład)

Algorytm. O(n2)

Dane wejścowe: acykliczny, obciążony digraf G = (V , A, w ) ze źródłem s, (wierzchołki odpowiednio ponumerowane). Dane wyjściowe: macierz D odległości z s do wszystkich

wierzchołków w G .

Dla każdego v ∈ V podstaw D[v ] := ∞. D[s] := 0.

Dla każdego v ∈ V po kolei wg numerów wykonaj: dla każdego u < v

D[v ] := min{D[v ], D[u] + w (u, v )}.

(10)

Grafy acykliczne

Obserwacje

istnieje wierzchołek, do którego nie wchodzi żadna krawędź wierzchołki można ponumerować tak, aby krawędź prowadziła od nuemru mniejszego do większego (przykład)

Algorytm. O(n2)

Dane wejścowe: acykliczny, obciążony digraf G = (V , A, w ) ze źródłem s, (wierzchołki odpowiednio ponumerowane). Dane wyjściowe: macierz D odległości z s do wszystkich

wierzchołków w G .

Dla każdego v ∈ V podstaw D[v ] := ∞. D[s] := 0.

Dla każdego v ∈ V po kolei wg numerów wykonaj: dla każdego u < v

D[v ] := min{D[v ], D[u] + w (u, v )}.

(11)

Grafy acykliczne

Obserwacje

istnieje wierzchołek, do którego nie wchodzi żadna krawędź wierzchołki można ponumerować tak, aby krawędź prowadziła od nuemru mniejszego do większego (przykład)

Algorytm. O(n2)

Dane wejścowe: acykliczny, obciążony digraf G = (V , A, w ) ze źródłem s, (wierzchołki odpowiednio ponumerowane).

Dane wyjściowe: macierz D odległości z s do wszystkich wierzchołków w G .

Dla każdego v ∈ V podstaw D[v ] := ∞.

D[s] := 0.

(12)

Skojarzenia

Definicja

Zbiór krawędzi M jest skojarzeniem (ang. matching)w grafie G , jeżli żadne dwie krawędzie należące do M nie mają wspólnego wierzchołka.

Przykład

(13)

Skojarzenia

Definicja

Zbiór krawędzi M jest skojarzeniem (ang. matching)w grafie G , jeżli żadne dwie krawędzie należące do M nie mają wspólnego wierzchołka.

Przykład

(14)

Problemy

Problemy:

najliczniejsze skojarzenie – szukamy skojarzenia zawierającego największą możliwą liczbę krawędzi

dokładne skojarzenie (ang. perfect matching – pytamy, czy istnieje skojarzenie złożone z n/2 krawędzi (n musi być parzyste)

skojarzenie o minimalnej (maksymalnej) wadze – szukamy w obciążonym grafie takiego skojarzenia, aby suma wag jego krawędzi była możliwie najmniejsza (największa)

dokładne skojarzenie o minimalnej (maksymalnej) wadze – j.w. oraz dodatkowo skojarzenie musi zawierać n/2 krawędzi

(15)

Problemy

Problemy:

najliczniejsze skojarzenie – szukamy skojarzenia zawierającego największą możliwą liczbę krawędzi

dokładne skojarzenie (ang. perfect matching – pytamy, czy istnieje skojarzenie złożone z n/2 krawędzi (n musi być parzyste)

skojarzenie o minimalnej (maksymalnej) wadze – szukamy w obciążonym grafie takiego skojarzenia, aby suma wag jego krawędzi była możliwie najmniejsza (największa)

dokładne skojarzenie o minimalnej (maksymalnej) wadze – j.w. oraz dodatkowo skojarzenie musi zawierać n/2 krawędzi

(16)

Problemy

Problemy:

najliczniejsze skojarzenie – szukamy skojarzenia zawierającego największą możliwą liczbę krawędzi

dokładne skojarzenie (ang. perfect matching – pytamy, czy istnieje skojarzenie złożone z n/2 krawędzi (n musi być parzyste)

skojarzenie o minimalnej (maksymalnej) wadze – szukamy w obciążonym grafie takiego skojarzenia, aby suma wag jego krawędzi była możliwie najmniejsza (największa)

dokładne skojarzenie o minimalnej (maksymalnej) wadze – j.w. oraz dodatkowo skojarzenie musi zawierać n/2 krawędzi

(17)

Problemy

Problemy:

najliczniejsze skojarzenie – szukamy skojarzenia zawierającego największą możliwą liczbę krawędzi

dokładne skojarzenie (ang. perfect matching – pytamy, czy istnieje skojarzenie złożone z n/2 krawędzi (n musi być parzyste)

skojarzenie o minimalnej (maksymalnej) wadze – szukamy w obciążonym grafie takiego skojarzenia, aby suma wag jego krawędzi była możliwie najmniejsza (największa)

dokładne skojarzenie o minimalnej (maksymalnej) wadze – j.w.

oraz dodatkowo skojarzenie musi zawierać n/2 krawędzi

(18)

Definicja

Niech M będzie dowolnym skojarzeniem.

Krawędź nz skojarzoną, jeżeli należy ona do M. W przeciwnym wypadku krawędź jest nieskojarzona.

Wierzchołek v nz wolnym (w odniesieniu do konkretnego skojarzenia), jeżeli żadna spośród krawędzi należących do M nie zawiera v .

Droga P jest naprzemienna wzgl. M, jeżeli dla dowolnych dwóch sąsiednich krawędzi należących do P nie jest prawdą, że jednocześnie należą lub nie należą one do M.

Droga naprzemienna, która zaczyna się i kończy w różnych wierzchołkach wolnych jest drogą powiększającą.

(19)

Definicja

Niech M będzie dowolnym skojarzeniem.

Krawędź nz skojarzoną, jeżeli należy ona do M. W przeciwnym wypadku krawędź jest nieskojarzona.

Wierzchołek v nz wolnym (w odniesieniu do konkretnego skojarzenia), jeżeli żadna spośród krawędzi należących do M nie zawiera v .

Droga P jest naprzemienna wzgl. M, jeżeli dla dowolnych dwóch sąsiednich krawędzi należących do P nie jest prawdą, że jednocześnie należą lub nie należą one do M.

Droga naprzemienna, która zaczyna się i kończy w różnych wierzchołkach wolnych jest drogą powiększającą.

(20)

Definicja

Niech M będzie dowolnym skojarzeniem.

Krawędź nz skojarzoną, jeżeli należy ona do M. W przeciwnym wypadku krawędź jest nieskojarzona.

Wierzchołek v nz wolnym (w odniesieniu do konkretnego skojarzenia), jeżeli żadna spośród krawędzi należących do M nie zawiera v .

Droga P jest naprzemienna wzgl. M, jeżeli dla dowolnych dwóch sąsiednich krawędzi należących do P nie jest prawdą, że jednocześnie należą lub nie należą one do M.

Droga naprzemienna, która zaczyna się i kończy w różnych wierzchołkach wolnych jest drogą powiększającą.

(21)

Definicja

Niech M będzie dowolnym skojarzeniem.

Krawędź nz skojarzoną, jeżeli należy ona do M. W przeciwnym wypadku krawędź jest nieskojarzona.

Wierzchołek v nz wolnym (w odniesieniu do konkretnego skojarzenia), jeżeli żadna spośród krawędzi należących do M nie zawiera v .

Droga P jest naprzemienna wzgl. M, jeżeli dla dowolnych dwóch sąsiednich krawędzi należących do P nie jest prawdą, że jednocześnie należą lub nie należą one do M.

Droga naprzemienna, która zaczyna się i kończy w różnych wierzchołkach wolnych jest drogą powiększającą.

(22)

Definicja

Niech A, B ⊆ E (G ) będą zbiorami. Wówczas A ⊕ B := (A ∪ B)\(A ∩ B)

Twierdzenie

Jeśli M jest skojarzeniem, natomiast P drogą powiększającą wzgl. M, to M0 := M ⊕ P jest również skojarzeniem. Ponadto

|M0| = |M| + 1 - PRZYKŁAD.

(23)

Definicja

Niech A, B ⊆ E (G ) będą zbiorami. Wówczas A ⊕ B := (A ∪ B)\(A ∩ B)

Twierdzenie

Jeśli M jest skojarzeniem, natomiast P drogą powiększającą wzgl.

M, to M0 := M ⊕ P jest również skojarzeniem. Ponadto

|M0| = |M| + 1 - PRZYKŁAD.

Cytaty

Powiązane dokumenty

Nie mo»e by¢ jednak tak, »e w jakiej± iteracji zewn¦trznej p¦tli nie wykonamy »adnej relaksacji, bo je±li raz sprawdzimy, »e warunek z instrukcji if nie jest speªniony

Mówimy, że G jest eulerowski, jeśli istnieje łańcuch zamknięty zawierający każdą krawędź multigrafu; taki łańcuch nazywamy cyklem Eulera.. Analogicznie, mówimy, że G

jest większy od obecnego koloru c(u) nie koliduje z kolorami wierzchołków ze stosu jeżeli uda się pokolorować, to:. sprawdzamy, czy pokolorowano już wszystkie wierzchołki

wtedy, kiedy nie można wskazać ścieżki powiększającej, a nie mamy jeszcze przelewu maksymalnego.. Niezbędny jest systematyczny sposób generowania ścieżek powiększających -

Dwa grafy są homeomorficzne jeśli mogą być otrzymane z tego samego grafu poprzez umieszczenie nowych wierzchołków stopnia dwa na jego krawędziach (krawędź zastępowana

Sprawdzamy, czy współrzędna x wierzchołka paraboli będącej wykresem naszej funkcji mieści się w danym

Określenie najmniejszej/największej wartości danej funkcji na podstawie jej wykresu jest stosunkowo proste.. Na prezentacji zajmiemy się określaniem najmniejszej/najwięszkej

Odpowiedz na pytanie, jak zmieni się produkcja finalna obu wyrobów, jeżeli produkcja globalna pierwszego spadnie o 5%, a drugiego wzrośnie o 8% (na podstawie metody Eulera