O algoritmo de Brzozowki é amplamente citado. Várias perguntas aqui dão exemplos ou discutem sua complexidade. Mas não consegui encontrar uma prova de correção para o algoritmo. Como provamos que está correto? Qualquer prova acessível aos estudantes de ciências da computação seria muito bem-vinda.
formal-languages
automata
finite-automata
vonbrand
fonte
fonte
Respostas:
A prova do resultado de Brzozowski é técnica, mas não muito complicada. De fato, temos apenas que considerar uma sequência de determinação de reversão, para obter o resultado mínimo que desejamos. (A primeira sequência de determinação de reversão leva a um FSA determinístico para a reversão do idioma original; a prova de minoria é para a segunda determinação de reversão.)
Primeiro, é preciso ter uma boa visão dos diferentes autômatos envolvidos. E nervos de aço.
A construção de Brzozowski. Seja um autômato determinístico para a linguagem . Assumimos que todos os estados de são alcançáveis a partir do estado inicial .A=(Q,Σ,δ,q0,F) L=L(A) Q q0
No primeiro passo, inverte-se o autômato: todas as arestas são invertidas e os estados inicial e final são trocados. Informalmente, obtemos o autômato .rev(A)=(Q,Σ,δ−1,F,q0)
Na segunda etapa, determina-se o autômato assim obtido, pela construção padrão, mas mantendo apenas estados alcançáveis. Obtemos . Os estados de são conjuntos de estados para : ; o estado inicial consiste nos estados iniciais de , que são estados finais em : ; os estados finais em são os estados que contêm um estado final para : sse .A′=det(rev(A))=(Q′,Σ,δ′,q′0,F′) A′ rev(A) Q′⊆2Q rev(A) Q q′0=F A′ rev(A) U∈F′ q0∈U
A chave da prova é a seguinte relação importante entre os autômatos e .A A′
Prova (apenas um lado). sse existe um estado em e um caminho de para em com a etiqueta . Mas isso significa que existe um caminho de para com o rótulo em ou ; assim . fim de prova.q∈δ′(X,wR) p X p q rev(A) wR q p w A δ(q,w)=p δ(q,w)∈X
Conforme anunciado, isso é usado para provar a propriedade essencial de que precisamos.
Prova. Sejam e dois estados em que não podem ser distinguidos. Isso significa que, para qualquer string , temos iff . Mostramos que agora e são iguais.U V A′ wR δ′(U,wR)∈F′ δ′(V,wR)∈F′ U V
Pela construção de , podemos reformular a indistinguibilidade como iff .F′ δ′(U,wR)∋q0 δ′(V,wR)∋q0
Aplique a observação de base, e nós temos sse .δ(q0,w)∈U δ(q0,w)∈V
A partir dessa igualdade, segue, como todos os estados em são assumidos como alcançáveis, portanto, para qualquer estado em ou há uma cadeia tal que . fim de prova.U=V Q p U V w p=δ(q0,w)
Mas mesmo depois de provar, o resultado ainda é uma mágica real!
fonte