Matematyka dyskretna Andrzej Łachwa, UJ, 2019 andrzej.lachwa@uj.edu.pl 1A/14
Literatura obowiązkowa [1] K.A.Ross, Ch.R.B.Wright: Matematyka Dyskretna. Wydawnictwo Naukowe PWN, Warszawa 1996 [2] R.L.Graham, D.E.Knuth, O.Patashnik: Matematyka Konkretna. Wydawnictwo Naukowe PWN, Warszawa 1996 [3] R.J.Wilson: Wprowadzenie do teorii grafów. Wydawnictwo Naukowe PWN, Warszawa 1998 [4] Wykłady z matematyki dyskretnej dla informatyków http://wazniak.mimuw.edu.pl/index.php?title=matematyka_dyskretna_1 Inne źródła będą podawane w trakcie wykładów.
Ważne informacje Konsultacje: czwartki 14-15, pok. C-2-25 Slajdy z wykładów będą udostępniane po kolejnych wykładach na stronie Zakładu PiGK w zakładce Dydaktyka/Materiały. Uwaga: materiały te nie zastępują wykładów, nie zawierają wszystkich treści i wyjaśnień. Są tylko skrótem, który ma być dla Państwa pomocny w przygotowywaniu się do ćwiczeń i do egzaminu. Oprócz slajdów będą dostępne zestawy zadań. UWAGA: Wykłady 7.03 i 4.04 będą się zaczynały o 12.00 w sali A-1-08; pozostałe od 12.10 w sali A-1-06.
Warunki zaliczenia przedmiotu - zaliczenie ćwiczeń i zdanie egzaminu. Egzamin: o o o o po uzyskaniu zaliczenia ćwiczeń 18 czerwca (wtorek), w godz. 10-12 pisemny, w zakresie wiedzy teoretycznej i umiejętności rozwiązywania zadań egzamin poprawkowy we wrześniu Kryteria oceny dla efektów kształcenia w module: oceny 3/4/5 odpowiadają wiedzy, umiejętnościom i kompetencjom na poziomie co najmniej 40% / 60% / 80%.
Czym będziemy się zajmować?
Ile rozwiązań w dziedzinie liczb naturalnych ma równanie s1 + s2 + s3 =10? - - - - - - - - - - - - - - - - - - - - - - - - Mamy 7 klocków z napisami 1,2,2,4,4,4,7. Ile różnych 7-cyfrowych liczb możemy ułożyć z tych klocków? - - - - - - - - - - - - - - - - - - - - - - - - Ile jest różnych podziałów zbioru 11 elementowego na 8 niepustych i parami rozłącznych części? - - - - - - - - - - - - - - - - - - - - - - - - -
Na ile sposobów można wybrać 7 cukierków o trzech smakach? - - - - - - - - - - - - - - - - - - - - - - - - Ile potrzeba kolorów, aby pokryć nimi mapę powiatów w taki sposób, że żadne dwa sąsiednie nie będą w tym samym kolorze? - - - - - - - - - - - - - - - - - - - - - - - - 58 Ile wynosi suma i 2? i=0 i
W programie studiów informatyki mamy logikę, teorię mnogości, analizę matematyczną, algebrę, geometrię, rachunek prawdopodobieństwa i inne przedmioty matematyczne. Matematyka dyskretna łączy i wykorzystuje różne działy matematyki aby dostarczyć informatykom podstaw teoretycznych oraz metod niezbędnych do konstruowania i analizy algorytmów. Zaczynamy od teorii grafów!
Grafy podstawowe definicje Graf (graf ogólny) to para G=(V, E), gdzie V to niepusty i skończony zbiór, którego elementy nazywamy wierzchołkami lub węzłami, E to skończony zbiór z powtórzeniami jedno i dwuelementowych podzbiorów V, zwanych krawędziami. Jednoelementowe podzbiory zbioru V nazywamy pętlami, a podzbiory powtarzające się nazywamy krawędziami wielokrotnymi. Graf prosty to graf G=(V, E), w którym E jest zbiorem dwuelementowych podzbiorów V. A zatem graf prosty to graf bez pętli i bez krawędzi wielokrotnych.
Przykład: graf ogólny deg(a)=5 deg(b)=2 deg(c)=3 G = (V, E) V = {a,b,c} E = {{a}, {a,b}, {a,b}, {a,c}, {c}}
Krawędź łącząca v z w oznaczana będzie jako vw. Jeśli istnieje krawędź vw to mówimy, że wierzchołki v i w są sąsiadami; oraz że krawędź vw jest incydentna do v oraz incydentna do w. Podobnie dwie krawędzie nazywamy sąsiednimi jeżeli mają wspólny wierzchołek. Dla grafu G symbolem V(G) będziemy oznaczać jego zbiór wierzchołków, zaś symbolem E(G) jego zbiór (lub zbiór z powtórzeniami) krawędzi. Często spotyka się w literaturze definicję, że stopień wierzchołka v w grafie G to liczba krawędzi incydentnych z v. Definicja powyższa jest poprawna jedynie dla grafów prostych. W grafie ogólnym stopień wierzchołka v trzeba zdefiniować inaczej, a mianowicie, że jest to suma podwojonej liczby pętli {v} i liczby krawędzi {v,w} nie będących pętlami. Stopień wierzchołka v oznaczany jest jako deg(v) lub deg v.
Twierdzenie Jeśli G=(V, E) jest grafem ogólnym, to Wniosek: liczba wierzchołków o nieparzystym stopniu jest parzysta. Dowód Każda krawędź, która nie jest pętlą, jest incydentna do dwóch wierzchołków. Zliczając krawędzie incydentne do kolejnych wierzchołków, a następnie sumując te wartości, każda krawędź vw zostanie zliczona dwa razy: raz przy rozpatrywaniu wierzchołka v, a drugi raz przy w. Pętla zawsze liczone są podwójnie. Zatem mamy podwojoną liczbę krawędzi.
Dla grafów prostych G=(V, E), G1=(V1, E1), G2=(V2, E2) definiujemy następujące pojęcia: suma grafów przecięcie grafów różnica grafów podgraf grafu G to graf H, w którym,,, i, które nie budzą żadnych wątpliwości interpretacyjnych. W przypadku grafów ogólnych sprawa nie jest już taka prosta. Zbiory E, E 1, E 2 są wówczas zbiorami z powtórzeniami.
Dla grafów ogólnych G1=(V1, E1), G2=(V2, E2) suma tych grafów to graf G1 G2 = (V1 V2, E1 E2), przy czym druga operacja sumy dotyczy zbiorów z powtórzeniami. Możliwe jest zatem określenie sumy jako maksimum krotności każdego z elementów występujących w obu zbiorach bądź jako sumy krotnościowej. Podobnie trzeba precezyjnie zdefiniować iloczyn grafów ogólnych i różnicę grafów ogólnych. Podgraf grafu ogólnego G=(V, E) to graf ogólny H, w którym i, ale to drugie zawieranie jest operacją zawierania się zbiorów z powtórzeniami.
Przykład sumy krotnościowej
Restrykcja grafu prostego G=(V, E) do podzbioru X V to G X = (X, {{v,w}: v X, w X, {v,w} E}), zwany również podgrafem indukowanym (rozszerzenie na grafy ogólne jest oczywiste). Iloraz grafu prostego G przez relację równoważności zbiorze jego wierzchołków to graf prosty postaci na przy czym (v, w). W tym przypadku rozszerzenie na grafy ogólne nie jest trywialne. Można np. mówić o ilorazie grafu prostego, który to iloraz jest grafem ogólnym, w którym krawędź między klasami abstrakcji jest wielokrotna, a jej krotność wynika z liczby krawędzi między elementami tych klas w grafie prostym.
Ściągnięcie zbioru wierzchołków w grafie prostym G=(V, E) to szczególny przypadek ilorazu, w którym klasy równoważności wszystkich wierzchołków spoza X są jednoelementowe, a X stanowi dodatkową klasę, tzn.. W ten sposób zbiór X został ściągnięty do punktu, którego sąsiadami są sąsiedzi jakiegokolwiek wierzchołka z X. Z drugiej strony, jeśli jest relacją równoważności o klasach, to ściągając w grafie G kolejno zbiory otrzymamy graf ilorazowy. Ściągnięcie oznaczamy przez V c X. Dopełnienie grafu prostego G o zbiorze wierzchołków V, to graf prosty G o tym samym zbiorze wierzchołków i w którym dwa wierzchołki są siednie wtw gdy nie są sąsiednie w grafie G.
Graf skierowany (lub inaczej digraf) to para D = (V, E), gdzie V jest zbiorem wierzchołków, zaś E jest zbiorem z powtórzeniami krawędzi skierowanych. Krawędź digrafu przestawiamy graficznie jako strzałkę ukazującą kierunek uporządkowania elementów w parze. Graf szkieletowy digrafu D to graf otrzymany z D poprzez zaniedbanie (usunięcie) kierunku krawędzi, ale nie samych krawędzi.
Reprezentacje Pierwszą wygodną reprezentacją grafu jest lista list, czyli lista nazw wierzchołków, gdzie po każdej nazwie wierzchołka występuje lista nazw jego wierzchołków sąsiednich. Drugą reprezentacją jest macierz sąsiedztwa. Dla grafu o n wierzchołkach jest to macierz nxn, której wyraz o indeksach i, j jest równy liczbie krawędzi łączących wierzchołek i-ty z j-tym. Trzecią reprezentacją jest macierz incydencji. Dla grafu o n wierzchołkach i m krawędziach jest to macierz nxm, której wyraz o indeksach i, j jest równy 1 jeżeli wierzchołek i-ty jest incydenty z krawędzią j-tą, oraz 0 w przeciwnym razie. W przypadku digrafów reprezentacje te są odpowiednio modyfikowane.
1 a a 1 b 2 c 1 3 4 aabbc baa cca b 2 0 0 c 1 0 0 2 5 1 2 3 4 5 a 1 1 1 1 0 b 0 0 1 1 0 c 0 1 0 0 1
Grafy etykietowane Bardzo często używamy grafów, w których każdej krawędzi przyporządkowano liczbę wagę. Grafy takie nazywamy ważonymi. Często używamy grafów etykietowanych, tzn. takich, w którch wierzchołkom i/lub krawędziom przypisano nazwy etykiety. W informatyce struktur grafowych etykietowanych używa się często do przechowywania informacji. Informacje zapisywane są w wierzchołkach i/lub krawędziach. Przykładami takich struktur są b-drzewa i b +-drzewa stosowane w bazach danych i systemach plików.
Grafy proste Graf pusty to graf prosty bez krawędzi, zwany często antykliką. Antyklikę o n wierzchołkach oznaczać będziemy przez. Graf pełny to graf prosty, w którym każde dwa wierzchołki połączone są jedną krawędzią. Graf pełny nazywany jest także kliką i oznaczany przez, gdzie n jest liczbą jego wierzchołków. Twierdzenie Liczba krawędzi w klice wynosi.
Graf dwudzielny to graf prosty, w którym zbiór V da się podzielić na dwa rozłączne podzbiory V1 i V2 tak, by żadne dwa wierzchołki w obrębie tego samego podzbioru nie były sąsiadami. Czasem, dla podkreślenia takiego podziału, graf dwudzielny będziemy oznaczać przez. Zauważmy jednak, że podział taki nie jest jednoznaczny, np. w antyklice dowolny podział zbioru wierzchołków na dwa podzbiory jest podziałem dwudzielnym. Pełny graf dwudzielny to graf dwudzielny, w którym każdy wierzchołek z jest połączony z każdym wierzchołkiem z. Pełny graf dwudzielny oznaczać będziemy przez, gdzie r jest rozmiarem, a s rozmiarem.
Przykłady grafów pełnych
Przykłady pełnych grafów dwudzielnych
Graf prosty, w którym każdy wierzchołek ma ten sam stopień nazywamy grafem regularnym. Jeśli każdy wierzchołek ma stopień r, to graf nazywamy regularnym stopnia r. Graf pusty jest grafem regularnym stopnia 0. Grafy regularne stopnia 3 nazywamy grafami kubicznymi. Graf pełny jest grafem regularnym stopnia n-1.
Wróćmy do grafów dwudzielnych. Skojarzenie w grafie dwudzielnym G(V1 V2, E) to podzbiór krawędzi, w którym żadne dwie krawędzie nie wychodzą z tego samego wierzchołka. Powiemy, że wierzchołek v Vi jest skojarzony, jeśli istnieje w V3-i taki, że krawędź vw należy do skojarzenia. Pełne skojarzenie V1 z V2 w grafie dwudzielnym G(V1 V2, E) to skojarzenie, w którym każdy wierzchołek z V1 jest skojarzony. Hall wprowadza funkcję (A) zwracającą dla A V1 zbiór tych wierzchołków V2, które są sąsiednie z przynajmniej jednym wierzchołkiem w zbiorze A. Twierdzenie Halla (1935) Niech G(V1 V2, E) będzie grafem dwudzielnym. Wówczas pełne skojarzenie V1 z V2 istnieje wtedy i tylko wtedy, gdy A (A) dla każdego podzbioru A zbioru V1.
Algorytm znajdowania męża przedstawimy w wersji z losowym doborem narzeczonych. Oznacza to zbudowanie dowolnego skojarzenia w grafie G. Mamy wtedy podzbiór wylosowanych krawędzi M E i podzbiór dziewcząt (podzbiór V1) ze skojarzonymi narzeczonymi ze zbioru chłopców V2. Jeżeli wylosowane skojarzenie nie jest pełne (i nie da się rozszerzyć do pełnego) to musimy znaleźć dla M tzw. ścieżkę alternującą i zastąpić M skojarzeniem M opartym na tej ścieżce. Skojarzenie M ma moc większą o 1 od mocy M. Jeżeli M nie jest pełne to tworzymy ścieżkę alternującą dla M i zastępujemy M skojarzeniem M opartym na tej ostatniej ścieżce. Postępujemy tak aż do otrzymania skojarzenia pełnego.
Hipergrafy Hipergraf to para H = (V, E), gdzie V jest dowolnym, niepustym zbiorem wierzchołków; E jest podzbiorem zbioru P(V) wszystkich możliwych niepustych zbiorów, których elementy należą do V. Elementy E nazywamy hiperkrawędziami. Macierz incydencji jest jedną z najpopularniejszych i najwygodniejszych metod reprezentacji hipergrafu. W macierzy incydencji wiersze odpowiadają krawędziom, a kolumny wierzchołkom hipergrafu. Jeśli element macierzy jest równy 1, to i-ta krawędź jest incydentna do j-tego wierzchołka. W przeciwnym przypadku element ten jest równy 0.
Zadania 1. Znajdź wszystkie grafy o 4 wierzchołkach. 2. Zbadaj, czy istnieje graf o 6 wierzchołkach, których stopnie tworzą ciąg a)(6;2;2;2;1;1) b)(5;3;3;3;3;1) c)(5;4;4;3;3;2) d)(5;5;5;5;3;3) e)(5;5;4;3;3;2) f)(5;5;3;3;2;2)