26
1 E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2 Teoretyczne podstawy informatyki ład 9b: Grafowy model danych- cz.II. to jest relacja binarna. afów mamy ogromne możliwości wizualizacji jako zbiór w (zwanych wierzchołkami) połączonych liniami lub strzałkami nych krawędziami). Pod tym względem graf stanowi uogólnienie astego modelu danych. Podobnie jak drzewa, grafy występują w h postaciach: grafów skierowanych i nieskierowanych lub towanych i niezaetykietowanych. są przydatne do analizy szerokiego zakresu problemów: enie odległości, znajdowanie cykliczności w relacjach, reprez ury programów, reprezentacji relacji binarnych, reprezentacji tów i układów elektronicznych.

Teoretyczne podstawy informatyki

  • Upload
    washi

  • View
    72

  • Download
    1

Embed Size (px)

DESCRIPTION

Teoretyczne podstawy informatyki. Wykład 9 b : Grafowy model danych- cz.II. Graf to jest relacja binarna. Dla grafów mamy ogromne możliwości wizualizacji jako zbiór punktów (zwanych wierzchołkami) połączonych liniami lub strzałkami - PowerPoint PPT Presentation

Citation preview

Page 1: Teoretyczne podstawy informatyki

1Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

Teoretyczne podstawy informatyki

Wykład 9b: Grafowy model danych- cz.II.

Graf to jest relacja binarna. Dla grafów mamy ogromne możliwości wizualizacji jako zbiór punktów (zwanych wierzchołkami) połączonych liniami lub strzałkami (nazwanych krawędziami). Pod tym względem graf stanowi uogólnienie drzewiastego modelu danych. Podobnie jak drzewa, grafy występują w różnych postaciach: grafów skierowanych i nieskierowanych lubetykietowanych i niezaetykietowanych. Grafy są przydatne do analizy szerokiego zakresu problemów: obliczenie odległości, znajdowanie cykliczności w relacjach, reprezentacji struktury programów, reprezentacji relacji binarnych, reprezentacji automatów i układów elektronicznych.

Page 2: Teoretyczne podstawy informatyki

2Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

Algorytm przeszukiwania w głąb

Jest to podstawowa metoda badania grafów skierowanych.Bardzo podobna do stosowanych dla drzew, w których startuje się od korzenia i rekurencyjnie bada wierzchołki potomne każdego odwiedzonego wierzchołka.Trudność polega na tym ze w grafie mogą pojawiać się cykle... należywobec tego znaczyć wierzchołki już odwiedzone i nie powracaćwięcej do takich wierzchołków.

Z uwagi na fakt, że w celu uniknięcia dwukrotnego odwiedzenia tego samegowierzchołka jest on odpowiednio oznaczany, graf w trakcie jego badaniazachowuje się podobnie do drzewa. W rzeczywistości można narysowaćdrzewo, którego krawędzie rodzic-potomek będą niektórymi krawędziamiprzeszukiwanego grafu G.Takie drzewo nosi nazwę drzewa przeszukiwania w głąb (ang. depth-first-search-first) dla danego grafu.

Page 3: Teoretyczne podstawy informatyki

3Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

a

b d

c e f

Graf skierowany

Jedno z możliwych drzew przeszukiwania

a

b d

c e fLas przeszukiwania: dwa drzewa o korzeniach a, d

a

b d

c e f

Las przeszukiwania w głąb.

krawędźskrośna

Page 4: Teoretyczne podstawy informatyki

4Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

a

b d

c e f

6

4

32

1

5

Po (podczas) konstruowaniu drzewa przeszukiwania w głąbmożna ponumerować jego wierzchołki w kolejności wstecznej(ang. postorder).

krawędźwsteczna

krawędźskrośna

Page 5: Teoretyczne podstawy informatyki

5Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

Rekurencyjna funkcja przeszukiwania w głąb: void dfs

enum MARKTYPE {VISITED, UNVISITED};typedef struct{ enum MARKTYPE mark; LIST successors;} GRAPH[MAX];

typedef struct CELL *LIST;struct CELL { NODE nodeName; LIST next;};

