problem kodowania w automatach
DESCRIPTION
Problem kodowania w automatach. Minimalna liczba bitów b potrzebna do zakodowania automatu, w którym liczność zbioru S jest | S |. Kodowanie stanów to przypisanie kolejnym stanom automatu odpowiednich kodów binarnych. b = log 2 | S | . Q1Q2Q3. 000 001 010 011 100. - PowerPoint PPT PresentationTRANSCRIPT
ITPW
ZPT1
Kodowanie stanów to przypisanie kolejnym stanom automatu odpowiednich kodów binarnych.
b = log2|S|
Problem kodowania w automatach
Minimalna liczba bitów b potrzebna do zakodowania automatu, w którym liczność zbioru S jest |S|
v1 v2 v3 Y
S1 S1 S4 ─ y2
S2 S5 S3 S1 y1
S3 S4 ─ S5 y3
S4 S1 S2 S3 y2
S5 S4 ─ S2 y4
000
001
010
011
100
Q1Q2Q3Q1Q2Q3
Złożoność realizacji sprzętowej automatu silnie zależy od sposobu zakodowania stanów!
ITPW
ZPT
2
Problem kodowania
xs
0 1 0 1
A A B 0 0
B A C 0 0
C D C 0 0
D A B 0 1
Wariant I
A = 00B = 01C = 10D = 11
Wariant I
A = 00B = 01C = 10D = 11
Wariant II
A = 00B = 11C = 01D = 10
Wariant II
A = 00B = 11C = 01D = 10
21211 QQxQQD
2121212 QQxQxQQQxD
21QxQy
2121 QQxQxD
xD2
21QxQy
Wariant IIWariant II
Wariant IWariant I
ITPW
ZPT
3
Kodowanie
3 stany - 3 różne kodowania3 stany - 3 różne kodowania
4 stany - 3 różne kodowania4 stany - 3 różne kodowania
5 stanów - 5 stanów - 140 kodowań140 kodowań
7 stanów - 7 stanów - 840 kodowań840 kodowań
9 stanów - 9 stanów -
Jak przewidzieć (obliczyć) najlepsze kodowanie stanów?
Jak przewidzieć (obliczyć) najlepsze kodowanie stanów?
Czy realne jest sprawdzenie wszystkich możliwościCzy realne jest sprawdzenie wszystkich możliwości
ITPW
ZPT
4
Elementy rachunku podziałów c.d.
Iloczyn podziałów, iloraz podziałów oraz relacja
Sumą podziałów a + b nazywamy najmniejszy (względem
relacji ) podział, który jest nie mniejszy od a oraz b.
Suma podziałów
Jedyną rozsądną z punktu widzenia dzisiejszych technologii i realną do omówienia w ograniczonym czasie wykładu jest metoda wykorzystująca podział z własnością podstawienia.
Jedyną rozsądną z punktu widzenia dzisiejszych technologii i realną do omówienia w ograniczonym czasie wykładu jest metoda wykorzystująca podział z własnością podstawienia.
KODOWANIE
ITPW
ZPT
5
Przykładzik
9,8,7 6,5;4,3;2,1 ;
9 8,7 5,4;3,2;6,1 ;;
a
b
;...6,2,1a + b
;...6,3,2,1a + b
;...6,4,3,2,1a + b
9,8,7;6,5,4,3,2,1a + b
;...6,5,4,3,2,1a + b
ITPW
ZPT
6
Własność podstawienia
Podział na zbiorze stanów automatu M=<S, I , δ> ma własność podstawienia (closed partition), gdy dla każdej pary stanów Si, Sj należącej do tego samego bloku i każdego wejścia Ik stany Ik Si oraz Ik Sj należą do wspólnego bloku .
Podział na zbiorze stanów automatu M=<S, I , δ> ma własność podstawienia (closed partition), gdy dla każdej pary stanów Si, Sj należącej do tego samego bloku i każdego wejścia Ik stany Ik Si oraz Ik Sj należą do wspólnego bloku .
xs
0 1 0 1
A A F 0 0
B E C 0 1
C C E 0 1
D F A 1 0
E B F 1 1
F D E 0 0
FDCEBA ,,;,,1
Podziały z własnością podstawienia:Podziały z własnością podstawienia:
FEDBCA ,;,;,2
ITPW
ZPT
7
Twierdzenie
Dany jest automat M o zbiorze stanów S, |S| = n.Do zakodowania stanów potrzeba Q1, ..., Qk elementów pamięci.
() – liczba bloków podziału
Jeżeli istnieje podział z własnością podstawienia i jeżeli r spośród k zmiennych kodujących Q1, ..., Qk, gdzie
r = log2(), jest przyporządkowanych blokom podziału tak, że
wszystkie stany zawarte w jednym bloku są oznaczone tymi samymi kodami Q1, ..., Qr , to funkcje Q’1, ..., Q’r, są niezależne od pozostałych
(k – r) zmiennych.
Dany jest automat M o zbiorze stanów S, |S| = n.Do zakodowania stanów potrzeba Q1, ..., Qk elementów pamięci.
() – liczba bloków podziału
Jeżeli istnieje podział z własnością podstawienia i jeżeli r spośród k zmiennych kodujących Q1, ..., Qk, gdzie
r = log2(), jest przyporządkowanych blokom podziału tak, że
wszystkie stany zawarte w jednym bloku są oznaczone tymi samymi kodami Q1, ..., Qr , to funkcje Q’1, ..., Q’r, są niezależne od pozostałych
(k – r) zmiennych.
ITPW
ZPT
8
Przykład 1- interpretacja w.p.
xs
0 1 0 1
A A F 0 0
B E C 0 1
C C E 0 1
D F A 1 0
E B F 1 1
F D E 0 0
FDCEBA ,,;,,1
0 0
0 1
0 1
0 0
1 0
1 0
Kodowanie wg 1Kodowanie wg 1
A
B
C
D
E
F
0
0
1
1
0
1
FECBDAτ ,;,;,
Nie wystarcza to do zakodowania
1 • = (0) Warunek jednoznaczności kodowania!Warunek jednoznaczności kodowania!
ITPW
ZPT
9
Przykład 1…
xs
0 1 0 1
A A F 0 0
B E C 0 1
C C E 0 1
D F A 1 0
E B F 1 1
F D E 0 0
Q1Q2Q3
A 0 0 0
B 0 0 1
C 1 0 1
D 1 0 0
E 0 1 0
F 1 1 0
Co to znaczy, że zastosujemy kodowanie wg podziału zamkniętego:
Co to znaczy, że zastosujemy kodowanie wg podziału zamkniętego:
Q1’ = D1 = f(x,Q1)Q1’ = D1 = f(x,Q1)
Nie musimy obliczać funkcji wzbudzeń, aby stwierdzić, że pierwsza z nich, czyli D1
będzie…
Niestety tylko jedną zmienną zakodowaliśmy wg podziału zamkniętego, zatem:
Niestety tylko jedną zmienną zakodowaliśmy wg podziału zamkniętego, zatem:
a co z pozostałymi?
Q2’ = D2 = f(x,Q1,Q2,Q3)
Q3’ = D3 = f(x,Q1,Q2,Q3)
Q2’ = D2 = f(x,Q1,Q2,Q3)
Q3’ = D3 = f(x,Q1,Q2,Q3)
ITPW
ZPT
10
Przykład 1…
xs
0 1 0 1
A A F 0 0
B E C 0 1
C C E 0 1
D F A 1 0
E B F 1 1
F D E 0 0
FEDBCA ,;,;,2π
FDCEBA ,,;,,1π
Kodowanie wg 1 Kodowanie wg 1
0 0
0 1
0 0
0 1
1 0
1 0
A
B
C
D
E
F
0
0
1
1
0
1
2 2
)(0 21
Jest to kodowanie jednoznaczne
A może jest więcej podziałów zamkniętych:A może jest więcej podziałów zamkniętych:
Później wykażemy, że oprócz 1 Później wykażemy, że oprócz 1
jest 2 jest 2
ITPW
ZPT
11
PRZYKŁAD 1 c.d.
Przy tak dobranym kodowaniu pierwsza funkcja wzbudzeń Q1’ tego automatu będzie zależna od jednej zmiennej wewnętrznej, a druga i trzecia łącznie (Q2’, Q3’) od dwóch zmiennych wewnętrznych, czyli
Q1’ = f(x,Q1)
Q2’ = f(x,Q2,Q3)
Q3’ = f(x,Q2,Q3)
Przy tak dobranym kodowaniu pierwsza funkcja wzbudzeń Q1’ tego automatu będzie zależna od jednej zmiennej wewnętrznej, a druga i trzecia łącznie (Q2’, Q3’) od dwóch zmiennych wewnętrznych, czyli
Q1’ = f(x,Q1)
Q2’ = f(x,Q2,Q3)
Q3’ = f(x,Q2,Q3)
Kto nie wierzy, niech zakoduje, obliczy funkcje Q1’, Q2’, Q3’ i sprawdzi.
Kto nie wierzy, niech zakoduje, obliczy funkcje Q1’, Q2’, Q3’ i sprawdzi.
Dla całego roku! Dla całego roku!
ITPW
ZPT
12
Obliczanie podziału zamkniętego
xs
0 1
A A F
B E C
C C E
D F A
E B F
F D E
A,BA,B
A,EA,E C,FC,F
C,DC,DFF EE
B,DB,D
A,CA,C E,FE,F
A,DA,D A,FA,F
A,BA,B
A,CA,C
A,DA,D
FD,C,;EB,A,1
FE,;DB,;CA,2
1
Tworzymy graf par następników dla różnych wierzchołków początkowych
ITPW
ZPT
13
PRZYKŁAD 2
xs
0 1 Z
A H B 0
B F A 0
C G D 0
D E C 1
E A C 0
F C D 0
G B A 0
H D B 0
Generujemy podziały zamknięteGenerujemy podziały zamknięte
Do zakodowania stanów automatu M potrzebne są 3 podziały 2-blokowe, takie że:
Do zakodowania stanów automatu M potrzebne są 3 podziały 2-blokowe, takie że:
(0) cba
ITPW
ZPT
14
PRZYKŁAD 2 c.d.
xs
0 1 Z
A H B 0
B F A 0
C G D 0
D E C 1
E A C 0
F C D 0
G B A 0
H D B 0
Graf par następników :Graf par następników :
HG,F,E,;DC,B,A,1
A,BA,B F,HF,H
C,DC,D
E,FE,F A,CA,CG,EG,E
G,HG,HB,D
ITPW
ZPT
15
PRZYKŁAD 2 c.d.
xs
0 1 Z
A H B 0
B F A 0
C G D 0
D E C 1
E A C 0
F C D 0
G B A 0
H D B 0
GF,C,B,;HE,D,A,
GF,;HE,CB,;DA, ;
GF,CB,;HE,D,A, ;
HE,DA,;GF,C,B, ;
A,DA,D
D,HD,H
B,FB,F+ =2
+ =2
ITPW
ZPT
16
PRZYKŁAD 2 c.d.
HG,F,E,;DC,B,A,1
GF,C,B,;HE,D,A,2
Niestety:Niestety:
Potrzebny jest więc jeszcze jeden podział :Potrzebny jest więc jeszcze jeden podział :
)0( GF,;HE,;CB,;DA,21
)(0τ 21
FE,D,C,;HG,B,A,τ
ITPW
ZPT
17
PRZYKŁAD 2 c.d.
HG,F,E,;DC,B,A,1
GF,C,B,;HE,D,A,2 0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
Kodowanie wg 1Kodowanie wg 1 2
2
A
B
C
D
E
F
G
H
FE,D,C,;HG,B,A,τ
0
0
1
1
1
1
0
0
ITPW
ZPT
18
PRZYKŁAD 2 c.d.
Przy tak dobranym kodowaniu dwie funkcje wzbudzeń Q1’ i Q2’ tego automatu będą zależne od jednej zmiennej wewnętrznej, a trzecia Q3’ (w najgorszym przypadku) od trzech zmiennych, czyli
Q1’ = f(x,Q1)
Q2’ = f(x,Q2)
Q3’ = f(x,Q1,Q2,Q3)
Przy tak dobranym kodowaniu dwie funkcje wzbudzeń Q1’ i Q2’ tego automatu będą zależne od jednej zmiennej wewnętrznej, a trzecia Q3’ (w najgorszym przypadku) od trzech zmiennych, czyli
Q1’ = f(x,Q1)
Q2’ = f(x,Q2)
Q3’ = f(x,Q1,Q2,Q3)
Warto zakodować, obliczyć funkcje wzbudzeń Q1’, Q2’, Q3’ i sprawdzić, czy rzeczywiście tak jest.
Warto zakodować, obliczyć funkcje wzbudzeń Q1’, Q2’, Q3’ i sprawdzić, czy rzeczywiście tak jest.
ITPW
ZPT
19
Komentarz
Każde inne kodowanie doprowadzi do bardziej skomplikowanych funkcji wzbudzeń.
Każde inne kodowanie doprowadzi do bardziej skomplikowanych funkcji wzbudzeń.
Q1’ = f(x,Q1)
Q2’ = f(x,Q1,Q2,Q3)
Q3’ = f(x,Q1,Q2,Q3)
Q1’ = f(x,Q1)
Q2’ = f(x,Q1,Q2,Q3)
Q3’ = f(x,Q1,Q2,Q3)
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
A
B
C
D
E
F
G
H
Każde inne kodowanie doprowadzi do bardziej skomplikowanych funkcji wzbudzeń.
Każde inne kodowanie doprowadzi do bardziej skomplikowanych funkcji wzbudzeń.
W szczególności dla kodowania wg naturalnego kodu binarnego1):
W szczególności dla kodowania wg naturalnego kodu binarnego1):
1) Naturalny kod binarny jest przyjmowany domyślnie do kodowania automatów w komercyjnych systemach projektowania układów cyfrowych
1) Naturalny kod binarny jest przyjmowany domyślnie do kodowania automatów w komercyjnych systemach projektowania układów cyfrowych
ITPW
ZPT
20
Nie martwmy się…
W najnowszych systemach istnieje
opcjonalna możliwość wprowadzenia
kodowania obliczonego zewnętrznie przez
użytkownika