Drogii i cykle w grafach

background image

drogi i cykle w grafach

1

Drogi i cykle w grafach


Graf – zbiór wierzchołków V i krawędzi E.

Krawędź - para wierzchołków.

Krawędź może mieć wagę (graf z wagami).

Graf nieskierowany - gdy pary wierzchołków krawędzi są
nieuporządkowane.
Kolejność wierzchołków krawędzi istotna - graf skierowany

(digraf).

Stopień wierzchołka v - liczba krawędzi wychodzących z tego

wierzchołka. Oznaczać przez d(v).

Ponadto

|E| - liczba krawędzi grafu

|V| - liczba wierzchołków grafu.


Własność: Suma stopni wierzchołków w grafie jest równa
podwojonej liczbie krawędzi grafu.

|

|

2

)

(

E

v

d

V

v

=

Wniosek: liczba wierzchołków o nieparzystych stopniach jest
parzysta.

Drogi i cykle

Droga (ścieżka) – ciąg wierzchołków v

0

, v

1

, ..., v

k

taki, ze każde

dwa kolejne v

i

, v

i+1

są połączone krawędzią.

Długością drogi dla grafów bez wag jest liczba tych krawędzi, a

dla grafów z wagami suma wag tych krawędzi.

Droga jest zamknięta, gdy v

0

= v

k

.

drogi i cykle w grafach

2

Droga prosta – gdy wszystkie jej krawędzie są różne.

Cykl – droga zamknięta, w której wszystkie wierzchołki oprócz

pierwszego i ostatniego są różne.

Graf nie zawierający cykli nazywamy acyklicznym.
Graf jest spójny gdy między każdą parę wierzchołków można
poprowadzić drogę. Składowa spójności – maksymalny spójny
podgraf.
Własność:
Każda droga zamknięta o różnych wierzchołkach v

0

, v

1

, ..., v

k-1

i

co najmniej trzech krawędziach jest cyklem.
Własność:
Droga ma wszystkie wierzchołki różne wtedy i tylko wtedy, gdy
jest prosta i acykliczna.
Własność:
Jeżeli w grafie istnieje droga od wierzchołka u do v
(u ≠ v) , to istnieje także droga prosta acykliczna od u do v.

Drogi i cykle Eulera

Droga Eulera - droga która przechodzi dokładnie jeden raz
przez każdą krawędź grafu.
Cykl Eulera – droga zamknięta w której każda krawędź grafu
występuje dokładnie jeden raz.
Cykl Eulera jest związany z mostami w Królewcu (XVIII w) –
czy można przejść dokładnie raz przez mosty i wrócić do punktu
wyjścia?




Rys. Mosty królewieckie i odpowiadający im graf

rzeka

ląd

wyspa

wyspa

ląd

graf

background image

drogi i cykle w grafach

3

Jak wykazał Euler (1736), dla mostów królewieckich
rozwiązanie takie nie istnieje.

Twierdzenie:
Graf spójny posiada:

- cykl Eulera wtedy i tylko wtedy, gdy każdy jego

wierzchołek jest parzystego stopnia

- drogę Eulera – jeżeli co najwyżej dwa jego wierzchołki są

stopnia nieparzystego

Uzasadnienie: Droga Eulera przechodzi dokładnie raz przez
każdą krawędź. Przechodząc przez wierzchołek możemy usunąć
krawędź którą przyszliśmy i krawędź którą wyszliśmy. Dlatego z
każdego wierzchołka musi wychodzić parzysta liczba krawędzi,
z wyjątkiem co najwyżej początku i końca drogi. Jeżeli jednak
początek drogi pokrywa się z jej końcem, to także i ten
wierzchołek musi być stopnia parzystego (wychodzimy i
wchodzimy).

Algorytm wyszukiwania cyklu Eulera:

1. Wybieramy wierzchołek początkowy v

0

(dowolnie)

2. Powtarzamy aż do wyczerpania krawędzi

a) jeżeli z bieżącego wierzchołka nie odchodzi żadna

krawędź, to koniec

b) jeżeli z bieżącego wierzchołka v odchodzi tylko jedna

krawędź, to przechodzimy wzdłuż tej krawędzi do
następnego wierzchołka, usuwamy tę krawędź i
wierzchołek v z grafu

c) jeżeli z v odchodzi więcej niż jedna krawędź, wtedy

wybieramy taką, by po jej usunięciu graf pozostał spójny;
wzdłuż tej krawędzi przechodzimy do następnego
wierzchołka i usuwamy tę krawędź z grafu.

drogi i cykle w grafach

4


Powyższy algorytm jest niezbyt wygodny , ponieważ na każdym
kroku wymaga sprawdzania czy graf pozostaje spójny.


Cykl Eulera – algorytm I (z badaniem spójności grafu}




























1

4

7

2

3

9

8

6

5

1

4

7

2

3

9

8

6

5

1

4

7

2

3

9

8

6

5

1

4

7

2

3

9

8

6

5

1

4

7

2

3

9

8

6

5

1

4

7

2

3

9

8

6

5

1

4

7

2

3

9

8

6

5

niedopuszczalne

{1 2}

{1 2 3 5 8 7}

{1 2 3 5 8}

{1 2 3 5}

{1 2 3}

{1 2 3 5 8 7 4 }

Dalej nie ma
wyboru:
Cykl Eulera
{1 2 3 5 8 7 4}

{2 5 7 9 8 6 3 1}

