5w Minimalizacja funkcji 1


Minimalizacja funkcji (część 1)
Przedmioty prowadzone w ramach Programu Rozwoju WSFiZ w Białymstoku realizowane są w ramach
Programu Operacyjnego Kapitał Ludzki, Priorytet IV Szkolnictwo wyższe i nauka, Poddziałanie 4.1.1
Wzmocnienie potencjału dydaktycznego uczelni, współfinansowanego ze środków
Europejskiego Funduszu Społecznego (POKL.04.01.01-00-030/08)
5. Minimalizacja funkcji (część 1)
Spis treści
5. Minimalizacja funkcji (część 1) ................................................................................................ 1
5.1 Wstęp ................................................................................................................................. 1
5.2 Metoda Karnaugha............................................................................................................. 2
5.3 Przykłady ........................................................................................................................... 7
5.1 Wstęp
Zazwyczaj jest tak, że układ, w którego skład wchodzi mniej elementów jest mniej zawodny i
tańszy w realizacji od układu bardziej złożonego. Z kolei porównując dwa układy o takiej samej
liczbie elementów składowych lepszy jest ten, do realizacji którego użyto mniej połączeń, czyli
ten, który operuje mniejszą liczba sygnałów. Ta ostatnia cecha mierzona jest zazwyczaj liczbą
wejściowych sygnałów wszystkich elementów układu. Rozważania te wskazują, że wśród
różnych możliwych realizacji funkcji przełączających warto poszukiwać takiej, którą da się
zapisać najprościej, tj. używając minimalnej liczby zmiennych i ich negacji. Postępowanie
prowadzące do takiej postaci nazywa sie minimalizacją funkcji. Formalnym narzędziem
używanym w tym celu są tzw. reguły sklejania wyrażające się następującymi tożsamościami:
Ax + Ax = A
(B + x)(B + x) = B
gdzie A i B są dowolnymi zmiennymi lub funkcjami przełączającymi. Jak zwykle prawdziwość
podanych związków można sprawdzić analizując ich lewe i prawe strony dla dwóch możliwych
wartości zmiennej x. Wynika z nich, że dwa wyrażenia (tu iloczyn i suma) różniące się między
sobą dokładnie na jednej pozycji znakiem negacji można zastąpić jednym wyrażeniem bez
zmiennej je różnicującej. Stosowanie podanych reguł nazywamy sklejaniem, a wyrażenia
podlegające sklejaniu  wyrażeniami sąsiednimi. Podane przykłady prezentują efekty sklejania:
x1x2x3 + x1x2x3 = x1x3
(x1 + x2 + x3)(x1 + x2 + x3) = x1 + x3
x1x2 + x1x2 = (x1 + x1) x2 = 1" x2 = x2
Ostatni z przykładów pokazuje, że reguły sklejania mogą być wywiedzione wprost z wcześniej
podanych zależności. Jak bardzo skuteczne mogą być te reguły pokazuje kolejny przykład:
f(x1, x2, x3) = x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 =
= (x1x2x3 + x1x2x3) + (x1x2x3 + x1x2x3) + (x1x2x3 + x1x2x3) =
1
Minimalizacja funkcji (część 1)
= x1x2 + x1x2 + x2x3 = x1 + x2x3
Warto zwrócić uwagę, że zdwojenie czynnika x1x2x3, (w drugim wierszu prezentowanego
przykładu), które pozwoliło utworzyć dodatkowa parę wyrażeń sąsiednich, a jednocześnie na
mocy wzoru (4.8) nie zmieniło wartości wyrażenia.
Sklejanie tej samej funkcji przedstawionej w postaci kanonicznej iloczynu daje następujący
rezultat:
f(x1, x2, x3) = (x1 + x2 + x3)( x1 + x2 + x3)( x1 + x2 + x3) =
= (x1 + x2)( x1 + x3)
Licząc ilość działań: sum, iloczynów i negacji otrzymamy, że dla realizacji postaci kanonicznej
sumy potrzeba 1OR, 5AND i 5NIE, a po sklejeniu: 1OR i 1AND. Natomiast dla postaci
kanonicznej iloczynu jest to odpowiednio: 1AND, 3OR i 2NIE oraz 1AND i 2OR. Jak
widać różnice są bardzo istotne.
Z przedstawionych przykładów wynika, że w efekcie sklejania otrzymane postaci nie są już
postaciami kanonicznymi, ale zachowują swoją pierwotną postać, tj. odpowiednio sumy i
iloczynu. Postaci takie nazywa się postacią normalną sumy (albo normalną postacią
alternatywną) oraz normalną postacią iloczynu (albo normalną postacią koniunkcyjną).
Wyliczanie tych postaci przez wynajdowanie wyrażeń sąsiednich jest kłopotliwe i łatwo
prowadzi do błędów. Opracowano szereg metod, które istotnie upraszczają tą procedurę bądz
dają się oprogramować i ciężar obliczeń przerzucić na komputer. W dalsze części zostanie
zaprezentowana jedna z nich, użyteczna dla funkcji o liczbie zmiennych mniejszej od 6.
5.2 Metoda Karnaugha
Metoda tablic Karnaugha (inna jej nazwa to metoda kart Veitcha) polega na zapisaniu wartości
funkcji, tj. jej zer i jedynek w specjalnych tablicach w taki sposób, aby wyrażenia sąsiednie były
również sąsiednie w sensie ich umiejscowienia w tabeli, tzn. aby leżały w sąsiednich jej
wierszach lub kolumnach. Przykłady używanych w tej metodzie tablic pokazane są na rysunku
5.1. Każda kratka (i,j) leżąca w i-tym wierszu i j-tej kolumnie tablicy odpowiada wartości funkcji
dla jednej kombinacji jej zmiennych wejściowych. Kombinację tworzy ciąg 0 i 1 uzyskanych ze
zmiennych w taki sam sposób, jak przy wyliczaniu indeksu iloczynu pełnego funkcji (zmiennej
bez negacji odpowiada 1, a zmiennej z negacją  0). Ta część ciągu, która odpowiada zmiennym
opisującym wiersze jest zapisana jako oznaczenie i-tego wiersza, a pozostała, odpowiadająca
zmiennym opisującym kolumny  jako oznaczenie j-tej kolumny tablicy. Cała kombinacja
została dobrana tak, aby ciągi opisujące wszystkie sąsiednie wiersze i kolumny różniły się na
dokładnie na jednej pozycji, a więc żeby odpowiadały wyrażeniom sąsiednim. Taki sposób
kodowania nazywany jest kodem Graya. Dla ułatwienia odnalezienia kratek, do których należy
wpisać wartości funkcji w tabelach na rysunku 5.1 (patrz niżej) w każdej kratce zamieszczono
wartość odpowiadającego jej indeksu (dziesiętnie).
2
Minimalizacja funkcji (część 1)
x2
0 1
x1
0
x3x4
0 1
00 01 11 10
x1x2
1
2 3
00
0 1 3 2
x2x3
01
4 5 7 6
00 01 11 10
x1
11
0
12 13 15 14
0 1 3 2
10
1
8 9 11 10
4 5 7 6
x3x4x5
000 001 011 010 100 111 101 100
x1x2
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
10
16 17 19 18 22 23 21 20
Rysunek 5.1b. Tablica Karnaugha dla funkcji 5 zmiennych
Jeżeli w dwóch sąsiednich kratkach tablicy Karnaugha występują takie same wartości (0 lub 1),
to odpowiadające tym kratkom wyrażenia można skleić, co - jak to było wcześniej pokazane -
prowadzi do usunięcia zmiennej i uproszczenia wyrażenia wynikowego. Wygodnie jest takie
pary zaznaczać, co między innymi ułatwia potem weryfikację procesu minimalizacji. Na rysunku
5.2 (niżej) pokazane są przez zakreślenie różne przykładowe, potencjalne lokalizacje takich par.
Jeżeli w zakreślonych kratkach są jedynki, to w miejsce odpowiadającego im wyrażenia Ax + Ax
można przyjąć A, jeżeli zawierają zera  to zamiast (B + x)(B + x) można przyjąć B.
Dla przykładu przeanalizujmy sytuację z rysunku 5.2b (patrz niżej). Załóżmy, że w
zakreślonych kratkach są jedynki, co odpowiada wyrażeniu.
x1x2x3 + x1x2x3 = (x1 + x1)x2x3 = x2x3
3
Minimalizacja funkcji (część 1)
a) b) c)
x2x3
x2x3
x2x3
00 01 11 10
x1
00 01 11 10
00 01 11 10 x1
x1
0
0
0
1
1
1
d) e) f)
x2x3 x2x3 x2x3
00 01 11 10 00 01 11 10 00 01 11 10
x1 x1 x1
0 0 0
1 1 1
Rysunek 5.2. Przykłady lokalizacji obszarów sklejania dla funkcji trzech zmiennych
Wynik taki można otrzymać wprost z tablicy. Powody tego są następujące:
1) dwie występujące w zaznaczonej grupie kratki opisuje kolumna x2x3 = 10, co oznacza, że
zmienna x2 występuje w obu grupach bez przeczenia, a zmienna x3 - w obu grupach z
przeczeniem;
2) opisujące grupę wiersze to x1 = 0 oraz x1 = 1, co oznacza, ze zmienna x1 występuje w jednej
grupie z przeczeniem, a w drugiej bez, a to oznacza, że może być usunięta.
Ponieważ jedynkom w postaci kanonicznej odpowiadają iloczyny, to i wynik sklejenia też
będzie iloczynem, w którym zeru odpowiada zmienna przeczona x, a jedynce  zmienna bez
przeczenia: x.
Załóżmy z kolei, że w tych samych zakreślonych kratkach (rysunek 5.2b) są zera, co
odpowiada wyrażeniu.
(x1 + x2 + x3) (x1 + x2 + x3) = x2 + x3
Tak jak uprzednio, wynik ten można otrzymać wprost z tablicy, jeżeli tylko zastosuję się
zasadę, że zmienna występująca w grupie jako 0 i jako 1 jest odrzucana, oraz że wynik finalny
będzie sumą (bo zeru w postaci kanoniczne odpowiada suma), w której zero odpowiada zmiennej
bez przeczenia: x, a jedynce  zmienna z przeczeniem: x.
Dwie kratki tablicy o takich samych wartościach można skleić z inną parą o analogicznych
wartościach, jeżeli tylko obrys zaznaczeń obu par tworzy prostokąt albo kwadrat (patrz rysunek
5.2d, e, f). W takich sytuacjach do sklejania można użyć następujących wzorów:
(Ax1x2 + Ax1x2) + (Ax1x2 + Ax1x2) = A
[(B + x1 + x2) (B + x1 + x2)][(B + x1 + x2) (B + x1 + x2)] = B
4
Minimalizacja funkcji (część 1)
Tak więc grupę jednakowych wartości w kształcie prostokąta można opisać iloczynem (grupę
jedynek) lub sumą (grupę zer), w skład której wejdą tylko te zmienne, których wartości w ramach
opisywanej grupy nie zmieniają się. Wyniki sklejania dla sytuacji z rysunku 5.2d, e i f (patrz
wyżej) wynoszą odpowiednio dla jedynek i zer: x3 i x3; x1 i x1 oraz x3 i x3.
Analogicznie opisuje sie grupy dwu- i cztero-kratkowe w tablicy dla funkcji czterech
zmiennych (patrz rysunek 5.3a, b, d, e, i f).
a) b) c)
x3x4
x3x4
x3x4
00 01 11 10
x1x2
00 01 11 10 00 01 11 10
x1x2 x1x2
00
00 00
01
01 01
11
11 11
10
10 10
d) e) f)
x3x4
x3x4
x3x4
00 01 11 10 00 01 11 10
x1x2 00 01 11 10 x1x2
x1x2
00 00
00
01 01
01
11 11
11
10 10
10
Rysunek 5.3 Przykłady lokalizacji obszarów sklejania dla funkcji czterech zmiennych
Możliwości sklejań jest tu więcej. Proszę zwrócić uwagę na 4-klatkową grupę w tabeli 5.3c.
Jeżeli byłyby w niej jedynki, to wyrażenie ją opisujące jest: x2 x4. Dla grupy z rysunku 5.3e) i
jedynek opis jest: x1, a dla zer x1.
Im większa grupa tym więcej zmiennych jest wyeliminowanych i tym krótsze wyrażenie.
Grupa 2-kratkowa eliminuje 1 zmienną, 4-kratkowa  2, a 8-kratkowa  3 zmienne.
Tabela dla 5 zmiennych jest złożeniem dwóch tabel dla 4 zmiennych. Wewnątrz tych tabel
obowiązują reguły sklejania analogiczne jak dla zwykłej tabeli.
Ponadto dochodzi dodatkowa reguła: każda kratka ma kratkę sąsiednią położoną symetrycznie
wobec niej, przy czym osią symetrii jest linia rozdzielająca dwie tablice składowe.
5
Minimalizacja funkcji (część 1)
Wybrane grupy utworzone zwłaszcza przy użyciu tej ostatniej reguły pokazane są na
rysunkach 5.4a i b.
a)
x3x4x5
000 001 011 010 100 111 101 100
x1x2
00
01
11
10
b)
x3x4x5
000 001 011 010 100 111 101 100
x1x2
00
01
11
10
Rysunek 5.4. Przykłady lokalizacji obszarów sklejania dla funkcji 5 zmiennych
Tworzenie tabel dla większej ilości zmiennych jest możliwe i przebiega według reguł
identycznych jak dla tabeli dla 5 zmiennych. I tak tabela dla 6 zmiennych będzie złożeniem 2
tabel dla pięciu zmiennych z regułami sklejania wewnątrz nich takimi jak dla zwykłych tabel dla
5 zmiennych. Dodatkowa oś symetrii przebiegająca wzdłuż osi poziomej wprowadza nowe
reguły sklejania. Komplikuje to na tyle wyszukiwanie wyrażeń sąsiednich, że metoda Karnaugha
staje się nieprzydatna. Można wtedy posłużyć się innymi metodami, np. Quine a-Mc Cluskeya.
Podane przykłady pozwalają sformułować zestaw kroków, które należy wykonać w celu
znalezienia minimalnej postaci funkcji przełączającej. I tak:
1. Należy zdecydować, czy będzie sie wyszukiwało grupy zer czy grupy jedynek. Jeżeli pole
decyzji nie jest ograniczone przez typ posiadanych elementów, to należy łączyć w grupy te
wartości, które dadzą prostsze rozwiązanie. Przesłankami do podjęcia konkretnej decyzji
może być np. porównanie liczby grup dla obu wartości. Czasami nie ma innego wyjścia jak
sprawdzić obydwa warianty.
2. Należy podjąć próbę wyszukania największej możliwej grupy lub kilku takich grup,
zaczynając od grupy 16-kratkowej, następnie 8-, 4- i 2-kratkowej. Jedynki lub zera leżące
poza zaznaczonymi grupami próbuje się łączyć w grupy mniejsze, przy czym można do tego
6
Minimalizacja funkcji (część 1)
wykorzystywać fragmenty już zaznaczonych grup, jeżeli tylko dzięki temu nowo utworzona
grupa ulegnie powiększeniu. Finalnie, jeżeli zostaną jakieś pojedyncze, niezaznaczone dotąd
wartości, to należy z nich utworzyć grupy jedno-elementowe.
3. Jeżeli wszystkie elementy jakiejś grupy należą do innych grup, to taką grupę należy pominąć.
Pozostałe grupy należy opisać jako postać normalną tak jak to było wcześniej wyjaśnione.
5.3 Przykłady
Poniżej zamieszczono kilka przykładów ilustrujących proces minimalizacji.
Zaczniemy od funkcji, która ma znajdować 3-bitowe liczby parzyste i niepodzielne przez 3.
Tabelaryczny opis tej funkcji jest na rysunku 4.1. Odpowiadająca jej tabela Karnaugha
przedstawiona jest na rysunku 5.5 a i b.
a)
x2x3
00 01 11 10
x1
c) d)
0 1 0 0 1
x3x4 x3x4
00 01 11 10 00 01 11 10
x1x2 x1x2
1 1 0 0 0
00 1 0 1 0 00 1 0 1 0
01 1 0 0 1 01 1 0 0 1
b)
11 1 0 1 1 11 1 0 1 1
x2x3
10 0 0 1 1 10 0 0 1 1
00 01 11 10
x1
0 1 0 0 1
1 1 0 0 0
Rysunek 5.5. Przykłady minimalizacji funkcji.
Po minimalizacji otrzymujemy wzory:
f(x1x2) = x2x3 + x1x3 f(x1x2) = x2(x1 + x2)
Minimalizacja funkcji zadanej wzorem:
f(x1x2x3x4) = "(0, 3, 4, 6, 10, 11, 12, 14, 15)
pokazana jest na rysunku 5.5c i 5.5d. W jej rezultacie otrzymujemy wyrażenia:
7
Minimalizacja funkcji (część 1)
f(x1x2x3x4) = x2x4 + x1x3 + x1x3x4 + x2x3x4 (1)
oraz
f(x1x2x3x4) = (x3 + x4)(x1 + x2 + x4)( x1 + x2 + x3)( x1 + x2 + x3 + x4)
A oto jeszcze inne przykłady:
a) b) c)
x3x4
x3x4 x3x4
00 01 11 10
x1x2
00 01 11 10 00 01 11 10
x1x2 x1x2
00 0 0 1 0
00 0 0 1 0 00 1 0 0 1
01 0 1 1 0
01 0 1 0 0 01 1 1 0 1
11 1 1 0 0
11 0 1 1 1 11 1 1 0 1
10 1 1 0 0
10 0 1 0 0
10 1 1 1 0
Rysunek 5.6. Przykłady minimalizacji funkcji.
Przykład z rysunku 5.6a) ilustruje tezę o nieuwzględnianiu we wzorze na minimalną postać
funkcji takiej grupy, której wszystkie elementy wchodzą w skład innych grup. Stąd dla tej funkcji
postać minimalna wyraża się wzorami:
f(x1x2x3x4) = x1x2x3 + x2x3x4 + x2x3x4 + x1x2 x3
f(x1x2x3x4) = (x2 + x3 + x4)( x1 + x2 + x3)( x1 + x2 + x3)( x2 + x3 + x4)
Pojawienie się nadmiarowych grup może być spowodowane zapisem wartości funkcji do tabeli
na podstawie jej postaci niekanonicznej normalnej, co może się zdążyć, jeżeli korzystamy np. z
opisu słownego funkcji. Sytuację taka ilustruje kolejny przykład, w którym punktem wyjścia jest
wzór uzyskany np. właśnie z takiego opisu:
f(x1x2x3x4) = (x3 + x4)(x1 + x2 + x4)( x1 + x2 + x4)( x1 + x2 + x3)
Na rysunku 5.5b) pokazana jest odpowiadająca temu wzorowi tablica. Linią przerywaną
zaznaczono nadmiarową grupę, która powstała jako realizacja ostatniej z sum w powyższym
wzorze. Jej zera wchodzą w skład innych grup i właśnie z tego powodu nie znajdzie się ona w
postaci minimalnej:
f(x1x2x3x4) = (x3 + x4)(x1 + x2 + x4)( x1 + x2 + x4)
Na rysunku 5.5c) pokazano z kolei funkcję, która posiada dwie minimalne postacie sumy:
f(x1x2x3x4) = x1x3 + x1x3x4 + x1x2x4
albo
f(x1x2x3x4) = x1x3 + x1x3x4 + x2x3x4
(alternatywne grupy, tj. x1x2x4 i x2x3x4 zaznaczone są linią przerywaną).
8


Wyszukiwarka

Podobne podstrony:
5w Minimalizacja funkcji 2
Wyk ad IV Minimalizacja funkcji logicznych
minimalizacja funkcji logicznych
Minimalizacja funkcji logicznych[1]
Minimalizacja funkcji
Wykład VI minimalizacja zespołu funkcji, projektowanie układów kombinacyjnych
Geneza i funkcjonowanie mitu arkadyjskiego
Fundacje i Stowarzyszenia zasady funkcjonowania i opodatkowania ebook
integracja funkcji
FUNKCJA CHŁODZENIE SILNIKA (FRIC) (ZESPOLONE Z KALKULATOREM
ciaglosc funkcji2
Znaczenie korytarzy ekologicznych dla funkcjonowania obszarów chronionych na przykładzie Gorców
Funkcjonowanie zbiornikow wodnych i Makrofity
Zestaw 1 Funkcja kwadratowa Funkcja homograficzna Równanie liniowe

więcej podobnych podstron