Podręcznik

3. Kostki, systemy zbiorów i podziały

Zajmiemy się rachunkiem kostek i rachunkiem podziałów, których podstawy wynikają z jednej strony z klasycznej algebry Boole’a, a z drugiej z algebry ternarnej [1.4] i algebry zbiorów. Oprócz typowych wartości logicznych 0 i 1, stosować będziemy wartość nieokreśloną, którą oznaczać będziemy, w zależności od interpretacji: * lub –.

            Na zbiorze {0, 1, </span><span style="line-height:150%"><span style="font-family:Symbol">*</span></span><span style="line-height:150%">} definiujemy częściowy porządek Í, w którym:

 

0 Í 0, * Í * , 1 Í 1, 0 Í *, 1 Í *,  

 

oraz żadna inna para nie występuje w relacji Í.

            Ciągi elementów ze zbioru {0, 1, </span><span style="line-height:150%"><span style="font-family:Symbol">*</span></span><span style="line-height:150%">} nazywać będziemy kostkami. Kostki będziemy oznaczać nieindeksowanymi literami, na przykład k, a ich składowe będziemy indeksowali, na przykład ki. Również, w celu uproszczenia oznaczeń kostki (i wektory) będziemy zapisywać bez nawiasów i przecinków. Na przykład (*, 1, *, 0, 1) zapiszemy jako *1*01.

Częściowy porządek Í rozszerzamy na zbiór {0, 1,</span><span style="line-height:150%"><span style="font-family:Symbol">*</span></span><span style="line-height:150%">}n:

 

 

k Í k’ wtedy i tylko wtedy, gdy ki Í k’i dla każdego i, 1 £ i £ n.

Na przykład 01* Í *1*.

 

W zbiorze częściowo uporządkowanym á{0, 1, </span><span style="line-height:150%"><span style="font-family:Symbol">*</span></span><span style="line-height:150%">}, Í ñ, definiujemy typowe pojęcie najmniejszego górnego ograniczenia LUB (Least Upper Bound), a mianowicie LUB{0} = 0, LUB{1} = 1, a ponadto operacja LUB dla każdego niepustego podzbioru z {0,1,</span><span style="line-height:150%"><span style="font-family:Symbol">*</span></span><span style="line-height:150%">} wynosi *. Operację LUB rozszerzamy na zbiór {0, 1, </span><span style="line-height:150%"><span style="font-family:Symbol">*</span></span><span style="line-height:150%">}n jako najmniejsze górne ograniczenie obliczane dla poszczególnych składowych odpowiednich kostek. Na przykład:

 

LUB{</span><span style="line-height:150%"><span style="font-family:Symbol">*</span></span><span style="line-height:150%">001, 1101, 0101} = **01.

 

            Na zbiorze {0, 1,</span><span style="line-height:150%"><span style="font-family:Symbol">*</span></span><span style="line-height:150%">} określamy operację binarną, È – sumowanie, dla której związek z najmniejszym górnym ograniczeniem jest następujący:

 

k È k’ = LUB{<i>k, k’</i>}.

 

Mamy wtedy:

 

k Í k’ wtedy i tylko wtedy, gdy k È k’ = k’.

Operacja È-sumowania jest idempotentna, przemienna i łączna. Jej uogólnienie dla każdego niepustego podzbioru S z {0, 1,</span><span style="line-height:150%"><span style="font-family:Symbol">*</span></span><span style="line-height:150%">}n , jest następujące:

 

LUB\ S=\bigcup\limits _{k\in S} \ k

 

Na zbiorze {0, 1, </span><span style="line-height:150%"><span style="font-family:Symbol">*</span></span><span style="line-height:150%">} definiujemy relację zgodności ~, gdzie:

 

            0 ~ 0, * ~ *, 1 ~ 1, 0 ~ * , 1 ~ *, * ~ 0 , * ~ 1,

 

ale pary (0,1) i (1,0) nie podlegają relacji ~.

Zgodność jest zwrotna i symetryczna, to znaczy dla każdej k, k’ Î {0, 1, </span><span style="line-height:150%"><span style="font-family:Symbol">*</span></span><span style="line-height:150%">}, k ~ k i k ~ k’ implikuje k’ ~ k. Jednak nie jest to relacja przechodnia, gdyż 0 ~ * i * ~ 1, ale 0   1.

Należy zauważyć, że:

 

k Í k’ implikuje k ~ k’,

 

oraz

k ~ k’ implikuje albo k Í k’ albo k’ Í k.

 

