Sabemos que os DFAs são equivalentes aos NFAs em poder de expressividade; também existe um algoritmo conhecido para converter NFAs em DFAs (infelizmente agora conheço o inventor desse algoritmo), o que, na pior das hipóteses, nos dá estados, se nosso NFA tivesse estados. S
Minha pergunta é: o que está determinando o pior cenário possível?
Aqui está uma transcrição de um algoritmo em caso de ambiguidade:
Seja um NFA. Construímos um DFA em queA ′ = ( Q ′ , Σ , δ ′ , q ′ 0 , F ′ )
- ,
- ,
- e
- ,
onde é a função de transição alargada de .
Respostas:
O algoritmo a que você se refere é chamado de Construção Powerset e foi publicado pela primeira vez por Michael Rabin e Dana Scott em 1959.
Para responder sua pergunta como indicado no título, não há DFA máximo para um idioma normal, pois você sempre pode fazer um DFA e adicionar quantos estados desejar com as transições entre eles, mas sem transições entre um dos estados originais e um dos novos. Assim, os novos estados não será acessível a partir do estado inicial , então a linguagem aceita pelo autômato não vai mudar (desde δ ( q 0 , w ) permanecerá o mesmo para todos w ∈ Σ * ).q0 δ^(q0,w) w∈Σ∗
Dito isso, é claro que não pode haver condições em um NFA para que seu DFA equivalente seja o máximo, uma vez que não existe um DFA equivalente exclusivo . Por outro lado, o DFA mínimo é único até o isomorfismo.
Um exemplo canônico de um idioma aceito por uma NFA com estados com DFA equivalente a 2 n estados é L = { w ∈ { 0 , 1 } ∗ : | w | ≥ n e o n- ésimo símbolo do último é 1 } . Um NFA para G é Um = ⟨ Q , { 0 , 1 } , δ , q 0 , {n+1 2n
fonte
O pior caso de vem do número de subconjuntos de estados da NFA. Para que o algoritmo do teorema de Kleene forneça um DFA equivalente com o pior número de estados, deve haver uma maneira de chegar a todos os subconjuntos possíveis de estados no NFA. Um exemplo com dois estados sobre o alfabeto { a , b } possui uma transição do estado inicial para o único estado de aceitação no símbolo a , uma transição do estado de aceitação de volta para a inicial em b e uma transição do estado de aceitação de volta para em um a ou b . As strings λ , a , b2s { a , b } uma b uma b λ uma b , e levam aos subconjuntos { q 1 } , { q 2 } , { } e { q 1 , q 2 } , respectivamente, e esses precisam de estados separados no DFA que Kleene fornece.a b { q1} { q2} { } { q1, q2}
fonte
Eu acredito que essa é uma questão na fronteira do conhecimento, ou seja, basicamente uma questão de pesquisa. A partir de uma rápida pesquisa no Google, parece estar quase sempre aberta. Além disso, por muitos anos eu acreditei que fosse importante e vinculado aos limites inferiores da teoria da complexidade. Você não menciona diretamente uma análise estatística, mas é isso que está implícito na sua pergunta. Aqui estão dois exemplos de estudos estatísticos sobre DFAs / NFAs que são semelhantes para mostrar a abordagem geral de perguntas desse tipo. Parece que a pesquisa empírica básica sobre questões como essa ainda é quase inexplorada. É certo que o segundo não está diretamente relacionado à sua pergunta, mas é o mais próximo que pude encontrar da pesquisa atual.
Essa métrica estaria relacionada a métricas da teoria dos grafos, como densidade de arestas, etc. Provavelmente, existe alguma métrica muito importante da teoria dos grafos ou uma mistura de métricas que estima a "explosão", mas isso não é imediatamente óbvio para mim. Eu poderia sugerir algo como métricas de coloração de gráfico ou métricas de clique, talvez. Em seguida, teste a métrica em relação aos dois conjuntos "blow-up" vs "not blow-up".
Até agora, outras respostas à sua pergunta fornecem apenas um exemplo de caso de "explosão" (útil para um estudo de caso), mas não abordam a questão principal de uma métrica geral.
Outra área para analisar um programa de pesquisa empírica desenvolvido com sucesso é a pesquisa de pontos de transição do SAT. Isso desenvolveu vínculos muito profundos com os conceitos de física e termodinâmica. Parece-me provável que conceitos semelhantes sejam aplicáveis aqui. Por exemplo, é provável que você encontre métricas de tipo de ponto de transição análogas; provavelmente densidade de arestas etc. Observe paralelos à teoria da compressibilidade de Kolmogorov.
Suponho também que os NFAs que "explodem" em comparação com aqueles que não o fazem são, de alguma forma, muito análogos a instâncias "difíceis" vs "fáceis" de problemas de NP-completos.
Outra maneira de estudar esse problema seria formular um problema de minimização da NFA. Ou seja, dado um DFA, encontre o NFA mínimo, que ouvi pela última vez (muitos anos atrás), ainda era um problema em aberto.
[1] Sobre o desempenho de algoritmos de minimização de autômatos Marco Almeida, Nelma Moreira, Rogério Reis
[2] Autômatos que não reconhecem palavras: uma abordagem estatística Cristian S. Calude, Cezar Câmpeanu, Monica Dumitrescu
fonte