Minimalizacja form boolowskich UC, 29
mplikanty funkcji boolowskiej UC, 29 2
mplikanty funkcji boolowskiej UC, 29 3
Metody minimalizacji UC, 29 4
Siatki Karnaugh UC, 29 5
Siatki Karnaugh UC, 29
Stosowanie siatki Karnaugh (przykład ) UC, 29 7
Stosowanie siatki Karnaugh (przykład ) UC, 29 8
Stosowanie siatki Karnaugh (przykład 2) UC, 29 9
Stosowanie siatki Karnaugh (przykład 3) UC, 29
Siatki Karnaugh dla n = 5 i UC, 29
Metody analityczne i komputerowe w minimalizacji funkcji boolowskich Metoda Quine a McCluskey a a) generacja implikantów prostych b) selekcja implikantów (tzw. pokrycie) Metoda Espresso duża liczba różnorodnych procedur procedury heurystyczne iteracyjne poprawianie wyniku UC, 29 2
Metoda Quine a-mccluskey a Algorytm:. Wypisujemy wszystkie wektory zbioru F i F*, 2. Łączymy wektory w grupy według liczby jedynek występujących w danym wektorze, 3. Porównujemy każdy wektor z grupy o i-tej liczbie jedynek z każdym wektorem z grupy i+ liczbie jedynek. Jeżeli dwie kombinacje różnią się tylko na jednej pozycji to łączymy je w jeden implikant zastępując pozycje różniące symbolem *. Na przykład łączymy z i uzyskujemy -, 4. Kontynuujemy procedurę łącząc dalej uzyskane implikanty. Na przykład - można łączyć z - uzyskując --. Proces kończymy, gdy nie ma możliwości dalszych łączeń. 5. Tworzymy zbiór implikantów, które uzyskaliśmy w wyniku łączenia i tych wektorów, które nie były wykorzystane w procesie łączenia.. Dokonujemy selekcji implikantów w celu uzyskania minimalnego pokrycia funkcji korzystając z tablicy implikantów. Ćwiczenie. Korzystając z metody Q-M zminimalizować funkcję F(A,B,C,D): F={4,5,,8,9,,3}, F*={,7,5} UC, 29 3
Procedury systemu ESPRESSO F,D Complement Epand Essential primes rredundant-cover Reduce Last-gasp F M UC, 29 4
Metoda ekspansji Dla funkcji słabo określonych ( F, F<< F* ) wielu zmiennych stosowanie metody Q-M jest nieopłacalne czasowo. Przykład. Jeżeli musimy zminimalizować funkcję 2 zmiennych przy czym liczność zbioru F i F wynosi po 2 elementów to stosując metodę Q-M mamy do rozważenia 22-2 wektorów. Efektywniejsza czasowo jest metoda ekspansji. -maksymalne jak to możliwe rozszerzanie zbioru F na zbiór F* nie wchodząc w kolizję ze zbiorem F. -zastąpienie jak największej liczby elementów każdego wektora zbioru F symbolem *, tak aby nie wejść w kolizję z wektorami zbioru F. UC, 29 5
Pojęcia podstawowe Kostka K to krotka o składowych,, reprezentująca zbiór wektorów zero-jedynkowych. K = ( ), to zbiór wektorów: Kostka reprezentuje niepełny iloczyn: K = = 3 UC, 29
7 Oznaczenia W standardzie espresso 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) k 5 k 4 k 3 k 2 k f 7 5 4 3 2 = F R = UC, 29
Ekspansja Ekspansja jest procesem działającym na 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. 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. UC, 29 8
Macierz blokująca Macierzą blokującą (kostkę k) nazywamy macierz B(k,R) = [b ij ],w której każdy element b ij {,} jest definiowany następująco: b ij =, jeśli k j = oraz r ij = lub k j = oraz r ij = ; b ij =, w pozostałych przypadkach. 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. UC, 29 9
2 Tworzenie macierzy blokującej F = = R = B Wyznaczymy macierz blokującą dla kostki k wiedząc, że F i R są opisane macierzami: Skoro k = (), to dla uzyskania B wystarczy w macierzy R "zanegować" kolumny drugą, piątą i siódmą. Zatem B(k,R): UC, 29
Pokrycie kolumnowe Pokryciem kolumnowym macierzy B jest 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 L jest minimalnym pokryciem kolumnowym macierzy B, jeśli nie istnieje zbiór L (tworzący pokrycie) taki, że L L. B = 2 3 4 5 7 {,7} {3,4} {2,4} {2,3,7} L = {4,7} jest pokryciem kolumnowym. L = {2,3,} jest pokryciem kolumnowym. L = {2,3} nie, L = {2,} nie, UC, 29 L = {3,} nie. 2
Generacja implikantów Macierz blokująca 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). Wszczególności k + (L,k) jest implikantem prostym, gdy L jest minimalnym pokryciem kolumnowym macierzy B(k,R). UC, 29 22
23 Generacja implikantów -przykład Dla k 2 = () i macierzy B = 7 5 4 3 2 zbiór L = {4,7} jest pokryciem kolumnowym B, a więc 4 7 3 2 Natomiast dla L = {2,3,} (inne pokrycie kolumnowe), k + (L, k 2 ) = ( ) = k 2 = () czyli implikantem F jest k + (L, k 2 ) = ( ), UC, 29
mplikanty proste Obliczając kolejno implikanty proste dla każdej k F uzyskuje się: Uzyskujemy następujący zbiór implikantów prostych: 2 3 4 5 7 = = = = = = = 2 4 2 5 3 7 3 7 ( ) k ( ) k, ( ) k k 5 2,k3, k 4 UC, 29 24
mplikanty proste 2 3 4 5 7 = = = = = = = 2 4 2 5 3 7 3 7 ( ) k ( ) k, ( ) k k 5 2,k3, k 4 Relacja pokrycia dla kostek 2 3 4 5 k 7 k 2 k 3 k 4 k 5 Tablica implikantów prostych 2 3 k 7 k 2 k 3 k 4 k 5 4 5 UC, 29 25
Selekcja implikantów prostych Pokrycie kolumnowe 2 3 4 5 7 k k 2 k 3 k 4 k 5 Minimalne pokrycie: 2, 3 2 3 = = 2 4 7 Minimalna formuła: 47 + 2 UC, 29 2