Todos os autômatos finitos não determinísticos podem ser transformados em autômatos finitos determinísticos equivalentes. No entanto, um autômato finito determinístico permite apenas uma única seta por símbolo apontando de um estado. Portanto, seus estados devem ser membros do conjunto de estados da NFA. Isso parece indicar que o número de estados do DFA poderia escalar exponencialmente em termos do número de estados do NFA. No entanto, eu queria saber como realmente provar isso.
automata
finite-automata
nondeterminism
John Hoffman
fonte
fonte
Respostas:
Uma operação que transforma um NFA em outro NFA, mas não o faz para um DFA, é a reversão (aponte todas as setas ao contrário e troque os estados iniciais pelos estados de aceitação). O idioma reconhecido pelo autômato transformado é o idioma invertido .euR= { un - 1... você0 0| u0 0... vocên - 1∈ L }
Assim, uma idéia é procurar uma linguagem que tenha uma construção assimétrica. No futuro, esse idioma deve ser reconhecido inspecionando os primeiros símbolos, exigindo apenas n + O ( 1 ) estados. Retrocedendo, deve ser necessário manter uma memória dos últimos n estados, o que requer A n + O ( 1 ) estados em que A é o tamanho do alfabeto.n n + O ( 1 ) n An+O(1) A
Estamos procurando um idioma com a forma que M n consiste em palavras de comprimento n , S é um subconjunto não trivial do alfabeto e M ' não fornece mais restrições. Podemos também escolher o alfabeto mais simples A = { a , b } (um alfabeto singleton não funciona, não há NFAs menores lá) e M ′ = A ∗ . Um S não trivial significa S = { a } . Quanto aMnSM′ Mn n S M′ A={a,b} M′=A∗ S S={a} , exigimos que ele não se correlacione com S (para que o DFA do idioma invertido precise manter a memória de S ): use M n = A n .Mn S S Mn=An
Assim, seja . É reconhecido por um DFA simples com n + 2 estados.Ln=(a|b)na(a|b)∗ n+2
A reversão produz um NFA que reconhece .LRn=(a|b)∗a(a|b)n
O DFA mínimo que reconhece tem pelo menos 2 n + 1 estados. Isso ocorre porque todas as palavras de comprimento 2 n + 1 devem atingir estados distintos no DFA. (Em outras palavras, eles pertencem a classes distintas de equivalência Myhill-Nerode .) Para provar isso, use duas palavras distintas u , v ∈ A n + 1 e deixe k ser uma posição em que diferem ( u k ≠ v k ). Sem perda de generalidade, vamos supor que u kLRn 2n+1 2n+1 u,v∈An+1 k uk≠vk e v k = b . Então u b k ∈ L R n e v b k ∉ L R n ( b k é uma extensão distintiva para u e v ). Se u e v levassem ao mesmo estado em um DFA reconhecendo L R n , então u b k e v b kuk=a vk=b ubk∈LRn vbk∉LRn bk u v u v LRn ubk vbk , o que é impossível, pois um leva a um estado de aceitação e o outro não.
Agradecimento: este exemplo foi citado na Wikipedia sem explicações. O artigo faz uma referência a um artigo que eu não li que fornece um limite maior:
Leiss, Ernst (1981), "Representação sucinta de linguagens regulares por autômatos booleanos", Theoretical Computer Science 13 (3): 323-330, doi: 10.1016 / S0304-3975 (81) 80005-9 .
fonte
Tenho certeza de que o livro de Sipser tem esse exemplo.
fonte
Este exemplo também mostra que os NFAs podem sofrer uma explosão exponencial por complementação. De fato, sabe-se que qualquer NFA (ou mesmo gramática livre de contexto) para o idioma de todas as palavras que contêm todos os símbolos do alfabeto deve ter um número exponencial de estados.
fonte