Grafy i Zastosowania. 6: Najkrótsze ±cie»ki. c Marcin Sydow. Najkrótsze cie»ki. Warianty. Relaksacja DAG. Algorytm Dijkstry.

Podobne dokumenty
12: Znajdowanie najkrótszych ±cie»ek w grafach

Minimalne drzewa rozpinaj ce

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2

Najkrótsze drogi w grafach z wagami

Grafy i Zastosowania. 5: Drzewa Rozpinaj ce. c Marcin Sydow. Drzewa rozpinaj ce. Cykle i rozci cia fundamentalne. Zastosowania

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

Najkrótsze drogi w grafach z wagami

c Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie

Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting.

Szukanie najkrótszych dróg z jednym ródłem

Teoria grafów i sieci 1 / 58

c Marcin Sydow Grafy i Zastosowania BFS DFS 4: Przeszukiwanie Grafów (BFS, DFS i zastosowania) DFS nieskierowane DFS skierowane Podsumowanie

Grafy. Andrzej Jastrz bski. Akademia ET I. Politechnika Gda«ska

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na.

Wykªad 1. Wprowadzenie do teorii grafów

Podstawowe algorytmy grafowe i ich zastosowania

Teoria grafów i jej zastosowania. 1 / 126

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

TEORIA GRAFÓW. Graf skierowany dla ka»dej kraw dzi (oznaczanej tutaj jako ªuk) para wierzchoªków incydentnych jest par uporz dkowan {u, v}.

10a: Wprowadzenie do grafów

Podstawowe algorytmy grafowe i ich zastosowania

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe.

c Marcin Sydow Wst p Grafy i Zastosowania Wierzchoªki 8: Kolorowanie Grafów Mapy Kraw dzie Zliczanie Podsumowanie

Grafy i Zastosowania. 5: Drzewa Rozpinające. c Marcin Sydow. Drzewa rozpinające. Cykle i rozcięcia fundamentalne. Zastosowania

Drzewa Gomory-Hu Wprowadzenie. Drzewa Gomory-Hu. Jakub Š cki. 14 pa¹dziernika 2009

Algorytmy zwiazane z gramatykami bezkontekstowymi

XVII Warmi«sko-Mazurskie Zawody Matematyczne

1 a + b 1 = 1 a + 1 b 1. (a + b 1)(a + b ab) = ab, (a + b)(a + b ab 1) = 0, (a + b)[a(1 b) + (b 1)] = 0,

c Marcin Sydow Planarno± Grafy i Zastosowania Tw. Eulera 7: Planarno± Inne powierzchnie Dualno± Podsumowanie

Grafy i Zastosowania. 9: Digrafy (grafy skierowane) c Marcin Sydow. Digrafy. Porz dki cz ±ciowe * Euler i Hamilton. Turnieje

ALGORYTMY SORTOWANIA DANYCH

1 Metody iteracyjne rozwi zywania równania f(x)=0

Stereometria (geometria przestrzenna)

Algorytmy tekstowe. Andrzej Jastrz bski. Akademia ETI

Metody dowodzenia twierdze«

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Wyszukiwanie. Algorytmy i Struktury Danych. (c) Marcin Sydow. Dziel i rz d¹. Wyszukiwanie. Statystyki pozycyjne. Podsumowanie

Funkcja kwadratowa, wielomiany oraz funkcje wymierne

O pewnym zadaniu olimpijskim

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Metodydowodzenia twierdzeń

Algorytmy i Struktury Danych

Mosty królewieckie, chi«ski listonosz i... kojarzenie maª»e«stw

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Lab. 02: Algorytm Schrage

Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne.

Wstp. Warto przepływu to

Grafy i Zastosowania. 1: Wprowadzenie i poj cia podstawowe. c Marcin Sydow. Wprowadzenie. Podstawowe poj cia. Operacje na grafach.

Wykªad 4. Droga i cykl Eulera i Hamiltona

Interpolacja funkcjami sklejanymi

Algorytmy i struktury danych

Egzaminy i inne zadania. Semestr II.

Metoda tablic semantycznych. 1 Metoda tablic semantycznych

