background image

5.05.08

 Dr inż. Krzysztof Lisiecki

1

Wprowadzenie do teorii grafów

background image

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

background image

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

background image

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

5

32-36 p.

4,5

30-31 p.

4

27-29 p.

3,5

24-26 p.

3

18-23 p.

Wprowadzenie do teorii grafów

background image

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

background image

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?

background image

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?

background image

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

background image

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. 

background image

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ą

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

11

Wprowadzenie do teorii grafów

Schematycznie graf przedstawiamy w 

postaci rysunku. 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

12

Wprowadzenie do teorii grafów

background image

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)

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

14

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

15

Wprowadzenie do teorii grafów

Inne zastosowania

Analiza wzorów strukturalnych  

związków chemicznych
Analiza obwodów elektrycznych
Problemy kolorowania map 

(twierdzenie o czterech barwach)
Problem kojarzenia małżeństw

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

16

Wprowadzenie do teorii grafów

Krawędź łączącą wierzchołki X

i

  oraz X

j

  

będziemy zapisywać jako parę 
nieuporządkowaną {X

i

 , X

j

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

background image

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 X

i

  z 

wierzchołkiem X

j

  (od wierzchołka X

i

 do 

wierzchołka X

) będziemy zapisywać jako 

parę uporządkowaną (X

i

 , X

j

 ). 

background image

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. 

background image

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.

background image

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.

 

background image

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 .

background image

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)

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

23

Wprowadzenie do teorii grafów

Przykład podgrafu

background image

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. 

background image

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 K

n

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

26

Wprowadzenie do teorii grafów

Przykłady grafów zupełnych 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

27

Wprowadzenie do teorii grafów

Przykłady grafów zupełnych

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

28

Wprowadzenie do teorii grafów

Przykłady grafów zupełnych

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

30

Wprowadzenie do teorii grafów

Wymiarem grafu 

G nazywamy liczbę jego 

wierzchołków. Oznaczamy ją dim

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

32

Wprowadzenie do teorii grafów

Jeżeli do wierzchołka X

i

 „dochodzi” krawędź g

k

to mówimy, że wierzchołek X

i

 jest incydentny z 

krawędzią g

k

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

background image

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

background image

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 

X

i

 

oznaczać będziemy deg 

X

i

.

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

Wierzchołek izolowany ma stopień zero.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

35

Wprowadzenie do teorii grafów

Przykład

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

36

Wprowadzenie do teorii grafów

Jeśli graf  posiada m krawędzi oraz 

=

=

n

i

i

m

X

1

2

deg

{

}

n

X

X

X

,...,

1

=

to

background image

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. 

background image

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ń

.

 

background image

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 X

n

n

n

1

1

2

1

, ,

,...,

,

,

+

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

X

X

X g

g

G

n

n

1

1

1

,...,

,

,...,

+

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

40

Wprowadzenie do teorii grafów

Drogę  w grafie 

G nazywamy zamkniętą, gdy 

X

X

n

+

=

1

1

background image

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

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

43

Wprowadzenie do teorii grafów

Twierdzenie

Jeżeli droga zamknięta

 

{

}

X g X

X g X

n

n

1

1

2

1

, ,

,...,

,

,

jest długości co najmniej 3 i wierzchołki

 

X

X

n

1

,...,

są różne, to jest cyklem.

 

background image

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 X

n

n

n

1

1

2

1

, ,

,...,

,

,

+

(

,

)

X X

i

i

+

1

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

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

46

Wprowadzenie do teorii grafów

Poniżej widzimy graf o średnicy 4

 

background image

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  X

i

 z  wierzchołkiem  X

k

przypisuje pewna liczbę w(i,k).

background image

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 X

i

 z wierzchołkiem

X

k

 wówczas  przyjmujemy  w(i,k)=

,  chociaż  w 

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

.

background image

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

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

51

Wprowadzenie do teorii grafów

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

52

Wprowadzenie do teorii grafów

Waga poniższego grafu wynosi 28. 

background image

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. 

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

55

Wprowadzenie do teorii grafów

Graf o trzech spójnych składowych

background image

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

background image

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

+

k

n

k

n

m

k

n

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

58

Wprowadzenie do teorii grafów

Dla n=8 oraz k=3 mamy

15

5

m

Rys.1

Rys.2

background image

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

2

1

n

n

background image

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

1

1

n

n

m

n

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

61

