O não vazio de interseção para os DFA é o seguinte:
Entrada: uma lista finita de , D 2 , ...,D1D2.Dk
Pergunta: Existe uma string tal que para cada i ∈ [ k ] , D i aceiteWi ∈ [ k ]DEu ? Em outras palavras, a interseção de seus idiomas regulares associados não está vazia?W
O não vazio de interseção é um problema clássico completo do PSPACE (Kozen 1977 - "Limites inferiores para sistemas de prova natural")
Relevância: há uma redução parametrizada agradável e simples de não-vazio de interseção para DFAs unidirecionais para não-vazio para DFAs bidirecionais.
Escolha o número de DFAs como o parâmetro para Não Vazio de Interseção e o número de voltas (alterna de mover para a esquerda para a direita ou da direita para a esquerda) como o parâmetro para Não Vazio para DFAs de duas vias.
Reivindicação: Não Vazio de Interseção para DFA é redutível a Não Vazio para ( 2 k - 2 )k( 2 k - 2 ) DFAs bidirecionais de voltas. (Acredito que haja uma redução relacionada para a outra direção também.)
Dado , D 2 , ..., D k , podemos construir a ( 2 k - 2 )D1D2Dk( 2 k - 2 ) Vire bidirecional DFA que avalia cada um dos DFA de por um string de entrada de cada vez.
Primeiro, ele avalia na entrada. Em seguida, move a cabeça da fita de volta ao início e avalia D 2 na entrada. Em seguida, ele move a cabeça da fita de volta ao início e avalia D 3 na entrada. ... Finalmente, move a cabeça da fita de volta ao início e avalia D kD1D2D3Dk na entrada.
Se todos eles aceitarem, faz a avaliação em todos eles e depois aceita. Se um deles rejeitar, será interrompido (não concluirá a avaliação de todos) e imediatamente será rejeitado.
knk
Link relacionado: /cstheory/29142/deciding-emptiness-of-intersection-of-regular-languages-in-subquadratic-time/29166#29166
( 2 k - 2 )nk
Conclusão: Se você encontrasse um algoritmo mais rápido para não-vazio para DFAs bidirecionais, isso levaria a uma simulação mais eficiente de máquinas não determinísticas. Deixe-me saber se você tem alguma idéia para compartilhar. Obrigado por fazer a pergunta! :)