104
Grafy (1): wprowadzenie Wyklady z matematyki dyskretnej dla informatyków i teleinformatyków UTP Bydgoszcz 11 (Wyklady z matematyki dyskretnej) Grafy (1): wprowadzenie 11 1 / 94

Grafy (1): wprowadzenie - UTPimif.utp.edu.pl/jjanusz/MD_11_grafy1.pdf · 2020. 5. 22. · Grafy (1): wprowadzenie Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

  • 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