-
Grafy (1): wprowadzenie
Wykłady z matematyki dyskretnejdla informatyków i teleinformatyków
UTP Bydgoszcz
11
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 1 / 94
-
Graf
Oznaczmy przez [V ]2 zbiór wszystkich dwuelementowych podzbiorówzbioru V , a przez [V ]2kol zestaw dwuelementowych kolekcji zbioru V .
Definicja.Grafem prostym nazywamy parę G = (VG ,EG ), gdzie VG jest skończonymzbiorem oraz EG jest podzbiorem zbioru [VG ]2.Elementy ze zbioru VG to wierzchołki grafu (zwane też węzłami lubpunktami grafu), a elementy ze zbioru EG to krawędzie (nie mogą siępowtarzać, nie mogą mieć obu końców w tym samym wierzchołku).
Definicja.Grafem (grafem ogólnym, multigrafem) nazywamy parę G = (VG ,EG ),gdzie VG jest skończonym zbiorem oraz EG jest kolekcją elementów zezbioru [VG ]2kol . Elementy ze zbioru VG to wierzchołki grafu, a elementy zkolekcji EG to krawędzie (mogą się powtarzać, mogą też mieć oba końcew tym samym wierzchołku).
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 2 / 94
-
Graf prosty
Uwaga. Grafy da się zilustrować: punkty na płaszczyźnie to wierzchołki, natomiastkrzywe łączące te punkty to krawędzie. Ten sam graf można narysować na kilka
sposobów (grafy to obiekty algebraiczne, nie geometryczne).
Przykład.
VG = {1, 2, 3, 4}, EG = {{1, 2}, {1, 3}, {2, 4}, {3, 4}}.
Oczywiście, [VG ]2 = {{1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4}},
1
42
3
lub
4
31
2
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 3 / 94
-
Graf ogólny, przykład
VG = {1, 2, 3, 4, 5},EG = {{1, 2}kol , {1, 3}kol , {1, 3}kol , {1, 3}kol , {1, 4}kol , {2, 3}kol , {2, 4}kol ,{2, 4}kol , {3, 3}kol , {3, 4}kol , {3, 4}kol , {3, 4}kol , {5, 5}kol , {5, 5}kol}kol .
2
4
53
1
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 4 / 94
-
Stopień wierzchołka
Krawędź łączącą wierzchołki v oraz w oznaczamy vw .Mówimy wtedy, że wierzchołki v i w są sąsiadami, a krawędź vw jestincydentna do v (i do w).
Definicja. Stopień wierzchołka v w grafie (oznaczany deg v) to liczbadwuwierzchołkowych krawędzi o jednym końcu v plus podwojona liczbapętli o wierzchołku v .
Przykład.
Każdy wierzchołek w grafie po lewej stronie jest stopnia drugiego, a wgrafie po prawej − stopnia trzeciego.
Przykład. Na grafie z poprzedniego slajdu wierzchołki o numerze 2 oraz 5są stopnia czwartego.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 5 / 94
-
Stopień wierzchołka
Niech G = (VG ,EG ) będzie grafem ogólnym.
Fakt. ∑v∈VG
deg v = 2‖EG‖.
Uzasadnienie. Krawędź grafu jest incydentna do dwóch wierzchołków.Każda krawędź (także pętla) dodaje dwa do sumy stopni.
Wniosek. Liczba wierzchołków o stopniu nieparzystym jest parzysta.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 6 / 94
-
Izomorfizm grafów
Definicja.Niech G (VG ,EG ) i H(VH ,EH) będą grafami bez krawędzi wielokrotnych.Mówimy, że graf G jest izomorficzny z grafem H, jeżeli istnieje bijekcja(„przeetykietowanie”) α : VG → VH taka, że uw jest krawędzią grafu Gwtedy i tylko wtedy, gdy α(u)α(w) jest krawędzią grafu H. PiszemyG ' H.
Definicja.Niech G (VG ,EG ) i H(VH ,EH) będą grafami ogólnymi. Mówimy, że graf Gjest izomorficzny z grafem H, jeżeli istnieją bijekcje α : VG → VH orazβ : EG → EH takie, że krawędź e ze zbioru EG łączy wierzchołki u oraz wze zbioru VG wtedy i tylko wtedy, gdy krawędź β(e) ze zbioru EH łączywierzchołki α(u) oraz α(w) (ze zbioru VH). Piszemy G ' H.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 7 / 94
-
Droga
Definicja.Drogą∗ w grafie G nazywamy ciąg krawędzi e1e2 . . . en(wraz z ciągiem wierzchołków v1, v2, . . . , vn, vn+1) taki, żeei = {vi , vi+1} dla i = 1, 2, . . . , n.
Jeśli każda krawędź ei jest jedyną krawędzią od vi do vi+1, to drogęe1e2 . . . en możemy opisać podając te wierzchołki v1v2 . . . vnvn+1.
∗ spotyka się różne nazwy (na przykład: ścieżka, marszruta)
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 8 / 94
-
Droga prosta
Drogą prostą nazywamy drogę, której wszystkie krawędzie są różne.Droga taka może przechodzić przez jakiś wierzchołek więcej niż raz, ale nieprzechodzi przez żadną krawędź więcej niż raz.
Długość drogi e1e2 . . . en od wierzchołka v1 do wierzchołka vn+1 wynosi n.Gdy v1 = vn+1, to mówimy, że droga jest zamknięta.
Przykład. Drogą prostą jest v1v3v3v4.
v2
v4
v3
v1
Drogą zamkniętą jest v1v2v3v4v2v1, ale nie jest drogą prostą.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 9 / 94
-
Definicje
Odległość między wierzchołkami to długość najkrótszej drogi między tymipunktami.Cykl to droga prosta, zamknięta, w której jedynym powtarzającym sięwierzchołkiem jest początek (będący także końcem).
Przykład.v1 v2
v3 v4
Drogą prostą (o długości 4) jest v1v2v4v3v2.Cyklem (o długości 3) jest v3v2v4v3.Cyklem (o długości 4) jest v3v1v2v4v3.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 10 / 94
-
Opisywanie grafu: słownik
Graf można opisać podając słownik, czyli listę (tablicę) wierzchołków vi przypisany im zbiór wierzchołków sąsiednich a(v).Zbiór wierzchołków, to zbiór kluczy słownika.
Przykład. Zbiór kluczy słownika: {v1, v2, v3, v4, v5, v6}.
v1 v2
v3 v4
v5 v6
Lista:
a(v1) = {v3, v4, v5, v6}a(v2) = {v4, v6}a(v3) = {v1, v5, v6}a(v4) = {v1, v2, v4, v6}a(v5) = {v1, v3}a(v6) = {v1, v2, v3, v4}
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 11 / 94
-
Jeszcze kilka definicji
Niech G1 = (V1,E1) oraz G2 = (V2,E2) będą grafami.
Definicja.
suma grafów G1 ∪ G2 = (V1 ∪ V2,E1 ∪ E2);przecięcie grafów G1 ∩ G2 = (V1 ∩ V2,E1 ∩ E2);podgraf grafu G1 to graf H taki, żeV (H) ⊆ V (G1) oraz E (H) ⊆ E (G1);
graf spójny to graf, w którym każde dwa wierzchołki łączy jakaśdroga;
graf niespójny to graf, który nie jest spójny;
spójna składowa grafu G1 to spójny podgraf, który nie jest zawarty wwiększym podgrafie spójnym grafu G1.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 12 / 94
-
Graf acykliczny
Graf acykliczny, to graf nie zawierający cykli.
Przykład.Ten graf jest acykliczny i niespójny.Jego podgraf o wierzchołkach v1, v2, v3, v4 i trzech (oczywistych)krawędziach jest spójny.
v7 v2
v4
v5
v6
v3
v1
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 13 / 94
-
Droga acykliczna
Droga jest acykliczna, jeśli podgraf składający się z wierzchołkówi krawędzi tej drogi jest acykliczny.
Przykład.
v2
v4
v5
v6
v3
v1
Ten graf nie jest acykliczny (jest za to spójny).
Droga v2v4v1v3v5v6 jest .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 14 / 94
-
Droga acykliczna
Droga jest acykliczna, jeśli podgraf składający się z wierzchołkówi krawędzi tej drogi jest acykliczny.
Przykład.
v2
v4
v5
v6
v3
v1
Droga v2v4v1v3v5v6 jest acykliczna.a
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 15 / 94
-
Cykl
Fakt.Dowolna droga zamknięta e1 . . . en o długości co najmniej trzy o różnychwierzchołkach v1, . . . , vn jest cyklem.
Uzasadnienie.Skoro wierzchołki v1, . . . , vn są różne, więc krawędzie e1, . . . , en−1 są różne.Ponadto, en = {v1, vn}. Skoro n 6= 1 i n 6= 2, więcen = {v1, vn} 6= {vi , vi+1} = ei dla i = 1, 2, . . . , n − 1.Droga ta jest więc cyklem.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 16 / 94
-
Droga z różnymi wierzchołkami
Fakt.Droga jest prosta i acykliczna wtedy i tylko wtedy, gdy ma wszystkiewierzchołki różne.
Uzasadnienie.⇐Jeśli droga ma wszystkie wierzchołki różne, to ma różne krawędzie.Jest prosta i acykliczna.
⇒Przypuścmy, że droga prosta ma powtarzające się wierzchołki vi oraz vj ,gdzie i oraz j wybieramy tak, by i < j oraz, by j − i było możliwienajmniejsze. Wtedy vivi+1 . . . vj jest cyklem. Początkowa droga nie jestwięc acykliczna.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 17 / 94
-
Prosta droga acykliczna
Twierdzenie.Jeżeli u oraz v są różnymi wierzchołkami grafu G i jeżeli istnieje w grafiedroga z u do v , to istnieje w G prosta droga acykliczna z u do v .
Dowód.Wybierzmy najkrótszą (w grafie) drogę od u do v . Powiedzmy jest niąv1 . . . vn+1. Możemy zakładać, że vi 6= vj dla i = 1, 2, . . . , n, gdyż wprzeciwnym razie, gdyby vi = vj (dla pewnych i < j), to droga vivi+1 . . . vjbyłaby zamknięta, a po jej usunięciu nadal byśmy mieli drogę (i to krótszą)od u do v . Wierzchołki tej drogi są różne, z poprzedniego faktu wiemy, żedroga jest prosta i acykliczna.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 18 / 94
-
Cykle
Wniosek.Każda krawędź w zamkniętej drodze prostej należy do jakiegoś cyklu.
Dowód.
Gdy krawędź jest pętlą, to jest cyklem.
Gdy krawędź e łącząca wierzchołki u oraz v nie jest pętlą, to usuwającją (chwilowo) z grafu pozostanie droga z u do v . Z poprzedniegotwierdzenia, istnieje droga acykliczna z u do v (nie zawiera onakrawędzi e, bo ją chwilowo usunęliśmy). Dodając e otrzymamy cykl.
Fakt. Usuwając krawędź e z grafu, co będziemy jeszcze robić, uzyskamypodgraf, przy czym V (G \ {e}) = V (G ), ale E (G \ {e}) = E (G ) \ {e}.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 19 / 94
-
Jedyna droga prosta
Twierdzenie. Jeśli u oraz v są różnymi wierzchołkami grafu acyklicznego,to istnieje co najwyżej jedna droga prosta między u i v w tym grafie.
Dowód.Założmy, że istnieje więcej dróg prostych między u i v . Wybierzmy z nichdwie d1 oraz d2. Skoro drogi są różne, znajdziemy na pierwszej drodzewierzchołek v+, który nie leży na drugiej drodze. Podążając d1 od v+ wstronę u albo spotkamy się z drogą d2 w jakimś wierzchołku w+, albospotkamy się z d2 dopiero w u. Podobnie, podążając d1 od v+ w stronę valbo spotkamy się z drogą d2 w jakimś wierzchołku w−, albo spotkamy sięz d2 dopiero w v . W każdym z tych przypadków graf zawiera cyklprzechodzący przez v+, w+ (albo u), w− (albo v), a graf jest acykliczny.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 20 / 94
-
Jeszcze kilka definicji
Definicja.Graf regularny to graf, w którym wszystkie wierzchołki mają ten samstopień.Graf pusty to graf bez krawędzi.Graf pełny to graf bez pętli i bez krawędzi wielokrotnych,w którym każde dwa wierzchołki są połączone krawędziami.
Przykład. Graf pełny K4.
1
42
3
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 21 / 94
-
Graf Kn
Fakt.Graf pełny o n wierzchołkach ma wszystkie wierzchołki stopnia n − 1, jestwięc grafem regularnym. Wszystkie grafy pełne o n wierzchołkach sąizomorficzne, oznaczamy je Kn.
Fakt.Dla każdego m = 1, 2, . . . , n graf pełny Kn zawiera podgrafy izomorficznez grafem Km. Takich podgrafów jest tyle, ile możliwości wyboru mwierzchołków z n, czyli
(nm
).
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 22 / 94
-
Graf eulerowski
Definicje.
Droga Eulera, to droga prosta zawierająca wszystkie krawędzie grafu.
Cykl Eulera to zamknięta droga Eulera.
Graf eulerowski to graf posiadający cykl Eulera.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 23 / 94
-
Przykład grafu eulerowskiego i nieeulerowskiego
v1 v4
v2
v3
v1 v4
v2
v3
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 24 / 94
-
Siedem mostów królewieckich (schemat)
Pokażemy, że ten graf nie jest eulerowski.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 25 / 94
-
Mosty królewieckie i graf mostów królewieckich
Pokażemy, że ten graf nie jest eulerowski.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 25 / 94
-
Cykl Eulera
Twierdzenie.Graf zawierający cykl Eulera musi miećwszystkie wierzchołki stopnia parzystego.
Dowód.Wybieramy środek dowolnej krawędzi cyklu Eulera i poruszamy się po tymcyklu w wybraną (dowolnie) stronę wymazując fragmenty krawędzi poktórych szliśmy. Zauważmy, że przechodząc przez każdy wierzchołek albowymazujemy pętlę (pętla zwiększa stopień wierzchołka o dwa), albowycieramy dwie krawędzie - tę którą przyszliśmy do wierzchołka i tę, którąwyszliśmy z wierzchołka. Za każdym razem zmniejszamy stopieńwierzchołka o dwa. Na końcu (przeszliśmy cały cykl) wszystkie krawędziezostaną wymazane i każdy wierzchołek będzie miał stopień zero.Wszystkie wierzchołki na początku musiały więc mieć stopień parzysty.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 26 / 94
-
Cykl Eulera
Wniosek.Graf mający drogę Eulera albo ma dwa wierzchołki stopnia nieparzystego,albo nie ma wierzchołków stopnia nieparzystego.
Dowód.Niech ta droga Eulera zaczyna się w wierzchołku u, a kończy w v .
Jeśli u = v , to droga tworzy cykl, i z poprzedniego twierdzenia wiemy,że każdy wierzchołek jest stopnia parzystego.
Jeśli u 6= v , to na chwilę dodajemy do grafu krawędź uv uzyskująccykl Eulera (w grafie z dodatkową krawędzią). W tym nowym grafie, zpoprzedniego twierdzenia, wszystkie wierzchołki są parzystego stopnia.Po usunięciu krawędzi uv jedynie u i v są stopnia nieparzystego.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 27 / 94
-
Cykl
Lemat.Jeżeli wszystkie wierzchołki grafu G są stopnia parzystego(0 oczywiście wykluczamy), to G zawiera cykl.
Dowód.Wybieramy dowolną krawędź v0v1. Z v1 przechodzimy kolejną krawędziądo jakiegoś sąsiedniego wierzchołka, nazwijmy go v2. Z v2 (inną krawędziąniż v1v2) przechodzimy do kolejnego wierzchołka, i tak dalej. Każdywierzchołek jest stopnia parzystego, więc „wchodząc” do niego mamy teżdrogę „wyjścia”. Musimy więc trafić w końcu na wierzchołek, w którymjuż byliśmy − otrzymamy cykl.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 28 / 94
-
Cykl Eulera
Uwaga.Nie każdy graf, którego wszystkie wierzchołki są stopnia parzystegozawiera cykl Eulera.
v1 v4
v2
v3
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 29 / 94
-
Cykl Eulera, twierdzenie Eulera
Twierdzenie (Eulera).Jeżeli wszystkie wierzchołki grafu G są stopnia parzystego i jeżeli G jestspójny, to G zawiera cykl Eulera.
Dowód indukcyjny ze względu na liczbę n krawędzi grafu.
Gdy n = 1,(graf ma jedną krawędź - pętlę, bo wierzchołek jest stopnia parzystego),to ta pętla tworzy cykl.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 30 / 94
-
Dowód twierdzenie Eulera, ciąg dalszy
Załóżmy, że n 2 oraz że dowolny graf spójny o k wierzchołkach (dla
k < n), przy czym wszystkie te wierzchołki są parzystego stopnia, zawieracykl Eulera. Z poprzedniego lematu wiemy, że G zawiera jakiś cykl C .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 31 / 94
-
Dowód twierdzenie Eulera, ciąg dalszy
Jeśli usuniemy z grafu G : wszystkie krawędzie z C oraz te wierzchołki z C ,które po usunięciu krawędzi są stopnia 0, to otrzymamy mniejszy graf G−.
Gdy G− jest pusty, to C jest cyklem Eulera.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 32 / 94
-
Dowód twierdzenie Eulera, ciąg dalszy
Gdy G− nie jest pusty, to nadal każdy jego wierzchołek jest parzystegostopnia. Dzielimy G− na spójne składowe G1, . . . ,Gm. Każda takaskładowa, zgodnie z założeniem indukcyjnym, jest grafem eulerowskim(ma cykl Eulera). Ponadto (nasz graf jest spójny) każda taka składowa mawierzchołek wspólny z C .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 33 / 94
-
Dowód twierdzenie Eulera, ciąg dalszy
Cykl Eulera w G uzyskamy przechodząc przez kolejne wierzchołki cyklu C ,przy czym napotkawszy wierzchołek wspólny z jakimś Gi (1 ¬ i ¬ m)przechodzimy przez cykl Eulera w tym Gi wracając do tego samegowierzchołka i kontynuujemy poruszanie się po cyklu C .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 34 / 94
-
Dowód twierdzenie Eulera, ciąg dalszy
Cykl Eulera w G uzyskamy przechodząc przez kolejne wierzchołki cyklu C ,przy czym napotkawszy wierzchołek wspólny z jakimś Gi (1 ¬ i ¬ m)przechodzimy przez cykl Eulera w tym Gi wracając do tego samegowierzchołka i kontynuujemy poruszanie się po cyklu C .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 35 / 94
-
Dowód twierdzenie Eulera, ciąg dalszy
Cykl Eulera w G uzyskamy przechodząc przez kolejne wierzchołki cyklu C ,przy czym napotkawszy wierzchołek wspólny z jakimś Gi (1 ¬ i ¬ m)przechodzimy przez cykl Eulera w tym Gi wracając do tego samegowierzchołka i kontynuujemy poruszanie się po cyklu C .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 36 / 94
-
Dowód twierdzenie Eulera, ciąg dalszy
Cykl Eulera w G uzyskamy przechodząc przez kolejne wierzchołki cyklu C ,przy czym napotkawszy wierzchołek wspólny z jakimś Gi (1 ¬ i ¬ m)przechodzimy przez cykl Eulera w tym Gi wracając do tego samegowierzchołka i kontynuujemy poruszanie się po cyklu C .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 37 / 94
-
Dowód twierdzenie Eulera, ciąg dalszy
Cykl Eulera w G uzyskamy przechodząc przez kolejne wierzchołki cyklu C ,przy czym napotkawszy wierzchołek wspólny z jakimś Gi (1 ¬ i ¬ m)przechodzimy przez cykl Eulera w tym Gi wracając do tego samegowierzchołka i kontynuujemy poruszanie się po cyklu C .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 38 / 94
-
Dowód twierdzenie Eulera, ciąg dalszy
Cykl Eulera w G uzyskamy przechodząc przez kolejne wierzchołki cyklu C ,przy czym napotkawszy wierzchołek wspólny z jakimś Gi (1 ¬ i ¬ m)przechodzimy przez cykl Eulera w tym Gi wracając do tego samegowierzchołka i kontynuujemy poruszanie się po cyklu C .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 39 / 94
-
Dowód twierdzenie Eulera, ciąg dalszy
Cykl Eulera w G uzyskamy przechodząc przez kolejne wierzchołki cyklu C ,przy czym napotkawszy wierzchołek wspólny z jakimś Gi (1 ¬ i ¬ m)przechodzimy przez cykl Eulera w tym Gi wracając do tego samegowierzchołka i kontynuujemy poruszanie się po cyklu C .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 40 / 94
-
Cykl Eulera
Uwaga.Grafy niespójne też mogą zawierać cykl Eulera - gdy do grafueulerowskiego dołożymy dowolną liczbę wierzchołków stopnia zero(dokładamy tylko wierzchołki, nie dokładamy krawędzi) uzyskamy grafeulerowski.
v1 v4
v2
v3 v5
v6
v7
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 41 / 94
-
Droga Eulera
Wniosek.Skończony graf spójny mający dokładnie dwa wierzchołki nieparzystegostopnia ma drogę Eulera.
Dowód.Niech u oraz v będą wierzchołkami o stopniu nieparzystym. Na chwilędodajemy do grafu krawędź uv . Nowy graf ma wszystkie wierzchołkistopnia parzystego, z twierdzenia Eulera zawiera więc cykl Eulera.Usuwając krawędź uv pozostanie nam droga Eulera.
Uwaga.Twierdzenie Eulera mówi kiedy graf ma cykl Eulera, ale nie daje przepisujak go znaleźć.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 42 / 94
-
Algorytm Fleury’ego szukania cyklu lub drogi Eulera
Algorytm Fleury’egoNa wyjściu dostaniemy ciąg VS będący ciągiem wierzchołkóworaz ciąg ES będący ciągiem krawędzi drogi (cyklu) Eulera.1 Wybierz dowolny wierzchołek v stopnia nieparzystego, o ile istnieje.
Jeśli nie ma wierzchołka stopnia nieparzystego, to wybierz dowolnywierzchołek v . Niech VS = v , ES jest pusty.
2 Jeśli z v nie wychodzi żadna krawędź, to zakończ.3 Jeśli z v wychodzi dokładnie jedna krawędź e (do wierzchołka, który
oznaczymy w), to usuń e z EG oraz usuń v z VG i przejdź do kroku 5.4 Jeśli z v wychodzi więcej niż jedna krawędź, to wybierz tę krawędź e
(z u do jakiegoś w), po usunięciu której graf pozostanie spójny (jeślito niemożliwe, to mamy przypadek 3). Usuń e z EG .
5 Dołącz w na końcu VS , dołącz e na końcu ES . Przejdź do krokudrugiego zastępując v przez w .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 43 / 94
-
Algorytm Fleury’ego szukania cyklu Eulera
Przykład działania (1/9).
v1
v2
v3
v5 v4
b
a
c
gh
de
f
(1) Wybieramy dowolny wierzchołek (tu wszystkie są parzystego stopnia),na przykład v5. VS = v5, ES jest pusty.(4) Wybieramy dowolną krawędź z niego wychodzącą, na przykład e iusuwamy ją z grafu (graf pozostanie spójny).(5) VS = v5v4, ES = e.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 44 / 94
-
Algorytm Fleury’ego szukania cyklu Eulera
Przykład działania (2/9).
v1
v2
v3
v5 v4
b
a
c
gh
d
f
(4) Wybieramy dowolną krawędź wychodzącą z v4, na przykład f iusuwamy ją z grafu (graf pozostanie spójny).(5) VS = v5v4v5, ES = ef .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 45 / 94
-
Algorytm Fleury’ego szukania cyklu Eulera
Przykład działania (3/9).
v1
v2
v3
v5 v4
b
a
c
gh
d
(4) Wybieramy dowolną krawędź z wychodzącą z v5, na przykład h iusuwamy ją z grafu (graf pozostanie spójny).(5) VS = v5v4v5v2, ES = efh.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 46 / 94
-
Algorytm Fleury’ego szukania cyklu Eulera
Przykład działania (4/9).
v1
v2
v3
v5 v4
b
a
c
g
d
(4) Wybieramy „dowolną” krawędź z wychodzącą z v2, na przykład c iusuwamy ją z grafu (graf pozostanie spójny). Uwaga: gdybyśmy wybralikrawędź b, graf nie byłby spójny! Mogliśmy natomiast wybrać g .(5) VS = v5v4v5v2v3, ES = efhc .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 47 / 94
-
Algorytm Fleury’ego szukania cyklu Eulera
Przykład działania (5/9).
v1
v2
v3
v5 v4
b
a
g
d
(3) Jedyną krawędzią wychodzącą z v3 jest d , usuwamy ją z grafu iusuwamy wierzchołek v3.(5) VS = v5v4v5v2v3v4, ES = efhcd .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 48 / 94
-
Algorytm Fleury’ego szukania cyklu Eulera
Przykład działania (6/9).
v1
v2
v5 v4
b
a
g
(3) Jedyną krawędzią wychodzącą z v4 jest g , usuwamy ją z grafu iusuwamy v4.(5) VS = v5v4v5v2v3v4v2, ES = efhcdg .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 49 / 94
-
Algorytm Fleury’ego szukania cyklu Eulera
Przykład działania (7/9).
v1
v2
v5
b
a
(3) Jedyną krawędzią wychodzącą z v2 jest b, usuwamy ją z grafu iusuwamy v2.(5) VS = v5v4v5v2v3v4v2v1, ES = efhcdgb.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 50 / 94
-
Algorytm Fleury’ego szukania cyklu Eulera
Przykład działania (8/9).
v1
v5
a
(3) Jedyną krawędzią wychodzącą z v1 jest a, usuwamy ją z grafu iusuwamy v1.(5) VS = v5v4v5v2v3v4v2v1v5, ES = efhcdgba.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 51 / 94
-
Algorytm Fleury’ego szukania cyklu Eulera
Przykład działania (9/9).
v5
(2) Kończymy.VS = v5v4v5v2v3v4v2v1v5,ES = efhcdgba.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 52 / 94
-
Algorytm Fleury’ego szukania cyklu Eulera
Przykład działania (9/9).
v1
v2
v3
v5 v4
b
a
c
gh
de
f
VS = v5v4v5v2v3v4v2v1v5,ES = efhcdgba.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 53 / 94
-
Algorytm Fleury’ego szukania drogi Eulera
Przykład działania (1/10).
v1
v6
v2
v3
v5 v4
b
a
c
gh
d
ef
u
(1) Wybieramy dowolny wierzchołek nieparzystego stopnia (są dwa), naprzykład v4. VS = v4, ES jest pusty.(4) Wybieramy dowolną krawędź z niego wychodzącą, na przykład g iusuwamy ją z grafu (graf pozostanie spójny).(5) VS = v4v2, ES = g .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 54 / 94
-
Algorytm Fleury’ego szukania drogi Eulera
Przykład działania (2/10).
v1
v2
v3
v5 v4
v6
b
a
c
h
d
fe
u
(4) Wybieramy dowolną krawędź wychodzącą z v2, na przykład c iusuwamy ją z grafu (graf pozostanie spójny).(5) VS = v4v2v3, ES = gc .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 55 / 94
-
Algorytm Fleury’ego szukania drogi Eulera
Przykład działania (3/10).
v1
v2
v3
v5 v4
v6
b
a
h
d
fe
u
(3) Usuwamy krawędź d (nie mamy wyboru) i usuwamy v3.(5) VS = v4v2v3v4, ES = gcd .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 56 / 94
-
Algorytm Fleury’ego szukania drogi Eulera
Przykład działania (4/10).
v1
v2
v5 v4
v6
b
a
h
fe
u
(3) Usuwamy krawędź e z grafu (nie mamy wyboru) i usuwamy v4.(5) VS = v4v2v3v4v5, ES = gcde.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 57 / 94
-
Algorytm Fleury’ego szukania drogi Eulera
Przykład działania (5/10).
v1
v2
v5
v6
b
a
h
f
u
(4) Wybieramy i usuwamy „dowolną” krawędź wychodzacą z v5,na przykład a (mogliśmy h, nie mogliśmy f ); graf pozostanie spójny.(5) VS = v4v2v3v4v5v1, ES = gcdea.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 58 / 94
-
Algorytm Fleury’ego szukania drogi Eulera
Przykład działania (6/10).
v1
v2
v5
v6
b
h
f
u
(3) Usuwamy krawędź b i wierzchołek v1(5) VS = v4v2v3v4v5v1v2, ES = gcdeab.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 59 / 94
-
Algorytm Fleury’ego szukania drogi Eulera
Przykład działania (7/10).
v2
v5
v6
h
f
u
(3) Usuwamy krawędź h i wierzchołek v2(5) VS = v4v2v3v4v5v1v2v5, ES = gcdeabh.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 60 / 94
-
Algorytm Fleury’ego szukania drogi Eulera
Przykład działania (8/10).
v5
v6
f
u
(3) Usuwamy krawędź f i wierzchołek v5(5) VS = v4v2v3v4v5v1v2v5v6, ES = gcdeabhfVS = v4v2v3v4v5v1v2v5v6, ES = gcdeabhf .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 61 / 94
-
Algorytm Fleury’ego szukania drogi Eulera
Przykład działania (9/10).
v6
u
(4) Usuwamy krawędź u.(5) VS = v4v2v3v4v5v1v2v5v6v6, ES = gcdeabhfu
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 62 / 94
-
Algorytm Fleury’ego szukania drogi Eulera
Przykład działania (10/10).
v6
(2) Kończymy.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 63 / 94
-
Algorytm Fleury’ego szukania drogi Eulera
Przykład działania.
v1
v6
v2
v3
v5 v4
b
a
c
gh
d
ef
u
Droga Eulera:VS = v4v2v3v4v5v1v2v5v6v6,ES = gcdeabhfu.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 64 / 94
-
Droga i cykl Hamiltona
Definicja. Droga Hamiltona to droga przechodząca przez każdywierzchołkek grafu dokładnie raz.
Definicja. Cykl Hamiltona to cykl przechodzący przez każdy wierzchołekgrafu dokładnie raz (oczywiście pierwszy wierzchołek jest ostatnim).
Definicja. Graf hamiltonowski to graf zawierający cykl Hamiltona.
Przykład. Graf hamiltonowski (po lewej); cykl Hamiltona to ab, drogaHamiltona to a, a także b. Po prawej − graf niehamiltonowski
a
b
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 65 / 94
-
Droga i cykl Hamiltona
Fakt.Graf niespójny nie jest hamiltonowski.
Fakt.Graf pełny jest hamiltonowski.Graf pełny o n wierzchołkach (oznaczany Kn) zawiera n! cykli Hamiltona− tyle jest permutacji wierzchołków wyznaczających cykl (rozróżniamycykle zaczynające się w różnych wierzchołkach i “poruszanie się w obiestrony”).
Uwaga.Nie jest znany żaden efektywny (działający w czasie wielomianowym)algorytm szukania cyklu/drogi Hamiltona w grafie.Problem znalezienia cyklu Hamiltona jest NP-zupełny.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 66 / 94
-
DODATEK: P⊆ NPC ⊆ NP.
Problem P to problem,którego rozwiązanie można znaleźć w czasie wielomianowym.
Problem NP to problem,którego rozwiązanie można zweryfikować w czasie wielomianowym.
Pytanie: „Czy P = NP ?” znalazło się na liście siedmiu „problemówmilenijnych” (za 1000000$).
Klasa NPC (NP-complete)to klasa problemów NP mająca następującą własność:jeżeli istnieje rozwiązanie jednego z problemów z tej klasy w czasiewielomianowym, to każdy z problemów z tej klasy da się rozwiązać wczasie wielomianowym (albo wszystkie można rozwiązać w czasiewielomianowym, albo żadnego z nich się nie da).
Każdy problem z klasy NPC nazywamy problemem NP-zupełnym.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 67 / 94
-
DODATEK: NPC⊆ NP.
Znamy około tysiąca problemów NP-zupełnych.
Jednym z nich jest problem plecakowy: wybieramy przedmioty, by ichłączna wartość była największa, ale by mieściły się w plecaku.
Bardziej formalnie:mamy plecak o pojemności V oraz zbiór n elementów o wielkości wii wartości ci (dla i = 1, 2, . . . , n). Zmaksymalizuj
∑ni=1 cixi przy założeniu∑n
i=1 wixi ¬ V , gdzie xi = 0 (gdy nie zabieramy) lub xi = 1 (gdyzabieramy do plecaka).
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 68 / 94
-
DODATEK: NP.
Uwaga.Istnieją problemy, o których wiemy, że nie są NP.
Przykład.
Arytmetyka Presburgera (1929).Są to liczby naturalne z aksjomatycznie zdefinowanym dodawaniem.Jest to arytmetyka niesprzeczna i zupełna. Czas działania algorytmówspawdzających poprawność twierdzeń to co najmniej 22
cn, gdzie c to
stała dodatnia (Fischer, Rabin, 1974).
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 69 / 94
-
DODATEK DO DODATKU: Problem stopu, Alan Turing (1936).
Załóżmy, że istnieje uniwersalny program STOP, który dla dowolnego algorytmu Ai danych D do tego algorytmu rozstrzyga, czy program się zatrzymuje.
Algorytm STOP(A, D):
jeżeli algorytm A na danych D się zatrzymuje to zwróć 1,
jeśli algorytm A na danych D nie zatrzymuje się to zwróć 0.
Pokażemy, że to prowadzi do sprzeczności.
Algorytm STOP można zastosować dla programu A (tutaj A to tekst algorytmu)i danych A (tutaj A traktujemy jako napis z danymi wejściowymi). Nowy programAlgorytm TEST(A):
jeżeli STOP(A, A) zwraca 1 to zapętl się, jeśli zwraca 0 to się zatrzymaj.
Zatem algorytm TEST(A) albo się zatrzymuje (jeżeli STOP(A,A) zwraca 0),albo nie zatrzymuje się (jeżeli STOP(A,A) zwraca 1).
Obserwacja. Jeżeli TEST(TEST) zatrzymuje się, to STOP(TEST, TEST) zwrócił 0,czyli TEST dla danych TEST nie zatrzymuje się.
Jeżeli TEST(TEST) nie zatrzymuje się, to STOP(TEST, TEST) zwrócił 1,czyli TEST dla danych TEST zatrzymuje się.
Za każdym razem otrzymujemy sprzeczność.(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 70 / 94
-
Grafy hamiltonowskie
Problem. Kurier rozwozi przesyłki. Chce każdego odbiorcę odwiedzić tylkoraz i wrócić do punktu startu. Czy jest to możliwe w sytuacjiprzedstawionej na rysunku (nie ma drogi od klienta 2 do 5, ani od 2 do 6,ani od 5 do 8, ...)? Tak, jest to możliwe.
1 2
3
4
5
6
7
8
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 71 / 94
-
Twierdzenie Ore
Twierdzenie (Ore).Jeśli w grafie prostym G (VG ,EG ) o n wierzchołkach (n 3) mamy
deg(v) + deg(u) n
dla każdej pary wierzchołków u i v takich, że {u, v} /∈ EG(u oraz v to niesąsiednie wierzchołki), to G posiada cykl Hamiltona.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 72 / 94
-
Dowód twierdzenia Ore
Dowód nie wprost. Załóżmy, że deg(v) + deg(u) n dla każdej paryniesąsiednich wierzchołków u i v grafu G (VG ,EG ) i założmy, że G nieposiada cyklu Hamiltona. Zauważmy, że dołożenie do grafu dodatkowychkrawędzi nie zmniejszy sumy stopni niesąsiednich wierzchołków (możejedynie ją zwiększyć).
Rysunek nie pokazuje wszystkich krawędzi grafu G .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 73 / 94
-
Dowód twierdzenia Ore
Dowód nie wprost. Załóżmy, że deg(v) + deg(u) n dla każdej paryniesąsiednich wierzchołków u i v grafu G (VG ,EG ) i założmy, że G nieposiada cyklu Hamiltona. Zauważmy, że dołożenie do grafu dodatkowychkrawędzi nie zmniejszy sumy stopni niesąsiednich wierzchołków (możejedynie ją zwiększyć). Dokładamy krawędzie k1, . . . , km−1, km tak długo,aż graf G1(VG ,EG1), gdzie EG1 = EG ∪ {k1, . . . , km−1} nie będzie posiadałcyklu Hamiltona, ale
Graf G1, rysunek nie pokazuje wszystkich jego krawędzi, ale graf ten nie ma cykluHamiltona.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 74 / 94
-
Dowód twierdzenia Ore
Dowód nie wprost. Załóżmy, że deg(v) + deg(u) n dla każdej paryniesąsiednich wierzchołków u i v grafu G (VG ,EG ) i założmy, że G nieposiada cyklu Hamiltona. Zauważmy, że dołożenie do grafu dodatkowychkrawędzi nie zmniejszy sumy stopni niesąsiednich wierzchołków (możejedynie zwiększyć). Dokładamy krawędzie k1, . . . , km−1, km tak długo, ażgraf G1(VG ,EG1), gdzie EG1 = EG ∪ {k1, . . . , km−1} nie będzie posiadałcyklu Hamiltona, ale graf G2(VG ,EG2), gdzie EG2 = EG ∪ {k1, . . . , km}posiada cykl Hamiltona.
km
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 75 / 94
-
Graf G1(VG ,EG1), gdzie EG1 = EG ∪ {k1, . . . , km−1} nieposiada cyklu Hamiltona, a graf G2(VG ,EG2), gdzieEG2 = EG ∪ {k1, . . . , km} posiada cykl Hamiltona
Tym cyklem niech będzie v1v2 . . . vnv1, gdzie v1, vn to końce krawędzi km.
v1v2 vn
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 76 / 94
-
Dowód twierdzenia Ore, graf G1 nie posiada cykluHamiltona
Oznacza to, że v1 . . . vn jest drogą Hamiltona w G1 oraz wierzchołki v1 ivn nie są sąsiednie w G1. Oczywiście deg(v1) + deg(vn) n.Niech S1 = {j : {v1, vj} ∈ E (G1)} oraz S2 = {j : {vn, vj−1} ∈ E (G1)}Ponieważ ‖S1‖+ ‖S2‖ = deg(v1) + deg(vn) n oraz S1 ∪ S2 ma conajwyżej n − 1 elementów (do tej sumy nie należy 1), więc istniejek ∈ S1 ∩ S2.
v1vk−1
vk
vn
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 77 / 94
-
Dowód twierdzenia Ore
Istnieje k ∈ S1 ∩ S2. Zatem krawędzie {v1, vk} oraz {vn, vk−1} sąkrawędziami grafu i droga v1v2 . . . vk−1vn . . . vkv1 jest cyklem Hamiltona wG1, co jest sprzeczne z naszym założeniem.
v1v2 vk−1
vk
vn
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 78 / 94
-
Dowód twierdzenia Ore
Istnieje k ∈ S1 ∩ S2. Zatem krawędzie {v1, vk} oraz {vn, vk−1} sąkrawędziami grafu i droga v1v2 . . . vk−1vn . . . vkv1 jest cyklem Hamiltona wG1, co jest sprzeczne z naszym założeniem.
v1v2 vk−1
vk
vn
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 79 / 94
-
Twierdzenie Diraca
Twierdzenie (Diraca).Jeśli w grafie prostym G (VG ,EG ) o n wierzchołkach (n 3)
deg(v) 12n
dla każdego wierzchołka v , to G posiada cykl Hamiltona.
Dowód.Wtedy
deg(v) + deg(u) 12n +
12n = n
i stosujemy twierdzenie Ore.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 80 / 94
-
Grafy dwudzielne
Definicja. Graf G jest dwudzielny, jeśli jego zbiór wierzchołków jest sumądwóch niepustych i rozłącznych zbiorów V1 oraz V2 takich, że każdakrawędź tego grafu ma jeden wierzchołek z V1, drugi z V2. Graf dwudzielnynazywamy pełnym grafem dwudzielnym, gdy każdy wierzchołek z V1 jestpołączony z każdym wierzchołkiem z V2 dokładnie jedną krawędzią.
Przykład. Graf dwudzielny i pełny graf dwudzielny:
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 81 / 94
-
Grafy dwudzielne
Twierdzenie.Niech G będzie grafem dwudzielnym i niech V1 ∪ V2 będzie podziałemjego wierzchołków. Jeśli G zawiera cykl Hamiltona, to ‖V1‖ = ‖V2‖.
Dowód.Jeśli v1v2 . . . vnv1 jest cyklem Hamiltona, a każda krawędź ma jedenwierzchołek z V1, drugi z V2, to wierzchołki o indeksach nieparzystychnależą do jednego z tych zbiorów, a te o indeksach parzystych do drugiego.Liczba n musi być parzysta, gdyż {v1, vn} jest krawędzią (w przeciwnymrazie oba końce tej krawędzi należałyby do tego samego zbioru). Zatem‖V1‖ = ‖V2‖.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 82 / 94
-
Grafy dwudzielne
Wniosek.Niech G będzie grafem dwudzielnym i niech V1 ∪ V2 będzie podziałemjego wierzchołków.Jeśli G zawiera drogę Hamiltona, to liczby ‖V1‖ oraz ‖V2‖ różnią się o conajwyżej o 1.
Dowód. Postępujemy jak w dowodzie poprzedniego twierdzenia. Jeśli wdrodze Hamiltona v1v2 . . . vn liczba n jest nieparzysta, to liczbawierzchołków w V1 różni się o 1 od liczby wierzchołków w V2. Jeśli n jestliczbą parzystą, to ‖V1‖ = ‖V2‖.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 83 / 94
-
Grafy dwudzielne
Twierdzenie.Niech G będzie pełnym grafem dwudzielnym o n wierzchołkach, gdzien 3, i niech V1 ∪ V2 będzie podziałem jego wierzchołków.Jeśli ‖V1‖ = ‖V2‖, to G zawiera cykl Hamiltona.
Dowód.Każdy z wierzchołków z V1 jest połączony jedną krawędzią z dowolnymwierzchołkiem z V2. Cykl Hamiltona otrzymamy idąc, w dowolny sposób,przechodząc na przemian przez wierzchołek z V1, następnie V2, ...
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 84 / 94
-
Kod Graya
Jak wiemy, kod Graya długości n to 2n-elementowy ciąg różnychn-elementowych ciągów binarnych (ciągów zer i jedynek) ustawionych tak,by dwa kolejne ciągi (a także pierwszy i ostatni) różniły się dokładniejedną cyfrą.
Popatrzmy na ten problem nie wielowymiarowo (kostka binarna), ale jak na problem z
teorii grafów.
Niech V (G ) będzie zbiorem wszystkich n-elementowych ciągów binarnych,a dwa ciągi u oraz v łączymy krawędzią wtedy, gdy u oraz v różnią siędokładnie jedną cyfrą. Kod Graya o długości n jest po prostu drogąHamiltona w tym grafie.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 85 / 94
-
Kod Graya, zapis 03 oznacza 000, a 101504 oznacza 10111110000
Twierdzenie.Każda kostka binarna Qn zawiera kod Graya (drogę Hamiltona)zaczynającą się od wierzchołka 0n, a kończącą się w wierzchołku 10n−1.
Dowód. Przeprowadzimy dowód indukcyjny.
Dla n = 1 kostka Q1 zawiera drogę Hamiltona 0, 1.
Załóżmy, że Qk zawiera drogę Hamiltona od wierzchołka 0k , dowierzchołka 10k−1. Kostka Qk+1 składa się z dwóch podkostek Qk .Drogę Hamiltona w Qk budujemy tak. Zaczynamy od wierzchołka0k+1 i przechodzimy drogą Hamiltona w pierwszej podkostce (tej zzerem na początku) aż do wierzchołka 010k−1, potem krawędzią„między” podkostkami do wierzchołka 110k−1 i drogą Hamiltona (wodwrotnej kolejności) w drugiej podkostce (tej z jedynką napoczątku) do 10k .
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 86 / 94
-
Kod Graya, 000, 001, 011, 010, 110, 111, 101, 100
Przykład. Po prawej stronie jeden z dwunastu kodów Graya
(zaczynających się w 000) długości trzy:
000 100
110010
001 101
111011
000 100
110010
001 101
111011
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 87 / 94
-
Wszystkie kody Graya długości trzy zaczynające się w 000
000 100
110010
001 101
111011
000 100
110010
001 101
111011
000 100
110010
001 101
111011
000 100
110010
001 101
111011
000 100
110010
001 101
111011
000 100
110010
001 101
111011
000 100
110010
001 101
111011
000 100
110010
001 101
111011
000 100
110010
001 101
111011
000 100
110010
001 101
111011
000 100
110010
001 101
111011
000 100
110010
001 101
111011
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 88 / 94
-
DODATEK: Ile jest kodów Graya?
Oznaczmy przez gn liczbę różnych kodów Graya długości nzaczynających się w 0n.
Wiemy, że
g2 = 2 (są dwa kody długości 2;są to 00, 10, 11, 01 oraz 00, 01, 11, 10)
g3 = 12 (zobacz poprzedni slajd)
Wyznaczenie gn dla większych n jest trudne.Wiemy jedynie, że
g4 = 2688
g5 = 1813091520
g6 = 71676427445141767741440
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 89 / 94
-
Przykład: szukamy dowolnego kodu Graya długości cztery
aa
0000
1000 0001
1001
1100
0100
0101
1101
1111
1110 0111
0110
0011
0010
1010
1011
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 90 / 94
-
Jeden z wielu kodów Graya długości cztery:
0000, 0001, 1001, 1000, 1100, 0100, 0101, 1101 (zero na trzecim miejscu)
1111, 1110, 0110, 0111, 0011, 1011, 1010, 0010 (jedynka na trzecim miejscu)
0000
1000 0001
1001
1100
0100
0101
1101
1111
1110 0111
0110
0011
0010
1010
1011
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 91 / 94
-
Cykl Hamiltona zawierający tę drogę
aa
0000
1000 0001
1001
1100
0100
0101
1101
1111
1110 0111
0110
0011
0010
1010
1011
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 92 / 94
-
Graf skierowany
Definicja.Grafem skierowanym nazywamy parę G = (VG ,EG ), gdzie VG jestskończonym zbiorem oraz EG jest kolekcją∗ zbioru VG × VG . Elementy zezbioru VG to wierzchołki grafu, a elementy z VG × VG to krawędzie. Jeślikrawędzią e jest uporządkowana para (p, q), to p nazywamy początkiemkrawędzi e, natomiast q końcem tej krawędzi.
∗„jest kolekcją” dopuszcza istnienie krawędzi wielokrotych; jeśli napiszemy „jestpodzbiorem”, to nie będzie krawędzi wielokrotnych
Uwaga. Grafy skierowane często rysujemy: punkty na płaszczyźnie to wierzchołki,natomiast „strzałki” (najczęściej odcinki skierowane) łączące te punkty to krawędzie,
przy czym jeśli krawędź e jest uporządkowaną parą (p, q), to strzałka odpowiadająca
krawędzi e biegnie od p do q.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 93 / 94
-
Graf skierowany
Przykład.
v1
v2
v3
v4
v5
v6a
cd b
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 94 / 94
-
Droga
Definicja.Drogą∗ w grafie skierowanym G nazywamy taki ciąg krawędzi, że koniecjednej krawędzi jest początkiem następnej. Inaczej mówiąc, e1e2 . . . en jestdrogą, jeśli istnieją wierzchołki v1, v2, . . . , vn, vn+1 takie, że dla każdegoi = 1, 2, . . . , n mamy ei = (vi , vi+1).
Jeśli każda krawędź ei jest jedyną krawędzią od vi do vi+1, to drogęe1e2 . . . en możemy opisać podając te wierzchołki v1v2 . . . vnvn+1.
Przykład. Na poprzednim slajdzie, aabc oraz aabd to inne drogii opis v6v6v6v3v1 nie jest jednoznaczny.∗ spotyka się różne nazwy
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 95 / 94
-
Opisywanie grafu:macierz sąsiedztwa grafu skierowanego
Rozważmy skończony graf skierowany G o zbiorze wierzchołkówVG = {v1, v2, . . . , vn}.
Definicja.Macierzą sąsiedztwa nazywamy macierz kwadratową n-tego stopniaM = [mij ], której każdy wyraz mij jest równy liczbie krawędzi odwierzchołka vi do wierzchołka vj . Jeśli nie ma takiej krawędzi, to mij = 0.
Obserwacja.Jedynka na głównej przekątnej macierzy oznacza pętlę w grafie.Suma wszystkich wyrazów macierzy jest równa liczbie krawędzi w grafie.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 96 / 94
-
Macierz sąsiedztwa grafu skierowanego
Przykład. Graf i jego macierz sąsiedztwa.
v1
v2
v3
v4
v5
v6
2 0 0 0 0 11 3 0 2 0 03 0 1 0 0 10 1 0 2 0 00 0 0 0 1 01 0 1 0 0 0
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 97 / 94
-
Macierz sąsiedztwa grafu skierowanego
Fakt.Każdej relacji w n-elementowym zbiorze S odpowiada graf skierowany bezkrawędzi wielokrotnych.Odpowiada mu więc macierz sąsiedztwa, której wyrazami są tylko zera ijedynki.
Przykład.
A = {2, 3, 4, 6, 16, 24}, dA = {(a, b) ∈ A× A : a|b}Przemianujemy zbiór wierzchołków 2, 3, 4, 6, 16, 24 na v1, v2, v3, v4, v5, v6.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 98 / 94
-
A = {2, 3, 4, 6, 16, 24}, dA = {(a, b) ∈ A× A : a|b}
2 3
4 6
16 24
macierz sąsiedztwa
1 0 1 1 1 10 1 0 1 0 10 0 1 0 1 10 0 0 1 0 10 0 0 0 1 10 0 0 0 1 1
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 99 / 94
-
A = {2, 3, 4, 6, 16, 24}, dA = {(a, b) ∈ A× A : a|b}
v1 v2
v3 v4
v5 v6
macierz sąsiedztwa
1 0 1 1 1 10 1 0 1 0 10 0 1 0 1 10 0 0 1 0 10 0 0 0 1 00 0 0 0 0 1
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 100 / 94
-
MR← = MTR
Fakt.Macierzą relacji odwrotnej R← do relacji Rjest macierz transponowana do macierzy relacji R.
Przykład.Zbiór A = {1, 2, 3} z relacją ¬ ma macierz równą 1 1 10 1 1
0 0 1
Macierzą relacji odwrotnej () jest 1 0 01 1 0
1 1 1
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 101 / 94
-
Opisywanie grafu:macierz sąsiedztwa
Definicja.Macierz symetryczna, to taka macierz M, że M = MT .
Wniosek.Relacja jest symetryczna wtedy i tylko wtedy, gdy macierz tej relacji jestsymetryczna.
Obserwacja.Macierz symetryczna o wyrazach będących liczbami naturalnymi możereprezentować zarówno graf skierowany jak i nieskierowany.
Dla grafów nieskierowanych każda krawędź nie będąca pętlą występuje dwukrotnie,
a liczba wszystkich krawędzi grafu jest sumą wyrazów na i nad główną przekątną.
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 102 / 94
-
Opisywanie grafu:macierz sąsiedztwa grafu nieskierowanego
Przykład.
v1 v2
v3 v4
v5 v6
macierz sąsiedztwa
0 0 1 1 1 10 0 0 1 0 11 0 0 0 1 11 1 0 1 0 11 0 1 0 0 01 1 1 1 0 0
(Wykłady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 103 / 94