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
s1s2), 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 A1A2), jeśli dla każdego
stanu s2 automatu A2 istnieje przynajmniej jeden stan s1
automaty A1 taki, że s1s2
A1  A2    s1  s2
s2 S 2 s1S1
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 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.
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||s1x||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

Podobne dokumenty