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

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

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

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

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

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

Najkrótsze drogi w grafach z wagami

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

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

Podstawowe algorytmy grafowe i ich zastosowania

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

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

Podstawowe algorytmy grafowe i ich zastosowania

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}.

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

Teoria grafów i sieci 1 / 58

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

Teoria grafów i jej zastosowania. 1 / 126

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

Wykªad 1. Wprowadzenie do teorii grafów

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

10a: Wprowadzenie do grafów

ALGORYTMY SORTOWANIA DANYCH

Algorytmy zwiazane z gramatykami bezkontekstowymi

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

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

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

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

XVII Warmi«sko-Mazurskie Zawody Matematyczne

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

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

Lab. 02: Algorytm Schrage

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

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

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

Egzaminy i inne zadania. Semestr II.

Programowanie wspóªbie»ne

Metody dowodzenia twierdze«

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

Metodydowodzenia twierdzeń

Algorytmy i struktury danych

Podstawy matematyki dla informatyków

Wstp. Warto przepływu to

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

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

Wykªad 4. Droga i cykl Eulera i Hamiltona

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Algorytmy i Struktury Danych

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

Egzaminy i inne zadania. Semestr II.

Minimalne drzewo rozpinaj ce

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

Algorytmy i Struktury Danych.

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,

Stereometria (geometria przestrzenna)

Uczenie Wielowarstwowych Sieci Neuronów o

O pewnym zadaniu olimpijskim

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

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

Uogólnione drzewa Humana

Metoda tablic semantycznych. 1 Metoda tablic semantycznych

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Minimalne drzewo rozpinaj ce

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Programowanie i struktury danych 1 / 44

Algorytmiczna teoria grafów

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

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Omówienie zada«potyczki Algorytmiczne 2015

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

Digraf. 13 maja 2017

Wst p teoretyczny do wiczenia nr 3 - Elementy kombinatoryki

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

Algorytmy tekstowe. Andrzej Jastrz bski. Akademia ETI

Wybrane poj cia i twierdzenia z wykªadu z teorii liczb

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

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

Przetwarzanie sygnaªów

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Interpolacja funkcjami sklejanymi

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Przykªady problemów optymalizacji kombinatorycznej

Listy i operacje pytania

1 Bª dy i arytmetyka zmiennopozycyjna

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

Rekurencyjne struktury danych

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

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

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

A. Auxiliary Question of the Universe

Teoria grafów i sieci 1 / 188

Przekroje Dedekinda 1

Algorytmy i struktury danych

Sortowanie topologiczne skierowanych grafów acyklicznych

Spis treści. Przykład. Przykład 1 Przykład 2. Twórcy Informacje wstępne Pseudokod Przykład. 1 Grafy skierowane z wagami - przypomnienie

P tle. Rozdziaª Wst p. 4.2 P tle P tla for(...);

Transkrypt:

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

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 ()

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) = 1 j k w(e 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 1 j i w(e 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 ) 1 j i w(e 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).

Sortowanie topologiczne (tylko grafy skierowane) Sortowanie topologiczne grafu skierowanego polega na takim ustawieniu wierzchoªków grafu w ci g,»e je±li w grae jest kraw d¹ (u, v), to u musi by przed v (ustawienie zgodne z kraw dziami). Graf da si posortowa topologicznie nie zawiera cykli (skierowanych). Mo»na efektywnie posortowa topologicznie graf w nast puj cy sposób: zastosowa DFS ustawi wierzchoªki od najwi kszego czasu zako«czenia do najmniejszego Uwaga: istnieje te» prostsze koncepcyjnie rozwi zanie przez iteracyjne usuwanie wierzchoªków o stopniu wej±ciowym 0, te» mo»na zaimplementowa w czasie liniowym

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.

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). 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)

(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)

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

Przykªadowe Zadania podaj specykacj problemu najkrótszych ±cie»ek z jednym ¹ródªem podaj przynajmniej 2 przykªady zastosowa«problemu najkrótszych ±cie»ek na czym polega relaksacja kraw dzi podaj specykacj problemu sortowania topologicznego kiedy mo»na posortowa topologicznie graf? Jak mo»na to zrobi (podaj 2 sposoby) maj c dany dokonaj jego posortowania topologicznego (u»ywaj c DFS) maj c dany graf uzasadnij, który z 3 omawianych algorytmów b dzie najbardziej efektywny dla tego grafu maj c dany graf z nieujemnymi wagami zastosuj algorytm i przypisz wszystkim atrybutom wierzchoªków warto±ci zgodnie z algorytmem zastosuj algorytm Bellmana-a do podanego grafu dokonaj analizy zªo»ono±ci czasowej 3 omówionych algorytmów

Dzi kuj za uwag