void dfs(NODE u, GRAPH G){ LIST p; /* lista sąsiedztwa dla wierzchołka u */ NODE v; /* wierzchołek w komórce wskazywanej przez p */ G[u].mark = VISITED; p = G[u].successors; while (p != NULL) { v = p->nodeName; if (G[y].mark == UNVISITED) dfs(v, G); p = p->next; }}

Page 6: Teoretyczne podstawy informatyki

6Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

Znajdowanie cykli w grafie skierowanym

Podczas przeszukiwania w głąb grafu skierowanego G można wszystkim wierzchołkom przypisać numery zgodne z kolejnościąwsteczną w czasie rzędu O(m).Krawędzie wsteczne to takie dla których początki są równe lub mniejsze końcom ze względu na numeracje wsteczną.Zawsze gdy istnieje krawędź wsteczna w grafie musi istnieć cykl.Prawdziwe jest również twierdzenie odwrotne.Aby stwierdzić czy w grafie występuje cykl należy przeprowadzićnumerację wsteczną a następnie sprawdzić wszystkie krawędzie.Całkowity czas wykonania testu cykliczności to O(m), gdzie m to większaz wartości liczby wierzchołków i liczby krawędzi.

Page 7: Teoretyczne podstawy informatyki

7Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

Sortowanie topologiczne

Załóżmy, że graf skierowany G jest acykliczny. Dla każdego grafu możemy określić las poszukiwania w głąb., określając numerację wsteczną jego wierzchołków. Załóżmy, ze (n) określa listę wierzchołków grafu G w kolejności odwrotnej do numeracji wstecznej. To znaczy, jest wierzchołkiem opatrzonym numerem n, 2wierzchołkiem opatrzonym numeremn-1 i ogólnie wierzchołek ijest opatrzony numerem n-i+1.

Kolejność wierzchołków na tej liście ma ta własność, że wszystkie krawędziegrafu G biegną od początku do końca, tzn. początek poprzedza koniec.Takie uporządkowanie nazywamy topologicznym (ang. topological order),a proces znajdowania takiego uporządkowania to sortowanie topologiczne (ang. topological sorting). Jedynie grafy acykliczne posiadają uporządkowanie topologiczne. Wykonującposzukiwanie w głąb możemy je określić w czasie O(m).Jedna z możliwości: odkładać kolejno znalezione wierzchołki „na stos”. Pozakończeniu lista znajdująca się na stosie będzie reprezentować uporządkowanie topologiczne grafu.

Page 8: Teoretyczne podstawy informatyki

8Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

Sortowanie topologiczne

d

c e

b f

a

skierowany graf cykliczny

a b d

ef

c

1 2 4 6

53

las przeszukiwania w głąb

Uporządkowanie topologiczne to (d,e,c,f,b,a)

Page 9: Teoretyczne podstawy informatyki

9Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

Zastosowania

Uporządkowanie topologiczne przydaje się wówczas, gdy istnieją pewne ograniczenia odnośnie kolejności w jakiej mają być wykonywane zadania.Jeśli krawędź wiodącą od wierzchołka u do wierzchołka v jest rysowana wówczas, gdy zadanie u musi zostać wykonane przed zadaniem v, to uporządkowaniem zapewniającym wykonanie wszystkich żądań jest właśnie uporządkowanie topologiczne.

Podobny przykład to graf wywołań nierekurencyjnego zbioru funkcji, kiedynależy przeanalizować każdą funkcje dopiero po dokonaniu analizy funkcjiją wywołującej. Jeśli krawędzie wiodą od funkcji wywołujących do wywoływanych, kolejność, w której należy przeprowadzić takie analizy, toodwrócenie porządku topologicznego, czyli uporządkowanie wsteczne.Zapewnia to że każda funkcja zostanie przeanalizowana dopiero po dokonaniu analizy wszystkich innych wywoływanych przez nią funkcji.

Istnienie cyklu w grafie reprezentującym priorytety zadań mówi o tym, że nieistnieje takie uporządkowanie, dzięki któremu możliwe byłoby wykonanie wszystkich zadań.

Istnienie cyklu w grafie wywołań pozwala stwierdzić występowanie rekurencji.

Page 10: Teoretyczne podstawy informatyki

10Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

Problem osiągalności

