algorytmy i struktury danych - riad.pk.edu.plriad.pk.edu.pl/~zk/aisd_w2.pdf · wykład 2: algorytmy...
TRANSCRIPT
![Page 1: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/1.jpg)
Algorytmy i Struktury Danych
Wykładowca:
dr inż. Zbigniew Kokosiński
POLITECHNIKA KRAKOWSKA WYDZIAŁ INŻYNIERII ELEKTRYCZNEJ i KOMPUTEROWEJ Katedra Automatyki i Technik Informacyjnych
www.pk.edu.pl/~zk/AISD_HP.html
![Page 2: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/2.jpg)
Wykład 2: Algorytmy grafowe I
1. Przeszukiwanie grafu w głąb.
2. Przeszukiwanie grafu wszerz.
3. Grafy ważone. Minimalne drzewa rozpinające (MST).
4. Algorytmy Prima (kolejka priorytetowa) i Kruskala.
5. Grafy ważone. Wyszukiwanie ścieżek. Algorytm
Dijkstry w grafie skierowanym dla wag nieujemnych.
6. Maksymalne skojarzenia w grafach.
7. Problem stabilnych małżeństw.
8. Przepływy w sieciach.
9. Algorytm DMKM do wyznaczania maksymalnego
przepływu w sieci.
![Page 3: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/3.jpg)
Przeszukiwanie
grafu w głąb
![Page 4: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/4.jpg)
Przeszukiwanie
grafu wszerz
![Page 5: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/5.jpg)
Minimalne drzewo
rozpinające grafu
Algorytm Prima(kolejka priorytetowa)
![Page 6: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/6.jpg)
Minimalne drzewo
rozpinające grafu
Algorytm Kruskala
![Page 7: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/7.jpg)
Algorytm Dijkstry
![Page 8: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/8.jpg)
Skojarzenia w grafach
![Page 9: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/9.jpg)
Skojarzenia w grafach dwudzielnych
![Page 10: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/10.jpg)
Problem stabilnych małżeństw
![Page 11: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/11.jpg)
Przepływy w sieciach - założenia
![Page 12: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/12.jpg)
Przepływy w sieciach - przykład
![Page 13: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/13.jpg)
Algorytm DMKM1. Cechując wierzchołki od s do t numerami kolejnych warstw
znajdź sieć warstwową GL złożoną z połączeń użytecznych z x do y grafu G (czyli z łuków (x,y) z bieżącym przepływem mniejszym od przepustowości, ewentualnie z łuków (y,x) z niezerowym przepływem z y do x).
2. Dla każdego wierzchołka sieci GL wyznacz jego potencjał(minimum z jego potencjału wejściowego i wyjściowego).
3. Wierzchołek o najmniejszym potencjale staje się wierzchołkiem odniesienia, przez który prowadzi ścieżka z s do t z przepływem równym temu potencjałowi.
4. Usuń z GL wszystkie łuki nasycone i wierzchołki o potencjale 0.5. Powtarzając kroki 3-4 wyznacz przepływ nasycający sieci GL
(superpozycja przepływów częściowych)6. Powtarzaj kroki 1-5, aż utworzenie kolejnej sieci warstwowej GL
w G będzie niemożliwe.7. Przepływ maksymalny w G jest superpozycją przepływów
nasycających we wszystkich sieciach warstwowych.
![Page 14: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/14.jpg)
Pojęcie sieci warstwowej
![Page 15: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/15.jpg)
Wyznaczanie
maksymalnego
przepływu
w sieci
warstwowej -
przykład
![Page 16: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/16.jpg)
Wyznaczanie
maksymalnego
przepływu
w sieci
warstwowej -
przykład
![Page 17: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/17.jpg)
Algorytm
DMKM –
wydzielenie
pierwszej
sieci
warstwowej
![Page 18: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/18.jpg)
Algorytm
DMKM –
wydzielenie
drugiej sieci
warstwowej
![Page 19: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/19.jpg)
Algorytm
DMKM –
wydzielenie
drugiej sieci
warstwowej
![Page 20: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/20.jpg)
Algorytm
DMKM –
wydzielenie
trzeciej sieci
warstwowej
![Page 21: Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy grafowe I 1. Przeszukiwanie grafu w głąb. 2. Przeszukiwanie grafu wszerz. 3](https://reader030.vdocuments.site/reader030/viewer/2022021621/5c75a8fc09d3f2ff328bb685/html5/thumbnails/21.jpg)
Źródła wzorów, przykładów i rysunków :
1. Sedgewick R. : Algorithms in C, Addison-Wesley 1990
2. Sysło M.M., Deo N., Kowalik J.S. : Algorytmy optymalizacji dyskretnej,WN-T 1995