Wprowadzenie do teorii grafówzrzut.edl.pl/md/grafy_w1_4.pdfWagę drogi nazywamy czasem długością...

Preview:

Citation preview

5.05.08 Dr inż. Krzysztof Lisiecki 1

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 2

Reguły gry (1):

Nie używamy telefonów

Uczymy się systematycznie

Zaliczamy

w terminie

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 3

Wprowadzenie do teorii grafów

Kontakt:

konsultacje poniedziałek 8.45 – 10.15 (pokój wykładowców)

e-mail : krzysztof.lisiecki@p.lodz.pl lub krzysztof@lisiecki.org.pl

http: www.lisiecki.org.pl (materiały dydaktyczne, terminy, ważne komunikaty)

tel. do pok. 512 (akwarium) (0-42) 631-36-15

5.05.08 Dr inż. Krzysztof Lisiecki 4

Reguły gry:Sposób zaliczenia przedmiotu:• Kolokwium wykładowe (30 pytań, każde 1p.)• Praca domowa max. 6 punktów• Przeliczanie punktów

na oceny

532-36 p.

4,530-31 p.

427-29 p.

3,524-26 p.

318-23 p.

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 5

Reguły gry (3):• Terminy wykładów:

poniedziałki 10.15-12.00

• Termin zaliczenia – przedostatni wykład 2.06.2007r. (poniedziałek) godz. 10.15

• Termin oddania pracy domowej - 9.06 (ostatni wykład)

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 6

Wprowadzenie do teorii grafów

Czy można przejść przez wszystkie mosty, przez każdy przechodząc dokładnie jeden raz?

5.05.08 Dr inż. Krzysztof Lisiecki 7

Wprowadzenie do teorii grafów

x

rzeka Pregoła

wyspa Kneiphof

Czy można przejść przez wszystkie mosty, przez każdy przechodząc dokładnie jeden raz?

5.05.08 Dr inż. Krzysztof Lisiecki 8

Wprowadzenie do teorii grafów

Odpowiedź na postawione pytanie jest negatywna i wynika z twierdzenia, które zapoczątkowało teorię grafów:

W grafie można znaleźć cykl Eulera wtedy i tylko wtedy, gdy graf jest spójny i każdy jego wierzchołek ma parzysty stopień.

5.05.08 Dr inż. Krzysztof Lisiecki 9

Wprowadzenie do teorii grafów

Grafem nazywamy parę G=(X,G), złożoną ze skończonego zbioru punktów X oraz skończonego zbioru linii G. Punkty ze zbioru X nazywamy wierzchołkami grafu G, a linie zbioru G krawędziami grafu.

5.05.08 Dr inż. Krzysztof Lisiecki 10

Wprowadzenie do teorii grafów

Krawędzie stanowią połączenia pomiędzy wierzchołkami grafu.

Dopuszczamy przy tym, aby krawędź łączyła wierzchołek sam ze sobą. Nazywamy ją wtedy pętlą.

5.05.08 Dr inż. Krzysztof Lisiecki 11

Wprowadzenie do teorii grafów

Schematycznie graf przedstawiamy w postaci rysunku.

5.05.08 Dr inż. Krzysztof Lisiecki 12

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 13

Wprowadzenie do teorii grafów

Zagadnienie mostów królewieckich (L.Euler, 1736)

Zagadnienie najkrótszej drogi (algorytm Dijkstry)

Problem chińskiego listonosza(Mei Ku Kwan, 1962)

Problem komiwojażera (cykl Hamiltona)

5.05.08 Dr inż. Krzysztof Lisiecki 14

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 15

Wprowadzenie do teorii grafówInne zastosowania

Analiza wzorów strukturalnych związków chemicznychAnaliza obwodów elektrycznychProblemy kolorowania map (twierdzenie o czterech barwach)Problem kojarzenia małżeństw

5.05.08 Dr inż. Krzysztof Lisiecki 16

Wprowadzenie do teorii grafów

Krawędź łączącą wierzchołki Xi oraz Xj będziemy zapisywać jako parę nieuporządkowaną Xi , Xj . Gdy nie da się stwierdzić, który z wierzchołków jest początkiem, a który końcem krawędzi to taki graf nazywamy nieskierowanym.

5.05.08 Dr inż. Krzysztof Lisiecki 17

Wprowadzenie do teorii grafów

Gdy określimy, który z wierzchołków jest początkiem, a który końcem krawędzi, to wówczas taką krawędź nazywamy łukiem. Łuk łączący wierzchołek Xi z wierzchołkiem Xj (od wierzchołka Xi do wierzchołka Xj ) będziemy zapisywać jako parę uporządkowaną (Xi , Xj ).

5.05.08 Dr inż. Krzysztof Lisiecki 18

Wprowadzenie do teorii grafów

Graf G=(X,G), nazywamy nieskierowanym (niezorientowanym) , gdy zbiór G składa się z samych krawędzi.

5.05.08 Dr inż. Krzysztof Lisiecki 19

Wprowadzenie do teorii grafów

Graf G=(X,G), nazywamy digrafem (directed graph) lub grafem skierowanym (zorientowanym), gdy zbiór G składa się z samych łuków.

5.05.08 Dr inż. Krzysztof Lisiecki 20

Wprowadzenie do teorii grafów

Grafem pustym nazywamy graf składający się jedynie z wierzchołków, nie zawierający żadnych krawędzi.

5.05.08 Dr inż. Krzysztof Lisiecki 21

Wprowadzenie do teorii grafów

Podgrafem grafu G=(X,G), nazywamy każdy graf G’=(X’,G’) taki, że

X’X oraz G’ G .

Dopuszczamy przypadki, gdy X’=X lub G’=G .

5.05.08 Dr inż. Krzysztof Lisiecki 22

Wprowadzenie do teorii grafów

Przykładem podgrafu danego grafu jest on sam.Przykładem podgrafu jest także dowolny graf powstały z danego grafu przez usunięcie z niego dowolnej liczby krawędzi (nawet wszystkich ) lub dowolnej liczby wierzchołków (nie wszystkich)

5.05.08 Dr inż. Krzysztof Lisiecki 23

Wprowadzenie do teorii grafów

Przykład podgrafu

5.05.08 Dr inż. Krzysztof Lisiecki 24

Wprowadzenie do teorii grafów

Grafem prostym nazywamy graf, który nie zawiera pętli i, w którym zbiór krawędzi jest zbiorem bez powtórzeń.

Multigrafem nazywamy graf, w którym zbiór krawędzi zawiera powtórzenia.

5.05.08 Dr inż. Krzysztof Lisiecki 25

Wprowadzenie do teorii grafów

Grafem zupełnym (grafem pełnym) nazywamy graf, w którym dla każdej pary wierzchołków istnieje krawędź łącząca te wierzchołki.Graf zupełny o n wierzchołkach oznaczamy często Kn

5.05.08 Dr inż. Krzysztof Lisiecki 26

Wprowadzenie do teorii grafów

Przykłady grafów zupełnych

5.05.08 Dr inż. Krzysztof Lisiecki 27

Wprowadzenie do teorii grafów

Przykłady grafów zupełnych

5.05.08 Dr inż. Krzysztof Lisiecki 28

Wprowadzenie do teorii grafów

Przykłady grafów zupełnych

5.05.08 Dr inż. Krzysztof Lisiecki 29

Wprowadzenie do teorii grafów

Dopełnieniem grafu G nazywamy graf o tym samym zbiorze wierzchołków, który zawiera te wszystkie krawędzie grafu zupełnego o zbiorze wierzchołków , które nie występują w grafie G.

5.05.08 Dr inż. Krzysztof Lisiecki 30

Wprowadzenie do teorii grafów

Wymiarem grafu G nazywamy liczbę jego

wierzchołków. Oznaczamy ją dimG

5.05.08 Dr inż. Krzysztof Lisiecki 31

Wprowadzenie do teorii grafów

Grafem rzadkim nazywamy graf, w którym liczba krawędzi ( łuków) jest dużo mniejsza od kwadratu liczby wierzchołków

Grafem gęstym nazywamy graf, w którym liczba krawędzi ( łuków) jest bliska kwadratowi liczby wierzchołków.

5.05.08 Dr inż. Krzysztof Lisiecki 32

Wprowadzenie do teorii grafów

Jeżeli do wierzchołka Xi „dochodzi” krawędź gk, to mówimy, że wierzchołek Xi jest incydentny z krawędzią gk. Dwa wierzchołki incydentne z tą samą krawędzią nazywamy sąsiednimi lub zależnymi. Inaczej mówiąc, dwa wierzchołki sąsiadują ze sobą, jeżeli istnieje krawędź (łuk) łącząca te wierzchołki.

5.05.08 Dr inż. Krzysztof Lisiecki 33

Wprowadzenie do teorii grafów

Mówimy, że wierzchołek jest izolowany, jeśli nie jest incydentny z żadną krawędzią.

5.05.08 Dr inż. Krzysztof Lisiecki 34

Wprowadzenie do teorii grafów

Stopniem wierzchołka w grafie (nieskierowanym) nazywamy liczbę krawędzi grafu incydentnych z tym wierzchołkiem. stopień wierzchołka Xi

oznaczać będziemy deg Xi.

Każda pętla w wierzchołku zwiększa jego stopień o 2.

Wierzchołek izolowany ma stopień zero.

5.05.08 Dr inż. Krzysztof Lisiecki 35

Wprowadzenie do teorii grafów

Przykład

5.05.08 Dr inż. Krzysztof Lisiecki 36

Wprowadzenie do teorii grafów

Jeśli graf posiada m krawędzi oraz

∑=

=n

ii mX

12deg

nXXX ,...,1= to

5.05.08 Dr inż. Krzysztof Lisiecki 37

Wprowadzenie do teorii grafów

Wniosek

W dowolnym grafie jest parzysta ilość wierzchołków nieparzystego stopnia.

5.05.08 Dr inż. Krzysztof Lisiecki 38

Wprowadzenie do teorii grafów

Graf nazywamy regularnym, gdy każdy jego wierzchołek ma ten sam stopień.

5.05.08 Dr inż. Krzysztof Lisiecki 39

Wprowadzenie do teorii grafów

Drogą w grafie G (zorientowanym lub nie) nazywamy każdy ciąg

X g X X g Xn n n1 1 2 1, , ,..., , , +

taki, że koniec jednej krawędzi (łuku) jest początkiem innej.

X X X g g Gn n1 1 1,..., , ,...,+ ∈ ∈

5.05.08 Dr inż. Krzysztof Lisiecki 40

Wprowadzenie do teorii grafów

Drogę w grafie G nazywamy zamkniętą, gdy

X Xn+ =1 1

5.05.08 Dr inż. Krzysztof Lisiecki 41

Wprowadzenie do teorii grafów

Drogę w grafie nazywamy elementarną, gdy wszystkie jej wierzchołki są różne.

Drogę w grafie nazywamy prostą, jeżeli wszystkie jej krawędzie (łuki) są różne.

Drogę prostą zamkniętą nazywamy cyklem (obwodem).

Cykl nazywamy elementarnym, jeżeli jest drogą elementarną (wszystkie wierzchołki są różne).

5.05.08 Dr inż. Krzysztof Lisiecki 42

Wprowadzenie do teorii grafów

Graf, który nie zawiera cykli nazywamy grafem acyklicznym.

Drogą acykliczna nazywamy drogę, dla której graf składający się z wierzchołków i łuków tworzących drogę jest acykliczny.

5.05.08 Dr inż. Krzysztof Lisiecki 43

Wprowadzenie do teorii grafów

TwierdzenieJeżeli droga zamknięta X g X X g Xn n1 1 2 1, , ,..., , ,

jest długości co najmniej 3 i wierzchołki X X n1 ,..., są różne, to jest cyklem.

5.05.08 Dr inż. Krzysztof Lisiecki 44

Wprowadzenie do teorii grafów

Mówimy, że droga ma długość n jeśli jest postaci

oraz przyporządkowanie łukowi pary wierzchołków

jest funkcją.

X g X X g Xn n n1 1 2 1, , ,..., , , +

( , )X Xi i + 1

Dopuszczamy sytuacje, w których łuk łączy wierzchołek ze sobą. Taką drogę nazywamy pętlą.

5.05.08 Dr inż. Krzysztof Lisiecki 45

Wprowadzenie do teorii grafów

Odległością między dwoma wierzchołkami w grafie nazywamy długość najkrótszej drogi łączącej te wierzchołki.

Średnicą grafu nazywamy maksimum spośród wszystkich odległości między wierzchołkami grafu.

5.05.08 Dr inż. Krzysztof Lisiecki 46

Wprowadzenie do teorii grafów

Poniżej widzimy graf o średnicy 4

5.05.08 Dr inż. Krzysztof Lisiecki 47

Wprowadzenie do teorii grafów

Grafem z wagami (grafem ważonym) nazywamy graf, w którym każdej krawędzi (łukowi) przypisana jest pewna liczba nieujemna zwana wagą danej krawędzi. Innymi słowy, na zbiorze krawędzi (łuków) każdego grafu możemy określić pewną funkcję, która danej krawędzi (łukowi) łączącej wierzchołek Xi z wierzchołkiem Xk

