Sortowanie topologiczne skierowanych grafów acyklicznych

Podobne dokumenty
Graf. Definicja marca / 1

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

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

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Matematyczne Podstawy Informatyki

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Matematyczne Podstawy Informatyki

Podstawowe własności grafów. Wykład 3. Własności grafów

Sieć (graf skierowany)

Teoria grafów podstawy. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

TEORIA GRAFÓW I SIECI

Digraf. 13 maja 2017

Teoria automatów i języków formalnych. Określenie relacji

Zagadnienie najkrótszej drogi w sieci

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

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Algorytmiczna teoria grafów

Algorytmy i Struktury Danych.

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

Kolorowanie wierzchołków grafu

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i

Suma dwóch grafów. Zespolenie dwóch grafów

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

Matematyka dyskretna

DEFINICJA. Definicja 1 Niech A i B będą zbiorami. Relacja R pomiędzy A i B jest podzbiorem iloczynu kartezjańskiego tych zbiorów, R A B.

G. Wybrane elementy teorii grafów

Algorytmiczna teoria grafów Przepływy w sieciach.

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

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

Algorytmy z powracaniem

Algorytmy grafowe. Wykład 2 Przeszukiwanie grafów. Tomasz Tyksiński CDV

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Marek Miszczyński KBO UŁ. Wybrane elementy teorii grafów 1

Siedem cudów informatyki czyli o algorytmach zdumiewajacych

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz?

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

AiSD zadanie trzecie

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

Algorytmiczna teoria grafów

Matematyka dyskretna - 7.Drzewa

Planowanie przedsięwzięć

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

(4) x (y z) = (x y) (x z), x (y z) = (x y) (x z), (3) x (x y) = x, x (x y) = x, (2) x 0 = x, x 1 = x

B jest globalnym pokryciem zbioru {d} wtedy i tylko wtedy, gdy {d} zależy od B i nie istnieje B T takie, że {d} zależy od B ;

Układy równań i nierówności liniowych

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Zagadnienie transportowe

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Zagadnienie transportowe (badania operacyjne) Mgr inż. Aleksandra Radziejowska AGH Akademia Górniczo-Hutnicza w Krakowie

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Lista 4. Kamil Matuszewski 22 marca 2016

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

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

TEORIA GRAFÓW I SIECI

PROGRAMOWANIE SIECIOWE. METODA ŚCIEŻKI KRYTYCZNEJ

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 5 i 6. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Grafy i Zastosowania. 9: Digrafy (grafy skierowane) c Marcin Sydow

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

Lista 0. Kamil Matuszewski 1 marca 2016

BOGDAN ZARĘBSKI ZASTOSOWANIE ZASADY ABSTRAKCJI DO KONSTRUKCJI LICZB CAŁKOWITYCH

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

Matematyka dyskretna. 1. Relacje

domykanie relacji, relacja równoważności, rozkłady zbiorów

Harmonogramowanie przedsięwzięć

prowadzący dr ADRIAN HORZYK /~horzyk tel.: Konsultacje paw. D-13/325

Teoria obliczeń i złożoność obliczeniowa

6. Wstępne pojęcia teorii grafów

Wstęp do Programowania potok funkcyjny

B jest liniowo niezależny V = lin (B) 1. Układ pusty jest bazą przestrzeni trywialnej {θ}. a i v i = i I. b i v i, (a i b i ) v i = θ.

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki.

TEORIA GRAFÓW I SIECI

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

Porządek symetryczny: right(x)

Rozważmy funkcję f : X Y. Dla dowolnego zbioru A X określamy. Dla dowolnego zbioru B Y określamy jego przeciwobraz:

Relacje. Zdania opisujące stosunki dwuczłonowe mają ogólny wzór budowy: xry, co czytamy: x pozostaje w relacji R do y.

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Przecięcia odcinków. Wykład /07

TEORIA GRAFÓW I SIECI

Sztuczna Inteligencja Projekt

0. ELEMENTY LOGIKI. ALGEBRA BOOLE A

Algorytmy i Struktury Danych, 2. ćwiczenia

