plik PDF

Transkrypt

plik PDF
Jakub Michalski
Zbiory w siatce
Nie tylko Venn
Ilustrowanie zbiorów za pomocą przecinających się owalów, chociaż wydaje się
tak naturalne, do matematyki wprowadził dopiero w 1880 roku angielski matematyk John Venn (1834–1923). Jednak
słowo „dopiero” nie wydaje się właściwe, skoro diagramy Venna pojawiły
się zaledwie 10 lat po sformułowaniu
przez Georga Cantora (1845–1918) podstaw teorii mnogości.
Warto jednak wiedzieć, że diagram
Venna to nie jedyny sposób graficznego przedstawienia zbiorów. W latach
pięćdziesiątych ubiegłego wieku młody
wówczas amerykański inżynier Maurice Karnaugh (czytaj: Karno), urodzony
w 1924 r., wpadł na nowy sposób ilustrowania zależności między zbiorami. Tworzone jego metodą diagramy nazwano
mapami (siatkami albo tablicami) Karnaugha.
Mapa Karnaugha dla trzech zbiorów to
prostokąt podzielony na osiem pól.
A oto jak wygląda, wg Karanugha, ilustracja zbiorów A ∩ B ∩ C, A ∪ C oraz
A ∪ (B ∩ C ).
Mapy Karnaugha
Mapa Karnaugha dla dwóch zbiorów
(oznaczmy je literami A i B) to kwadrat
podzielony na cztery pola. Zbiorowi A
odpowiadają dwa górne pola, a zbiorowi
B – dwa pola w pierwszej kolumnie.
W takim razie dopełnienie zbioru A,
sumę zbiorów A i B, ich iloczyn albo
iloczyn zbioru B i dopełnienia zbioru A
można zilustrować tak jak na zaprezentowanych rysunkach.
Siatka dla czterech zbiorów składa się
z 16 pól. Dla większej liczby zbiorów
mapy Karnaugha gwałtownie się rozrastają (dla pięciu zbiorów mają 32 pola,
dla sześciu zbiorów – 64 pola itd.)
i niektórzy próbują je interpretować nie
TEMAT NUMERU
CYAN BLACK
ML19 str. 13
13
jako siatki na płaszczyźnie, ale jako
przestrzenne ułożenie warstw kwadratów
o szesnastu polach.
Posługując się mapami Karnaugha, można łatwo upraszczać złożone wyrażenia z algebry zbiorów. Aby przedstawić tę metodę, rozpatrzmy wyrażenie
(A ∩ B) ∪ (A ∩ B ∩ C) ∪ (A ∩ B ∩ C)
i zilustrujmy je odpowiednią mapą Karnaugha.
Widzimy, że zacieniowane dwa górne
pola można opisać bez użycia zbioru C,
tzn. jako A∩ B, a zacieniowane dwa pola
w drugiej kolumnie – bez użycia zbioru
A, tzn. jako B ∩ C. W takim razie zacieniowany obszar to (A ∩ B) ∪ (B ∩ C)
(oczywiście istnieją też inne równoważne zapisy tego zbioru).
Rzecz jasna ten sam efekt można uzyskać sposobem algebraicznym:
(A ∩ B) ∪ (A ∩ B ∩ C) ∪ (A ∩ B ∩ C) =
= (A ∩ B) ∪ (B ∩ C) ∩ (A ∪ A) =
= (A ∩ B) ∪ (B ∩ C)
albo za pomocą diagramu Venna. O ile
w wypadku bardziej skomplikowanych
wyrażeń przewaga metody wykorzystującej mapy Karnaugha nad metodą algebraiczną jest łatwa do wykazania, to
nawet wtedy trudno do niej przekonać
zwolenników diagramów Venna. Toteż
nie to zastosowanie map przyniosło im
sławę.
Liczba pól a logika
Zastanawiająca jest zależność między
liczbą przedstawianych zbiorów a liczbą
pól na mapie Karnaugha. Związek ten
łatwo wyjaśnić, gdy omówimy jeszcze
jeden przykład zastosowań tych map.
Za pomocą mapy Karnaugha można
zilustrować nie tylko algebrę zbiorów,
ale dowolną algebrę Boole’a. Pokażemy
14
teraz, jak taka mapa może się przydać
w rachunku zdań.
W wypadku dwóch zdań p i q możliwe są tylko cztery zestawy ich wartości
logicznych:
p
1
1
0
0
q
1
0
1
0
Odpowiadająca dwóm zdaniom mapa
Karnaugha musi mieć cztery pola, aby
wyczerpać wszystkie możliwości zestawów wartości logicznych.
W takiej siatce pierwsze pole (w górnym
lewym rogu) odpowiada zestawowi: wartość logiczna 1 dla zdania p i 1 dla q,
itd. Rozpatrując wartości logiczne zdania złożonego ze zdań p i q, w polu tym
należy wpisać wartość logiczną danego
zdania dla przypadku, gdy oba zdania p
i q mają wartość 1. Na przykład mapa
Karnaugha dla alternatywy zdań p i q
wygląda następująco:
p
1
1
0
0
q
1
0
1
0
p∨q
1
1
1
0
Mapa Karnaugha dla trzech zdań p,
q i r powinna mieć tyle pól, ile jest
możliwych zestawów wartości logicznych trzech zdań, tzn. osiem.
p
1
1
1
1
0
0
0
0
q
1
1
0
0
1
1
0
0
r
1
0
1
0
1
0
1
0
TEMAT NUMERU
CYAN BLACK
ML19 str. 14
Jeśli w te pola wpiszemy wartości
logiczne zdania (w tabelce oznaczonego
literą s)
(p ∧ q) ∨ ((¬p) ∧ q ∧ r) ∨ (p ∧ q ∧ r),
to mapa będzie wyglądała następująco:
p
q
r
s
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
(p ∧ q) ∨ ((¬p) ∧ q ∧ r) ∨ (p ∧ q ∧ r)
(p ∧ q) ∨ (q ∧ r) ∧ ((¬p) ∨ p)
(p ∧ q) ∨ (q ∧ r)
Jednak dużo łatwiej takiego uproszczenia dokonuje się za pomocą mapy
Karnaugha. Aby lepiej zrozumieć to
postępowanie, warto wrócić do sposobu,
w jaki uprościliśmy wyrażenie
(A ∩ B) ∪ (A ∩ B ∩ C) ∪ (A ∩ B ∩ C)
i skorzystać z dualności rachunku zbiorów i rachunku zdań (czego najlepszym
przykładem są prawa de Morgana).
Aby uprościć wyrażenie, łączy się
w pary jedynki położone w sąsiednich
(czyli mających wspólny bok) polach
mapy.
Pozioma para oznacza „to samo”, co
w wypadku zbiorów oznaczało A ∩ B,
czyli p ∧ q, a para pionowa jest odpowiednikiem B ∩C, czyli q ∧ r, zaś wynik
końcowy jest alternatywą tych koniunkcji, czyli (p ∧ q) ∨ (q ∧ r).
Zauważmy, że zwiększając liczbę zdań
o jedno, podwajamy liczbę możliwych
zestawów wartości logicznych tych zdań.
Każdemu takiemu zestawowi odpowiada
jedno pole mapy Karnaugha, więc liczby
pól map dla dwóch, trzech i więcej zdań
(lub zbiorów) tworzą ciąg geometryczny
o ilorazie 2.
Siatka zarabia na sławę
Rozpatrywane powyżej zdanie wygląda
odstraszająco. Informatycy często napotykają na podobne zdania (najczęściej
jeszcze bardziej złożone!) i w takich
wypadkach przede wszystkim próbują je
uprościć. Takiego uproszczenia można
dokonać algebraicznie, posługując się
prawami rachunku zdań:
Takie upraszczanie wyrażeń z algebry Boole’a przez znajdowanie sąsiednich jedynek na mapie Karnaugha jest
zdecydowanie prostsze niż upraszczanie
wykonywane algebraicznie, a diagramy
Venna nie znajdują tu zastosowania.
W dodatku procedurę upraszczania za
pomocą map można „zmechanizować”,
co przy bardzo złożonych wyrażeniach
oszczędza czas i wysiłek. Jak widać,
mapy Karnaugha uczciwie zapracowały
na uznanie, jakim się cieszą.
TEMAT NUMERU
CYAN BLACK
ML19 str. 15
15