Problemas Decidíveis
Envolvendo Autômatos e
Linguagens Livres do Contexto
Problemas Clássicos
Autômato
Gramática
Aceitação (A)
Decídivel
Decídivel
Emptyness (E)
Decídivel
Decídivel
Equivalência
(EQ)
Decídivel
Indecídivel
Problema da Aceitação ADFA
A
qa
w
qr
0 11 0
Código do
autômato A
String w
Se A aceita w
Se A não aceita w
ADFA é decídivel
• M= No input <A,w> faça
1. Executa A no string w
2. Se A atinge um estado final, M pára em
qa.
3. Se A pára num estado não-final, M pára
em qr
Problema Emptyness EDFA
A
qa
qr
Código do
autômato A
Se L(A) é vazia
Se L(A) não é vazia
EDFA é decidivel
M = No input <A> faça
1. Marc := {q0}
2. Enquanto houver mudanças em Marc faça
- Insere em Marc todos os estados q tais
que δ(q’,a) = q para algum q’ em Marc.
3. Testa se Marc contém algum estado final
4. Se contém, pára em qr
5. Se não contém, pára em qa.
Problema da Equivalência EQDFA
A
qa
B
qr
Se L(A) = L(B)
Se L(A)
Código do
autômato A
Código do
autômato B
L(B)
EQDFA é decídivel
•
•
•
•
•
•
•
•
•
M = No input <A,B> faça
Construa autômato A’ complementar de A
Construa autômato B’ complementar de B
Construa autômato C = A intersecção B’
Construa autômato D = B intersecção A’
Construa autômato E = união de C e D
Execute a máquina M’ que decide o problema EDFA em
E
Se M’ pára em qa, M pára em qa
Se M’ pára em qr, M pára em qr
Problema da Aceitação AGLC
G
qa
w
qr
0 11 0
String w
Código de
Gramática
livre do contexto G
Se G gera w
Se G não gera w
AGLC é decídivel
M = No input <G,w> faça
1. Encontre G’ = Forma Normal de Chomsky de G
1. N := |w|
2. Crie todas as derivações de comprimento 2N 1 começando em S, pela gramática G’.
3. Se w é derivada numa destas derivações pára
em qa
4. Se w não é derivada em nenhuma destas
derivações pára em qr.
Problema Emptyness EGLC
G
qa
qr
Código de
Gramática livre do contexto G
Se L(G) é vazia
Se L(G) não é vazia
EGLC é decídivel
M = No input <G = (V,T,P,S) > faca
1. Marc := T
2. Enquanto houver mudanças em Marc faça
Insere em Marc todas as variáveis A tais que
existe regra A  B1…Bn com Bi em Marc para
todo i = 1,…,n
3. Testa se Marc contém a variável S
4. Se contém, pára em qr.
5. Se não contém, pára em qa.
Problema da Equivalencia EQGLC
G
qa
G’
qr
Código da
Código da
Gramática G Gramática G’
Se L(G) = L(G’)
Se L(G)
L(G’)
Problema da Equivalência EQGLC
• Problema indecídivel
• Não existe algoritmo que resolve este
problema !
Problemas Clássicos
Autômato
Gramática
Máquina de
Turing
Aceitação
(A)
Decídivel
Decídivel
Indecídivel
Emptyness
(E)
Decídivel
Decídivel
Indecídivel
Indecídivel
Indecídivel
Equivalência Decídivel
(EQ)
Turing-decidíveis
EDFA
EQTM
ADFA
EQDFA
AGLC
EQGLC
EQGLC
EGLC
ETM
ETM
EQTM
ATM
ATM
Turing-reconhecíveis
Download

Problemas Decidíveis