przypisuje pewna liczbę w(i,k).

5.05.08 Dr inż. Krzysztof Lisiecki 48

Wprowadzenie do teorii grafów

Gdy nie istnieje krawędź (łuk) łącząca wierzchołek z wierzchołkiem Xi z wierzchołkiem

Xk wówczas przyjmujemy w(i,k)=, chociaż w

niektórych przypadkach wygodnie jest przyjąćw(i,k)=0.

5.05.08 Dr inż. Krzysztof Lisiecki 49

Wprowadzenie do teorii grafów

Wagą drogi w grafie ważonym nazywamy sumę wag krawędzi (łuków) tworzących tę drogę.

5.05.08 Dr inż. Krzysztof Lisiecki 50

Wprowadzenie do teorii grafów

Uwaga:

Każdy graf, w którym nie jest określona funkcja wagowa możemy traktować jako graf z wagami przyjmując wagę każdej krawędzi równą jeden. Wówczas droga o najmniejszej wadze łącząca dane dwa wierzchołki jest równa odległości tych wierzchołków.

5.05.08 Dr inż. Krzysztof Lisiecki 51

Wprowadzenie do teorii grafów

Wagą grafu nazywamy sumę wag wszystkich jego krawędzi

5.05.08 Dr inż. Krzysztof Lisiecki 52

Wprowadzenie do teorii grafów

Waga poniższego grafu wynosi 28.

5.05.08 Dr inż. Krzysztof Lisiecki 53

Wprowadzenie do teorii grafów

Graf nazywamy spójnym, jeżeli dla każdej pary jego wierzchołków istnieje droga łącząca te wierzchołki.

5.05.08 Dr inż. Krzysztof Lisiecki 54

Wprowadzenie do teorii grafów

Składową spójną grafu nazywamy każdy jego spójny podgraf, który nie jest jednocześnie podgrafem innego grafu spójnego.

Składową spójną jest też wierzchołek izolowany.

5.05.08 Dr inż. Krzysztof Lisiecki 55

Wprowadzenie do teorii grafów

Graf o trzech spójnych składowych

5.05.08 Dr inż. Krzysztof Lisiecki 56

Wprowadzenie do teorii grafów

Krawędź grafu, której usunięcie zwiększa liczbą jego spójnych składowych nazywamy mostem.

most

most

5.05.08 Dr inż. Krzysztof Lisiecki 57

Wprowadzenie do teorii grafów

Twierdzenie

Jeżeli G jest grafem prostym wymiaru n, posiada m krawędzi oraz k spójnych składowych, to spełniona jest nierówność

( ) ( )2

1+−−≤≤− knknmkn

5.05.08 Dr inż. Krzysztof Lisiecki 58

Wprowadzenie do teorii grafów

Dla n=8 oraz k=3 mamy 155 ≤≤ m

Rys.1 Rys.2

5.05.08 Dr inż. Krzysztof Lisiecki 59

Wprowadzenie do teorii grafów

Wniosek

Jeżeli graf prosty wymiaru ma więcej niż

krawędzi, to jest spójny.

( )( )2

21 −− nn

5.05.08 Dr inż. Krzysztof Lisiecki 60

Wprowadzenie do teorii grafów

Wniosek

Jeśli graf prosty jest spójny wymiaru n posiada m krawędzi, to

( )2

11 −⋅≤≤− nnmn

5.05.08 Dr inż. Krzysztof Lisiecki 61

Wprowadzenie do teorii grafów

Przykład

Dla n=4 mamy 63 ≤≤ m

5.05.08 Dr inż. Krzysztof Lisiecki 62

Wprowadzenie do teorii grafów

Dwa grafy ( )111 GX ,=G oraz ( )222 GX ,=G

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.

5.05.08 Dr inż. Krzysztof Lisiecki 63

Wprowadzenie do teorii grafów

Wprost z definicji izomorfizmu grafów wynika, że grafy izomorficzne mają:

ten sam wymiar (liczbę wierzchołków),

tę samą liczbę krawędzi,

tę samą liczbę pętli,

tę sama liczbę wierzchołków o danym stopniu.

5.05.08 Dr inż. Krzysztof Lisiecki 64

Wprowadzenie do teorii grafów

Przykład

Rys. a Rys. b

5.05.08 Dr inż. Krzysztof Lisiecki 65

Grafy z rysunków są izomorficzne, a odpowiednie odwzorowanie zbioru wierzchołków grafu z rysunku a) na zbiór wierzchołków grafu z rysunku b) przedstawia poniższa tabelka:

Wierzchołek z grafu z rys. a)

1 2 3 4 5

Wierzchołek z grafu z rys. b)

D A C E B

5.05.08 Dr inż. Krzysztof Lisiecki 66

Wprowadzenie do teorii grafów

UWAGA:Spełnienie powyższych czterech warunków dla dwóch grafów nie upoważnia nas jeszcze do stwierdzenia, że są one izomorficzne!

5.05.08 Dr inż. Krzysztof Lisiecki 67

Wprowadzenie do teorii grafów

Przykład

Grafy nieizomorficzne spełniające warunki 1-4

5.05.08 Dr inż. Krzysztof Lisiecki 68

Wprowadzenie do teorii grafów

Grafem planarnym nazywamy graf, który możemy narysować na płaszczyźnie tak, aby jego krawędzie nie przecinały się.

Uwaga:

Fakt, że rysunek grafu zawiera przecinające się krawędzie nie oznacza, że graf nie jest planarny.

5.05.08 Dr inż. Krzysztof Lisiecki 69

Wprowadzenie do teorii grafów

Przykładem jest graf (rys. a), który można narysować w ten sposób, by jego krawędzie nie przecinały się (rys. b). Jest to zatem graf planarny.

Rys. a Rys. b

5.05.08 Dr inż. Krzysztof Lisiecki 70

Wprowadzenie do teorii grafów

Twierdzenie

Każdy prosty graf planarny można narysować za pomocą odcinków.

5.05.08 Dr inż. Krzysztof Lisiecki 71

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 72

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 73

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 74

Wprowadzenie do teorii grafów

Grafy platońskie, to grafy utworzone z wierzchołków i krawędzi pięciu wielościanów foremnych

5.05.08 Dr inż. Krzysztof Lisiecki 75

Wprowadzenie do teorii grafów

Grafy platońskie – czworościan foremny (tetraedr)

5.05.08 Dr inż. Krzysztof Lisiecki 76

Wprowadzenie do teorii grafów

Grafy platońskie – sześcian (heksaedr)

5.05.08 Dr inż. Krzysztof Lisiecki 77

Wprowadzenie do teorii grafów

Grafy platońskie – ośmiościan foremny (oktaedr)

5.05.08 Dr inż. Krzysztof Lisiecki 78

Wprowadzenie do teorii grafów

Grafy platońskie – dwunastościan foremny (dodekaedr)

5.05.08 Dr inż. Krzysztof Lisiecki 79

Wprowadzenie do teorii grafów

Grafy platońskie – dwudziestościan foremny (ikosaedr)

5.05.08 Dr inż. Krzysztof Lisiecki 80

Wprowadzenie do teorii grafów

Miarą „nieplanarności” grafu jest liczba przecięć.

Liczbą przecięć grafu G nazywamy najmniejszą liczbę przecięć, które muszą wystąpić, aby dany graf narysować na płaszczyźnie. Liczbę przecięć grafu G oznaczamy cr(G).

Dla dowolnego grafu planarnego liczba przecięć jest równa zero.

5.05.08 Dr inż. Krzysztof Lisiecki 81

Wprowadzenie do teorii grafów

cr (G). =1

5.05.08 Dr inż. Krzysztof Lisiecki 82

Wprowadzenie do teorii grafów

Rysunek grafu planarnego dzieli płaszczyznę na obszary (ściany), z których jeden jest nieograniczony (rys. poniżej).

5.05.08 Dr inż. Krzysztof Lisiecki 83

Wprowadzenie do teorii grafów

Twierdzenie Eulera (1750)

Jeżeli G jest grafem planarnym spójnym wymiaru n, posiadającym m krawędzi oraz f ścian, to

2=+− fmn

5.05.08 Dr inż. Krzysztof Lisiecki 84

Wprowadzenie do teorii grafów

Przykład

n=8, m=11, f=5 n-m+f=8-11+5=2

5.05.08 Dr inż. Krzysztof Lisiecki 85

Wprowadzenie do teorii grafów

Wniosek z tw. Eulera

Jeżeli G jest grafem planarnym wymiaru n, posiadającym k spójnych składowych,m krawędzi oraz f ścian, to

1+=+− kfmn

5.05.08 Dr inż. Krzysztof Lisiecki 86

Wprowadzenie do teorii grafów

Przykład

n=9, k=2

m=10, f=4

9-10+4=2+1

5.05.08 Dr inż. Krzysztof Lisiecki 87

Wprowadzenie do teorii grafów

Dla danego grafu możemy stworzyć jego opis macierzowy budując:

macierz sąsiedztwa,

macierz incydencji, lub

macierz cykli (obwodów)

5.05.08 Dr inż. Krzysztof Lisiecki 88

Wprowadzenie do teorii grafów

Niech G=(X,G) będzie dowolnym grafem

nieskierowanym wymiaru n. Macierzą sąsiedztwa grafu G nazywamy macierz kwadratową,

do wierzchołka