Digraf o V wierzchołkach posiada V 2 krawędzi, zatem liczba różnych digrafów o V wierzchołkach wynosi 2 VxV

Algorytmy i Struktury Danych.

TEORETYCZNE PODSTAWY INFORMATYKI

Teoretyczne podstawy programowania liniowego

Podstawy Informatyki. Sprawność algorytmów

TEORIA GRAFÓW I SIECI

ALGEBRA Z GEOMETRIĄ BAZY PRZESTRZENI WEKTOROWYCH

Podstawy logiki i teorii mnogości Informatyka, I rok. Semestr letni 2013/14. Tomasz Połacik

Indukcja matematyczna. Zasada minimum. Zastosowania.

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Transkrypt:

Sortowanie topologiczne skierowanych grafów acyklicznych Metody boolowskie w informatyce Robert Sulkowski http://robert.brainusers.net 23 stycznia 2010 1

Definicja 1 (Cykl skierowany). Niech C = (V, A) będzie grafem skierowanym, gdzie V = {v 1,..., v n }. C nazywamy cyklem skierowanym, jeżeli A = {(v 1, v 2 ), (v 2, v 3 ),..., (v n 1, v n ), (v n, v 1 )} Mówimy, że graf skierowany D posiada cykl, jeżeli istnieje podgraf C grafu D będący cyklem skierowanym. Definicja 2 (Skierowany graf acykliczny). Graf skierowany D nazywamy acyklicznym, jeżeli nie posiada cykli. Przykład 1. Niech (V, ) będzie zbiorem częściowo uporządkowanym przez zwrotną, asymetryczną i przechodnią relację. Zauważmy, że zbiór ten można przedstawić za pomocą grafu skierowanego: V będzie zbiorem wierzchołków a relacja zbiorem łuków grafu (relacja jest zbiorem par uporządkowanych (x, y)). Jeśli nie liczyć pętli (x, x) (zwrotność relacji), powstały w ten sposób graf jest acykliczny ze względu na asymetryczność relacji. 2

Definicja 3 (Sortowanie topologiczne). Niech D = (V, A) będzie grafem skierowanym. Sortowaniem topologicznym nazywamy uporządkowanie (ponumerowanie) wierzchołków grafu D v 1, v 2,..., v n takie że dla każdego łuku (v i, v j ) A zachodzi i j. Definicja 4 (Stopień wejścia wierzchołka). Niech D = (V, A) będzie grafem skierowanym. Stopniem wejścia wierzchołka v V nazywamy ilość łuków postaci (u, v) A (v jest następnikiem pary) i oznaczamy d in (v). 3

Lemat 1. Jeśli D = (V, A) jest skierowanym grafem acyklicznym, to zawiera co najmniej jeden wierzchołek o stopniu wejścia d in (v) = 0 (wierzchołek do którego nie prowadzi żaden łuk). Dowód. Wybierzmy wierzchołek v 0 V. Jeśli d in (v 0 ) = 0 to kończy nasz dowód. W przeciwnym wypadku istnieje łuk (v 1, v 0 ) A. Jeśli d in (v 1 ) = 0 to kończy dowód, w przeciwnym razie istnieje łuk (v 2, v 1 ) A gdzie v 2 v 0 (bo powstałby cykl, ale graf jest acykliczny). W ten sposób możemy wybierać wierzchołki grafu D mając pewność, że żaden się nie powtórzy, ponieważ D jest grafem acyklicznym. Z uwagi na to, że ilość wierzchołków jest skończona, ostatni wybrany wierzchołek będzie miał zerowy stopień wejścia gdyby istniał łuk z któregoś z poprzednich wierzchołków, powstałby cykl (zaczynaliśmy od dowolnego wierzchołka). Jeśli G nie jest spójny to nasze rozumowanie jest nadal prawidłowe, gdyż ograniczamy się do jednej komponenty spójności, gdyż każda komponenta jest acykliczna. 4

