roblem kodowania w automatach Kodowanie stanów to przypisanie kolejnym stanom automatu odpowiednich kodów binarnych. Minimalna liczba bitów b potrzebna do zakodowania automatu, w którym liczność zbioru S jest S QQ2Q3 v v 2 v 3 Y S S S 4 y 2 S 2 S 5 S 3 S y S 3 S 4 S 5 y 3 S 4 S S 2 S 3 y 2 S 5 S 4 S 2 y 4 b log 2 S Złożoność realizacji sprzętowej automatu silnie zależy od sposobu zakodowania stanów! Z
roblem kodowania x s A A B B A C C D C D A B ariant ariant A B C D ariant A B C D ariant + " " " " + " " + " " " " " " + " " " " " Z 2
Kodowanie Jak przewidzieć (obliczyć) najlepsze kodowanie stanów? Czy realne jest sprawdzenie wszystkich możliwości 3 stany - 3 różne kodowania 4 stany - 3 różne kodowania 5 stanów - 4 kodowań 7 stanów - 84 kodowań 9 stanów - Z 3
KODOANE 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. Elementy rachunku podziałów c.d. loczyn podziałów, iloraz podziałów oraz relacja Suma podziałów Sumą podziałów Π a + Π b nazywamy najmniejszy (względem relacji ) podział, który jest nie mniejszy od Π a oraz Π b. Z 4
rzykładzik Π a (,2;3,4;5,6 7,8,9) (,6;2,3;4,5 7,8 9) Π b ( ),2,6;... Π a + Π b (,2,3,6;... ) Π a + Π b Π (,2,3,4,6;... ) a + Π b Π ( ) a + Π b,2,3,4,5,6;... Π a + Π b (,2,3,4,5,6;7,8,9 ) Z 5
łasność podstawienia odział Π na zbiorze stanów automatu M<S,, δ> ma własność podstawienia (closed partition), gdy dla każdej pary stanów S i, S j należącej do tego samego bloku Π i każdego wejścia k stany k S i oraz k S j należą do wspólnego bloku Π. s x odziały z własnością podstawienia: A A F B E C π ( A, B, E; C, D, F ) Z C C E D F A E B F F D E π 2 ( A, C; B, D; E, F ) 6
wierdzenie Dany jest automat M o zbiorze stanów S, S n. Do zakodowania stanów potrzeba Q,..., Q k 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 Q,..., Q k, gdzie r log 2 β(π), jest przyporządkowanych blokom podziału Π tak, że wszystkie stany zawarte w jednym bloku są oznaczone tymi samymi kodami Q,..., Q r, to funkcje Q,..., Q r, są niezależne od pozostałych (k r) zmiennych. Z 7
rzykład - interpretacja w.p. s x A A F π ( A, B, E; C, D, F ) B E C C C E ( A, D; B, C; E F ) τ, D F A E B F F D E Kodowanie wg Π A τ B Z Nie wystarcza to do zakodowania Π τ Π() C D E F arunek jednoznaczności kodowania! 8
rzykład x s A A F B E C C C E D F A E B F F D E Co to znaczy, że zastosujemy kodowanie wg podziału zamkniętego: Q Q 2 Q 3 A B C D E F Q D f(x,q ) a co z pozostałymi? Niestety tylko jedną zmienną zakodowaliśmy wg podziału zamkniętego, zatem: Z Nie musimy obliczać funkcji wzbudzeń, aby stwierdzić, że pierwsza z nich, czyli D będzie Q 2 D 2 f(x,q,q 2,Q 3 ) Q 3 D 3 f(x,q,q 2,Q 3 ) 9
rzykład A może jest więcej podziałów zamkniętych: s x A A F B E C C C E D F A E B F F D E Jest to kodowanie jednoznaczne Π Π Π() óźniej wykażemy, że oprócz Π jest Π 2 π ( A, B, E; C, D, F ) π ( A, C; B, D; E, F ) 2 Kodowanie wg Π Π 2 A B C D E F Z
RZYKŁAD c.d. rzy tak dobranym kodowaniu pierwsza funkcja wzbudzeń Q tego automatu będzie zależna od jednej zmiennej wewnętrznej, a druga i trzecia łącznie (Q 2, Q 3 ) od dwóch zmiennych wewnętrznych, czyli Q f(x,q ) Q 2 f(x,q 2,Q 3 ) Q 3 f(x,q 2,Q 3 ) Z Kto nie wierzy, niech zakoduje, obliczy funkcje Q, Q 2, Q 3 i sprawdzi. Dla całego roku!
Obliczanie podziału zamkniętego x s A A F B E C C C E D F A E B F F D E F A,E A,B C,D C,F worzymy graf par następników dla różnych wierzchołków początkowych E A,C E,F A,B ( ) B,D Z A,C A,D Π ( ) Π Π() A,D A,F 2
s x Z A H B B F A C G D D E C E A C F C D G B A H D B RZYKŁAD 2 Do zakodowania stanów automatu M potrzebne są 3 podziały 2- blokowe, takie że: Π a Π b Π c Π() Generujemy podziały zamknięte Z 3
RZYKŁAD 2 c.d. s x Z Graf par następników : A H B B F A C G D A,B F,H D E C E A C F C D G B A C,D B,D G,H H D B Π ( ) G,E E,F A,C Z 4
RZYKŁAD 2 c.d. s x Z A H B B F A C G D D E C E A C F C D G B A H D B A,D ; Z D,H B,F ; ; + Π 2 ( ) 5
Π Π ( ) ( ) RZYKŁAD 2 c.d. Niestety: Π Π ( ) Π() otrzebny jest więc jeszcze jeden podział τ: Π Π τ Π( ) τ ( ) Z 6
RZYKŁAD 2 c.d. Π ( ) Π ( ) τ ( ) Kodowanie wg Π Π 2 A B C D τ E F G H Z 7
RZYKŁAD 2 c.d. rzy tak dobranym kodowaniu dwie funkcje wzbudzeń Q i Q 2 tego automatu będą zależne od jednej zmiennej wewnętrznej, a trzecia Q 3 (w najgorszym przypadku) od trzech zmiennych, czyli Q f(x,q ) Q 2 f(x,q 2 ) Q 3 f(x,q,q 2,Q 3 ) arto zakodować, obliczyć funkcje wzbudzeń Q, Q 2, Q 3 i sprawdzić, czy rzeczywiście tak jest. Z 8
Komentarz Każde inne kodowanie doprowadzi do bardziej skomplikowanych funkcji wzbudzeń. szczególności dla kodowania wg naturalnego kodu binarnego ) : Z A B C D E F G H Q f(x,q ) Q 2 f(x,q,q 2,Q 3 ) Q 3 f(x,q,q 2,Q 3 ) ) Naturalny kod binarny jest przyjmowany domyślnie do kodowania automatów w komercyjnych systemach projektowania układów cyfrowych 9
Nie martwmy się najnowszych systemach istnieje opcjonalna możliwość wprowadzenia kodowania obliczonego zewnętrznie przez użytkownika Z 2