Wprowadzenie do teorii grafów

Przykład

Dla n=4 mamy

6

3

m

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

62

Wprowadzenie do teorii grafów

Dwa grafy

 

(

)

1

1

1

G

,

=

G

oraz

(

)

2

2

2

G

,

=

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.

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

64

Wprowadzenie do teorii grafów

Przykład

Rys. a

Rys. b

background image

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

background image

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!

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

67

Wprowadzenie do teorii grafów

Przykład

Grafy nieizomorficzne spełniające warunki 1-4

background image

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. 

background image

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

background image

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.

 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

71

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

72

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

73

Wprowadzenie do teorii grafów

background image

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

75

Wprowadzenie do teorii grafów

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

76

Wprowadzenie do teorii grafów

Grafy platońskie – sześcian (heksaedr)

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

77

Wprowadzenie do teorii grafów

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

78

Wprowadzenie do teorii grafów

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

79

Wprowadzenie do teorii grafów

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

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

81

Wprowadzenie do teorii grafów

cr (

G). =1

background image

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

background image

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   krawędzi oraz  ścian, to

2

=

+

f

m

n

background image

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

background image

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

+

=

+

k

f

m

n

background image

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

background image

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)

background image

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

n

j

i

ij

a

=

,

]

[

A

której elementy określamy następująco

:

a

ij

jest liczbą krawędzi od wierzchołka 

X

j

background image

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

 

a

ij

=

0

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

background image

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, 

background image

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 

background image

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

n

j

i

ij

a

=

,

]

[

A

której elementy określamy następująco:

a

ij

jest liczbą łuków od wierzchołka 

X

j

X

i

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

94

Wprowadzenie do teorii grafów

Przykład

Graf nieskierowany i jego macierz sąsiedztwa

1

0

1

0

1

1

1

1

0

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

95

Wprowadzenie do teorii grafów

Przykład

Graf skierowany i jego macierz sąsiedztwa

0

0

1

2

1

0

1

0

0

background image

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

iem

wierzcholk

tym

i

z

incydentna

  

          

jest      

krawędź

ta

jeśli

,

0

1

j

a

ij

background image

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

background image

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,

background image

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,

background image

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

A

0

0

A

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

background image

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

k

A

0

0

0

0

0

0

0

0

A

0

0

0

0

A

2

1

background image

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.

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

104

Wprowadzenie do teorii grafów

Przykład

1

0

0

0

0

0

1

1

1

0

1

0

1

1

1

0

1

0

0

1

background image

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.

background image

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. 

background image

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

background image

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

background image

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ź

j

zawiera

          

          

          

ty

jeśli

,

0

1

cykl

i

a

ij

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

110

Wprowadzenie do teorii grafów

Przykład

Graf i jego cykle

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

111

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

112

Wprowadzenie do teorii grafów

1

0

0

0

0

0

0

1

0

1

0

1

0

1

0

0

1

1

0

0

0

1

1

0

Macierz cykli grafu

background image

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

background image

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,

background image

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

background image

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?

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

117

Wprowadzenie do teorii grafów

Ile jest dróg łączących 

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

b) 1,

c) 2,

d) 3.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

118

Wprowadzenie do teorii grafów

Twierdzenie

Jeżeli A jest macierzą grafu o wierzchołkach 

X

1

, X

2

,…,X

n 

, to element a

ij

  w macierzy A

m

 jest 

równy liczbie dróg długości m łączących 
wierzchołek X

i

 z wierzchołkiem X

j

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

119

Wprowadzenie do teorii grafów

=

1

0

1

0

1

1

1

1

0

A

=

2

1

1

1

2

1

1

1

2

2

A

=

3

2

3

2

3

3

3

3

2

3

A

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

121

Wprowadzenie do teorii grafów

Przykład drogi 

Eulera

{

}

6

6

5

5

4

4

3

3

2

1

1

2

3

7

6

8

1

X

g

X

g

X

g

X

g

X

g

X

g

X

g

X

g

X

,

,

,

,

,

,

,

,

,

,

,

,

,

,

,

,

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

122

Wprowadzenie do teorii grafów

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

123

Wprowadzenie do teorii grafów

Cyklem Eulera nazywamy 

zamkniętą drogę Eulera.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

124

Wprowadzenie do teorii grafów

Przykład
Cyklem Eulera 
jest droga

{

}

X g X g X g X g X g X g X g X

