TEORIA GRAFÓW I SIECI Temat nr 1: Definicja grafu. Rodzaje i części grafów dr hab. inż. Zbigniew TARAPATA, prof. WAT e-mail: zbigniew.tarapata@wat.edu.pl http://tarapata.edu.pl tel.: 261-83-95-04, p.225/100 Zakład Badań Operacyjnych i Wspomagania Decyzji Instytut Systemów Informatycznych Wydział Cybernetyki, Wojskowa Akademia Techniczna
Grafy Podstawą budowania modelu formalnego danego obiektu zainteresowań powinien być zawsze określony cel modelowania, tzn. cel tworzenia modelu matematycznego tego obiektu. Zależnie od celu modelowania danego obiektu, model może przyjąć różne formy. Najczęściej przy modelowaniu obiektów istnieje potrzeba i konieczność z punktu widzenia celu modelowania wyróżnienia w obiekcie pewnego zbioru elementów X (np. operacji wykonywanych w trakcie procesu produkcyjnego, stanowisk obróbki, itp.). Z chwilą wyróżnienia tych elementów modelowany obiekt proponuje się traktować jako system, a uzyskany w następstwie model nazywać będziemy modelem systemu.
Grafy, c.d. STRUKTURA S SYSTEMU: S = { X, {R m } } gdzie R m m-ta relacja wiążąca elementy zbioru X; Modelem systemowym obiektu nazywa się bądź samą strukturę, bądź strukturę opisaną ilościowo; Jeżeli przy modelowaniu obiektu wystarczające jest uwzględnienie tylko relacji dwuczłonowych, to model systemowy może być formalnie zapisany bądź grafem (struktura S), bądź siecią (graf opisany ilościowo); w przeciwnym przypadku wykorzystuje się hipergrafy i/lub hipersieci.
Definicja grafu G G = W, U, P gałęzie wierzchołki gdzie: W, U zbiory P W U W Własności relacji P : 1. x, u, y u U x, y W P 2. x, u, y P v, u, z P uu x, y, v, zw x v y z x z y v a a
Rodzaje gałęzi grafu Rodzaje gałęzi grafu U ~ U o U krawędzie: x, u, y P y, u, x P x y łuki: x, u, y P y, u, x P pętle: x, u, y P x = y U ~ U U o U
Przykład grafu W = 1, 2, 3, 4, 5, 6 ~ U = a, b, c, d, e, f, g, h, i, j, k = U U U ~ ={ d, e, f } U ={ a, b, c, g, h, j} o U ={ i, k } o U P = 3, a, 1,1, b, 3,1, c, 2,1, d, 2,2, d, 1, 2, e, 4,4, e, 2, 2, f, 4,4, f, 2, -wierzchołki -krawędzie - łuki - pętle 3, g, 4,3, h, 4,4, i, 4, 5, j, 2,6, k, 6 c 1 d 2 j 5 Grafy skończone: W U a b f e g 3 4 h i 6 k
Modelowanie obiektów rzeczywistych z wykorzystaniem grafów Za pomocą grafu możemy opisywać (modelować) wszelkiego rodzaju obiekty rzeczywiste (obiekty fizyczne, zjawiska, procesy itp.), które posiadają pewne cechy (wierzchołki grafu) i pewne relacje między cechami (gałęzie grafu); Typowe reprezentacje obiektów rzeczywistych za pomocą grafów: struktura sieci dróg (wierzchołki - miasta lub skrzyżowania, łuki odcinki dróg); struktura sieci społecznej (wierzchołki osoby, krawędzie znajomość między osobami); struktura dowolnego systemu (wierzchołki elementy systemu, łuki powiązania między elementami systemu); mapa polityczna świata (wierzchołki państwa, łuki/krawędzie sąsiedztwo między państwami); struktura przedsięwzięcia (wierzchołki zdarzenia, łuki - czynności); problem przydziału, np. pracowników do zadań (wierzchołki pracownicy i zadania do wykonania, łuki zdolność pracownika do wykonania zadania); drzewo genealogiczne (wierzchołki osoby, łuki relacja typu rodzicdziecko ).
Macierz incydencji: a x, u 0 x x x x Macierzowe reprezentacje grafu u u u u A G a xu W U, w przeciwnym przypadku Uwaga! Macierz incydencji jest jedyną reprezentacją macierzową grafu, za pomocą której możemy reprezentować graf dowolnej klasy (rodzaju). Incydencja: wierzchołek x jest incydentny z gałęzią u (i na odwrót) jeśli: x u y P y u y W,,,, x P
Binarna macierz incydencji: Macierzowe reprezentacje grafu A G A( G) : 1 b A b G np.: a a a 1 2, e 2, e 2, e 1 3 4 a a a 0 2, e 2, e 2, e 2 5 6
Binarna macierz incydencji: Macierzowe reprezentacje grafu A b ( G ) a b c d e f g h i j k 1 1 1 1 1 0 0 0 0 0 0 0 2 0 0 1 1 1 1 0 0 0 1 0 3 1 1 0 0 0 0 1 1 0 0 0 4 0 0 0 0 1 1 1 1 1 0 0 5 0 0 0 0 0 0 0 0 0 1 0 6 0 0 0 0 0 0 0 0 0 0 1
Macierzowe reprezentacje grafu Macierz przyległości wierzchołków: R G r xy, WW rxy, u U : x, u, y P y, u, x P R( G) 0 2 2 0 0 0 2 0 0 2 1 0 2 0 0 2 0 0 0 2 2 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 Wierzchołek x jest przyległy do wierzchołka y (i na odwrót) jeśli: x u y P y u x P u U,,,,
Macierzowe reprezentacje grafu Binarna macierz przyległości wierzchołków: R r b G r b, x y 1 r 0 b x, y x, y WW Macierz przyległości gałęzi: B R T G A G G b A b 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 ( G ) 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 b
Macierz przejść: P Macierzowe reprezentacje grafu G p xy, WW Binarna macierz przejść: pxy, u U : x, u, y P P p b 0 2 1 0 0 0 1 0 0 2 0 0 1 0 0 2 0 0 P( G) 0 2 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 b G p b x, y x, y 1 p x, y W W 0
Macierzowe reprezentacje grafu: porównanie A b a b c d e f g h i j k 1 1 1 1 1 0 0 0 0 0 0 0 2 0 0 1 1 1 1 0 0 0 1 0 3 1 1 0 0 0 0 1 1 0 0 0 ( G ) 4 0 0 0 0 1 1 1 1 1 0 0 5 0 0 0 0 0 0 0 0 0 1 0 6 0 0 0 0 0 0 0 0 0 0 1 0 2 2 0 0 0 0 2 1 0 0 0 2 0 0 2 1 0 1 0 0 2 0 0 2 0 0 2 0 0 1 0 0 2 0 0 R( G) P( G) 0 2 2 1 0 0 0 2 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 R b 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 ( G ) 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 ( G Pb ) 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1
Graf jako struktura danych w informatyce
Reprezentacje grafu w pamięci komputera: graf nieskierowany Pytanie: która z macierzy wcześniej przedstawionych odpowiada macierzy sąsiedztwa grafu nieskierowanego?
Reprezentacje grafu w pamięci komputera: graf skierowany Pytanie: która z macierzy wcześniej przedstawionych odpowiada macierzy sąsiedztwa grafu skierowanego?
Stopień wierzchołka x: s(x) = s + (x) + s - (x) + s ~ (x) + s (x) gdzie: Charakterystyki grafu s + (x) liczba łuków wychodzących z x (stop. zewn. x); s - (x) liczba łuków wchodzących do x (stop. wewn. x); s ~ (x) liczba krawędzi incydentnych z x; sº(x) liczba pętli incydentnych z x; Rozwidlenie wierzchołka x: r(x) = s(x) + s(x) Dla każdego grafu zachodzi: xw r x Stopień grafu: 2 U max s x S G xw s(1) = r(1) = 2+1+1+0 = 4 s(2) = r(2) = 0+2+3+0 = 5 s(4) = 0+2+2+1 = 5 r(4) = 6
Krotność połączeń wierzchołków x, y: gdzie: k Charakterystyki grafu x, y max x, y, x, y, x, y x, y u U : x, u, y P x, y u U : x, u, y P x, y u U : x, u, y P Krotność grafu: V x, y x, y x, y max x, y W W max xy, W W max xy, W W K G maxv, ~,
Rodzaje grafów Graf G = W, U, P jest rodzaju (lub należy do klasy): Graf niezorientowany (nieskierowany): Graf zorientowany (skierowany, digraf): Graf bez pętli: V,, V V V,, N 0 o V,,0,U V,0, ; U 0,, ;U Graf (2) jest równocześnie grafem bez pętli (1) Graf nieskierowany (2) Graf skierowany
Rodzaje grafów Graf zdegenerowany: Graf pusty: Multigraf: Unigraf: G 0 0,0,0, U, K K G 1 KG 1 0,0, ; U, U (1) Graf zdegenerowany (2) Graf pusty (3) Multigraf (K(G) = 2 > 1) Grafy (1) i (2) z poprzedniego slajdu są unigrafami
Rodzaje grafów Graf pełny w klasie V,, przy ustalonym W: G W, U, P taki, że p p p x,yw x y x, y V x, y x, x xw Dopełnienie grafu (w danej klasie): d G W, U p \ U Pd G, Pewien graf (z lewej) i jego dopełnienie (z prawej) w klasie 1, 0, 0 Trzy (5-, 4- i 3- wierzchołkowe) grafy pełne w klasie: 1,0,0 (tzw. kliki)
Graf zwykły: o tzn. 1,0,0 U U, K G 1 Inna definicja: G W, U, U x, y W Rodzaje grafów = unigraf niezorientowany, bez pętli, Graf Berge a: 0,1,1 ~ = digraf i unigraf, tzn. U, KG 1 Inne definicje: G W, U 1) 2) W U W W G W, : W 2, y x x, y U x - zbiór bezpośr. następników wierzchołka xw, 1 x - zbiór bezpośr. poprzedników wierzchołka xw. 3) G W, 1 1 W 1 : 2,, W y x y x U
Grafy zwykłe: Rodzaje grafów Grafy Berge a:
Graf dwudzielny: 1 2 1 2 Rodzaje grafów G W W, U, P przy czym W W oraz x y x W y W x oraz y nie są przylege, i 1,2 i i Dlaczego ten graf nie jest grafem Königa? Graf Königa: zwykły i dwudzielny
Szkielet grafu G taki graf zwykły Rodzaje grafów G W, s U s x yu x y oraz i są przyległ, że:, s x y e w G Graf (z lewej) oraz jego szkielet (z prawej) Graf rzadki: graf, w którym liczba gałęzi jest dużo mniejsza od kwadratu liczby wierzchołków. Graf gęsty: graf, w którym liczba gałęzi jest bliska kwadratowi liczby wierzchołków.
Rodzaje grafów Dwa grafy G1 W1, U1 i G2 W2, U2 nazywamy izomorficznymi, gdy istnieje wzajemnie jednoznaczne odwzorowanie (bijekcja) zbiorów ich wierzchołków takie, że liczba krawędzi łączących dane dwa wierzchołki pierwszego grafu jest równa liczbie krawędzi łączących odpowiadające im wierzchołki grafu drugiego. Te dwa grafy są izomorficzne. Dlaczego? A=7, B=4, C=3, D=6, E=5, F=2, G=1
Rodzaje grafów Graf planarny: graf, który możemy narysować na płaszczyźnie w taki sposób, aby jego gałęzie nie przecinały się. Uwaga: fakt, że rysunek grafu zawiera przecinające się gałęzie nie oznacza, że graf nie jest planarny!
Rodzaje grafów Przykład postępu, jaki dokonał się w dziedzinie projektowania algorytmów badających planarność grafu: Czas obliczeń dla Rozmiar analizowanego Algorytm c 10 ms grafu w przypadku n 100 udostępniania komputera na okres Symbol Autor [rok] Złożoność minuty godziny A 1 A 2 A 3 A 4 A 5 Kuratowski [1930] Goldstein [1963] Lempel et al. [1967] Hopcroft- Tarjan [1971] Hopcroft- Tarjan [1974] 6 cn 325 lat 4 8 3 cn 2.8 godzin 18 71 2 cn 100 sekund 77 6 000 cnlog 2 n 7 sekund 643 24 673 4 cn 1 sekunda 6 000 36 10
Część grafu 1. 2. 3. G' - graf W' W U' U x, u, y W ' U ' W ' G W, U, P : G ' W ', U ', P ', że x, u, y P ' x, u, y P Części grafów
Części grafów Podgraf grafu G: taki graf G' W ', U ', P', że 1. G - część grafu G 2. x, u, y P u U ' x, yw ' uu UWAGA: podgraf jest jednoznacznie określony przez W
Graf częściowy grafu G: taki graf 1. G - część grafu G 2. W' W Części grafów G' W ', U ', P', że UWAGA: graf częściowy jest jednoznacznie określony przez U
Części grafów Podgraf częściowy grafu G graf częściowy podgrafu grafu G; Przykład różnych części grafu: Część grafu G (jedna z możliwych) 1 2 1 2 G 4 3 5 G1 3 5 1 G2 2 1 2 3 5 Podgraf grafu G (jeden z możliwych) G3 4 3 5 Graf częściowy grafu G (jeden z mozliwych) 1 G4 2 3 5 Podgraf częściowy grafu G (graf częściowy podgrafu G2 grafu G)
Zakład Badań Operacyjnych i Wspomagania Decyzji Instytut Systemów Informatycznych Wydział Cybernetyki, Wojskowa Akademia Techniczna DZIĘKUJĘ ZA UWAGĘ dr hab. inż. Zbigniew TARAPATA, prof. WAT e-mail: zbigniew.tarapata@wat.edu.pl http://tarapata.edu.pl