Relacje między językami generowanymi przez automaty skonczone

Transkrypt

Relacje między językami generowanymi przez automaty skonczone
4. JĘZYKI REGULARNE – równoważność automatów skończonych.
A. RELACJE POMIĘDZY AUTOMATAMI TYPU DAS i NAS-λ
Twierdzenie 3
Każdy automat deterministyczny zupełny (typu DAS) jest szczególnym przypadkiem automatu skończonego.
Uwaga: Nie każdy automat skończony jest automatem typu DAS.
B. RÓWNOWAŻNOŚĆ AUTOMATÓW SKOŃCZONYCH
Def.
Dwa automaty skończone M1 i M2 nazywamy równoważnymi, gdy generują ten sam język, tzn.
.
Twierdzenie 4
Dla dowolnego automatu typu NAS-λ istnieje równoważny mu automat typu DAS.
Konstrukcja automatu MDAS =(Q’,’,’,sstart’,F’) równoważnego zadanemu automatowi MNAS-λ =(Q’,’,’,sstart’,F’):
 Q’⊂P(Q)
 ’=
 ’:Q’Q’ , gdzie
 sstart’= {sstart}

Wniosek z twierdzenia 1 i 2:
Zbiory języków generowanych przez automaty typu DAS i NAS-λ są sobie równe:
ZJDAS = ZJNAS-λ
NP. Skonstruujemy automat DAS akceptujący ten sam język, co poniższy automat skończony
a
0
,a,b
a
1
2
b

3
Rozwiązanie
Jest to automat M= ( Q , , , s0, F ) = ( {s0,s1,s2,s3}, {a,b}, , s0, {s1,s3} ) typu NAS-.
Skonstruujemy automat M’= ( Q’ , ’, s0’, F’, ’ ) typu DAS (tzn. deterministyczny i zupełny) , taki że L(M)= L(M’).
Zacznijmy od ustalenia stanu początkowego. Zgodnie z konstrukcją z tw 4.:
s0’= {s0}
i jest to pierwszy stan zbioru Q’. Wyznaczamy
i
a
{S0}
.
{S1, S2}
b
{S1}
6
Zatem następnymi elementami zbioru Q’ są {s1,s2 }, { s1} i dla nich szukamy wartości funkcji przejść:
b
a
{S0}
{S1, S2}
b
{S2, S3}
a
{S2}
a
{S1}
b

Zatem następnymi elementami zbioru Q’ są {s2,s3 }, { s2},  i dla nich szukamy wartości funkcji przejść:
Zgodnie z określeniem funkcji  ’ mamy ponadto
b
b
a
{S0}
{S1, S2}
b
a
a
{S1}
{S2, S3}
a b
a
{S2}
b
a, b

Pozostaje ustalić zbiór stanów końcowych F’. Ponieważ słowo  było akceptowane przez wyjściowy automat, a F={s1,s3 }, więc
spośród stanów z Q’ = { {s0}, {s1,s2 }, { s1} ,{s2,s3 }, { s2},  } wybieramy te, które mają niepuste przecięcie z F {s0}={s0, s1, s3 }.
Zatem F’= { {s0}, {s1,s2 }, { s1} ,{s2,s3 } }
W rezultacie otrzymaliśmy automat deterministyczny i zupełny M’= ( Q’ , ’, s0’, F’, ’ ) równoważny zadanemu automatowi
M= ( Q , , , s0, F ). Otrzymany automat typu DAS ma:



zbiór stanów Q’ = { {s0}, {s1,s2 }, { s1} ,{s2,s3 }, { s2},  }
alfabet  ’={a,b}
funkcję przejść  ’ określoną grafem i tabelą:


stan początkowy s0’= {s0}
zbiór stanów końcowych F’= { {s0}, {s1,s2 }, { s1} ,{s2,s3 } }
’
{s0}
{ s1, s2}
{s1}
{s2}
{ s2, s3}

Oba automaty generują identyczne języki:
+
L(M) = L(M’) = L( (+a+b) (  + a b(a*b)* ).
Uwaga – można dokonać przemianowania stanów np. s0’={s0}, s1’={s1,s2}, itd.
a
{ s1, s2}
{s2}
{s2}
{s2}
{s2}

b
{s1}
{ s2, s3}

{ s2, s3}
{ s2, s3}

7