Naturalne pytanie związane z grafem skierowanym jest: które wierzchołkisą osiągalne z danego wierzchołka u przy założeniu, że po grafie można się poruszać tylko zgodnie z kierunkiem krawędzi? Taki zbiór wierzchołków określa się mianem zbioru osiągalności. (ang. reachable set) danego wierzchołka u.Możemy wykorzystać rekurencyjną funkcje poszukiwania w głąb.Całkowity czas wykonania takiego zapytania to O(m n).

Znajdowanie spójnych składowych

Do znajdowania spójnych składowych możemy użyć algorytmu poszukiwaniaw głąb. Traktujemy graf nieskierowany jako graf skierowany, w którym każdakrawędź nieskierowana została zastąpiona dwiema krawędziami skierowanymiwiodącymi w obu kierunkach. Do reprezentacji grafu używamy list sąsiedztwa.Tworzymy las przeszukiwania w głąb grafu skierowanego. Każde drzewo w tym lesie odpowiada jednej składowej spójności grafu nieskierowanego.Czas wykonania algorytmu O(m) (przy użyciu struktury drzewiastej, patrz poprzedni wykład, czas wykonania wynosi O(m log n)).

Page 11: Teoretyczne podstawy informatyki

11Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

Algorytm Dijkstry znajdowania najkrótszych dróg.

Rozpatrujemy graf G (skierowany lub nieskierowany), w którym wszystkiekrawędzie zaetykietowano wartościami reprezentującymi ich długości.Długość (ang. distance) danej drogi stanowi wartość sumy etykiet związanychz nią krawędzi. Minimalna odległość z wierzchołka u do wierzchołka v to minimalna długość którejś z dróg od u do v.

Dla nieustalonego wierzchołka v należy zapamiętać długość najkrótszej drogispecjalnej (ang. soecial path) czyli takiej która rozpoczyna się w wierzchołku źródłowym, wiedzie przez ustalone wierzchołki, i na ostatnim etapie przechodzi z obszaru ustalonegodo wierzchołka v.

Traktujemy wierzchołek s jako wierzchołek źródłowy. W etapie pośrednimwykonywania algorytmu w grafie G istnieją tzw. wierzchołki ustalone (ang. settled),tzn. takie dla których znane są odległości minimalne. W szczególności zbiórtakich wierzchołków zawiera również wierzchołek s.

s v

Graf G

drogaspecjalna

Page 12: Teoretyczne podstawy informatyki

12Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

Dla każdego wierzchołka u zapamiętujemy wartość dist(u).Jeśli u jest wierzchołkiem ustalonym, to dist(u) jest długością najkrótszejdrogi ze źródła do wierzchołka u. Jeśli u nie jest wierzchołkiem ustalonym,to dist(u) jest długością drogi specjalnej ze źródła do u. Na czym polega ustalanie wierzchołków: (1) znajdujemy wierzchołek v który jest nieustalony ale posiada najmniejsządist(v) ze wszystkich wierzchołków nieustalonych (2) przyjmujemy wartość dist(v) za minimalną odległość z s do v (3) dostosowujemy wartości wszystkich dist(u) dla innych wierzchołków które nie są ustalone, wykorzystując fakt, że wierzchołek v jest już ustalony. Czyli porównujemy stare dist(u) z wartością dist(v)+etykieta(v->u) jeżeli taka krawędź istnieje.

Czas wykonania algorytmu jest O(m log n).

Page 13: Teoretyczne podstawy informatyki

13Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

L

K

HP

WM15

2012

13

11

2428

ETAPY ustalania wierzchołkówMIASTO (1) (2) (3) (4) (5)

H 0* 0* 0* 0* 0* P 13 13 13* 13* 13* M INF INF 33 33 33* W INF INF 25 25* 25* L INF 35 35 35 35 K 11 11* 11* 11* 11*

Etapy wykonaniaalgorytmu Dijkstry

Page 14: Teoretyczne podstawy informatyki

14Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

