I T P W ZPT 1 Minimalizacja funkcji boolowskich c.d. Pierwsze skuteczne narzędzie do minimalizacji wieloargumentowych i wielowyjściowych funkcji boolowskich (Uniwersytet Kalifornijski w Berkeley) : Absolutnie nieprzydatna do obliczeń komputerowych Metoda tablic Karnaugha Metoda Quine’a – McCluskey’a Metoda i system Espresso (1984)
I T P W ZPT 2 Procedury systemu ESPRESSO Expand Essential primes Irredundant-Cover Reduce Last-gasp F,D F M Complement Omówienie całego Espresso jest nierealne !
I T P W ZPT 3 Metoda ekspansji Łączy idee metody Quine’a McCluskey’a oraz metody Espresso: Metoda ta zrealizowana w programie InstantRS jest udostępniona na stronie przedmiotu w katalogu: Komputerowe narzędzia syntezy logicznej a) generacja implikantów prostych (wg Espresso) b) selekcja implikantów (wg Quine’a McCluskey’a) Zmodyfikowana metoda ekspansji Ze względu na ograniczony zakres wykładu omówimy wyłącznie: Metodę Ekspansji (jako przykładową procedurę Espresso)
I T P W ZPT 4 Ekspansja - pojęcia podstawowe Kostka K to krotka o składowych 0, 1, reprezentująca zbiór wektorów zero-jedynkowych. Kostka reprezentuje niepełny iloczyn: K = 0 1 = K = (0 1 ), to zbiór wektorów: 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.
I T P W ZPT 5 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 W ZPT 6 Przykład (EXTL) x1x1 x2x2 x3x3 x4x4 x5x5 x6x6 x7x7 f k1k k2k k3k k4k k5k
I T P W ZPT 7 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. 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.
I T P W ZPT 8 Tworzenie macierzy blokującej Wyznaczymy macierz blokującą dla kostki k 1 wiedząc, że F i R są opisane macierzami: Skoro k 1 = ( ), to dla uzyskania B wystarczy w macierzy R "zanegować" kolumny drugą, piątą i siódmą. Zatem B(k 1,R):
I T P W ZPT 9 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ę. Pokryciem kolumnowym Zbiór L jest minimalnym pokryciem kolumnowym macierzy B, jeśli nie istnieje zbiór L’ (tworzący pokrycie) taki, że L L’. L = {L 4, L 7 } jest pokryciem kolumnowym. L = {L 2, L 3, L 6 } jest pokryciem kolumnowym. L = {L 2, L 3 } – nie L = {L 2, L 6 } – nie L = {L 3, L 6 } – nie Przykład i interpretacja: Obliczenie jakiegokolwiek minimalnego pokrycia kolumnowego nie jest trudne!
I T P W ZPT 10 Jak obliczyć wszystkie… minimalne pokrycia kolumnowe! Koniunkcję sum przekształcić do minimalnego wyrażenia boolowskiego typu suma iloczynów Zapisać zbiory kolumn wskazywane 1 (jedynkami) Składniki tego iloczynu reprezentują minimalne pokrycia (L i, L j,L k …) (L k, L p,L q …) (L i + L j + L k ) (L k + L p + L q ) … w postaci iloczynu sum L i L k + L j L p L q + …
I T P W ZPT 11 (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 4 L 6 + L 3 L 4 L 6 + L 2 L 3 L 7 + L 2 L 3 L 6 + L 2 L 3 L 6 Przykład… Korzystamy z własności algebry Boole’a {L 6, L 7 } {L 3, L 4 } {L 2, L 4 } {L 2, L 3, L 7 } Obliczanie pokrycia kolumnowego
I T P W ZPT 12 {L 6, L 7 } {L 3, L 4 } {L 2, L 4 } {L 2, L 3, L 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 Obliczanie pokrycia kolumnowego {L 4, L 7 } {L 2, L 4, L 6 } Obliczona i zminimalizowana suma iloczynów reprezentuje wszystkie minimalne pokrycia kolumnowe {L 3, L 4, L 6 }... Pokrycie kolumnowe jest pojęciem ogólnym, można go tworzyć dla każdej macierzy binarnej
I T P W ZPT 13 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). W szczególności k + (L,k) jest implikantem prostym, gdy L jest minimalnym pokryciem kolumnowym macierzy B(k,R). Generacja (obliczanie) implikantów
I T P W ZPT 14 Obliczanie implikantów - przykład Dla k 2 = ( ) i macierzy B= zbiór L = {4,7} jest pokryciem kolumnowym B, a więc Natomiast dla L = {2,3,6} (inne pokrycie kolumnowe), k + (L,k) = ( 00 1 ) = k 2 = ( ) czyli implikantem F jest k + (L, k 2 ) = ( 0 0),
I T P W ZPT 15 Procedura Ekspansji 10010k1k k2k kjkj knkn Macierz blokująca Wszystkie minimalne pokrycia kolumnowe Wszystkie (najkrótsze) implikanty proste Zbiór implikantów prostych Powtarzamy dla każdej kostki k j F Uzyskane zbiory implikantów prostych porządkujemy wyrzucając implikanty powtarzające się Obliczanie implikantów prostych
I T P W ZPT 16 Implikanty proste Obliczając kolejno implikanty proste dla każdej k F uzyskuje się: Dla k 1 1 x 74 xx 2 5 x xx 63 xx 5 62 xx k1k1 k2k2 k3k3 k4k4 k5k5 x1x1 x2x2 x3x3 x4x4 x5x5 x6x6 x7x7 f są powtarzające się
I T P W ZPT 17 Implikanty proste Porządkując i oznaczając kolejno uzyskujemy następujący zbiór implikantów prostych: Na ogół jest to zbiór za duży, zatem trzeba wybrać „najlepsze” implikanty.
I T P W ZPT 18 … przystępujemy do procesu selekcji Selekcji minimalnej liczby implikantów prostych umożliwiających realizację (pokrycie) funkcji boolowskiej dokonuje się za pomocą tzw. * r lub t r T) (R T pokrywaR i ii jeśli (101 ) 1 * (0 ) ) (0010) 1 * (0 ) ) Relacja pokrycia dla kostek Tablicy implikantów (prostych) Pojęciem pomocniczym umożliwiającym konstrukcję TI jest:
I T P W ZPT 19 x1x1 x2x2 x3x3 x4x4 x5x5 x6x6 x7x7 k1k k2k k3k k4k k5k Relacja pokrycia dla kostek 1 k )(0 , 51 kk )01( 432 k,k,k 0)0( Tablica F:
I T P W ZPT 20 Tablica implikantów prostych I1I1 I2I2 I3I3 I4I4 I5I5 k1k1 k2k2 k3k3 k4k4 k5k5 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 i k to w przecięciu wiersza i, kolumny j, stawiamy 1, w przeciwnym przypadku – k,k,kI k,kI k I 3 I 3 k 5 I 53 k,k 2
I T P W ZPT 21 Selekcja implikantów prostych I 1, I 4 I 2 I 2,I 3, I 5 I 2 I 4, I 5 Inny zapis tablicy: Minimalne pokrycie: Minimalna formuła: I 1, I 4 I 4, I 5 I 2,I 4 Pokrycie kolumnowe Jak z tej tablicy znaleźć minimalny zbiór implikantów „pokrywający” każdą k 1,…, k 5 I1I1 I2I2 I3I3 I4I4 I5I5 k1k1 k2k2 k3k3 k4k4 k5k
I T P W ZPT 22 Rozdział 12: Espresso, InstantRS Implementacja metody – program InstantRS Na stronie przedmiotu w katalogu: KOMPUTEROWE NARZĘDZIA SYNTEZY LOGICZNEJ Prace dyplomowe BłyskawicaBłyskawica (ZIP kB) Espresso ProtonEspresso Proton (ZIP kB) Espresso 64Espresso 64 (ZIP kB) instantRSinstantRS (ZIP kB) Rough Set Exploration SystemRough Set Exploration System (ZIP kB) Downloading Rough Set Exploration System GENERATORGENERATOR (EXE - 62 kB) kazmin1.tab kazmin2.tab RSES instrukcja
I T P W ZPT 23 Implementacja metody – program InstantRS
I T P W ZPT 24 Implementacja metody – program InstantRS
I T P W ZPT 25 Standard espresso.type fr.i 5.o 1.p e Przyklad 4.13: Liczba wejść Liczba wyjść Liczba wierszy
I T P W ZPT 26 Implementacja metody – program InstantRS …w Formacie trzeba zaznaczyć opcję Logic
I T P W ZPT 27 Implementacja metody – program InstantRS Minimal Decision Rules uruchamia proces minimalizacji
I T P W ZPT 28 Implementacja metody – program InstantRS >> Started calculation at: 22. Sep 2014, 18:22:25 >> Elapsed: 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) #| 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| >> 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 Przykład 4.13 (Synteza logiczna).type fr.i 5.o 1.p … e
I T P W ZPT 29 Metoda heurystyczna... Oblicza się ekspansję kostki k 1 (ozn. E(k 1 )) – tylko jedną Wykreśla się z macierzy F wszystkie wektory pokrywane przez E(k 1 ) 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 Wynik (zminimalizowaną funkcję) tworzą kolejno obliczone ekspansje (Wygodna do stosowania w obliczeniach ręcznych)
I T P W ZPT 30 Przykład obliczany oryginalną ekspansją x1x1 x2x2 x3x3 x4x4 x5x5 x6x6 x7x7 f k1k k2k k3k k4k k5k
I T P W ZPT 31 Przykład… F k5k5 k4k4 k3k3 k2k2 k1k
I T P W ZPT 32 B k5k5 F = Przykład… Wynik gorszy, ale zadowalający
I T P W ZPT 33 Procedury systemu ESPRESSO Expand Essential primes Irredundant-Cover Reduce Last-gasp F,D F M Complement 62 xx