Szeregowanie zada« Wykªad nr 5. dr Hanna Furma«czyk. 4 kwietnia 2013

1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Ekonometria. wiczenia 13 Metoda ±cie»ki krytycznej. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

Arkusz maturalny. Šukasz Dawidowski. 25 kwietnia 2016r. Powtórki maturalne

Omówienie zada«potyczki Algorytmiczne 2015

Zdzisªaw Dzedzej, Katedra Analizy Nieliniowej pok. 611 Kontakt:

Egzaminy i inne zadania. Semestr II.

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

c Marcin Sydow Podstawy Grafy i Zastosowania Kod Prüfera 3: Drzewa Drzewa ukorzenione * Drzewa binarne Zastosowania Podsumowanie

Podstawy matematyki dla informatyków

det A := a 11, ( 1) 1+j a 1j det A 1j, a 11 a 12 a 21 a 22 Wn. 1 (Wyznacznik macierzy stopnia 2:). = a 11a 22 a 33 +a 12 a 23 a 31 +a 13 a 21 a 32

Notatki z AiSD. Nr 2. 4 marca 2010 Algorytmy Zachªanne.

Minimalne drzewo rozpinaj ce

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Przetwarzanie sygnaªów

Materiaªy do Repetytorium z matematyki

Wektory w przestrzeni

Uczenie Wielowarstwowych Sieci Neuronów o

Ukªady równa«liniowych

Teoria grafów i sieci 1 / 188

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Biedronka. Wej±cie. Wyj±cie. Przykªady. VI OIG Zawody dru»ynowe, Finaª. 19 V 2012 Dost pna pami : 64 MB.

Uogólnione drzewa Humana

Programowanie wspóªbie»ne

Podstawowepojęciateorii grafów

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

Przekroje Dedekinda 1

1 Bª dy i arytmetyka zmiennopozycyjna

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

Szybkie mno»enie wielomianów i macierzy

Funkcje, wielomiany. Informacje pomocnicze

Programowanie wspóªbie»ne

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Wst p teoretyczny do wiczenia nr 3 - Elementy kombinatoryki

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

Programowanie i struktury danych 1 / 44

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Twierdzenie Wainera. Marek Czarnecki. Warszawa, 3 lipca Wydziaª Filozoi i Socjologii Uniwersytet Warszawski

Wst p do sieci neuronowych, wykªad 14 Zespolone sieci neuronowe

Rys.2 N = H (N cos = N) : (1) H y = q x2. y = q x2 2 H : (3) Warto± siªy H, która mo»e by uto»samiana z siª naci gu kabla, jest równa: z (3) przy

Liczenie podziaªów liczby: algorytm Eulera

Digraf. 13 maja 2017

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.

Transkrypt:

6: ±cie»ki

Spis zagadnie«problem najkrótszych ±cie»ek z jednym ¹ródªem Rozwi zanie sznurkowe kraw dzi Wariant 1: Wariant 2: nieujemne kraw dzie (Dijkstra) Wariant 3: dowolny graf () ±cie»ki dla wszystkich par Zmiana wag grafu na nieujemne przez potencjaªy Johnsona Przykªad: oszacowanie ±rednicy grafu

Problem najkrótszych ±cie»ek Wej±cie: skierowany graf G = (V, E) z wagami na kraw dziach, danymi przez funkcje w : E R, i wierzchoªek startowy s V Wyj±cie: dla ka»dego wierzchoªka v V dªugo± najkrótszej ±cie»ki µ(s, v) z s do v, je±li istnieje rodzic w drzewie najkrótszych ±cie»ek (je±li istnieje), pozwalaj cy zrekonstruowa najkrótsze ±cie»ki z s Najkrótsza ±cie»ka mo»e nie istnie z dwóch powodów: v mo»e nie by osi galny z s w grae mog istnie ujemne cykle (wtedy mo»e nie by dolnego ograniczenia na dªugo± ±cie»ki) (przykªad)

Przy projektowaniu optymalnego algorytmu, mo»na wzi pod uwag pewne specjalne wªasno±ci grafu, np.: graf jest skierowany, albo nieskierowany graf jest acykliczny (wtedy mo»na zastosowa najszybszy algorytm) wagi s nieujemne (wtedy mo»na zastosowa szybszy algorytm) 1 Pokazane zostan ró»ne warianty w zale»no±ci od wªasno±ci wej±ciowego grafu 1 albo caªkowite - w tym przypadku jest bardziej efektywna struktura danych

