PDF - 573 kB - Tadeusz Łuba

Transkrypt

PDF - 573 kB - Tadeusz Łuba
Metoda klasyczna (wg książki Sasao)
... to metoda tablicowa, graficzna, której podstawowe
operacje wykonywane są na tzw. tablicy dekompozycji
Tablicą dekompozycji funkcji f nazywamy macierz
dwuwymiarową o kolumnach etykietowanych wartościami
zmiennych funkcji f ze zbioru V oraz o wierszach etykietowanych
wartościami zmiennych funkcji f ze zbioru U
V
abc
de
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
U
000
001
00
0
1
01
1
0
•
•
•
X
V
•••
G
U
Elementami macierzy
M są wartości, jakie
przyjmuje funkcja f na
wektorach złożonych z
odpowiednich etykiet
i-tego wiersza i j-tej
kolumny.
H
Y
1
Jak obliczać dekompozycję?
Relacja zgodności kolumn
Kolumny {kr, ks} są zgodne, jeśli nie istnieje wiersz i,
dla którego elementy Kir, Kis są określone i różne,
tzn. odpowiednio: 0, 1 albo 1, 0.
I
T
P
Tadeusz
Łuba
W
K1
K2
K3
K4
K5
K6
K7
1
-
0
1
-
0
1
-
-
-
-
1
1
-
-
0
1
0
0
-
0
0
1
-
-
-
-
0
ZCB
ZPT
2
Relacja zgodności kolumn
K1
K2
K3
K4
K5
K6
K7
1
-
0
1
-
0
1
-
-
-
-
1
1
-
-
0
1
0
0
-
0
0
1
-
-
-
-
0
Kolumny zgodne można „sklejać”
{K1,K4,K7}
I
T
P
Tadeusz
Łuba
W
ZCB
1
0
-
1
0
0
0
-
{K5,K6}
ZPT
3
Obliczanie dekompozycji...
Wyznaczyć relację zgodności kolumn, czyli wypisać
wszystkie pary zgodne albo sprzeczne).
Wyznaczyć rodzinę maksymalnych zbiorów kolumn
zgodnych maksymalnych klas zgodnych – MKZ).
Z rodziny tej wyselekcjonować minimalną podrodzinę
(w sensie liczności) rozłącznych zbiorów zgodnych
pokrywającą zbiór K wszystkich kolumn tablicy
dekompozycji.
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
4
Przykład
cde
000
001
010
011
100
101
110
111
1
–
0
1
–
0
1
0
01
–
–
–
–
1
1
–
–
10
–
0
1
0
0
–
0
1
11
0
1
–
–
–
–
–
–
K0
K1
K2
K3
K4
K5
K6
K7
ab
00
a
b
c
d
e
Istnieje dekompozycja !
g
I
T
P
Tadeusz
Łuba
W
h
f = h(a,b,g1(c,d,e),g2(c,d,e))
ZCB
ZPT
5
Przykład - obliczanie klas zgodności
Pary zgodne:
cde
000
001
010
011
100
101
110
111
1
–
0
1
–
0
1
0
01
–
–
–
–
1
1
–
–
10
–
0
1
0
0
–
0
1
11
0
1
–
–
–
–
–
–
K0
K1
K2
K3
K4
K5
K6
K7
ab
00
K0, K1 sprzeczna
0,3
0,4
0,6
1,3
1,4
1,5
1,6
2,5
2,7
3,4
3,6
K0, K2 sprzeczna
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
K0, K3 zgodna
K0, K4 zgodna
4,5
4,6
5,7
6
Klasy zgodności…
0,3
0,4
0,6
1,3
1,4
1,5
1,6
…policzymy najprostszą metodą bezpośrednią
0,3,4
0,3,6
0,4,6
1,3,4
1,3,6
2,5
2,7
3,4
3,6
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
4,5
4,6
Maksymalne klasy
zgodności:
0,3,4,6
1,4,5
1,3,4,6
1,4,6
1,4,5
2,5,7
2,5,7
3,4,6
5,7
7
Przykład c.d.
Z rodziny MKZ wybieramy minimalną liczbę klas (lub
podklas) pokrywającą zbiór wszystkich kolumn.
0,3,4,6
Ostatecznie:
Wybieramy:
1,3,4,6
1,4,5
2,5,7
0,3,4,6
0,3,4,6
1,4,5
1,5
2,5,7
2,7
Kolumny powtarzające się
usuwamy
I
T
P
Tadeusz
Łuba
W
Komentarz: formalnie
obliczamy pokrycie..
U KZ = K
KZ ∈RKZ S
ZCB
ZPT
8
Sklejanie kolumn – funkcja h
cde
000
001
010
011
100
101
110
111
00
1
-
0
1
-
0
1
0
01
-
-
-
-
1
1
-
-
10
-
0
1
0
0
-
0
1
11
0
1
-
-
-
-
-
-
K0
K1
K2
K3
K4
K5
K6
K7
ab
{K0,K3,K4,K6}
{K1,K5}
{K2,K7}
g 1g 2
00
01
11
10
00
1
0
0
-
I
T
P
Tadeusz
Łuba
W
01
1
1
-
-
10
0
0
1
-
ZCB
11
0
1
-
-
Tablica H
ZPT
ab
Kodowanie?
Może być dowolne
9
Kodowanie kolumn – funkcja g
cde
000
001
010
011
100
101
110
111
00
1
-
0
1
-
0
1
0
01
-
-
-
-
1
1
-
-
10
-
0
1
0
0
-
0
1
11
0
1
-
-
-
-
-
-
K0
K1
K2
K3
K4
K5
K6
K7
ab
H
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
g 1g 2
00
01
11
10
00
1
0
0
-
01
1
1
-
-
10
0
0
1
-
11
0
1
-
-
ab
G
c
0
0
1
1
0
1
0
1
d
0
1
0
1
0
0
1
1
e
0
1
0
0
1
1
0
1
g1
0
0
0
0
0
0
1
1
g2
0
0
0
0
1
1
1
1
10
Co uzyskaliśmy
a
b
c
d
g
h
e
c
0
0
1
1
d
0
1
0
1
e
0
1
0
0
g1
0
0
0
0
g2
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
g1g2
ab
00
01
11
10
00
1
0
0
-
01
1
1
-
-
10
0
0
1
-
11
0
1
-
-
Opis funkcji g i h tablicami prawdy wystarczy dla
realizacji w strukturach FPGA
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
Ale funkcje g i h można obliczyć jawnie…
czyli po procesie dekompozycji można je minimalizować
11
uzyskując w rezultacie …
a
b
c
d
e
g
h
…strukturę na bramkach
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
12
Wracamy do przykładu…
a
b
c
d
g
h
e
c
0
0
1
1
d
0
1
0
1
e
0
1
0
0
g1
0
0
0
0
g2
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
g1g2
ab
00
01
11
10
00
1
0
0
-
01
1
1
-
-
10
0
0
1
-
11
0
1
-
-
Opis funkcji g i h tablicami prawdy wystarczy dla
realizacji w strukturach FPGA
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
Ale funkcje g i h można obliczyć jawnie…
czyli po procesie dekompozycji można je minimalizować
13
Przykład – funkcje g1 i g2
c
0
0
1
1
0
1
0
1
d
0
1
0
1
0
0
1
1
e
0
1
0
0
1
1
0
1
g1
0
0
0
0
0
0
1
1
g2
0
0
0
0
1
1
1
1
e
0
1
00
0
0
01
1
11
10
cd
e
0
1
00
0
1
0
01
1
0
0
1
11
0
1
0
0
10
0
1
g = cd e + cde
1
cd
g = cd e + ce + d e
2
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
14
Przykład – funkcja h
g1g2
00 01 11 10
ab
00
1
0
0
-
01
1
1
-
-
11
0
1
-
-
10
0
0
1
-
Uwaga:
Przestawiliśmy wiersze
h = a g2 + bg2 + ag1
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
15
Realizacja – struktura wielopoziomowa
a b
c d e
c d e
c d e
c
c d e
e
d
e
G
g1
a
I
T
P
Tadeusz
Łuba
W
ZCB
g2
g2
b g2
a
g1
H
h=f
ZPT
16
Realizacja funkcji f na bramkach
Po dekompozycji:
g = cd e + cde
1
g = cd e + ce + d e
2
f = h = a g2 + bg2 + ag1
Bez dekompozycji:
I
T
P
Tadeusz
Łuba
W
f = ab!c!de + !abc!d + a!b!cd!e + a!bcde
+ !a!b!c!d!e + !a!bcd!e + !a!b!cde
ZCB
ZPT
17
Przykład bardziej skomplikowany - TL27
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
.type fr
.i 10
.o 1
.p 25
0010111010
1010010100
0100011110
1011101011
1100010011
0100010110
1110100110
0100110000
0101000010
0111111011
0000010100
1101110011
0100100000
0100011111
0010000110
1111010001
1111101001
1111111111
0010000000
1101100111
0010001111
1111100010
1010111101
0110000110
0100111000
.e
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
x3
x5
x6
x7
x8
x9 x10
f
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
x7
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
x8
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
U
x9
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
x3 x5
1 1
1 0
0 0
1 1
0 0
0 0
1 1
0 1
0 0
1 1
0 0
0 1
0 1
0 0
1 0
1 0
1 1
1 1
1 0
0 1
1 0
1 1
1 1
0 1
x6
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
x10
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
f
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
V
18
Tablica dekompozycji dla funkcji TL27
U = {x , x , x }
7 8 9
X3
X3
V = {x , x , x , x }
3 5 6 10
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
000
–
–
–
1
–
0
–
1
–
–
1
–
–
–
–
001
0
–
0
–
–
–
1
–
–
–
–
1
–
–
–
010
–
1
–
–
–
–
–
–
–
0
–
–
–
–
–
011
–
0
–
–
1
–
–
1
–
–
–
0
–
–
–
100
–
–
–
–
–
1
–
–
–
–
–
–
1
–
–
101
–
–
–
–
–
–
–
–
–
–
–
–
0
0
1
110
–
–
–
–
–
–
–
–
–
–
–
–
–
–
1
111
–
–
1
–
–
–
–
–
1
–
–
–
–
–
1
x6
x10
x7x8x9
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
19
Tablica dekompozycji dla funkcji TL27
V = {x , x , x , x }
3 5 6 10
U = {x , x , x }
7 8 9
X3
X5
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
000
–
–
–
1
–
0
–
1
–
–
1
–
–
–
–
001
0
–
0
–
–
–
1
–
–
–
–
1
–
–
–
010
–
1
–
–
–
–
–
–
–
0
–
–
–
–
–
011
–
0
–
–
1
–
–
1
–
–
–
0
–
–
–
100
–
–
–
–
–
1
–
–
–
–
–
–
1
–
–
101
–
–
–
–
–
–
–
–
–
–
–
–
0
0
1
110
–
–
–
–
–
–
–
–
–
–
–
–
–
–
1
111
–
–
1
–
–
–
–
–
1
–
–
–
–
–
1
x6
x10
x7x8x9
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
20
Praktyczny wynik dekompozycji funkcji TL27
H
g
x7x8x9
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
0
G
1
000
1
0
001
0
1
010
0
1
011
1
0
100
–
1
101
1
0
110
1
–
111
1
–
c
e
x6
x10
G
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
•
•
•
1
1
•
•
•
1
1
x3 x5 x6 x10
G
x7 x8 x 9
H
f
Tylko 2 komórki
0
System QUARTUS realizuje TL27 na:
7 x 4 we komórek
3 x 3 we komórek
Duża skuteczność procedur dekompozycji!!!
21
Algorytm dekompozycji
(TD oznacza Tablicę dekompozycji)
1) Dla ustalonych zbiorów U, V skonstruować TD,
2) Obliczyć pary sprzeczne kolumn TD,
3) Skonstruować graf, którego wierzchołki reprezentują
kolumny TD, a krawędzie reprezentują pary
sprzeczne tych kolumn,
4) Obliczyć kolorowanie grafu,
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
5) Skleić (połączyć) kolumny TD reprezentowane
wierzchołkami grafu o tym samym kolorze,
5) Uzyskana w procesie „sklejania” tablica jest tablicą
funkcji H oraz umożliwia obliczenie funkcji G.
22
Przykład z planszy 19
Pary zgodne:
cde
000
001
010
011
100
101
110
111
1
–
0
1
–
0
1
0
01
–
–
–
–
1
1
–
–
10
–
0
1
0
0
–
0
1
11
0
1
–
–
–
–
–
–
K0
K1
K2
K3
K4
K5
K6
K7
ab
00
K0, K1 sprzeczna
K0, K2 sprzeczna
I
T
P
Tadeusz
Łuba
W
ZCB
K0, K3 zgodna
0,3
0,4
0,6
1,3
1,4
1,5
1,6
2,5
2,7
3,4
3,6
4,5
4,6
5,7
sprzeczne:
0,1
0,2
0,5
0,7
1,2
1,7
2,3
2,4
2,6
3,5
3,7
4,7
5,6
6,7
K0, K4 zgodna
ZPT
23
Algorytm dekompozycji…
to algorytm kolorowania grafu
Pary sprzeczne vi, vj, gdzie i,j: (0,1), (0,2), (0,5), (0,7), (1,2),
(1,7), (2,3), (2,4), (2,6), (3,5), (3,7), (4,7), (5,6), (6,7)
Graf niezgodności z minimalną liczbą chromatyczną
0
7
0, 3, 4, 6 − kolor A
1
2, 7 − kolor B
6
I
T
P
Tadeusz
Łuba
W
ZCB
2
1, 5−
− kolor C
3
5
ZPT
4
24
Jak dekomponować zespoły funkcji
Przykład
1
2
3
4
5
6
7
8
9
10
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
a
0
0
1
1
0
1
0
0
1
1
b
0
0
0
0
1
0
1
1
1
1
c
0
0
0
1
0
1
0
1
1
1
d
0
1
1
1
0
1
0
0
0
1
e
0
0
0
0
0
1
1
1
1
1
y1 y2 y3
0 1 0
0 1 1
1 0 0
1 1 1
0 1 1
1 1 0
1 0 0
1 1 1
1 1 0
1 0 1
Przy ustalonych U, V
tworzymy tablicę
dekompozycji
U = {a, e}
V = {b, c, d}
Zapisujemy wektory wyjściowe w postaci
liczb dziesiętnych
a
0
0
1
1
0
1
0
0
1
1
1
2
3
4
5
6
7
8
9
10
b
0
0
0
0
1
0
1
1
1
1
c
0
0
0
1
0
1
0
1
1
1
bcd
ae
000
001
00
2
3
d
0
1
1
1
0
1
0
0
0
1
011
11
f
2
3
4
7
3
6
4
7
6
5
100
110
4
4
111
3
01
10
e
0
0
0
0
0
1
1
1
1
1
7
7
6
6
5
25
Przykład c.d.
Pary sprzeczne:
bcd
ae
000
v1
001
v2
00
2
3
011
v3
11
4
4
110
v5
111
v6
3
01
10
100
v4
7
7
6
6
5
(v1, v2),
(v1, v4),
(v2, v3),
(v3, v6),
(v4, v5),
(v5, v6)
E = {(v1, v2), (v1, v4), (v2, v3), (v3, v6), (v4, v5), (v5, v6)}
Metodą transformacji CNF na DNF obliczamy maksymalne zbiory
niezależne
(v1 + v2)(v1 + v4)(v3 + v2)(v3 + v6)(v5 + v4)(v5 + v6) =
(v1 + v2v4)(v1 + v4)(v3 + v2v6)(v5 + v4v6) =
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
v1v3v5 + v1v2v5v6 + v2v3v4v5 + v2v4v5v6 +
{v2,v4,v6}
{v3,v4}
{v1,v6}
{v2,v5}
v1v3v4v6 + v1v2v4v6 + v2v3v4v6 + v2v4v6
{v1,v3,v5}
26
Przykład c.d.
{v1,v3,v5}
Rozłączne zbiory niezależne reprezentują
kolumny, które należy skleić
{v2,v4,v6}
bcd
ae
000
v1
001
v2
00
2
3
011
v3
11
4
4
110
v5
111
v6
a e
3
01
10
100
v4
G
7
g
7
6
b c d
6
H
5
f
Tablica funkcji H
g
ae
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
0
1
Tablica funkcji G
b
c
d
g
0
0
0
0
0
1
1
0
00
2
3
01
7
4
1
1
0
0
10
7
4
0
0
1
1
11
6
5
1
0
0
1
1
1
1
1
27
Mniej ważne metody syntezy…
np. faktoryzacja wyrażeń boolowskich – metoda istotna w
strukturach bramkowych w technologiach GA lub S.C.)
Faktoryzacja przekształca dwupoziomowe wyrażenie boolowskie
w wielopoziomowe, przez wprowadzenie podfunkcji węzłów) pośrednich.
f = ac + ad + bc + bd + e
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
a
c
a
d
b
c
b
d
e
f
Faktoryzacja a dekompozycja
f = ac + ad + bc + bd + e,
f = (a + b) (c + d) + e
g=a+b
h=c+d
a
c
a
d
b
c
b
d
e
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
a
b
f
g
h
f
c
d
e
Struktura dwupoziomowa
Struktura wielopoziomowa
Pierwotne 5 bramek, 9 literałów, operacja faktoryzacji redukuje
do 4 bramek i 7 literałów.
Algorytm MKZ wg par zgodnych
E – relacja zgodności (ei,ej) ∈ E
Rj = { ei | i < j oraz (ei,ej) ∈ E}
RKZk
RKZk+1
KZ ∈ RKZk
a) Rk+1 = φ, RKZk+1 jest powiększana o klasę KZ = {k+1}
b) KZ ∩ Rk+1 = φ,
KZ bez zmian
c) KZ ∩ Rk+1 ≠ φ,
KZ’ = KZ ∩ Rk+1∪ {k+1}
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
30
Przykład
Rj = { ei | i < j oraz ei,ej) ∈ E}
E:
I
T
P
Tadeusz
Łuba
W
ZCB
0,3
0,4
0,6
1,3
1,4
1,5
1,6
2,5
2,7
3,4
3,6
4,5
4,6
5,7
R0 = φ
R1 = φ
R2 = φ
R3 = 0,1
R4 = 0,1,3
R5 = 1,2,4
R6 = 0,1,3,4
R7 = 2,5
ZPT
31
Przykład
R0 = φ
{0}
R1 = φ
{0} {1}
R2 = φ
{0} {1} {2}
R3 = {0,1}
{0,3} {1,3} {2}
R4 = {0,1,3}
{0,3,4} {1,3,4} {2}
R5 = {1,2,4}
{4,5} {1,4,5} {2,5} {0,3,4} {1,3,4}
R6 = {0,1,3,4} {1,4,6} {2,5} {0,3,4,6} {1,3,4,6} {1,4,5}
I
T
P
Tadeusz
Łuba
W
ZCB
ZPT
R7 = {2,5}
{2,5,7} {0,3,4,6} {1,3,4,6} {5,7} {1,4,5}
Rodzina MKZ
32

Podobne dokumenty