background image

drogi i cykle w grafach

5

Drugi algorytm wyznaczania cyklu Eulera
Założenie:
Graf spójny, wszystkie wierzchołki są stopnia parzystego
Algorytm II (z wykorzystaniem stosu)
1. Wybieramy wierzchołek początkowy v; stos:= {v} CE = ∅

(cykl Eulera pusty)

2. dopóki stos ≠ ∅ wykonuj:

a) v:= front (stos)
b) jeżeli z v wychodzą nie odwiedzone krawędzie, to

wybieramy jedną z nich, przechodzimy wzdłuż niej do
sąsiedniego wierzchołka w. Krawędź (v, w) zaznaczamy
jako odwiedzoną oraz

stos = stos + {w}

c) jeżeli wszystkie krawedzie wychodzące z v już były

odwiedzone, to usuwamy v ze stosu, dokładając do cyklu
Eulera CE. Przechodzimy do następnego wierzchołka na
stosie.

Przykład:
Graf 9 wierzchołków – start 1 – algorytm II (ze stosem)














1

4

7

2

3

9

8

6

5

1

4

7

2

3

9

8

6

5

1

4

7

2

3

9

8

6

5

1

4

7

2

3

9

8

6

5

Wynik – cykl Eulera:

{1 3 6 8 9 7 8 5 7 4 2 5 3 2 1}

drogi i cykle w grafach

6

Droga Hamiltona

Droga Hamiltona jest to droga, która przechodzi dokładnie

raz przez każdy wierzchołek grafu. Cykl Hamiltona – zamknięta

droga Hamiltona.








Rys. Cykle Hamiltona w grafie


Grafem pełnym - graf, w którym każde dwa wierzchołki są
połączone krawędzia.
Graf pełny o n wierzchołkach jest oznaczany prze K

n

.

Własność: Każdy graf pełny o n ≥ 3 wierzchołkach ma cykl
Hamiltona.
Nie jest znane żadne kryterium na istnienie cyklu Hamiltona, ani
tez żaden algorytm działający w czasie wielomianowym.
Algorytm naiwny – sprawdzanie wszystkich permutacji
wierzchołków (n! permutacji dla n wierzchołków).

Algorytm szukania drogi Hamiltona (algorytm z nawrotami).

Zasada; idziemy pierwszą możliwą ścieżką tak daleko jak to
możliwe, odkładając kolejne wierzchołki na stos. Gdy nie ma już
dokąd iść, zdejmujemy bieżący wierzchołek ze stosu i
próbujemy iść inną drogą, od następnego na stosie.

1

2

5

6

3

4

1

2

5

6

3

4

5

1

2

6

3

4

background image

drogi i cykle w grafach

7

Algorytm z nawrotami.
1. wybieramy wierzchołek początkowy v; stos = {v}
2. Powtarzamy do skutku
a) jeżeli u = front (stos), to wybieramy w taki ,że

- w połączony z u krawędzią
- w nie należy do stosu
- w spełnia dodatkowe kryterium wyboru – np. ma najniższy

numer ze spełniających w/w warunki

b) jeżeli istnieje wierzchołek spełniający warunki z p. a, to stos

= stos +{w}. Sprawdzamy, czy wierzchołki na stosie tworzą
drogę Hamiltona. Jeżeli tworzą, to koniec.

c) jeżeli wierzchołek w o własnościach podanych w p. a nie

istnieje, to stos = stos – {u} (u = front(stos))

Przykład:







Start z 4
droga 4 1 2 3 6 5

dalej nie ma dokąd bo 1 zamyka a 7 nie było

5 ze stosu

droga 4 1 2 3 6

dokładamy 7

droga 4 1 2 3 6 7

znowu nie ma dokąd ( 3 i 1 były, 5 brak)

7 ze stosu

droga 4 1 2 3 6

6 ze stosu

(obie drogi, do 5 i 7 wycofane)

droga 4 1 2 3

dokładamy 7

(druga z możliwych, do 6, już była )

droga 4 1 2 3 7 dalej przez 6, 5 – razem 7 wierzchołków
droga 4 1 2 3 7 6 5 droga Hamiltona, wszystkie wierzchołki

(ale z tej drogi nie można utworzyć
cyklu Hamiltona)

2

3

4

6

5

7

1


Wyszukiwarka

Podobne podstrony:
Drogii i cykle w grafach
Cykle koniunkturalne[1]
1 Role i Cykle opr
Cykle życia
03H Cykle prosteid 4727 Nieznany (2)
cykle robaków, ~FARMACJA, I rok, biologia z genetyką
numerol cykle
globalne cykle biochemiczne wykład 10
parazytologia, cw 2, cykle zyci Nieznany
Cykle koniunkturalne i bezrobocie CALOSC
cykl Kolejarz 3, ZHP - przydatne dokumenty, Cykle
CYKLE BIOCHEMICZNE 5 STR , Inne
cykl Krawcowa 1, ZHP - przydatne dokumenty, Cykle
Nasz własny kawałek Nibylandii, Cykle sprawnościowe, Piotruś Pan- konspekty zajęć
Ognisko, Cykle sprawnościowe, Piotruś Pan- konspekty zajęć
cykl Dworka i Bolkowy woj 1, ZHP - przydatne dokumenty, Cykle
cykl Ogrodnik 4, ZHP - przydatne dokumenty, Cykle

więcej podobnych podstron