Indukcyjny dowód poprawności algorytmuW celu wykazania poprawności algorytmu Dijkstry należy przyjąć, że etykiety krawędzi są nieujemne. Indukcyjny dowód poprawności względem k prowadzi do stwierdzenia że: (a) dla każdego wierzchołka ustalonego u, wartość dist(u) jest minimalną odległością z s do u, a najkrótsza droga do u składa się tylko z wierzchołkówustalonych. (b) dla każdego nieustalonego wierzchołka u, wartość dist(u) jest minimalnądługością drogi specjalnej z s do u (jeśli droga nie istnieje wartość wynosi INF).

Podstawa:

Dla k=1 wierzchołek s jest jedynym wierzchołkiem ustalonym. Inicjalizujemy dist(s) wartością 0, co spełnia warunek (a).Dla każdego innego wierzchołka u, dist(u) jest inicjalizowane wartością etykiety krawędzi s u, o ile taka istnieje. Jeżeli nie istnieje, wartością inicjalizacji jest INF. Zatem spełniony jest również warunek (b).

Page 15: Teoretyczne podstawy informatyki

15Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

Indukcja:

Załóżmy, ze warunki (a) i (b) za spełnione po ustaleniu k wierzchołków oraz niechv będzie (k+1) ustalonym wierzchołkiem. Warunek (a) jest wciąż spełniony ponieważ dist(v) jest najmniejsza długością drogi z s do v.Załóżmy, że tak nie jest. Musiała by wiec istnieć hipotetyczna krótsza drogado v wiodąca przez w i u. Jednakże wierzchołek v został obrany jako k+1 ustalony,co oznacza, ze w tym momencie dist(u) nie może być mniejsze od dist(v), gdyż wówczas jako (k+1) wierzchołek wybrany zostałby wierzchołek u.

Hipotetyczna krótsza droga do v wiodąca przez w i u.

sw

u

v

Graf G

Na podstawie warunku (b) hipotezyindukcyjnej wiadomo, ze dist(u) jest minimalna długością drogi specjalnej wiodącej do u. Jednak droga z s przezw do u jest drogą specjalną, tak więcjej długość równa jest co najmniej dist(u). Stąd domniemana krótsza droga z s do v wiodąca przez w i u ma długość równą conajmniej dist(v), ponieważ pierwsza jej część, - z s do u – ma długość dist(u), a dist(u) dist(v). Stąd warunek (a) jestspełniony dla k+1 wierzchołków.

Page 16: Teoretyczne podstawy informatyki

16Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

s uw

v

Graf Gwierzchołki ustalone

Teraz należy pokazać, że warunek (b) jest spełniony po dodaniu do wierzchołkówustalonych wierzchołka v. Weźmy pod uwagę pewien wierzchołek u, który wciążpozostaje nieustalony po dodaniu v do wierzchołków ustalonych. W najkrótszej drodze specjalnej do u musi istnieć pewien wierzchołek przedostatni; wierzchołkiem tym może być zarówno v, jak i pewien inny wierzchołek w.

Dwie możliwości określenia przedostatniego wierzchołka w drodze specjalnej do u.

Przyjmijmy, że wierzchołkiem przedostatnim jest v. Długość drogi z s przez v do u wynosi dist(v) + wartość etykiety v u.

Przyjmijmy, ze wierzchołkiem przedostatnim jest w. Na podstawiewarunku (a) hipotezy indukcyjnej można stwierdzić, ze najkrótsza droga z s do w składa się jedynie z wierzchołków, które zostały ustalone przed v, stąd wierzchołek v nie występuje w tej drodze. A więc długość drogi specjalnejdo u się nie zmienia po dodaniu v do wierzchołków ustalonych.

Ponieważ w momencie ustalania wierzchołka v przeprowadzona jest operacja dostosowywania dist(u), warunek (b) jestspełniony.

Page 17: Teoretyczne podstawy informatyki

17Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

Jeśli potrzebne jest poznanie minimalnych odległości miedzywszystkimi parami wierzchołków w grafie o n wierzchołkach, któreposiadają etykiety o wartościach nieujemnych, można uruchomićalgorytm Dijkstry dla każdego z n wierzchołków jako wierzchołkaźródłowego. Czas wykonania algorytmu Dijsktry wynosi O(m ln n ), gdzie m oznacza większą wartość z liczby wierzchołków lub liczby krawędzi. Znalezienie w ten sposób minimalnych odległości miedzy wszystkimi parami wierzchołków zajmuje czas rzędu O(m n log n). Jeśli m jest bliskie swojej maksymalnej wartości m n2 to można skorzystać z implementacji algorytmu Dijkstry który działa w czasie O(n2). Wykonanie go n razy daje czas rzędu O(n3) wykonania algorytmu znajdowania minimalnych odległości miedzy wszystkimi paramiwierzchołków.