±cie»ki - wªasno±ci Zaªó»my dla grafu G = (V, E) i wierzchoªków s, v V nast puj c konwencj : µ(s, v) oznacza dªugo± najkrótszej ±cie»ki z s do v w G, czasami, je±li s jest znane z kontekstu, b dziemy pisali krócej µ(v): µ(s, v) = + (kiedy nie ma ±cie»ki z s do v) µ(s, v) = (kiedy istnieje ±cie»ka z s do v zawieraj ca ujemny cykl) µ(s, v) = d R (w pozostaªych przypadkach) Lemat: Pod±cie»ka najkrótszej ±cie»ki musi by najkrótsz ±cie»k

Obliczanie najkrótszych ±cie»ek: idea Ogólny pomysª jest podobny do BFS (ze ¹ródªa s). Z ka»dym wierzchoªkiem v zwi zujemy 2 atrybuty: v.distance: przechowuje najkrótsz (obecnie znan ) odlegªo± z s do v v.parent: przechowuje poprzednika (rodzica) v na najkrótszej ±cie»ce (obecnie znanej) z s inicjalizacja: s.distance = 0, s.parent = s, a wszystkie pozostaªe wierzchoªki maj atrybut distance ustawiony na + oraz parent na null. Uaktualnienia tych atrybutów s nast pnie propagowane przez kraw dzie: nazywane jest to relaksacj kraw dzi

kraw dzi %% relax((u,v)) # (u,v) jest kraw dzi w grafie if u.distance + w(u,v) < v.distance v.distance = u.distance + w(u,v) v.parent = u y dokonuj kolejnych relaksacji dopóki najkrótsze ±cie»ki nie zostan obliczone lub ujemny cykl wykryty. Relaksacje maj pewne wa»ne wªasno±ci, np: (zaªo»ywszy uprzednie dokonanie opisanej inicjalizacji) - po dowolnym ci gu relaksacji v V v.distance µ(v) czyli,»e warto± distance odkryta przez relaksacje nie mo»e spa± poni»ej prawdziwej warto±ci odlegªo±ci (dowód przez indukcj po liczbie relaksacji kraw dzi)

Poprawno± relaksacji Lemma Po dokonaniu ci gu R relaksacji takiego,»e zawiera on (jako podci g) najkrótsz ±cie»k p = (e 1,..., e k ) z s do v, zachodzi,»e: v.distance = µ(s, v) (czyli,»e najkrótsza ±cie»ka zostanie odkryta). Dowód: Poniewa» p jest najkrótsz ±cie»ka, wi c mamy µ(v) = w(e 1 j k j). Niech v i oznacza koniec kraw dzi e i, dla 0 < i k (v 0 = s). Poka»emy przez indukcj,»e po i-tej relaksacji zachodzi v i.distance w(e 1 j i j). Jest to prawda na pocz tku (s.distance == 0). Nast pnie, po i-tej relaksacji, v i.distance v i 1.distance + w(e i ) w(e 1 j i j) (z dencji relaksacji i na mocy indukcji). Wi c po k-tej relaksacji zachodzi: v.distance µ(v). Ale v.distance nie mo»e by ni»sze ni µ(v) (poprzedni lemat), a wi c zachodzi v.distance == µ(v).

1: ±cie»ki w grae acyklicznym () Je±li graf jest skierowanym grafem acyklicznym (), to stanowi to bardzo prosty przypadek dla problemu najkrótszych ±cie»ek ze ¹ródªa s. Ka»dy mo»e by topologicznie posortowany (np. przez DFS) w czasie O(m + n), co daje ci g wierzchoªków (v 1,..., v n ). Nast pnie, zakªadaj c,»e s = v j, dla pewnego 0 < j n, mo»na dokona relaksacji wszystkich kraw dzi wychodz cych z v j, a nast pnie wychodz cych z v j+1 i tak dalej a» do v n. W ten sposób ka»da kraw d¹ poddana jest relaksacji co najwy»ej raz a ka»da najkrótsza ±cie»ka jest odkryta jako podci g ci gu dokonanych relaksacji. Poniewa» zªo»ono± czasowa relaksacji jest staªa, wi c algorytm ma ª czn zªo»ono± O(m + n) w tym przypadku. UWAGA: wierzchoªki wyst puj ce przed s w posortowanym ci gu s nieosi galne z s.

