Automaty Moore a i Mealy ego;
transducery
Teoria automatów i języków
formalnych
Dr in\. Janusz Majewski
Katedra Informatyki
Wprowadzenie
Automaty Moore a i Mealy ego będziemy rozwa\ać tylko w wersji deterministycznej i zupełnej. W
definicjach tych automatów nie pojawia się pojęcie stanów końcowych, za to mamy taśmę
wyjściową, na którą automat zapisuje symbole z alfabetu wyjściowego. Po przeczytaniu całego
słowa analizowany jest ostatni symbol zapisany na taśmie wyjściowej. Je\eli jest to symbol
nale\ący do pewnego podzbioru R alfabetu wyjściowego, uznajemy, \e słowo zostało
zaakceptowane. Jeśli ostatni zapisany na taśmie wyjściowej symbol nie nale\y do podzbioru R,
to uwa\amy, \e słowo nie zostało zaakceptowane. Automat Moore a wpisuje symbole na taśmę
wyjściową przy ka\dorazowym ustaleniu stanu (tak\e pisze na wyjście w stanie początkowym),
więc potrafi zaakceptować lub odrzucić słowo puste, gdy\ przy pustym wejściu zapisywany jest
jakiś symbol na taśmę wyjściową. Automat Mealy ego robi zapisy na wyjściu tylko podczas
kroku, tzn. podczas przejścia z jednego stanu do drugiego, co w automacie deterministycznym
jest związane z przeczytaniem symbolu z wejścia, więc nie jest w stanie zaakceptować bądz
odrzucić słowa pustego, poniewa\ nie wykonując czytania z pustego wejścia nie ma mo\liwości
zapisania czegokolwiek na wyjściu.
taśma wejściowa
$ a b b a a a b a b a $
q"Q
,ł
taśma wyjściowa
0 1 1 0 1
Automat zupełny i deterministyczny Moore a
A = <Ł, Q, ", q0, R, , ł>
Ł alfabet terminalny
(wejściowy)
Q zbiór stanów
" alfabet wyjściowy
q0"Q stan początkowy
Rą"" podzbiór alfabetu
wyjściowego
: Q Ł a Q funkcja przejścia
ł: Q a" funkcja wyjścia
i ł określone dla wszystkich
elementów swoich dziedzin
Przykład automatu Moore a
AMoore = <Ł, Q, ", q0, R, , ł >
Ł = {a, b}
Q = {A, B, D}
" = {0,1}
q0 = A
R = {1}
: ł:
Stan
a b
Stan Wyjście
we
A 0
A A B
B 0
B A D
D 1
D A D
ł $ a a ba b bb$łł ł$ a a ba bbb$łł ł$a a ba b bb$łł ł$a a b a bbb$łł ł$a a b a bb b$łł
ł śł ł śł ł śł ł śł ł śł
A a A a A a B a A
ł śł ł0 śł ł00 śł ł000 śł ł0000 śł
ł ł ł ł ł ł ł ł ł ł
ł łł ł łł ł łł ł łł
$a a ba b bb$ $a a ba b b b$ $a a ba b b b $ $a a ba b bb$
ł śł ł śł ł śł ł śł
a B a D a D a "
ł00000 śł ł000000 śł ł0000001 śł ł00000011 śł
ł ł ł ł ł ł ł ł
Automat zupełny i deterministyczny Mealy ego
A= <Ł, Q, ", q0, R, , ł>
Ł alfabet terminalny
(wejściowy)
Q zbiór stanów
" alfabet wyjściowy
Rą"" podzbiór alfabetu
wyjściowego
q0"Q stan początkowy
: QŁ a Q funkcja przejścia
ł: QŁ a " funkcja wyjścia
i ł określone dla wszystkich
elementów swoich dziedzin
Automaty Moore a i Mealy ego
" Słowo wejściowe jest akceptowane przez automat
Mealy ego, gdy ostatni zapisany na taśmie wyjściowej
symbol nale\y do R i słowo zostało przeczytane do końca.
Automat Mealy ego NIE akceptuje słowa pustego (nic wtedy
nie pisze na taśmie wyjściowej).
" Dowodzi się, \e automat Mealy ego jest równowa\ny
automatowi Moore a (z wyjątkiem akceptacji słowa
pustego).
" Dowodzi się dalej, \e automat Moore a jest równowa\ny
deterministycznemu automatowi Rabina-Scotta.
" Wszystkie te automaty akceptują wyłącznie języki
regularne. Wszystkie czytają słowo wejściowe do końca (są
deterministyczne i zupełne). Decyzja o akceptacji zale\y od
ostatniego zapisanego na taśmie wyjściowej symbolu (aut.
Moore a i Mealy) lub od stanu, w którym automat zatrzyma
się (aut. Rabina-Scotta).
Przykład automatu Mealy ego
AMealy = <Ł, Q, ", q0, R, , ł >
Ł = {a, b}
a/0 b/1
Q = {A, B}
b/0
A B
" = {0,1}
a/0
q0 = A
R = {1}
: ł:
Stan a b Stan a b
A 0 0
A A B
B A B B 0 1
$ a a b b a b b $ $ a a b b a b b $ $ a a b b a b b $ $ a a b b a b b $ $ a a b b a b b $
ł łł ł łł ł łł ł łł ł łł
ł śłał śłał śłał śłał śł
A A A B B
ł śł ł śł ł śł ł śł ł śł
ł śł ł 0 śł ł 0 0 śł ł 0 0 0 śł ł 0 0 0 1 śł
ł ł ł ł ł ł ł ł ł ł
$ a a b b a b b $ $ a a b b a b b $ $ a a b b a b b $
ł łł ł łł ł łł
śłał śłał śł
ał A B B
ł śł ł śł ł śł
ł 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 śł
śł ł śł ł
ł ł ł ł ł ł
Przekształcenie AMoore AMealy
We: AMoore = <Ł, Q, ", q0, R, , ł>
"L(AMoore)
Wy: AMealy = <Ł, Q, ", q0, R, , ł >
takie, \e: L(AMealy) = L(AMoore)
Funkcje przejścia bez zmian.
Funkcja wyjścia:
("ą"Ł) ("q"Q) (ł (q,a) = ł((q,a)))
Przekształcenie AMoore AMealy
Przykład:
Ł = {a,b}, Q = {A, B, C, D}, q0 = A, " = {0, 1}, R = {1}
a
a/0
A/0 B/1
A B
b
b/1
a
a b b
b/1
a/0 b/0 a/1
b
b/0
D/0 C/1
D C
a
a/1
Przekształcenie AMealy AMoore
We: AMealy = <Ł, Q, ", q0, R, , ł>
Wy: AMoore = <Ł, Q , ", q0 , R, , ł >
takie, \e: L(AMoore) = L(AMealy)
Numerujemy stany i symbole terminalne
Q = {q0, q1, ..., qn}
Ł = {a1, ..., am.}
Ka\dej parze [qi, aj] przypisujemy nowy stan Sij"Q
Sij = [qi, aj] qi"Q, i = 0,...,n aj"Ł, j = 1,...,m.
Stanowi q0 dodatkowo przypisujemy nowy stan S0"Q
Tworzymy nową funkcję przejść
(Sij, ak) = [(qi, aj), ak]
(S0, ak) = [q0, ak] = S0k
Tworzymy nową funkcję wyjść
ł (Sij) = ł(qi, aj)
ł (S0) dowolne (nieokreślone)
Mamy: Q = {Sij | i = 0,...,n; j = 1,...,m}*"{S0}
q0 = S0 ; i ł zdefiniowane jak wy\ej
Przekształcenie AMealy AMoore
Przykład:
Ł = {a, b}, Q = {A, B}, " = {0, 1}, q0 = A, R = {1}
, ł:
a (a1) b (a2)
a/0 a/0
A/S0 A/S01 B/S02
b/0
A B B B/S11 B/S12
a a
b/1
, ł :
S01/0 S11/0
Aktual. Następny stan Wyjście
a
stan
a b
S0 b a b a
S0 S01 S02 dow.
S01 S01 S02 0
b
S02 S11 S12 0
b
S02/0 S12/1
S11 S11 S12 0
S12 S11 S12 1 b
Przekształcenia
AMoore "! deterministyczny ARabina-Scotta
(i)
We: AMoore = <Ł, Q, ", q0, R, , ł>
Wy: ARabina-Scotta = <Ł, Q, F, q0, > - deterministyczny
L(AMoore) = L(ARabina-Scotta)
F := {q"Q : ł(q)"R};
Ł, Q, q0, - bez zmian
(ii)
We: ARabina-Scotta = <Ł, Q, F, q0, > - deterministyczny
Wy: AMoore = <Ł, Q, ", q0, R, , ł>
L(ARabina-Scotta) = L(AMoore)
" := {0, 1};
for q"Q F do ł(q) := 0;
for q"F do ł(q) := 1;
R := {1};
Ł, Q, q0, - bez zmian
Uogólniona maszyna sekwencyjna, transducer
Uogólniona maszyna sekwencyjna (UMS) zwana tak\e
transducerem jest oparta o koncepcję Mealy ego
zastosowaną do automatu skończonego. Formalnie:
M= <Ł, Q, ", q0, F, >, gdzie:
Ł alfabet terminalny (wejściowy)
Q zbiór stanów
" alfabet wyjściowy
Fą" podzbiór zbioru stanów (stany akceptujące)
ą"Q
ą"
ą"
q0"Q stan początkowy
"
"
"
"*
: Q a 2Q funkcja przejścia i wyjścia
Ł
Nale\enie (p,w) do (q, a) interpretujemy jako fakt , \e
jeśli M jest w stanie q i obserwuje symbol wejściowy a,
to jedną z mo\liwych opcji jej ruchu jest przejście w
stan p i wydrukowanie łańcucha w na taśmie wyjściowej.
Uogólniona maszyna sekwencyjna, transducer
Dziedzinę funkcji rozszerzamy do Q T* w następujący sposób :
(1) (q, ) = {(q, )};
(2) Dla dowolnego x" i dowolnego a" definiujemy:
"T* "T
" "
" "
(q, xa) = {(p, w ) | (" "Q) (" "
"p " "w1,w2""*)
" " " "
" " " "
( (p , w1)" '" "(p , a ) '" w=w1w2)}
"(q, x) '" (p, w2)" '"
" '" " '"
" '" " '"
Zdefiniujemy teraz:
M(x) = {y | (p, y)" (q0 , x) dla pewnego p" },
" "F
" "
" "
gdzie M jest UMS określoną wcześniej.
Dla dowolnego języka Lą"T zdefiniujemy:
M(L) = {y | (" "L) (y"
"x" "M(x))}
" " "
" " "
Mówimy, \e M(L) jest odwzorowaniem UMS , tzn. odwzorowaniem,
które ka\demu językowi L przyporządkowuje język M(L), określony
jak wy\ej.
Uogólniona maszyna sekwencyjna, transducer
Zdefiniujmy dalej:
M-1(y) = {x | y"
"M(x)}
"
"
oraz
M-1(L) = {x | (" "L) (y"
"y" "M(x))}
" " "
" " "
Mówimy, \e M-1 jest odwrotnym odwzorowaniem UMS.
Poniewa\ (podobnie jak w przypadku homomorfizmów) nie
musi być prawdą , \e
M-1(M(L))=M(M-1(L))=L , to M-1 nie jest prawdziwą
odwrotnością odwzorowania L a M(L).
Uogólniona maszyna sekwencyjna, transducer
Przykład:
Niech M = <{q0,q1}, {0,1}, {a, b}, , q0, {q1}>
Funkcję definiujemy za pomocą następujących reguł:
(q0, 0) = {(q0, aa), (q1, b)},
(q0, 1) = {(q0, a)},
(q1, 0) = ",
(q1, 1) = {(q1, )}
Uogólniona maszyna sekwencyjna, transducer
Niech L = {0n1n | ne"1}
Wtedy M(L) = {a2n-2b | ne"1} = {a2nb | ne"0}
Je\eli L1 = {a2nb | ne"0},
to M-1(L1) = {w01n | ne"0, w"{0,1}* oraz
liczba jedynek w słowie w jest parzysta}.
Zauwa\ymy, \e M-1(M(L)) " L
Uogólniona maszyna sekwencyjna, transducer
Twierdzenie: Klasa języków regularnych jest zamknięta
ze względu na odwzorowanie UMS oraz ze względu na
odwrotne odwzorowanie UMS, tzn.
je\eli L" to wtedy M(L)" oraz M-1(L)"
"LRG "LRG "LRG
" " "
" " "
Twierdzenie: Klasa języków bezkontekstowych jest
zamknięta ze względu na odwzorowanie UMS oraz ze
względu na odwrotne odwzorowanie UMS, tzn.
je\eli L" to wtedy M(L)" oraz M-1(L)"
"LBK "LBK "LBK
" " "
" " "
Twierdzenie: Klasa języków rekurencyjnie przeliczalnych
jest zamknięta ze względu na odwzorowanie UMS oraz
ze względu na odwrotne odwzorowanie UMS, tzn.
je\eli L" to wtedy M(L)" oraz M-1(L)"
"LRP "LRP "LRP
" " "
" " "
Uogólniona maszyna sekwencyjna, transducer
Przykład:
Niech L1 = {anbn | ne"1} i L2 = {anban | ne"1}.
Na poni\szym rysunku pokazana jest UMS
odwzorowująca L1 na L2 (na górze) oraz L2 na L1 (na dole).
Uogólniona maszyna sekwencyjna, transducer
Przykład:
Niech L1=a*bb* ; L2=a*baa* i L3=a*ba* oraz L4=a*b*.
Te same UMS co poprzednio odwzorowują naprawdę
L1 na L2 (na górze) oraz L3 na L4 (na dole).
Uogólniona maszyna sekwencyjna, transducer
Przykład:
Uogólniona maszyna sekwencyjna, transducer
Przykład:
+/ +/
we: +-+-+a++-a-+-a
q2
q0
wy: a-a+a
+/
Lwe=(+|-)*a((+|-)(+|-)*a)* a/a
a/+a
Lwy=(|-)a((+|-)a)*
-/ -/ q1 -/ -/
a/-a
a/-a
-/
q3
q4
+/ +/
Wyszukiwarka
Podobne podstrony:
A Bride in the?rgainMartin Wilkinson,Andrew Moore Inducement in ResearchBerlitz, Moore Tajne archiwa archeologiiC L Moore The Best of C L Moore v2 0Gulliver RGdr hab RG II cz swoboda towarowa ograniczenia ilościowe art 34 36 TFUEMoore The EnneagramAB 8400 Moore JG M422 80 4lower,urządzenia obiektowe automatyki,MooreAnna Jeanne Moore Pricewięcej podobnych podstron