NFA com número exponencial de estados quando deseminados

10

Como criar um exemplo de um DFA que possui 2n estados em que o NFA equivalente possui n estados. Obviamente, o conjunto de estados do DFA deve conter todos os subconjuntos do conjunto de estados da NFA, mas não sei como começar. Alguma sugestão para me colocar no caminho certo?

saadtaame
fonte
Esta questão não é clara. Em geral, existem infinitos DFAs equivalentes para um determinado idioma regular e infinitamente muitos NFAs equivalentes para qualquer idioma regular. Se você deseja DFAs mínimos com estados, isso nem sempre é possível, pois diferentes NFAs podem reconhecer o mesmo idioma e ter números diferentes de estados, mas correspondem ao mesmo DFA mínimo. Se, além disso, você quer só considerar NFAs "mínimas", este se torna um pouco mais interessante ...2n
Patrick87
2
Patrick, acho que o OP significa um exemplo em que o DFA mínimo é exponencialmente maior que o NFA mínimo.
Yuval Filmus
2nn
2n
11
Observe que o artigo da Wikipedia sobre minimização do DFA faz referência a exemplos adequados (embora você mesmo precise descobrir o pequeno NFA).
Raphael

Respostas:

18

euUMAneun+1 1numaϵUMA .

eu2nS1 1,S2UMAW(S1 1),W(S2)S1 1,S2umaS1 1S2W=W(UMA-uma)W(S1 1)WeuW(S2)Weu

Yuval Filmus
fonte
10

este é um exercício no livro "Finite Automata", de Mark V. Lawson Universidade Heriot-Watt, Edimburgo, página 68:

n1 1(0 0+1 1)1 1(0 0+1 1)n-1 1n+1 12n estados. Este exemplo mostra que, às vezes, é inevitável um aumento exponencial no número de estados, passando de um autômato não determinístico para um autômato determinante correspondente.

MK Dadsetani
fonte
10

2n2nΩ(2n) .

De "Complexidade da comunicação", de Kushilevitz e Nisan, no exercício 12.6:

ceuc={WWW{0 0,1 1}c} ."

eucO(c)Ω(2c)

Timothy Sun
fonte
Além disso, a prova da segunda parte "requer" complexidade da comunicação, portanto, isso pode não ser adequado para seus propósitos.
Timothy Sun
Obrigado pela resposta! O que você quer dizer com co-NFA?
Saadtaame 31/08/12
Basicamente, alterne "aceitar" por "rejeitar" na definição de um NFA. Ou seja, se nenhum dos caminhos possíveis levar a um estado de rejeição, você aceita; caso contrário, você rejeita.
Timothy Sun
2c(c+1 1)2cΘ(c2)
Idiomas finitos são um pouco chatos a esse respeito. Veja também aqui .
Raphael
9

UMA={uma,b}Qn={0 0,1 1,,n-1 1}UMAn=(Qn,UMA,En,{0 0},{0 0})

En={(Eu,uma,Eu+1 1)0 0Eun-1 1}{(n-1 1,uma,0 0)}{(Eu,b,Eu)1 1Eun-1 1}{(Eu,b,0 0)1 1Eun-1 1}}
n2n
J.-E. PIN
fonte
3
Muito esperto! O idioma aceito por esse autômato é(uman+umaWn-1 1b), Onde Wn-1 1 consiste em todas as palavras que contêm a letra uma no máximo n-1 1vezes.
Yuval Filmus 21/10
2
@ yuval-filmus Este exemplo não é meu. Eu queria dar uma referência, mas no momento não me lembro de onde a vi.
J.-E. Pin