1

1

2

2

3

3

4

4

5

5

6

6

3

7

1

, ,

,

,

,

,

,

,

, ,

,

,

,

,

background image

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.

background image

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

127

Wprowadzenie do teorii grafów

Przykład grafu 

posiadającego 
cykl Eulera

background image

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 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

129

Wprowadzenie do teorii grafów

background image

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.

background image

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

background image

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. 

background image

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.

 

background image

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  

background image

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

136

Wprowadzenie do teorii grafów

Przykład

{

}

3

2

2

,

,

X

g

X

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

137

Wprowadzenie do teorii grafów

{

}

4

3

3

2

2

,

,

,

,

X

g

X

g

X

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

138

Wprowadzenie do teorii grafów

{

}

5

4

4

3

3

2

2

,

,

,

,

,

,

X

g

X

g

X

g

X

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

139

Wprowadzenie do teorii grafów

{

}

2

5

5

4

4

3

3

2

2

,

,

,

,

,

,

,

,

X

g

X

g

X

g

X

g

X

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

140

Wprowadzenie do teorii grafów

{

}

1

1

2

5

5

4

4

3

3

2

2

,

,

,

,

,

,

,

,

,

,

X

g

X

g

X

g

X

g

X

g

X

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

141

Wprowadzenie do teorii grafów

{

}

6

9

1

1

2

5

5

4

4

3

3

2

2

,

,

,

,

,

,

,

,

,

,

,

,

X

g

X

g

X

g

X

g

X

g

X

g

X

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

142

Wprowadzenie do teorii grafów

{

}

4

8

6

9

1

1

2

5

5

4

4

3

3

2

2

,

,

,

,

,

,

,

,

,

,

,

,

,

,

X

g

X

g

X

g

X

g

X

g

X

g

X

g

X

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

143

Wprowadzenie do teorii grafów

{

}

6

7

4

8

6

9

1

1

2

5

5

4

4

3

3

2

2

,

,

,

,

,

,

,

,

,

,

,

,

,

,

,

,

X

g

X

g

X

g

X

g

X

g

X

g

X

g

X

g

X

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

144

Wprowadzenie do teorii grafów

{

}

5

6

6

7

4

8

6

9

1

1

2

5

5

4

4

3

3

2

2

,

,

,

,

,

,

,

,

,

,

,

,

,

,

,

,

,

,

X

g

X

g

X

g

X

g

X

g

X

g

X

g

X

g

X

g

X

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

145

Wprowadzenie do teorii grafów

Animacja 1

Animacja 2

background image

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  X

i

 

oznaczamy  indegX

i

 .

background image

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  X

i

 

oznaczamy  outdegX

i

 .

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

148

Wprowadzenie do teorii grafów

Wniosek

Dla dowolnego wierzchołka X

i

 w grafie 

zorientowanym zachodzi równość 

in

X

out

X

X

i

i

i

deg

deg

deg

+

=

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

150

Wprowadzenie do teorii grafów

Graf, który nie posiada cyklu Eulera

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

151

Wprowadzenie do teorii grafów

Graf, który posiada cykl Eulera

background image

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   nie  zawierającym  cykli  o 
długości 4.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

153

Wprowadzenie do teorii grafów

 Twierdzenie.

Jeżeli  graf 

G=(X,G)  wymiaru   nie  zawiera 

cykli długości 4, to ilość krawędzi m spełnia 
nierówność

+

)

3

4

1

(

4

n

n

m

background image

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

)

21

1

(

2

3

)

3

6

4

1