2: (wagi nieujemne) Zauwa»my,»e je±li nie ma kraw dzi o ujemnych wagach, to nie ma te» ujemnych cykli. Natomiast cykle mog istnie, wi c nie mo»na zaªo»y wykonalno±ci sortowania topologicznego. Pomysª algorytmu w tym przypadku polega na dokonywaniu relaksacji w kolejno±ci niemalej cych najkrótszych odlegªo±ci od ¹ródªa. Dzi ki nieujemno±ci wag, ka»da najkrótsza ±cie»ka zostanie w ten sposób odkryta. Uwaga:»eby osi gn powy»sz kolejno±, w algorytmie stosowana jest kolejka priorytetowa przechowuj ca kolejne wierzchoªki do odwiedzenia (priorytetem jest warto± atrybutu distance) Przykªad (sznurki z w z ªkami): Jest to analogiczne do podnoszenia ze stoªu sznurków powi zanych za pomoc w z ªków (kolejne podnoszone ze stoªu w z ªki odpowiadaj wierzchoªkom).

(Dijkstra) (pq - kolejka priorytetowa z operacj decreasekey, priorytetem jest warto± atrybutu distance) s.distance = 0 pq.insert(s) s.parent = s for-each v in V except s: v.distance = INFINITY v.parent = null while(!pq.isempty()) scannednode = pq.delmin() for-each v in scannednode.adjlist: if (v.distance > scannednode.distance + w(scannednode, v)) v.distance = scannednode.distance + w(scannednode, v) v.parent = scannednode if (pq.contains(v)) pq.decreasekey(v) else pq.insert(v) (»eby efektywnie zaimplementowa operacje contains i decreasekey musimy u»y tzw. adresowalnej kolejki priortytowej, czyli wyposa»onej w dodatkowy sªownik mapuj cy wierzchoªki do ich pozycji w kolejce priorytetowej)

Analiza pesymistczyna algortymu rozmiar danych: n = V, m = E operacja dominuj ca: porównanie priorytetów (równie» wewn trz kolejki priorytetowej), aktualizacja atrybutów Zªo»ono± gªównej p tli zale»y od u»ytej implementacji kolejki priorytetowej. inicjalizacja: O(n) p tla: O(n (delmin + insert) + m decreasekey) O(nlogn) + O(mlogn) = O((n + m)logn) (dla kopca binarnego)

Analiza c.d. Powy»sza analiza dotyczy przypadku pesymistycznego. Mo»na pokaza,»e w przypadku przeci tnym liczba operacji decreasekey wynosi O(nlog(m/n)), co daje przeci tn zªo»ono± czasow O(m + nlog(m/n)logn). Przy dostatecznie g stym grae (gdy pierwszy czynnik dominuje nad drugim) otrzymujemy liniowy czas przeci tny. Ponadto, mo»na u»y kopca Fibonacciego, który ma amortyzowany koszt staªy operacji decreasekey i wtedy otrzymujemy czas pesymistyczny (jednak kopiec Fibonacciego ma ukryt wy»sz staª multiplikatywn ): O(m + nlogn) Ponadto, je±li wagi s caªkowite i ograniczone przez staª C, mo»na zredukowa zªo»ono± pesymistyczn do: O(m + nc) stosuj c tzw. monotoniczn bukietow kolejk priorytetow.

