Matematyczne Podstawy Informatyki
Transkrypt
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Informacje podstawowe 1. Konsultacje: pokój 144. 2. Ćwiczenia tablicowe: dwa kolokwia w ciągu semestru, kolokwium zbiorcze na ostatnich zajęciach. 3. Wykład: test na przedostatnich zajęciach, wpisy i kolokwium poprawkowe na zajęciach ostatnich. Zakres materiału 1. Wprowadzenie do teorii grafów 2. Języki formalne 3. Automaty skończone 4. Elementy teorii obliczeń 5. Elementy kombinatoryki Wprowadzenie do teorii grafów 1. Mapy drogowe 2. Sieci komputerowe 3. Dokumenty hipertekstowe 4. Obwody elektryczne, hydrauliczne itp. 5. Struktura programu Grafy prosty, ogólny i digraf Grafy I Graf prosty to niepusty zbiór skończony wierzchołków V (G ) i skończony zbiór krawędzi E (G ) łączących pary tych wierzchołków. Określoną parę wierzchołków łączy co najwyżej jedna krawędź. I Graf, w którym dopuszczalne jest występowanie więcej niż jednej krawędzi łączącej dwa wierzchołki a także krawędzie łączące wierzchołek ze samym sobą (pętle) to graf ogólny. I Graf skierowany (digraf) to niepusty, skończony zbiór wierzchołków (V (D)) i skończona rodzina A(D) par uporządkowanych elementów ze zbioru V (D) (pary te są często nazywane łukami). Grafy prosty Grafy ogólny Graf skierowany - digraf Dalsze definicje I Stopień wierzchołka to liczba krawędzi wychodzących z danego wierzchołka. I Trasa (ścieżka) jest to linia, po której można przejść z jednego wierzchołka do innego. I Droga (ścieżka prosta) to taka trasa na której żaden wierzchołek nie występuje więcej niż raz. I Cykl to taka droga, w której pierwszy i ostatni wierzchołek są takie same. Przykłady grafów Graf pusty - graf, w którym zbiór krawędzi jest zbiorem pustym, każdy wierzchołek jest w nim izolowany. Oznaczany jest symbolem Nn , gdzie n jest liczbą wierzchołków. Przykłady grafów Graf pełny - graf, w którym każda para wierzchołków jest połączona krawędzią. Oznaczany jest symbolem Kn , gdzie n jest liczbą wierzchołków. Przykłady grafów I Grafe cykliczny - to graf spójny, regularny stopnia 2 (oznaczany Cn , gdzie n jest liczbą wierzchołków). I Jeżeli zostanie usunięta jedna krawędź z grafu cyklicznego to powstanie graf liniowy (oznaczany Pn , gdzie n jest liczbą wierzchołków). I Jeżeli zostanie utwrzony graf z grafu Cn−1 poprzez wstawienie jednego wierzchołka i połączenie go z wszystkimi pozostałymi to powstanie graf nazywany kołem (oznaczany Wn , gdzie n jest liczbą wierzchołków). Przykłady grafów Graf regularny - graf, w którym każdy wierzchołek ma ten sam stopień. Grafem regularnym stopnia r (grafem r-regularnym) nazywany jest graf, w którym każdy wierzchołek ma stopień r. Przykłady grafów I Graf dwudzielny - graf, w którym zbiór wierzchołków można podzielić na dwa rozłączne zbiory, tak aby każda krawędź łączyła parę wierzchołków wziętych z jednego i drugiego zbioru. I Oznaczany jest Km,n , gdzie m to liczba wierzchołków czarnych a n białych (na rysunku jest graf K2,3 ). Izomorfizm Izomorficzność grafów Grafy są izomorficzne jeżeli istnieje wzajemnie jednoznaczna odpowiedniość pomiędzy ich wierzchołkami taka, że liczba krawędzi łączących dane dwa wierzchołki z jednego grafu jest równa liczbie krawędzi łączących odpowiadające im wierzchołki z drugiego grafu. Izomorfizm Spójność I Istnieje możliwość połączenia dwóch grafów, jeżeli oznaczy się pierwszy graf jako G1 natomiast drugi jako G2 i założy się, że zbiory ich wierzchołków są rozłączne to można wówczas przedstawić graf, którego wierzchołki i krawędzie będą wierzchołkami i krawędziami z obu grafów. I Graf jest spójny, gdy nie można go przedstawić w postaci sumy grafów (w przeciwnym razie jest niespójny). Sąsiedztwo I Dwa wierzchołki grafu G - x i y są sąsiednie, jeżeli istnieje krawędź xy, która je łączy (x i y są incydentne z tą krawędzią). I Dwie krawędzie są sąsiednie jeśli mają wspólny wierzchołek. Podgrafy Podgraf Podgraf grafu G to graf, którego wszystkie wierzchołki należą do V (G ), a krawędzie należą do E (G ). Reprezentacja macierzowa I Reprezentacja w postaci rysunku nie jest zawsze wygodna, szczególnie, gdy istnieje potrzeba przechowywania dużych grafów. I Graf można przestawić w postaci macierzy sąsiedztwa o wymiarze n × n (n jest liczbą wierzchołków), każda komórka z wiersza i-tego i j-tej kolumny tej tablicy pokazuje ile jest krawędzi łączących i z j. I Można również przedstawienie macierzy incydencji. Komórka z wiersz i-tego i j-tej kolumny w tej macierzy pokazuje czy wierzchołek i jest incydentny z krawędzią j (zazwyczaj wpisuje się 1 jeśli jest albo 0 jeśli nie jest). Reprezentacja macierzowa 1 2 1 6 5 2 7 4 4 A= M= 1 1 0 0 3 3 0 1 1 0 0 1 0 1 1 0 1 2 0 0 1 1 0 1 0 1 0 0 0 1 1 2 1 1 1 0 0 1 0 1 0 1 0 1 0 1 Reprezentacja grafów w postaci komputerowej 1. Przykład prezentuje graf zapisany za pomocą języka C++. 2. Zaimplementowano klasę Graph. 3. Graf jest przechowywany w pamięci komputera jako wektor wektorów liczb całkowitych dodatnich. 4. W celu oszczędzenia pamięci przechowywana jest w pamięci górna macierz trójkątna (dlaczego jest to możliwe?). ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ Literatura Do napisania materiałów wykorzystano: 1. R.J. Wilson ”‘Wprowadzenie do teorii grafów”’, PWN 2008 2. R. Sedgewick ”‘Algorytmy w C++ - grafy”’, Wydawnictwo RM 2003