Istnieje inny algorytm znajdowania minimalnych odległości miedzywszystkimi parami wierzchołków, noszący nazwę algorytmu Floyda. Jego wykonanie zajmuje czas rzędu O(n3) . Operuje na macierzachsąsiedztwa a nie listach sąsiedztwa i jest koncepcyjnie prostszy.

Page 18: Teoretyczne podstawy informatyki

18Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

Algorytm Floyda znajdowania najkrótszych dróg

0

1

v

n-1 n-1

w

1

0

u

Podstawa algorytmu jest działanie polegające na rozpatrywaniu po kolei każdego wierzchołka grafu jako elementu centralnego (ang. pivot). Kiedy wierzchołek u jest elementem centralnym staramy się wykorzystać fakt, że u jest wierzchołkiem pośrednim miedzy wszystkimi parami wierzchołków. Dla każdej pary wierzchołków, na przykład v i w, jeśli suma etykiet krawędzi v u oraz u w (na rysunku d + e) , jest mniejsza od bieżąco rozpatrywanej etykiety f krawędzi wiodącej od v do w, to wartość f jest zastępowana wartością d+e.

d e

f

Node u, v, w;

for (v = 0; w < MAX; v++) for (w=0; w < MAX; w++) dist[v][w] = arc[v][w];for (u=0; v< MAX; v++) for (w=0; w<MAX; w++) if( dist[v][u]+dist[u][w] < dist[v][w]) dist[v][w] = dist [v][u] + dist [u][w];

arc[v][w] –etykieta krawędzi, wierzchołki numerowane

Page 19: Teoretyczne podstawy informatyki

19Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

0

1

23

5415

2012

13

11

2428 0 1 2 3 4 50 0 24 INF INF INF 281 24 0 11 INF INF INF 2 INF 11 0 13 INF INF3 INF INF 13 0 20 124 INF INF INF 20 0 155 28 INF INF 12 15 0

Macierz arc, która odzwierciedlapoczątkową postać macierzy dist

Page 20: Teoretyczne podstawy informatyki

20Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

0

1

23

5415

2012

13

11

2428 0 1 2 3 4 50 0 24 INF INF INF 281 24 0 11 INF INF 52 2 INF 11 0 13 INF INF3 INF INF 13 0 20 124 INF INF INF 20 0 155 28 52 INF 12 15 0

Macierz dist, po użyciu wierzchołka0 jako elementu centralnego

Page 21: Teoretyczne podstawy informatyki

21Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

0

1

23

5415

2012

13

11

2428 0 1 2 3 4 50 0 24 35 INF INF 281 24 0 11 INF INF 52 2 35 11 0 13 INF 633 INF INF 13 0 20 124 INF INF INF 20 0 155 28 52 63 12 15 0

Macierz dist, po użyciu wierzchołka1 jako elementu centralnego

itd.... itd....

Page 22: Teoretyczne podstawy informatyki

22Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

0

1

23

5415

2012

13

11

2428 0 1 2 3 4 50 0 24 35 40 43 281 24 0 11 24 44 52 2 35 11 0 13 33 253 40 24 13 0 20 124 43 44 33 20 0 155 28 36 25 12 15 0

Ostateczna postać macierzy dist.

Page 23: Teoretyczne podstawy informatyki

23Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

Uzasadnienie poprawności algorytmu Floyda

Na dowolnym etapie działania algorytmu Floyda odległość z wierzchołka v do wierzchołka w stanowi długość najkrótszej z tych dróg, które wiodą jedynieprzez wierzchołki użyte dotąd jako elementy centralne. Ponieważ wszystkiewierzchołki zostają w końcu użyte jako elementy centralne, elementy dist[v][w]zawierają po zakończeniu działań minimalne długości wszystkich możliwych dróg.