(

4

6

+

=

+

m

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

155

Wprowadzenie do teorii grafów

Definicja.

Drzewem nazywamy graf spójny bez cykli.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

156

Wprowadzenie do teorii grafów

Definicja.

Lasem nazywamy graf bez cykli 

background image

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 

background image

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-

krawędzi

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

160

Wprowadzenie do teorii grafów

Definicja

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

161

Wprowadzenie do teorii grafów

Przykład

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

162

Wprowadzenie do teorii grafów

Definicja.

Dla grafu spójnego 

G=(X,G) każde drzewo  

G

T

=(X,T) takie, że

nazywamy drzewem spinającym grafu 

G.

G

T

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

164

Wprowadzenie do teorii grafów

Twierdzenie.

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

165

Wprowadzenie do teorii grafów

Twierdzenie (Cayley, 1889)

Graf pełny K

n

 (dla             ) ma  

n-2

 

różnych drzew spinających.

 

2

n

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

166

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

167

Wprowadzenie do teorii grafów

background image

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

169

Wprowadzenie do teorii grafów

Przykład

Waga drzewa przedstawionego na rysunku 
poniżej wynosi 21. 

background image

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

background image

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.

background image

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. 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

173

Wprowadzenie do teorii grafów

Przykład

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

174

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

175

Wprowadzenie do teorii grafów

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

177

Wprowadzenie do teorii grafó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. 

background image

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 . 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

179

Wprowadzenie do teorii grafów

Przeszukiwanie wszerz

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

180

Wprowadzenie do teorii grafów

Przeszukiwanie w głąb

background image

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

background image

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. 

background image

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

...,

,

,

, 3

2

1

background image

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. 

background image

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. 

background image

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. 

background image

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. 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

188

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

189

Wprowadzenie do teorii grafów

{b}

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

190

Wprowadzenie do teorii grafów

{b,a}

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

191

Wprowadzenie do teorii grafów

{b,a,e}

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

192

Wprowadzenie do teorii grafów

{b,a,e,f}

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

193

Wprowadzenie do teorii grafów

{b,a,e,f,c}

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

194

Wprowadzenie do teorii grafów

{b,a,e,f,c,d}

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

195

Wprowadzenie do teorii grafów

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

196

Wprowadzenie do teorii grafów

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

Listy puste - stop

background image

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. 

background image

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. 

background image

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łka
i przeszukiwanie kolejnego wierzchołka na 
liście sąsiedztwa. 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

200

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

201

Wprowadzenie do teorii grafów

{b}

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

202

Wprowadzenie do teorii grafów

{b,a}

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

203

Wprowadzenie do teorii grafów

{b,a,c}

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

204

Wprowadzenie do teorii grafów

{b,a,c,g}

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

205

Wprowadzenie do teorii grafów

{b,a,c,g,h}

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

206

Wprowadzenie do teorii grafów

{b,a,c,g,h,d}

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

207

Wprowadzenie do teorii grafów

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

208

Wprowadzenie do teorii grafów

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

Listy puste - stop

background image

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. 

background image

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.
 

background image

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ów

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

background image

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. 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

213

Wprowadzenie do teorii grafów

d(A)=0

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

214

Wprowadzenie do teorii grafów

krok 1

d(B)=min{d(B) ; d(A)+5}= min{

 ; 5}=5 

 
d(F)=min{d(F) ; d(A)+3}= min{

 ; 3}=3 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

215

Wprowadzenie do teorii grafów

krok 2

d(C)=min{d(C) ; d(F)+7}= min{

 ; 3+7}=10

d(I)=min{d(I) ; d(F)+5}= min{

 ; 3+5}=8

d(K)=min{d(K) ; d(F)+3}= min{

 ; 3+3}=6.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

216

Wprowadzenie do teorii grafów

krok 3

d(E)=min{d(E) ; d(B)+2}= min{

 ; 5+2}=7.

d(G)=min{d(G) ; d(B)+6}= min{

 ; 5+6}=11. 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

217

Wprowadzenie do teorii grafów

krok 4

d(G)=min{d(G) ; d(K)+4}= min{11 ; 6+4}=10

d(J)=min{d(J) ; d(K)+5}= min{

 ; 6+5}=11

d(L)=min{d(L) ; d(K)+2}= min{

 ; 6+2}=8

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

218

Wprowadzenie do teorii grafów

krok 5

d(I)=min{d(I) ; d(E)+1}= min{8 ; 7+1}=8

d(J)=min{d(J) ; d(E)+2}= min{11 ; 7+2}=9

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

219

Wprowadzenie do teorii grafów

krok 6

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

220

Wprowadzenie do teorii grafów

krok 7

d(G)=min{d(G) ; d(L)+8}= min{10 ; 8+8}=10 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

221

Wprowadzenie do teorii grafów

krok 8

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

222

Wprowadzenie do teorii grafów

krok 9

d(D)=min{d(D) ; d(G)+1}= min{

 ; 10+1}=11

d(H)=min{d(H) ; d(G)+2}= min{

 ; 10+2}=12

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

223

Wprowadzenie do teorii grafów

krok 10

d(D)=min{d(D) ; d(C)+2}= min{11 ; 10+2}=11

d(H)=min{d(H) ; d(G)+2}= min{12 ; 10+5}=12

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

224

Wprowadzenie do teorii grafów

krok 11

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

225

Wprowadzenie do teorii grafów

krok 12

background image

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. 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

227

Wprowadzenie do teorii grafów

background image

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. 

background image

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

 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

230

Wprowadzenie do teorii grafów

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

background image

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. 

background image

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  n

n-2

 drzew 

spinających. Wobec tego dowolny graf prosty 
wymiaru  n posiada co najwyżej n

n-2

 drzew 

spinających.

 

background image

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

background image

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. 

background image

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. 

background image

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.

background image

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. 

background image

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.

background image

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. 

background image

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

background image

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.

background image

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. 

background image

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. 

background image

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.

background image

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}

 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