njiija ≤= ,][A

której elementy określamy następująco:aij jest liczbą krawędzi od wierzchołka

X j

5.05.08 Dr inż. Krzysztof Lisiecki 89

Wprowadzenie do teorii grafów

Widzimy więc, że elementy macierzy są liczbami dodatnimi lub zerami, przy czym element aij = 0wtedy i tylko wtedy, gdy nie istnieje krawędź od wierzchołka X i do wierzchołka X j

Macierz sąsiedztwa grafu nieskierowanego niesie wiele informacji na temat grafu.

5.05.08 Dr inż. Krzysztof Lisiecki 90

Wprowadzenie do teorii grafów

wymiar macierzy nn mówi, że graf ma wymiar n (liczba wierzchołków),

ilość jedynek na głównej przekątnej jest równa ilości pętli,

Jeśli graf nie ma pętli, to suma wszystkich elementów macierzy jest równa podwojonej liczbie krawędzi w grafie,

5.05.08 Dr inż. Krzysztof Lisiecki 91

Wprowadzenie do teorii grafów

macierz sąsiedztwa grafu nieskierowanego jest macierzą symetryczną,

Jeżeli graf nie ma pętli, to suma elementów i-tego wiersza (i-tej kolumny) jest równa stopniowi wierzchołka

5.05.08 Dr inż. Krzysztof Lisiecki 92

Wprowadzenie do teorii grafów

Niech G=(X,G) będzie dowolnym grafem

skierowanym wymiaru n. Macierzą sąsiedztwa grafu G nazywamy macierz kwadratową,

do wierzchołka

njiija ≤= ,][A

której elementy określamy następująco:aij jest liczbą łuków od wierzchołka

X j

X i

5.05.08 Dr inż. Krzysztof Lisiecki 93

Wprowadzenie do teorii grafów

Macierz sąsiedztwa grafu skierowanego niesie takie informacje na temat grafu skierowanego jak macierz grafu nieskierowanego. Wystarczy we własnościach 1 –5 zamienić słowo krawędź na słowo łuk.

5.05.08 Dr inż. Krzysztof Lisiecki 94

Wprowadzenie do teorii grafów

Przykład

Graf nieskierowany i jego macierz sąsiedztwa

101011110

5.05.08 Dr inż. Krzysztof Lisiecki 95

Wprowadzenie do teorii grafów

Przykład

Graf skierowany i jego macierz sąsiedztwa

001210100

5.05.08 Dr inż. Krzysztof Lisiecki 96

Wprowadzenie do teorii grafów

Macierzą incydencji grafu wymiaru n bez pętli posiadającego m krawędzi nazywamy macierz A wymiaru nm, której elementy określone są wzorem

−−

= razie przeciwnym w

iemwierzcholktymizincydentna jest krawędźtajeśli,

0

1 jaij

5.05.08 Dr inż. Krzysztof Lisiecki 97

Wprowadzenie do teorii grafów

Przykład

Graf i jego macierz incydencji

a b c d e f g

1 1 0 0 0 0 0 0

2 1 1 1 0 0 0 0

3 0 1 0 1 1 0 0

4 0 0 1 1 0 1 1

5 0 0 0 0 1 1 1

5.05.08 Dr inż. Krzysztof Lisiecki 98

Wprowadzenie do teorii grafów

Własności macierzy incydencji

Każda kolumna macierzy zawiera dokładnie dwie jedynki,

Liczba jedynek w każdym wierszu jest równa stopniowi odpowiadającego mu wierzchołka,

5.05.08 Dr inż. Krzysztof Lisiecki 99

Wprowadzenie do teorii grafów

Własności macierzy incydencji c.d.

2. Wiersz złożony z samych zer reprezentuje wierzchołek izolowany,

3. Krawędzie równoległe tworzą w macierzy identyczne kolumny,

5.05.08 Dr inż. Krzysztof Lisiecki 100

Wprowadzenie do teorii grafów

Własności macierzy incydencji c.d.

2. Jeśli graf ma dwie spójne składowe, to jego macierz incydencji jest macierzą blokową postaci

2

1

A00A

gdzie macierze w lewym górnym i prawym dolnym rogu są, odpowiednio, macierzami incydencji każdej składowej spójnej grafu

5.05.08 Dr inż. Krzysztof Lisiecki 101

Wprowadzenie do teorii grafów

Uwaga:

Jeśli składowych spójnych jest k, to macierz incydencji można zapisać w postaci blokowej

kA00000000A0000A

2

1

5.05.08 Dr inż. Krzysztof Lisiecki 102

Wprowadzenie do teorii grafów

Własności macierzy incydencji c.d.

2. Permutacja dwóch wierszy lub kolumn w macierzy incydencji odpowiada przeetykietowaniu wierzchołków i krawędzi tego samego grafu.

5.05.08 Dr inż. Krzysztof Lisiecki 103

Wprowadzenie do teorii grafów

Wniosek:

Dwa grafy są izomorficzne wtedy i tylko wtedy i tylko wtedy gdy ich macierze incydencji różnią się tylko permutacją wierszy i kolumn.

5.05.08 Dr inż. Krzysztof Lisiecki 104

Wprowadzenie do teorii grafów

Przykład

10000011101011101001

5.05.08 Dr inż. Krzysztof Lisiecki 105

Wprowadzenie do teorii grafów

Twierdzenie

Rząd macierzy incydencji grafu spójnego wymiaru n jest równy n-1.

5.05.08 Dr inż. Krzysztof Lisiecki 106

Wprowadzenie do teorii grafów

Twierdzenie o rzędzie macierzy grafu spójnego mówi, że jeden z wierszy jego macierzy incydencji jest liniowo zależny od pozostałych. Sugeruje to, że wszystkie informacje o grafie wymiaru n zawarte są w n-1 wierszach macierzy incydencji.

5.05.08 Dr inż. Krzysztof Lisiecki 107

Wprowadzenie do teorii grafów

Zredukowaną macierzą incydencji grafu nazywamy macierz otrzymaną z macierzy incydencji przez usunięcie dowolnego wiersza. Macierz ta ma wymiary (n-1)m

5.05.08 Dr inż. Krzysztof Lisiecki 108

Wprowadzenie do teorii grafów

Wprost z definicji wynika

Twierdzenie

Macierz incydencji grafu spójnego wymiaru n posiadającego n-1 krawędzi jest nieosobliwą macierzą kwadratową wymiaru n-1

5.05.08 Dr inż. Krzysztof Lisiecki 109

Wprowadzenie do teorii grafów

Macierzą cykli (obwodów) grafu posiadającego m krawędzi nazywamy macierz A wymiaru nm, której elementy określone są wzorem

−−

= razie przeciwnym w

krawędźtąjzawiera tyjeśli,

0

1 cykliaij

5.05.08 Dr inż. Krzysztof Lisiecki 110

Wprowadzenie do teorii grafów

Przykład

Graf i jego cykle

5.05.08 Dr inż. Krzysztof Lisiecki 111

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 112

Wprowadzenie do teorii grafów

100000010101010011000110

Macierz cykli grafu

5.05.08 Dr inż. Krzysztof Lisiecki 113

Wprowadzenie do teorii grafów

Własności macierzy cykli

Kolumna zer odpowiada krawędzi nie należącej do żadnego cyklu,

Każdy wiersz zawiera te i tylko te krawędzie, które tworzą odpowiadający mu cykl

5.05.08 Dr inż. Krzysztof Lisiecki 114

Wprowadzenie do teorii grafów

Własności macierzy cykli c.d.

2. Wiersz odpowiadający pętli zawiera tylko pojedynczą jedynkę,

3. Liczba jedynek w wierszu jest równa liczbie krawędzi w odpowiadającym mu cyklu,

5.05.08 Dr inż. Krzysztof Lisiecki 115

Wprowadzenie do teorii grafów

Własności macierzy cykli c.d.

2. Przestawienie dowolnych dwóch wierszy lub kolumn w macierzy cykli odpowiada przeetykietowaniu cykli i krawędzi,

3. Grafy o identycznych macierzach cykli nie muszą być izomorficzne

5.05.08 Dr inż. Krzysztof Lisiecki 116

Wprowadzenie do teorii grafów

Zastosowanie macierzy sąsiedztwa

Problemy:

Ile krawędzi łączy dwa dane wierzchołki grafu?

Ile dróg długości n łączy dwa dane wierzchołki grafu?

5.05.08 Dr inż. Krzysztof Lisiecki 117

Wprowadzenie do teorii grafówIle jest dróg łączących

wierzchołek 2 z wierzchołkiem 4 o długości:

b) 1,

c) 2,

d) 3.

5.05.08 Dr inż. Krzysztof Lisiecki 118

Wprowadzenie do teorii grafów

Twierdzenie

Jeżeli A jest macierzą grafu o wierzchołkach X1, X2,…,Xn , to element aij w macierzy Am jest

równy liczbie dróg długości m łączących wierzchołek Xi z wierzchołkiem Xj

5.05.08 Dr inż. Krzysztof Lisiecki 119

Wprowadzenie do teorii grafów

=

101011110

A

=

211121112

2A

=

323233332

3A

5.05.08 Dr inż. Krzysztof Lisiecki 120

Wprowadzenie do teorii grafów

Drogą Eulera w grafie nazywamy każdą drogę prostą, która zawiera wszystkie krawędzie grafu.

5.05.08 Dr inż. Krzysztof Lisiecki 121

Wprowadzenie do teorii grafów

Przykład drogi Eulera

66554433211237681 XgXgXgXgXgXgXgXgX ,,,,,,,,,,,,,,,,

5.05.08 Dr inż. Krzysztof Lisiecki 122

Wprowadzenie do teorii grafów

Przykład grafu, który nie zawiera drogi Eulera

5.05.08 Dr inż. Krzysztof Lisiecki 123

Wprowadzenie do teorii grafów

Cyklem Eulera nazywamy

zamkniętą drogę Eulera.

5.05.08 Dr inż. Krzysztof Lisiecki 124

Wprowadzenie do teorii grafów

PrzykładCyklem Eulera jest droga

X g X g X g X g X g X g X g X1 1 2 2 3 3 4 4 5 5 6 6 3 7 1, , , , , , , , , , , , , ,

5.05.08 Dr inż. Krzysztof Lisiecki 125

Wprowadzenie do teorii grafów

Twierdzenie

W grafie spójnym, posiadającym co najwyżej dwa wierzchołki stopnia nieparzystego istnieje droga Eulera.

5.05.08 Dr inż. Krzysztof Lisiecki 126

Wprowadzenie do teorii grafów

Twierdzenie (Euler, 1736)

Jeżeli graf G posiada cykl Eulera, to jest spójny i każdy jego wierzchołek ma parzysty stopień.

5.05.08 Dr inż. Krzysztof Lisiecki 127

Wprowadzenie do teorii grafów

Przykład grafu posiadającego cykl Eulera

5.05.08 Dr inż. Krzysztof Lisiecki 128

Wprowadzenie do teorii grafów

Prawdziwe jest również twierdzenie odwrotne.

Twierdzenie

Jeżeli graf G jest spójny i stopień każdego wierzchołka jest parzysty to posiada cykl Eulera

5.05.08 Dr inż. Krzysztof Lisiecki 129

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 130

Wprowadzenie do teorii grafów

Algorytm wyznaczania drogi Eulera w grafie.

Wybieramy w grafie dowolny wierzchołek nieparzystego stopnia. Jeśli taki nie istnieje wybieramy dowolny parzystego stopnia. Wybrany wierzchołek oznaczamy przez X.

5.05.08 Dr inż. Krzysztof Lisiecki 131

Wprowadzenie do teorii grafów

1. Dopóki w grafie są krawędzie incydentne z wierzchołkiem X wykonujemy jedną z poniższych czynności

5.05.08 Dr inż. Krzysztof Lisiecki 132

Wprowadzenie do teorii grafów

a) jeżeli z wierzchołkiem X jest incydentna dokładnie jedna krawędź g, łącząca ten wierzchołek z wierzchołkiem Y, to podstawiamy X:=Y, zapisujemy g jako kolejny wyraz ciągu oraz usuwamy tę krawędź z grafu.

5.05.08 Dr inż. Krzysztof Lisiecki 133

Wprowadzenie do teorii grafów

b) jeżeli z wierzchołkiem X incydentna jest więcej niż jedna krawędź, to wybieramy dowolną, która nie jest mostem o

postępujemy dalej tak jak w punkcie a.

5.05.08 Dr inż. Krzysztof Lisiecki 134

Wprowadzenie do teorii grafów

3. a) jeśli otrzymany przez nas ciąg zawiera wszystkie krawędzie grafu oznacza to, że znaleźliśmy drogę Eulera

5.05.08 Dr inż. Krzysztof Lisiecki 135

Wprowadzenie do teorii grafów

3. b) jeśli otrzymany przez nas ciąg nie zawiera wszystkich krawędzi grafu oznacza to, że graf nie jest spójny

5.05.08 Dr inż. Krzysztof Lisiecki 136

Wprowadzenie do teorii grafów

Przykład

322 ,, XgX

5.05.08 Dr inż. Krzysztof Lisiecki 137

Wprowadzenie do teorii grafów

43322 ,,,, XgXgX

5.05.08 Dr inż. Krzysztof Lisiecki 138

Wprowadzenie do teorii grafów

5443322 ,,,,,, XgXgXgX

5.05.08 Dr inż. Krzysztof Lisiecki 139

Wprowadzenie do teorii grafów

255443322 ,,,,,,,, XgXgXgXgX

5.05.08 Dr inż. Krzysztof Lisiecki 140

Wprowadzenie do teorii grafów

11255443322 ,,,,,,,,,, XgXgXgXgXgX

5.05.08 Dr inż. Krzysztof Lisiecki 141

Wprowadzenie do teorii grafów

6911255443322 ,,,,,,,,,,,, XgXgXgXgXgXgX

5.05.08 Dr inż. Krzysztof Lisiecki 142

Wprowadzenie do teorii grafów

486911255443322 ,,,,,,,,,,,,,, XgXgXgXgXgXgXgX

5.05.08 Dr inż. Krzysztof Lisiecki 143

Wprowadzenie do teorii grafów

67486911255443322 ,,,,,,,,,,,,,,,, XgXgXgXgXgXgXgXgX

5.05.08 Dr inż. Krzysztof Lisiecki 144

Wprowadzenie do teorii grafów

5667486911255443322 ,,,,,,,,,,,,,,,,,, XgXgXgXgXgXgXgXgXgX

5.05.08 Dr inż. Krzysztof Lisiecki 145

Wprowadzenie do teorii grafów

Animacja 1 Animacja 2

5.05.08 Dr inż. Krzysztof Lisiecki 146

Wprowadzenie do teorii grafów

Definicja

Stopniem wejściowym wierzchołka w grafie zorientowanym nazywamy ilość łuków wchodzących do wierzchołka. Stopień wejściowy wierzchołka Xi oznaczamy indegXi .

5.05.08 Dr inż. Krzysztof Lisiecki 147

Wprowadzenie do teorii grafów

Definicja

Stopniem wyjściowym wierzchołka w grafie zorientowanym nazywamy ilość łuków wychodzących z wierzchołka. Stopień wejściowy wierzchołka Xi oznaczamy outdegXi .

5.05.08 Dr inż. Krzysztof Lisiecki 148

Wprowadzenie do teorii grafów

Wniosek

Dla dowolnego wierzchołka Xi w grafie zorientowanym zachodzi równość

in X out X Xi i ideg deg deg+ =

5.05.08 Dr inż. Krzysztof Lisiecki 149

Wprowadzenie do teorii grafów

Twierdzenie

Załóżmy, że graf skierowany traktowany jako nieskierowany jest spójny. Wówczas istnieje w nim cykl Eulera wtedy i tylko wtedy, gdy stopień wejściowy każdego wierzchołka jest równy jego stopniowi wyjściowemu.

5.05.08 Dr inż. Krzysztof Lisiecki 150

Wprowadzenie do teorii grafów

Graf, który nie posiada cyklu Eulera

5.05.08 Dr inż. Krzysztof Lisiecki 151

Wprowadzenie do teorii grafów

Graf, który posiada cykl Eulera

5.05.08 Dr inż. Krzysztof Lisiecki 152

Wprowadzenie do teorii grafów

Wcześniej podana była zależność między ilością krawędzi w grafie niezorientowanym a sumą stopni wierzchołków. Teraz przytoczymy udowodnione przez Istvana Reimana twierdzenie pozwalające oszacować z góry ilość krawędzi w grafie wymiaru n nie zawierającym cykli o długości 4.

5.05.08 Dr inż. Krzysztof Lisiecki 153

Wprowadzenie do teorii grafów

Twierdzenie.

