¿Podemos hacer que un lenguaje no regular sea regular mediante concatenación?


8

Básicamente, mi pregunta se da en tres idiomas A, B y L, donde L es A y B concatenados juntos y se demuestra que B no es regular, ¿es posible encontrar una A que haga L regular?


55
Bienvenido a CS.SE! Nuestra misión es en parte construir un archivo de preguntas de alta calidad y sus respuestas. Por lo tanto, preferimos que evite cambiar la pregunta de una manera que invalide las respuestas existentes, o que cambie fundamentalmente lo que está preguntando; y preferimos que haga una pregunta por pregunta. Su pregunta inicial fue general y razonable. Su EDIT hace algunas preguntas diferentes. Si tiene una pregunta de seguimiento, preferimos que la publique por separado como una nueva pregunta; no edite la pregunta original.
DW

1
Voy a eliminar las preguntas de seguimiento de esta publicación, pero puede encontrarlas con el historial de revisiones si desea publicarlas por separado.
DW

Que has intentado ¿Dónde te quedaste atascado? No queremos simplemente hacer su trabajo (a domicilio) por usted; Queremos que entiendas. Sin embargo, dado que no sabemos cuál es su problema subyacente, no podemos comenzar a ayudarlo. Ver aquí para una discusión relevante. Si no está seguro de cómo mejorar su pregunta, ¿por qué no preguntar en Computer Science Chat ? También puede consultar nuestras preguntas de referencia .
Raphael

(Probablemente esto también se haya preguntado antes).
Raphael

@Raphael Edité la pregunta para contener la pregunta específica sobre la que me preguntaba y mi lógica, sin embargo, DW la eliminó anteriormente. Además, esto no es para mi tarea, es porque mi profesor no me dio crédito por una prueba que hice de esta manera y quiero asegurarme de que mi comprensión sea correcta antes de hablar con él al respecto (no es razonable hablar con él) , sin mencionar que es difícil de entender).
Kenny Loveall

Respuestas:


3

Si permitimos que sea ​​el lenguaje vacío, que es regular, entonces tenemos que .AL={w1w2|w1A,w2B}==A

Para el problema un poco más interesante en la que A debe ser un lenguaje regular no vacía, entonces podemos construir un tal que no hay no vacíos los resultados en un habitualBAL

Deje . Deje que sea ​​cualquier lenguaje regular y considere . Tenga en cuenta que, contrario a lo que se supone en J.-E. La respuesta de Pin, es irregular pero no contiene la palabra vacía.B={bcndn|n>0}AL={w1w2|w1A,w2B}B

Supongamos que es regular. Existe algo de DFA, , que acepta . Independientemente de la forma se construye, sabemos que cada palabra de debe tener una última aparición de . Sea el conjunto de estados a los que viajó inmediatamente después de la última en todos los recorridos de aceptación posibles. Tenga en cuenta que no puede estar vacío, ya que la cadena más corta en es . Sea el conjunto de estados visitados en todos los recorridos de aceptación posibles en algún momento después del último . ConstruirLM=(S,Σ,δ,q0,F)LALbQbQBbcdSbM=(S,Σ,δ,q0,F) , donde comporta de forma idéntica a , excepto por el hecho de que .δδδ(q0,ε)=Q

Afirmo que esta NFA acepta el lenguaje . Para cualquier , debemos tener que hay algún recorrido de algún elemento de a algún elemento de , ya que debe aceptar alguna cadena con esto como sufijo. Para cualquier , podemos elegir una y formar la palabra . Si acepta , entonces debe ser el caso de que acepte , ya que debe haber habido algún desplazamiento de algún estado en a que también es válido paraC={cndn|n>0}wCQFMwΣCwAwbwMwMwbwQFM. Sin embargo, debido a nuestra elección de , no puede ser el caso de que , por lo que debe rechazar .wwbwLMw

Entonces acepta , pero este lenguaje no es regular, lo que lleva a una contradicción.MC

Por lo tanto, si no está vacío, no puede ser regular.AL


12

Si esto es posible. Considere el siguiente ejemplo:

Sea donde es primo. Esto no es regular. Deje donde . Esto es regularB=1ppA=1nnN

AB simplemente nos dará con y esto es regular ya que cualquier número mayor que puede repetirse como donde1nn>222+xx>0


¿Qué tal esto? y considere . Es trivial ver que es isomorfo a donde es un número par mayor que 2, que obviamente es regular. B=1pBBBB1nn

12

Sea un alfabeto no vacío. Deje ser cualquier lenguaje no regular en contenga la palabra vacía y deje . Entonces es regular.ΣBΣA=ΣL=AB=A


44
Para empeorar las cosas: que sea cualquier lenguaje no regular y que . Entonces es regular. BA=L=AB=A
Hendrik Jan

Este argumento solo funciona si contiene la palabra vacía. Existen idiomas irregulares que no contienen la palabra vacía. B
ymbirtt

@ hendrik-jan Tienes toda la razón, ¡y esta es la mejor solución!
J.-E.

6

Dado un lenguaje , el idioma es regular. Además de esta solución trivial, no siempre es posible encontrar un lenguaje no vacío tal que sea ​​regular. Es posible que muchos no regular (por ejemplo, si contiene la palabra vacía , o si está en un alfabeto unario ) pero no para todos .BB=AAB={uvuAvB}BBBB

Tome donde es el conjunto de números primos. Sea lo que sea , si no está vacío, entonces no es regular, porque para probar la membresía en , es necesario (debido al símbolo "stopper" ) usar memoria potencialmente ilimitada para probar la primalidad del número de ' s al final.B={cannP}PAAABABca

Para probar esto, deje (ya que asumimos que no está vacío). Si es regular, entonces también lo es , y también lo es el cociente izquierdo de por el singleton que es . Este lenguaje es solo (si entonces existe y tal que , y dado que contiene b ^ kno , esto implica queuAAABL1=ABucaL1{uc}L2={wucwABucwuca}={waucwAB}L3={annP}wL2vAkNucw=vcakwcw=akL3 ; por el contrario, si entonces entonces ). es un lenguaje no regular bien conocido, tenemos una contradicción.wL3cwBucwABL3


¿Esta prueba no funciona con ninguna no regular siempre que el símbolo de "tapón" aparezca solo como tal? B
Raphael

@Raphael Sí, esa es una condición suficiente.
Gilles 'SO- deja de ser malvado'

0

Si bien su pregunta es pedir una prueba existencial, me recuerda la rama de comp. sci. llamadas aproximaciones regulares.

La idea es tomar un lenguaje no regular y luego encontrar un lenguaje regular tal que bajo alguna condición / subconjunto de (donde es la diferencia simétrica ), es decir, encontrar un lenguaje regular que está "arbitrariamente cerca" de para algún subconjunto que le interese. A menudo lo logras tomando un subconjunto finito de con una gran medida sobre tu subconjunto de interés, y luego concatenándolo con un lenguaje regular cuidadosamente elegido.LALA0LLL

Puede encontrar muchas lecturas interesantes en Google Académico si busca algo como "aproximación al lenguaje normal sin contexto".

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.