246

Wprowadzenie do teorii grafów

Krok 2. Zbiór T={AC, CD} 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

247

Wprowadzenie do teorii grafów

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

248

Wprowadzenie do teorii grafów

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

249

Wprowadzenie do teorii grafów

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

250

Wprowadzenie do teorii grafów

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

background image

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. 

background image

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. 

background image

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. 

background image

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. 

background image

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. 

background image

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. 

background image

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. 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

258

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

259

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

260

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

261

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

262

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

263

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

264

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

265

Wprowadzenie do teorii grafów

background image

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ą?

background image

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

background image

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!

background image

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

background image

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. 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

271

Wprowadzenie do teorii grafów

Przykład grafu silnie spójnego

background image

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. 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

273

Wprowadzenie do teorii grafów

Graf i jego silnie 
spójne składowe

background image

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

background image

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. 

background image

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. 

background image

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. 

background image

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}

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

279

Wprowadzenie do teorii grafów

Definicja

Spójnością krawędziową grafu spójnego 

nazywamy liczbę 

λ

(

G) równą liczności 

najmniej licznego rozcięcia grafu 

G. 

background image

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.

background image

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

background image

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

283

Wprowadzenie do teorii grafów

Definicja

Zbiorem rozdzielającym grafu spójnego 

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. 

background image

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.

 

background image

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.

 

background image

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. 

background image

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

background image

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  

n

m

2

background image

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 V

1

 oraz V

2

.

Przez usunięcie co najwyżej  wierzchołków 
z V

1

 (lub V

2

), do których krawędzie

 

ze zbioru 

rozspajającego są incydentne usuniemy cały zbiór S. 

c.n.u.

background image

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)

n

m

2

background image

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

background image

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. 

background image

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

background image

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. 

background image

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.

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

297

Wprowadzenie do teorii grafów

Przykład

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

299

Wprowadzenie do teorii grafów

Przykład

background image

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

background image

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. 

background image

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.

background image

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

304

Wprowadzenie do teorii grafów

Przykład

Liczba chromatyczna poniższego grafu  
wynosi 3. 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

305

Wprowadzenie do teorii grafów

Przykład

Liczba chromatyczna poniższego grafu  
wynosi 4. 

background image

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. 

background image

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

background image

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.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

309

Wprowadzenie do teorii grafów

Twierdzenie

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

4

1

2

2

1

+

+

m

G)

(

χ

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

310

Wprowadzenie do teorii grafów

Przykład

Kolorowanie wierzchołków grafu

background image

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

background image

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

background image

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

χ

background image

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

background image

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

background image

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

χ

background image

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?

background image

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

background image

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

χ

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

320

Wprowadzenie do teorii grafów

Przykład 

(rozsadzenie gości na przyjęciu 1)

background image

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?

background image

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

background image

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

χ

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

324

Wprowadzenie do teorii grafów

Przykład 

(rozsadzenie gości na przyjęciu 2)

background image

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. 

background image

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

327

Wprowadzenie do teorii grafów

Przykład

Indeks chromatyczny 
grafu z rysunku jest 
równy 3. 

background image

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

background image

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

background image

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. 

background image

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. 

n

X

X

j

i

+

)

deg(

)

deg(

3

n

background image

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

2

n

X

i

)

