Pojęcia podstawowe c.d. Rachunek podziałów Elementy teorii grafów Klasy zgodności Rachunek podziałów i elementy teorii grafów będą stosowane w procedurach redukcji argumentów i dekompozycji funkcji boolowskich. 1
Elementy rachunku podziałów Podziałem na zbiorze S jest system zbiorów P = {Bi }, którego podzbiory są rozłączne, czyli Bi Bj =, jeśli tylko i j = a ponadto S B i i Dla S = {1,2,3,4,5,6}, P = {{1,2}, {3,5}, {4,6} } jest podziałem na S. = Podzbiory nazywamy blokami Podstawowe pojęcia: Relacja , iloczyn podziałów, podział ilorazowy
Elementy rachunku podziałów… Powiemy, że podział Pa jest nie większy od Pb (co oznaczamy: Pa Pb ), jeśli każdy blok z Pa jest zawarty w pewnym bloku z Pb. a = b = c = a = c ≤ a Tak c = c b NIE! (0) – podział najmniejszy b = (1) – podział największy c =
Elementy rachunku podziałów… Iloczynem podziałów a • b nazywamy największy (względem relacji ) podział, który jest nie większy od a oraz b. a = b = a • b =
Elementy rachunku podziałów… Podział ilorazowy Niech Pa i Pb są podziałami na S oraz Pa Pb. Podział Pa | Pb jest podziałem ilorazowym Pa i Pb , jeżeli jego elementy są blokami Pb, a bloki są blokami Pa. Na przykład:
Elementy teorii grafów Grafem prostym nazywamy parę G = (V, E), gdzie V jest niepustym skończonym zbiorem wierzchołków, a E jest skończonym zbiorem krawędzi – nieuporządkowanych par różnych elementów ze zbioru V. v1 v6 v2 Przykład: V = {v1, v2, v3, v4, v5, v6} v5 v3 E = {(v1,v6), (v2,v3), (v2,v4), (v2,v5), (v2,v6), (v3,v4), (v3,v6), (v5,v6)} v4 Pary wierzchołków reprezentują krawędzie 6
Klika Dowolny podzbiór wierzchołków, w którym każde dwa wierzchołki są połączone krawędzią nazywamy kliką. Klikę, która nie jest zawarta w żadnej istotnie innej klice, nazywamy maksymalną. Najliczniejszą klikę w danym grafie nazywamy największa kliką. Przykłady klik: v1 v6 v2 V = {v2, v3, v4} V = { v2, v3, v6} v5 v3 V = {v2, v5, v6} v4 7
Zbiór niezależny (antyklika) Zbiorem niezależnym nazywamy dowolny zbiór wierzchołków, które nie są sąsiednie w danym grafie. Analogicznie określamy pojęcie maksymalnego zbioru niezależnego. 8
Zbiór niezależny (antyklika) Zbiorem niezależnym nazywamy dowolny zbiór wierzchołków, które nie są sąsiednie w danym grafie. Analogicznie określamy pojęcie maksymalnego zbioru niezależnego. Przykłady zbiorów niezależnych v1 v6 v2 V = {v1, v4, v5} V = {v1, v3, v5} v5 v3 V = {v4, v6} v4 V = {v1, v2} 9
Obliczanie klik … …nie jest zadaniem łatwym. Problem obliczania maksymalnych klik można sprowadzić do problemu obliczania maksymalnych klas zgodności definiowanych dla danej relacji zgodności.
Iloczyn kartezjański Iloczynem kartezjańskim zbiorów A i B , oznaczanym A × B nazywamy zbiór wszystkich par uporządkowanych (a, b), takich że pierwszy element pary należy do zbioru A (a A), natomiast drugi do B (b B). Przykładzik Niech A = {p, q} oraz B = {r, s, t}, wtedy A × B = {(p, r), (p, s), (p, t), (q, r), (q, s), (q, t)} 11
Pojęcie relacji… Relacją nazywamy dowolny podzbiór iloczynu kartezjańskiego zbiorów A, B . Typowe własności relacji na zbiorze A (czyli A × A): zwrotność symetria przechodniość 12
Najważniejsze relacje Relacja zgodności Relacja równoważności Relację, która jest zwrotna, symetryczna, ale nie jest przechodnia nazywamy relacją zgodności Relację, która jest zwrotna, symetryczna, i przechodnia nazywamy relacją równoważności 13
Własności relacji zgodności… …pokrywają się z intuicyjnym rozumieniem zgodności: Każdy element jest zgodny z samym sobą, Jeśli element v1 jest zgodny z v2, to również v2 jest zgodny z v1. Jeśli v1 jest zgodny z v2 oraz v2 jest zgodny z v3, to z tego nie wynika, że v1 jest zgodny z v3. Janek Marek Piotr Marek Janek Piotr 14
Maksymalne klasy zgodności Zbiór par określających relację zgodności nazywa się zbiorem par zgodnych. Pary zgodne umożliwiają wyznaczenie maksymalnych zbiorów zgodnych. Zbiór V = {v1,...,vp} nazywamy maksymalnym zbiorem zgodności (maksymalną klasą zgodności), jeżeli każda para vi, vj wzięta z tego zbioru jest zgodna oraz nie istnieje żaden inny zbiór elementów zgodnych V, zawierający V. 15
Algorytm obliczania klik metodą Maksymalnych Klas Zgodności (MKZ) Zapisać pary SPRZECZNE w postaci koniunkcji dwuskładnikowych sum (vi, vj), (vk, vl), (vp, vq), … (vi + vj)(vk + vl)(vp + vq) … Koniunkcję dwuskładnikowych sum przekształcić do minimalnego wyrażenia boolowskiego typu suma iloczynów vivjvk + vpvq vrvs +… Wtedy MKZ są uzupełnieniami zbiorów reprezentowanych przez składniki iloczynowe tego wyrażenia 16
Przykład obliczania klik (Maksymalnych Klas Zgodności) v1 v6 v2 Pary zgodne: Pary sprzeczne: (v1, v2) (v1, v3) (v1, v4) (v1, v5) (v3, v5) (v4, v5) (v4, v6) (v1, v6) (v2, v3) (v2, v4) (v2, v5) (v2, v6) (v3, v4) (v3, v6) (v5, v6) v5 v3 v4 17
porządkujemy czynniki Przykład… Pary sprzeczne E = {(v1, v2), (v1, v3), (v1, v4), (v1, v5), (v3, v5), (v4, v5), (v4, v6)} Obliczamy wyrażenie boolowskie typu „koniunkcja sum”: (v1 + v2)(v1 + v3)(v1+ v4)(v1 + v5)(v3 + v5)(v4 + v5) (v4 +v6) = porządkujemy czynniki (v1 + v2)(v1 + v3)(v1+ v4)(v1 + v5) (v4 + v5) (v4 +v6)(v3 + v5) = stosujemy zasadę: (a + b)(a + c) = a +bc (v1 + v2v3v4v5)(v4 + v5v6)(v3 + v5) = 18
Przykład… Pary sprzeczne E = {(v1, v2), (v1, v3), (v1, v4), (v1, v5), (v3, v5), (v4, v5), (v4, v6)} Obliczamy wyrażenie boolowskie typu „koniunkcja sum”: (v1 + v2)(v1 + v3)(v1+ v4)(v1 + v5)(v3 + v5)(v4 + v5) (v4 +v6) = (v1 + v2)(v1 + v3)(v1+ v4)(v1 + v5) (v4 + v5) (v4 +v6)(v3 + v5) = (v1 + v2v3v4v5)(v4 + v5v6)(v3 + v5) = wymnażamy i redukujemy zbędne składniki (v1v4 + v1v5v6 + v2v3v4v5 + v2v3v4v5v6) (v3 + v5) = (v1v4 + v1v5v6 + v2v3v4v5) (v3 + v5) = wymnażamy i redukujemy zbędne składniki v1v3v4 + v1v3v5v6 + v2v3v4v5 + v1v4v5 + v1v5v6 + v2v3v4v5 = v1v3v4 + v1v4v5 + v1v5v6 + v2v3v4v5 19
Przykład… …i to są wszystkie maksymalne kliki w tym grafie v1v3v4 + v1v4v5 + v1v5v6 + v2v3v4v5 {v1,..., v6} {v1,...,v6} {v1, v3, v4} = {v2, v5, v6 } …i to są wszystkie maksymalne kliki w tym grafie {v1 , v4 , v5 } = {v2, v3, v6} {v1, v5 , v6} = {v2 , v3, v4} {v2, v3, v4, v5 } = {v1, v6} v5 v6 v1 v2 v3 v4 20
Algorytm obliczania Maksymalnych Zbiorów Niezależnych (MZN) Zapisać pary ZGODNE w postaci koniunkcji dwuskładnikowych sum (vi, vj), (vk, vl), (vp, vq), … (vi + vj)(vk + vl)(vp + vq) … Koniunkcję dwuskładnikowych sum przekształcić do minimalnego wyrażenia boolowskiego typu suma iloczynów vivjvk + vpvq vrvs +… Wtedy MZN są uzupełnieniami zbiorów reprezentowanych przez składniki iloczynowe tego wyrażenia 21
Przykład v1 v6 v2 E = {(v1, v6), (v2, v3), (v2, v4), (v2, v5), Obliczamy wyrażenie boolowskie typu „koniunkcja sum”: v4 (v1 + v6)(v2 + v3)(v2+ v4)(v2 + v5)(v2 + v6)(v3 + v4) (v3 +v6) (v5 +v6) = (v2 + v3)(v2+ v4)(v2 + v5)(v2 + v6)(v6 + v1) (v6 +v3) (v6 +v5) (v3 + v4) = (v2 + v3v4v5v6)(v6 + v1v3v5)(v3 + v4) = (v2v6 + v1v2v3v5 + v3v4v5v6 + v1v3v4v5v6) (v3 + v4) = 22
Przykład… … i to są wszystkie MZN w tym grafie = (v2v6 + v1v2v3v5 + v3v4v5v6 + v1v3v4v5v6) (v3 + v4) = v2v3v6 + v1v2v3v5 + v3v4v5v6 + v2v4v6 + v1v2v3v4v5 + v3v4v5v6 = v2v3v6 + v1v2v3v5 + v3v4v5v6 + v2v4v6 = v2v3v6 + v2v4v6 + v1v2v3v5 + v3v4v5v6 v1 v2 v4 v5 v6 Maksymalne Zbiory Niezależne: {v1, v4, v5} {v1, v3, v5} … i to są wszystkie MZN w tym grafie v3 {v4, v6} {v1, v2} 23
Kolorowanie grafu Kolorowaniem grafu nazywamy przyporządkowanie kolorów do wierzchołków grafu w taki sposób, aby żadna para wierzchołków sąsiednich nie miała takiego samego koloru. 24
Podstawowy problem Jak obliczać najmniejszą liczbę kolorów zapewniających prawidłowe pokolorowanie grafu? Jest to tzw. liczba chromatyczna grafu. 25
Algorytm kolorowania grafu Obliczyć wszystkie Maksymalne Zbiory Niezależne Uzyskujemy Rodzinę Maksymalnych Zbiorów Niezależnych (RMZN) Obliczyć pokrycie zbioru wierzchołków V minimalną liczbą Maksymalnych Zbiorów Niezależnych (tzw. minimalne pokrycie) Minimalne pokrycie reprezentuje minimalny zbiór kolorów W uzyskanym pokryciu usunąć elementy powtarzające się Komentarz: formalnie pokrycie.. 26
Przykład Należy obliczyć optymalne kolorowanie grafu z poprzedniego przykładu: v1 v2 v4 v5 v6 Maksymalne Zbiory Niezależne: {v1, v4, v5} v3 {v1, v3, v5} {v4, v6} {v1, v2} 27
Algorytm kolorowania grafu Minimalna podrodzina pokrywająca zbiór V = {v1, v2,…, v6}: Maksymalne Zbiory Niezależne: v1 v2 v3 v4 v5 v6 {v1, v4, v5} {v1, v3, v5} {v1, v3, v5} {v4, v6} {v4, v6} {v1, v2} {v1, v2} Elementy powtarzające się usuwamy: Wybrane zbiory wyczerpują wszystkie elementy V Uzyskane zbiory rozłączne reprezentują kolorowanie: {v1, v3, v5} {v4, v6} {v2} 28
Komentarz… Następne plansze prezentują inny przykład obliczania MKZ, który należy potraktować jako pracę samodzielną. W razie jakichkolwiek trudności… Wiele ciekawych przykładów znaleźć można w książce: …prowadzący wykład nie stroni od udzielania konsultacji w tym zakresie.
Inny przykład obliczania MKZ (Raczej do dyskusji na ćwiczeniach) Pary zgodne Pary sprzeczne E: 1,2 1,3 1,5 2,3 2,4 2,5 3,5 3,6 4,6 1,4 1,6 2,6 3,4 4,5 5,6 v1 v2 v3 v4 v5 v6 30
Inny przykład obliczania MKZ… Pary sprzeczne: (v1, v4), (v1, v6), (v2, v6), (v3, v4), (v4, v5), (v5, v6) Obliczamy wyrażenie boolowskie typu „koniunkcja sum”: (v1 + v4) (v1 + v6 ) (v2 + v6) (v3 + v4) (v4 + v5) (v5 + v6) = Porządkujemy: (v4 + v1) (v4 + v3 ) (v4 + v5) (v6 + v1) (v6 + v2) (v6 + v5) = Przekształcamy wyrażenie do postaci „suma iloczynów”: = (v4 + v1v3v5) (v6 + v1v2v5) = v4v6 + v1v2v4v5 + v1v3v5v6 + v1v2v3v5 31
Inny przykład obliczania MKZ… Klasy zgodne uzyskamy odejmując od zbioru {v1,...,v6}, zbiory tych vi, które występują w jednym składniku wyrażenia typu „suma iloczynów”: {v1,..., v6} {v4, v6} = {v1, v2, v3, v5 } {v1,...,v6} {v1, v2 , v4 , v5 } = {v3, v6} {v1,...,v6} {v1, v3, v5 , v6} = {v2 , v4} {v1,...,v6} {v1, v2, v3, v5 } = {v4, v6} v1 v6 v2 Dla przypomnienia… v5 v3 Pary zgodne:(v1,v2),(v1,v3),(v1,v5),(v2,v3), (v2,v4),(v2,v5),(v3,v5),(v3,v6),(v4,v6) v4 …i graf 32