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.nn + O ( 1 )nAn+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′MnnSM′A={a,b}M′=A∗SS={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 .MnSSMn=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 kLRn2n+12n+1u,v∈An+1kuk≠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=avk=bubk∈LRnvbk∉LRnbkuvuvLRnubkvbk, 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 .