MINIMALIZACJA FUNKCJI LOGICZNYCH Funkcja logiczna może być w ogólnym przypadku przedstawiona za pomocÄ… wielu różnych mniej lub bardziej skomplikowanych funkcji logicznych. Zagadnienie minimalizacji polega na wyznaczeniu dla danej funkcji tej formuÅ‚y która jest najprostsza. Zagadnienie to formuÅ‚uje siÄ™ też inaczej dla danej funkcji logicznej należy wyznaczyć możliwÄ… najprostszÄ… funkcjÄ™ równoważnÄ…. Minimalizacja funkcji logicznej wiąże siÄ™ z porównaniem stopnia skomplikowania funkcji. Dla porównania funkcji wprowadza siÄ™ pojÄ™cie współczynnika skomplikowania definiowanego w rożny sposób. Jedna z możliwych definicji współczynnika skomplikowania brzmi: Współczynnikiem skomplikowania W funkcji logicznej i (and), lub (or), nie (not) nazywamy sumÄ™ liczby wyrażeÅ„ (pojedynczych liter lub ich kombinacji) podlegajÄ…cych mnożeniu i liczby wyrażeÅ„ podlegajÄ…cych dodawaniu. Metody minimalizacji funkcji logicznych można podzielić na dwie grupy. Do pierwszej grupy należą metody przeksztaÅ‚ceÅ„ algebraicznych. Metody te nie sÄ… zbyt przydatne w praktyce. Do drugiej grupy należą metody algorytmiczne. Metoda Quine a McCluskeya Algorytm wprowadzimy rozważajÄ…c nastÄ™pujÄ…cy przykÅ‚ad. Wyznaczyć minimalnÄ… funkcjÄ™ logicznÄ… równoważnÄ… funkcji: F = x + x x + x x + x x x + x x + x x x + x x x + x x x x x x x x x x x x 1 1 2 3 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 + x x x x 1 2 3 4 1. Wypisujemy kombinacje zer i jedynek odpowiadajÄ…ce kolejnym peÅ‚nym iloczynom. Iloczynom tym przyporzÄ…dkowujemy numery w sposób analogiczny do przyjÄ™tego poprzednio. 2 0010 3 0011 6 0110 7 0111 12 1100 13 1101 14 1110 15 1111 2. Szeregujemy te kombinacje wedÅ‚ug liczby jedynek. Otrzymujemy w ten sposób grupy n = 0, 1, 2 ... jedynek 1 2 0010 3 0011 6 0110 12 1100 7 0111 13 1101 14 1110 15 1111 3. Porównujemy każdÄ… kombinacjÄ™ należącÄ… do grupy i-tej z każdÄ… kombinacjÄ… należącÄ… do grupy i + 1. Jeżeli dwie takie kombinacje różniÄ… siÄ™ tylko na jednej pozycji to kombinacje te sklejamy w jednÄ… nowÄ… kombinacjÄ™ zastÄ™pujÄ…c pozycje y różniÄ…ce siÄ™ symbolem Ć. Wykorzystujemy tu zwiÄ…zek xy +x =x. W poprzedniej tablicy odznaczamy ((") kombinacje używane przy dokonywaniu sklejeÅ„ i tworzymy nowÄ… tabelÄ™. 2 0010 2,3 (" 001Ć 3 0011 2,6 (" 0Ć10 6 0110 3,7 (" 0Ć11 12 1100 6,7 (" 011Ć 7 0111 6,14 (" Ć110 13 1101 12,13 (" 110Ć 14 1110 12,14 (" 11Ć0 15 1111 7,15 (" Ć111 13,15 11Ć1 14,15 111Ć 4. Kontynuujemy procedurÄ™ usuwajÄ…c kombinacje powtarzajÄ…ce siÄ™ i Å‚Ä…czÄ…c kombinacje różniÄ…ce siÄ™ na jednej pozycji 5. ProcedurÄ™ koÅ„czymy, gdy nie ma już możliwoÅ›ci dokonania dalszych sklejeÅ„. W rozważanym przykÅ‚adzie otrzymujemy ostatecznie: 2, 3, 6, 7, 0Ć1Ć 6, 7, 14, 15, Ć11Ć 12, 13, 14, 15, 11ĆĆ W tabeli pomijamy zestawy numerów nie prowadzÄ…cych do nowych kombinacji np. 2, 6, 3, 7 w stosunku do uwzglÄ™dnionego 2, 3, 6, 7. 2 6. Tworzymy zbiór kombinacji nie mogÄ…cych podlegać dalszemu sklejaniu. Do zbioru tego należą te kombinacje, które znalazÅ‚y siÄ™ w tablicy koÅ„cowej oraz te, które nie mogÅ‚y być zastosowane do dalszego sklejania. Punkt 6 koÅ„czy pierwszÄ… część minimalizacji. Do jej kontynuowania potrzebna jest nastÄ™pujÄ…ca definicja: FormuÅ‚Ä™ G nazywamy implikantem formuÅ‚y F, gdy (G F) =1 albo G + F=1 Oznacza to, że jeżeli G = 1, to F = 1, ale nie musi być odwrotnie. Implikantami formuÅ‚y kanonicznej sumy sÄ… wiÄ™c wszystkie iloczyny peÅ‚ne i wszystkie ich poÅ‚Ä…czenia typu x x + x x x = x x . x 1 2 3 1 2 3 1 2 FormuÅ‚Ä™ G1 nazywamy prostym implikantem formuÅ‚y F, gdy G1 jest implikantem formuÅ‚y F oraz gdy nie istnieje formuÅ‚a G2 taka, że (G1 G2) = 1 oraz (G2 F) = 1 Prostymi implikantami sÄ… wiÄ™c wszystkie iloczyny, których kombinacje zer i jedynek należą do zbioru otrzymanego w p. 6. Dla formuÅ‚y x x + x x x + x 1 2 3 1 2 3 + x x x 1 2 3 wszystkie trzy iloczyny peÅ‚ne sÄ… implikantami, a iloczyny x1x2, x 1 x 2 x 3 sÄ… prostymi implikantami. Można wiÄ™c powiedzieć, że prostym implikantem jest taki implikant, który nie może być poÅ‚Ä…czony z żadnym innym implikantem bez utraty swojej podstawowej wÅ‚asnoÅ›ci. PojÄ™cie implikantu sformuÅ‚owane dla wyrażeÅ„ może być także odniesione do funkcji tym wyrażeniom odpowiadajÄ…cym. Niech wyrażeniom logicznym F i G odpowiadajÄ… funkcje f 1 i g1. G jest wtedy implikantem F, jeżeli g1 Ä…" f 1, czyli zbiór jedynek G zawiera siÄ™ w zbiorze jedynek F. Poszukiwana formuÅ‚a minimalna F równoważna formule poczÄ…tkowej F 2 1 może być otrzymana w postaci sumy wyselekcjonowanych implikantów prostych. Selekcji dokonuje siÄ™ w taki sposób, aby wszystkie peÅ‚ne iloczyny wystÄ™pujÄ…ce w formule F byÅ‚y reprezentowane w wybranych implikantach 1 prostych; liczba wybranych implikantów powinna być jak najmniejsza. Jeżeli istnieje kilka takich zestawów implikantów prostych, wybieramy ten, w którym wystÄ™puje najmniejsza Å‚Ä…czna liczba liter. Zagadnienie selekcji wyjaÅ›nimy na podanym przykÅ‚adzie. Proste implikanty rozważanej formuÅ‚y możemy zapisać w sposób nastÄ™pujÄ…cy: x x = G (2,3,6,7); x x = G (6,7,14,15); 1 3 1 2 3 2 3 x x = G (12,13,14,15) 1 2 3 Oznacza to, że np. implikant x x powstaÅ‚ w wyniku poÅ‚Ä…czenia peÅ‚nych 1, 3 iloczynów o indeksach 2, 3, 6, 7. SelekcjÄ™ wykonujemy, korzystajÄ…c z tablicy implikantów prostych. x x 2, 3, 6, 7 1 3 x x 6, 7, 14, 15 2 3 x x 12, 13, 14, 15 1 2 2 3 6 7 12 13 14 15 Wybieramy taki zestaw implikantów, aby w każdej kolumnie wystÄ™powaÅ‚ co najmniej jeden znaczek selekcji (kółeczko) i aby liczba wybranych implikantów byÅ‚a jak najmniejsza. W rozważanym przykÅ‚adzie mamy ostatecznie F = x + x x . Współczynnik skomplikowania dla F i F x 2 1 3 1 2 1 2 wynoszÄ… odpowiednio 12 i 6. Jeżeli funkcja, której formuÅ‚a podlega redukcji nie jest okreÅ›lona dla pewnych wyrazów n-tych danej funkcji, to odpowiednie iloczyny kanoniczne sÄ… stosowane w procesie wyznaczania implikantów prostych, ale nie wystÄ™pujÄ… w tablicy implikantów przeznaczonej do selekcji. PrzykÅ‚ad: Należy wyznaczyć formuÅ‚Ä™ minimalnÄ…, która bÄ™dzie równoważna formule: F = x x x + x x + z dodatkowymi warunkami x x x x x x x 1 1 2 3 1 2 3 1 2 3 1 2 3 = x = 0 x x 1 2 3 Proces minimalizacji: 0 000 0 000 0, 4 (" Ć00 x4 100 x4 100 4, 5 (" 10Ć (" x5 101 x5 101 4, 6 (" 1Ć0 (" 6 110 6 110 5, 7 (" 1Ć1 (" 7 111 7 111 6, 7 (" 11Ć (" 4 4, 5, 6, 7, 1ĆĆ 0 6 7 x x 0,4 2 3 x 4, 5, 6, 7 1 Otrzymujemy F = x + . Formule F bez warunków dodatkowych x x 2 1 2 3 1 odpowiada formuÅ‚a F = x x + Współczynniki skomplikowania dla F , x x x 3 1 2 1 2 3 1 F , F wynoszÄ… odpowiednio 12, 5, 7. 2 3 Rozważana metoda w podanej postaci nadaje siÄ™ do minimalizacji formuÅ‚ przedstawionych w postaci sumy peÅ‚nych iloczynów (formuÅ‚ kanonicznych sumy). Minimalizacja formuÅ‚ przedstawionych w postaci iloczynów peÅ‚nych sum kanonicznych (formuÅ‚ kanonicznych iloczynu) można dokonać przez przejÅ›cie od danej postaci iloczynu do jej negacji (postaci sumy); formuÅ‚a ta jest minimalizowana w podany sposób a nastÄ™pnie znowu wyznaczana jest negacja. Metoda Veitcha-Karnaugh Metoda Veitcha-Karnaugha polega na zastosowaniu tzw. diagramów Veitcha lub tablic Karnaugha. Tablica taka kwadratowa lub prostokÄ…tna dla m zmiennych skÅ‚ada siÄ™ z 2m ponumerowanych kratek. W każdej kratce jest wpisany numer kombinacji odpowiadajÄ…cy kratce (np. w prawym, dolnym rogu) oraz wartość funkcji 0, 1 albo symbol lub x, jeżeli wartość funkcji jest nieokreÅ›lona. PrzykÅ‚ad przedstawienia funkcji czterech zmiennych za pomocÄ… tablic Karnaugha: Funkcja zupeÅ‚na funkcja niezupeÅ‚na 00 01 11 10 x x 00 01 11 10 x x 3 4 3 4 00 0 1 0 0 00 0 1 0 çÅ‚ 0 1 3 2 0 1 2 3 01 0 0 1 0 01 1 0 çÅ‚ çÅ‚ 4 5 7 6 7 6 4 5 11 0 1 1 1 11 1 1 1 çÅ‚ 5 12 13 15 14 12 13 15 14 10 0 0 1 0 10 0 0 çÅ‚ çÅ‚ 8 9 11 10 9 10 8 11 x x x x 1 2 1 2 Każda kratka tablicy Karnaugha odpowiada kombinacji (wektorowi) zmiennych. Można wiÄ™c powiedzieć że kombinacja tych zmiennych tworzy adres kratki. Kratki sÄ… ponumerowane, przy czym jak już pokazano numer (i) jest liczbÄ… dziesiÄ™tnÄ… odpowiadajÄ…cÄ… kombinacji zmiennych (wektorowi zerojedynkowemu) traktowanej jako liczba dwójkowa. W poszczególnych kratkach sÄ… wpisane obok numerów wartoÅ›ci funkcji (tj. 0 lub 1) przyjmowane przez funkcjÄ™ dla tej kombinacji, symbol lub x, jeżeli funkcja nie jest okreÅ›lona. Można też powiedzieć, że kratka o numerze i zawierajÄ…ca 1 odpowiada iloczynowi peÅ‚nemu P w kanonicznej postaci sumy dla danej i funkcji. Natomiast kratka o numerze i zawierajÄ…ca 0 odpowiada sumie peÅ‚nej S i w kanonicznej postaci iloczynu. Diagram Veitcha jest tworem analogicznym do tablicy Karnaugha; różni siÄ™ sposobem opisu tablicy. Można powiedzieć, że tablica Karnaugha ma opis analityczny, a diagram Veitcha ma opis rysunkowy. Zasada tworzenia diagramu Veitcha: 1) sumie wszystkich peÅ‚nych iloczynów (równej jednoÅ›ci) albo iloczynowi wszystkich peÅ‚nych sum (równej zeru) odpowiada powierzchnia caÅ‚ego kwadratu (prostokÄ…ta); 2) każdej zmiennej odpowiada poÅ‚owa powierzchni kwadratu; druga poÅ‚owa odpowiada tej zmiennej zanegowanej; powierzchnie odpowiadajÄ…ce dwom różnym zmiennym nie mogÄ… być identyczne; 3) każdemu iloczynowi P odpowiada kratka (maÅ‚y kwadrat) stanowiÄ…cy j wspólnÄ… powierzchniÄ™ powierzchni odpowiadajÄ…cych zmiennym (prostym lub zanegowanym), które wystÄ™pujÄ… w tym iloczynie; ta sama kratka odpowiada sumie S . j Dla przykÅ‚adu iloczynowi x x 1 2 3 x = P6 dla trzech zmiennych odpowiada kratka stanowiÄ…ca wspólnÄ… część poÅ‚owy x1 , poÅ‚owy x2 i poÅ‚owy nie x3 ; 1 2 3 x x x ta sama kratka odpowiada peÅ‚nej sumie + + = S6 (oczywiÅ›cie S6 = 6 1 2 3 P x x x ). Inaczej - sumie + + odpowiada kratka stanowiÄ…ca wspólnÄ… część poÅ‚owy x1 , poÅ‚owy x2 i poÅ‚owy nie x3 ; należy tu zwrócić uwagÄ™ na odmiennÄ… konwencjÄ™ przy przyporzÄ…dkowywaniu kratek odpowiadajÄ…cych peÅ‚nym sumom. Tablice Karnaugha i diagramy Veitcha dla: - dwóch zmiennych Tablice Karnaugha Diagramy Veitcha x 2 0 1 x 2 6 0 0 1 0 1 1 2 3 x 2 3 1 x 1 - trzech zmiennych Tablice Karnaugha Diagramy Veitcha x 2 00 01 11 10 x x 2 3 0 0 1 3 2 0 1 3 2 1 4 5 7 6 x 4 5 7 6 1 x 1 x 3 Inny wariant x 3 0 1 x 3 00 0 1 0 1 01 2 3 2 3 x 2 11 6 7 6 7 x 1 10 4 5 4 5 x x 1 2 - czterech zmiennych x 3 00 01 11 10 x x 2 3 00 0 1 3 2 0 1 3 2 01 4 5 7 6 4 5 7 6 x 2 11 12 13 15 14 12 13 15 14 x 1 10 8 9 11 10 8 9 11 10 7 x x 1 2 x 4 Inny wariant 000 001 011 010 110 111 101 100 x x x 2 3 4 0 0 1 3 2 6 7 5 4 1 8 9 11 10 14 15 13 12 x 1 0 1 x 4 000 0 1 001 2 3 011 6 7 010 4 5 110 12 13 111 14 15 101 10 11 100 8 9 x x x 1 2 3 - piÄ™ciu zmiennych 000 001 011 010 110 111 101 100 x x x 3 4 5 00 0 1 3 2 6 7 5 4 01 8 9 11 10 14 15 13 12 11 24 25 27 26 30 31 29 28 8 10 16 17 19 18 22 23 21 20 x x 1 2 Inny wariant 00 01 11 10 x x 4 5 000 0 1 3 2 001 4 5 7 6 011 12 13 15 14 010 8 9 11 10 110 24 25 27 26 111 28 29 31 30 101 20 21 23 22 100 16 17 19 18 x x x 1 2 3 - szeÅ›ciu zmiennych 000 001 011 010 110 111 101 100 x x x 4 5 6 000 0 1 3 2 6 7 5 4 001 8 9 11 10 14 15 13 12 011 24 25 27 26 30 31 29 28 010 16 17 19 18 22 23 21 20 110 48 49 51 50 54 55 53 52 111 56 57 59 58 62 63 61 60 101 40 41 43 42 46 47 45 44 9 100 32 33 35 34 38 39 37 36 x x x 1 2 3 x 4 x x 6 6 0 1 3 2 6 7 5 4 8 9 11 10 14 15 13 12 x 3 24 25 27 26 30 31 29 28 x 2 16 17 19 18 22 23 21 20 48 49 51 50 54 55 53 52 x 2 56 57 59 58 62 63 61 60 x x 1 3 40 41 43 42 46 47 45 44 32 33 35 34 38 39 37 36 x x 5 5 Tablice Karnaugha i diagramy Veitcha majÄ… nastÄ™pujÄ…ce zastosowania: 1) przedstawienie funkcji logicznej 2) wyznaczenie negacji 3) sprowadzenie formuÅ‚ logicznych do postaci kanonicznej 4) uproszczenie formuÅ‚ logicznych 5) synteza funkcji logicznych Punktem wyjÅ›cia do minimalizacji jest najczęściej funkcja zadana tablicÄ… prawdy lub tablicÄ… Karnaugha, lub w postaci zbiorów f 1 i f 0. Odpowiada to oczywiÅ›cie kanonicznej postaci sumy lub iloczynu; jednak operowanie tymi wyrażeniami jest w praktyce niewygodne zwÅ‚aszcza dla funkcji niezupeÅ‚nych. Minimalizacja formuÅ‚y logicznej przedstawionej w postaci sumy iloczynów (nie koniecznie peÅ‚nych) za pomocÄ… diagramów Veitcha sprowadza siÄ™ do nastÄ™pujÄ…cych czynnoÅ›ci: 10 1) Przedstawienie formuÅ‚y za pomocÄ… diagramu Veitcha (jeżeli jest to potrzebne). 2) Wyznaczenie prostych implikantów przez sklejenie możliwie jak najwiÄ™kszych grup (par, czwórek, ósemek, ...) kratek zawierajÄ…cych jedynki bÄ…dz też jedynki i krzyżyki wedÅ‚ug podanych reguÅ‚ W diagramie dwóch, trzech, czterech zmiennych sklejać można a) pary kratek przylegajÄ…ce do siebie wewnÄ™trznie (np. 9-11 lub 14- 10 na wykresie czterech zmiennych) lub zewnÄ™trzne (np. 8-0 lub 8-10) b) kwadraty wewnÄ™trzne (np. 9-11-15-13) lub zewnÄ™trzne (np. 9-8- 1-0, 8-10-0-2 c) pary wierszy lub kolumn przylegajÄ…cych do siebie wewnÄ™trznie lub zewnÄ™trznie. W diagramach piÄ™ciu lub szeÅ›ciu zmiennych można sklejać grupy kratek leżące symetrycznie wzglÄ™dem osi symetrii w dwóch częściach diagramu (np. dla piÄ™ciu zmiennych), z których każda jest diagramem skÅ‚adowym (np. dla czterech zmiennych); dla piÄ™ciu zmiennych można np. skleić kratki 5 i 7 z kratkami 21 i 23. 3) Wybranie niektórych grup z grup otrzymanych w p. 2 oraz pojedynczych kratek (zawierajÄ…cych jedynki), które nie mogÅ‚y być sklejone, zgodnie z nastÄ™pujÄ…cymi zasadami: a) każda jedynka musi być co najmniej jeden raz reprezentowana w zbirze wybranych grup b) liczba wybranych grup powinna być możliwie jak najmniejsza Suma iloczynów odpowiadajÄ…cych wybranym grupom stanowi formuÅ‚Ä™ minimalnÄ… równoważnÄ… formule pierwotnej. Punkt 3 omawianej procedury odpowiada drugiej części procedury Quine a. W przypadkach bardziej zÅ‚ożonych może być celowe dokonanie pierwszej części minimalizacji metodÄ… Veitcha, a drugiej Quine a z użyciem tablicy implikantów. PrzykÅ‚ad: należy podać formuÅ‚y minimalne dla funkcji f i f podanych w 1 2 tablicach 00 01 11 10 x x 00 01 11 10 x x 3 4 3 4 00 0 1 0 0 00 0 1 0 çÅ‚ 0 1 3 2 0 1 2 3 01 0 0 1 0 01 1 0 çÅ‚ çÅ‚ 4 5 7 6 7 6 4 5 11 0 1 1 1 11 1 1 1 çÅ‚ 12 13 15 14 13 15 14 12 10 0 0 1 0 10 0 0 çÅ‚ çÅ‚ 11 8 9 11 10 8 9 11 10 x x x x 1 2 1 2 Otrzymujemy: 00 01 11 10 x x 00 01 11 10 x x 3 4 3 4 00 0 1 0 0 00 0 1 0 çÅ‚ 0 1 3 2 0 1 2 3 01 0 0 1 0 01 1 0 çÅ‚ çÅ‚ 4 5 7 6 7 6 4 5 11 0 1 1 1 11 1 1 1 çÅ‚ 12 13 15 14 13 15 14 12 10 0 0 1 0 10 0 0 çÅ‚ çÅ‚ 8 9 11 10 9 10 8 11 x x x x 1 2 1 2 Wyrażenie minimalne dla funkcji f ma postać 1 F = x x x + x x x + x x x + x x x + x x x x 1min 1 2 3 1 2 4 1 3 4 2 3 4 1 2 3 4 14-15 13-15 11-15 7-15 1 Liczby pod wyrażeniami oznaczajÄ… numery sklejonych kratek. Dla funkcji f 2 bÄ™dzie to: F = x x + x x 2min 1 2 1 4 12.13.14.15 1-3-5-7 Należy zwrócić uwagÄ™ że użycie kresek do uproszczenia ma istotne znaczenie. Kreski sklejone z jedynkami stajÄ… siÄ™ jedynkami. Kreski niesklejane stajÄ… siÄ™ zerami. Tak wiÄ™c otrzymane wyrażenie interpretowane w peÅ‚nym zbiorze {0, 1}3 odpowiada funkcji zupeÅ‚nej. 1 = {1, 3, 5, 7, 12, 13, 14, 15} F 2 0 = {0, 2, 4, 6, 8, 9, 10, 11} F 2 Natomiast dla funkcji niezupeÅ‚nej mamy 1 = {1, 7, 13, 14, 15} F 2 0 = {0, 2, 6, 9, 10} F 2 OczywiÅ›cie 1 1/ 0 0 / Ä…" Ä…" F F F F 2 2 2 2 oraz 12 Natomiast wyrażenie F2min odpowiada funkcji f2 w zbiorze jej okreÅ›lonoÅ›ci, tj. 1 0 F F 2 2 dla *" W wyrażeniach logicznych minimalnych lub częściowo zminimalizowanych wystÄ™pujÄ… także iloczyny niepeÅ‚ne, tj. nie zawierajÄ…ce wszystkich zmiennych. Takie iloczyny mogÄ… być jednoznacznie powiÄ…zane z odpowiednimi wektorami. Trzeba przyjąć ej e1 em x x j x 1 m WL(e1) = ... ... przy czym dla e = 0 j j x ej x dla e = 1 j j = x j 1 dla ej = * Funkcja f może być wtedy zapisana jako m* f : D {0,1}
m* {0, 1, *}m ą" D przy czym Przykład: Korzystając z wprowadzonego aparatu formalnego możemy napisać dla f i f 1 2 e e e e 1 2 3 4 1 1 1 x 1 1 x 1 f = WL-1(F 1 x 1 1 1 1min x 1 1 1 0 0 0 1 e e e e 1 2 3 4 1 1 x x f = WL-1(F ) 2 2min 0 x x 1 Funkcje f i f przyporządkowują podanym wyżej wektorom wartość 1. 1 2 Przykład: Funkcja zupełna f (x , x , x , x , x , x ) jest dana w postaci F = {2, 5, 6, 7, 9, 10, 1 2 3 4 5 6 1 11, 13, 14, 15, 16, 18, 20, 22, 24, 25, 26, 27, 28, 30, 41, 43, 48, 52, 54, 55, 56, 57, 59, 60}. Funkcja ta jest podana za pomocą tablicy Karnaugha. 13 000 001 011 010 110 111 101 100 x x x 4 5 6 0 0 0 1 1 1 1 0 000 0 1 3 2 6 7 5 4 0 1 1 1 1 1 1 0 001 8 9 11 10 14 15 13 12 1 1 1 1 1 0 0 1 011 24 25 27 26 30 31 29 28 1 0 0 1 1 0 0 1 010 16 17 19 18 22 23 21 20 1 0 0 0 1 1 0 1 110 48 49 51 50 54 55 53 52 1 1 1 0 0 0 0 1 111 56 57 59 58 62 63 61 60 0 1 1 0 0 0 0 0 101 40 41 43 42 46 47 45 44 0 0 0 0 0 0 0 0 100 32 33 35 34 38 39 37 36 x x x 1 2 3 Wyrażenie minimalne z tablicy Karnaugha ma postać F (x , x , x , x , x , x ) = x + x + x x + x x + x x x x x x x min 1 2 3 4 5 6 1 5 6 2 5 6 3 4 6 1 2 4 6 + x x x x x 1 2 3 4 5 Przykład Należy zminimalizować funkcję f przedstawioną w tabeli, podając minimalną 1 sumę iloczynów i minimalny iloczyn sum. Zastosować tablice Karnaugha. Funkcja f 1 i x x x f 1 3 1 2 14 0 0 0 0 0 1 0 0 1 0 2 0 1 0 0 3 0 1 1 1 4 1 0 0 0 5 1 0 1 1 6 1 1 0 1 7 1 1 1 1 Po sklejeniu jedynek otrzymujemy 00 01 11 10 x x 2 3 0 0 1 0 0 0 1 3 2 0 1 1 1 1 4 5 7 6 x 1 Otrzymujemy: F = x x + x x + x x 1 1 2 2 3 3 1 6-7 3-7 5-7 Natomiast sklejenie zer 00 01 11 10 x x 2 3 0 0 1 0 0 0 1 3 2 0 1 1 1 1 4 5 7 6 x 1 prowadzi do par kratek 0-1, 0-2, 0-4, co odpowiada operacjom na wektorach )# 000*# *)# 001*# = )# 00x*# x + x 1 2 000 010 = 0x0 x + x )# *# )# *# 1 3 *)# *# 000 100 = x00 x + x )# *# )# *# 2 3 *)# *# Otrzymujemy w wyniku sklejenia podane wyżej wektory i odpowiadające im sumy (inna konwencja niż dla iloczynów). Ostatecznie F = (x + x )(x + x )(x + x ) 1 1 2 2 3 3 1 15 Tablice Karnaugha i diagramy Veitcha znajdują zastosowanie nie tylko do minimalizacji. Przykład: Funkcję f zapisaną za pomocą formuły F = x x + x x + x należy przedstawić w 1 2 2 3 3 kanonicznej postaci sumy, stosując diagram Veitcha. Jest to zagadnienie odwrotne do minimalizacji. x 3 0 1 1 0 0 1 3 2 0 1 1 1 x 1 4 5 7 6 x 2 Otrzymujemy F = P + P + P + P + P 1 3 5 6 7 Przykład Funkcję f zapisaną za pomocą formuły F = (x + x )(x + x ) należy 1 2 2 3 przedstawić w kanonicznej postaci iloczynu, stosując diagram Veitcha. x 3 0 0 1 1 0 1 3 2 0 1 1 1 x 1 4 5 7 6 x 2 Otrzymujemy F = S S S 0 1 4 Przedstawione metody minimalizacji wyrażeń logicznych nadają się dla niezbyt dużej liczby zmiennych w przypadku tablic Karnaugha praktycznie do 6. Metoda Quine a-McCluskeya daje tu nieco większe możliwości, ale staje się mało efektywna w przypadku tzw. funkcji słabookreślnych, dla których zbiór Dm jest małą częścią zbioru {0, 1}m. Znane są metody [20], [3], umożliwiające wyznaczenie wyrażeń minimalnych i zminimalizowanych (tj. 16 nieoptymalnych) także dla funkcji słabookreślnych. Istnieją też metody umożliwiające minimalizację zespołów wyrażeń logicznych. 17