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