Jeżeli graf G=(X,G) wymiaru n nie zawiera cykli długości 4, to ilość krawędzi m spełnia nierówność

−+⋅≤ )341(

4nnm

5.05.08 Dr inż. Krzysztof Lisiecki 154

Wprowadzenie do teorii grafów

Przykład.

Jeśli graf ma wymiar 6 i nie zawiera cykli o długości 4, to

37,8)211(23)3641(

46 ≈+⋅=

−⋅+⋅≤m

5.05.08 Dr inż. Krzysztof Lisiecki 155

Wprowadzenie do teorii grafów

Definicja.

Drzewem nazywamy graf spójny bez cykli.

5.05.08 Dr inż. Krzysztof Lisiecki 156

Wprowadzenie do teorii grafów

Definicja.

Lasem nazywamy graf bez cykli

5.05.08 Dr inż. Krzysztof Lisiecki 157

Wprowadzenie do teorii grafów

Twierdzenie

Niech G będzie grafem wymiaru n. Wówczas następujące stwierdzenia są równoważne:

3. G jest drzewem

4. G nie zawiera cykli i ma n-1 krawędzi

5. G jest spójny i ma n-1 krawędzi

5.05.08 Dr inż. Krzysztof Lisiecki 158

Wprowadzenie do teorii grafów

• G jest spójny i każda krawędź jest mostem

• dowolne dwa wierzchołki grafu G są połączone dokładnie jedną droga

• graf G nie zawiera cykli a dołączenie dowolnej nowej krawędzi do G tworzy dokładnie jeden cykl

• G jest grafem acyklicznym mającym n-1 krawędzi

5.05.08 Dr inż. Krzysztof Lisiecki 159

Wprowadzenie do teorii grafów

Wniosek

W drzewie o co najmniej dwóch wierzchołkach, co najmniej dwa z nich są stopnia 1.

5.05.08 Dr inż. Krzysztof Lisiecki 160

Wprowadzenie do teorii grafów

Definicja

Drzewem ukorzenionym nazywamy drzewo z wyróżnionym wierzchołkiem

5.05.08 Dr inż. Krzysztof Lisiecki 161

Wprowadzenie do teorii grafów

Przykład

5.05.08 Dr inż. Krzysztof Lisiecki 162

Wprowadzenie do teorii grafów

Definicja.

Dla grafu spójnego G=(X,G) każde drzewo GT=(X,T) takie, że

nazywamy drzewem spinającym grafu G.

GT ⊆

5.05.08 Dr inż. Krzysztof Lisiecki 163

Wprowadzenie do teorii grafów

Twierdzenie.

Każdy graf skończony spójny ma drzewo spinające.

5.05.08 Dr inż. Krzysztof Lisiecki 164

Wprowadzenie do teorii grafów

Twierdzenie.

Każdy graf skończony ma las spinający.

5.05.08 Dr inż. Krzysztof Lisiecki 165

Wprowadzenie do teorii grafów

Twierdzenie (Cayley, 1889)

Graf pełny Kn (dla ) ma n n-2 różnych drzew spinających.

2≥n

5.05.08 Dr inż. Krzysztof Lisiecki 166

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 167

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 168

Wprowadzenie do teorii grafów

Definicja

Wagą drzewa (jako grafu z wagami) nazywamy sumę wag jego krawędzi (łuków).

5.05.08 Dr inż. Krzysztof Lisiecki 169

Wprowadzenie do teorii grafów

Przykład

Waga drzewa przedstawionego na rysunku poniżej wynosi 21.

5.05.08 Dr inż. Krzysztof Lisiecki 170

Wprowadzenie do teorii grafów

Listy sąsiedztwa, to tablica złożona z list, których liczba jest równa wymiarowi grafu (liczbie jego wierzchołków).

Dla każdego wierzchołka odpowiadająca mu lista składa się z tych, i tylko tych, wierzchołków grafu, które z nim sąsiadują.

5.05.08 Dr inż. Krzysztof Lisiecki 171

Wprowadzenie do teorii grafów

Listy sąsiedztwa najlepiej nadają się do reprezentowania grafów rzadkich, natomiast dla reprezentacji grafów gęstych zdecydowanie lepiej wybrać macierz.

5.05.08 Dr inż. Krzysztof Lisiecki 172

Wprowadzenie do teorii grafów

Twierdzenie

Suma długości wszystkich list sąsiedztwa grafu (nieskierowanego) jest równa podwojonej liczbie krawędzi tego grafu.

Suma długości wszystkich list sąsiedztwa digrafu (grafu skierowanego) jest równa liczbie łuków tego grafu.

5.05.08 Dr inż. Krzysztof Lisiecki 173

Wprowadzenie do teorii grafów

Przykład

5.05.08 Dr inż. Krzysztof Lisiecki 174

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 175

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 176

Wprowadzenie do teorii grafów

Najważniejszymi i najbardziej znanymi algorytmami grafowymi są:

•przeszukiwanie wszerz oraz

•przeszukiwanie w głąb.

5.05.08 Dr inż. Krzysztof Lisiecki 177

Wprowadzenie do teorii grafów

W trakcie działania algorytmu przeszukiwania możemy wyróżnić w zbiorze wierzchołków grafu dwa rozłączne podzbiory: wierzchołków już odwiedzonych i wierzchołków jeszcze nie odwiedzonych.

5.05.08 Dr inż. Krzysztof Lisiecki 178

Wprowadzenie do teorii grafów

W przypadku drzewa ukorzenionego, narysowanego tak, że korzeń jest na górze granica pomiędzy tymi zbiorami przebiega poziomo dla przeszukiwania wszerz, natomiast pionowo dla przeszukiwania w głąb .

5.05.08 Dr inż. Krzysztof Lisiecki 179

Wprowadzenie do teorii grafów

Przeszukiwanie wszerz

5.05.08 Dr inż. Krzysztof Lisiecki 180

Wprowadzenie do teorii grafów

Przeszukiwanie w głąb

5.05.08 Dr inż. Krzysztof Lisiecki 181

Wprowadzenie do teorii grafów

Algorytm przeszukiwania wszerz polega na kolejnym odwiedzaniu najpierw wierzchołków, których odległość od korzenia wynosi 1, następnie 2, potem 3 itd.

Zatem zanim zagłębimy się bardziej w grafie sprawdzamy wcześniej wszystkie możliwe wierzchołki „na danym poziomie”.

5.05.08 Dr inż. Krzysztof Lisiecki 182

Wprowadzenie do teorii grafów

Idea algorytmu przeszukiwania w głąb polega na odwiedzeniu jak największej liczby wierzchołków przesuwając się możliwie najdalej w głąb grafu, a dopiero później przejściu do pozostałych wierzchołków.

5.05.08 Dr inż. Krzysztof Lisiecki 183

Wprowadzenie do teorii grafów

W trakcie przeszukiwania grafów za pomocą obu algorytmów budowane jest znakowane drzewo przeszukiwań. Rozpoczynając od korzenia nadajemy każdemu wierzchołkowi etykietę ze zbioru liniowo uporządkowanego, najczęściej ze zbioru n...,,,, 321

5.05.08 Dr inż. Krzysztof Lisiecki 184

Wprowadzenie do teorii grafów

Algorytm przeszukiwania grafu wszerz

Zakładamy, że przeszukiwany graf jest reprezentowany przez listy sąsiedztwa. Przeszukiwanie zaczynamy od wierzchołków znajdujących się na liście sąsiedztwa korzenia – przeszukujemy je kolejno dołączając do drzewa przeszukiwań kolejne wierzchołki z listy i łączące je z korzeniem krawędzie.

5.05.08 Dr inż. Krzysztof Lisiecki 185

Wprowadzenie do teorii grafów

Następnie przechodzimy do listy sąsiedztwa wierzchołka, który był pierwszy na liście sąsiedztwa korzenia i kolejno przeszukujemy znajdujące się tam wierzchołki dołączając jednocześnie te wierzchołki do drzewa przeszukiwań. Analogicznie postępujemy z listami sąsiedztwa kolejnych wierzchołków znajdujących się na liście sąsiedztwa korzenia.

5.05.08 Dr inż. Krzysztof Lisiecki 186

Wprowadzenie do teorii grafów

Po wyczerpaniu się wierzchołków na liście sąsiedztwa korzenia przechodzimy do przeszukiwania wierzchołków znajdujących się na listach sąsiedztwa wierzchołków, które znalazły się na listach sąsiedztwa wierzchołków z listy sąsiedztwa korzenia, itd.

5.05.08 Dr inż. Krzysztof Lisiecki 187

Wprowadzenie do teorii grafów

Przykład

Stosując algorytm przeszukiwania wszerz zbudować drzewo przeszukiwań poniższego grafu przyjmując, że korzeniem jest wierzchołek b.

5.05.08 Dr inż. Krzysztof Lisiecki 188

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 189

Wprowadzenie do teorii grafów

b

5.05.08 Dr inż. Krzysztof Lisiecki 190

Wprowadzenie do teorii grafów

b,a

5.05.08 Dr inż. Krzysztof Lisiecki 191

Wprowadzenie do teorii grafów

b,a,e

5.05.08 Dr inż. Krzysztof Lisiecki 192

Wprowadzenie do teorii grafów

b,a,e,f

5.05.08 Dr inż. Krzysztof Lisiecki 193

Wprowadzenie do teorii grafów

b,a,e,f,c

5.05.08 Dr inż. Krzysztof Lisiecki 194

Wprowadzenie do teorii grafów

b,a,e,f,c,d

5.05.08 Dr inż. Krzysztof Lisiecki 195

Wprowadzenie do teorii grafów

b,a,e,f,c,d,g

5.05.08 Dr inż. Krzysztof Lisiecki 196

Wprowadzenie do teorii grafów

b,a,e,f,c,d,g,h

Listy puste - stop

5.05.08 Dr inż. Krzysztof Lisiecki 197

Wprowadzenie do teorii grafów

Algorytm przeszukiwania grafów w głąb

Podobnie jak w przypadku algorytmu przeszukiwania wszerz, do przeszukiwania w głąb wygodnie jest reprezentować graf za pomocą list sąsiedztwa.

5.05.08 Dr inż. Krzysztof Lisiecki 198

Wprowadzenie do teorii grafów

Przeszukiwanie zaczynamy od korzenia, ale w przeciwieństwie do przeszukiwania wszerz, nie przeszukujemy kolejno wszystkich wierzchołków z listy sąsiedztwa korzenia, ale najpierw jeden z nich (pierwszy) a następnie pierwszy wierzchołek na liście sąsiedztwa tego wierzchołka.

5.05.08 Dr inż. Krzysztof Lisiecki 199

Wprowadzenie do teorii grafów

Postępujemy tak do momentu, w którym nie możemy już wejść „głębiej” a dalsze przeszukiwanie wymaga cofnięcia się do poprzednio odwiedzonego wierzchołkai przeszukiwanie kolejnego wierzchołka na liście sąsiedztwa.

5.05.08 Dr inż. Krzysztof Lisiecki 200

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 201

Wprowadzenie do teorii grafów

b

5.05.08 Dr inż. Krzysztof Lisiecki 202

Wprowadzenie do teorii grafów

b,a

5.05.08 Dr inż. Krzysztof Lisiecki 203

Wprowadzenie do teorii grafów

b,a,c

5.05.08 Dr inż. Krzysztof Lisiecki 204

Wprowadzenie do teorii grafów

b,a,c,g

5.05.08 Dr inż. Krzysztof Lisiecki 205

Wprowadzenie do teorii grafów

b,a,c,g,h

5.05.08 Dr inż. Krzysztof Lisiecki 206

Wprowadzenie do teorii grafów

b,a,c,g,h,d

5.05.08 Dr inż. Krzysztof Lisiecki 207

Wprowadzenie do teorii grafów

b,a,c,g,h,d,e

5.05.08 Dr inż. Krzysztof Lisiecki 208

Wprowadzenie do teorii grafów

b,a,c,g,h,d,e,f

Listy puste - stop

5.05.08 Dr inż. Krzysztof Lisiecki 209

Wprowadzenie do teorii grafów

Najkrótsze drogi w grafie

Wagę drogi nazywamy czasem długością tej drogi. Jednak nie zawsze waga musi oznaczać długość. Często waga krawędzi w grafie oznacza czas potrzebny na pokonanie jakiegoś odcinka drogi, czas wykonania jakiejś czynności, koszt wykonania tej czynności. Stąd waga drogi oznaczać może łączny czas potrzebny na przebycie tej drogi, łączny czas wykonania jakiejś czynności lub też całkowity koszt.

5.05.08 Dr inż. Krzysztof Lisiecki 210

Wprowadzenie do teorii grafów

Problem:

Znaleźć najkrótszą drogę w grafie ważonym, czyli drogę o najmniejszej wadze łączącej dane dwa wierzchołki.

5.05.08 Dr inż. Krzysztof Lisiecki 211

Wprowadzenie do teorii grafów

Algorytm Dijkstry Polega na ustaleniu wierzchołka początkowego,przeglądaniu pozostałych wierzchołkówi wybraniu wierzchołka, dla którego waga drogi od wierzchołka początkowego jest najmniejsza. Jednocześnie uaktualniane są najmniejsze wagi dróg od wierzchołka początkowego do innych wierzchołków.

5.05.08 Dr inż. Krzysztof Lisiecki 212

Wprowadzenie do teorii grafów

Przykład

Wyznaczyć drogę o najmniejszej wadze (najkrótszą drogę) łączącą wierzchołki A oraz D poniższego grafu z wagami używając algorytmu Dijkstry.

5.05.08 Dr inż. Krzysztof Lisiecki 213

Wprowadzenie do teorii grafów

d(A)=0

5.05.08 Dr inż. Krzysztof Lisiecki 214

Wprowadzenie do teorii grafów

krok 1

d(B)=mind(B) ; d(A)+5= min∞ ; 5=5 d(F)=mind(F) ; d(A)+3= min∞ ; 3=3

5.05.08 Dr inż. Krzysztof Lisiecki 215

Wprowadzenie do teorii grafów

krok 2

d(C)=mind(C) ; d(F)+7= min∞ ; 3+7=10d(I)=mind(I) ; d(F)+5= min∞ ; 3+5=8d(K)=mind(K) ; d(F)+3= min∞ ; 3+3=6.

5.05.08 Dr inż. Krzysztof Lisiecki 216

Wprowadzenie do teorii grafów

krok 3

d(E)=mind(E) ; d(B)+2= min∞ ; 5+2=7.

d(G)=mind(G) ; d(B)+6= min∞ ; 5+6=11.

5.05.08 Dr inż. Krzysztof Lisiecki 217

Wprowadzenie do teorii grafów

krok 4

d(G)=mind(G) ; d(K)+4= min11 ; 6+4=10

d(J)=mind(J) ; d(K)+5= min∞ ; 6+5=11

d(L)=mind(L) ; d(K)+2= min∞ ; 6+2=8

5.05.08 Dr inż. Krzysztof Lisiecki 218

Wprowadzenie do teorii grafów

krok 5

d(I)=mind(I) ; d(E)+1= min8 ; 7+1=8

d(J)=mind(J) ; d(E)+2= min11 ; 7+2=9

5.05.08 Dr inż. Krzysztof Lisiecki 219

Wprowadzenie do teorii grafów

krok 6

5.05.08 Dr inż. Krzysztof Lisiecki 220

Wprowadzenie do teorii grafów

krok 7

d(G)=mind(G) ; d(L)+8= min10 ; 8+8=10

5.05.08 Dr inż. Krzysztof Lisiecki 221

Wprowadzenie do teorii grafów

krok 8

5.05.08 Dr inż. Krzysztof Lisiecki 222

Wprowadzenie do teorii grafów

krok 9

d(D)=mind(D) ; d(G)+1= min∞ ; 10+1=11

d(H)=mind(H) ; d(G)+2= min∞ ; 10+2=12

5.05.08 Dr inż. Krzysztof Lisiecki 223

Wprowadzenie do teorii grafów

krok 10

d(D)=mind(D) ; d(C)+2= min11 ; 10+2=11

d(H)=mind(H) ; d(G)+2= min12 ; 10+5=12

5.05.08 Dr inż. Krzysztof Lisiecki 224

Wprowadzenie do teorii grafów

krok 11

5.05.08 Dr inż. Krzysztof Lisiecki 225

Wprowadzenie do teorii grafów

krok 12

5.05.08 Dr inż. Krzysztof Lisiecki 226

Wprowadzenie do teorii grafów

W trakcie działania przedstawionego algorytmu każdemu wierzchołkowi przypisana została liczba oznaczająca najmniejszą spośród wag dróg łączących wierzchołek A z tym wierzchołkiem.

5.05.08 Dr inż. Krzysztof Lisiecki 227

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 228

Wprowadzenie do teorii grafów

Nas interesuje najkrótsza (o najmniejszej wadze) droga łącząca wierzchołki A oraz D. W tabeli odczytujemy d(D)=11.

Najkrótsza droga ma zatem wagę 11 i wystarczy ją teraz odczytać z naszej tabeli.

5.05.08 Dr inż. Krzysztof Lisiecki 229

Wprowadzenie do teorii grafów

Widzimy kolejno, że:wierzchołkiem poprzedzającym wierzchołek D jest wierzchołek G,

wierzchołkiem, który poprzedza G jest wierzchołek K,

wierzchołkiem poprzedzającym K jest wierzchołek F,

wierzchołkiem poprzedzającym F jest wierzchołek A, czyli wierzchołek początkowy.

Ostatecznie drogą o najmniejszej wadze łączącą wierzchołki A oraz D jest droga przebiegająca kolejno przez wierzchołki A, F, K, G, D

5.05.08 Dr inż. Krzysztof Lisiecki 230

Wprowadzenie do teorii grafów

Najkrótsza droga łącząca wierzchołki A oraz D

5.05.08 Dr inż. Krzysztof Lisiecki 231

Wprowadzenie do teorii grafów

Algorytm Dijkstry daje nam wagi najkrótszych dróg łączących dany wierzchołek ze wszystkimi pozostałymi.

Wykonując ten algorytm n*(n-1)/2 razy otrzymalibyśmy macierz (tablicę) odległości pomiędzy każdą parą wierzchołków.

5.05.08 Dr inż. Krzysztof Lisiecki 232

Wprowadzenie do teorii grafów

Minimalne drzewa spinające

Jak zauważyliśmy wcześniej każdy graf spójny posiada drzewo spinające.

Z twierdzenia Cayley’a wiemy też, że graf pełny wymiaru n posiada nn-2 drzew spinających. Wobec tego dowolny graf prosty wymiaru n posiada co najwyżej nn-2 drzew spinających.

5.05.08 Dr inż. Krzysztof Lisiecki 233

Wprowadzenie do teorii grafów

W zagadnieniach, które można przedstawić za pomocą grafu z wagami istotne jest często znalezienie minimalnego drzewa spinającego, czyli drzewa o minimalnej wadze. Najbardziej znanymi algorytmami służącymi do rozwiązania tego problemu są:

- algorytm Kruskala, oraz

- algorytm Prima

5.05.08 Dr inż. Krzysztof Lisiecki 234

Wprowadzenie do teorii grafów

Oba algorytmy są algorytmami zachłannymi, to znaczy takimi algorytmami, które w każdym kolejnym kroku wykonują tę operację, która wydaje się w danym momencie najkorzystniejsza.

Algorytmy te polegają na wybieraniu krawędzi o najmniejszej wadze tak, aby nie utworzyć cyklu.

5.05.08 Dr inż. Krzysztof Lisiecki 235

Wprowadzenie do teorii grafów

Algorytmy znajdowania minimalnego drzewa spinającego nie są jednoznaczne, gdyż minimalne drzewo spinające nie musi być dokładnie jedno.

5.05.08 Dr inż. Krzysztof Lisiecki 236

Wprowadzenie do teorii grafów

Inaczej jest w grafach, których krawędzie mają różne wagi. Dla takich grafów można udowodnić następujące twierdzenie.

Twierdzenie.

W grafie spójnym ważonym, którego krawędziom przypisano różne wagi istnieje dokładnie jedno minimalne drzewo spinające.

5.05.08 Dr inż. Krzysztof Lisiecki 237

Wprowadzenie do teorii grafów

Algorytm Kruskala

Algorytm ten składa się z dwóch etapów. W pierwszym dokonujemy sortowania krawędzi według niemalejących wag, a w drugim dopiero wyznaczamy minimalne drzewo spinające. Zachłanność tego algorytmu polega na tym, że w każdym kolejnym kroku dodajemy do budowanego grafu krawędź o najmniejszej możliwej wadze.

5.05.08 Dr inż. Krzysztof Lisiecki 238

Wprowadzenie do teorii grafów

Budowane minimalne drzewo spinające jest najpierw lasem ponieważ na początku działania algorytmu tworzymy las złożony z samych tylko wierzchołków grafu wyjściowego.

Czasami taki las dopiero w końcowej fazie działania algorytmu staje się drzewem.

5.05.08 Dr inż. Krzysztof Lisiecki 239

Wprowadzenie do teorii grafów

Teraz z posortowanego zbioru wszystkich krawędzi wybieramy krawędź o najmniejszej wadze. Jeśli jest ich kilka, to wybieramy dowolną. Dołączamy tę krawędź do budowanego drzewa.

Następnie, spośród pozostałych krawędzi grafu wybieramy krawędź o najmniejszej wadze i również ją dołączamy.

5.05.08 Dr inż. Krzysztof Lisiecki 240

Wprowadzenie do teorii grafów

Przy wyborze trzeciej i następnych krawędzi poza najmniejszą wagą musimy zwracać uwagę na fakt, czy wybrana krawędź nie spowoduje utworzenia cyklu.

Krawędź o najmniejszej wadze, której dołączenie do grafu nie spowoduje utworzenia w nim cyklu nazywać będziemy krawędzią bezpieczną.

5.05.08 Dr inż. Krzysztof Lisiecki 241

Wprowadzenie do teorii grafów

Krawędzi bezpiecznych może być w danym momencie działania algorytmu wiele i zbiór tych krawędzi zmienia się w trakcie działania algorytmu.

Powyższe postępowanie kontynuujemy do momentu, gdy w posortowanym zbiorze krawędzi nie będzie już krawędzi bezpiecznych.

5.05.08 Dr inż. Krzysztof Lisiecki 242

Wprowadzenie do teorii grafów

Przykład

Znaleść drzewo spinające grafu spójnego stosując algorytm Kruskala.

5.05.08 Dr inż. Krzysztof Lisiecki 243

Wprowadzenie do teorii grafów

AC AB CD CE AE DE CG EG EF FG DF BF

1 2 2 2 3 3 4 4 5 5 6 7

Na początku porządkujemy krawędzie grafu według niemalejących wag.

5.05.08 Dr inż. Krzysztof Lisiecki 244

Wprowadzenie do teorii grafów

Oznaczmy budowane minimalne drzewo spinające przez T.

Oczywiście na początku działania algorytmu T jest grafem pustym – lasem złożonym z 12. drzew.

5.05.08 Dr inż. Krzysztof Lisiecki 245

Wprowadzenie do teorii grafów

Działanie algorytmu rozpoczynamy od dołączenia do zbioru T krawędzi o najmniejszej wadze, czyli krawędzi AC.

Krok 1. Zbiór T=AC

5.05.08 Dr inż. Krzysztof Lisiecki 246

Wprowadzenie do teorii grafów

Krok 2. Zbiór T=AC, CD

5.05.08 Dr inż. Krzysztof Lisiecki 247

Wprowadzenie do teorii grafów

Krok 3. Zbiór T=AC, CD, CE.

5.05.08 Dr inż. Krzysztof Lisiecki 248

Wprowadzenie do teorii grafów

Krok 4. Zbiór T=AC, CD, CE, AB.

5.05.08 Dr inż. Krzysztof Lisiecki 249

Wprowadzenie do teorii grafów

Krok 5. Zbiór T=AC, CD, CE, AB, CG.

5.05.08 Dr inż. Krzysztof Lisiecki 250

Wprowadzenie do teorii grafów

Krok 6. Zbiór T=AC, CD, CE, AB, CG, EF.

5.05.08 Dr inż. Krzysztof Lisiecki 251

Wprowadzenie do teorii grafów

Algorytm Prima

W odróżnieniu od algorytmu Kruskala algorytm Prima nie wymaga sortowania krawędzi według wag.

Konieczne jest tylko arbitralne wybranie wierzchołka startowego.

5.05.08 Dr inż. Krzysztof Lisiecki 252

Wprowadzenie do teorii grafów

Zwykle wybieramy wierzchołek najbardziej „wysunięty” na lewo i dołączając kolejne krawędzie przechodzimy na prawo przez kolejne wierzchołki.

Wierzchołek ten jest „zaczynem” budowanego minimalnego drzewa spinającego.

5.05.08 Dr inż. Krzysztof Lisiecki 253

Wprowadzenie do teorii grafów

Działanie algorytmu polega na kolejnym dołączaniu do budowanego drzewa jednej z bezpiecznych krawędzi, to znaczy takich, które sąsiadują z wierzchołkami aktualnego drzewa i nie tworzą cyklu.

W odróżnieniu od algorytmu Kruskala, w trakcie działania algorytmu Prima konstruowane drzewo nigdy nie jest lasem.

5.05.08 Dr inż. Krzysztof Lisiecki 254

Wprowadzenie do teorii grafów

Spośród bezpiecznych krawędzi sąsiadujących z wierzchołkami dołączonymi już do drzewa, dołączamy do niego krawędź o najmniejszej wadze.

Działanie algorytmu kończymy, gdy zbiór bezpiecznych krawędzi jest pusty.

5.05.08 Dr inż. Krzysztof Lisiecki 255

Wprowadzenie do teorii grafów

Może to oznaczać, że:

1) otrzymane drzewo zawiera wszystkie wierzchołki grafu wyjściowego i jest minimalnym drzewem spinającym naszego grafu, lub