Relacja zgodności ~ może być rozszerzona na obiekty ze zbioru {0, 1, </span><span style="line-height:150%"><span style="font-family:Symbol">*</span></span><span style="line-height:150%">}n:

 

k ~ k’ wtedy i tylko wtedy, gdy ki ~ ki dla każdego i, 1 £ i £ n.

 

Na przykład, 01** ~ *10*.

 

            Największe dolne ograniczenie GLB (Greatest Lower Bound) istnieje wyłącznie dla pewnych podzbiorów zbioru {0, 1, </span><span style="line-height:150%"><span style="font-family:Symbol">*</span></span><span style="line-height:150%">}. Na przykład GLB{0,1} nie istnieje, ale GLB{0,</span><span style="line-height:150%"><span style="font-family:Symbol">*</span></span><span style="line-height:150%">} = 0. Wykorzystując GLB, definiujemy Ç-iloczyn w sposób następujący: k Ç k’ jest określony wtedy i tylko wtedy, gdy k i k’ są zgodne. Zatem w Ç-iloczynie wartości pewnej przez niepewną, wartość pewna przeważa. Ponadto,  

 

k Í k’ wtedy i tylko wtedy, gdy k Ç k’ = k.

 

Jeśli k, k’, oraz k” są parami zgodne, to Ç-iloczyn (k Ç k’) Ç k” jest określony i wynosi Ç (k’Ç k”). Zatem operacja Ç jest łączna. Operacja Ç-iloczynu może być rozszerzona na dowolny zbiór C elementów parami zgodnych:

 

GLB\ C=\bigcup\limits _{k\in C} \ k

 

Dalsze uogólnienie Ç-iloczynu dotyczy kostek zgodnych. Na przykład, 01** Ç *10* = 010*. Z każdym k Î {0,1,</span><span style="line-height:150%"><span style="font-family:Symbol">*</span></span><span style="line-height:150%">}n kojarzymy zbiór bin k binarnych kostek (mintermów):

 

bin k = {<i>b </i></span><span style="line-height:150%"><span style="font-family:Symbol">Î</span></span><span style="line-height:150%"> {0,1}n ú b Í k }.

 

Na przykład, jeśli k = 01**, wtedy bin k = {0100, 0101, 0110, 0111}.

 

Systemem zbiorów na zbiorze S nazywamy rodzinę zbiorów s = {<i>B</i><sub>1</sub>,...,<i>B<sub>k</sub></i>}, w której podzbiory (tzw. bloki) są maksymalne w tym sensie, że inkluzja Bi Í Bj implikuje i = j. Na przykład, jeśli S = {1,2,3}, to s = {{1,2}, {2, 3}} jest systemem zbiorów na S. Zapis ten upraszczamy następująco: \sigma =\left\{\overline{1,2} ;\overline{2,3}\right\} . Zauważmy, że systemy zbiorów nie są zamknięte ze względu na operację iloczynu. Na przykład \sigma =\left\{\overline{1,2} ;\overline{2,3}\right\}  · \sigma =\left\{\overline{1,2} ;\overline{2,3}\right\} nie jest systemem zbiorów.

            Jeśli b = {<i>B<sub>i</sub></i>} jest dowolną rodziną zbiorów na S, to

 

max b = {<i>B </i></span><span style="line-height:150%"><span style="font-family:Symbol">Í</span></span><span style="line-height:150%"> <i>S</i></span><span style="line-height:150%"><span style="font-family:Symbol">½</span></span><i><span style="line-height:150%">B</span></i><span style="line-height:150%"> = <i>B<sub>i</sub></i> dla pewnego <i>i</i> oraz <i>B</i> </span><span style="line-height:150%"><span style="font-family:Symbol">Í</span></span><span style="line-height:150%"> <i>B<sub>j</sub></i> implikuje <i>B<sub>j</sub></i> = <i>B</i>}.

 

Warto zauważyć, że operacja max odwzorowuje rodziny zbiorów w systemy zbiorów. Iloczyn dwóch systemów zbiorów s i s’ jest definiowany następująco:

 

 s ° s= max(s·s).

Na przykład: \left\{\overline{1,2} ;\overline{3,4,5}\right\}

 

\left\{\overline{1,2,3} ;\overline{3,4,5}\right\} \ \bullet \ \left\{\overline{1,3,4} ;\overline{1,5} ,\overline{2,3,4}\right\} \ =\ \left\{\overline{1,3} ;\overline{2,3} ;\overline{3,4} ;\overline{5}\right\}

 

