Teoria automatów
Transkrypt
Teoria automatów
Wstęp do Techniki Cyfrowej... Teoria automatów Alfabety i litery Układ logiczny opisywany jest przez wektory, których wartości reprezentowane są przez ciągi kombinacji zerojedynkowych. Zwiększenie stopnia abstrakcji modelu przez przypisanie nazw występującym wartościom wektorów; nazwy te są niezależne od konkretnych reprezentacji. Zbiór nazw nazywamy alfabetem, nazwy – literami. Pojęcie alfabetu – podstawa definicji charakterystycznych dla teorii automatów, której wariantem szczegółowym jest teoria układów logicznych. Automaty i ich stany Automaty pracują w dyskretnej skali czasowej – zmiany liter odbywają się w ściśle określonych chwilach czasowych. Podając na wejście automatu określoną sekwencję liter, w pewnej (n-tej) chwili otrzymamy określoną literę wyjściową: ..., xn-3, xn-2, xn-1, xn yn Nieskończenie wiele sekwencji liter wejściowych nawet dla skończonych liczności alfabetów wejściowych Automaty i ich stany c.d. Sekwencje liter wejściowych tworzą historie automatu, reprezentowane przez jego stany wewnętrzne. Skończony alfabet wewnętrzny reprezentuje skończoną liczbę wszystkich możliwych historii danego automatu. Automat skończony – alfabety charakteryzujące wejście, wyjście oraz stan wewnętrzny zawiera ograniczoną liczbę liter. Automat Mealy’ego Uporządkowana piątka: A = < X, S, Y, d, l >, gdzie: X = {x0, x1, ..., xm-1} – alfabet wejściowy, S = {s0, s1, ..., sl-1} – alfabet wewnętrzny (zbiór stanów), Y = {y0, y1, ..., yn-1} – alfabet wyjściowy, d:<xk, sk> sk+1 – funkcja przejść l:<xk, sk> yk – funkcja wyjść Zakłada się ponadto, że dla funkcji przejść < xk, sk > Dd X S oraz analogicznie dla funkcji wyjść < xk, sk > Dl X S Definiowanie automatu Mealy’ego Definicja analityczna – podanie alfabetów wejściowego, wewnętrznego, wyjściowego, funkcji a b c a b c przejść oraz wyjść q r q s Tablica przejść-wyjść - z r s Graf automatu r - - s z y r - y z - Automat Moore’a Uporządkowana piątka: A = < X, S, Y, d, l >, gdzie: X = {x0, x1, ..., xm-1} – alfabet wejściowy, S = {s0, s1, ..., sl-1} – alfabet wewnętrzny (zbiór stanów), Y = {y0, y1, ..., yn-1} – alfabet wyjściowy, d:<xk, sk> sk+1 – funkcja przejść l:<sk> yk – funkcja wyjść Definiowanie automatu Moore’a Definicja analityczna – analogicznie Tablica przejść-wyjść – tylko jedna kolumna wartości wyjściowych a p q Graf automatu – zmieniona konwencja r b c q r p y q r q z r q p y Użyteczne definicje (1) Słowo wejściowe automatu A – dowolna sekwencja liter alfabetu wejściowego. Jeżeli w wyniku pobudzenia automatu w stanie s słowem x końcowa litera wyjściowa jest określona, to słowo to nazywa się odpowiednim dla stanu s (x||s). Dla automatu Moore’a nieokreśloność stanu pociąga za sobą nieokreśloność litery wyjściowej. Użyteczne definicje (2) Automat A1 = < X, S1, Y, d1, l1 > w stanie s1 pokrywa automat A2 = < X, S2, Y, d2, l2 > w stanie s2 (zapis s1s2), jeśli każde słowo odpowiednie dla s2 jest odpowiednie dla s1 i dla każdego takiego słowa końcowe litery wyjściowe obu automatów są są sobie równe: l2(x, s2) = l1(x, s1) Automat A1 = < X, S1, Y, d1, l1 > pokrywa automat A2 = < X, S2, Y, d2, l2 > (zapis A1A2), jeśli dla każdego stanu s2 automatu A2 istnieje przynajmniej jeden stan s1 automaty A1 taki, że s1s2 A1 A2 s1 s2 s2 S 2 s1S1 Automat A1 zawiera w sobie niejako funkcję automatu A2 Użyteczne definicje (3) Automat A1 = < X, S1, Y, d1, l1 > w stanie s1 jest nieodróżnialny od automatu A2 = < X, S2, Y, d2, l2 > w stanie s2 (zapis s1s2), jeśli każde słowo odpowiednie dla s2 jest odpowiednie dla s1 i odwrotnie, przy czym końcowe litery wyjściowe obu automatów są sobie równe. Graniczny (symetryczny) przypadek pokrywania. Automat A1 = < X, S1, Y, d1, l1 > jest nieodróżnialny od automatu A2 = < X, S2, Y, d2, l2 > (zapis A1 A2), jeżeli automaty te wzajemnie się pokrywają. Użyteczne definicje (4) Automat AR = < X, SR, Y, dR, lR > jest zredukowanym dla automatu A = < X, S, Y, d, l > jeżeli automat AR pokrywa automat A i jednocześnie liczba stanów automatu zredukowanego nie jest większa od liczby stanów automatu A. Dla danego automatu może istnieć wiele automatów zredukowanych, bądź może ich nie być wcale. Każdy automat jest zredukowanym dla samego siebie. W zbiorze automatów zredukowanych znajduje się przynajmniej jeden o najmniejszej możliwej liczbie stanów wewnętrznych. Relacja niesprzeczności stanów Relacja niesprzeczności stanów automatu A = < X, S, Y, d, l > zbiór wszystkich takich par jego stanów <s1, s2>, dla których słowo odpowiednie dla jednego ze stanów, jeśli jest również odpowiednie dla drugiego, generuje z tych stanów jednakowe litery końcowe: R~={<s1, s2>S: x||s1x||s2 l(x, s2) = l(x, s1)}. Stany niesprzeczne oznacza się s1 s2. Dualnie definiuje się relację sprzeczności stanów – ma ona mniejsze znaczenie i jest rzadziej używana. Zbiory stanów niesprzecznych Zbiorem stanów niesprzecznych Q nazywa się zbiór, którego dowolne dwa elementy tworzą parę stanów niesprzecznych. Maksymalnym zbiorem stanów niesprzecznych Qmax jest zbiór, do którego dodanie jednego elementu powoduje utratę właściwości niesprzeczności stanów. Zbiór wszystkich dla danego elementu maksymalnych zbiorów stanów niesprzecznych nazywa się rodziną maksymalnych zbiorów stanów niesprzecznych i oznacza {Qmax}. Pojęcie to odgrywa kluczową role w procesie poszukiwania automatu minimalnego – automatu zredukowanego o najmniejszej możliwej liczbie stanów. Relacja nieodróżnialności stanów Relacja nieodróżnialności R stanów automatu A = <X, S, Y, d, l> jest zbiór wszystkich takich par jego stanów <s1, s2>, dla których słowo odpowiednie dla jednego z nich jest jednocześnie odpowiednim dla drugiego i odwrotnie, a wygenerowane z tych stanów litery końcowe są jednakowe: Para stanów nieodróżnialnych różni się co najwyżej oznaczeniem. Zbiory stanów nieodróżnialnych Zbiorem stanów nieodróżnialnych B nazywa się zbiór, którego dowolne dwa elementy tworzą parę stanów nieodróżnialnych. Maksymalnym zbiorem stanów nieodróżnialnych Bmax jest zbiór, do którego dodanie jednego elementu powoduje utratę właściwości nieodróżnialności stanów. Zbiór wszystkich dla danego elementu maksymalnych zbiorów stanów nieodróżnialnych nazywa się rodziną maksymalnych zbiorów stanów nieodróżnialnych i oznacza {Bmax}. Pojęcie to jest istotne w procesie poszukiwania automatu minimalnego dla automatu pierwotnego o dużej liczbie stanów. Zamkniętość rodziny zbiorów stanów niesprzecznych Dla określonej litery wejściowej, stany następne wyznaczone dla wszystkich stanów dowolnego zbioru maksymalnego, są zawsze podzbiorem któregoś ze zbiorów maksymalnych stanów niesprzecznych tworzących tę rodzinę. Zbiory rodziny {Qmax} nie muszą być rozłączne; może się zatem zdarzyć, że stany następne są jednocześnie podzbiorami kilku różnych zbiorów maksymalnych Automaty ilorazowe Automaty ilorazowe budowane są na rodzinach zbiorów stanów niesprzecznych. Najczęściej buduje się je na rodzinie {Qmax}, rzadziej na {Bmax}. Automat ilorazowy automatu pierwotnego A zbudowany dla rodziny {Tj} oznacza się A/{Tj}. Automatem minimalnym jest automat ilorazowy dla maksymalnie zredukowanej rodziny {Qmax}. Redukcja musi zachować pełne pokrycie stanów automatu pierwotnego i warunek zamkniętości. Rodzinę taką oznacza się {Pj}. Minimalizacja automatów Minimalizacja automatów {Qmax} = {{1,2,4,5,6,7}, {1,5,8}, {1,3,6}, {1,3,8}} A B C D a b c a b c A A D A|C z z y B A A A|C z y y C A B|D B|D z y - D A A B|D z y y Minimalizacja automatów {Qmax} = {{1,2,4,5,6,7}, {1,5,8}, {1,3,6}, {1,3,8}} A B C D a b c a b c A A D A z z y B A A A|C z y y C A B|D B|D z y - D A A D z y y Rytm pracy automatów Minimalizacja liczby stanów zachowuje klasę typu automatów. W automacie Mealy’ego litera wyjściowa generowana jest przed wejściem do stanu następnego, w automacie Moore’a z chwilą przejścia do nowego stanu. Nieokreśloność stanu następnego automatu Moore’a pociąga za sobą nieokreśloność litery wyjściowej; w automacie Mealy’ego nie wpływa na literę wyjściową (generowaną przed wypadnięciem z grafu). Relacje pokrywania, niesprzeczności i nieodróżnialności nie mogą zachodzić między automatami dwóch różnych typów. Podobieństwo automatów Automaty: Moore’a A1 = < X, S1, Y, d1, l1 > w stanie s1 i Mealy’ego A2 = < X, S2, Y, d2, l2 > w stanie s2 nazywa się podobnymi (zapis s1 s2), jeśli każde słowo odpowiednie dla s2 jest odpowiednie dla s1 i odwrotnie, przy czym końcowe litery wyjściowe obu automatów są sobie równe. Automaty Moore’a A1 i Mealy’ego A2 nazywa się podobnymi (zapis A1 A2), jeżeli dla każdego stanu s1 automatu A1 istnieje przynajmniej jeden stan s2 automatu A2 taki, że w tych stanach automaty są podobne oraz dla każdego stanu s2 automatu A2 istnieje przynajmniej jeden stan s1 automatu A1 taki, że w tych stanach automaty są podobne. Automat Mealy’ego podobny do automatu Moore’a Dla automatu Moore’a A1 = < X, S1, Y, d1, l1 > można znaleźć automat podobny Mealy’ego A2 = < X, S2, Y, d2, l2 >, jeżeli dla każdej litery wejściowej automatu Mealy’ego A2 będzie spełniona zależność: l2(x,s) = l1[d(x,s)] Przykład: 1 2 3 4 5 a 2 4 1 3 5 b 3 5 2 4 1 y z z y 1 2 3 4 5 a 2 4 1 3 5 b 3 5 2 4 1 a z z y y b y z z y Automat Moore’a podobny do Mealy’ego Dla każdej pary <stan następny, litera wyjściowa> automatu Mealy’ego A1 = < X, S1, Y, d1, l1 > wprowadzamy nazwę stanu wewnętrznego automaty Moore’a A2 =<X, S2, Y, d2, l2>, co oznaczmy symbolem: s2i = d1(x,s1j) / l1 (x,s1j), przy czym l1(s2i) = l1 (x,s1j). Zbiór tych nazw tworzy alfabet wewnętrzny S2 automatu A2. Korzystając z wierszy automatu Mealy’ego podobny automat Moore’a tworzymy w następujący sposób: - wybieramy wiersz odpowiadający stanowi następnemu z daną nazwą stanu wewnętrznego automatu Moore’a, - dla tego wiersza stany następne określamy według tablicy Mealy’ego, stosując nazwy stanów automatu Moore’a poprzednio wyznaczone. Na koniec minimalizujemy i porządkujemy otrzymany automat. Przykład 1 2 3 4 a 4 2 2 4 b 3 1 3 1 a y z z y b z y z y 1 2 3 4 a 4/y A 2/z C 2/z C 4/y A b 3/z 1/y 3/z 1/y B D B D A B C D a A C C A b D B D B y z z y