Menor DFA que aceita seqüências de caracteres dadas e rejeita outras strings dadas

11

Dado dois conjuntos de cadeias sobre o alfabeto Σ , podemos calcular o menor autômato de estado finito determinístico (DFA) M de modo que A L ( M ) e L ( M ) Σ B ?A,BΣMUMAeu(M)eu(M)ΣB

Em outras palavras, representa um conjunto de exemplos positivos. Cada sequência em A precisa ser aceita pelo DFA. B representa um conjunto de exemplos negativos. Nenhuma sequência em B deve ser aceita pelo DFA.UMAUMABB

Existe uma maneira de resolver isso, talvez usando técnicas de minimização do DFA ? Eu poderia imaginar a criação de um autômato semelhante ao DFA que possui três tipos de estados: aceitar estados, rejeitar estados e "não se importa" (qualquer entrada que termine em um "não se importa" pode ser aceita ou rejeitado). Mas podemos encontrar uma maneira de minimizar isso para um DFA comum?

Você pode pensar nisso como o problema de aprender um DFA, dados exemplos positivos e negativos.

Isso é inspirado no regex golf NP-Complete? , que faz perguntas semelhantes para regexps em vez de DFAs.

DW
fonte
11
Eu acho que você precisará colocar algum tipo de restrição sobre quais tipos de idiomas e B podem ser e como eles podem ser especificados. UMAB
Reinierpost
Há muita literatura sobre funções / idiomas de aprendizagem, por exemplo, arquivada sob o limite de aprendizado (também aprendizado no estilo Gold). Isso não se encaixa exatamente no seu problema, mas pode ser interessante.
Raphael

Respostas:

7

Um DFA, como você descreve, é chamado de DFA de separação . Existe alguma literatura sobre esse problema quando e B são idiomas regulares, como Aprender DFAs mínimos de separação para verificação composicional, de Yu-Fang Chen, Azadeh Farzan, Edmund M. Clarke, Yih-Kuen Tsay, Bow-Yaw WangUMAB

Observe que, como afirma @reinierpost, sem restrições em A e B, o problema pode se tornar indecidível.

Shaull
fonte
Se A e B são idiomas regulares e se é permitido aceitar ou rejeitar arbitrariamente qualquer entrada para a qual A e B produziriam o mesmo resultado, não vejo como o problema poderia ser indecidível. Para um DFA de qualquer tamanho específico, seria possível construir um conjunto totalmente abrangente de entradas que deveria aceitar e entradas que deveria rejeitar, de modo que qualquer DFA com o mesmo número de estados ou menos que lida corretamente com todos os casos de teste pode garantir um comportamento idêntico em todos os casos. Como uma máquina que aceita tudo, A aceita e rejeita tudo o que faria ... #
2333
... satisfazer as restrições, pode-se colocar um limite superior no número de estados que uma máquina teria que conter; como existe um número finito de máquinas possíveis de qualquer tamanho e um número finito de casos de teste a serem avaliados, pode-se gerar todas as máquinas possíveis menores que A e ver se alguma delas atende às condições necessárias. Não é exatamente uma maneira rápida de resolver o problema, mas certamente decidível se A e B são regulares. Se eles não são regulares, a DFA não seria capaz de resolver A ou B. A "diferença" pode às vezes ser regular, mesmo se A e B não são, mas que ...
supercat
... seria um caso "incomum".
Supercat
8

UMABUMAB=UMAUMAB

Encontrar o DFA mínimo consistente com um determinado conjunto de strings é NP-complete. Este resultado aparece como o Teorema 1 no artigo de Angluin Sobre a complexidade da inferência mínima de conjuntos regulares . Tão claramente que seu problema também é NP-completo.

Para muitos bons links e discussões sobre o aprendizado de idiomas regulares, consulte o post no blog do CSTheory Sobre o aprendizado de idiomas regulares .

alto
fonte
Se os requisitos foram alterados para que um autômato arbitrariamente aceite ou rejeite qualquer coisa que esteja em A e B, o problema sempre será solucionável para qualquer A e B; se encontrar o autômato ideal seria NP-completo sem fazer isso, seria NP-completo, mesmo com esse requisito.
Supercat #