3: Bellmana-a (dowolne wagi) W poprzednich przypadkach wystarczaªo conajwy»ej m relaksacji. Zawsze jednak wystarcza dokona O(nm) relaksacji, aby odkry ka»d najkrótsz ±cie»k (jako podci g). Jest to rodzaj podej±cia siªowego, które dziaªa dla ka»dego grafu. Poniewa» dowolna najkrótsza ±cie»ka mo»e zawiera conajwy»ej n 1 kraw dzi spo±ród m, wi c wystarczy dokona (n 1)-krotnej relaksacji wszystkich m kraw dzi ustawionych w ustalony ci g, aby ci g kraw dzi ka»dej najkrótszej ±cie»ki byª w nim zawarty jako podci g (i w ten sposób wykry wszystkie dobrze okre±lone najkrótsze ±cie»ki). Dla wierzchoªków nieosi galnych b dzie v.d ==. Aby nast pnie wykry jakiekolwiek ujemne cykle, wystarczy nast pnie jeszcze raz dokona m relaksacji (te, dla których atrybut d wci» maleje, le» na ±cie»kach zawieraj cych ujemny cykl) i nast pnie w czasie liniowym przypisa wierzchoªkom osi galnym z tego cyklu warto± v.d ==

's Algorithm %% (initialise as in Dijkstra) for(i = 1; i <= (n-1); i++) for each e in E relax(e) for each e=(u,v) in E if (u.distance + w(u,v) < v.distance) identifynegativecycle(v) *** identifynegativecycle(v) if (v.distance > -infinity) v.distance = -infinity for each w in v.adjlist identifynegativecycle(w)

±cie»ki dla wszystkich par Problem: wej±cie: dany jest graf skierowany z wagami na kraw dziach. wyj±cie: najkrótsze ±cie»ki pomi dzy wszystkimi parami wierzchoªków Rozwi zanie 1: wykona Bellmana-a ze wszystkich wierzchoªków (O(n 2 m)) Rozwi zanie 2 (szybsze): odpowiednio zamieni wagi na nieujemne (zachowuj c najkrótsze ±cie»ki) i wykona algorytm ze wszystkich wierzchoªków (O(n(m + nlogn))) Uwaga: rozwi zanie 2 da si wykona tylko je±li nie ma cykli ujemnych.

Zmiana wag na nieujemne Aby móc zastosowa«algorytm, w grae zostaj zmienione wagi na nieujemne, tak aby zachowa najkrótsze ±cie»ki. Mianowicie, ka»dej kraw dzi e = (v, w) o dotychczasowej wadze w(e) przypisywana jest nowa waga: w (e) = w(e) + pot(v) pot(w), gdzie pot() jest pewn funkcj nieujemn maj c pewne po» dane wªasno±ci: wszystkie nowe wagi s nieujemne najkrótsze ±cie»ki przy nowych wagach s takie same jak przy starych sumy wag na cyklach nie ulegaj zmianie Funkcj speªniaj c te warunki nazywamy potencjaªem wierzchoªka.

Potencjaª wierzchoªka Aby funkcja pot() speªniaªa powy»sze warunki wyznaczamy j nast puj co: przykªad dodajemy do grafu pewien sztuczny wierzchoªek s oraz ª czymy go kraw dziami (skierowanymi) z wagami 0 do wszystkich wierzchoªków grafu obliczamy najkrótsze odlegªo±ci µ(v) z s do ka»dego wierzchoªka v grafu

Nowe wagi zachowuj najkrótsze ±cie»ki Lemat 1: Je±li p, q s ±cie»kami z v do w, a c(p) oznacza koszt tej ±cie»ki przy oryginalnych wagach, a c (p) przy nowych wagach, to: 1 c (p) = pot(v) + c(p) pot(w) 2 c (p) c (q) wtw c(p) c(q) (zachowuje porz dek kosztów ±cie»ek) 3 najkrótsze ±cie»ki przy nowych kosztach s takie same jak przy starych Dowód: Niech p = (e1,..., e k 1 ), e i = (v i, v i+1 ), v = v0 i w = v k. Wtedy: c (p) = k 1 i=0 w (e i ) = 0 i<k (pot(v i ) + w(e i ) pot(v i+1 )) = pot(v0) + 0 i<k w(e i ) pot(v k ) = pot(v0) + c(p) pot(v k ) (a wi c zmiana kosztu ±cie»ki zale»y tylko od wierzchoªków ko«cowych) Wynika z tego punkt 2 i 3 Lematu. Wniosek: Dla ka»dego cyklu C, c (C) = c(c) (nie zmienia kosztów cykli)