Twierdzenie 2. Każdy skierowany graf acykliczny posiada sortowanie topologiczne. Dowód. Niech D = (V, A) będzie skierowanym grafem acyklicznym. Korzystając z poprzedniego lematu, w grafie D istnieje co najmniej jeden wierzchołek v 1 V o zerowym stopniu wejścia (d in (v) = 0). Zauważmy, że zdejmując ten wierzchołek z grafu D otrzymamy graf H, który jest również acykliczny (zdejmujemy wszystkie łuki incydentne z v 1 więc w wyniku tej operacji nie może powstać cykl). Zatem H posiada wierzchołek v 2 o zerowym stopniu wejścia. Powtarzając tę operację aż do wyczerpania wierzchołków otrzymamy topologiczne sortowanie zgodne z kolejnością ich zdejmowania: v 1, v 2,..., v n Zauważmy, że niespójność grafu G nie psuje rozumowania. Kolejność zdejmowania wierzchołków z różnych komponent spójności nie ma znaczenia dla sortowania topologicznego, ponieważ nie istnieje łuk, który by je łączył. Wniosek 1. Sortowanie topologiczne nie jest wyznaczane jednoznacznie. Wniosek 2. Dane sortowanie topologicznie generuje porządek liniowy wierzchołków. 5

Zaprezentujemy teraz algorytm, który sprawdza czy dany skierowany graf D jest acykliczny i, jeśli jest, znajduje sortowanie topologiczne. Algorytm wykorzystuje metodę pokazaną w dowodzie poprzedniego twierdzenia. Szukamy wierzchołków o zerowym stopniu wejścia i usuwamy je z grafu D. Korzystamy z listy sąsiedztw wyjścia i utrzymujemy listę wierzchołków, które aktualnie posiadają zerowy stopień wejścia. Algorytm 1 (Kahn, 1962). Wymagane struktury danych: 1. Listy sąsiedztw wyjścia A[v] gdzie v V jest wierzchołkiem grafu D = (V, A). 2. Tablica ind która przechowuje stopień wejścia ind[v] wierzchołka v. 3. Tablica topnr która przechowuje numer topnr[v] nadany wierzchołkowi v w sortowaniu topologicznym. 4. Lista L wierzchołków o zerowym stopniu wejścia. 5. Zmienna logiczna acyclic (odpowiada na pytanie, czy graf jest acykliczny) i zmienna typu całkowitego m (licznik ściągniętych wierzchołków). 6

PROCEDURE topsort; BEGIN m:=0; wyczyść listę L; for v:=1 to n do ind[v]:=0; {Inicjalizacja} for v:=1 to n do {Uzupełniamy stopień wejścia na podstawie listy sąsiedztw} for w in A[v] do ind[w]:=ind[w]+1; for i:=v to n do {Uzupełniamy listę wierzchołków o zerowym stopniu wejścia} if ind[v]:=0 then połóż i na końcu listy L; while (L jest niepusta) do begin v:=ściągnij pierwszy wierzchołek z~listy L; m:=m+1; {Powiększamy licznik} topnr[v]:=m; {Nadajemy numer wierzchołka w sortowaniu topologicznym} for w in A[v] do begin {Przeglądamy sąsiadów} ind[w]:=ind[w]-1; {Pomniejszamy stopień wejścia sąsiada} {Jeśli stopień wejścia spadł do zera, dodajemy go do listy L} if ind[w]=0 then połóż w na końcu listy L; end; end; {Graf jest acykliczny, gdy algorytm ściągnął tyle wierzchołków, ile graf posiadał} acyclic:=(m=n); END; 7

Twierdzenie 3. Algorytm sprawdza, czy graf skierowany D jest acykliczny i jeśli jest, konstruuje topologiczne sortowanie. Jego złożoność wynosi O( E ). Dowód. Algorytm jest poprawny, gdyż bazuje na dowodzie twierdzenia 2. Zauważmy, że E = Ω( V ), stąd inicjalizacja danych potrzebuje nie więcej niż O( E ) kroków. Każdy łuk przetwarzany jest dokładnie raz podczas inicjalizacji i co najwyżej raz w pętli głównej. Zatem złożoność algorytmu wynosi O( E ). Wniosek 3. Problem sprawdzania, czy dany graf jest acykliczny posiada złożoność rzędu Θ( E ). Zatem należy do klasy problemów P. 8