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. ZP 1
Elementy rachunku podziałów Podziałem na zbiorze S jest system zbiorów P= {B i }, którego podzbiory są rozłączne, czyli a ponadto B i B j =φ, φ jeśli tylko i j S = i B i Dla S= {1,2,3,4,5,6}, P= {{1,2}, {3,5}, {4,6} }jest podziałem na S. ZP Π= (1,2; 3,5;4,6) Podstawowe pojęcia: Podzbiory nazywamy blokami Relacja, iloczyn podziałów, podział ilorazowy 2
Elementy rachunku podziałów Powiemy, że podział P a jest nie większyod P b (co oznaczamy: P a P b ), jeśli każdy blok z P a jest zawarty w pewnym bloku z P b. Π a = ( 1,2,4;3,5,6) Π b = (1,4; 2,6;3,5) Π c = (1,2; 4;6;3,5) Π c Π a ak Π a =(1,2,4;3,5,6) Π c = (1,2; 4;6;3,5) ZP Π(0) podział najmniejszy Π(1) podział największy Π c Π b NE! Π b = (1,4; 2,6;3,5) Π c = (1,2; 4;6;3,5) 3
Elementy rachunku podziałów loczynem podziałów Π a Π b nazywamy największy (względem relacji ) podział, który jest nie większy od Π a oraz Π b. Π a =(1,2,4;3,5,6) Π b = (1,4; 2,6;3,5) Π a Π b = ( 1,4; 2 ; 6; 3,5 ) ZP 4
Elementy rachunku podziałów Podział ilorazowy Niech P a ip b są podziałami na Soraz P a P b. Podział P a P b jest podziałem ilorazowym P a ip b, jeżeli jego elementy są blokami P b, a bloki są blokami P a. Na przykład: P a =1,6,7; 2,3,8;4,5 P b =1; 2,8; 3; 4,5; 6,7 P a Pb = (1)(6,7); (3)(2,8); (4,5) ZP 5
Elementy teorii grafów Grafem prostymnazywamy parę G= (V, E), gdzie Vjest niepustym skończonym zbiorem wierzchołków, a Ejest skończonym zbiorem krawędzi nieuporządkowanych par różnych elementów ze zbioru V. v1 Przykład: v6 v2 V = {v1, v2, v3, v4, v5, v6} E = {(v1,v6), (v2,v3), (v2,v4), (v2,v5), (v2,v6), (v3,v4), (v3,v6), (v5,v6)} v5 v4 v3 Pary wierzchołków reprezentują krawędzie ZP 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: V = {v2, v3, v4} v6 v1 v2 V = { v2, v3, v6} V = {v2, v5, v6} v5 v3 v4 ZP 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. ZP 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 V = {v1, v4, v5} v6 v1 v2 V = {v1, v3, v5} V = {v4, v6} v5 v3 V = {v1, v2} v4 ZP 9
nie jest zadaniem łatwym. Obliczanie klik ZP Problem obliczania maksymalnych klik można sprowadzić do problemu obliczania maksymalnych klas zgodności definiowanych dla danej relacji zgodności.
loczyn kartezjański loczynem kartezjańskim zbiorów A ib, 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). {( a, b) : a Ab B} A B =, Przykładzik NiechA={p,q}orazB={r,s,t},wtedy A B={(p,r),(p,s),(p,t),(q,r),(q,s),(q,t)} ZP 11
Pojęcie relacji Relacjąnazywamy dowolny podzbiór iloczynu kartezjańskiego zbiorów A, B. ypowewłasnościrelacjinazbiorzea (czylia A): zwrotność a A: ara symetria a, b A: arb bra przechodniość a, b, c A : arb, brc arc ZP 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 ZP 13
Własności relacji zgodności pokrywają się z intuicyjnym rozumieniem zgodności: a) Każdy element jest zgodny z samym sobą, b) Jeśli element v 1 jest zgodny z v 2, to również v 2 jest zgodny z v 1. c) Jeśli v 1 jest zgodny z v 2 oraz v 2 jest zgodny z v 3, to z tego nie wynika, że v 1 jest zgodny z v. 3 ZP Janek Marek Marek Piotr 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 = {v 1,...,v p } nazywamy maksymalnym zbiorem zgodności (maksymalną klasą zgodności), jeżeli każda para v i, v j wzięta z tego zbioru jest zgodna oraz nie istnieje żaden inny zbiór elementów zgodnych V, zawierający V. ZP 15
Algorytm obliczania klik metodą Maksymalnych Klas Zgodności (MKZ) Zapisać pary SPRZECZNE w postaci koniunkcji dwuskładnikowych sum (v i, v j ),(v k, v l ),(v p, v q ), (v i + v j )(v k + v l )(v p + v q ) Koniunkcję dwuskładnikowych sum przekształcić do minimalnego wyrażenia boolowskiego typu suma iloczynów v i v j v k + v p v q v r v s + ZP 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 Pary zgodne: Pary sprzeczne: v6 v2 (v1, v6) (v1, v2) (v2, v3) (v2, v4) (v2, v5) (v2, v6) (v3, v4) (v1, v3) (v1, v4) (v1, v5) (v3, v5) (v4, v5) v5 v4 v3 (v3, v6) (v5, v6) (v4, v6) ZP 17
Pary sprzeczne Przykład 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) = (v1 + v2v3v4v5)(v4 + v5v6)(v3 + v5) = stosujemy zasadę: (a + b)(a + c) = a +bc ZP 18
Pary sprzeczne Przykład 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 ZP v1v3v4 + v1v3v5v6 + v2v3v4v5 + v1v4v5 + v1v5v6 + v2v3v4v5 = v1v3v4 + v1v4v5 + v1v5v6 + v2v3v4v5 19
Przykład v1v3v4 + v1v4v5 + v1v5v6 + v2v3v4v5 {v1,..., v6} {v1, v3, v4} {v1,...,v6} {v1,...,v6} {v1, v4, v5 } {v1, v5, v6} = {v2, v5, v6 } = {v2, v3, v6} i to są wszystkie maksymalne kliki w tym grafie = {v2, v3, v4} {v1,...,v6} {v2, v3, v4, v5 } = {v1, v6} v6 v1 v2 v5 v3 ZP v4 20
Algorytm obliczania Maksymalnych Zbiorów Niezależnych (MZN) Zapisać pary ZGODNE w postaci koniunkcji dwuskładnikowych sum (v i, v j ), (v k, v l ), (v p, v q ), (v i + v j )(v k + v l )(v p + v q ) Koniunkcję dwuskładnikowych sum przekształcić do minimalnego wyrażenia boolowskiego typu suma iloczynów v i v j v k + v p v q v r v s + ZP Wtedy MZN są uzupełnieniami zbiorów reprezentowanych przez składniki iloczynowe tego wyrażenia 21
Przykład E = {(v1, v6), (v2, v3), (v2, v4), (v2, v5), (v2, v6), (v3, v4), (v3, v6), (v5, v6)} Obliczamy wyrażenie boolowskie typu koniunkcja sum : v6 v5 v1 v4 v2 v3 (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) = ZP 22
Przykład = (v2v6 + v1v2v3v5 + v3v4v5v6 + v1v3v4v5v6) (v3 + v4) = v2v3v6 + v1v2v3v5 + v3v4v5v6 + v2v4v6 + v1v2v3v4v5 + v3v4v5v6 = v2v3v6 + v1v2v3v5 + v3v4v5v6 + v2v4v6 = v2v3v6 + v2v4v6 + v1v2v3v5 + v3v4v5v6 v1 Maksymalne Zbiory Niezależne: {v1, v4, v5} v6 v2 ZP {v1, v3, v5} {v4, v6} {v1, v2} i to są wszystkie MZN w tym grafie v5 v4 23 v3
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. ZP 24
Podstawowy problem Jak obliczać najmniejszą liczbę kolorów zapewniających prawidłowe pokolorowanie grafu? Jest to tzw. liczba chromatyczna grafu. ZP 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.. UMZN = V MZN RMZN ZP 26
Przykład Należy obliczyć optymalne kolorowanie grafu z poprzedniego przykładu: v1 Maksymalne Zbiory Niezależne: v6 v2 {v1, v4, v5} v5 v3 {v1, v3, v5} {v4, v6} v4 {v1, v2} ZP 27
Algorytm kolorowania grafu Maksymalne Zbiory Niezależne: Minimalna podrodzina pokrywająca zbiór V = {v1, v2,, v6}: v1 {v1, v4, v5} {v1, v3, v5} {v1, v3, v5} {v4, v6} v6 v2 {v4, v6} {v1, v2} {v1, v2} v5 v3 Wybrane zbiory wyczerpują wszystkie elementy V Elementy powtarzające się v4 usuwamy: Uzyskane zbiory rozłączne reprezentują kolorowanie: {v1, v3, v5} {v4, v6} ZP {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. ZP 29
nny 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 v6 v5 v1 v4 v2 v3 ZP 30
Pary sprzeczne: nny przykład obliczania MKZ (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 ZP 31
nny 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} v6 v1 v2 Dla przypomnienia Pary zgodne:(v1,v2),(v1,v3),(v1,v5),(v2,v3), (v2,v4),(v2,v5),(v3,v5),(v3,v6),(v4,v6) v5 i graf v4 v3 ZP 32