Você está na página 1de 16

Teoria da Computação

Linguagens Regulares (Parte 1)


Equivalência entre AFND e AFD

Prof. Jefferson Magalhães de Morais

1 / 10
Notação tabular

É uma notação para a representação de autômatos finitos


Cada linha da tabela representa um estado distinto q
Cada coluna é associada a um elemento distinto de σ
Cada célula é preenchida com o elemento de 2Q determinado
por δ(q, σ)
“→” é o estado inicial
“←” indica os estados finais
“↔” indica um estado simultaneamente inicial e final

2 / 10
Algoritmo

Considere M1 = (Q1 , Σ, δ1 , q10 , F1 ) um AFND e


M2 = (Q2 , Σ, δ2 , q20 , F2 ) um AFD que se deseja obter. M2 é
obtido a partir de M1 através do algoritmo seguinte

Entrada: M1 com δ1 : Q1 × Σ → 2Q1


Saı́da: M2 com δ2 : Q2 × Σ → Q2 tal que L(M1 ) = L(M2 )

Método:
1 Q2 ← ∅, F2 ← ∅, δ2 ← ∅
2 ∀i ≥ 0, se q1i ∈ Q1 então Q2 ← Q2 ∪ {q2i }
3 ∀i ≥ 0, se q1i ∈ F1 então F2 ← F2 ∪ {q2i }
4 ∀q1i ∈ Q1 , σ ∈ Σ, se δ1 (q1i , σ) = {q11 , . . . , q1n }, n ≥ 1, então
δ2 (q2i , σ) = {q21 , . . . , q2n }
5 Substituir todos os elementos {q2i } de δ2 por q2i

3 / 10
Algoritmo

6 Enquanto houver transições não-determinı́sticas em δ2 , faça:


a) Selecione uma transição não-determinı́stica qualquer
δ2 (q, σ) = {q21 , . . . , q2n }, n ≥ 2
b) Acrescente um novo estado q21 . . . q2i . . . q2n à tabela de
transição de estados (ı́ndices em ordem crescente); se
q2i = q2i1 . . . q2im , considerar a ordenação de todos os estados
obtidos pela substituição de q2i por q2i1 . . . q2im em
q21 . . . q2i . . . q2n
c) Substitua todas as referências a {q21 , . . . , q2n } por q21 . . . q2n
d) Para cada σ ∈ Σ, faça:
i. δ2 (q21 . . . q2n , σ) ← ∅
ii. Para cada estado q2j ∈ {q21 , . . . , q2n }, faça:
A. δ2 (q21 . . . q2n , σ) ← δ2 (q21 . . . q2n , σ) ∪ δ2 (q2j , σ)
B. Se q2j ∈ F2 , então F2 ← F2 ∪ {q21 . . . q2n }

4 / 10
Exemplo 1
Resultado final após a aplicação
Considere o AFND apresentado do algoritmo
anteriormente

5 / 10
Exemplo 1
A eliminação de não-determinismo implica
Criação de novos estados Q 0
Altera a função de transição de estados δ 0
Acrescenta estados finais ao autômato resultante F 0

O AFD resultante pode conter estados inacessı́veis, i.e.,


estados que não podem ser atingidos a partir do estado inicial
por nenhum caminho

6 / 10
Exemplo 2

Considere o AFND e a sua notação tabular

7 / 10
Exemplo 2

Substituir {q0 } por q0 , {q1 } por q1 , {q2 } por q2 e {q3 } por q3

7 / 10
Exemplo 2

Criar um novo estado q1 q2 , substituindo {q1 , q2 } na tabela por


q1 q2

7 / 10
Exemplo 2

Criar um novo estado q0 q1 , substituindo {q0 , q1 } na tabela por


q0 q1

7 / 10
Exemplo 2

Criar um novo estado q0 q1 q2 , substituindo {q1 q2 , q0 } na tabela por


q0 q1 q2

7 / 10
Exemplo 2

Criar um novo estado q2 q3 , substituindo {q2 , q3 } na tabela por


q2 q3

7 / 10
Exemplo 2

Resultado final

7 / 10
Novos estados
O número de novos estados no AFD é limitado pela
quantidade de combinações distintas que podem ser feitas
entre os estados do AFND

Se M1 = (Q1 , Σ, δ1 , q0 , F1 ) é o AFND e
M2 = (Q2 , Σ, δ2 , q0 , F2 ) é o AFD equivalente, então
|Q2 | ≤ 2|Q1 | − 1

Exemplo: eliminação de não-determinismos

Q1 = {q0 , q1 , q2 } e
Q2 =
{q0 , q1 , q2 , q0 q1 , q0 q2 , q1 q2 , q0 q1 q2 }
|Q1 | = 3 e |Q2 | = 23 − 1 = 7

8 / 10
Considerações sobre a equivalência

Nem sempre todas as combinações possı́veis de estados


surgirão

Alguns estados antigos, eventualmente, tornam-se inacessı́veis

Conclusão sobre o teorema


Existe um AFD equivalente a qualquer AFND
O AFND não é mais poderoso que um AFD

Procedimento inverso
É óbvio que existe um AFND que seja equivalente a AFD
A incorporação de não-determinismos pode ser feita
trivialmente

9 / 10
Considerações sobre a equivalência

Acrescentando um novo estado q3 e a


Por exemplo, o AFD que transição δ(q2 , c) = q3 já seria suficiente
aceita a linguagem para tornar M não-determinı́stico, sem
a(bca)∗ é alterar a linguagem aceita por ele

10 / 10

Você também pode gostar