Probar que el lenguaje es regular o no regular


8

Deje que sea ​​un lenguaje regular. Pruebalo:L

  1. L+={w:u|u|=2|w|wuL}

  2. L++={w:u2|u|=|w|wuL}

  3. L+={w:u,v|u|=|w|=|v|uwvL}

son regulares y:

  1. L++={uv:w|u|=|w|=|v|uwvL}

No es regular.

Me parece muy difícil. Supongo que 1-3 son similares (pero puedo estar equivocado), pero no sé cómo abordarlo. La idea general suele ser modificar la máquina de estados finitos para que acepte otro lenguaje. Pero esas construcciones son a menudo muy sofisticadas y todavía no se me ocurre solo.L



¡No estoy seguro de que sus afirmaciones sean correctas porque, según el teorema de Myhill – Nerode, los primeros tres idiomas tienen infinitas clases de equivalencia! para el primero: tomarwi ser el i-ésimo en L+ y wi+1 ser la (i + 1) -ésima palabra entonces por cada uno que pueda elegir ui para mostrar que existe una palabra que separa las clases de wi y wi+1
Fayez Abdlrazaq Deab

@Fayez ¿Qué pasa si, por ejemplo, L=Σ? EntoncesL+=Σtiene solo una clase de equivalencia. Revise su prueba y vea qué sale mal.
Yuval Filmus

@Bartek y cualquier otro votante para cerrar: la mitad de la pregunta es en realidad sobre probar que ciertas operaciones en idiomas conservan la propiedad de ser regulares.
Yuval Filmus

Respuestas:


5

Aquí hay una prueba de que el idioma L0={w:u|u|=|w|uwL}es regular Se puede modificar para mostrar que los primeros tres en su lista son regulares. (Tenga en cuenta que cambiéwu a uw.) Dado un DFA para L, creamos un NFA para L0. Lo primero que hace la NFA es adivinar (tome unϵ mover) un estado q, cuya semántica prevista es el estado para el que DFA L termina después de leer u. A continuación, ejecuta simultáneamente dos copias del DFA paraL, uno que comienza en el estado inicial y el otro que comienza en q. Al leer un símboloa, se mueve de acuerdo con un símbolo arbitrario en el primero, y se mueve de acuerdo con aen el segundo. Un estado acepta si la primera copia está en estadoq y el segundo está en un estado de aceptación.

Para el último, considere el idioma L=a+b+c+y se cruzan L++ con a+c+.


No veo eso L=a+b+c+L++a+c+={ancm:n+m20}, que es claramente un lenguaje regular. Pero supongo que estoy equivocado :) ¿Puedes señalarme la dirección correcta?
xan

He logrado modificar su construcción de L0 e incluso eliminar εse mueve para que se vuelva más elegante (en mi opinión). Así que los primeros tres problemas resueltos y gracias por eso! :) Pero lo único que te pido es que aclares el final y mis preocupaciones en el comentario anterior. Estaría muy agradecido.
xan

Cuando calculo L++a+c+Tengo algo mas. Tenga en cuenta que cada palabra enL debe contener un b.
Yuval Filmus

Lo siento, pero no sé cómo calcular L++a+c+. Supongo que el resultado es{ancn:nN}lo que nos da lo que queremos, pero no sé cómo justificar eso.
xan

Ok, puedo ver ahora :-)
xan
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.