Podemos regular regularmente um idioma não regular por concatentação?


8

Minha pergunta é basicamente dada a três idiomas A, B e L, onde L é A e B concatenados juntos e B é comprovadamente não regular, é possível encontrar um A que faça L regular?


5
Bem-vindo ao CS.SE! Nossa missão é parcialmente criar um arquivo de perguntas de alta qualidade e suas respostas. Portanto, preferimos que você evite alterar a pergunta de uma maneira que invalide as respostas existentes ou que mude fundamentalmente o que você está perguntando; e preferimos que você faça uma pergunta por pergunta. Sua pergunta inicial foi geral e razoável. Sua edição faz algumas perguntas diferentes. Se você tiver uma pergunta de acompanhamento, preferimos publicá-la separadamente como uma nova pergunta - não edite a pergunta original.
DW

1
Vou remover as perguntas subsequentes desta postagem, mas você pode encontrá-las com histórico de revisões, se desejar publicá-las separadamente.
DW

O que você tentou? Onde você ficou preso? Não queremos apenas fazer o seu trabalho (em casa) para você; queremos que você obtenha entendimento. No entanto, como não sabemos qual é o seu problema subjacente, não podemos começar a ajudar. Veja aqui uma discussão relevante. Se você não souber como melhorar sua pergunta, por que não perguntar no Computer Science Chat ? Você também pode conferir nossas perguntas de referência .
Raphael

(Isso provavelmente foi perguntado antes, também.)
Raphael

@ Rafael Eu editei a pergunta para conter a pergunta específica sobre a qual eu estava me perguntando e minha lógica, no entanto, ela foi removida pela DW acima. Além disso, isso não é para minha lição de casa, é porque meu professor não me deu crédito por uma prova que fiz dessa maneira e quero garantir que meu entendimento esteja correto antes de falar com ele sobre isso (ele é bastante irracional para conversar com ele). , para não mencionar difícil de entender).
Kenny Loveall

Respostas:


3

Se permitirmos que seja o idioma vazio, que é regular, teremos que .AL={w1w2|w1A,w2B}==A

Para o problema um pouco mais interessante, em que A deve ser uma linguagem regular não vazio, então podemos construir um tal que há não vazios resulta em um regularBAL

Seja . Seja qualquer idioma comum e considere . Observe que, ao contrário do pressuposto em J.-E. A resposta de Pin, é irregular, mas não contém a palavra vazia.B={bcndn|n>0}AL={w1w2|w1A,w2B}B

Suponha que seja regular. Existe alguma DFA, , que aceita . Independentemente de como é construído, sabemos que cada palavra em deve ter uma última ocorrência de . Seja o conjunto de estados percorridos imediatamente após o último em todas as travessias possíveis de aceitação. Observe que não pode estar vazio, pois a string mais curta em é . Seja o conjunto de estados visitados em todas as travessias de aceitação possíveis em algum momento após o último . ConstruirLM=(S,Σ,δ,q0,F)LALbQbQBbcdSbM=(S,Σ,δ,q0,F) , onde funciona igualmente a , com excepção para o facto de .δδδ(q0,ε)=Q

Eu afirmo que este NFA aceita o idioma . Para qualquer , devemos ter a passagem de algum elemento de para algum elemento de , já que deve aceitar alguma string com isso como sufixo. Para qualquer , podemos escolher um e formar a palavra . Se aceita , então deve ser o caso em que aceita , pois deve ter havido alguma passagem de algum estado em a que também é válido paraC={cndn|n>0}wCQFMwΣCwAwbwMwMwbwQFM. No entanto, devido à nossa escolha de , não pode ser o caso que , então deve rejeitar .wwbwLMw

Então aceita , mas essa linguagem não é regular, levando a uma contradição.MC

Portanto, se não estiver vazio, não poderá ser regular.AL


12

Sim, isso é possível. Considere o exemplo abaixo:

Seja onde é primo. Isso não é regular. Seja onde . Isso é regular.B=1ppA=1nnN

AB simplesmente nos dará com e isso é regular, pois qualquer número maior que pode ser representado como que1nn>222+xx>0


Que tal agora? e considere . É trivial ver que é isomórfico para onde é um número par maior que 2, o que é obviamente regular. B=1pBBBB1nn

12

Seja um alfabeto não vazio. Deixe ser qualquer linguagem não regular em contendo a palavra vazia e deixá- . Então é regular.ΣBΣA=ΣL=AB=A


4
Para torná-lo talvez pior: vamos ser qualquer linguagem não regular e deixá- . Então é regular. BA=L=AB=A
Hendrik Jan

Este argumento só funciona se contiver a palavra vazia. Existem idiomas irregulares que não contêm a palavra vazia. B
ymbirtt

@ hendrik-jan Você está perfeitamente certo, e esta é a melhor solução!
J.-E.

6

Dado um idioma , o idioma é regular. Além dessa solução trivial, nem sempre é possível encontrar uma linguagem não vazia modo que seja regular. É possível que muitos não regular (por exemplo , se contém a palavra vazia , ou se está em um alfabeto unário ), mas não para todos .BB=AAB={uvuAvB}BBBB

Tome onde é o conjunto de números primos. Seja o que for, se não estiver vazio, não será regular, porque para testar a associação a , é necessário (devido ao símbolo de "rolha" ) usar memória potencialmente ilimitada para testar a primalidade do número de ' s no final.B={cannP}PAAABABca

Para provar isso, (pois assumimos que não está vazio). Se for regular, e o quociente esquerdo de pelo singleton que é . Esse idioma é apenas (se , existe e tal forma que , e como contém b ^ kno , isso implica queuAAABL1=ABucaL1{uc}L2={wucwABucwuca}={waucwAB}L3={annP}wL2vAkNucw=vcakwcw=akL3 ; por outro lado, se então então ). é uma linguagem não regular bem conhecida, temos uma contradição.wL3cwBucwABL3


Esta prova não funciona com nenhum não regular , desde que o símbolo "rolha" apareça apenas como tal? B
Raphael

@ Rafael Sim, isso é uma condição suficiente.
Gilles 'SO- stop be evil'

0

Enquanto sua pergunta está pedindo uma prova existencial, ela me lembra o ramo da comp. sci. chamado Aproximações regulares.

A ideia é usar uma linguagem não regular L e depois encontre um idioma comum A de tal modo que LA0 sob alguma condição / subconjunto de L (Onde é a diferença simétrica ), ou seja, encontre uma linguagem regular "arbitrariamente próxima" deLpara algum subconjunto com o qual você se preocupa. Frequentemente, você realiza isso tomando um subconjunto finito de com grande medida sobre o seu subconjunto de interesse e, em seguida, concatenando-o com um idioma regular cuidadosamente escolhido.L

Você pode encontrar muitas leituras interessantes no Google Scholar se pesquisar algo como "aproximação de linguagem normal sem contexto".

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.