Minimalizacja funkcji boolowskich c.d. Metoda tablic Karnaugha Metoda Quine a McCluskey a Absolutnie nieprzydatna do obliczeń komputerowych Pierwsze skuteczne narzędzie do minimalizacji wieloargumentowych i wielowyjściowych funkcji boolowskich (Uniwersytet Kalifornijski w Berkeley) : adeusz P Metoda i system Espresso (984) ZP
Procedury systemu ESPRESSO F,D Complement Expand Essential primes rredundant-cover adeusz P Reduce Last-gasp F M Omówienie całego Espresso jest nierealne! ZP 2
adeusz P ZP Metoda ekspansji Ze względu na ograniczony zakres wykładu omówimy wyłącznie: Metodę Ekspansji (jako przykładową procedurę Espresso) Zmodyfikowana metoda ekspansji Łączy idee metody Quine a McCluskey a oraz metody Espresso: a) generacja implikantów prostych (wg Espresso) b) selekcja implikantów (wg Quine a McCluskey a) Metoda ta zrealizowana w programie nstantrs jest udostępniona na stronie przedmiotu w katalogu: Komputerowe narzędzia syntezy logicznej 3
Ekspansja -pojęcia podstawowe Kostka Kto krotka o składowych,, reprezentująca zbiór wektorów zero-jedynkowych. K = ( ), to zbiór wektorów: x x 3 Kostka reprezentuje niepełny iloczyn: K = = adeusz P Nie każda kostka jest implikantem, ale każdy implikant jest kostką. Kostka może być zbiorem wektorów fałszywych, albo prawdziwych i fałszywych. ZP 4
Oznaczenia W ekspansji wektory (w ogólności kostki), dla których funkcja f = oznacza się zbiorem F. Wektory (kostki) dla których funkcja f = oznacza się zbiorem R. f = (F, R) adeusz P ZP 5
Przykład (EXL) adeusz P ZP x x 2 x 3 x 4 x 5 x 6 x 7 f k k 2 k 3 k 4 k 5 F = R = 6
Ekspansja Ekspansja jest procesem działającym na wektorach (kostkach) zbiorów Fi R, a jej celem jest uzyskanie dla danejk Fkostki k'tak dużej, jak to tylko możliwe (tzn. zmożliwie dużą liczbą pozycji o wartości ) i nie pokrywającej żadnego wektora zbioru R. W swoich obliczeniach Ekspansja wykorzystuje tzw. macierz blokującą B. adeusz P ZP Macierz blokującadla danej kostki k Fpowstaje z macierzy R przez zanegowanie tych kolumn R, których pozycje są wyznaczone przez pozycje jedynek w kostcek F. 7
worzenie macierzy blokującej Wyznaczymy macierz blokującą dla kostki k wiedząc, że Fi Rsą opisane macierzami: = F = = R Skoro k = (), to dla uzyskaniabwystarczy w macierzy R"zanegować" kolumny drugą, piątą i siódmą. ZatemB(k,R): P = B adeusz W ZP 8 Łuba
Pokrycie kolumnowe Pokryciem kolumnowymmacierzy Bjest zbiór kolumn L(L {,...,n}) taki, że dla każdego wiersza i istnieje kolumna j L, która w wierszu i ma jedynkę. Zbiór Ljest minimalnym pokryciem kolumnowym macierzy B,jeśli nie istnieje zbiór L (tworzący pokrycie) taki, że L L. adeusz P ZP B = Przykład i interpretacja: 2 3 4 5 6 7 L= {L 4,L 7 }jestpokryciemkolumnowym. L= {L 2,L 3 } nie L= {L 2,L 3,L 6 }jestpokryciemkolumnowym. L= {L 2,L 6 } nie L= {L 3,L 6 } nie Obliczenie jakiegokolwiek minimalnego pokrycia kolumnowego nie jest trudne! 9
Jak obliczyć wszystkie minimalne pokrycia kolumnowe! Zapisać zbiory kolumn wskazywane (jedynkami) (L i, L j,l k ) (L k, L p,l q ) w postaci iloczynu sum (L i + L j + L k ) (L k + L p + L q ) adeusz P ZP Koniunkcję sum przekształcić do minimalnego wyrażenia boolowskiego typu suma iloczynów L i L k + L j L p L q + Składniki tego iloczynu reprezentują minimalne pokrycia
Obliczanie pokrycia kolumnowego Przykład B = 2 3 4 5 6 7 {L 6, L 7 } {L 3, L 4 } {L 2, L 4 } {L 2, L 3, L 7 } Korzystamy z własności algebry Boole a adeusz P (L 6 + L 7 )(L 3 + L 4 )(L 2 + L 4 )(L 2 + L 3 + L 7 ) = (L 4 + L 2 )(L 4 + L 3 )(L 7 + L 6 )(L 7 + L 2 + L 3 ) = (L 4 + L 2 L 3 )(L 7 + L 6 (L 2 + L 3 )) = (L 4 + L 2 L 3 )(L 7 + L 2 L 6 + L 3 L 6 ) = L 4 L 7 + L 2 L 4L 6 + L 3L 4L 6 + L 2 L 3L 7+ L 2 L 3L 6 + L 2 L 3L 6 ZP
Obliczanie pokrycia kolumnowego B = 2 3 4 5 6 {L 6, L 7 } {L 3, L 4 } {L 2, L 4 } {L 2, L 3, L 7 } 7 L 4 L 7 + L 2 L 4 L 6 + L 3 L 4 L 6 + L 2 L 3 L 7 + L 2 L 3 L 6 {L 4,L 7 } {L 2,L 4,L 6 } {L 3,L 4,L 6 }... adeusz P ZP Pokrycie kolumnowe jest pojęciem ogólnym, można go tworzyć dla każdej macierzy binarnej 2
Generacja (obliczanie) implikantów Pokrycie kolumnowe macierzy blokującejb(k,r) pozwala wyznaczyć ekspansję kostki koznaczaną k + (L,k) wsposób następujący: wszystkie składowe kostki knależące do Lnie ulegają zmianie, natomiast składowe nie należące do Lprzyjmują wartość. Ekspansja kostki kjest implikantem funkcji f = (F,R). adeusz P Wszczególności k + (L,k)jest implikantem prostym, gdyl jest minimalnym pokryciem kolumnowym macierzy B(k,R). ZP 3
Obliczanie implikantów- przykład Dla k 2 = ()i macierzyb= 2 3 4 5 6 7 zbiór L= {4,7} jest pokryciem kolumnowymb, a więc k 2 = () k + (L,k 2 ) = ( ), czyli implikantem F jest x 4 x 7 adeusz P ZP Natomiast dla L= {2,3,6} (inne pokrycie kolumnowe), k + (L,k) = ( ) = x x x 2 3x6 4
Procedura Ekspansji Obliczanie implikantów prostych adeusz P ZP k k 2 k j Macierz blokująca Wszystkie minimalne pokrycia kolumnowe Wszystkie (najkrótsze) implikanty proste Powtarzamy dla każdej kostki k j F Zbiór implikantów prostych k n Uzyskane zbiory implikantów prostych porządkujemy wyrzucając implikanty powtarzające się 5
mplikanty proste Obliczając kolejno implikanty proste dla każdej k F uzyskuje się: x x 2 x 3 x 4 x 5 x 6 x 7 f Dla k x adeusz P k k 2 k 3 k 4 k 5 Dla k 2 Dla k 3 x 4 x 7 x 5 x 4 x Dla k 4 7 x 2 x Dla k 5 6..są powtarzające się x 3 x 6 ZP 6
mplikanty proste Porządkując i oznaczając kolejno uzyskujemy następujący zbiór implikantów prostych: = = 2 3 = x x x 4 5 x 7 =x 4 2x6 = 5 x3x6 adeusz P Na ogół jest to zbiór za duży, zatem trzeba wybrać najlepsze implikanty. ZP 7
przystępujemy do procesu selekcji Selekcji minimalnej liczby implikantów prostych umożliwiających realizację (pokrycie) funkcji boolowskiej dokonuje się za pomocą tzw. ablicy implikantów (prostych) Pojęciem pomocniczym umożliwiającym konstrukcję jest: Relacja pokrycia dla kostek adeusz P ZP R pokrywa (R ) jeśli r = t lub r = * i i i (* ) (* ) () ( ) 8
ablica F: Relacja pokrycia dla kostek x x 2 x 3 x 4 x 5 x 6 x 7 k k 2 k 3 k 4 k 5 = ( ) k x = ( ) k, k5 4 x2x6 k k k 5 adeusz P ZP ( ) k = x x 2 4 7 2,k3, k4 k 2 k 3 k 4 9
adeusz P ZP ablica implikantów prostych Korzystając z informacji jakie wektory (kostki) funkcji pierwotnej są pokrywane poszczególne implikanty, tworzymy tablicę implikantów prostych: k 3 k 3 2 k,k 2 3,k4 4 k, k5 5 k, 3 k 5 W tablicy tej wiersze reprezentują: kostki funkcji pierwotnej, a kolumny implikanty (kostki po ekspansji). Jeśli j 2 3 4 5 k to w przecięciu wiersza i, kolumny j, stawiamy, w przeciwnym przypadku. i k k 2 k 3 k 4 k 5 2
Selekcja implikantów prostych Jak z tej tablicy znaleźć minimalny zbiór implikantów pokrywający każdą k,, k 5 adeusz P ZP k k 2 k 3 k 4 2 3 4 5 nny zapis tablicy: Pokrycie kolumnowe k 5, 4 2 2,, 3, 5 2 4, 5 = x 2 4 7 4 = x2 x6 =x, 4 Minimalne pokrycie: 2, 4 4, 5 2 4 Minimalna formuła: x 4x7 + x2x6 x 2
mplementacja metody program nstantrs Na stronie przedmiotu w katalogu: KOMPUEROWE NARZĘDZA SYNEZY LOGCZNEJ Prace dyplomowe Błyskawica(ZP -364 kb) Espresso Proton(ZP -2 5 kb) Espresso 64(ZP -59 kb) instantrs(zp -5 98 kb) Rough Set Exploration System(ZP -3 26 kb) Downloading Rough Set Exploration System GENERAOR(EXE -62 kb) kazmin.tab kazmin2.tab RSES instrukcja adeusz P ZP Rozdział 2: Espresso, nstantrs 22
mplementacja metody program nstantrs adeusz P ZP 23
mplementacja metody program nstantrs adeusz P ZP 24
Standard espresso Przyklad 4.3 (z książki Synteza logiczna): adeusz P ZP Liczba wierszy.type fr.i 5 Liczba wejść.o.p Liczba wyjść.e 25
mplementacja metody program nstantrs adeusz P w Formacie trzeba zaznaczyć opcję Logic ZP 26
mplementacja metody program nstantrs adeusz P ZP Minimal Decision Rules uruchamia proces minimalizacji 27
mplementacja metody program nstantrs Przykład 4.3 (Synteza logiczna).type fr.i 5.o.p.e >> Started calculation at: 22. Sep 24, 8:22:25 >> Elapsed:. sec. >> Prime Set [Decision ]: =!x!x2!x4 (in obj) 2 =!x!x3!x4(in obj) 3 =!x2!x4!x5(in obj) 4 =!x3!x4!x5(in 2 obj) 5 = x!x5 (in 3 obj) 6 = x2!x3 (in 3 obj) 7 = xx4 (in obj) 8 = x2x4 (in 3 obj) 9 =!xx5 (in obj) = x4x5 (in obj) adeusz P ZP # 2 3 4 5 6 7 8 9 c c2 c3 c4 c5 c6 >> Min Decision Rules (Reduced Set) ]!x!x2!x4 + x!x5 + x2x4 2]!x!x3!x4 + x!x5 + x2x4 3]!x2!x4!x5 + x!x5 + x2x4 4]!x3!x4!x5 + x!x5 + x2x4 28
Metoda heurystyczna... (Wygodna do stosowania w obliczeniach ręcznych) Oblicza się ekspansję kostki k (ozn. E(k )) tylko jedną Wykreśla się z macierzy F wszystkie wektory pokrywane przez E(k ) Powstaje nowa macierz F,wktórejbierzemy pierwszą kostkę i postępujemy tak samo Proces kończy się, gdy pokryjemy (wykreślimy) wszystkie kostki F adeusz P ZP Wynik (zminimalizowaną funkcję) tworzą kolejno obliczone ekspansje 29
Przykład obliczany oryginalną ekspansją adeusz P ZP x x 2 x 3 x 4 x 5 x 6 x 7 f k k 2 k 3 k 4 k 5 F = R = 3
Przykład k 7 6 5 4 3 2 7 6 5 4 3 2 = R F = k k 3 k 2 x = k ) ( k 5 k 4 x = k ) ( 7 4 2 x x = 4 3 2 k,,k k ) ( 7 6 5 4 3 2 7 6 5 4 3 2 P = B = B adeusz W ZP 3 Łuba
Przykład 7 6 5 4 3 2 7 6 5 4 3 2 = R k 5 F = k ) ( x =x 7 6 5 4 3 2 k 5 ) ( 6 2 3 x =x = B x f = 7 x 4 x + 6 +x 2 x P Wynik gorszy, ale zadowalający adeusz W ZP 32 Wynik gorszy, ale zadowalający Łuba
Procedury systemu ESPRESSO F,D Complement Expand Essential primes f = 7 = + xx 4 +x 2 x x + 6 rredundant-cover x + 4x7 x2x6 Reduce adeusz P Last-gasp F M f = x4x7 + x2x6 ZP 33
Przykład praktyczny S-box układu kryptograficznego DES ablica prawdy 6 wejść, 4 wyjścia S-box S 4 4 3 2 5 8 3 6 2 5 9 7 5 7 4 4 2 3 6 2 9 5 3 8 4 4 8 3 6 2 5 2 9 7 3 5 5 2 8 2 4 9 7 5 3 4 6 3 adeusz P ZP 34
Przykład praktyczny adeusz P ZP.type fr.i 6.o.p 64.p 64 *************... * nstantrs * ************* >> Started calculation at: 22. Oct 25, 7:5: >> Elapsed:.3 sec. >> Min Decision Rules (Reduced Set)!x!x2!x3!x4!x6 +!x!x2!x3x4x6 +!x!x3x4x5!x6 +!x2!x3x4x5x6 +!x2x3!x5x6 +!x!x2x3!x4x6 + x2!x3!x4!x5x6 +!xx2!x3x4!x6 +!xx2x3!x4!x6 + x2x3x5x6 + x2x3x4!x5!x6 + x!x2!x3!x4x5 + x!x2!x3x4!x5!x6 + x!x2x3!x4!x6 + xx3!x4!x5x6 + xx2!x3!x4!x6 + xx2!x3!x5x6 Wynik espresso takiej samej jakości.e 35