deg(

background image

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

2

2

1

2

1

+

)

)(

(

n

n

background image

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 

n

2

background image

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. 

n

2

background image

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.

background image

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 X

1

 oraz X

2

 tak, że każda krawędź 

w grafie łączy wierzchołek z jednego 
podzbioru z wierzchołkiem drugiego 
podzbioru. 

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

338

Wprowadzenie do teorii grafów

Grafy dwudzielne

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

339

Wprowadzenie do teorii grafów

Grafy dwudzielne

background image

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. 

background image

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 
X

1

 jest połączony dokładnie jedną krawędzią 

z każdym wierzchołkiem zbioru X

2

.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

342

Wprowadzenie do teorii grafów

Grafy pełne dwudzielne

background image

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 |
X

1

|=m oraz |X

2

|=n są izomorficzne. 

Grafy takie oznaczamy K

m,n

Łatwo zauważyć, że grafy K

m,n

 oraz K

n,m

 są 

izomorficzne.

background image

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. 

background image

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. 

background image

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

background image

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.

background image

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)

background image

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)

background image

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

background image

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

background image

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 

KoniecKolejki

PoczątekKolejki

 

background image

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

 

background image

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

background image

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

background image

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.

background image

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

X

x

background image

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 zto
            numer w powinien być większy od
            numeru z

background image

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, 
to
w grafie nie ma drogi Hamiltona.

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

360

Wprowadzenie do teorii grafów

Przykład

Sprawdzić, czy w 

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

361

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

362

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

363

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

364

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

365

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

366

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

367

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

368

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

369

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

370

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

371

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

372

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

373

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

374

Wprowadzenie do teorii grafów

Stos pusty – nie znaleziono drogi Hamiltona

background image

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

376

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

377

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

378

Wprowadzenie do teorii grafów

background image

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

380

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

381

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

382

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

383

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

384

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

385

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

386

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

387

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

388

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

389

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

390

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

391

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

392

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

393

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

394

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

395

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

396

Wprowadzenie do teorii grafów

Stos pełny – znaleziono drogę Hamiltona

background image

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

background image

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

>

x

R

x

N

g

f

:

:

,

background image

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 N

0

, że dla dowolnego n> N

0

 

zachodzi nierówność

)

(

)

(

n

f

c

n

g

Zapisujemy ten fakt

))

(

(

)

(

n

f

O

n

g

=

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

400

Notacja asymptotyczna

Przykład

)

(

4

4

3

5

2

n

O

n

n

=

+

gdyż dla dowolnego n

4

4

4

4

7

5

2

3

5

2

n

n

n

n

n

=

+

+

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

401

Notacja asymptotyczna

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

0

=

+ ∞

)

(

)

(

lim

n

f

n

g

n

Zapisujemy ten fakt

))

(

(

)

(

n

f

o

n

g

=

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

402

Notacja asymptotyczna

Przykład

)

(

5

4

3

5

2

n

o

n

n

=

+

gdyż

0

3

5

2

5

4

=

+

+ ∞

n

n

n

n

lim

background image

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 N

0

, że dla dowolnego n> N

0

 

zachodzi nierówność

)

(

)

(

n

f

c

n

g

Zapisujemy ten fakt

))

(

(

)

(

n

f

n

g

=

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

404

Notacja asymptotyczna

...

...

3

2

3

n

n

n

n

n

n

n

n

m

dużych 

 

ie

dostateczn

 

dla

log

<

2

4

2

<

<

n

n

n

n

n

dla

!

background image

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:

n

n

n

n

n

n

n

n

n

n

n

n

n

n

,

!

,

...

,

,

,

log

,

,

,

,...,

log

,

2

1

3

2

2

3

2

background image

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

background image

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

background image

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.

background image

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.

background image

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

background image

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

background image

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ś

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

413

Notacja asymptotyczna

Przykłady

2. Problem kliki

background image

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

background image

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

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

416

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

417

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

418

Wprowadzenie do teorii grafów

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

419

Wprowadzenie do teorii grafów

background image

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 

G

G

G

f

×

:

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

421

Wprowadzenie do teorii grup

Uwaga:

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

( )

G

b

a

,

b

b

a

+

b

a

background image

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ść

G

G

G

×

:

G

c

b

a

,

,

(

)

(

)

c

b

a

c

b

a

=

G

c

b

a

,

,

a

b

b

a

=

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

423

Wprowadzenie do teorii grup

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

424

Wprowadzenie do teorii grup

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

425

Wprowadzenie do teorii grup

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

426

Wprowadzenie do teorii grup

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

427

Wprowadzenie do teorii grup

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

428

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

429

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

430

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

431

background image

5.05.08

 Dr inż. Krzysztof Lisiecki

432

background image

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.