Myhill-Nerode e propriedades de fechamento


8

É sabido que as línguas regulares são caracterizadas pela equivalência Myhill-Nerode. Para o idiomaL sobre Σ∗ defina a equivalência x∼Ly sobre Σ∗ iff para todos z∈Σ∗ temos xz∈L⟺yz∈L. EntãoL é regular se ∼L é de índice finito, ou seja, possui um número finito de classes de equivalência.

Eu sei que a relação pode ser usada para mostrar que alguns idiomas não são regulares, indicando infinitamente muitas seqüências que não são equivalentes.

Minha pergunta: podemos usar facilmente o Myhill-Nerode para mostrar propriedades de fechamento de idiomas comuns? Ou devemos usar a "congruência sintática" das línguas?

Como exemplo de prefixo, é fácil, pois x∼Ly implica x∼pref(L)y. Mas como lidamos com sufixo, concatenação, estrela, espelho?

Respostas:


6

Eu faço o fechamento em operações booleanas com a caracterização MyHill-Nerode. Nunca vi isso assim. Uma congruência correta∼ satura um idioma L E se

u∼v⇒(u∈L↔v∈L)
ou equivalentemente se Lé uma união de classes de congruência. Nós usamos:

Teorema: (MyHill-Nerode) Uma linguagem é regular se e somente se houver uma congruência correta de índice finito que saturaL.

Agora, suponha que tenhamos idiomas regulares L1,L2⊆X∗e denotar ∼L1,∼L2algumas congruências corretas de índice finito saturando-as. Então

u∼v:⇔u∼L1v∧u∼L2v
é uma congruência correta (a interseção de ambos) e refina os dois. Além disso, temos
[u]∼=[u]∼L1∩[u]∼L2.
Portanto, temos um número finito de classes de equivalência. Isso também indica que a interseção de classes de equivalência[u]∼L1 e [v]∼L2 está vazio ou tem um elemento comum w e, portanto, é igual à classe de equivalência [w]∼. Isso dá queL1∩L2 está vazio ou pode ser escrito como a união da classe de equivalência para ∼. Pelo teorema acimaL1∩L2 é regular.

Para L1∪L2 é uma união de classes de equivalência para ∼1 e ∼2, que são as doze uniões de classes de equivalência para ∼, portanto, também é regular. E, para complementação, segue como a partição de classes de equivalênciaX∗, portanto, uma congruência correta trabalhando para L1 trabalha também para X∗∖L1. ◻

Comentários adicionais: Na sua pergunta, você também mencionou a congruência correta de Nerode canônica

u≡Lv:⇔(∀w∈X∗:uw∈L↔vw∈L)
com L⊆X∗. Esta é a mais grossa congruência direita saturandoL. Agora talvez seja natural perguntar se podemos construir a congruência correta de Nerode deL1∩L2 ou L1∪L2 facilmente fora daqueles para L1,L2, ou se a congruência resultante da interseção surgir como alguma congruência correta de Nerode. Talvez possamos encontrar fórmulas simples como
u≡L1∩L2v⇔u≡L1v∧u≡L2v.
Mas o acima não se aplica. E que eu saiba, não existe nenhuma relação simples. Por exemplo, considereL1=(aa)∗ e L2=a(aa)+, então nós temos
L1∩L2=∅,L1∪L2=X∗∖{a}.
Agora ≡L1∩≡L2 possui pelo menos quatro classes de congruência, pois refina ≡L2que tem exatamente quatro classes de congruência. Mas∅ tem precisamente uma classe e X∗∖{a} possui três (todos podem ser vistos facilmente usando o mínimo de autômatos completos).

EDIT (2019.08.18). A operação de espelho e sufixo está relacionada à congruência esquerda

u≡Lv⇔∀w∈X∗:wu∈L↔wv∈L.
E se ≡L tem índice finito, semelhante ao da operação de prefixo e congruência correta, ≡suffix⁡(L)tem índice finito. E u≡Lv iff mirror⁡(u)≡mirror⁡(L)mirror⁡(v); e como a operação de espelho é uma bijeção emX∗ a última equação dá isso ≡mirror⁡(L) tem índice finito iff ≡L tem índice finito (observe que a congruência esquerda tem o mesmo índice que a congruência correta para as palavras espelhadas, mas, em geral, uma congruência correta para mirror⁡(L) pode ter muito mais classes exponenciais, como é mostrado por controles padrão da teoria dos autômatos).

Portanto, essas operações são tratadas se pudermos mostrar que ambas as congruências têm índice finito ao mesmo tempo ou não. Para isso, vamos olhar para a congruência sintática

u≡S(L)v⇔∀x,y∈X∗:xuy∈L⇔xvy∈L.
Essa congruência refina as duas congruências acima, portanto, se é finita, ambas as congruências acima também são finitas. Isto éu≡S(L)v iff para todos w∈X∗ temos [wu]≡L=[wv]≡L, portanto, temos um mapa bem definido e injetivo do ≡S(L)classes de equivalência às transformações em {[w]≡L:w∈X∗}, e se o último for um conjunto finito, o conjunto dessas transformações também será finito, o que implica que ≡S(L)é de índice finito. Então, no total, temos isso≡L tem índice finito se ≡L tem índice finito, o inverso é implícito similar.


4

As classes de equivalência da relação Myhill-Nerode também são os estados do DFA mínimo para o idioma. Portanto, o que for fácil de mostrar usando os DFAs, você poderá converter para uma prova que use o ponto de vista Myhill-Nerode. Onde quer que você precise de NFAs, pode esperar que a prova fique mais complicada.

Mas a resposta correta é: experimente você mesmo! É assim que a pesquisa é feita.


Bem, não estava pedindo pesquisa original, obrigado. Eu esperava que alguém soubesse se o conhecimento de∼K sendo índice finito preveria ∼ϕ(K) sendo índice finito, onde ϕé uma operação de idioma. Eu tentei porϕ= prefixo, mas não consigo ver como a concatenação é tratada de maneira elegante. Sim, eu posso construir um DFA decente para ele.
— Hendrik Jan

Certamente você pode traduzir facilmente entre classes Nerode e autômatos mínimos, mas, de qualquer maneira, adicionei uma prova que usa as classes e, pelo que sei, não poderia ser transferida para nenhuma construção de autômato com tanta facilidade, pois funciona com as classes como conjuntos, o que é de alguma forma negligenciados se usarmos um autômato e construímos, por exemplo, um autômato de produto para derivar propriedades de fechamento. Portanto, eu consideraria isso como um argumento apenas "verdadeiramente" das classes Nerode.
— 9137 StefanH
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.