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