Podręcznik
1. Metoda klasyczna
Niech będzie dana funkcja boolowska f: {0, 1}n ® {0, 1} oraz pewien podział zmiennych X = {<i>x</i><sub>1</sub>,...,<sub> </sub><i>x<sub>n</sub></i>} na dwa rozłączne zbiory B (bound set) i A (free set). Tablicą dekompozycji funkcji f (decomposition chart) nazywamy macierz dwuwymiarową o kolumnach etykietowanych wartościami zmiennych funkcji f ze zbioru B oraz o wierszach etykietowanych wartościami zmiennych funkcji f ze zbioru A. Elementami macierzy M są wartości, jakie przyjmuje funkcja f na wektorach złożonych z odpowiednich etykiet i-tego wiersza i j-tej kolumny. Liczbę istotnie różnych kolumn tej macierzy ze względu na ich zawartość oznaczamy symbolem n(A|B) (column multiplicity).
Niech będzie dana funkcja boolowska f oraz podział zbioru zmiennych wejściowych funkcji f na dwa rozłączne zbiory A i B, wówczas:
f(A,B) = h(A,g1(B),..., gj(B)) Û n(A|B) £ 2j
Schemat takiej dekompozycji jest przedstawiony na rys. 3.1.
Rys. 3.1. Schemat blokowy dekompozycji funkcjonalnej
Twierdzenie powyższe można uogólnić na przypadek zespołów funkcji. Niech będzie dana rodzina funkcji boolowskich F, wówczas:
F(A,B) = H(A,G(B)) dla G(B) = (g1(B),..., gj(B)) Û n(A|B) £ 2j
Dla funkcji z tablicy 3.1 kolumny są adresowane trzema zmiennymi {<i>x</i><sub>1</sub>, <i>x</i><sub>2</sub>, <i>x</i><sub>3</sub>} względem których funkcja f jest symetryczna. Wiersze natomiast są adresowane zmiennymi {<i>x</i><sub>4</sub>, <i>x</i><sub>5</sub>}.
Tablica 3.1
Grupy kolumn o adresach {(001), (010), (100)} i {(110), (101), (011)} są odpowiednio równe. Zatem istnieje dekompozycja, w której zmienne {<i>x</i><sub>1</sub>, <i>x</i><sub>2</sub>, <i>x</i><sub>3</sub>} są przeadresowywane na {<i>g</i><sub>1</sub>, <i>g</i><sub>2</sub>} (tablica 3.2a).
Wówczas funkcja f może być specyfikowana w tablicy, w której adresami kolumn są {<i>g</i><sub>1</sub>, <i>g</i><sub>2</sub>}, a wierszy odpowiednio wartości zmiennych {<i>x</i><sub>4</sub>, <i>x</i><sub>5</sub>} (patrz tablica 3.2b). Tablice te są jednocześnie tablicami prawdy funkcji reprezentujących składowe dekompozycji, tzn. bloki G i H.
Tablica 3.2
Niestety postępowanie takie w ogólnym przypadku funkcji nie w pełni określonych nie może być już tak bezpośrednie. Przykład takiej bardziej skomplikowanej sytuacji omówimy dokonując dekompozycji funkcji podanej w tabl. 3.4.
Tablica 3.3
Otóż w tym przypadku, ze względu na nieokreśloności funkcji, nie można bezpośrednio podjąć decyzji, które kolumny w tablicy dekompozycji są takie same. Wynika to z faktu, że kreskom reprezentującym punkty nieokreśloności funkcji można przypisać wartość albo 0 albo 1, w rezultacie zaliczając odpowiednią kolumnę do – być może – innego zbioru kolumn identycznych. Dlatego w tym przypadku wygodnie będzie wszystkie kolumny, dla których w poszczególnych wierszach tablicy dekompozycji nie występują sprzeczne wartości (0 i 1), nazywać kolumnami zgodnymi. Zgodne są na przykład kolumny K0 i K3, gdyż w ich poszczególnych wierszach, jako wartości funkcji, występują wyłącznie: 1 (w kolumnie K0) i 1 (w kolumnie K3), oraz odpowiednio, – i –; – i 0; wreszcie 0 i –. Natomiast kolumny K0 i K1 są niezgodne, gdyż w wierszu oznaczonym 11 mają wartości funkcji odpowiednio 0 i 1. Nietrudno zauważyć, że tak definiowane pary kolumn zgodnych tworzą relację zgodności, której własności: zwrotność, symetryczność i nieprzechodniość uprawniają do grupowania kolumn zgodnych w maksymalne klasy zgodności. Wypisując więc dla funkcji z tabl. 3.4 wszystkie pary zgodne: {<i>K</i><sub>0</sub>, <i>K</i><sub>3</sub>}, {<i>K</i><sub>0</sub>, <i>K</i><sub>4</sub>}, {<i>K</i><sub>0</sub>, <i>K</i><sub>6</sub>}, {<i>K</i><sub>1</sub>, <i>K</i><sub>3</sub>}, {<i>K</i><sub>1</sub>, <i>K</i><sub>4</sub>}, {<i>K</i><sub>1</sub>, <i>K</i><sub>5</sub>}, {<i>K</i><sub>1</sub>, <i>K</i><sub>6</sub>}, {<i>K</i><sub>2</sub>, <i>K</i><sub>5</sub>}, {<i>K</i><sub>2</sub>, <i>K</i><sub>7</sub>}, {<i>K</i><sub>3</sub>, <i>K</i><sub>4</sub>}, {<i>K</i><sub>3</sub>, <i>K</i><sub>6</sub>}, {<i>K</i><sub>4</sub>, <i>K</i><sub>5</sub>}, {<i>K</i><sub>4</sub>, <i>K</i><sub>6</sub>}, {<i>K</i><sub>5</sub>, <i>K</i><sub>7</sub>}, łatwo możemy obliczyć – stosując algorytm omówiony w rozdz. 1 – maksymalne klasy zgodności:
{<i>K</i><sub>0</sub>, <i>K</i><sub>3</sub>, <i>K</i><sub>4</sub>, <i>K</i><sub>6</sub>},
{<i>K</i><sub>1</sub>, <i>K</i><sub>3</sub>, <i>K</i><sub>4</sub>, <i>K</i><sub>6</sub>},
{<i>K</i><sub>1</sub>, <i>K</i><sub>4</sub>, <i>K</i><sub>5</sub>},
{<i>K</i><sub>2</sub>, <i>K</i><sub>5</sub>, <i>K</i><sub>7</sub>}.
Ze zrozumiałych względów niektóre kolumny występują w więcej niż jednej klasie zgodności. Musimy więc podjąć decyzję o wyborze rozłącznych klas zgodności (nie muszą być w tym przypadku maksymalne) pokrywających wszystkie kolumny tablicy dekompozycji, tzn. każda kolumna musi być reprezentowana w jednej klasie zgodności. Jedno z możliwych rozwiązań jest:{<i>K</i><sub>0</sub>, <i>K</i><sub>3</sub>, <i>K</i><sub>4</sub>, <i>K</i><sub>6</sub>}, {<i>K</i><sub>2</sub>, <i>K</i><sub>5</sub>}, {<i>K</i><sub>2</sub>, <i>K</i><sub>7</sub>}.
Po połączeniu kolumn należących do jednej klasy w jedną, uzyskuje się tablice funkcji G i H oraz wyrażenia boolowskie tych funkcji:
Funkcjom G i H odpowiada schemat blokowy oraz logiczny przedstawiony odpowiednio na rys. 3.2a oraz 3.2b.
| a) | b) |
Rys. 3.2. Schemat blokowy (a) i logiczny (b) funkcji GiH
Przedstawiona wyżej metoda, jakkolwiek łatwa do interpretacji graficznej, w obliczeniach analitycznych bardziej skomplikowanych przykładów staje się zbyt pracochłonna. Na przykład dla funkcji TL27 (patrz tab. 2.28) odpowiednia tablica dekompozycji – uzyskana dla reduktu R10 = {<i>x</i><sub>3</sub>,<i> x</i><sub>5</sub>,<i> x</i><sub>6</sub>,<i> x</i><sub>7</sub>,<i> x</i><sub>8</sub>,<i> x</i><sub>9</sub>,<i> x</i><sub>10</sub>} – jest przedstawiona w tab. 3.4.
Tablicę tę skonstruowano przy założeniu, że zbiory zmiennych bezpośrednich oraz pośrednich są odpowiednio A = {<i>x</i><sub>7</sub>,<i> x</i><sub>8</sub>,<i> x</i><sub>9</sub>}, B = {<i>x</i><sub>3</sub>,<i> x</i><sub>5</sub>,<i> x</i><sub>6</sub>,<i> x</i><sub>10</sub>}. Spostrzeżenie, że w tablicy tej – w celu obliczenia składowych G i H dekompozycji – należy „skleić” kolumny oznaczone wektorami: 0000, 0011, 0100, 0101, 1000, 1001, 1010, 1011, 1111 oraz 0010, 0110, 0111, 1100, 1101, 1110, nie jest zadaniem łatwym. Spostrzeżenie to prowadzi do wniosku, że funkcję TL27 można zrealizować, jak na rys. 3.3.
|
Rys. 3.3. Realizacja funkcji TL27 |
Tablica 3.4 |


