algebra boole’a i jej zastosowania - urząd miasta...
TRANSCRIPT
1
Algebra Boole’a i jej zastosowania
WprowadzenieNiech dany będzie zbiór dwuelementowy , którego elementy oznaczymy symbolami 0 oraz
1, tj. .}1,0{ W zbiorze tym określamy działania sumy ,: iloczynu :
oraz dopełnienia .:_
A mianowicie, przyjmujemy:
A B BA0 0 00 1 11 0 11 1 1
A B BA 0 0 00 1 01 0 01 1 1
A A0 11 0
Zbiór wraz z powyższymi działaniami nazywa się algebrą Boole’a. Jedną z możliwych jejrealizacji są układy elektroniczne zwane bramkami. Analogicznie do w/w działań wprowadzamybramki OR (Or Gate), AG (And Gate), I (Inverter) oznaczane na schematach następującymisymbolami:
i zdefiniowane takimi samymi tabelami, jak powyżej.
Twierdzenie.Dla dowolnych elementów X, Y, Z algebry zachodzą następujące równości:
(1) ;0 XX (2) ;11 X(3) ;XXX
(4) ;1 XX(5) ;00 X(6) ;1 XX (7) ;XXX
(8) ;0 XX
(9) ;)( XX (10) ;XYYX (11) ;ZYXZYX (12) ;XYYX (13) ;ZYXZYX
ABA ABAZ BAZ AZ OR AG I
2
(14) ;ZXYXZYX (15) ;ZXYXZYX
(16) ;YXYX (prawo de’Morgana)(17) ;YXYX (prawo de’Morgana).
Powyższe własności można udowodnić m.in. metodą zero-jedynkową polegającą na sprawdzeniuwszystkich możliwych przypadków, których jest skończona ilość. Oto przykładowy dowód własności(11):
X Y Z Y+Z X+(Y+Z) X+Y (X+Y)+Z0 0 0 0 0 0 00 0 1 1 1 0 10 1 0 1 1 1 10 1 1 1 1 1 11 0 0 0 1 1 11 0 1 1 1 1 11 1 0 1 1 1 11 1 1 1 1 1 1
Dzięki równościom (11) i (13) uogólniamy indukcyjnie dodawanie i mnożenie na dowolną skończonąliczbę argumentów. A mianowicie, jeżeli ,2n to przyjmujemy:
.......
;......
111
111
nnn
nnn
AAAAAAAAAA
W analogiczny sposób uogólniamy bramki OR i AND. Ponadto przyjmujemy taką samą umowędotyczącą kolejności działań i opuszczania znaku mnożenia, jak w tradycyjnej algebrze, co pozwala nazredukowanie zbędnych nawiasów i uproszczenie zapisów.
Twierdzenie.Dla dowolnych elementów X, Y, Z algebry zachodzą następujące równości:
(18) ;XZXX (19) ;XZXX
(20) ;YXYXX
(21) .ZYXZYZYYX Dowody. Zastosujemy bardziej efektywną metodę polegającą na wykorzystaniu własności jużudowodnionych, do których zaliczymy własności (1) - (17).Ad (18)
.111 XXZXZXXZXX Ad (19)
.)18(XZXXZXXXZXX
Ad (20) YXXXYXXXYXXXYXYX 1
.0)18(
YXXYXYXX Ad (21)
.1 ZYXZYXYYZYXZYZYYXZYZYYX
W zagadnieniach dotyczących zastosowań algebry Boole’a kluczowe znaczenie maprzekształcanie wyrażeń do najprostszej postaci i to odpowiedniego kształtu. Okazuje się, że każdetakie wyrażenie zawsze daje się sprowadzić do jednej z dwóch tzw. postaci kanonocznych: sumyiloczynów bądź iloczynu sum pojedynczych argumentów bądź ich dopełnień.
3
Przykłady. Uprościmy dwa wyrażenia algebry Boole’a.a)
)()()()())()(( ZXYXYXXZXYYXYYXXXZXYXYXW )()( YYZXZXZYXZYXZXZYXXYXZYXXYXZXXX
.ZXZXZX Inne, prostsze rozwiązanie:
.)()()()())(( ZXZXXXZXXZXYYXZXYXYXW
b) )11()()()()()( YZXZZYYYZXZYZYZYZYXZYZYZYXV
)( ZYX lub
.ZXYXV Pierwszy z wyników przedstawia wyrażenie V w postaci kanonicznej iloczynu sum (trzeba założyć,że X jest sumą jednoskładnikową), a drugi z tych wyników – w postaci kanonicznej sumy iloczynów.Przy okazji warto postawić pytanie, która wersja rozwiązania jest prostsza? Aby na nie odpowiedzieć,przedstawmy ich realizację przy pomocy bramek:
Teraz jest jasne, że pierwsze z rozwiązań jest prostsze, gdyż jego realizacja wymaga jednej bramkimniej.
Następnym ważnym problem z uwagi na zastosowania w informatyce jest projektowaniewyrażeń algebry Boole’a, które spełniają wymagane warunki wejścia/wyjścia. Wyjaśnimy to przypomocy serii przykładów.
Przykład. Znajdziemy wyrażenie zależne na wejściu od zmiennych X, Y oraz wyprowadzające nawyjściu wyrażenie Z tak, aby zachodziły zależności:
Input OutputX Y Z0 0 10 1 01 0 11 1 1
Aby otrzymać rozwiązanie w postaci sumy iloczynów dodajemy dodatkową kolumnę zawierającąutworzone w odpowiedni sposób iloczyny:
Input OutputX Y Z Iloczyny
0 0 1 YX 0 1 0 YX 1 0 1 YX 1 1 1 YX
Szukanym rozwiązaniem jest suma wyrażeń z ostatniej kolumny wybranych z tych wierszy, dlaktórych :1Z
Z AGX
Y AGORORY
ZAG
X
4
.YXYXYXZ Uprośćmy je:
.)()()()( YXXYYYXXXYYXYXYXYXZ
Aby otrzymać rozwiązanie w postaci iloczynu sum dodajemy dodatkową kolumnę zawierającąutworzone w odpowiedni sposób sumy:
Input OutputX Y Z Sumy
0 0 1 YX 0 1 0 YX 1 0 1 YX 1 1 1 YX
Szukanym rozwiązaniem jest iloczyn wyrażeń z ostatniej kolumny wybranych z tych wierszy, dlaktórych :0Z
.YXZ Widać, że otrzymaliśmy dokładnie takie samo rozwiązanie. Jego realizacja przy pomocy bramekwygląda następująco:
Przykład. Znajdziemy wyrażenie zależne na wejściu od zmiennych X, Y, Z oraz wyprowadzające nawyjściu wyrażenie A tak, aby zachodziły zależności:
Input OutputX Y Z A0 0 0 10 0 1 00 1 0 10 1 1 01 0 0 11 0 1 01 1 0 11 1 1 0
Znajdziemy oba rozwiązania w postaciach kanonicznych:
XORY
AI
XORY
Alub
5
Input OutputX Y Z A Iloczyny Sumy
0 0 0 1 ZYX * ZYX
0 0 1 0 ZYX ZYX *0 1 0 1 ZYX * ZYX 0 1 1 0 ZYX ZYX *1 0 0 1 ZYX * ZYX 1 0 1 0 ZYX ZYX *1 1 0 1 ZYX * ZYX 1 1 1 0 ZYX ZYX *
Rozwiązanie w postaci sumy iloczynów:.)()()()()( ZXXZZXZXYYZXYYZXZYXZYXZYXZYXA
Rozwiązanie w postaci iloczynu sum: )()()()()()()()( YYZXYYZXZYXZYXZYXZYXA
.)()()( ZXXZZXZX
Również teraz otrzymaliśmy dokładnie takie samo rozwiązanie. Jego realizacja wymaga tylko jednegoinwertera:
Przykład.Znajdziemy wyrażenie zależne na wejściu od zmiennych X, Y, Z oraz wyprowadzające na wyjściuwyrażenie A tak, aby zachodziły zależności:
Input OutputX Y Z A0 0 0 00 0 1 00 1 0 10 1 1 11 0 0 01 0 1 01 1 0 11 1 1 0
Znajdziemy oba rozwiązania w postaciach kanonicznych:
Z ZA I
6
Input OutputX Y Z A Iloczyny Sumy
0 0 0 0 ZYX ZYX *0 0 1 0 ZYX ZYX *0 1 0 1 ZYX * ZYX 0 1 1 1 ZYX * ZYX 1 0 0 0 ZYX ZYX *1 0 1 0 ZYX ZYX *1 1 0 1 ZYX * ZYX 1 1 1 0 ZYX ZYX *
Rozwiązanie w postaci sumy iloczynów:.)()()()( ZYYXXXZYZZYXZYXZYXZYXZYXA
Rozwiązanie w postaci iloczynu sum: )()()()()()( ZYXZYXZYXZYXZYXZYXA
)()()()()()()()( ZXXXYZXYXYXYYZXZZYXZZYX.)( ZXY
Otrzymaliśmy dwa różne rozwiązania, z których drugie jest prostsze. Widać to z ich realizacji przypomocy bramek:
Oprócz wcześniej zdefiniowanych bramek duże znaczenie praktyczne mają dwie dodatkowe:bramka NOR (Not Or Gate) i bramka Nand (Not And Gate). Oto ich oznaczenia i definicje w wersjidla dwóch zmiennych wejściowych (może być ich więcej):
A B BABAZ )(0 0 10 1 01 0 01 1 0
A B BABAZ )(0 0 10 1 11 0 11 1 0
X AG
Z AGOR
Y
ORXZ
AGY
AB B
ABAZ BAZ NOR NAND
7
Istotna zaleta powyższych dwóch bramek polega na tym, że każde wyrażenie algebry Boole’a daje sięzrealizować tylko przy pomocy bramek NOR albo tylko przy pomocy bramek NAND. Uzasadniają toponiższe schematy:
Tylko bramki NOR
Tylko bramki NAND
W praktyce nie ma potrzeby stosowania powyższych schematów. Jak już wcześniejzauważyliśmy, wszystkie wyrażenia algebry Boole’a dają się sprowadzić do jednej z dwóch postacikanonicznych: sumy iloczynów bądź iloczynu sum. W pierwszym z tych przypadków zamiaststosować układ bramek typu And-to-Or można użyć układu Nand-to-Nand zastępując w pierwszymukładzie wszystkie bramki bramkami Nand. W przypadku układu typu OR-to-And ten sam efektuzyskuje się poprzez zastąpienie wszystkich bramek bramkami typu Nor. Daje to układ typu Nor-to-Nor. W obu przypadkach otrzymuje się układy logicznie równoważne, ale fizycznie różne.Zagadnienie ilustrują poniższe przykłady.
NORNORBA A
B BABA
BABA A NOR
A
B NORB
NOR
A NOR AAA
A AAA NAND
BA AB BABA NAND NAND
BABA A A
B B NANDNAND
NAND
8
Przykładya)
b)
OR
BA AG
D C AGE
BA
EDCBA
EDC
NANDBA
NANDD CE
BABA
EDCBAEDCBA
EDCEDC
NAND
BA
AG OR
BA
DC
F E AGG
DC GFEDCBA
AG
NAND
NANDBA
DC
F EG
BA
DC
NANDGFE
GFEDCBAGFEDCBA NAND
9
c)
d)
ORBA
AGDC
F EG
BA
DC )()()( GFEDCBA OR
ORGFE
BA
DC
F EG
BA
DC
GFE
GFEDCBAGFEDCBA
NOR
NOR
NOR
NOR
NOR
BA
D CE
BABA
EDCBAEDCBA
EDCEDC NOR
NOR
A BA ORB
AG
D CE
EDCBA
OREDC
10
Układy zintegrowane
11
12