2) otrzymane drzewo nie zawiera wszystkich wierzchołków grafu wyjściowego, co oznacza, że graf nie jest spójny, a otrzymane drzewo jest minimalnym drzewem spinającym jednej ze składowych spójnych grafu wyjściowego.

5.05.08 Dr inż. Krzysztof Lisiecki 256

Wprowadzenie do teorii grafów

Uwaga:

Algorytm Prima można zmodyfikować tak, aby działał również dla grafów, które nie są spójne a jego działanie dawało w wyniku minimalny las spinający grafu.

5.05.08 Dr inż. Krzysztof Lisiecki 257

Wprowadzenie do teorii grafów

Przykład

Znajdziemy drzewo spinające grafu spójnego stosując algorytm Prima.

5.05.08 Dr inż. Krzysztof Lisiecki 258

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 259

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 260

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 261

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 262

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 263

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 264

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 265

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 266

Wprowadzenie do teorii grafów

Problem kolorowania map pojawił się w roku 1852, gdy niejaki Francis Guthrie próbował pokolorować mapę przedstawiającą hrabstwa w Anglii. Zadał on sobie pytanie:

Jaka jest najmniejsza liczba barw wystarczająca do pokolorowania mapy przedstawiającej wiele hrabstw tak, aby żadne dwa hrabstwa mające wspólną granicę nie były oznaczone tą samą barwą?

