Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy...

Post on 27-Feb-2019

262 views 0 download

Transcript of Algorytmy i Struktury Danych - riad.pk.edu.plriad.pk.edu.pl/~zk/AISD_W2.pdf · Wykład 2: Algorytmy...

Algorytmy i Struktury Danych

Wykładowca:

dr inż. Zbigniew Kokosiński

zk@pk.edu.pl

POLITECHNIKA KRAKOWSKA WYDZIAŁ INŻYNIERII ELEKTRYCZNEJ i KOMPUTEROWEJ Katedra Automatyki i Technik Informacyjnych

www.pk.edu.pl/~zk/AISD_HP.html

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.

Przeszukiwanie

grafu w głąb

Przeszukiwanie

grafu wszerz

Minimalne drzewo

rozpinające grafu

Algorytm Prima(kolejka priorytetowa)

Minimalne drzewo

rozpinające grafu

Algorytm Kruskala

Algorytm Dijkstry

Skojarzenia w grafach

Skojarzenia w grafach dwudzielnych

Problem stabilnych małżeństw

Przepływy w sieciach - założenia

Przepływy w sieciach - przykład

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.

Pojęcie sieci warstwowej

Wyznaczanie

maksymalnego

przepływu

w sieci

warstwowej -

przykład

Wyznaczanie

maksymalnego

przepływu

w sieci

warstwowej -

przykład

Algorytm

DMKM –

wydzielenie

pierwszej

sieci

warstwowej

Algorytm

DMKM –

wydzielenie

drugiej sieci

warstwowej

Algorytm

DMKM –

wydzielenie

drugiej sieci

warstwowej

Algorytm

DMKM –

wydzielenie

trzeciej sieci

warstwowej

Ź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