União de idiomas regulares que não são regulares

12

Eu me deparei com essa pergunta: "Dê exemplos de dois idiomas regulares em que a união deles não produz um idioma comum".

Isso é muito chocante para mim, porque acredito que os idiomas regulares são fechados sob união. Que significa para mim que se eu tomar duas linguagens regulares e união deles, eu preciso obter uma linguagem regular.

E acho que compreendo a prova disso: nas minhas palavras, se os idiomas são regulares, existem autômatos que os reconhecem. Se pegarmos todos os estados (união) e adicionarmos um novo estado para o ponto de entrada, e modificarmos a função de transição para o novo estado com epsilon, estamos bem. Também mostramos que existe um caminho para todos os estados etc.

Você pode me dizer onde estou errado, ou talvez outra maneira de abordar a questão.

Fonte da pergunta, exercício 4, em francês.

Além disso, a mesma pergunta é feita com a interseção.

Dave
fonte
Uma outra maneira de ver isso. Suponha que uma união tão infinita produz uma linguagem regular. Considere qualquer linguagem não regular . Você pode dividir seus elementos em um número infinito de sub- onde cada um é finito (e, portanto, regular). Agora faça a união de todos os . Supondo que essa seja uma linguagem regular, mas assumimos que é uma linguagem não regular, portanto, uma contradição. Permitir o fechamento sob união infinita tornaria todos os idiomas regulares. LLiLiLiL
Bakuriu 1/10/2014
Para união infinita: pegue qualquer idioma não regular e considere cada . Claramente é regular. L i = { w i } L iL={w1,w2,w3,}Li={wi}Li
Pål GD

Respostas:

26

Há uma diferença significativa entre a pergunta que você faz e a pergunta feita no exercício. A pergunta pede um exemplo de um conjunto de idiomas regulares modo que sua união L = i = 1 L i não seja regular. Observe o intervalo da união: 1 a . Os idiomas regulares são fechados sob união finita e as provas são executadas ao longo das linhas que você esboça na pergunta; no entanto, isso se desfaz sob união infinita . Podemos mostrar isso tomando L i =L1,L2,

L=i=1Li
1 para cada i (com Σ = { 0 , 1 } ). A união infinita de línguas de curso dá a canônico não regular (sem contexto) linguagem L = { 0 i 1 i | i N } .Li={0i1i}iΣ={0,1}L={0i1iiN}

Como um aparte, podemos ver facilmente onde a prova normal falha. Imagine à mesma construção em que adicionar um novo estado inicial e -transitions aos antigos estados iniciais. Se fizermos isso com um conjunto infinito de autômatos, construímos um autômato com um número infinito de estados, contradizendo obviamente a definição de um autômato finito .ε

Por fim, acho que a confusão pode surgir da formulação da pergunta original, que inicia "Donner deux exemples des suites de langages ...", que é ( aproximadamente , meu francês é um pouco enferrujado, mas verificado externamente!) "Dê dois exemplos de sequências de idiomas ...", em vez de "Dê dois exemplos de idiomas ...". Uma leitura incauta pode confundir o segundo com o primeiro.

Luke Mathieson
fonte
1
E definindo como o conjunto de complemento de L i , sua interseção também seria não-regular. Sua leitura em francês está certa, não apenas grosseiramente . MiLi
Laurent LA RIZZA
Você está correto sobre a parte da tradução em francês. Eu pensei que essa parte da sequência não fosse importante. haha Obrigado pela resposta, a diferença agora está clara para mim.
Dave
3

Para sua segunda pergunta, considere os idiomas definidos por Observe que para qualquer n 1 , M n é regular , como (1) o conjunto esquerdo é finito e, portanto, regular, (2) o conjunto direito é denotado pela expressão regular a n a a

Mn={ak21kn}{ajj(n+1)2}
n1Mnanaa o mesmo ocorre com regularidade e (3) idiomas regulares são fechados em uniões finitas, como você já sabe.

Não é muito difícil mostrar que, para qualquer número inteiro , temos M n + 1M n e, portanto, M nM n + 1 = M n + 1, de modo tão indutivo, temos n i = 0 M i = M n (que na verdade não precisamos aqui, mas é muito bonito para deixar de fora).n1Mn+1MnMnMn+1=Mn+1

i=0nMi=Mn

Agora observe que não contém um n 2 + 1 , um n 2 + 2 , ... , a ( n + 1 ) 2 - 1 , então nenhuma dessas cordas será na interseção completa. Como conseqüência teremos i = 0 M i = { a n 2 | n 1 }Mnan2+1,an2+2,,a(n+1)21

i=0Mi={an2n1}
que é conhecido por não ser um idioma comum. (Se você não conheceu esse fato, está em muitos textos teóricos e a prova vale a pena o esforço de leitura.)
Rick Decker
fonte
1

Por que escolher idiomas regulares complicados para mostrar que conjuntos regulares não são fechados sob união infinita? Os idiomas Singleton são suficientes para mostrar que qualquer idioma RE é uma união infinita de conjuntos regulares.

LwLi=index(w)Li={wi=index(w)}LiL=i=1Li é RE.

Mi=ΣLiMEuEu=1MEu=Σeueu

Portanto, qualquer linguagem recursiva é uma união infinita de conjuntos regulares e também uma interseção infinita de conjuntos regulares (não os mesmos, mas seus complementos :).

O infinito é cheio de surpresas, e o que é verdadeiro para valores arbitrariamente grandes pode não ser verdadeiro no infinito.

babou
fonte
1

{ϵ}{uma}{b}{umauma}{bb}{umaumauma}{umabuma}{bumab}{bbb} ...

Σ-{pEu}pEuEu

Andres
fonte