5.05.08 Dr inż. Krzysztof Lisiecki 267

Wprowadzenie do teorii grafów

Hipoteza postawiona przez Guthrie

wystarczą cztery kolory

trafiła do de Morgana (tego „od praw de Morgana”, a następnie do Cayley’a (1878).

5.05.08 Dr inż. Krzysztof Lisiecki 268

Wprowadzenie do teorii grafów

Pierwszy pełny i poprawny dowód pojawił się dopiero w roku 1977 (Appel i Haken), czyli 125 lat od postawienia problemu i sformułowania hipotezy!

5.05.08 Dr inż. Krzysztof Lisiecki 269

Wprowadzenie do teorii grafów

Przykład mapy, której nie da się pokolorować za pomocą trzech barw

5.05.08 Dr inż. Krzysztof Lisiecki 270

Wprowadzenie do teorii grafów

Definicja

Grafem silnie spójnym nazywamy digraf (graf skierowany), w którym dla każdej pary wierzchołków istnieje łącząca je droga.

Wniosek

Każdy graf spójny (nieskierowany) jest silnie spójny.

5.05.08 Dr inż. Krzysztof Lisiecki 271

Wprowadzenie do teorii grafów

Przykład grafu silnie spójnego

5.05.08 Dr inż. Krzysztof Lisiecki 272

Wprowadzenie do teorii grafów

Definicja

Silnie spójną składową digrafu nazywamy największy silnie spójny podgraf tego digrafu.

5.05.08 Dr inż. Krzysztof Lisiecki 273

Wprowadzenie do teorii grafów

Graf i jego silnie spójne składowe

5.05.08 Dr inż. Krzysztof Lisiecki 274

Wprowadzenie do teorii grafów

Rozważmy teraz relację ℜ określoną w zbiorze wierzchołków digrafu w następujący sposób:

„wierzchołek X w relacji z wierzchołkiem Y, gdy istnieje droga łącząca X z Y oraz droga łącząca Y z X.”

5.05.08 Dr inż. Krzysztof Lisiecki 275

Wprowadzenie do teorii grafów

Tak określona relacja jest relacja równoważności, tzn. jest zwrotna, symetryczna i przechodnia.

Można udowodnić, że klasy abstrakcji tak określonej relacji ℜ są zbiorami wierzchołków silnie spójnych składowych digrafu.

5.05.08 Dr inż. Krzysztof Lisiecki 276

Wprowadzenie do teorii grafów

Definicja

Zbiór tych krawędzi grafu, których usunięcie spowoduje zwiększenie liczby składowych spójnych nazywamy zbiorem rozspajającym grafu G.

Przykładem zbioru rozspajającego grafu jest każdy most.

5.05.08 Dr inż. Krzysztof Lisiecki 277

Wprowadzenie do teorii grafów

Definicja

Rozcięciem grafu nazywamy każdy zbiór rozspajający, którego żaden podzbiór właściwy nie jest zbiorem rozspajającym.

5.05.08 Dr inż. Krzysztof Lisiecki 278

Wprowadzenie do teorii grafów

Przykłady rozcięć

a, b,c, c,d,e, e,f,g, c,d,f,g

5.05.08 Dr inż. Krzysztof Lisiecki 279

Wprowadzenie do teorii grafów

Definicja

Spójnością krawędziową grafu spójnego G nazywamy liczbę λ(G) równą liczności najmniej licznego rozcięcia grafu G.

5.05.08 Dr inż. Krzysztof Lisiecki 280

Wprowadzenie do teorii grafów

Twierdzenie

Spójność krawędziowa grafu spójnego G nie może przekroczyć stopnia wierzchołka o najmniejszym stopniu w grafie.

5.05.08 Dr inż. Krzysztof Lisiecki 281

Wprowadzenie do teorii grafów

Definicja

Graf G nazywamy k-spójnym krawędziowo, jeżeli λ(G) k≥

5.05.08 Dr inż. Krzysztof Lisiecki 282

Wprowadzenie do teorii grafów

Graf 1-spójny krawędziowo

Graf 2-spójny krawędziowo

5.05.08 Dr inż. Krzysztof Lisiecki 283

Wprowadzenie do teorii grafów

Definicja

Zbiorem rozdzielającym grafu spójnego G nazywamy zbiór wierzchołków tego grafu, których usunięcie wraz z krawędziami z nimi incydentnymi powoduje, że graf przestaje być spójny.

Zbiór rozdzielający składający się z jednego tylko wierzchołka nazywamy wierzchołkiem rozcinającym.

5.05.08 Dr inż. Krzysztof Lisiecki 284

Wprowadzenie do teorii grafów

Graf i jego zbiór rozdzielający (wierzchołki x i y). Kolorem szarym zaznaczone są krawędzie incydentne z wierzchołkami zbioru rozdzielającymi.

5.05.08 Dr inż. Krzysztof Lisiecki 285

Wprowadzenie do teorii grafów

Graf i jego wierzchołek rozcinający (x). Kolorem szarym zaznaczone są krawędzie incydentne z wierzchołkami rozdzielającym.

5.05.08 Dr inż. Krzysztof Lisiecki 286

Wprowadzenie do teorii grafów

Definicja

Spójnością wierzchołkową grafu spójnego G, który nie jest pełny, nazywamy liczbę κ(G) równą liczności najmniej licznego rozcięcia grafu G.

5.05.08 Dr inż. Krzysztof Lisiecki 287

Wprowadzenie do teorii grafów

Definicja

Graf nazywamy k-spójnym wierzchołkowo, gdy κ(G) k≥

Twierdzenie

W dowolnym grafie spójnym κ(G) λ(G). ≤

5.05.08 Dr inż. Krzysztof Lisiecki 288

Wprowadzenie do teorii grafów

Twierdzenie

Maksymalna spójność wierzchołkowa w grafie wymiaru n, posiadającym m krawędzi jest równa całkowitej części liczby

nm2

5.05.08 Dr inż. Krzysztof Lisiecki 289

Wprowadzenie do teorii grafów

Dowód:Niech oznacza spójność krawędziową grafu G. Istnieje zatem zbiór rozspajający S posiadający krawędzi. Niech S dzieli wierzchołki grafu na podzbiory V1 oraz V2.

Przez usunięcie co najwyżej wierzchołków z V1 (lub V2), do których krawędzie ze zbioru rozspajającego są incydentne usuniemy cały zbiór S.

c.n.u.

5.05.08 Dr inż. Krzysztof Lisiecki 290

Wprowadzenie do teorii grafów

κ(G)

Wniosek

W dowolnym spójnym grafie wymiaru n, posiadającym m krawędzi prawdziwa jest nierówność λ(G)

≤ λ(G)

≤nm2

5.05.08 Dr inż. Krzysztof Lisiecki 291

Wprowadzenie do teorii grafów

Definicja

Graf nazywamy k-spójnym, jeżeli jego spójność wierzchołkowa wynosi k.

5.05.08 Dr inż. Krzysztof Lisiecki 292

Wprowadzenie do teorii grafów

Twierdzenie

Graf spójny jest k-spójny wtedy i tylko wtedy, gdy każda para jego wierzchołków jest połączona przez k lub więcej wzajemnie nie przecinających się dróg, a co najmniej jedna para wierzchołków jest połączona przez dokładnie k takich dróg.

5.05.08 Dr inż. Krzysztof Lisiecki 293

Wprowadzenie do teorii grafów

Definicja

Dwie drogi w grafie nazywamy rozłącznymi krawędziowo, jeżeli nie mają wspólnych krawędzi, choć mogą się przecinać.

5.05.08 Dr inż. Krzysztof Lisiecki 294

Wprowadzenie do teorii grafów

Twierdzenie

Spójność krawędziowa grafu wynosi k wtedy i tylko wtedy, gdy każda para wierzchołków w tym grafie połączona jest przez k lub więcej dróg rozłącznych krawędziowo, a co najmniej jedna para wierzchołków jest połączona przez dokładnie k takich dróg.

5.05.08 Dr inż. Krzysztof Lisiecki 295

Wprowadzenie do teorii grafów

Definicja

Pokolorowaniem (właściwym) obszarów wyznaczonych przez graf nazywamy takie przyporządkowanie obszarom kolorów, aby żadne dwa sąsiednie obszary nie miały tej samej barwy.

5.05.08 Dr inż. Krzysztof Lisiecki 296

Wprowadzenie do teorii grafów

Definicja

Mapą nazywamy każdy 3-spójny graf planarny.

Twierdzenie (o czterech barwach)

Każdą mapę można pokolorować właściwie używając co najwyżej czterech kolorów.

5.05.08 Dr inż. Krzysztof Lisiecki 297

Wprowadzenie do teorii grafów

Przykład

5.05.08 Dr inż. Krzysztof Lisiecki 298

Wprowadzenie do teorii grafów

Twierdzenie

Mapę można pokolorować dwoma kolorami wtedy i tylko wtedy, gdy istnieje w niej cykl Eulera.

5.05.08 Dr inż. Krzysztof Lisiecki 299

Wprowadzenie do teorii grafów

Przykład

5.05.08 Dr inż. Krzysztof Lisiecki 300

Wprowadzenie do teorii grafów

Kolorowanie grafu to także kolorowanie wierzchołków i krawędzi.

Istnieje szeroka gama zastosowań zarówno kolorowania wierzchołków jak i krawędzi:

•podział logiki w komputerach

•problem ułożenia planu lekcji w szkole

•teoria kodowania

•logistyce

5.05.08 Dr inż. Krzysztof Lisiecki 301

Wprowadzenie do teorii grafów

Definicja

Graf prosty nazwiemy k-kolorowalnym, gdy istnieje funkcja przyporządkowująca każdemu wierzchołkowi jeden z k kolorów tak, aby każdym dwóm sąsiadującym wierzchołkom przyporządkowane były różne kolory.

5.05.08 Dr inż. Krzysztof Lisiecki 302

Wprowadzenie do teorii grafów

Uwaga:Zajmując się kolorowaniem grafu rozpatrujemy tylko grafy spójne, gdyż w przypadku grafu, który nie jest spójny kolory użyte do pokolorowania jednej składowej spójnej nie mają wpływu na kolory, których użyjemy do pokolorowania innej składowej.

Oczywiście, liczba kolorów potrzebna do pokolorowania całego grafu jest równa maksimum spośród liczb kolorów użytych do pokolorowania jego składowych spójnych.

5.05.08 Dr inż. Krzysztof Lisiecki 303

Wprowadzenie do teorii grafów

Definicja

Liczbą chromatyczną grafu nazywamy k,jeżeli graf jest k-kolorowalny i jednocześnie nie jest (k-1)-kolorowalny. Liczbę chromatyczna grafu G oznaczamy χ(G) .

5.05.08 Dr inż. Krzysztof Lisiecki 304

Wprowadzenie do teorii grafów

Przykład

Liczba chromatyczna poniższego grafu wynosi 3.

5.05.08 Dr inż. Krzysztof Lisiecki 305

Wprowadzenie do teorii grafów

Przykład

Liczba chromatyczna poniższego grafu wynosi 4.

5.05.08 Dr inż. Krzysztof Lisiecki 306

Wprowadzenie do teorii grafów

Twierdzenie

Liczba chromatyczna grafu pełnego wymiaru n jest równa n, zaś grafu pustego jest równa 1.

5.05.08 Dr inż. Krzysztof Lisiecki 307

Wprowadzenie do teorii grafów

Twierdzenie

Graf wymiaru składający się z jednego tylko cyklu ma liczbę chromatyczną

2, gdy n jest liczbą parzysta,

3, gdy n jest liczą nieparzystą.

5.05.08 Dr inż. Krzysztof Lisiecki 308

Wprowadzenie do teorii grafów

Twierdzenie

Liczba chromatyczna drzewa składającego się z co najmniej dwóch wierzchołków jest równa 2.

5.05.08 Dr inż. Krzysztof Lisiecki 309

Wprowadzenie do teorii grafów

TwierdzenieLiczba chromatyczna dowolnego grafu prostego o m krawędziach spełnia nierówność

412

21 ++≤ mG)(χ

5.05.08 Dr inż. Krzysztof Lisiecki 310

Wprowadzenie do teorii grafów

Przykład

Kolorowanie wierzchołków grafu

5.05.08 Dr inż. Krzysztof Lisiecki 311

Wprowadzenie do teorii grafów

Przykład (zastosowanie do układania planu zajęć 1)

Mamy 3 przedmioty obowiązkowe a, b, c oraz 4 przedmioty do wyboru:d, e, f, g

Chcemy ułożyć plan tak, aby w tym samym czasie nie odbywały się przedmioty, na które powinien chodzić student

5.05.08 Dr inż. Krzysztof Lisiecki 312

Wprowadzenie do teorii grafów

Przykład (zastosowanie do układania planu zajęć 1)

Rysujemy graf, w którym wierzchołki oznaczają przedmioty, a krawędzie łączą wierzchołki odpowiadające przedmiotom, które nie mogą się odbywać w tym samym czasie

5.05.08 Dr inż. Krzysztof Lisiecki 313

Wprowadzenie do teorii grafów

Przykład (zastosowanie do układania planu zajęć 1)

Liczba chromatyczna narysowanego grafu jest równa liczbie różnych terminów zajęć jest koniecznych, aby zajęcie się nie pokrywały.

4=)(Gχ

5.05.08 Dr inż. Krzysztof Lisiecki 314

Wprowadzenie do teorii grafów

Przykład (zastosowanie do układania planu zajęć 2)

Mamy 3 przedmioty obowiązkowe a, b, c oraz 4 przedmioty do wyboru:d, e, f, g, przy czym każdy student musi wybrać jeden z przedmiotów d lub e oraz jeden z przedmiotów f lub g.

Chcemy ułożyć plan tak, aby w tym samym czasie nie odbywały się przedmioty, na które powinien chodzić student

5.05.08 Dr inż. Krzysztof Lisiecki 315

Wprowadzenie do teorii grafów

Przykład (zastosowanie do układania planu zajęć 2)

Rysujemy graf, w którym wierzchołki oznaczają przedmioty, a krawędzie łączą wierzchołki odpowiadające przedmiotom, które nie mogą się odbywać w tym samym czasie

5.05.08 Dr inż. Krzysztof Lisiecki 316

Wprowadzenie do teorii grafów

Przykład (zastosowanie do układania planu zajęć 2)

Liczba chromatyczna narysowanego grafu jest równa liczbie różnych terminów zajęć jest koniecznych, aby zajęcie się nie pokrywały.

5=)(Gχ

5.05.08 Dr inż. Krzysztof Lisiecki 317

Wprowadzenie do teorii grafów

Przykład (rozsadzenie gości na przyjęciu 1)

Na przyjęcie przyjdzie ośmioro gości:Anna, Ewa, Maria, Zofia, Jan, Marcin, Tomek i Stefan.

Wiemy, że :Ewa nie lubi się ze Stefanem, Zofia z Marią i Tomkiem, Maria z Janem, Jan z Marcinem, a Marcin ze Stefanem.

Ile trzeba przygotować stolików, aby nielubiące się osoby nie siedziały przy tym samym stoliku?

5.05.08 Dr inż. Krzysztof Lisiecki 318

Wprowadzenie do teorii grafów

Przykład (rozsadzenie gości na przyjęciu 1)

Rysujemy graf, w którym wierzchołki oznaczają gości, a krawędzie łączą wierzchołki odpowiadające osobom, które się nie lubią.

5.05.08 Dr inż. Krzysztof Lisiecki 319

Wprowadzenie do teorii grafów

Przykład (rozsadzenie gości na przyjęciu 1)

Liczba chromatyczna narysowanego grafu jest równa liczbie potrzebnych stolików.

2=)(Gχ

5.05.08 Dr inż. Krzysztof Lisiecki 320

Wprowadzenie do teorii grafów

Przykład (rozsadzenie gości na przyjęciu 1)

5.05.08 Dr inż. Krzysztof Lisiecki 321

Wprowadzenie do teorii grafów

Przykład (rozsadzenie gości na przyjęciu 2)

Na przyjęcie przyjdzie ośmioro gości:Anna, Ewa, Maria, Zofia, Jan, Marcin, Tomek i Stefan.

Wiemy, że :Ewa nie lubi się ze Stefanem i z Marcinem,Zofia z Marią i Tomkiem, Maria z Janem, Jan z Marcinem, a Marcin ze Stefanem.

Ile trzeba przygotować stolików, aby nielubiące się osoby nie siedziały przy tym samym stoliku?

5.05.08 Dr inż. Krzysztof Lisiecki 322

Wprowadzenie do teorii grafów

Przykład (rozsadzenie gości na przyjęciu 2)

Rysujemy graf, w którym wierzchołki oznaczają gości, a krawędzie łączą wierzchołki odpowiadające osobom, które się nie lubią.

5.05.08 Dr inż. Krzysztof Lisiecki 323

Wprowadzenie do teorii grafów

Przykład (rozsadzenie gości na przyjęciu 2)

Liczba chromatyczna narysowanego grafu jest równa liczbie potrzebnych stolików.

3=)(Gχ

5.05.08 Dr inż. Krzysztof Lisiecki 324

Wprowadzenie do teorii grafów

Przykład (rozsadzenie gości na przyjęciu 2)

5.05.08 Dr inż. Krzysztof Lisiecki 325

Wprowadzenie do teorii grafów

Definicja

Graf nazywamy k-kolorowalnym krawędziowo, jeśli można pokolorować jego krawędzie k kolorami tak, aby żadne dwie sąsiednie krawędzie nie miały tego samego koloru.

5.05.08 Dr inż. Krzysztof Lisiecki 326

Wprowadzenie do teorii grafów

Definicja

Indeksem chromatycznym grafu nazywamy liczbę k, jeżeli graf jest k-kolorowalny krawędziowo i jednocześnie nie jest (k-1)-kolorowalny krawędziowo.

Indeks chromatyczny grafu G oznaczamy χ’(G).

5.05.08 Dr inż. Krzysztof Lisiecki 327

Wprowadzenie do teorii grafów

Przykład

Indeks chromatyczny grafu z rysunku jest równy 3.

5.05.08 Dr inż. Krzysztof Lisiecki 328

Wprowadzenie do teorii grafów

Twierdzenie Vizinga (1964).

Indeks chromatyczny χ’(G) grafu G , w którym najwyższy stopień wierzchołka wynosi p, spełnia nierówność

1+≤ pχ’(G)≤p

5.05.08 Dr inż. Krzysztof Lisiecki 329

Wprowadzenie do teorii grafów

Drogą Hamiltona nazywamy drogę, który przechodzi przez każdy wierzchołek grafu dokładnie jeden raz

Cyklem Hamiltona nazywamy cykl, który przechodzi przez każdy wierzchołek grafu dokładnie jeden raz

5.05.08 Dr inż. Krzysztof Lisiecki 330

Wprowadzenie do teorii grafów

Grafem półhamiltonowskim nazywamy graf, w którym istnieje droga przechodząca przez każdy wierzchołek grafu.

Grafem hamiltonowskim nazywamy graf, w którym istnieje cykl Hamiltona.

5.05.08 Dr inż. Krzysztof Lisiecki 331

Wprowadzenie do teorii grafów

Twierdzenie (Ore, 1960)

Jeżeli graf prosty ma n wierzchołków, oraz

dla każdej pary wierzchołków niesąsiednich, to jest hamiltonowski.

nXX ji ≥+ )deg()deg(3≥n

5.05.08 Dr inż. Krzysztof Lisiecki 332

Wprowadzenie do teorii grafów

Twierdzenie (Dirac, 19552)

Jeżeli graf prosty ma n, wierzchołków oraz

dla każdego wierzchołka, to jest hamiltonowski.

3≥n

2nX i ≥)deg(

5.05.08 Dr inż. Krzysztof Lisiecki 333

Wprowadzenie do teorii grafów

Twierdzenie

Jeżeli graf prosty ma n wierzchołków, oraz co najmniej

krawędzi, to jest hamiltonowski.

3≥n

22121 +−− ))(( nn

5.05.08 Dr inż. Krzysztof Lisiecki 334

Wprowadzenie do teorii grafów

Kod Graya

Kodem Graya długości n nazywamy ciąg wszystkich różnych ciągów n-wyrazowych, których wyrazami są liczby 0 lub 1 i które różnią się od siebie dokładnie jedną cyfrą.

Ciągów takich jest n2

5.05.08 Dr inż. Krzysztof Lisiecki 335

Wprowadzenie do teorii grafów

Jeśli każdemu z ciągów Graya długości n, przypiszemy wierzchołki pewnego grafu wymiaru i połączymy krawędzią te ciągi, które różnią się od siebie dokładnie jedna cyfrą, to otrzymamy cykl Hamiltona.

n2

5.05.08 Dr inż. Krzysztof Lisiecki 336

Wprowadzenie do teorii grafów

Twierdzenie

Jeżeli w grafie prostym najwyższy stopień

wierzchołka wynosi n, to graf ten jest n+1

kolorowalny wierzchołkowo.

5.05.08 Dr inż. Krzysztof Lisiecki 337

Wprowadzenie do teorii grafów

Grafem dwudzielnym nazywamy graf (G,X), w którym zbiór wierzchołków X można podzielić na dwa rozłączne i niepuste podzbiory X1 oraz X2 tak, że każda krawędź w grafie łączy wierzchołek z jednego podzbioru z wierzchołkiem drugiego podzbioru.

5.05.08 Dr inż. Krzysztof Lisiecki 338

Wprowadzenie do teorii grafów

Grafy dwudzielne

5.05.08 Dr inż. Krzysztof Lisiecki 339

Wprowadzenie do teorii grafów

Grafy dwudzielne

5.05.08 Dr inż. Krzysztof Lisiecki 340

Wprowadzenie do teorii grafów

Przykład

Grafe dwudzielnym jest graf kodu Graya (dzielimy zbiór wierzchołków na dwa podzbiory, w których wierzchołki mają parzystą bądź nieparzystą liczbę jedynek.

5.05.08 Dr inż. Krzysztof Lisiecki 341

Wprowadzenie do teorii grafów

Graf dwudzielny nazywamy pełnym grafem dwudzielnym, jeśli każdy wierzchołek zbioru X1 jest połączony dokładnie jedną krawędzią z każdym wierzchołkiem zbioru X2.

5.05.08 Dr inż. Krzysztof Lisiecki 342

Wprowadzenie do teorii grafów

Grafy pełne dwudzielne

5.05.08 Dr inż. Krzysztof Lisiecki 343

Wprowadzenie do teorii grafów

Dla dowolnych liczb naturalnych m i n wszystkie pełne grafy dwudzielne takie, że |X1|=m oraz |X2|=n są izomorficzne.

Grafy takie oznaczamy Km,n

Łatwo zauważyć, że grafy Km,n oraz Kn,m są izomorficzne.

5.05.08 Dr inż. Krzysztof Lisiecki 344

Wprowadzenie do teorii grafów

Twierdzenie

Jeżeli graf dwudzielny jest hamiltonowski, to liczba wierzchołków jednego podzbioru jest równa liczbie wierzchołków drugiego podzbioru.

Jeżeli graf jest półhamiltonowski, to liczby te różnią się co najwyżej o jeden.

5.05.08 Dr inż. Krzysztof Lisiecki 345

Wprowadzenie do teorii grafów

Uwaga:

Dla pełnych grafów dwudzielnych wymiaru co najmniej 3, prawdziwe jest również twierdzenie odwrotne.

5.05.08 Dr inż. Krzysztof Lisiecki 346

Wprowadzenie do teorii grafów

Def. Listą nazywamy uporządkowany ciąg elementów

Przykładem listy jest tablica jednowymiarowa

5.05.08 Dr inż. Krzysztof Lisiecki 347

Wprowadzenie do teorii grafów

Często wygodniej jest posługiwać się listą bez konieczności odwoływania się do indeksów.

Przykładami takich list są kolejki i stosy.

5.05.08 Dr inż. Krzysztof Lisiecki 348

Wprowadzenie do teorii grafów

Def. Kolejką nazywamy listę z trzema operacjami na jej elementach:

2. dodawania nowego elementu,

3. zdejmowania pierwszego elementu,

4. sprawdzania, czy kolejka jest pusta

(FIFO – first in first out)

5.05.08 Dr inż. Krzysztof Lisiecki 349

Wprowadzenie do teorii grafów

Def. Stosem nazywamy listę z trzema operacjami na jej elementach:

2. dodawania nowego elementu na wierzch stosu,

3. zdejmowania elementu z wierzchu stosu,

4. sprawdzania, czy stos jest pusty

(LIFO – last in first out)

5.05.08 Dr inż. Krzysztof Lisiecki 350

Wprowadzenie do teorii grafów

Implementacja kolejki

Tworzymy tablicę KOLEJKA[0..max] oraz dwie zmienne PoczątekKolejki i KoniecKolejki.

Zmienna PoczątekKolejki wskazuje pierwszy element kolejki, zaś zmienna KoniecKolejki wskazuje pierwsze wolne miejsce poza kolejką.

5.05.08 Dr inż. Krzysztof Lisiecki 351

Wprowadzenie do teorii grafów

Kolejka jest pusta, jeżeli KoniecKolejki=PoczątekKolejki

Operacje włożenia nowego elementu x do kolejki implementujemy za pomocą instrukcji:

KOLEJKA[KoniecKolejki]:=x

KoniecKolejki:=KoniecKolejki+1

5.05.08 Dr inż. Krzysztof Lisiecki 352

Wprowadzenie do teorii grafów

Operacje zdjęcia elementu z KOLEJKI implementujemy za pomocą instrukcji:

x:=KOLEJKA[PoczątekKolejki];

PoczątekKolejki:=PoczątekKolejki+1

Operacja zdejmowania elementu z kolejki może być wykonana tylko wtedy gdy KoniecKolejkiPoczątekKolejki

5.05.08 Dr inż. Krzysztof Lisiecki 353

Wprowadzenie do teorii grafów

Implementacja stosu

Tworzymy tablicę STOS[0..max] oraz zmienną WierzchStosu

Zmienna WierzchStosu wskazuje na pierwsze wolne miejsce w tablicy STOS

5.05.08 Dr inż. Krzysztof Lisiecki 354

Wprowadzenie do teorii grafów

Operacje włożenia nowego elementu x na STOS implementujemy za pomocą instrukcji:

STOS[WierzchStosu]:=x

WierzchStosu:= WierzchStosu+1

Jeżeli wartość zmiennej WierzchStosu=max+1 to stos jest pełny i nie można na niego wkładać nowych elementów

5.05.08 Dr inż. Krzysztof Lisiecki 355

Wprowadzenie do teorii grafów

Operacje zdjęcia elementu z wierzchu STOSU implementujemy za pomocą instrukcji:

WierzchStosu:= WierzchStosu-1 x:=STOS[WierzchStosu]

Operację tę można wykonać, jeżeli stos nie jest pusty, czyli, gdy zmienna WierzchStosu>0

5.05.08 Dr inż. Krzysztof Lisiecki 356

Wprowadzenie do teorii grafów

Algorytm znajdowania drogi Hamiltona

Poniższy algorytm jest algorytmem z nawrotami z zastosowaniem stosu jako struktury danych.

5.05.08 Dr inż. Krzysztof Lisiecki 357

Wprowadzenie do teorii grafów

Dane wejściowe:

2. Graf (X,G), w którym X oznacza zbiór wierzchołków, a G zbiór krawędzi,

3. Wierzchołek początkowy

Dane wyjściowe:

Droga Hamiltona zaczynająca się od wierzchołka x lub informacja o jej braku

Xx ∈

5.05.08 Dr inż. Krzysztof Lisiecki 358

Wprowadzenie do teorii grafów

• Włóż x na stos

• Dopóki stos nie jest pusty, powtarzaj:* niech y będzie wierzchołkiem na wierzchu stosu* szukamy wierzchołka w o najniższym numerze, takiego, że - w jest połączone z y, - w nie wystepuje na stosie, - jeżeli w poprzedniej iteracji zdjęto ze stosu wierzchołek z, to numer w powinien być większy od numeru z

5.05.08 Dr inż. Krzysztof Lisiecki 359

Wprowadzenie do teorii grafów

Jeżeli takie w znajdziemy, to wkładamy w na stos, jeżeli wierzchołki na stosie tworzą już drogę Hamiltona, to koniec algorytmu – znaleziono drogę Hamiltona

Jeżeli takiego w nie znajdziemy, to zdejmujemy y ze stosu

• Jeżeli stos jest pusty i nie znaleziono drogi Hamiltona, tow grafie nie ma drogi Hamiltona.

5.05.08 Dr inż. Krzysztof Lisiecki 360

Wprowadzenie do teorii grafów

PrzykładSprawdzić, czy w

podanym grafie istnieje droga Hamiltona rozpoczynająca się w wierzchołku a

5.05.08 Dr inż. Krzysztof Lisiecki 361

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 362

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 363

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 364

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 365

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 366

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 367

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 368

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 369

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 370

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 371

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 372

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 373

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 374

Wprowadzenie do teorii grafów

Stos pusty – nie znaleziono drogi Hamiltona

5.05.08 Dr inż. Krzysztof Lisiecki 375

Wprowadzenie do teorii grafów

Przykład

Sprawdzić, czy w podanym grafie istnieje droga Hamiltona rozpoczynająca się w wierzchołku a

5.05.08 Dr inż. Krzysztof Lisiecki 376

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 377

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 378

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 379

Wprowadzenie do teorii grafów

Przykład

Sprawdzić, czy w podanym grafie istnieje droga Hamiltona rozpoczynająca się w wierzchołku a

5.05.08 Dr inż. Krzysztof Lisiecki 380

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 381

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 382

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 383

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 384

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 385

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 386

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 387

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 388

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 389

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 390

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 391

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 392

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 393

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 394

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 395

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 396

Wprowadzenie do teorii grafów

Stos pełny – znaleziono drogę Hamiltona

5.05.08 Dr inż. Krzysztof Lisiecki 397

Notacja asymptotyczna

Do szacowania złożoności czasowej algorytmów, czyli szacowania czasu pracy algorytmów używa się notacji asymptotycznej

Pozwala nam to podzielić problemy na:

•łatwo rozwiązywalne

•trudno rozwiązywalne

5.05.08 Dr inż. Krzysztof Lisiecki 398

Notacja asymptotyczna

Niech f i g będą dwiema funkcjami określonymi na zbiorze liczb naturalnych o wartościach w zbiorze liczb rzeczywistych dodatnich

0>∈→ xRxNgf ::,

5.05.08 Dr inż. Krzysztof Lisiecki 399

Notacja asymptotyczna

Mówimy, że funkcja g jest o duże od f, gdy istnieje dodatnia taka stała c oraz taka liczba naturalna N0, że dla dowolnego n> N0 zachodzi nierówność

)()( nfcng ⋅≤Zapisujemy ten fakt

))(()( nfOng =

5.05.08 Dr inż. Krzysztof Lisiecki 400

Notacja asymptotyczna

Przykład)( 44 352 nOnn =−+

gdyż dla dowolnego n

4444 752352 nnnnn =+≤−+

5.05.08 Dr inż. Krzysztof Lisiecki 401

Notacja asymptotyczna

Mówimy, że funkcja g jest o małe od f, gdy

0=+ ∞→ )(

)(limnfng

n

Zapisujemy ten fakt

))(()( nfong =

5.05.08 Dr inż. Krzysztof Lisiecki 402

Notacja asymptotyczna

Przykład)( 54 352 nonn =−+

gdyż

03525

4

=−++ ∞→ n

nnnlim

5.05.08 Dr inż. Krzysztof Lisiecki 403

Notacja asymptotyczna

Mówimy, że funkcja g jest omega duże od f, gdy istnieje dodatnia taka stała c oraz taka liczba naturalna N0, że dla dowolnego n> N0 zachodzi nierówność

)()( nfcng ⋅≥Zapisujemy ten fakt

))(()( nfng Ω=

5.05.08 Dr inż. Krzysztof Lisiecki 404

Notacja asymptotyczna

...... ≤≤≤≤≤≤ 323 nnnnn

nnn m dużych iedostateczn dlalog <2

42 ≥<< nnn nn dla!

5.05.08 Dr inż. Krzysztof Lisiecki 405

Notacja asymptotyczna

Twierdzenie

Każda z poniższych funkcji jest O od wszystkich funkcji na prawo od niej:

nn nnnnnnnnnnnn ,!,...,,,log,,,,...,log, 21 322

32 ⋅

5.05.08 Dr inż. Krzysztof Lisiecki 406

Notacja asymptotyczna

Twierdzenie

• Jeżeli f(n)=O(g(n)) i c jest stałą, to cf(n)=O(g(n)),

• Jeżeli f(n)=O(g(n)) i h(n)=O(g(n)), to f(n)+h(n)=O(g(n)),

• Jeżeli f(n)=O(a(n)) i g(n)=O(b(n)), to f(n)g(n)=O(a(n)g(n))),

• Jeżeli f(n)=O(g(n)) i g(n)=O(h(n)), to f(n)=O(h(n)).

5.05.08 Dr inż. Krzysztof Lisiecki 407

Notacja asymptotyczna

Twierdzenie

Dla dowolnych funkcji f(n) i g(n) mamy:

3. O(f(n))+O(g(n))=O(max|f(n)|,|g(n)|)

4. O(f(n))O(g(n))=O(f(n)g(n))

5.05.08 Dr inż. Krzysztof Lisiecki 408

Notacja asymptotyczna

Klasa złożoności to zbiór problemów obliczeniowych o podobnej złożoności obliczeniowej (problemy do których rozwiązania potrzebna jest podobna ilość zasobów) . Podobne określenia stosujemy do algorytmów.

5.05.08 Dr inż. Krzysztof Lisiecki 409

Notacja asymptotyczna

Problem P (ang. deterministic polynomial - deterministycznie wielomianowy) to problem, dla którego rozwiązanie można znaleźć w czasie wielomianowym.

5.05.08 Dr inż. Krzysztof Lisiecki 410

Notacja asymptotyczna

Przykłady

2. Znajdowanie najkrótszej drogi w grafie

3. Wyznaczanie minimalnego drzewa spinającego

4. Znajdowanie drogi Eulera

5. Algorytm sortowania bąbelkowego

5.05.08 Dr inż. Krzysztof Lisiecki 411

Notacja asymptotyczna

Problem NP (niedeterminstycznie wielomianowy, ang. nondeterministic polynomial) to problem decyzyjny, dla którego rozwiązanie można zweryfikować w czasie wielomianowym

5.05.08 Dr inż. Krzysztof Lisiecki 412

Wprowadzenie do teorii grafów

Oczywiście każdy problem P jest problemem NP, ale nie odwrotnie.

Jak dotąd nikomu nie udało się udowodnić, ani zaprzeczyć, że P=NP. Problem ten został sformułowany w roku 1971 i pozostaje otwarty do dziś

5.05.08 Dr inż. Krzysztof Lisiecki 413

Notacja asymptotyczna

Przykłady

2. Problem kliki

5.05.08 Dr inż. Krzysztof Lisiecki 414

Wprowadzenie do teorii grafów

Problem NP-zupełny (NPC) to problem, którego status nie jest znany, inaczej jest NP oraz jest NP-trudny (co najmniej tak trudny jak problem NP

5.05.08 Dr inż. Krzysztof Lisiecki 415

Wprowadzenie do teorii grafów

Przykłady

2. Znalezienie cyklu Hamiltona

3. Problem maksymalnej kliki

4. Problem izomorfizmu dwóch grafów

5.05.08 Dr inż. Krzysztof Lisiecki 416

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 417

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 418

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 419

Wprowadzenie do teorii grafów

5.05.08 Dr inż. Krzysztof Lisiecki 420

Wprowadzenie do teorii grup

Mówimy, że w zbiorze G określone jest działanie dwuargumentowe wewnętrzne, jeżeli określona jest funkcja

GGGf →×:

5.05.08 Dr inż. Krzysztof Lisiecki 421

Wprowadzenie do teorii grup

Uwaga:

Działanie dwuargumentowe wewnętrzne na parze zwykle oznaczamy , , lub

( ) Gba ∈, ba ba + ba ∗

5.05.08 Dr inż. Krzysztof Lisiecki 422

Wprowadzenie do teorii grup

Działanie nazywamy

łącznym, gdy dla dowolnych elementów zachodzi równość

przemiennym, gdy dla dowolnych elementów zachodzi równość

GGG →×:

Gcba ∈,, ( ) ( )cbacba =

Gcba ∈,,

abba =

5.05.08 Dr inż. Krzysztof Lisiecki 423

Wprowadzenie do teorii grup

5.05.08 Dr inż. Krzysztof Lisiecki 424

Wprowadzenie do teorii grup

5.05.08 Dr inż. Krzysztof Lisiecki 425

Wprowadzenie do teorii grup

5.05.08 Dr inż. Krzysztof Lisiecki 426

Wprowadzenie do teorii grup

5.05.08 Dr inż. Krzysztof Lisiecki 427

Wprowadzenie do teorii grup

5.05.08 Dr inż. Krzysztof Lisiecki 428

5.05.08 Dr inż. Krzysztof Lisiecki 429

5.05.08 Dr inż. Krzysztof Lisiecki 430

5.05.08 Dr inż. Krzysztof Lisiecki 431

5.05.08 Dr inż. Krzysztof Lisiecki 432

5.05.08 Dr inż. Krzysztof Lisiecki 433

Wprowadzenie do teorii grafów

Twierdzenie (Appel, Haken, 1976)

Każdy graf planarny prosty jest

4-kolorowalny wierzchołkowo.