Equivalência de
Autômatos
Programa de Pós-graduação em Ciência da
Computação - UFU
Profa. Sandra de Amo
Definição
Sejam M1 e M2 dois autômatos
Dizemos que M1 e M2 são equivalentes se L(M1) = L(M2), isto
é, se as respectivas linguagens aceitas são iguais.
Exemplo:
1
0
q0
0
q1
1
0
1
q0
0
q2
0
q2
1
M1
1
M2
L(M1) = {w | número de 1’s de w é impar}
L(M2) = {w | número de 1’s de w é impar}
Não-determinista ≡ Determinista
1
0
0
M1 ≡ M2
q0
q1
0
M1 (não determinista)
0,1
0
q’3
0
q’2
1
q’0
0
1
q’1
1
M2 (determinista)
q’0 = {q0}
q’1 = {q1}
q’2 = {q0,q1}
q’3 = {}
q’0
q’1
q’2
q’3
0
q’0
q’2
q’2
q’3
1
q’1
q’3
q’1
q’3
δ(q’2,1) = {δ(q0,1)}  {δ(q1,1)} =
{q1}  {} = {q1} = q’1
Execução de Autômatos Deterministas
0,1
0
e não-deterministas
1
0
q’3
0
0
q0
q1
0
w = 101
q0
1
q1
sucesso
q’0
q’1
1
1
1
0
0
1
q’0
q0
q1
q’2
0
q’1
0
q1
q’2
falha
1
q’1
1
Autômato com ϵ-movimentos
ϵ
q
q1
0
q’
q1
1
Passa de q para q’ sem avançar na fita – não lê nada – fica parado
q2
0
1
0,1
ϵ
1
q1
q2
q3
0,1
1
q4
q1
0
q3
1
q1
1
0
q4
q2
q4
ϵ
q3
1
w = 01011
1
1
q4
Autômato com ϵ-movimentos
ϵ
q
q1
0
q’
q1
1
Passa de q para q’ sem avançar na fita – não lê nada – fica parado
q2
0
1
0,1
1
q1
q3
q2
0,1
1
q4
q3
1
q1
1
q4
1
q4
Se q3 fosse final, q2 tornaria-se final na versão sem ϵ
q1
0
0
w = 01011
1
q2
ϵ
q3
1
q4
Autômato com ϵ-movimentos
Se q3 fosse final, q2 tornaria-se final na versão sem ϵ
1
0,1
ϵ
1
q1
q3
q2
0
w=1
0,1
1
q4
Outro exemplo
0
0
q0
q0
q1
0
0
1
ϵ
ϵ
q2
q2
1
q3
q1
1
1
q3
1
Operações com Linguagens Regulares
União de Linguagens Regulares é uma linguagem regular:
L(M1)  L(M2) = L(M1  M2) com ϵ-movimento
M1
ϵ
ϵ
M2
Operações com Linguagens Regulares
União de Linguagens Regulares é uma linguagem regular:
L(M1)  L(M2) = L(M1  M2)
sem ϵ-movimento
M1
ϵ
ϵ
M2
Operações com Linguagens Regulares
Concatenação de Linguagens Regulares é uma linguagem regular:
L(M1). L(M2) = L(M1.M2)
com ϵ-movimento
M1
ϵ
ϵ
ϵ
a
a
a
M2
Operações com Linguagens Regulares
Concatenação de Linguagens Regulares é uma linguagem regular:
L(M1). L(M2) = L(M1.M2)
sem ϵ-movimento
M1
a
a
a
a
a
a
M2
Caso M2 aceite
a palavra vazia
Operações com Linguagens Regulares
Concatenação de Linguagens Regulares é uma linguagem regular:
L(M1). L(M2) = L(M1.M2)
sem ϵ-movimento
Caso M2 não aceite
M1 a palavra vazia
a
a
a
a
a
a
M2
Operações com Linguagens Regulares
Star de Linguagem Regular é uma linguagem regular:
L(M)* = L(M*)
com ϵ-movimento
ϵ
ϵ
ϵ
ϵ
Exercicio : Por que introduzir um novo estado inicial ? Por que não considerar
o antigo estado como inicial, e torná-lo também um estado final para que a
Linguagem L(M*) aceite a palavra vazia ?
Operações com Linguagens Regulares
Star de Linguagem Regular é uma linguagem regular:
L(M)* = L(M*)
sem ϵ-movimento
a
a
a
a
a
a
a
a
a
Download

Slides - Equivalência de Autômatos