Nowe wagi s nieujemne Lemat 2: Je±li graf nie ma ujemnych cykli i wszystkie wierzchoªki s osi galne z s, to przy zdeniowaniu potencjaªu pot(v) = µ(v) (jako dªugo±ci najkrótszej ±cie»ki z s) nowe wagi s nieujemne dla wszystkich kraw dzi. Dowód: Poniewa» nie ma ujemnych cykli, to wszystkie warto±ci pot(v) s dobrze zdeniowane. Rozwa»my dowoln kraw d¹ e = (v, w). Mamy tedy: µ(v) + w(e) µ(w) (gdy» najkrótsze ±cie»ki speªniaj nierówno± trójk ta) a wi c: w (e) = µ(v) + w(e) µ(w) 0 Uwaga: czy wag nie mo»na po prostu zwi kszy o staª warto±, tak aby byªy nieujemne? (podaj odpowiedni kontrprzykªad)

Pomysª algorytmu Johnsona Z powy»szych dwóch lematów wynika,»e nowe wagi zachowuj najkrótsze ±cie»ki i pozwalaj zastosowa algorytm. Aby obliczy nowe wagi, nale»y najpierw wykona algorytm Bellmana-a z wierzchoªka s aby obliczy warto± µ(v) dla ka»dego wierzchoªka v (przy okazji pozwala on wykry ewentualne ujemne cykle). Nast pnie wykona algorytm z ka»dego wierzchoªka i przywróci poprzednie wagi. Taki algorytm ma zªo»ono± : O(mn) (BF) + O(n(m + nlogn)) (n razy Dijkstra, przy u»yciu kopca Fibonacciego), czyli ª cznie: O(nm + n 2 logn)

Johnsona %% algorytmjohnsona(){ dodaj wierzchoªek s z kraw dziami o zerowej wadze do wszystkich wierzcho wykonaj aby obliczy najkrótsze ±cie»ki z s for each node v: przypisz pot(v) jako odlegªo± od s for each node v: wykonaj Dijkstra z v na zmienionych wagach (bo s nieujemne) for each edge e=(u,v): przywró poprzednie wagi (**) (poniewa» najkrótsze ±cie»ki s te same) } (**) w(v, w) = w (v, w) + pot(w) pot(v)

Przykªad: oszacowanie ±rednicy grafu (diam(g)) (przypomnienie: maksymalna odlegªo± pomi dzy par wierzchoªków w grae) Mo»na prosto oszacowa ±rednic grafu nie licz c wszystkich par odlegªo±ci na podstawie poni»szej obserwacji: Lemat: Niech D (s) = max u V µ(s, u), dla pewnego wierzchoªka s (ekscentryczno± wierzchoªka s). Je±li graf jest nieskierowany, to zachodzi D (s) diam(g) 2D (s). Je±li graf jest skierowany, to powy»sza nierówno± nie zachodzi, ale zachodzi max(d (s), D (s)) D D (s) + D (s), gdzie D (s) = max u V µ(u, s). Czyli ±rednic mo»na oszacowa przez ekscentryczno± dowolnego wierzchoªka (czyli zªo»ono± liniowa zamiast kwadratowej)

Problem najkrótszych ±cie»ek z jednym ¹ródªem Rozwi zanie sznurkowe kraw dzi Wariant 1: Wariant 2: nieujemne kraw dzie (Dijkstra) Wariant 3: dowolny graf () ±cie»ki dla wszystkich par Zmiana wag grafu na nieujemne przez potencjaªy Johnsona Przykªad: oszacowanie ±rednicy grafu

Przykªadowe Zadania wykonaj efektywny algorytm obliczania najkrótszych ±cie»ek z podanego ¹ródªa dla podanego grafu (najpierw zaklasykuj graf do odpowiedniego przypadku) dokonaj zmiany wag podanego grafu na nieujemne zachowuj c najkrótsze ±cie»ki, zgodnie z przedstawion technik potencjaªów wykonaj algorytm Johnsona dla podanego grafu oszacuj ±rednic podanego grafu (nieskierowanego lub skierowanego) za pomoc przedstawionej techniki.

Dzi kuj za uwag