Definiujemy k-drogę z wierzchołka v do wierzchołka w jako drogę z v do w taką, ze żaden jej wierzchołek pośredninie ma numeru wyższego od k. Należy zauważyć, że nie ma ograniczeniaodnośnie tego, że v lub w maja mieć

wartość k lub mniejszą. k=-1 oznacza że droga nie posiada wierzchołków pośrednich.

v w

k-droga

numery niższe od k

numery wyższe od k

Page 24: Teoretyczne podstawy informatyki

24Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

v k+1 wk-droga Rk-droga Q

Twierdzenie S(k): jeżeli etykiety krawędzi maja wartości nieujemne,to po przebiegu k – pętli, element dist[v][w] ma wartość najkrótszejk – drogi z v do w lub ma wartość INF, jeżeli taka droga nie istnieje.

Podstawa:

Podstawa jest warunek k = -1. Krawędzie i drogi składające się z pojedynczegowierzchołka są jedynymi (-1) drogami.

Indukcja:

Załóżmy ze S(k) jest spełnione i rozważmy co się dzieje z elementami dist[v][w]w czasie k+1 przebiegu pętli. Załóżmy, że P jest najkrótszą (k+1) – drogą wiodąca z v do w. Mamy do czynienia z dwoma przypadkami, w zależności czy droga P prowadzi przez wierzchołek k+1 .

k-drogę P można rozbićna dwie k-drogi, Q oraz R.

Page 25: Teoretyczne podstawy informatyki

25Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

(1) Jeżeli P jest k-drogą, to znaczy, kiedy P nie wiedzie przez wierzchołek k+1, to na podstawie hipotezy indukcyjnej wartość elementu dist[v][w] jest równa długości P po zakończeniu k-tej iteracji. Nie można zmienić wartości dist[v][w] podczas przebiegu wykonywanego dla wierzchołka k+1 traktowanego jako element centralny, gdyż nie istnieją żadne krótsze (k+1)-drogi.

(2) Jeżeli P jest (k+1)- droga, można założyć, że P przechodzi przez wierzchołek k+1 tylko raz, gdyż cykl nigdy nie może spowodować zmniejszenia odległości (przy założeniu że wszystkie etykiety maja wartości nieujemne). Stąd droga P składa się z k-drogi Q, wiodącej od wierzchołka v do k+1, oraz k-drogi R, wiodącej od wierzchołka k+1 do w. Na podstawie hipotezy indukcyjnej wartości elementów dist[v][k+1] oraz dist[k+1][w] będą długościami dróg odpowiednio, Q i R, po zakończeniu k-tej iteracji.

Ostatecznie wnioskujemy, że w (k+1) przebiegu, wartością elementu dist[v][w]staje się długość najkrótszej (k+1)-drogi dla wszystkich wierzchołków v oraz w.Jest to twierdzenie S(k+1), co oznacza koniec kroku indukcyjnego.Załóżmy teraz, że k=n-1. Oznacza to, że wiemy iż po zakończeniu wszystkich n

przebiegów, wartość dist[v][w] będzie minimalną odległością dowolnej (n-1)-drogiwiodącej z wierzchołka v do w. Ponieważ każda droga jest (n-1) drogą, więc dist[v][w] jest minimalną długością drogi wiodącej z wierzchołka v do w.

Page 26: Teoretyczne podstawy informatyki

26Prof. dr hab. E. Richter-Was, Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007

Posumowanie informacji o algorytmach grafowych

PROBLEM ALGOTYTM(Y) CZAS WYKONANIA

Minimalne drzewo rozpinające Algorytm Kruskala O(m log n)Znajdowanie cykli Przeszukiwanie w głąb O(m)

Uporządkowanie topolog. Przeszukiwanie w głąb O(m)

Osiągalność w przypadk.pojedynczego źródła Przeszukiwanie w głąb O(m) Spójne składowe Przeszukiwanie w głąb O(m)

Najkrótsza drogadla pojedyncz. źródła Algorytm Dijskry O(m log n)

Najkrótsza droga dla Algorytm Dijskry O(m n log n)wszystkich par Algorytm Floyda O(n3)