Minimizando autómatos finitos determinista (AFDs) é um problema que tem sido bem estudada na literatura, e vários algoritmos foram propostos para resolver o seguinte problema: Dado um DFA , calcular um mínimo DFA correspondente aceite a mesma linguagem como um . A maioria desses algoritmos é executada em tempo polinomial.
No entanto, gostaria de saber se a variante de decisão desse problema - "dado um DFA , é A mínimo?" - pode ser resolvido com mais eficiência do que realmente computando o autômato mínimo. Obviamente, isso também pode ser feito com eficiência, executando, por exemplo, o algoritmo de refinamento de partição de Hopcroft e depois decidindo se todas as partições contêm exatamente um estado.
Como Yuval Filmus sugere em sua resposta , a variante de decidibilidade pode ser resolvida mais rapidamente, possivelmente usando os algoritmos padrão. Infelizmente, não consigo ver como (espero não estar perdendo um ponto óbvio aqui).
Yuval aponta nos comentários aqui que os algoritmos mais conhecidos (como o acima) são executados no tempo para alfabetos de tamanho constante. Portanto, não estou interessado apenas em ganhos assintoticamente significativos em tempo de execução, pois eles parecem bastante improváveis. O que mais me incomoda é que não consigo imaginar nenhum "atalho" que possa ser extraído do fato de estarmos interessados apenas em uma resposta do tipo sim-não-resposta - nem mesmo um atalho que permita economizar uma quantidade de tempo assintoticamente desprezível. Eu sinto que todo algoritmo sensato que decide a minimalidade de um DFA precisaria realmente minimizar o DFA e ver se alguma coisa muda durante o processo.
fonte
Respostas:
Pode não ser exatamente o tipo de resposta que você está procurando, mas desde que você perguntou sobre problemas de decisão, pensei que você poderia estar interessado na complexidade do problema. É -completo.NL
Agora, o que significa para um DFA ser mínimo? Existem duas propriedades:
Cada estado é alcançável:∀q∈Q∃w∈Σ∗ q s w s→wq
fonte