PDF - 493 kB - Tadeusz Łuba
Transkrypt
PDF - 493 kB - Tadeusz Łuba
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) : I T P Tadeusz W Łuba Metoda i system Espresso (1984) ZCB ZPT 1 Procedury systemu ESPRESSO F,D Complement Expand Essential primes Irredundant-Cover Reduce I T P Tadeusz W Łuba FM Last-gasp Omówienie całego Espresso jest nierealne! ZCB ZPT 2 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) I T P Tadeusz W Łuba Metoda ta zrealizowana w programie InstantRS jest udostępniona na stronie przedmiotu w katalogu: Komputerowe narzędzia syntezy logicznej ZCB ZPT 3 Ekspansja - pojęcia podstawowe Kostka K to krotka o składowych 0, 1, ∗ reprezentująca zbiór wektorów zero-jedynkowych. K = (0∗1∗), to zbiór wektorów: 0010 0011 0110 0111 Kostka reprezentuje niepełny iloczyn: K = 0∗1∗ = x1x 3 I T P Tadeusz W Łuba 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. ZCB ZPT 4 Oznaczenia W ekspansji wektory (w ogólności kostki), dla których funkcja f = 1 oznacza się zbiorem F. Wektory (kostki) dla których funkcja f = 0 oznacza się zbiorem R. f = (F, R) I T P Tadeusz W Łuba ZCB ZPT 5 Przykład (EXTL) x2 x3 x4 x5 x6 x7 f 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 k1 0 1 0 0 1 0 1 1 k2 1 0 0 0 1 1 0 1 k3 1 0 1 0 0 0 0 1 k4 1 0 1 0 1 1 0 1 k5 1 1 1 0 1 0 1 1 0 1 0 0 1 0 1 I T P Tadeusz W Łuba ZCB x1 1 0 0 0 1 1 0 F= 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 1 R= 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 ZPT 6 Ekspansja Ekspansja jest procesem działającym na wektorach (kostkach) zbiorów F i R, a jej celem jest uzyskanie dla danej k ∈ F kostki k' tak dużej, jak to tylko możliwe (tzn. z moż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. I T P Tadeusz W Łuba Macierz blokująca dla danej kostki k ∈ F powstaje z macierzy R przez zanegowanie tych kolumn R, których pozycje są wyznaczone przez pozycje jedynek w kostce k ∈ F. ZCB ZPT 7 Tworzenie macierzy blokującej Wyznaczymy macierz blokującą dla kostki k1 wiedząc, że F i R są opisane macierzami: 0 1 F = 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 R= 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 Skoro k1 = (0100101), to dla uzyskania B wystarczy w macierzy R "zanegować" kolumny drugą, piątą i siódmą. Zatem B(k1,R): I T P Tadeusz W Łuba ZCB 1 1 B= 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 ZPT 8 Pokrycie kolumnowe Pokryciem kolumnowym macierzy B jest zbiór kolumn L (L ⊆ {1,...,n}) taki, że dla każdego wiersza i istnieje kolumna j ∈ L, która w wierszu i ma jedynkę. Zbiór L jest minimalnym pokryciem kolumnowym macierzy B, jeśli nie istnieje zbiór L’ (tworzący pokrycie) taki, że L ⊇ L’. Przykład i interpretacja: L = {L4, L7} jest pokryciem kolumnowym. 1 2 3 4 5 6 7 0 0 0 0 0 1 1 0 1 1 0 0 0 0 I T P Tadeusz W Łuba ZCB ZPT B= 1 0 1 0 0 0 0 0 1 1 0 0 0 1 L = {L2, L3} – nie L = {L2, L3, L6} jest pokryciem kolumnowym. L = {L2, L6} – nie L = {L3, L6} – nie Obliczenie jakiegokolwiek minimalnego pokrycia kolumnowego nie jest trudne! 9 Jak obliczyć wszystkie… minimalne pokrycia kolumnowe! Zapisać zbiory kolumn wskazywane 1 (jedynkami) (Li, Lj ,Lk …) (Lk, Lp,Lq …) w postaci iloczynu sum (Li + Lj + Lk) (Lk + Lp + Lq) … Koniunkcję sum przekształcić do minimalnego wyrażenia boolowskiego typu suma iloczynów I T P Tadeusz W Łuba ZCB Li Lk + Lj LpLq + … Składniki tego iloczynu reprezentują minimalne pokrycia ZPT 10 Obliczanie pokrycia kolumnowego Przykład… 1 2 3 4 5 6 7 0 0 0 0 0 1 1 {L6, L7} 0 1 1 0 0 0 {L3, L4} 0 B= 1 0 1 0 0 0 {L2, L4} 0 0 1 1 0 0 0 1 {L , L , L } 2 7 3 Korzystamy z własności algebry Boole’a (L6 + L7) (L3 + L4) (L2 + L4) (L2 + L3 + L7) = (L4 I T P Tadeusz W Łuba + L2)(L4 + L3)( L7 + L6)(L7 + L2 + L3) = (L4 + L2 L3)(L7 + L6(L2 + L3)) = (L4 + L2 L3)(L7 + L2L6+ L3L6) = L4 L7 + L2 L4L6 + L3L4L6 + L2 L3L7 + L2 L3L6 + L2 L3L6 ZCB ZPT 11 Obliczanie pokrycia kolumnowego 1 2 3 4 5 6 7 0 0 0 0 0 1 1 {L6, L7} 0 1 1 0 0 0 {L3, L4} 0 B= 1 0 1 0 0 0 {L2, L4} 0 0 1 1 0 0 0 1 {L , L , L } 2 7 3 L4 L7 + L2 L4L6 + L3L4L6 + L2 L3L7 + L2 L3L6 {L4, L7} {L2, L4, L6} {L3, L4, L6}... I T P Tadeusz W Łuba ZCB Pokrycie kolumnowe jest pojęciem ogólnym, można go tworzyć dla każdej macierzy binarnej ZPT 12 Generacja (obliczanie) implikantów Pokrycie kolumnowe macierzy blokującej B(k,R) pozwala wyznaczyć ekspansję kostki k oznaczaną k+(L,k) w sposób następujący: wszystkie składowe kostki k należące do L nie ulegają zmianie, natomiast składowe nie należące do L przyjmują wartość ∗. Ekspansja kostki k jest implikantem funkcji f = (F,R). I T P Tadeusz W Łuba W szczególności k+(L,k) jest implikantem prostym, gdy L jest minimalnym pokryciem kolumnowym macierzy B(k,R). ZCB ZPT 13 Obliczanie implikantów - przykład 1 2 3 4 5 6 7 0 0 0 0 0 1 1 Dla k2 = (1000110) i macierzy B= 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 zbiór L = {4,7} jest pokryciem kolumnowym B, a więc k2 = (1000110) k+(L, k2) = (∗∗∗0∗∗0), czyli implikantem F jest I T P Tadeusz W Łuba x 4x7 Natomiast dla L = {2,3,6} (inne pokrycie kolumnowe), x2x3x6 k+(L,k) = (∗00∗∗1∗) = ZCB ZPT 14 Procedura Ekspansji Obliczanie implikantów prostych Wszystkie 1 0 1 0 0 1 I T P Tadeusz W Łuba 1 1 ••• ••• ••• ••• 0 1 0 k1 1 0 0 k2 • • • • • • 0 1 1 kj • • • • • • 0 1 1 kn Macierz blokująca minimalne pokrycia kolumnowe Wszystkie (najkrótsze) implikanty proste Zbiór implikantów prostych Powtarzamy dla każdej kostki kj ∈ F Uzyskane zbiory implikantów prostych porządkujemy wyrzucając implikanty powtarzające się ZCB ZPT 15 Implikanty proste Obliczając kolejno implikanty proste dla każdej k ∈ F uzyskuje się: I T P Tadeusz W Łuba x1 x2 x3 x4 x5 x6 x7 f 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 k1 1 0 0 0 1 1 0 1 k2 1 0 1 0 0 0 0 1 k3 1 0 1 0 1 1 0 1 k4 1 1 1 0 1 0 1 1 k5 Dla k 1 Dla k 2 x1 x 4x7 ..są Dla k 3 x5 powtarzające się Dla k 4 x 4x7 Dla k 5 x2x6 x3x6 ZCB ZPT 16 Implikanty proste Porządkując i oznaczając kolejno uzyskujemy następujący zbiór implikantów prostych: I1 = x1 I2 = x 4 x 7 I3 = x 5 I T P Tadeusz W Łuba I4 = x 2 x 6 I5 = x 3 x 6 Na ogół jest to zbiór za duży, zatem trzeba wybrać „najlepsze” implikanty. ZCB ZPT 17 … przystępujemy do procesu selekcji Selekcji minimalnej liczby implikantów prostych umożliwiających realizację (pokrycie) funkcji boolowskiej dokonuje się za pomocą tzw. Tablicy implikantów (prostych) Pojęciem pomocniczym umożliwiającym konstrukcję TI jest: Relacja pokrycia dla kostek R pokrywa T (R ⊇ T) I T P Tadeusz W Łuba jeśli r i = ti lub r i =* (0*1 ∗) ⊇ (0010) (0*1 ∗) ⊇ / (101∗) ZCB ZPT 18 Relacja pokrycia dla kostek Tablica F: x1 x2 x3 x4 x5 x6 x7 k1 0 1 0 0 1 0 1 k2 1 0 0 0 1 1 0 k3 1 0 1 0 0 0 0 k4 1 0 1 0 1 1 0 k5 1 1 1 0 1 0 1 I1 = x1 (0 ∗ ∗ ∗ ∗ ∗ ∗) ⊇ k1 k 1 I4 = x 2 x 6 (∗1∗ ∗ ∗ 0∗) ⊇ k 1, k 5 I T P Tadeusz W Łuba ZCB ZPT I2 = x 4 x 7(∗ ∗ ∗0 ∗ ∗0) ⊇ k 2 , k 3 , k 4 k 1 k2 k5 k 3 k4 19 Tablica implikantów prostych Korzystając z informacji jakie wektory (kostki) funkcji pierwotnej są pokrywane poszczególne implikanty, tworzymy tablicę implikantów prostych: W tablicy tej wiersze reprezentują: kostki funkcji pierwotnej, a kolumny – implikanty (kostki po ekspansji). Jeśli Ij ⊇ k i I T P Tadeusz W Łuba to w przecięciu wiersza i, kolumny j, stawiamy 1, w przeciwnym przypadku – 0. I1 ⊇k1 I2 ⊇k2,k3,k4 I3 ⊇ k3 I4 ⊇k1,k5 I5 ⊇k3,k5 I1 I2 I3 I4 I5 k1 1 0 0 1 0 k2 0 1 0 0 0 k3 0 1 1 0 1 k4 0 1 0 0 0 k5 0 0 0 1 1 ZCB ZPT 20 Selekcja implikantów prostych Jak z tej tablicy znaleźć minimalny zbiór implikantów „pokrywający” każdą k1,…, k5 I1 I2 I3 I4 I5 k1 1 0 0 1 0 k2 0 1 0 0 0 k3 0 1 1 0 1 k4 0 1 0 0 0 k5 0 0 0 1 1 Inny zapis tablicy: I T P Tadeusz W Łuba ZCB ZPT I1, I4 I2 I2 ,I3, I5 I2 I4, I5 Pokrycie kolumnowe I2 = x 4 x 7 I4 = x 2 x 6 I1, I4 I4, I5 Minimalne pokrycie: I2,I4 Minimalna formuła: x 4 x 7 + x 2 x 6 21 Implementacja metody – program InstantRS Na stronie przedmiotu w katalogu: KOMPUTEROWE NARZĘDZIA SYNTEZY LOGICZNEJ Prace dyplomowe Błyskawica (ZIP - 364 kB) Espresso Proton (ZIP - 2 511 kB) Espresso 64 (ZIP - 159 kB) instantRS (ZIP - 5 098 kB) Rough Set Exploration System (ZIP - 3 260 kB) Downloading Rough Set Exploration System GENERATOR (EXE - 62 kB) kazmin1.tab kazmin2.tab RSES instrukcja I T P Tadeusz W Łuba Rozdział 12: Espresso, InstantRS ZCB ZPT 22 Implementacja metody – program InstantRS I T P Tadeusz W Łuba ZCB ZPT 23 Implementacja metody – program InstantRS I T P Tadeusz W Łuba ZCB ZPT 24 Standard espresso Przyklad 4.13 (z książki Synteza logiczna): Liczba wierszy I T P Tadeusz W Łuba ZCB ZPT .type fr .i 5 .o 1 .p 11 11101 0 00010 0 00110 0 10001 0 01100 0 00000 1 11000 1 11010 1 01110 1 11100 1 01011 1 .e Liczba wejść Liczba wyjść 25 Implementacja metody – program InstantRS …w Formacie trzeba zaznaczyć opcję Logic I T P Tadeusz W Łuba ZCB ZPT 26 Implementacja metody – program InstantRS Minimal Decision Rules uruchamia proces minimalizacji I T P Tadeusz W Łuba ZCB ZPT 27 Implementacja metody – program InstantRS Przykład 4.13 (Synteza logiczna) .type fr .i 5 .o 1 .p 11 11101 0 00010 0 00110 0 10001 0 … 11100 1 01011 1 .e I T P Tadeusz W Łuba ZCB ZPT #| I1| I2| I3| I4| I5| I6| I7| I8| I9|I10| c1| 1| 1| 1| 1| 0| 0| 0| 0| 0| 0| c2| 0| 0| 0| 1| 1| 1| 0| 0| 0| 0| c3| 0| 0| 0| 0| 1| 1| 1| 1| 0| 0| c4| 0| 0| 0| 0| 0| 0| 0| 1| 0| 0| c5| 0| 0| 0| 0| 1| 0| 0| 0| 0| 0| c6| 0| 0| 0| 0| 0| 1| 0| 1| 1| 1| >> Started calculation at: 22. Sep 2014, 18:22:25 >> Elapsed: 0.0100 sec. >> Prime Set [Decision 1]: I1 = !x1!x2!x4 (in 1 obj) I2 = !x1!x3!x4 (in 1 obj) I3 = !x2!x4!x5 (in 1 obj) I4 = !x3!x4!x5 (in 2 obj) I5 = x1!x5 (in 3 obj) I6 = x2!x3 (in 3 obj) I7 = x1x4 (in 1 obj) I8 = x2x4 (in 3 obj) I9 = !x1x5 (in 1 obj) I10 = x4x5 (in 1 obj) >> Min Decision Rules (Reduced Set) 1] !x1!x2!x4 + x1!x5 + x2x4 2] !x1!x3!x4 + x1!x5 + x2x4 3] !x2!x4!x5 + x1!x5 + x2x4 4] !x3!x4!x5 + x1!x5 + x2x4 28 Metoda heurystyczna... (Wygodna do stosowania w obliczeniach ręcznych) Oblicza się ekspansję kostki k1 (ozn. E(k1)) – tylko jedną Wykreśla się z macierzy F wszystkie wektory pokrywane przez E(k1) Powstaje nowa macierz F’, w której bierzemy pierwszą kostkę i postępujemy tak samo… Proces kończy się, gdy pokryjemy (wykreślimy) wszystkie kostki F I T P Tadeusz W Łuba Wynik (zminimalizowaną funkcję) tworzą kolejno obliczone ekspansje ZCB ZPT 29 Przykład obliczany oryginalną ekspansją x2 x3 x4 x5 x6 x7 f 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 k1 0 1 0 0 1 0 1 1 k2 1 0 0 0 1 1 0 1 k3 1 0 1 0 0 0 0 1 k4 1 0 1 0 1 1 0 1 k5 1 1 1 0 1 0 1 1 0 1 0 0 1 0 1 I T P Tadeusz W Łuba ZCB x1 1 0 0 0 1 1 0 F= 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 1 R= 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 ZPT 30 Przykład… 1 2 3 4 5 6 7 0 1 0 0 1 0 1 1 0 0 0 1 1 0 = F 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 1 0 1 I1 = x1 I T P Tadeusz W Łuba ZCB ZPT 1 1 1 B= 1 1 k2 k3 k4 k5 2 3 4 5 6 7 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 (0 ∗ ∗ ∗ ∗ ∗ ∗) ⊇ k 1 I =x x 2 1 1 1 R= 1 1 k1 4 7 (∗ ∗ ∗0 ∗ ∗0) ⊇ k 2 , k 3 , k 4 1 2 3 4 5 6 7 0 0 0 0 0 1 1 2 3 4 5 6 7 1 0 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 B= 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 31 Przykład… 1 1 1 R= 1 1 1 2 3 4 5 6 7 F= 1 1 1 0 1 0 1 k5 I = x x (∗1∗ ∗ ∗ 0∗) ⊇ k 3 2 6 2 3 4 5 6 7 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 5 1 2 3 4 5 6 7 1 1 0 0 0 0 0 f =x +x x +x x 1 I T P Tadeusz W Łuba 4 7 2 6 B= 0 1 0 1 0 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 0 Wynik gorszy, ale zadowalający ZCB ZPT 32 Procedury systemu ESPRESSO F,D Complement Expand f =x +x x +x x 1 4 7 2 6 Essential primes Irredundant-Cover x 4 x7 + x2x6 Reduce I T P Tadeusz W Łuba FM Last-gasp f = x 4 x7 + x2 x6 ZCB ZPT 33 Przykład praktyczny S-box układu kryptograficznego DES Tablica prawdy 6 wejść, 4 wyjścia S-box S1 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 15 7 4 14 2 13 1 10 6 12 11 9 5 4 1 14 8 13 6 2 11 15 12 9 7 3 10 15 12 8 2 4 9 1 7 5 11 3 14 10 0 0 7 3 8 5 0 6 13 I T P Tadeusz W Łuba ZCB ZPT 34 Przykład praktyczny… I T P Tadeusz W Łuba ZCB ZPT .type fr .i 6 .o 1 .p 64 000000 1 000001 0 000010 1 000011 0 000100 0 000101 1 000110 1 000111 1 001000 0 001001 1 001010 0 ........ 111010 0 111011 1 111100 1 111101 0 111110 0 111111 1 .e ************* * InstantRS * ************* >> Started calculation at: 22. Oct 2015, 07:50:00 >> Elapsed: 0.0310 sec. >> Min Decision Rules (Reduced Set) !x1!x2!x3!x4!x6 + !x1!x2!x3x4x6 + !x1!x3x4x5!x6 + !x2!x3x4x5x6 + !x2x3!x5x6 + !x1!x2x3!x4x6 + x2!x3!x4!x5x6 + !x1x2!x3x4!x6 + !x1x2x3!x4!x6 + x2x3x5x6 + x2x3x4!x5!x6 + x1!x2!x3!x4x5 + x1!x2!x3x4!x5!x6 + x1!x2x3!x4!x6 + x1x3!x4!x5x6 + x1x2!x3!x4!x6 + x1x2!x3!x5x6 Wynik espresso takiej samej jakości 35