minimalizacja automatu
DESCRIPTION
Minimalizacja liczby stanów. Minimalizacja automatu. Minimalizacja automatu to minimalizacja liczby stanów. Jest to transformacja automatu o danej tablicy przejść-wyjść na równoważny mu (pod względem przetwarzania sygnałów cyfrowych) automat o mniejszej liczbie stanów wewnętrznych. - PowerPoint PPT PresentationTRANSCRIPT
1
ITPW
ZPT
Minimalizacja automatu
a b c d a b c d
A C B C A 0 1 1 1
B C C A – 0 1 1 –
C B C A B 0 0 0 1
x
S a b c d a b c d
S1 – S3 S4 S2 – 1 1 1
S2 S4 – – – 0 – – –
S3 S6 S6 – – 0 1 – –
S4 – S6 S1 S5 – 0 0 1
S5 – – S2 – – – 1 –
S6 S3 – S2 S3 0 – 0 1
Minimalizacja liczby stanów
Czysty zysk – zamiast trzech przerzutników tylko dwa!Czysty zysk – zamiast trzech przerzutników tylko dwa!
Minimalizacja automatu to minimalizacja liczby stanów. Minimalizacja automatu to minimalizacja liczby stanów.
Jest to transformacja automatu o danej tablicy przejść-wyjść na równoważny mu (pod względem przetwarzania sygnałów cyfrowych) automat o mniejszej liczbie stanów wewnętrznych.
Jest to prawie zawsze możliwe, gdyż w procesie pierwotnej specyfikacji często wprowadzane są stany nadmiarowe lub równoważne.
Jest to transformacja automatu o danej tablicy przejść-wyjść na równoważny mu (pod względem przetwarzania sygnałów cyfrowych) automat o mniejszej liczbie stanów wewnętrznych.
Jest to prawie zawsze możliwe, gdyż w procesie pierwotnej specyfikacji często wprowadzane są stany nadmiarowe lub równoważne.
2
ITPW
ZPT
Relacja zgodności na zbiorze stanów S:
(pary stanów zgodnych)
Relacja zgodności na zbiorze stanów S:
(pary stanów zgodnych)
Maksymalne zbiory stanów zgodnych
(Maksymalne Klasy Zgodności)
Maksymalne zbiory stanów zgodnych
(Maksymalne Klasy Zgodności)
Selekcja zbiorów zgodnych spełniających tzw.:
warunek pokrycia warunek zamknięcia
Selekcja zbiorów zgodnych spełniających tzw.:
warunek pokrycia warunek zamknięcia
Minimalizacja liczby stanów
3
ITPW
ZPT
Pojęcia podstawowe
x
Sa b c d a b c d
1 – 3 4 2 – 1 1 1
2 4 – – – 0 – – –
3 6 6 – – 0 1 – –
4 – 6 1 5 – 0 0 1
5 – – 2 – – – 1 –
6 3 – 2 3 0 – 0 1
Dwa stany wewnętrzne Si, Sj są zgodne, jeżeli dla każdego wejścia v mają one niesprzeczne stany wyjść, a ich stany następne są takie same lub niesprzeczne.
Dwa stany wewnętrzne Si, Sj są zgodne, jeżeli dla każdego wejścia v mają one niesprzeczne stany wyjść, a ich stany następne są takie same lub niesprzeczne.
Dwa stany wewnętrzne Si, Sj są zgodne warunkowo, jeżeli ich stany wyjść są niesprzeczne oraz dla pewnego v V para stanów następnych do Si, Sj (ozn. Sk, Sl):
(Si, Sj) (Sk, Sl)
Dwa stany wewnętrzne Si, Sj są zgodne warunkowo, jeżeli ich stany wyjść są niesprzeczne oraz dla pewnego v V para stanów następnych do Si, Sj (ozn. Sk, Sl):
(Si, Sj) (Sk, Sl)
Stany Si, Sj są sprzeczne, jeżeli dla pewnego v V ich stany wyjść są sprzeczne.
Stany Si, Sj są sprzeczne, jeżeli dla pewnego v V ich stany wyjść są sprzeczne.
Stany zgodnewarunkowo
Stany zgodne
Stany sprzeczne
4
ITPW
ZPT
Relacja zgodności
Ze względu na zgodność warunkową w obliczeniach (wszystkich!) par zgodnych posługujemy się tzw. tablicą trójkątną.
Ze względu na zgodność warunkową w obliczeniach (wszystkich!) par zgodnych posługujemy się tzw. tablicą trójkątną.
Tablica trójkątna zawiera tyle kratek, ile jest wszystkich możliwych par stanów. Na przykład dla automatu o 5 stanach:
Tablica trójkątna zawiera tyle kratek, ile jest wszystkich możliwych par stanów. Na przykład dla automatu o 5 stanach:
5
ITPW
ZPT
Tablica trójkątna
2
3
4
5
1 2 3 4
Kratki tablicy wypełniamy symbolami: Kratki tablicy wypełniamy symbolami:
v – jeżeli para stanów jest zgodna,v – jeżeli para stanów jest zgodna,
vv
x – jeżeli para stanów jest sprzeczna, lubx – jeżeli para stanów jest sprzeczna, lub
x x
(i,j) - parą (parami stanów następnych), jeżeli jest to para zgodna warunkowo.
(i,j) - parą (parami stanów następnych), jeżeli jest to para zgodna warunkowo.
(i,j)(i,j)
6
ITPW
ZPT
Tablica trójkątna - przykład
a b c d a b c d
1 – 3 4 2 – 1 1 1
2 4 – – – 0 – – –
3 6 6 – – 0 1 – –
4 – 6 1 5 – 0 0 1
5 – – 2 – – – 1 –
6 3 – 2 3 0 – 0 1
2
3
4
5
6
1 2 3 4 5
1,2; 3,5
vv
v
vv
v
3636 46
2424
34
7
ITPW
ZPT
Tablica trójkątna - przykład
2
3 3,6 4,6
4
5 2,4
6 3,4 1,2; 3,5
1 2 3 4 5
Po wypełnieniu tablicy sprawdzamy, czy pary stanów sprzecznych (zaznaczone ) nie występują przypadkiem jako pary stanów następnych.
Po wypełnieniu tablicy sprawdzamy, czy pary stanów sprzecznych (zaznaczone ) nie występują przypadkiem jako pary stanów następnych.
Wszystkie kratki niewykreślone odpowiadają parom zgodnym:
Wszystkie kratki niewykreślone odpowiadają parom zgodnym:
Jeśli są takie pary, to należy je skreślić (czyli zaznaczyć ). Proces ten trzeba powtarzać tak długo, aż sprawdzone zostaną wszystkie krzyżyki.
Jeśli są takie pary, to należy je skreślić (czyli zaznaczyć ). Proces ten trzeba powtarzać tak długo, aż sprawdzone zostaną wszystkie krzyżyki.
(1,2); (1,3); (1,5); (2,3); (2,4); (2,5); (3,5); (3,6); (4,6).
(1,2); (1,3); (1,5); (2,3); (2,4); (2,5); (3,5); (3,6); (4,6).
8
ITPW
ZPT
Obliczanie MKZ
Po wyznaczenie zbioru par stanów zgodnych,przystępujemy do obliczenia:
Po wyznaczenie zbioru par stanów zgodnych,przystępujemy do obliczenia:
maksymalnych zbiorów stanów zgodnych.maksymalnych zbiorów stanów zgodnych.
Maksymalne klasy zgodności (MKZ)Maksymalne klasy zgodności (MKZ)
9
ITPW
ZPT
Obliczanie MKZ-ów
Najprostsza metoda polega na łączeniu par kolumn zgodnych w trójki, trójek w czwórki itd.
Problem obliczania maksymalnych klas zgodnych można sprowadzić do znanego problemu obliczania maksymalnych klik w grafie lub do problemu kolorowania grafu.
Redukując zbiory mniejsze zawarte w większych oblicza Maksymalne Klasy Zgodności
10
ITPW
ZPT
Metoda bezpośrednia
a, bb, ca, c
{a, b, c}
a, b, ca, b, db, c, da, c, d
{a, b, c, d}
i.t.d.
Pary zgodne:
11
ITPW
ZPT
...wracamy do przykładu
1,2 1,3 1,5 2,3 2,42,5 3,5 3,64,6
1,2,3 MKZ:
1,2,3,5
MKZ = {{1,2,3,5}, {2,4}, {3,6}, {4,6}} MKZ = {{1,2,3,5}, {2,4}, {3,6}, {4,6}}
1,2,5
2,43,64,6
vvv v
vv
Pary zgodne: (1,2); (1,3); (1,5); (2,3); (2,4); (2,5); (3,5); (3,6); (4,6)Pary zgodne: (1,2); (1,3); (1,5); (2,3); (2,4); (2,5); (3,5); (3,6); (4,6)
2,3,5
1,3,5
12
ITPW
ZPT
Algorytm minimalizacji
1) Wyznaczenie par stanów zgodnych,1) Wyznaczenie par stanów zgodnych,
2) Obliczenie maksymalnych zbiorów stanów zgodnych (MKZ),
2) Obliczenie maksymalnych zbiorów stanów zgodnych (MKZ),
3) Selekcja zbiorów spełniających tzw. warunek pokrycia (a) i zamknięcia (b):
3) Selekcja zbiorów spełniających tzw. warunek pokrycia (a) i zamknięcia (b):
a) każdy stan musi wchodzić co najmniej do jednej klasy;
a) każdy stan musi wchodzić co najmniej do jednej klasy;
b) dla każdej litery wejściowej wszystkie następniki (stany następne) danej klasy muszą wchodzić do jednej klasy.
b) dla każdej litery wejściowej wszystkie następniki (stany następne) danej klasy muszą wchodzić do jednej klasy.
13
ITPW
ZPT
Warunek pokrycia - przykład
a b c d a b c d
1 – 3 4 2 – 1 1 1
2 4 – – – 0 – – –
3 6 6 – – 0 1 – –
4 – 6 1 5 – 0 0 1
5 – – 2 – – – 1 –
6 3 – 2 3 0 – 0 1
MKZ = {{1,2,3,5}, {3,6}, { 2,4}, 4,6}}
Aby spełnić warunek pokrycia wystarczy wybrać klasy:
Aby spełnić warunek pokrycia wystarczy wybrać klasy:
{1,2,3,5}, {4,6}
14
ITPW
ZPT
Warunek zamknięcia - przykład
a b c d a b c d
1 – 3 4 2 – 1 1 1
2 4 – – – 0 – – –
3 6 6 – – 0 1 – –
4 – 6 1 5 – 0 0 1
5 – – 2 – – – 1 –
6 3 – 2 3 0 – 0 1
Dla wybranych klas {1,2,3,5},{4,6}}obliczamy ich następniki:
a b c d
1,2,3,5
4,6
Nie jest spełniony warunek zamknięcia !Nie jest spełniony warunek zamknięcia !
4,64,6 3,63,6 2,42,4 22
33 66 1,21,2 3,53,5
3,6!3,6! 2,4!2,4!
15
ITPW
ZPT
Warunek pokrycia i zamknięcia – druga próba
a b c d a b c d
1 – 3 4 2 – 1 1 1
2 4 – – – 0 – – –
3 6 6 – – 0 1 – –
4 – 6 1 5 – 0 0 1
5 – – 2 – – – 1 –
6 3 – 2 3 0 – 0 1
a b c d a b c d
A 1,2
B 3,5
C 4,6
MKZ = {{1,2,3,5}, {3,6}, { 2,4}, {4,6}}
Wybór:
a b c d a b c d
A C B C A 0 1 1 1
B C C A – 0 1 1 –
C B C A B 0 0 0 1
{1,2}, {3,5}, {4,6}
3 6 1,2 3,5
6 6 2 –
4 3 4 2 0 1 1 1
0 1 1 –
0 0 0 1
O.K.O.K.
16
ITPW
ZPT
Jeszcze jeden przykład 0 1 0 1
1 2 6 0 0
2 3 1 1 1
3 – 4 – 0
4 – 5 – 0
5 3 – 1 –
6 7 – 1 –
7 – 8 – 0
8 – – – 1
2
3
4
5
6
7
8
1 2 3 4 5 6 7
3737
4646
5656
6868
4545
4848 5858
vv vv vv
vv vv
vv
vv vv
vvvv
3737
17
ITPW
ZPT
Jeszcze jeden przykład c.d.
2
3
4
5
6
7
8
1 2 3 4 5 6 7
3737
4646
5656
6868
4545
4848 5858
vv vv vv
vv vv
vv
vv vv
vvvv
3737
1,31,72,52,83,43,53,64,54,64,75,75,86,76,8
1,31,72,52,83,43,53,64,54,64,75,75,86,76,8
Pary zgodne:Pary zgodne:
3,4,64,5,74,6,71,31,76,8
3,4,64,5,74,6,71,31,76,8
MKZ:MKZ:
3,4,53,4,52,5,82,5,8
18
ITPW
ZPT
Jeszcze jeden przykład c.d.
0 1 0 1
1 2 6 0 0
2 3 1 1 1
3 – 4 – 0
4 – 5 – 0
5 3 – 1 –
6 7 – 1 –
7 – 8 – 0
8 – – – 1
2,5,8 3,4,5 3,4,6 4,5,7 4,6,7 1,3 1,7 6,8
(0,Si)
(1,Si)
2,5,83,4,53,4,64,5,74,6,71,31,76,8
2,5,83,4,53,4,64,5,74,6,71,31,76,8
MKZ:MKZ:
33–33–
1– –1– –
– –3– –3
45–45–– –7– –7
45–45– 5–85–8 5–85–8 6464 6868
7–7–
– –– –
2–2––3––3– –7––7– 2–2–
19
ITPW
ZPT
Jeszcze jeden przykład c.d. 0 1 0 1
1 2 6 0 0
2 3 1 1 1
3 – 4 – 0
4 – 5 – 0
5 3 – 1 –
6 7 – 1 –
7 – 8 – 0
8 – – – 1
2,5,8 3,4,5 3,4,6 4,5,7 4,6,7 1,3 1,7 6,8
(0,Si) 3 3 7 3 7 2 2 7
(1,Si) 1 45 45 58 58 46 68 –
XS
0 1 0 1
A C C 1 1
B B A 1 0
C A B 0 0
AA BB CC
Automat minimalny:Automat minimalny:
20
ITPW
ZPT
Algorytm MKZ wg par sprzecznych
Koniunkcję dwuskładnikowych sum przekształcić do minimalnego wyrażenia boolowskiego typu suma iloczynów
Koniunkcję dwuskładnikowych sum przekształcić do minimalnego wyrażenia boolowskiego typu suma iloczynów
Zapisać pary sprzeczne w postaci koniunkcji dwuskładnikowych sumZapisać pary sprzeczne w postaci koniunkcji dwuskładnikowych sum
Wtedy MKZ są uzupełnieniami zbiorów reprezentowanych przez składniki iloczynowe tego wyrażenia
Wtedy MKZ są uzupełnieniami zbiorów reprezentowanych przez składniki iloczynowe tego wyrażenia
21
ITPW
ZPT
Ten sam przykład
1,21,31,52,32,42,53,53,64,6
1,21,31,52,32,42,53,53,64,6
E:E:
Pary zgodnePary zgodne
1,41,62,63,44,55,6
1,41,62,63,44,55,6
Pary sprzecznePary sprzeczne
22
ITPW
ZPT
Przykład...
Pary sprzeczne:
(k1, k4), (k1, k6), (k2, k6), (k3, k4), (k4, k5), (k5, k6)
Pary sprzeczne:
(k1, k4), (k1, k6), (k2, k6), (k3, k4), (k4, k5), (k5, k6)
= (k4 += (k4 +
Przekształcamy wyrażenie do postaci „suma iloczynów”:
Przekształcamy wyrażenie do postaci „suma iloczynów”:
Obliczamy wyrażenie boolowskie typu „koniunkcja sum”:
(k1 + k4) (k1 + k6 ) (k2 + k6) (k3 + k4) (k4 + k5) (k5 + k6) =
Obliczamy wyrażenie boolowskie typu „koniunkcja sum”:
(k1 + k4) (k1 + k6 ) (k2 + k6) (k3 + k4) (k4 + k5) (k5 + k6) =
Porządkujemy:
(k4 + k1) (k4 + k3 ) (k4 + k5) (k6 + k1) (k6 + k2) (k6 + k5) =
Porządkujemy:
(k4 + k1) (k4 + k3 ) (k4 + k5) (k6 + k1) (k6 + k2) (k6 + k5) =
k4k6 + k1k2k4k5 + k1k3k5k6 + k1k2k3k5
k4k6 + k1k2k4k5 + k1k3k5k6 + k1k2k3k5
(k6 + (k6 + k1k3k5) k1k3k5) k1k2k5) = k1k2k5) =
23
ITPW
ZPT
Przykład...
Klasy zgodne uzyskamy odejmując od zbioru {k1,...,k6}, zbiory tych ki, które występują w jednym składniku wyrażenia typu „suma iloczynów”
{k1,..., k6} {k4, k6} = {k1, k2, k3, k5 }{k1,...,k6} {k1, k2 , k4 , k5 } = {k3, k6}{k1,...,k6} {k1, k3, k5 , k6} = {k2 , k4}{k1,...,k6} {k1, k2, k3, k5 } = {k4, k6}
Klasy zgodne uzyskamy odejmując od zbioru {k1,...,k6}, zbiory tych ki, które występują w jednym składniku wyrażenia typu „suma iloczynów”
{k1,..., k6} {k4, k6} = {k1, k2, k3, k5 }{k1,...,k6} {k1, k2 , k4 , k5 } = {k3, k6}{k1,...,k6} {k1, k3, k5 , k6} = {k2 , k4}{k1,...,k6} {k1, k2, k3, k5 } = {k4, k6}
24
ITPW
ZPT
Detektor sekwencji
Sygnał wyjściowy pojawiający się podczas trzeciego skoku układu ma wynosić 1, gdy „trójka” ma postać 001, a 0, gdy „trójka” jest innej postaci. Sygnał pojawiający się podczas pierwszego i drugiego skoku układu może być nieokreślony.
Sygnał wyjściowy pojawiający się podczas trzeciego skoku układu ma wynosić 1, gdy „trójka” ma postać 001, a 0, gdy „trójka” jest innej postaci. Sygnał pojawiający się podczas pierwszego i drugiego skoku układu może być nieokreślony.
1
2
3
4
5
6
7
0/-
1/-
0/-
0/0
0/0
0/0
0/0
1/0
1/0
1/0
1/1
0/-
1/-
1/-
011001001101010011001001101010
- - 0- - 0 - - 1- - 1- - 1- - 1 - - 0- - 0 - - 0- - 0
Zaprojektować układ sekwencyjny Mealy’ego o jednym wejściu binarnym i jednym wyjściu binarnym. Układ ma badać kolejne „trójki” symboli wejściowych.
Zaprojektować układ sekwencyjny Mealy’ego o jednym wejściu binarnym i jednym wyjściu binarnym. Układ ma badać kolejne „trójki” symboli wejściowych.
25
ITPW
ZPT
Detektor sekwencji
0/-1/-
0/0
1
2
3
4
5
6
7
0/-
1/-
0/-
0/0
0/0
0/0
1/0
1/0
1/0
1/1
0/-
1/-
1/-
0/0
0/-1/-1
2
3
4
50/-
1/-
0/-
0/0
1/0
1/1
1/-
S 0 1 0 1
1 2 3 - -
2 4 5 - -
3 5 5 - -
4 1 1 0 1
5 1 1 0 0
S 0 1 0 1
1 2 3 - -
2 4 5 - -
3 6 7 - -
4 1 1 0 1
5 1 1 0 0
6 1 1 0 0
7 1 1 0 0
26
ITPW
ZPT
Minimalizacja detektora sekwencji
XS
0 1 0 1
1 2 3 – –
2 4 5 – –
3 5 5 – –
4 1 1 0 1
5 1 1 0 0
2 2 4, 3 5
3 2 5, 3 5 45
4 1 2, 1 3 1 4, 1 5 1 5
5 1 2, 1 3 1 4, 1 5 1 5
1 2 3 4
Bardzo dużo par zgodnych! Bardzo dużo par zgodnych!
Do wyznaczenia MKZ wykorzystamy pary sprzeczne, których jest znacznie mniej (dwie).
Do wyznaczenia MKZ wykorzystamy pary sprzeczne, których jest znacznie mniej (dwie).
27
ITPW
ZPT
Minimalizacja detektora sekwencji
Pary sprzeczne zapisujemy w postaci wyrażenia boolowskiego typu iloczyn (koniunkcja) dwu-składnikowych sum.
Pary sprzeczne zapisujemy w postaci wyrażenia boolowskiego typu iloczyn (koniunkcja) dwu-składnikowych sum.
Na tej podstawie zapisujemy wyrażenie: (2 3) (4 5),które po wymnożeniu uzyskuje postać:
(2 3) (4 5) = 2 4 2 5 3 4 3 5
Na tej podstawie zapisujemy wyrażenie: (2 3) (4 5),które po wymnożeniu uzyskuje postać:
(2 3) (4 5) = 2 4 2 5 3 4 3 5
W detektorze sekwencji pary sprzeczne są: (2, 3); (4, 5). W detektorze sekwencji pary sprzeczne są: (2, 3); (4, 5).
Odejmując od zbioru S = {1, 2, 3, 4, 5} wszystkich stanów zbiory zapisane w poszczególnych składnikach uzyskujemy
rodzinę wszystkich MKZ.
Odejmując od zbioru S = {1, 2, 3, 4, 5} wszystkich stanów zbiory zapisane w poszczególnych składnikach uzyskujemy
rodzinę wszystkich MKZ.
{1, 2, 3, 4, 5} – {2, 4} = {1, 3, 5}{1, 2, 3, 4, 5} – {2, 5} = {1, 3, 4} {1, 2, 3, 4, 5} – {3, 4} = {1, 2, 5}{1, 2, 3, 4, 5} – {3, 5} = {1, 2, 4}
28
ITPW
ZPT
Minimalizacja detektora sekwencjiX
S0 1 0 1
1 2 3 - -
2 4 5 - -
3 5 5 - -
4 1 1 0 1
5 1 1 0 0
XS
0 1
135 125 135
134 125 135
125 124 135
124 124 135
MKZ: {1, 3, 5}, {1, 3, 4}, {1, 2, 5}, {1, 2, 4}
Funkcja przejść dla wszystkich MKZFunkcja przejść dla wszystkich MKZ
Dokładamy klasę {1,2,5}Dokładamy klasę {1,2,5}
XS
0 1 0 1
A 135 125 135 0 0
B 125 124 135 0 0
C 124 124 135 0 1
XS
0 1 0 1
A B A 0 0
B C A 0 0
C C A 0 1
Klasy: {1,3,5}, {1, 2, 4}, {1, 2, 5} spełniająwarunek pokrycia i zamkniętości
Klasy: {1,3,5}, {1, 2, 4}, {1, 2, 5} spełniająwarunek pokrycia i zamkniętości
ale nie spełniają warunku zamkniętości – stany następne: {1,2,5} !
ale nie spełniają warunku zamkniętości – stany następne: {1,2,5} !
Klasy {1, 3, 5}, {1, 2, 4} spełniają warunek pokrycia, Klasy {1, 3, 5}, {1, 2, 4} spełniają warunek pokrycia,
29
ITPW
ZPT
...a to już było
XS
0 1 0 1
A B A 0 0
B C A 0 0
C C A 0 1
Uzyskany automat był już realizowany na przerzutnikach i bramkach – wykład cz6, plansze 15 do 21.
T1Q1
Q1
Q1
Q1
T0Q0
Q0
CLK
x x YZaprojektować układ sekwencyjny Mealy’ego o jednym wejściu binarnym i jednym wyjściu binarnym. Układ ma badać kolejne „trójki” symboli wejściowych. Sygnał wyjściowy pojawiający się podczas trzeciego skoku układu ma wynosić 1, gdy „trójka” ma postać 001, a 0, gdy „trójka” jest innej postaci. Sygnał pojawiający się podczas pierwszego i drugiego skoku układu może być nieokreślony.
Zaprojektować układ sekwencyjny Mealy’ego o jednym wejściu binarnym i jednym wyjściu binarnym. Układ ma badać kolejne „trójki” symboli wejściowych. Sygnał wyjściowy pojawiający się podczas trzeciego skoku układu ma wynosić 1, gdy „trójka” ma postać 001, a 0, gdy „trójka” jest innej postaci. Sygnał pojawiający się podczas pierwszego i drugiego skoku układu może być nieokreślony.
Omówiliśmy cały proces syntezy ! Omówiliśmy cały proces syntezy !