Łatwo sprawdzić, że iloczyn systemów zbiorów jest idempotentny, łączny i przemienny. Kończąc powyższe rozważania przypomnijmy, że system zbiorów jest konsekwencją działania relacji zgodności.

Mając na uwadze, że relacja zgodności jest szczególnym przypadkiem relacji równoważności nietrudno stwierdzić, że wynikiem działania relacji równoważności jest podział zbioru na rozłączne podzbiory.

Formalnie, podziałem p zbioru S nazywać będziemy rodzinę rozłącznych podzbiorów zbioru S, których suma równa się S.

Niech S = {1, 2, 3, 4, 5, 6, 7, 8, 9}, to

 

t1 = {{1, 2}, {3, 4}, {5, 6}, {7, 8, 9}},

t2 = {{1, 6}, {2, 3}, {4, 5}, {7, 8}, {9}}

 

są podziałami zbioru S. Dla uproszczenia zapisów stosujemy zapis:

 

\tau_1=\left(\overline{1,2};\overline{3,4};\overline{5,6};\overline{7,8,9};\right)

\tau_2=\left(\overline{1,6};\overline{2,3};\overline{4,5};\overline{7,8};\overline{9};\right)

\tau_3=\left(\overline{1,2};\bar{3};\bar{4};\overline{5,6};\overline{7,8};\bar{9}\right)

 

Dla podziałów wprowadza się relację £ oraz działanie iloczynu i sumy:

 

\Pi_1\le\Pi_2\Leftrightarrow\left(\forall B_i\in\Pi_1\right)\left(\exists B_j\in\Pi_2\right)\left(B_i\subseteq B_j\right)

 

Największym i najmniejszym podziałem zbioru S są odpowiednio:

 

\Pi\left(1\right)=\left(\bar{1,2,\ldots,n}\right)

\Pi\left(0\right)=\left(\bar{1};\bar{2};\ldots\right)

 

Niech \tau_3=\left(\overline{1,2};\overline{3};\overline{4};\overline{5,6};\overline{7,8};\overline{9}\right).\  Wówczas t3 £ t1. Analogiczny związek nie zachodzi między t1 i t2, ani między t2 i t3.

Podział P nazywamy iloczynem podziałów P1 i P2 (P = P1 × P2), jeżeli P jest największym podziałem (tzn. podziałem mającym największe bloki) spełniającym warunki: P £ P1 oraz P £ P2. Podział P1 × P2 można wyznaczyć bardzo prosto wyznaczając wszystkie możliwe iloczyny w sensie teorii mnogości każdego bloku P1, z każdym blokiem P2; zbiór tak otrzymanych zbiorów jest poszukiwanym podziałem.

Sumą podziałów P1 + P2 nazywamy najmniejszy podział, nie mniejszy od P1 oraz od P2. Wyznaczenie P1 + P2 jest nieco trudniejsze. Niech podziały P1 i P2 mają odpowiednio bloki Bi i Bj takie, że Bi Ç Bj ¹ f. Tworzymy wtedy nowy blok Bij = Bi È Bj i sprawdzamy, czy P1 i P2 zawiera taki blok Bk, że Bk Ç Bij ¹ f. Jeżeli tak, to tworzymy nowy blok Bk È Bij itd. w wyniku takiego postępowania otrzymamy stopniowo podział P1 + P2.

Dla wprowadzonych podziałów mamy:

 

\tau_1\cdot\tau_2=\left(\bar{1};\bar{2};\bar{3};\bar{4};\bar{5};\bar{6};\overline{7,8};\bar{9}\right)

{\tau_1+\tau}_2=\left(\overline{1,2,3,4,5,6};\overline{7,8,9}\right)

\tau_3\cdot\tau_1=\left(\overline{1,2};\bar{3};\bar{4};\overline{5,6};\overline{7,8};\bar{9}\right)=\tau_3

\tau_3+\tau_1=\left(\overline{1,2};\overline{3,4};\overline{5,6};\overline{7,8};\overline{7,8,9}\right)=\tau_1

 

 

Wygodne w zastosowaniach jest również pojęcie ilorazu podziałów (podziału ilorazowego). Niech P1 i P2 są podziałami na S. Podział P1|P2 jest podziałem ilorazowym P1 i P2, jeżeli jego elementy są blokami iloczynu P1×P2, a bloki są blokami P1. Na przykład: dla S = {1,2,3,4,5,6}, \Pi_1=\left\{\overline{1,2,5};\overline{3,4,6}\right\} \Pi_2=\left\{\overline{1,2};\overline{3,6;}\overline{4,5}\right\}   podział ilorazowy będzie: